REST API

mangojang·2022년 12월 20일
0

REST API란?

➡️ Represetational State Transfer

  • 자원을 이름으로 구분해 해당 자원의 상태를 주고 받는 모든 것
  • API (Application Programming Interface) : 프로그램이 상호작용하기 위한 인터페이스
  • 웹의 기존 기술 + HTTP 프로토콜 활용
  • 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일
  • 자원, 행위, 표현 으로 구성 됨.

자원 (Resource)

➡️ URI

  • URI 는 정보의 자원을 표현해야 한다. (동사보다는 명사를 사용)
    • 행위에 대한 표현이 들어가면 ❌

      GET /users/1             ----(O)
      GET /users/show/1        ----(X)
  • client 는 URI를 통해 server에 자원의 상태에 대한 조작을 요청한다.

URI 설계 규칙

  1. 슬래시(/)는 계층 관계를 나타내는데 사용한다.

    /fruit/mango
  2. URI 마지막 문자로 슬래시(/)를 포함하지 않는다.

    /fruit/mango/        ----(X)
  3. 하이픈(-)은 URI 가독성을 높이는데 사용한다.

     /fruit/yellow-mango
  4. 밑줄(_)은 URI에 사용하지 않는다.

     /fruit/yellow_mango    -------(X)
  5. URI경로는 소문자로 작성한다.

    /fruit/Mango        ----(X)
  6. URI에 파일 확장자를 포함시키지 않는다.

    /fruit/mango.jpg        ----(X)

행위 (Verb)

➡️ Method

  • HTTP 프로토콜 Method를 사용한다. (CRUD)
Method명설명
GETRead : 자원 조회
POSTCreate: 자원 생성
PUTUpdate: 자원 수정
DELETEDelete : 자원 삭제

HTTP 상태 코드

상태코드설명
200클라이언트 요청 정상 수행
201클라이언트의 자원 생성(create) 요청 정상 수행 = POST 요청 시 정상작동 했을 때 반환
301클라이언트가 요청한 자원에 대한 URI가 변경 되었을 때 (응답시, 변경된 URI 반환)
400클라이언트 요청이 부적절 할 경우 = 잘못된 요청
401클라이언트가 인증되지 않은 상태에서 자원 요청 했을 경우 (로그인 안되어 있는데, 자원 요청)
403응답하고 싶지 않은 자원을 클라이언트가 요청 했을 경우 = 권한 없음
404자원이 존재하지 않는 경우
500서버에 문제가 있을 경우

표현 (Representations)

  • 페이로드를 이용
  • 주로 JSON, XML 을 통해 Clinent 와 Server가 데이터를 주고 받음.

목킹 (mocking)

  • 어떠한 기능이 있는 것처럼 흉내내어 구현한 것
  • 클라이언트 개발을 위해 간단히 서버 기능을 테스트 할 때 사용 ⇒ 아직 DB연동 개발이 다끝나지 않았지만, 클라이언트 측에서 작업 할 수 있도록, 해당 api 로 더미 데이터를 보내줌.
  • 참고 할 만한 사이트 : https://jsonplaceholder.typicode.com/
    • /todos, /users, /posts 등 json 형태의 자료들을 조회 할 수 있음.

참고 문헌

profile
한 걸음 한 걸음 계속 걷는 자가 일류다

0개의 댓글