Flutter

REST API 와 HTTP

hamiric 2024. 12. 1. 19:37

REST API 란?

Representational State Transfer API

즉, 서버의 DB 자원을 URL로 구분지어서 설계한 API를 뜻하며, 자원을 정의하고 자원에 대한 주소를 지정하는 방법 전반에 대한 규칙을 말한다. 요청 URL로 어떤 데이터에 접근할 지 알기 쉽다는 특징이 있다.

 

[ 기술 스터디 ] REST API

나는 rest 하지 못했다.

velog.io

 

REST API 사용시 CRUD작업은, 해당 메서드들로 수행할 수 있다.

  • C (Create)

POST (생성)

새로운 데이터를 만들 때 사용하는 메서드로, 서버에 데이터를 입력할때 사용된다.

 

  • R (Read)

GET (조회)

서버에서 데이터를 가져올때 사용하는 메서드로, 서버의 데이터를 가져오는 사용자들이 주로 사용하는 메서드

 

  • U (Upadate)

PUT (수정)

서버의 기존 데이터를 전체 수정할때 사용되는 메서드.

수정시 데이터의 모든 상태를 업데이트해서 보내야 하며, 해당 메서드는 서버의 해당 데이터를 새로 업데이트한다.

(미작성부분은 null 처리)

 

PATCH (부분 수정)

서버의 기존 데이터의 일부분만 수정할때 사용되는 메서드.

수정시 데이터의 수정할 부분만 입력해서 보낼 수 있으며, 해당 메서드는 서버의 수정할 부분만 새로 업데이트한다.

 

  • D (Delete)

DELETE (삭제)

서버의 데이터를 삭제할때 사용되는 메서드

 

 

HTTP 요청 구조

[Method] [URI] [HTTP Version]
[Headers]

[Body]

 

HTTP를 통해 REST API에 요청을 보낼때, 서버에게 보내지는 구조

  • URI

접근할 리소스(데이터)

 

  • Method

리소스 접근시 수행 할 작업을 정의하는 곳

 

  • Headers

HTTP를 통한 요청시 추가정보를 입력되는 곳

 

  • Body

요청시 전송할 데이터를 입력되는 곳 (Post, Put, Patch 같은 데이터가 필요한 메서드일때)

 

 

HTTP 응답 구조

[HTTP Version] [Status Code] [Status Text]
[Headers]

[Body]

 

REST API가 요청을 받아 HTTP를 통해 사용자에게 응답을 보낼때 보내지는 구조

  • Status Code

응답 상태코드로써, 응답이 어떤 상태로써 이루어졌는지를 알려주는 코드

해당 상태코드는 약속으로써 정해져 있는 응답코드를 사용한다.

 

HTTP response status codes - HTTP | MDN

HTTP response status codes indicate whether a specific HTTP request has been successfully completed. Responses are grouped in five classes:

developer.mozilla.org

 

  • Status Text

상태 텍스트, 상태 코드와 동일한 역할을 하되, 상태코드가 열일하므로 잘 사용되지는 않는다.

 

  • Header

응답시 추가정보를 입력하는 공간

 

  • Body

실질적인 응답 데이터 (JSON, XML) 가 들어있는 장소.