BoostCourse

Web API

Sh4869 2020. 2. 25. 15:29

Web API를 이해하기 전 Rest API에 관해 알아볼 필요가 있다.

Rest API는 한번에 설명하기 모호한 개념이 많아서 블로그 포스팅으로 한계가 있다고 생각했다.

Rest API에 대한 최고의 자료라고 생각하는 자료를 첨부한다.

https://www.youtube.com/watch?v=RP_f5dMoHFc


학습 목표

  1. REST API와 Web API의 차이에 대해 이해합니다.
  2. Web API의 디자인 가이드에 대해 이해합니다.

핵심 개념

  • Web API
  • HTTP Methods

Web API

REST API를 완벽하게 구현하는 일은 쉽지 않다. REST API를 완벽하게 구현 하지 못한 경우 Web API라고 부른다. 대부분 REST의 HATEOAS와 self-descriptive를 만족하지 못하는 경우가 많다.

Web API 디자인 가이드

  • URI는 정보의 자원을 표현해야 한다.
  • 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE)로 표현해야 한다. (URI에 동사형으로 끼워넣어선 안된다)

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

  • GET /members - 맴버의 모든 정보를 달라는 요청
  • GET /members/delete/1 - 다음과 같이 uri에 delete라는 삭제를 요청해서는 안된다.
  • DELETE /members/1 - HTTP Method를 이용하여 삭제를 요청

자원에 대한 행위는 HTTP Method로 표현한다.

  • GET /members/1                   (o)
  • GET /members/get/1             (x)
  • GET /members/add                 (x)
  • POST /members                       (o)
  • GET /members/update/1        (x)
  • PUT /members/1                     (o)
  • GET /members/del/1               (x)
  • DELETE /members/1               (o)

URI에 동사를 넣어서 의미를 표현하려고 하면 의미가 모호해진다. 반드시 HTTP Method를 이용하여 동작을 수행해야 한다.

슬래시 구분자(/)

계층을 나타낼 때 사용한다.

http://domain/house/apartments

http://domain/departments/1/employees

 

  • URI 마지막 문자로 슬래시 구분자(/)를 포함하지 않습니다.
  • 하이픈(-)은 URI가독성을 높일 때 사용합니다.
  • 언더바(_)는 사용하지 않습니다.
  • URI경로는 소문자만 사용합니다.
  • RFC 3986(URI 문법 형식)은 URI스키마와 호스트를 제외하고는 대소문자를 구별합니다.
  • 파일 확장자는 URI에 포함하지 않습니다.
  • Accept Header를 사용합니다.

상태 코드 (성공)

상태 코드 (클라이언트로 인한 오류)

상태 코드 (서버로 인한 오류)