반응형
API
식당을 예로 손님은 Client, 점원은 API, 주방장은 Server로 생각할 수 있습니다. 손님이 점원에게 음식을 주문하고, 점원이 그 주문을 주방장에게 전달하며, 주방장이 음식을 준비한 다음, 점원이 그 음식을 다시 손님에게 전달하는 과정을 보여줍니다.
- 손님 (Client): 서비스를 이용하려는 사용자
- 점원 (API): 사용자의 요청을 받아서 내부 시스템(서버)으로 전달하고, 그 결과를 사용자에게 반환하는 역할
- 주방장 (Server): 요청을 처리하고 결과를 반환하는 내부 시스템
+------------------+ +------------------+ +------------------+
| 손님 | ---주문서---> | 점원 | ---주문서---> | 주방장 |
| (Client) | | (API) | | (Server) |
| | | | | |
| (음식 요청) | <---음식--- | (처리 요청) | <---음식--- | (요청 처리) |
+------------------+ +------------------+ +------------------+
이를 통해 API는 클라이언트의 요청을 서버에 전달하고 그 결과를 클라이언트에게 돌려주는 역할을 하는 것을 알 수 있습니다.
REST API
REST는 Representational State Transfer의 약자로, 네트워크 애플리케이션을 설계하기 위한 아키텍처 스타일입니다. 이는 URL을 사용하여 자원을 식별하고 클라이언트와 서버 간의 상태 정보를 교환합니다.
REST API의 장단점
- 장점
- URL만으로 API의 의도를 명확히 이해할 수 있습니다.
- 상태를 유지하지 않는(stateless) 특성으로 인해 클라이언트와 서버의 역할이 명확히 분리됩니다.
- HTTP 표준을 사용하는 모든 플랫폼에서 사용 가능합니다.
- 단점
- 사용할 수 있는 HTTP 메서드(GET, POST 등)의 개수에 제한이 있습니다.
- 설계를 위한 표준 규약이 부족합니다.
REST API 사용법
- URL에는 동사보다는 자원을 명시해야 합니다.
예시 적합여부 설명 /books/1 적합 동사를 사용하지 않고 자원을 명확하게 식별할 수 있습니다. /books/show/1
/show/books/1부적합 "show"와 같은 동사를 포함하고 있어 부적절합니다. - 동사는 HTTP 메서드를 이용하여 표현해야 합니다.
HTTP 메서드: POST, GET, PUT, DELETE, …설명 HTTP URL 용도 ID가 1인 책 조회 GET /books/1 CREATE(생성) 새 책 추가 POST /books READ(조회) ID가 1인 책 수정 PUT /books/1 UPDATE(수정) ID가 1인 책 삭제 DELETE /books/1 DELETE(삭제)
반응형