TIL(Today I Learned)

3월 11일(목)

학습내용

  • REST API(REpresentational State Transfer) with 노루
    • REST API는 URI와 HTTP프로토콜을 이용해 자원을 제어한다.
    • Header는 노출되지만 Body는 노출되지 않는다.
    • HTTP Method
      • GET: READ
      • DELETE: DELETE
      • POST: CREATE
      • PUT: UPDATE, PATCH: Partial UPDATE
      • GET과 DELETE는 원칙적으로 Request의 Body가 없어야 한다.
    • Status
      • Status는 Response에만 관련이 있다.
      • 100번대 코드는 거의 마주칠 일이 없으므로 신경쓸 필요가 없다고 한다.
      • 200번대는 성공적인 Response라는 의미이다; 201 데이터의 생성이 완료되었다; 204 요처에 대해 보내줄 콘텐츠가 없음(회원가입 처음했는데 주문내역을 보여준다든지 등); 205 캐쉬 데이터 만료됐으므로 갱신해야 한다; 206 스트리밍, 다운로드 할때 쓰인다.
      • 300번대 네트워크의 상태를 나타내며 마찬가지로 잘 사용하지 않는다고 한다.
      • 400번대는 잘못된 요청을 보냈다는 의미이다; 400 Body 내용이 잘못되었을때; 401 요청에 대한 권한이 없을 때; 408 서버 보틀넥이 발생했을 때
      • 500번대는 서버에 문제가 생겼다는 의미이다.
    • URI 끝이 슬래시로 끝나면 안된다. Under Score 대신 Dash를 사용한다. 소문자만 사용한다.
    • REST API 규격 중 Uniform Interface의 4가지 조건중 Self-Descriptive(메시지만 보고 의미를 이해할 수 있어야 한다.), HATEOAS(하이퍼링크를 통해 애플리케이션 상태가 전이되어야 한다.) 을 만족시키는 것은 어렵다.
    • REST API 장점은 HTTP를 이용한다는 것이다. 고수준의 프로토콜이므로(사람이 이해하기 쉬운), 이식성이 좋다. 단점은 표준(가이드)이 없다는 것이다.
    • HTTP Status code을 세분화하고 Response Body에 구체적인 메세지를 보내줌으로써 Client측에서 API 문서 이해가 부족하더라도 이해하기 쉽게 할수 있다.
    • API 문서에 Required, Optional을 잘 표시해 주어야 한다.
    • 1 요청 1 수신결과를 잘 지켜야 좋다.

문제점/고민한점

  1. OAuth란?
  2. URI, URL의 차이는?

해결방법

  1. OAuth는 웹사이트나 애플리케이션의 접근 권환의 위임을 위한 개방형 표준이다. 같은 OAuth를 채택한 애플리케이션끼리는 접근권한을 패스워드 없이 전달할 수 있다.
  2. URI(Uniform Resource Identifier)는 URL(Uniform Resource Locator)보다 더 상위개념이다. URI는 추상적, 물리적 리소스를 구분 하기 위한 문자열이다. URL은 리소스를 접근하기 위한 위치를 이용하여 리소스를 구분하는 것이다.

참고

https://goodncuteman.tistory.com/60

https://ko.wikipedia.org/wiki/OAuth

https://www.guru99.com/url-vs-uri-difference.html

https://www.ietf.org/rfc/rfc3986.txt

https://nsinc.tistory.com/192