[미소 클론코딩 프로젝트] 2-6. 이용자 서비스 API 설계 - 계약서 서비스

2023. 8. 11. 22:53초기 과업/BackEnd

작성자알 수 없는 사용자

728x90
반응형

2023.08.11 - [초기 과업/BackEnd] - [미소] 클론코딩 프로젝트 2-5. 이용자 서비스 API - 견적서 서비스

 

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

안녕하세요. 기깔나는 사람들에서 백엔드를 맡고 있는 황시아입니다. 소셜 로그인 API 설계에 이어서 이번 시간엔 견적서 서비스 API를 설계해 보겠습니다. 2023.08.11 - [초기 과업/BackEnd] - [미소] 클

giggal-people.tistory.com

 

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

 

지난 시간에 진행했던 견적서 서비스 API 설계에 이어서 계약서 서비스 API 설계를 진행해 보겠습니다.

 

 


계약서 서비스 API

계약서 서비스 또한 회원과 비회원을 나눠서 설계해 보았습니다.

견적서 서비스와 비슷하게 비회원도 계약서 작성이 가능하고, 계약서 생성시 발급받은 임시 비밀번호를 통해 계약 상황을 관리할 수 있어야 하기 때문입니다.


계약서 조회 - 회원

Request

API 호출 방식

요청 URL 메서드
/api/cleanings/members/contract/{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/contract/{id} \
    -H "Content-Type: application/json;charset=utf-8" \
    -H "Authorization: Bearer {JWT_TOKEN}"

 

계약서 조회 - 비회원

Request

API 호출 방식

요청 URL 메서드
/api/cleanings/guests/contract/{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/contract/{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 필수 계약서 일련번호
memberName data String 필수 계약자명
memberAddress data String 필수 계약자 주소
memberContact data String 필수 계약자 연락처
vendorName data String 필수 업체명
vendorAddress data String 필수 업체 주소
vendorContact data String 필수 업체 연락처
serviceDate data String 필수 서비스 일자
serviceTime data String 필수 서비스 시간
startTime data String 필수 서비스 시작 시각
cost data Integer 필수 금액
createdAt data Timestamp 필수 계약서 생성 일시
signed data Boolean 필수 서명 여부
canceled data Boolean 필수 취소 여부

 

Response Syntax

{
    "statusCode": 200,
    "message": "성공",
    "data": {
        "id": "일련번호",
        "memberName": "계약자명",
        "memberAddress": "계약자 주소",
        "memberContact": "계약자 연락처",
        "vendorName": "업체명",
        "vendorAddress": "업체 주소",
        "vendorContact": "업체 연락처",
        "serviceDate": "서비스 일자",
        "serviceTime": "서비스 시간",
        "startTime": "시작 시각",
        "cost": "가격",
        "createdAt": "계약서 생성일시",
        "signed": "서명 여부",
        "canceled": "취소 여부"
    }
}

 

 


계약서 생성 - 회원

Request

API 호출 방식

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

 

Request Header

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

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

 

Request Elements

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

파라미터 타입 필수 여부 설명
quotationId
String 필수 견적서 일련번호

 

Request Syntax

curl -X POST http://{BASE_URL}/api/cleanings/members/contract/{id} \
    -H "Content-Type: application/json;charset=utf-8" \
    -H "Authorization: Bearer {JWT_TOKEN}"
        -d \
        '{ \
                "quotationId": "견적서 일련번호" \
        }'

 

 

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/contract POST

 

Request Header

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

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

 

Request Elements

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

파라미터 타입 필수 여부 설명
quotationId
String 필수 견적서 일련번호

 

Request Syntax

curl -X POST http://{BASE_URL}/api/cleanings/guests/contract/{id} \
    -H "Content-Type: application/json;charset=utf-8" \
        -d \
        '{ \
                "quotationId": "견적서 일련번호" \
        }'

 

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": "임시 비밀번호"
    }
}

 


계약서 취소 - 회원

Request

API 호출 방식

요청 URL 메서드
/api/cleanings/members/contract/{id} PATCH

 

Request Header

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

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

 

Request Elements

없음

 

Request Syntax

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

 

 

계약서 취소 - 비회원

Request

API 호출 방식

요청 URL 메서드
/api/cleanings/guests/contract/{id} PATCH

 

Request Header

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

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

 

Request Elements

없음

 

 

curl -X PATCH http://{BASE_URL}/api/cleanings/guests/contract/{id} \
    -H "Content-Type: application/json;charset=utf-8" \
        -d \
        '{ \
        }'

 

Response

응답은 동일하기 때문에 하나로 쓰겠습니다.

 

Response Elements

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

필드 상위 필드 타입 필수 여부 설명
statusCode   Integer 필수 API 공통 가이드 - 공통 Response 참조
message   String 필수 API 공통 가이드 - 공통 Response 참조

 

Response Syntax

{
    "statusCode": 200,
    "message": "성공"
}

 

 

 

 

 

728x90
반응형