1. 개요
- API 중 대표적으로 가장 많이 사용하는 RESTfull API가 무엇인지 알아보자.
- 하나의 서버로 여러대의 클라이언트를 대응하도록 할때 필요한것이 RESTFul API입니다.
2. URI 설계
- RFC3986 규칙을 기준으로 설명
1) 소문자를 사용한다.
2) 하이픈을 사용하자.
- 공백은 %20으로 표현되기 때문에 공백보다는 하이픈(-)을 사용하자.
3) 확장자를 사용하지 말자.
- 여러 확장자를 사용해서 uri를 정하지 말고 header를 파싱하여 종류(.txt, .csv, ...)에 맞게 응답해준다.
- 하나의 uri로 여러 응답을 만들기 위한 방법으로 Accept를 사용한다.
예시)
GET /hello HTTP/1.1
Host: remotty.com
Accept: text/csv,text/html;q=0.5,application/xml;q=0.6,text/plain;q=0.9,application/pdf,*/*;q=0.3
위의 경우 우선순위는 Accept에 q의 값을 순서대로(구분자 콤마(,)) 우선순위가 책정된다.
(q의 생략은 q=1.0과 같다.)
text/cvs => application/pdf => text/plain => application/xml => text/html => */*
4) CRUD를 URI에 사용하지 않는다.
- CRUD를 URI에 표시해주지 않고 헤더 데이터에 넣어서 사용하자.
5) 컬렉션과 도큐먼트
- 도큐먼트는 정보이고 컬렉션은 그 정보들의 집합이다.
http://www.remotty.com/sports/soccer
http://www.remotty.com/sports/soccer/players
http://www.remotty.com/sports/soccer/players/13/skills
- sport: 컬렉션 => soccer: 도큐먼트 => soccer: 컬렉션 => players: 도큐먼트 => 13: 컬렉션 => skills: 도큐먼트
- 이와 같이 도큐먼트는 또 다른 컬렉션을 가질 수 있다.
- 도큐먼트는 단수, 컬렉션은 복수로 표현해준다.
6) HTTP Method의 알맞은 역할
- POST, GET, PUT, DELETE를 사용하여 CRUD를 사용한다.
- POST는 리소스의 하위에 새로운 리소스를 생성
- GET은 현재 리소스를 조회 보여줌
- PUT은 현재 리소스를 수정
- DELETE는 현재 리소스를 삭제
3. PATCH
- 이 부분은 라우터와 PUT에 관련되어 있다고 하는데 좀 더 알아볼 필요가 있다.
참고자료)
http://blog.remotty.com/blog/2014/01/28/lets-study-rest/#uri
'일상 > 기본' 카테고리의 다른 글
프로젝트 기획) 카카오톡 몰래보기, 삭제글 보기 (0) | 2019.04.18 |
---|---|
30분 공부하기) node.js (0) | 2019.04.08 |
Parsing-Test) 요기요 사이트 (2) | 2019.04.03 |
30분 공부하기) 챗봇 (0) | 2019.03.30 |
데이터 클러스터링(30분 공부하기) (0) | 2019.03.28 |