REST(Representational State Transfer) - 영단어 그대로 나열하면 표현적인 - 상태 - 교환하다.

다수의 개발자들이 인식 할 수 있는 형태로 (데이터 또는 긔외 다른것)의 상태를 교환하는 것을 말한다.

 최근 resuful api를 모두가 목놓아 외치는 이유는 이것으로 보인다. 하나의 서버로 여러대의 클라이언트를 대응하도록 할때 필요한것이 RESTFul API.  클라이언트 기기의 다양성에 따라 하나의 서버 -> 다양한 클라이언트에서 같은 내용이 보이도록 하기 위해서.



REST API의 특징

1. REST API를 읽는 것만으로도 메세지의 내용을 명확히 알 수 있다.

2. STATELESS - HTTP 인프라를 그대로 사용한다. 상태에 대한 정보를 독립적으로 갖고있기 때문에, 클라이언트에서 서버쪽의 히스토리나 내용을 알 필요가 없다.

3. 헤더 부분에 URI와 처리 메서드를 함께 명시함

4. w3c 같은 사이트에서 명시적으로 rule을 세팅해서 공표하는 것이 아니라 개발자들 사이에서 암묵적으로 합의된 rule이 rule 이다.

5. HTTP 메서드를 사용해서 URI를 표현 하는데, 이것 때문에  HTTP 메서드외에 다른 메서드를 쓸 수 없는 제약이 있다.

6. 컬렉션(collection) 이란 문서(document)또는 element의 집합을 의미함



URI 의 설계

1. 대소문자를 구분하자

2. 밑줄(언더바)대신 하이픈(-)을 사용하자. 보통 링크(uri)의 경우 브라우저에서 밑줄을 제공하므로 겹쳐보일 수 있다.

3. 파일의 확장자를 쓰지 말자.

4. accept header : 클라이언트가 원하는 데이터 타입의 정보와 함께 리소스를 서버측에 요청하는 것.

5. CRUD는 URI에 포함하지 않는다.

6. HTTP 메서드 종류 : POST(해당 URI의 한단계아래 문서를 생성), GET(해당 URI를 탐색), PUT(해당 URI를 변경), DELETE(해당 URI를 삭제), PATCH( 앞에 열거한 PUT 메서드 대신에 PATCH를 사용하는 것을 권장)


7.반응형 웹에서의 REST - m. 으로 시작하는 도메인을 쓰거나, uri 에 모바일 디바이스를 위해서 m등의 폴더를 추가하는 것을 지양한다. 같은 내용의 컨텐츠이고 화면의 사이즈만 다른것이므로 uri를 다르게 하는것보다, uri는 같게 하고 다른 방법으로 화면 최적화를 구현하는 것을 지향하는 것이 좋다.

8. 다국어의 REST -  위 내용과 마찬가지로 언어이슈도 하나의 URI를 쓰고, 다른 방법으로 다국어지원을 하는것이 좋다.



'개발 단어 사전' 카테고리의 다른 글

uri란  (0) 2019.02.11
api란?  (0) 2019.02.11
HyperText Transer Protocol(HTTP)  (1) 2019.01.31
프록시란?  (0) 2019.01.31
재귀 함수  (0) 2019.01.29

+ Recent posts