상세 컨텐츠

본문 제목

[주제 15]다음 기능에 대한 REST API 모범 사례를 연구해서 제출하세요

본문

  • 조회
    • 특정 블로그 글에 달린 댓글 조회
  • 기타 (어떤 메서드가 적합한지 고민해 보세요!)
    • 블로그 글 좋아요
    • 블로그 글 좋아요 취소
    • 다른 글쓴이 팔로우

  • 특정 블로그 글에 달린 댓글 조회:
    • GET 메서드를 사용하여 특정 블로그 게시물에 대한 댓글을 검색
    • 쿼리 매개변수를 사용하여 블로그 게시물 ID 또는 기타 기준에 따라 결과를 필터링
    • 페이지 번호를 사용하여 각답에서 반환되는 주석 수를 제한합니다.
    • HTTP 상태 코드를 사용하여 요청의 성공 또는 실패를 나타냅니다(예: 성공적인 응답의 경우 200, 리소스를 찾을 수 없는 경우 404).
  • 블로그 글 좋아요:
    • HTTP POST 방식을 사용하여 블로그 게시물 좋아요 요청을 보냅니다.
    • 인증을 사용하여 인증된 사용자만 게시물을 좋아할 수 있습니다.
    • HTTP 상태 코드를 사용하여 요청의 성공 또는 실패를 나타냅니다(예: 새 리소스 생성 성공의 경우 201, 무단 액세스의 경우 401).
  • 블로그 좋아요 취소:
    • DELETE 메서드를 사용하여 블로그 게시물에 대한 종아요 취소 요청
    • 인증을 사용하여 인증된 사용자만 게시물 좋아요를 취소할 수 있습니다.
    • HTTP 상태 코드를 사용하여 요청의 성공 또는 실패를 나타냅니다(예: 리소스 삭제 성공의 경우 204, 무단 액세스의 경우 401).
  • 다른 글쓴이 팔로우:
    • POST 방식을 사용하여 작성자 팔로우 요청
    • 인증을 사용하여 인증된 사용자만 게시물을 팔로우할 수 있습니다..
    • HTTP 상태 코드를 사용하여 요청의 성공 또는 실패를 나타냅니다(예: 새 리소스 생성 성공의 경우 201, 무단 액세스의 경우 401).

  • 데이터를 보내거나 받을 때 JSON 포맷을 사용하세요
    • 기존에는 HTML로 받아왔으나, 현재는 JSON으로 받아오는 것이 추세입니다.
    • PHP, Python 같은 다른 프로그램에서도 JSON으로 파싱 하거나, 데이터를 다루는 메서드를 지원합니다.
      • 예를 들어 Python의 json.loads()나 json.dumps()가 있습니다.
  • 엔드포인트에서는 동사 대신 명사를 사용하세요
    • 엔드포인트에서는 동사 대신 명사를 사용해야 한다. 이미  GET, PUT, PATCH, DELETE라는 동작을 (Create, Read, Update, Delete) 동사의 형태로 나타내기 때문, 그래서 엔드포인트에는 getposts, createposts 보다는 posts를 사용해야 한다.
  • 복수 명사를 사용하세요
    • 사용자가 다른 게시물이 있는지 확인이 쉽게 복수 명사를 사용하여야 한다. post -> posts
  • 에러 핸들링을 위해 상태 코드를 사용하세요
    • 사용자가 한 요청에 대해서 응답 결과를 알 수 있게, 항상 응답코드를 포함하여야 한다. (2XX,3XX,4XX 등)
  • 관계를 보여주기 위해 엔드포인트를 중첩해 사용하세요
    • 종종 다른 엔드포인트들은 연결되곤 합니다. 따라서 이해하기 쉽도록 중첩해 사용하세요
      멀티 유저 블로그 플랫폼의 경우를 예로 들자면, 여러 게시물이 각기 다른 사용자들에 의해 작성됩니다. 따라서 엔드포인트를 https://mysite.com/posts/author 만들면 됩니다.
      같은 식으로, 게시물들은 각자의 댓글들을 가지고 있기 때문에 댓글을 받아오는 엔드포인트는 https://mysite.com/posts/postId/comments 정도면 될 것 같습니다.
      그렇다고 3단계 이상을 중첩하면 가독성이 떨어지기 때문에 너무 많이 중첩하지 않는 것이 좋습니다.
  • 데이터를 받을 때 필터링, 정렬, 페이지를 나누세요
    • 데이터베이스가 큰 경우, 데이터를 불러오는데 느려질 수 있습니다. 데이터를 정렬, 필터링하여 요청에 대한 부담을 줄일 수 있습니다.
  • 보안을 위해 SSL을 적용하세요
    • SSL은 전송 계층 보안(Secure Soket Layer)을 나타냅니다.
    • 서버와 클라리언트 사이를 비공개하고, 요청한 것만큼만 의 데이터를 보내주는 것을 고려하여야 합니다.
    • REST API에서 SSL을 적용한 것과 적용하지 않은 차이는 HTTP와 HTTPS의 'S'로 확인할 수 있습니다.
  • 버전을 명시하세요
    • REST API는 여러버 전을 지원하여서, 최신 버전이 아니더라도 사용가능하게끔 하여야 합니다.
  • 정확한 API 문서를 제공하세요
    • API 문서에는 다음이 포함되어야 합니다.
      • 해당 API에 대한 엔드포인트
      • 해당 엔드포인트에 대한 요청 예시
      • 다양한 언어 지원
      • 각 상태 코드에 대한 다른 에러 메시지 리스트
    • 가장 흔히 사용하는 API문서 툴은 Swagger입니다.
    • API테스트의 경우는 Postman을 주로 사용합니다.
  • 출처 : https://www.freecodecamp.org/korean/news/rest-api-mobeom-sarye-rest-endeupointeu-seolgye-yesi/
 

REST API 모범 사례 – REST 엔드포인트 설계 예시

웹 개발에서 REST API는 클라이언트와 서버 간 통신을 원활하게 하는 중요한 역할을 합니다. 여기서 클라이언트는 프론트엔드, 서버는 백엔드라고 생각할 수 있습니다. 클라이언트(프론트엔드)와

www.freecodecamp.org

  •  

관련글 더보기