Web Development

RESTful API

doriver 2022. 7. 25. 16:55

https://dorivertt.tistory.com/82?category=1016826 

 

API , REST , REST API

인간 -- UI -- 컴퓨터(소프트웨어) -- API -- 소프트웨어(컴퓨터) 컴퓨터와 인간의 소통을 위한 UI ( user interface ) 소프트웨어들 사이의 소통을 위한 API ( application programming interface ) ( interface..

dorivertt.tistory.com

RESTful API

HTTP요청을 보낼때, 각 요청이 어떤 동작이나 정보를 위한것인지를, 그 요청의 모습 자체로 추론 가능하도록 하는, 개발자들 사이에 널리 지켜지는 약속(형식)

URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고,
HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원(URI)에 CRUD Operation이 적용됨을 알린다

 

리소스를 중심으로 디자인되는 REST API

* 클라이언트에서 액세스할 수 있는 모든 종류의 개체, 데이터 또는 서비스가 리소스에 포함된다

* 리소스마다 해당 리소스를 고유하게 식별하는 URI(Uniform Resource Identifier)가 있다

* 클라이언트는 리소스의 표현을 교환하여 서비스와 상호 작용한다. 많은 Web API가 교환 형식으로 JSON을 사용. 

 

* 전자 상거래 시스템에서 엔터티는 종종 컬렉션(주문, 고객)으로 그룹화된다

컬렉션은 컬렉션 내 항목과는 별도의 리소스이며 고유한 URI가 있어야 한다.

컬렉션을 참조하는 URI는복수 명사를 사용.

 

예) 주문 컬렉션 https://adventure-works.com/orders

컬렉션 URI에 HTTP GET 요청을 보내면 컬렉션에 있는 항목 목록을 검색한다.

컬렉션의 항목마다 고유의 URI가 있다. 항목의 URI에 대한 HTTP GET 요청은 해당 항목의 세부 정보를 반환한다.

 

* URI에 일관적인 명명 규칙을 적용해야한다.  
컬렉션 및 항목에 대한 URI를 계층 구조로 구성하는 것이 좋다. 
예)  /customers는 고객 컬렉션의 경로이고, /customers/5는 ID가 5인 고객의 경로

 

* 리소스 URI를 컬렉션/항목/컬렉션 까지만 하는게 좋다
예) /customers/1/orders/99/products 이건 별로, 다음과 같이 하는게 좋다
/customers/1/orders URI로 바꿔서 고객 1의 모든 주문을 찾은 후 /orders/99/products로 이 주문의 제품을 찾을 수 있다.

 

리소스 POST GET PUT DELETE
/customers 새 고객 만들기 모든 고객 검색 고객 대량 업데이트 모든 고객 제거
/customers/1 Error 고객 1에 대한 세부 정보 검색 고객 1이 있는 경우 고객 1의 세부 정보 업데이트 고객 1 제거
/customers/1/orders 고객 1에 대한 새 주문 만들기 고객 1에 대한 모든 주문 검색 고객 1의 주문 대량 업데이트 고객 1의 모든 주문 제거

 

HTTP 메서드 측면에서 API

http method 용도 crud
POST 지정된 URI에 새 리소스를 만든다. Create
GET  지정된 URI에서 리소스의 표현을 검색함. Read
PUT  지정된 URI에 리소스를 통째로 바꿀때 Update
PATCH 리소스의 일부를 바꿀때 Update
DELETE  지정된 URI의 리소스를 제거함 Delete

* 이것들의 기능이 특정 용도에 제한되어 있지는 않다
(POST,PUT,GET 하나로도 다할수 있다)

 

  속도 보안 전송량
GET 빠름 취약 제한적
POST 느림 O 제한 없음

* POST, PUT, PATCH 에는 BODY라는 주머니가 있어서 
정보를 GET 이나 DELETE보다 많이, 비교적 안전하게 감춰서 실어보낼수 있다

 

* 간단한 데이터 전송은 GET으로, 비밀번호 또는 양이 많은 게시물의 경우 POST

 

URI 일반적인 작성 규칙

1. URI는 동사보다는 명사를, 대문자보다는 소문자를 사용

2. (/)는 계층 관계를 나타내는 데 사용

3. 마지막에 슬래시 (/)를 포함하지 않는다.
4. 언더바(_) 대신 하이폰(-)을 사용한다.
5. 행위를 포함하지 않는다.

6. 파일확장자는 URI에 포함하지 않는다.

등등