포스트

2024.05.16 프로그래머스-API 설계 맛보기

  • 프로젝트 : https://github.com/ykdman/fantom

API 설계 해보기

데브코스 강의에서는 도서관 웹 서비스를 만드는 과정을 진행 중인데, 해당 프로젝트에 데브코스만의 저작권도 걸려있고, 그동안 강의같은것을 들을 때, 그대로 따라했던것들이 조금 아쉬운 면도 있어서, 내가 생각한 자체적인 서비스를 지금까지 강의를 들으면서 응용하여 작성했었다.

데브코스 강의와는 내용이 사뭇 다르지만, 그 기반 지식은 같기 때문에, 나로써는 더욱 응용할 수 있는 환경으로 만들어 보았다.

회원 API

  • 회원 정보 및 로그인, 가입과 관련된 API

회원가입

  • Method : POST
  • URI : /signup
  • HTTP Status Code : 성공 - 200 , 실패 -
  • Request Body

    1
    2
    3
    4
    5
    
      {
      	"email" : "사용자 입력 이메일",
      	"pwd" : "사용자 입력 비밀번호",
      	"name" : "사용자 이름"
      }
    
  • Response Body : none

로그인

  • Method : POST
  • URI : /login
  • Http Status Code : 성공 - 200실패 -
  • Request Body

    1
    2
    3
    4
    
      {
      	"email" : "사용자 입력 이메일",
      	"pwd" : "사용자 입력 비밀번호",
      }
    
  • Response Body : JWT Token in Cookie

비밀번호 초기화 요청

  • Method : POST
  • URI : /reset
  • HTTP Status Code : 성공 200실패
  • Request Body

    1
    2
    3
    
      {
      	"email" : "사용자 입력 이메일"
      }
    
  • Resposne Body : none

비밀번호 초기화 (수정)

  • Method : PUT
  • URI : /reset
  • HTTP Status Code : 성공 200실패
  • Request Body

    1
    2
    3
    
      {
      	"pwd" : "사용자 입력 비밀번호"
      }
    

페이지 API

전체 페이지 조회

  • Method : GET
  • URI : /pages
  • HTTP Status Code : 성공 200실패 404 , 500 , 503
  • Request Body : none
  • Response Body

    1
    2
    3
    4
    5
    6
    7
    8
    9
    
      [
      	{
      		"id" : 1,
      		"artist_id" : "아티스트 id 값",
      		"user_id" : "페이지를 소유하고 있는 user의 id값",
      		"description" : "페이지에 대한 설명",
      		"title" : "페이지 이름"
      	} ...
      ]
    

구독 API

구독한 페이지 조회

  • Method : GET
  • URI : /subscribe
  • HTTP Status Code : 성공 200실패 404
  • Request Body

    1
    2
    3
    
      {
      	"email" : "사용자 이메일 계정"
      }
    
  • Response Body

    1
    2
    3
    4
    5
    6
    7
    
      [
      	{
      		"page_id" : 1,
      		"artist_id" : "아티스트 id",
      		"user_id" : "페이지 소유자 id"
      	}...
      ]
    

구독 추가

  • Method : POST
  • URI : /subscribe/:pages.Id
  • HTTP Status Code : 성공 200
  • Request Body
  • Response Body

구독 취소

  • Method : DELETE
  • URI : /subscribe/:pages.Id
  • HTTP Status Code : 성공 200
  • Request Body
  • Response Body

좋아요 API

좋아요 추가

  • Method : PUT
  • URI : /likes/:pageId
  • HTTP Status Code : 성공 200
  • Request Body

    1
    2
    3
    4
    5
    
      {
      	"page_id" : "좋아요가 눌린 page 의 ID",
      	"user_id" : "좋아요를 누른 user의 ID",
      	"page_user_id" : "페이지 소유자 ID"
      }
    
  • Response Body

좋아요 취소

  • Method : PUT
  • URI : /likes/:pageId
  • HTTP Status Code : 성공 200
  • Request Body

    1
    2
    3
    4
    5
    
      {
      	"page_id" : "좋아요가 눌린 page 의 ID",
      	"user_id" : "좋아요를 누른 user의 ID",
      	"page_user_id" : "페이지 소유자 ID"
      }
    
  • Response Body : 미정
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.