API를 작성할 때, 리소스에 따라서 서로 다른 API규칙이 있다. 이 부분을 해결하기 위해 등장한 것이 바로 RESTfull API(rePresentational State Transfer) 이다. 이는 아키텍처의 제약 조건을 준수하는 애플리케이션 프로그래밍 인터페이스를 뜻한다. 즉, 웹 서비스를 만드는데 사용되는 제약모음으로 API를 만드는 규약 정도로 이해하면 된다.
- Client-Server : 서로 상호무관하게 작성해야 한다.
- Stateless : 무상태성, 접속했다는 사실을 기억해서는 안된다.
- Cacheable : 관련 정보를 서버에 저장할 수 있어야한다.
- Uniform interface : 동일한 인터페이스
- Layered system : 각 영역이 나뉘어져 있어야한다.
- Code on demand : 실행가능한 코드를 내려줘야 한다.
여기서 상위 5가지 규칙은 HTTP를 잘 작성하면되고 마지막 규칙은 Javascript의 영역이다. 우리는 여기서 더 자세히 알아야 하는 영역은 Uniform interface이다.
Uniform interface를 실현하기 위해서는 다음 규칙을 지켜서 네이밍을 하면 된다.
리소스를 나타내는데 명사를 사용해라
리소스의 4가지 대분류 : document/collection/store/controller
일관성있게 작성해라
/
를 사용하라/
를 붙이지 마라-
를 사용하라_
를 사용하지 마라CRUD 기능 이름은 URI에 사용하지 마라
어차피 어떤 기능을 하는지는 충분히 유추가 가능하다.
filter가 필요하면 query component를 사용하라