REST(REpresentational State Transfer) 정의

Posted by : at

Category : study


REST의 정의

  • REpresentational State Transfer의 약자로, 자원의 이름으로 구분하여 정보를 주고 받을수 있는 모든것을 의미 한다.

  • REST는 HTTP 프로토콜을 이용하기 때문에 웹의 장점을 최대한 활용이 가능한 아키텍처이다 REST는 네트워크 상에서 Client 와 Server 사이의 통신 방식중 하나이다.

REST의 개념

  • 자원에 대해서 CRUD(Create, Read, Update, Delete)연산을 수행하기 위한 URI(Resource)로 GET, POST 방식을 사용하여 요청을 보낸다.
     URI 와 URL의 차이점?
    URL은 Uniform Resource Locator로 인터넷 상의 자원의 위치를 의미한다. 
    URI는 Uniform Resource Identifier로 인터넷 상의 자원을 식별하기 위한 문자열의 구성이다. 
    

    REST의 구성요소

  • 자원(Resource) -URI
      자원에는 고유한 ID가 존재하고, 이 자원은 Serve에 존재한다.
      자원을 구별하는 ID는 '/exgroups/:exgroup_id'와 같은 HTTP URI 이다.
      Client는 URI를 이용해 자원을 지정하고 해당자원의 상태에 대해 Server에 요청한다. 
    
  • 행위(Verb) - Method ```Diff HTTP 프로토콜의 Method를 사용 HTTP 프로토콜은 GET, POST, PUT, PATCH, DELETE의 Method를 제공한다. (CRUD)

GET - Read : 정보 요청 POIST - Create : 정보 입력 PUT - Update : 정보 업데이트 (데이터 전체를 변경) PATCH - Update : 정보 업데이트 (데이터 일부만 변경) DELETE - Delete : 정보 삭제


  - 표현 (Representation of Resource)
```Diff 
  Client의 Server가 데이터를 주고 받는 형태로 JSON, XML, TEXT, RSS 등이 있다.
  JSON, XML를 통해 데이터를 주고 받는것이 일반적

REST API란?

  • API(Application Programming Interface)란?
      API는 응용 프로그램에서 사용할 수 있도록 , 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있도록 만든 인터페이스 이다. 
    
  • REST API의 정의
      REST의 특징을 기반으로 서비스 API를 구현
    

REST API 와 RESTful API의 차이점

  • RESTful은 REST의 설계 규칙을 잘 지켜서 설계된 API를 RESTful한 API라고 한다. 즉, REST의 원리를 잘 따르는 시스템을 RESTful이란 용어로 지칭

URL Rules

  1. 마지막에 / 포함하지 않는다. http://api.test.com/users

  2. _(underbar) 대신 -(dash)를 사용한다. (dash)의 사용도 최소한으로 설계한다. 정확한 의미나 표현을 위해 단어의 결합이 불가피한 경우 반드시 -(dash) 사용한다. http://api.test.com/users/post-commnets

  3. 소문자를 사용한다. http://api.test.com/users/post-commnets

  4. 행위(method)는 URL에 포함하지 않는다. DELETE http://api.test.com/users/1/posts/1

  5. 컨트롤 자원을 의미하는 URL 예외적으로 동사를 허용한다. 함수처럼, 컨트롤 리소스를 나타내는 URL은 동작을 포함하는 이름을 짓는다. http://api.test.com/posts/duplicate


About Ghosts
Ghosts

Hi I a Ghosts, a Web Developer and Designer.

Email : memories109@gmail.com

Website : https://ghostsdev.github.io/

About Ghosts

개인정보 공유, 포트폴리오 제작 , 블러그 관리, 하루 일상, 사진 갤러리

Star
Useful Links