그 동안 프로젝트 진행, 공부 등을 하며 메모해둔 CS 지식을 다시 복기할 겸 시리즈로 간단히 정리해보려고 합니다.
REST API를 제공하는 웹서비스
이해하기 쉽고 사용하기 쉬운 REST API를 만드는 것
- REST 기반으로 서비스 API를 구현하는 것
- HTTP 표준을 기반으로 구현, HTTP를 지원하는 프로그램 언어로 클라이언트/서버 구현 가능
- 자원에 대한 행위는 HTTP method로 표현 (GET, POST, PUT, DELETE 등)
URI에 HTTP method, 행위에 대한 표현이 들어가면 안된다.
경로 부분 중 변하는 부분은 유일값으로 대체( ex : id )리소스 형식
- Document : 객체의 인스턴스, DB 레코드와 유사
- Collection : 서버에서 관리하는 디렉토리, 도큐먼트를 모아놓은 집합이며 DB 스키마에 해당
- Store : 클라이언트에서 관리하는 리소스 저장소
- Controller : CRUD를 제외한 특정 기능을 요구, URI 마지막에 동사를 사용
URI는 정보의 자원을 표현
- Resource는 명사, 소문자를 이용
- Resource의
Document
이름은 단수 명사를 사용- Resource의
Collection
이름은 복수 명사를 사용- Resource의
Store
이름은 복수 명사를 사용
GET : /users/{user_id}/devices
일반적으로 소유 ‘has’의 관계를 표현할 때
- 클라이언트가 API문서에 따라 서버가 이해하는 방식의 요청 형식으로 전송
- 서버는 클라이언트를 인증하고, 클라이언트가 해당 요청을 수행하는 권한이 있는지 확인
- 서버가 요청을 수신하고 내부적으로 처리
- 서버가 클라이언트에 응답을 반환, 요청 성공했는지 여부를 알려주는
Http status code
와 클라이언트가 요청한 모든 정보 포함
- 요청 : 리소스 식별자(어떤 서버에 요청할 것인지), 메서드(get, post 등), HTTP 헤더
- 응답 : 상태 표시줄(status code), 메시지(ex - json 형식), 헤더(메타 데이터)