REST API

gusdas·2022년 3월 23일
0

용어 정리

목록 보기
11/28

REST API란?

자원을 이름으로 구분하여 해당 자원의 상태를 주고 받는 모든것을 의미한다.
HTTP URI를 통해 자원을 명시하고 HTTP Method(GET, POST, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Opertation을 적용하는 것을 의미합니다.

CRUD Opertation :

Create 생성(POST)
Read 조회(GET)
Update 수정(PUT)
Delete 삭제(DELETE)

쉽게 말하자면 클라이언트와 서버 통신시에 HTTP 메소드를 통해 CRUD를 적용한다.

왜 사용할까?

옛날엔 서버와 클라이언트가 PC 브라우저로 통일이 되어있었다. 그렇다보니 그냥 JSP ASP PHP등의 여러가지 서버언어로 웹페이지를 구성하고 작업했다.

하지만 최근엔 PC뿐만 아니라 핸드폰, 태블릿, TV 다양해졌기 때문에 그에 맞춰 서버를 맞추는건 비효율적이기 때문에 메시지기반 XML,JSON 같은 client단에서 치환가능한 형태로 통신하기로 하면서 서버와 클라이언트의 분리했다.

REST의 특징

  1. 클라이언트 / 서버 구조

  2. 무상태성(Stateless)

    • 서버에서 작업을 할 때 상태정보를 기억할 필요가 없고 들어온 요청에 대해서만 처리해주면 된다.

  3. 캐시 처리 기능(Cacheable)

  4. 자체 표현 구조(Self - descriptiveness)

    • JSON을 이용한 메시지 포멧을 이용하여 직관적으로 이해

  5. 계층화 (Layered System)

    • 클라이언트와 서버가 분리되어 있기 때문에 중간에 프록시 서버, 암호화 계층 등 중간매체를 사용할 수 있어 자유도가 높다.

  6. 유니폼 인터페이스 (Uniform)

    • Http 표준에만 따른다면 모든 플랫폼에서 사용이 가능하며, URI로 지정한 리소스에 대한 조작을 가능하게 하는 아키텍쳐 스타일을 말한다

REST의 규칙

  1. 슬래시 구분자 ( / )는 계층 관계를 나타내는데 사용한다.

  2. URI 마지막 문자로 슬래시 ( / )를 포함하지 않는다.

    • URI에 포함되는 모든 글자는 리소스의 유일한 식별자로 사용되어야 하며 URI가 다르다는 것은 리소스가 다르다는 것

    • 역으로 리소스가 다르면 URI도 달라져야 한다.

  3. 하이픈 ( - )은 URI 가독성을 높이는데 사용한다.

  4. 밑줄 ( _ )은 URI에 사용하지 않는다.

  5. URI 경로에는 소문자가 적합하다.

    • URI 경로에 대문자 사용은 피하도록 한다.
  6. 파일확장자는 URI에 포함하지 않는다.

    • REST API 에서는 메시지 바디 내용의 포맷을 나타내기 위한 파일 확장자를 URI 안에 포함시키지 않는다.

    • Accept Header 를 사용한다.
      GET : http://restapi.exam.com/orders/2/Accept: image/jpg

  1. 리소스 간에 연관 관계가 있는 경우

    /리소스명/리소스ID/관계가 있는 다른 리소스 명
    GET : /users/2/orders (일반적으로 소유의 관계를 표현할 때 사용)

Ref


https://velog.io/@somday/RESTful-API-%EC%9D%B4%EB%9E%80#restful-api
profile
웹개발자가 되자

0개의 댓글