개발일지
5월 취업대비 - Restful API 본문
Restful API
REST 아키텍처 스타일을 따르는 API를 REST API라고 합니다.
웹상에서 사용되는 리소스를 HTTP URI로 표현하고 그 리소스에 대한 행위를 HTTP Method로 정의하는 방식입니다.
RESTful API는 두 컴퓨터 시스템이 인터넷을 통해 정보를 안전하게 교환하기 위해 사용하는 인터페이스입니다.
API
애플리케이션 프로그래밍 인터페이스(API)는 다른 소프트웨어 시스템과 통신하기 위해 따라야 하는 규칙입니다.
REST
REST( Representational State Transfer )는 API 작동 방식에 대한 조건을 부과하는 소프트웨어 아키텍처입니다.
REST란 웹상에서 사용되는 리소스를 HTTP URI로 표현하고 그 리소스에 대한 행위를 HTTP Method로 정의하는 방식입니다.
REST는 네트워크 상에서 Client(사용자)와 Server (서버)사이의 통신 방식 중 하나입니다. (자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것을 의미합니다.)
이 REST방식을 사용해서 데이터 CRUD를 수행하는 API가 REST API라고 합니다. 또는 RESTful 한 API다 라고도 합니다.
이런 RESTful API 설계 규칙에 따라 구현한다면 유저가 이해하기 쉽게 만들 수 있습니다.
RESTful API에는 다음과 같은 주요 구성요소를 포함하는 요청이 필요합니다.
고유 리소스 식별자
서버는 고유한 리소스 식별자로 각 리소스를 식별합니다. REST 서비스의 경우 서버는 일반적으로 URL(Uniform Resource Locator)을 사용하여 리소스 식별을 수행합니다. URL은 리소스에 대한 경로를 지정합니다. URL은 웹페이지를 방문하기 위해 브라우저에 입력하는 웹 사이트 주소와 유사합니다. URL은 요청 엔드포인트라고도 하며 클라이언트가 요구하는 사항을 서버에 명확하게 지정합니다.
메서드
개발자는 종종 Hypertext Transfer Protocol(HTTP)을 사용하여 RESTful API를 구현합니다. HTTP 메서드는 리소스에 수행해야 하는 작업을 서버에 알려줍니다. 다음은 4가지의 일반적인 HTTP 메서드입니다.
GET
클라이언트는 GET을 사용하여 서버의 지정된 URL에 있는 리소스에 액세스합니다. GET 요청을 캐싱하고 RESTful API 요청에 파라미터를 넣어 전송하여 전송 전에 데이터를 필터링하도록 서버에 지시할 수 있습니다.
POST
클라이언트는 POST를 사용하여 서버에 데이터를 전송합니다. 여기에는 요청과 함께 데이터 표현이 포함됩니다. 동일한 POST 요청을 여러 번 전송하면 동일한 리소스를 여러 번 생성하는 부작용이 있습니다.
PUT
클라이언트는 PUT을 사용하여 서버의 기존 리소스를 업데이트합니다. POST와 달리, RESTful 웹 서비스에서 동일한 PUT 요청을 여러 번 전송해도 결과는 동일합니다.
DELETE
클라이언트는 DELETE 요청을 사용하여 리소스를 제거합니다. DELETE 요청은 서버 상태를 변경할 수 있습니다. 하지만 사용자에게 적절한 인증이 없으면 요청은 실패합니다.
HTTP 헤더
요청 헤더는 클라이언트와 서버 간에 교환되는 메타데이터입니다. 예를 들어, 요청 헤더는 요청 및 응답의 형식을 나타내고 요청 상태 등에 대한 정보를 제공합니다.
데이터
REST API 요청에는 POST, PUT 및 기타 HTTP 메서드가 성공적으로 작동하기 위한 데이터가 포함될 수 있습니다.
파라미터
RESTful API 요청에는 수행해야 할 작업에 대한 자세한 정보를 서버에 제공하는 파라미터가 포함될 수 있습니다. 다음은 몇 가지 파라미터 유형입니다.
- URL 세부정보를 지정하는 경로 파라미터.
- 리소스에 대한 추가 정보를 요청하는 쿼리 파라미터.
- 클라이언트를 빠르게 인증하는 쿠키 파라미터.
reference.
RESTful API란 무엇입니까?.AWS.https://aws.amazon.com/ko/what-is/restful-api/
'frontEnd > 기술면접' 카테고리의 다른 글
5월 취업대비 - 프레임워크와 라이브러리 (0) | 2023.05.10 |
---|---|
5월 취업대비 - parameter와 argument의 차이 (0) | 2023.05.09 |
5월 취업대비 - Hoisting과 TDZ (0) | 2023.05.09 |
5월 취업대비 - 웹 페이지가 브라우저에 렌더링되는 과정 (0) | 2023.05.08 |
담임 기술면접 멘토링 ( 2회 ) - 브라우저 동작 원리 (0) | 2023.01.22 |