최근에 사용해본 카카오톡이나 AWS에서도 그렇고 'REST API' 혹은 'RESTful API'라는 것을 많이 사용하는 것 같은데 그것이 무엇인지 알아보았다.

HTTP(Hypertext Transfer Protocal)에 대한 기본 개념

HTTP 메시지 : 요청 메시지/응답 메시지

요청(request) 메시지

응답(response) 메시지

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/1b4c6305-6fa0-463d-b942-d93d512deaa3/Untitled.png

<aside> <img src="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/94a32d94-3479-4f40-beb7-02e0cf92555c/다운로드.png" alt="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/94a32d94-3479-4f40-beb7-02e0cf92555c/다운로드.png" width="40px" /> # HTTP Message 예시


</aside>

+) 요청 방식(method)와 상태 코드

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/8c88ba18-a21f-4a85-b5e7-c4449e3ef893/Untitled.png

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/70d5ba3d-70c9-422b-aebd-ed1e61dae36b/Untitled.png


REST API = REST 구조를 갖는 API

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/1cd43e5f-511d-42f5-ac2a-b5ec6610218c/Untitled.png

REST의 기본 요소 : Method, Resource, Representation of Resource

  1. Method

    앞서 8가지의 요청 방법이 있었지만 실제로는 아래 4가지만 알고 있어도 무방하며,

    CRUD(Create, Read, Update, Delete)의 표준 데이터베이스 기능을 수행

    CRUD(Create, Read, Update, Delete)의 표준 데이터베이스 기능을 수행

    그 중에서도 GET과 POST를 현실적으로 가장 많이 사용한다. (HTML의 폼에서 지정할 수 있는 method가 이 두가지 밖에 없기 때문)

  2. Resource

    자원 즉, URI를 말한다. URI는 인터넷 상의 자원을 식별하기 위한 문자열의 구성, URL은 인터넷 상의 자원의 위치.

    https://s3-us-west-2.amazonaws.com/secure.notion-static.com/1c6a6fbb-7356-4a88-b943-283da21f4706/Untitled.png

  3. Representation of Resource

    Client가 서버에 자원에 대한 조작을 요청하면 서버는 이에 대한 적절한 응답, 즉 표현(Representation)을 해줘야 한다. 응답 메시지에는 JSON(Javascript Object Notation), XML 등의 포맷이 있고, 최근에는 JSON을 많이 쓰는 추세이다.

    JSON은 그 이름에도 불구하고 사용 언어와 상관이 없을 뿐 아니라 인간과 머신이 모두 읽을 수 있기 때문에 가장 널리 사용된다.

    HTTP POST, <https://github.com/do0ori/test>
    {
         "users" : {
                        "name" : "do0ori"
    	   }
    }
    

RESTful API : REST의 특징을 잘 살려서 RESTful하게 만든 API

REST API란? | IBM

[Web] REST의 특징과 RESTful API

REST API(RESTful API, 레스트풀 API)란 - 서버, 구현, 사용법

[Network] REST란? REST API란? RESTful이란? - Heee's Development Blog

REST API 란 ?