REST

정하윤·2023년 6월 28일
0

REST (Representational State Transfer)

  • 하나의 URI는 하나의 리소스(Data)를 가진다(대표한다).
  • 서버에 접근하는 다양한 뷰(웹,모바일,…)를 공통의 데이터로 처리 가능하도록 설계, 구현하는 규칙

REST API

  • 외부에서 특정 URI를 통한 정보를 제공하는 방식(OpenAPI)

  • 리소스 URI를 컬렉션/항목/컬렉션보다 더 복잡하게 요구하지 않는 것이 좋습니다.

      ex)    /orders/100/list

    → REST방식으로 데이터(서비스)제공이 가능한 형태를 restful하다

REST 설계 제약사항

  • Client-Server : 요청/ 제공은 표준 인터페이스로 구현,상호독립적인 관계

    • Stateless : 클라이언트의 (컨텍스트) 정보가 서버에 저장없이 클라이언트로 저장/처리

    • Cacheable : 서버의 응답은 캐싱될 수 있어야하고, 확장성, 성능개선 고려

    • Code on Demand : Java(Applet/Script)등을 통해서 클라이언트가 수행가능한 동작 제공

    • Uniform Interface : 표준 인터페이스를 통해서 클라이언트/서버 각각 개발/ 발전 가능해야함

⇒ 리소스가 URI로 식별 가능해야함.

리소스정보를 생성, 수정, 삭제할때 HTTP상태 메세지를 사용해야함. 

메세지는 스스로 설명가능해야함.

서비스의 상태(status)는 하이퍼링크를 통해서 전이되어야함.
⇒ REST API를 완전하게 구현은 어렵다. → WEB API/HTTP API 로 동작을 구현

Spring에서는 REST방식에 대한 지원

      3버전: @ResponseBody 어노테이션

      4버전: @RestController 어노테이션
      
      REST 방식 개발 원칙

REST 방식 개발 원칙

  • URI가 특정 데이터(값)을 의미해야함

  • 주소를 사용할땐 가능하면 명사(복수형) 사용

    • order(x) → orders(o)
  • URI를 전달할때는 데이터도 같이 전달 가능해야함

  • HTTP메서드에 따른 호출은 특정의미를 부여한다.

    • GET : 조회 (select)

    • POST : 생성 / 추가 (create)

    • PUT : 수정 (update), PATCH - 부분수정

    • DELETE : 삭제 (delete)

  • 일반적인 URI 주소

0개의 댓글