코딩과로그

특정 기능에 대해 모범적인 REST-API 명세서 작성 본문

Devops

특정 기능에 대해 모범적인 REST-API 명세서 작성

피리음 2023. 3. 23. 15:23
  • [C422] 다음 기능에 대한 REST API 모범 사례를 연구해서 제출하세요.
    • 조회
      • 특정 블로그 글에 달린 댓글 조회
    • 기타 (어떤 메소드가 적합한지 고민해보세요!)
      • 블로그 글 좋아요
      • 블로그 글 좋아요 취소
      • 다른 글쓴이 팔로우

1. 특정 블로그 글에 달린 댓글 조회

URL-PATH의 모범 사례 적용:

1. url-path를 동사 대신 명사(자원)로 표현

2. 복수 명사를 사용

GET : /api/articles/{articleId}/comments

이와 더불어, 또한 댓글의 경우, 하나의 블로그 속한 댓글이기 때문에 nested 형식을 사용할 수 있어 /api/article/{articleId}/comments 와 같이 nested 로 적용해 url-path를 설정했다.

 

성공할 경우, value 라는 키로 결과값을 전달한다.

성공(statusCode: 200) 일 때의 payload 결과값 예상:

아래의 결과값은 제가 백엔드 프로젝트를 할 당시에 만들었던 형식을 참고해서 만들어봤습니다.

1. data를 json 포맷으로 전달

Response :
{
  "value": [
    {
      "id": 413,
      "body": "안녕하세요~~",
      "created_at": "2022-03-01T12:34:56Z",
      "user": {
        "id": 1,
        "username": "피리"
      },
      "article": {
        "id": 5
      }
    },
    {
      "id": 23,
      "body": "수고욤...",
      "created_at": "2022-03-02T10:20:30Z",
      "user": {
        "id": 2,
        "username": "상윤"
      },
      "article": {
        "id": 5
      }
    }
  ]
}

 

  • 기타 (어떤 메소드가 적합한지 고민해보세요!)
    • 블로그 글 좋아요
    • 블로그 글 좋아요 취소
    • 다른 글쓴이 팔로우

1. 블로그 글 좋아요 

- POST : /api/articles/{articleId}/like

 : 좋아요를 생성하는 것이기 때문

2. 블로그 글 좋아요 취소

DELETE : /api/articles/{articleId}/like

 : 좋아요를 삭제하는 것이기 때문

3. 다른 글쓴이 팔로우

- POST /api/users/{userId}/follow

 : userId 에 매핑되는 user에 대해 follow 를 추가하기 위함.