[출처] [IT지식/API] REST API란? (feat. HTTP 응답 코드)|작성자 Jaeeun

 

1. REST?

Representational state transfer의 약자로, 백엔드와 클라이언트의 커뮤니케이션 방식을 의미한다.

특정 기술을 의미하는 것이 아니라, HTTP로 통신할 때 가장 적합한 방식을 말하는 것으로

URL을 통해 자원을 명시하고, HTTP Method를 통해 해당 자원에 대한 행위를 정의한다.

즉, 소프트웨어가 관리하는 데이터, 이미지 등의 정보를 주고 받는 가장 적합한 방법인 것이다.

다른 말로는 RESTful Web services라고도 불린다.

2. REST의 구성요소

1) 자원(URL)

자원은 데이터를 의미하며, 다른 말로는 리소스라고도 불린다.

그리고 이러한 리소스는 URI(URL)을 통해서 표현된다.

출처 : https://www.youtube.com/watch?v=PmY3dWcCxXI

이때, 여러 개의 데이터를 한 번에 식별하고 싶다면 데이터를 묶음의 URI를 사용하는데

이를 Collection이라고 부른다.

그리고 컬렉션 안에 있는 각각의 데이터를 Element라고 부른다.

즉, 컬렉션은 복수의 형태를 띠며 Element가 모여있는 것을 의미한다.

REST API는 URL을 보면, 어떤 자원인지 쉽게 파악할 수 있다(슬래시로 구분).

2) 행위(HTTP Method)

위의 리소스는 그저 데이터가 존재하는 것이기 때문에 어떠한 작업도 하지 못한다.

때문에 반드시 '행위'를 통해 데이터를 전달하거나 받아와야 한다.

행위의 방법에는 'POST, GET, PUT, DELETE' 4가지가 존재하며, 이를 Method라고 부른다.

HTTP REST Create → POST(생성) Read → GET(조회) Update → PUT(전체 수정) Delete → DELETE(삭제)

또한, REST API는 HTTP를 이용한 것이기 때문에 HTTP Method를 사용한다.

3) 자원의 형태 (JSON)

클라이언트가 HTTP Method를 통해서 데이터 조작을 요청하면, 서버가 적절한 응답을 보내게 된다.

이때 하나의 자원은 JSON, XML, TEXT 등 여러 형태로 표현된다.

보통은 JSON, XML을 통해 데이터를 주고 받는다.

3. REST API와 RESTFul

REST API는 REST 기반으로 서비스 API를 구현한 것을 의미한다.

1) REST API 설계 규칙

REST API를 올바르게 설계하기 위해서는 지켜야하는 몇가지 규칙이 있다.

URI는 동사보다는 명사를, 대문자보다는 소문자를 사용해야 한다. ② 행위를 포함하지 않는다.언더바(_) 대신 하이픈(-)을 사용한다. ④ 파일 확장자(.jgp 등)URI에 포함하지 않는다. ⑤ 마지막에 슬래시(/)를 포함하지 않는다. → 슬래시 구분자는 계층 관계를 나타낼때 사용하므로 맨 마지막에는 사용하지 않는 것이 좋다.

ex)

//행위를 포함하지 않는다. GET resource/delete/1 //X, uri에 delete 포함 DELETE resource/1 //O

2) RESTFul

RESTFul은 REST API를 제공하는 웹 서비스를 의미한다.

4. HTTP 응답 코드 의미

1) 성공

상태코드 의미
200 클라이언트 요청을 정상적으로 수행
201 클라이언트가 리소스 생성 요청, 성공적으로 생성됨(POST)

2) 실패

상태코드 의미
400 클라이언트 요청에서 문제가 발생했을 때
401 클라이언트가 인증되지 않은 상태에서 보호된 리소스를 요청했을 때
403 응답하고 싶지 않은 리소스를 클라이언트가 요청했을 때
405 클라이언트가 요청한 리소스에서 사용 불가능한 Method를 이용했을 때
상태코드 의미
301 리소스 URI가 변경되었을 때
상태코드 의미
500 서버에 문제가 있을 때

 

 

'iOS > 기술' 카테고리의 다른 글

코코아팟 출시하기  (2) 2021.09.28
MVVM, Reactive, RxSwift  (0) 2021.08.17
React Native 란?  (0) 2021.08.17

+ Recent posts