JNU-econovation / jnu-wiki-be

전남대 학생들을 위한 전대위키 서비스
https://jnu-wiki.vercel.app/?_vercel_share=lgEftxL7mgkpGhyFMnkseGsYEgcflHVg
3 stars 2 forks source link

문서 보기 API SPEC #100

Open pyg410 opened 11 months ago

pyg410 commented 11 months ago

문서 상세 조회 API SPEC

Request

HTTP Method URI
GET /docs/{docs_id}

Response

Success

Name Value Description
content-type application/json JSON 
{
    "success": "true",
    "response": {
        "id": 1,
        "docsName": "업데이트1",
        "docsCategory": "카페",
        "docsLocation": {
            "lat": 35.17641341218037,
            "lng": 126.91349388159176
        },
        "docsContent": "문서 컨텐츠",
        "docsCreatedBy": "test",
        "docsCreatedAt": "2023/08/24 00:49:23",
        "scrap": "true"
    },
    "error": null
}

Fail

Status Description
404 NOT_FOUND 문서 없음
500 Internal Server Error unknown server error

404 NOT_FOUND

{
    "success" : false,
    "response" : null,
        "error": {
        "message": "존재하지 않는 문서입니다.",
        "status":404
    }
}
BlackBean99 commented 11 months ago
  1. Internal Server Error가 BAD_REQUEST랑 컨벤션이 다르네요?

  2. 프론트 입장에서 success 로 필드를 한번 더 타야 하기 때문에 depth가 깊어지지 않게 설계하는 방법도 고려해보세요!

pyg410 commented 11 months ago
  1. 수정했습니다(400은 다시 추가해놓겠습니닷)
  2. success의 경우 꼭 필요하다고 생각한 이유가, 프론트가 직접 HTTP상태코드를 확인하고, 자체적으로 성공인지 여부를 판단할 수도 있겠지만, JSON 내에서 true/false의 boolean값만 판단하고 바로 response/error로 분기점을 만들 수 있어서 생산성이 더 높아지지 않을까 했습니다..! (실제로 카카오에서도 위의 문서와 유사한 형태로 API Response Format을 사용중입니다. 아래 링크 첨부했습니다~) (https://docs.kakaoi.ai/kakao_work/webapireference/commonguide/)