[BACK-END]/[SPRING]

REST API와 Spring 실습

지기음 2023. 4. 26. 20:11

REST 란 ?

  • REST (Representational State Transfer) 하나의 URI는 하나의 고유한 리소스를 대표하도록 설계된다는 개념에 전송방식을 결합해서 원하는 작업을 지정하는 방식 

REST 아키텍처 스타일 원칙

  • 균일한 인터페이스 (서버가 표준 형식으로 정보를 전송함)
  • 무상태 (서버가 이전의 모든 요청과 독립적으로 모든 클라이언트 요청을 완료하는 통신방법)
  • 계층화 시스템 (클라이언트와 서버 사이의 다른 승인된 중개자에게 연결할 수 있으며 여전히 서버로부터 응답을 받음)
  • 캐시 가능성 (캐싱을 지원)
  • 온디맨드 코드 (클라이언트 기능을 일시적으로 확장하거나 사용자 지정할 수 있습니다.

 

장점 및 단점

  • 확장성 유연성, 독립
  • 딱 정해진 표준이 없음 (암묵적인 표준만 있음 지켜도되고 안지켜도 되고 ~~)

 

REST 방식 

 

POST : /blog/byon26 (쓰기)

GET :   /blog/byon26/1 (읽기)

PUT :   /blog/byon26  (수정)

DELETE : /blog/byon26/1 (삭제)

 

 

REST API 설정 

jackson library 

jackson-databind -> JSON 포멧

jackson-dtaformat-xml -> XML

---> pom.xml에 라이브러리 추가 

 

REST 관련 Annotation

@RestController : Controller가 REST 방식을 처리하기 위한 것임을 명시 (ResponseBody 안써도 됨)

@ResponseBody : JSP 같은 뷰로 전달되는 것이 아니라 데이터 자체를 전달 

@PathVariable : URL 경로에 있는 값을 파라미터로 추출 ex) PathB=Variable String isbn

@CrossOrigin : Ajax의 크로스 도메인 문제를 해결 ( 모두 허용 = *)

@RequestBody : JSON 데이터를 원하는 타입으로 바인딩 

 

Cotroller 단에서의 사용법 

1. ResponseEntity<?>의 ?에 반환 타입을 지정하여 뷰 단에서 사용할 수 있게 전달 

2. 결과값가 상태코드를 반환하여 (반환 리턴 값 : HttpStatus) 뷰단에서 처리 

3. 뷰단에서는 Ajax를 이용하여 비동기 통신으로 결과값 출력

 

 

더 공부해야 할 부분 

: 페이징 처리 , 게시판 만들어 보기 

'[BACK-END] > [SPRING]' 카테고리의 다른 글

Spring 개념 및 DI  (0) 2023.04.18
Spring MVC  (0) 2022.12.16
Spring bean  (0) 2022.12.14
Spring 백엔드 기초 중 기초 [회원관리]-(2)  (0) 2022.12.07
Spring 백엔드 기초 중 기초 [회원관리]-(1)  (0) 2022.12.07