본문 바로가기
📕 Spring Framework/Spring 개념 정리

2022.05.08 「RestFul한 api? & ResponseEntity의 사용」

by GroovyArea 2022. 5. 8.
어김 없이 스프링 프로젝트를 진행중이다. 일주일 전 View를 없애고 좀 더 Back에 집중된 api를 설계하는 것으로 초점을 맞췄다. 
handler 메서드의 반환 값을 단순히 json 형식으로 보여주면 되는 거 아니냐? 라고 생각을 했지만 검색을 여러번 해보니 정말 확실하게 알기 전까지는 함부로 생각하지 말자라는 결론을 내렸다.. 어렴풋이 배웠던 rest api가 떠올랐고 제대로 공부를 하고 이용을 해서 restful한 api를 만들어야겠다는 생각에 개념정리를 결심하게 되었다. 또 반환 타입으로 ResponseEntity의 사용이 많은데 이 타입을 왜 사용하는지도 한번 알아봐야겠다.

Rest가 정확히 뭘까??

Representational State Transfer -> 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것을 의미

즉 REST란 

  1. HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고,
  2. HTTP Method(POST, GET, PUT, DELETE)를 통해
  3. 해당 자원(URI)에 대한 CRUD Operation을 적용하는 것을 의미

 

REST 구성 요소

  1. 자원(Resource) : HTTP URI
  2. 자원에 대한 행위(Verb) : HTTP Method
  3. 자원에 대한 행위의 내용 (Representations) : HTTP Message Pay Load

 

REST의 특징

  1. Server-Client(서버-클라이언트 구조)
  2. Stateless(무상태)
  3. Cacheable(캐시 처리 가능)
  4. Layered System(계층화)
  5. Uniform Interface(인터페이스 일관성)

REST를 사용하는 이유

  • Http 표준 프로토콜에 따르는 모든 플랫폼에서 사용이 가능함
  • 범용성을 보장함
  • API 메시지를 통해 의도하는 바를 쉽게 파악 가능
  • 서버와 클라이언트의 역할을 명확히 분리함!

 

REST API란?

REST의 원리를 따르는 API

 

REST의 설계 규칙

  1. URI는 명사를, 소문자를 사용해야 함.
  2. 마지막에 / 을 포함하지 않는다. (계층 구조를 나타내기 때문)
  3. 언더바 대신 하이픈을 사용
  4. 파일 확장자는 URI에 포함하지 않음
  5. 행위 자체를 포함하지 않음.

1번 예시
2번 예시
3번 예시
4번 예시
5번 예시

 

HttpEntity 클래스

Http 요청 또는 응답에 해당하는 HttpHeader와 HttpBody를 포함하는 클래스

 

ResponseEntity 클래스

HttpEntity 클래스를 상속받아 구현한 클래스는 

RequestEntity, ResponseEntity 

따라서 ResponseEntity 는 HttpStatus, HttpHeaders, HttpBody를 포함!

 

상태코드(Status), 헤더(headers), 응답데이터(ResponseData) 를 담는 생성자도 존재

 

이런식으로 내용을 응답 가능하다.

 

참조 : https://devlog-wjdrbs96.tistory.com/182

 

[Spring Boot] ResponseEntity란 무엇인가?

먼저 REST API가 무엇인지는 아래 블로그를 먼저 잘 읽어보자. https://meetup.toast.com/posts/92 REST API 제대로 알고 사용하기 : TOAST Meetup REST API 제대로 알고 사용하기 meetup.toast.com 1. ResponseEn..

devlog-wjdrbs96.tistory.com

참조 : https://khj93.tistory.com/entry/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-REST-API%EB%9E%80-REST-RESTful%EC%9D%B4%EB%9E%80

 

[네트워크] REST API란? REST, RESTful이란?

REST API란 REST를 기반으로 만들어진 API를 의미합니다. REST API를 알기 위해 REST부터 알아보도록 하겠습니다. REST란? REST(Representational State Transfer)의 약자로 자원을 이름으로 구분하여 해당 자원..

khj93.tistory.com

 

반응형