Computer Programming

REST API

SangRok Jung 2023. 1. 30. 23:24
반응형

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

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 메서드와 각 경로.

 

 

반응형