[미소] 클론코딩 프로젝트 2-5. 이용자 서비스 API - 견적서 서비스

2023. 8. 11. 17:25초기 과업/BackEnd

작성자알 수 없는 사용자

728x90
반응형

 

안녕하세요. 기깔나는 사람들에서 백엔드를 맡고 있는 황시아입니다.

 

소셜 로그인 API 설계에 이어서 이번 시간엔 견적서 서비스 API를 설계해 보겠습니다.

 


 

2023.08.11 - [초기 과업/BackEnd] - [미소] 클론코딩 프로젝트 2-4) 이용자 서비스 API 설계 - 소셜 로그인

 

[미소] 클론코딩 프로젝트 2-4) 이용자 서비스 API 설계 - 소셜 로그인

2023.08.10 - [초기 과업/BackEnd] - [미소] 클론코딩 프로젝트 2-3) 이용자 서비스 API 설계 - 회원 로그인 [미소] 클론코딩 프로젝트 2-3) 이용자 서비스 API 설계 - 회원 로그인 2023.08.10 - [초기 과업/BackEnd]

giggal-people.tistory.com

 

 

견적서 서비스 API

견적서 조회 - 회원

견적서 조회 서비스는 회원과 비회원인 경우로 나눠서 설계를 해 보았습니다.

왜냐면 회원일 경우에는 서버에서 발급한 JWT 토큰으로 인증을 진행한 후 해당 회원이 가지고 있는 견적서를 보여줄 것이지만

비회원은 견적서 일련번호와 비밀번호가 있으면 해당 견적서를 조회할 수 있어야 하기 때문입니다.

 

Request

API 호출 방식

요청 URL 메서드
/api/cleanings/members/quotation/{id} GET

 

Request Header

Request Header에 대한 상세는 다음과 같습니다.

파라미터 타입 필수 여부 설명
Authorization String 필수 Bearer {JWT_TOKEN} - {JWT_TOKEN} : 로그인 JWT 토큰
Content-Type String 필수 application/json이어야 함

 

Request Syntax

curl -X GET http://{BASE_URL}/api/cleanings/members/quotation/{id} \
    -H "Content-Type: application/json;charset=utf-8" \
    -H "Authorization: Bearer {JWT_TOKEN}"

 

견적서 조회 - 비회원

Request

API 호출 방식

요청 URL 메서드
/api/cleanings/guests/quotation/{id} POST

 

Request Header

Request Header에 대한 상세는 다음과 같습니다.

파라미터 타입 필수 여부 설명
Content-Type String 필수 application/json이어야 함

 

Request Elements

Request Elements에 대한 상세는 다음과 같습니다.

파라미터 타입 필수 여부 설명
password String 필수 견적서 조회용 임시 비밀번호

 

Request Syntax

curl -X POST http://{BASE_URL}/api/cleanings/guests/quotation/{id} \
    -H "Content-Type: application/json;charset=utf-8" \
        -d \
        '{ \
                "password": "임시 비밀번호" \
        }'

 

 

 

Response

회원과 비회원 견적서 조회 API의 응답은 동일하기 때문에 하나로 쓰겠습니다.

 

Response Elements

Response Elements에 대한 상세는 다음과 같습니다.

필드 상위 필드 타입 필수 여부 설명
statusCode   Integer 필수 API 공통 가이드 - 공통 Response 참조
message   String 필수 API 공통 가이드 - 공통 Response 참조
data   Object 필수 견적서 정보
id data String 필수 견적서 일련번호
vendorName data String 필수 업체명
cost data Integer 필수 가격
serviceDate data String 필수 서비스 일자
serviceTime data String 필수 서비스 시간
startTime data String 필수 시작 시각
createAt data Timestamp 필수 생성 시각

 

Response Syntax

{
    "statusCode": 200,
    "message": "성공",
    "data": {
        "id": "견적서 일련번호",
        "vendorName": "업체명",
        "cost": "가격"
        "serviceDate": "일자",
        "serviceTime": "서비스 시간",
        "startTime": "시작 시간",
        "createAt": "생성 일자"
    }
}

 

 

견적서 생성 - 회원

견적서 생성 서비스도 회원과 비회원을 나눠서 설계했습니다.

회원일 경우에는 JWT 토큰에서 id 정보를 가져와서 회원 정보를 조회한 뒤 사용할 것이기 때문에 개인 정보를 모두 입력받지 않고,

비회원일 경우에는 개인 정보를 입력 받도록 했습니다.

 

Request

API 호출 방식

요청 URL 메서드
/api/cleanings/members/quotation POST

 

Request Header

Request Header에 대한 상세는 다음과 같습니다.

파라미터 타입 필수 여부 설명
Authorization String 필수 Bearer {JWT_TOKEN} - {JWT_TOKEN} : 로그인 JWT 토큰
Content-Type String 필수 application/json이어야 함

 

Request Elements

Request Elements에 대한 상세는 다음과 같습니다.

파라미터 타입 필수 여부 설명
date String 필수 일자
serviceTime String 필수 서비스 시간
startTime String 필수 시작 시간
animal Boolean 필수 반려동물 유무
moveCleaning Boolean 필수 이사청소 여부

 

Request Syntax

curl -X POST http://{BASE_URL}/api/cleanings/members/quotation \
    -H "Authorization: Bearer {JWT_TOKEN}" \
    -H "Content-Type: application/json;charset=utf-8" \
        -d \
        '{ \
                "date": "일자", \
                "serviceTime": "서비스 시간", \
                "startTime": "시작 시간", \
                "animal": "반려동물 유무", \
                "moveCleaning": "이사청소 여부" \
        }'

 

Response

Response Elements

Response Elements에 대한 상세는 다음과 같습니다.

필드 상위 필드 타입 필수 여부 설명
statusCode   Integer 필수 API 공통 가이드 - 공통 Response 참조
message   String 필수 API 공통 가이드 - 공통 Response 참조
data   Object 필수 견적서 정보
id data String 필수 견적서 일련번호

 

Response Syntax

{
    "statusCode": 200,
    "message": "성공",
    "data": {
        "id": "일련번호"
    }
}

 

 

견적서 생성 - 비회원

Request

API 호출 방식

요청 URL 메서드
/api/cleanings/guests/quotation POST

 

Request Header

Request Header에 대한 상세는 다음과 같습니다.

파라미터 타입 필수 여부 설명
Content-Type String 필수 application/json이어야 함

 

Request Elements

Request Elements에 대한 상세는 다음과 같습니다.

파라미터 타입 필수 여부 설명
name String 필수 이름
address String 필수 주소
contact String 필수 연락처
date String 필수 일자
serviceTime String 필수 서비스 시간
startTime String 필수 시작 시간
animal Boolean 필수 반려동물 유무
moveCleaning Boolean 필수 이사청소 여부

 

Request Syntax

curl -X POST http://{BASE_URL}/api/cleanings/guests/quotation \
    -H "Content-Type: application/json;charset=utf-8" \
        -d \
        '{ \
                "name": "이름", \
                "address": "주소", \
                "contact": "연락처", \
                "date": "일자", \
                "serviceTime": "서비스 시간", \
                "startTime": "시작 시간", \
                "animal": "반려동물 유무", \
                "moveCleaning": "이사청소 여부" \
        }'

 

Response

Response Elements

Response Elements에 대한 상세는 다음과 같습니다.

필드 상위 필드 타입 필수 여부 설명
statusCode   Integer 필수 API 공통 가이드 - 공통 Response 참조
message   String 필수 API 공통 가이드 - 공통 Response 참조
data   Object 필수 견적서 정보
id data String 필수 견적서 일련번호
password data String 필수 견적서 조회에 사용되는 임시 비밀번호

 

Response Syntax

{
    "statusCode": 200,
    "message": "성공",
    "data": {
        "id": "일련번호",
        "password": "임시 비밀번호"
    }
}

 

 

728x90
반응형