반응형
REST API (Representational State Transfer)
HTTP 요청을 할 때 어떤 URI에 어떤 Method를 사용할지에 대한 개발자들 사이에서 널리 사용되어지는 약속.
특징
- URI(Uniform Resource Identifier)와 HTTP를 기반으로 하며 브라우저 간 호환성이 좋은 JSON 형식을 주로 사용한다.
- 사용자 인터페이스가 아닌 데이터를 전송한다.
- HTML등의 코드를 받지 않고 직접 구축 하기 위해 백엔드의 데이터만 제공하는것
- 응답과 요청 데이터만 바뀌며 전체적인 서버측 논리는 바뀌지 않는다.
- 클라이언트 및 프론트엔드는 전송 받은 데이터로 작업을 진행한다.
- 일관된 인터페이스의 원칙 : API에 명확하게 정의된 API 엔드 포인트를 가져야한다.
- 무상태 상호작용 원칙 : RESTful API 구축 시 클라이언트와 서버는 완전히 분리되어 있고 히스토리를 공유하지 않는다.
API (Application Programming Interface)
- 응용 프로그램에서 사용할 수 있도록, 운영체제나 프로그래밍 언어에서 제공하는 기능을 제어할수 있게 해주는 인터페이스.
- 어플리케이션 간에 지정된 형식으로 요청과 응답을 할 수 있도록 연결해준다.
- 카셰어링, 맛집 앱에서 사용하는 실시간 지도도 API를 사용한것이다.
- Naver Maps API같은 것들이 있다.
- REST API는 다른 컴퓨터나 프로그램과의 소통을 쉽게 할 수 있다.
REST
- 의미
- 문서, 그림, 데이터 등의 자원을 이름으로 구분해서 해당 자원에 대한 상태, 정보를 주고 받는다.
- HTTP Method를 활용해서 해당 자원에 대한 CRUD를 적용하는 것을 의미한다.
- HTTP Method중 GET, POST, PUT, DELETE, PATCH를 사용한다.
- 특징
- 각 요청이 어떤 정보나 동작을 위한 것인지 그 모습 자체만으로 추론이 가능하다.
RESTful
일반적으로 REST를 구현하는 웹 서비스를 나타내기 위해 사용되는 용어.
REST API’를 제공하는 웹 서비스를 ‘RESTful’하다고 할 수 있다.
REST Protocol
Request
- Header => 감싸서 헤더에 담아서 보낸다.
- Authorization
- Body
- Pararameter
- Content-Type
- xxx-urlencoded = GET => https://api.xxxx.com/user/get?id=3432254&cat_id=e8r0e9ut024ut04
- application/json = POST/PUT =>
{
"key1" : "value1",
"key2" : "value2"
}
Method in DB
- GET
- SELECT * FROM db_table_name WHERE
- POST
- INSERT
- add row
- PUT
- UPDATE
- update data in row
- DELETE
URI
/api/user/get
Response
{
"key1" : "value1",
"key2" : "value2"
}
JSON
JavaScript Ovject Notation의 약자.
오늘날 가장 많이 쓰이는 API와 소통하는 데이터 형식.
XML보다 간결하다.
JavaScript로 변환하기 쉬워 서버에서 Node.js 작업에 큰 이점이된다.
HTTP Methods
클라이언트에서 서버로 보내는 요청.
- GET : 서버로부터 리소스를 얻는다.
- POST : 서버로 리소스를 보낸다. 기존의 것을 덮어 쓰지 않는다.
- PUT : 리소스를 서버에 놓고 싶을 때 사용한다.
- PATCH : 기존 리소스 일부분을 업데이트 한다
- DELETE : 서버에 있는 리소스를 삭제한다.
API 엔드 포인트 : POST나 GET같은 HTTP 메서드와 각 경로.
반응형
'Computer Programming' 카테고리의 다른 글
Algorithm Performance evaluation(알고리즘 성능 평가) (0) | 2022.06.10 |
---|