728x90

목차

     

    1. REST란?

     1) 풀네임은 'Representational State Transfer'이다. 뜻은  '표현된 상태 전송'으로 '자원을 원하는 형태로 표현하여 전송하면 결과를 상태로 전송 받는다'로 쉽게 정리할 수 있다. 하지만 이것만 가지고는 제대로 이해하기 힘들 것이다. 더 자세하게 정리해보자.

     

    2. REST를 자세히

    ※ Representational의 '표현된'은 URI를 통해 자원을 지정해야하는데 이때 'HTTP 메서드'를 사용한다.

     - HTTP 메서드 의미 : ① 자원에 대한 행위를 표현 ② Client가 Server에 요청하는 목적이나 종류를 알리는 수단

      예) GET  /keyword/1  HTTP/1.1

     - REST API를 충족할 때 크게 2가지 케이스를 충족시켜야 한다. 케이스는 다음과 같다.

      ① URI를 통해 자원을 지정해야한다.

      ② HTTP 메서드를 통해 어떻게 사용할 것인지 표현한다.

     

    이 두 가지 케이스에 대해 알아보자.

     

    1)  URI 네이밍 규칙.

     ① 표준용어를 기준으로 네이밍한다.( URI 네이밍은 URI의 의도 파악을 쉽게하기 위해 중요하다. )

     ② 네이밍은 명사를 사용해야한다.

      * 하지만 예외적으로 동사가 허용되는 경우도 있다. 예를 들어 데이터를 수집하는 프로그램을 동작하기 위한 통신을 하는 경우 '/Execute' 로 표현할 수 있다.

     ③ 계층 관계 표현으로 슬래시('/')를 사용해야 한다.

      - 1052번 학번의 학생을 조회하고 싶다면 다음과 같이 표현할 수 있다.

      - 예) /student/1052

     ④ 하이픈(-)을 사용해서 네이밍할 수 있다.

      - 가독성 향상을 위해 지각한 학생을 조회하기 위해 다음과 같이 표현할 수 있다.

      - 예) /student-tardy

     ⑤ 소문자만 사용해야한다.

     ⑥ 파일 확장자를 표시하지 않는다.

     ⑦ 쿼리 스트링을 이용할 수 있다.

      - 예) /student?type=tardy

     

    2) HTTP 메서드 종류.

      - HTTP 메서드는 GET, HEAD, POST, PUT, DELETE, OPTIONS, TRACE, CONNECT 등이 있다. 하지만

        REST API에서는 POST, GET, PUT, PATCH, DELETE 5가지만 사용한다.

      ① POST : 자원을 생성 / body를 통해 생성할 데이터를 지정한다.

      ② GET : 데이터 조회

      ③ PUT : 데이터 수정하고 body를 이용한다. body로 넘겨주지 않는 데이터는 null값으로 업데이트 된다.

     - 전체를 업데이트하고, 업데이트할 데이터가 없는 경우 신규로 생성(멱등성을 가진다.)

      ④ PATCH : 데이터 수정하고 body를 이용한다. body로 넘겨주지 않는 데이터는 기존값으로 업데이트 된다.

      - 일부를 업데이트하고 멱등성을 가지지 않을 수 있다.

      ⑤ DELETE : 데이터 삭제 ( body를 사용하지 않고 경로변수(PathVariable) 사용 )

    구분 CRUD구분 메서드 엔드포인트 바디
    사용여부
    생성 CREATE POST /keyword {body}
    조회 READ GET /keyword/1  
    수정 UPDATE PUT /keyword/1 {body}
    삭제 DELETE DELETE /keyword/1  

    * 멱등성 : 업데이트 API를 여러번 호출해도 데이터의 일관성을 보장함(결과가 똑같다.)

    728x90
    TOP