REST API

yshjft·2022년 2월 21일
0

네트워크

목록 보기
12/18
post-custom-banner

✔︎ API(Application Programming Interface)

데이터와 기능의 집합을 제공하여 컴퓨터 프로그램간 상호작용을 촉진하며, 서로 정보를 교환가능 하도록 하는 것

✔︎ REST API란?

  • REST 기반으로 서비스 API를 구현한 것

✔︎ REST API의 특징

  • REST를 기반으로 시스템을 분산해 확장성과 재사용성을 높여 유지보수 및 운용을 편리하게 할 수 있다.
  • REST는 HTTP 표준을 기반으로 구현하므로, HTTP를 지원하는 프로그램 언어로 클라이언트, 서버를 구현할 수 있다.

✔︎ REST API 설계 기본 규칙

  1. URI는 정보의 자원을 표현해야 한다.

    • resource는 동사보다 명사, 대문자보다 소문자, 복수 명사를 사용한다

      	ex) GET /Member/1 → GET /members/1
  2. 자원에 대한 행위는 HTTPS Method(GET, PUT, POST, DELETE 등)로 표현한다.

    • URI HTTP Method가 들어가면 안된다

    • URI 행위에 동사 표현이 들어가면 안된다

    • 경로 부분 중 변하는 부분은 유일한 값으로 대체한다.

      	ex) GET /members/delete/1 → DELETE /members/1
      	ex) GET /members/show/1 → GET /members/1
      	ex) GET /members/insert/2 → GET /members/2
      	ex) id=3인 student를 삭제 → DELETE /students/3

✔︎ REST API 설계 규칙

  1. 슬래시(/) 구분자는 계층 관계를 난타내는데 사용한다.
    ex) http://restapi.example.com/houses/apartments
  2. URI 마지막 문자로 슬래시(/)를 포함하지 않는다
    • URI에 포함되는 모든 글자는 리소스의 유일한 식별자로 사용되어야 한다.
    • URI가 다르다 → 리소스가 다르다
    • 리소스가 다르다 → URI가 다르다
      ex) http://restapi.example.com/houses/apartments/ (❌)
  3. 하이픈(-)은 불가피하게 긴 URI의 가독성을 높이는데 사용
  4. 밑줄(_)은 URI에 사용하지 않는다.
  5. URI 경로에는 소문자가 적합하다.
  6. 파일 확장자는 URI에 포함하지 않는다. 대신 Accept header를 이용하여 파일 확장자를 명시한다.
  7. 리소스간 연관 관계가 있는 경우(소유의 관계를 표현할 때 사용한다)
    ex) /users/{userid}/devices

✔︎ 응답상태코드

  • 1XX: 전송 프로토콜 수준의 정보 교환
  • 2XX: 클라이언트 요청이 성공적으로 수행됨
  • 3XX: 클라이언트는 요청을 완료하기 위해 추가적인 행동을 취해야함
  • 4XX: 클라이언트의 잘못된 요청
  • 5XX: 서버쪽 오류로 인한 상태코드

✔︎ 참고

profile
꾸준히 나아가자 🐢
post-custom-banner

0개의 댓글