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 수신결과를 잘 지켜야 좋다.
문제점/고민한점
- OAuth란?
- URI, URL의 차이는?
해결방법
- OAuth는 웹사이트나 애플리케이션의 접근 권환의 위임을 위한 개방형 표준이다. 같은 OAuth를 채택한 애플리케이션끼리는 접근권한을 패스워드 없이 전달할 수 있다.
- 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