RESTful API를 위한 6가지 원칙과 네이밍
- Client-server 구조
- 서버와 클라이언트는 독립적
- 클라이언트는 오직 URIs 리소스만 알아야한다.
- 독립성
- Stateless (무상태성)
- 모든 정보는 http 메세지 안에
- 서버는 어떤 정보도 저장하지 않는다.
- 쿠키도 클라리언트에만 보관
- Cacheable
- 해당요청이 Cacheable 한지 cache-control 해더로 가능성 여부를 제공해야한다.(멱등성)
- Uniform interface
- identification of resource: 요청 시 개별자원을 식별할 수 있어야함
- manipulation of resources through representation: 어던 자원에 대해 작업하기위한 적절한 표현과 메타데이터를 충분히 갖추고 있다면 서버는 해당ㅈ원을 변경, 삭제할 수 있는 정보를 가지고 있단 의미
- self-descriptive message - 자신을 어떻게 처리해야하는지 정보를 포함
- hypermedia as the engine of application state: 단순히 결과뿐만이 아니라 결과에 대한 정보를 포함해야 함
- Layered system(다중 계층)
- api server, db server, 인증 서버 등등
- code on demand
- 서버가 클라이언트에서 실행시킬 수 있는 로직을 전송하여 클라이언트의 기능을 확장시킬 수 있다.
RESTful API Naming
URI 는 Resource 만 식별
- 리소스를 표한하기 위해 명사를 사용하라
- 문서
- 컬렉션
- 스토어
- 컨트롤 URI 혹은 컨트롤러
- 일관성이 핵심이다
- 계층 관계표현을 위해 / 를 사용하라
- 마지막 문자로 / 를 사용하지 마라
- 가독성을 위해 - 를 사용하라
- _언더스코어는 사용하지마라
- 소문자를 사용하라
- 파일 확장자를 사용하지 마라
- crud 함수명 사용하지마라
- 필터를 위해 쿼리 파라미터를 사용해