A> REST 방식이란?
서버에서 순수한 데이터만을 서비스 하는 방식이다.
데이터 서비스를 위해 HTTP 프로토콜 중 get/ post/ put/ delete
와 같은 전송방식으로 통신을 하는 것이다.
REST는
REpresentational State Transfer 의 약어로 하나의 URI가 하나의
고유한 리소스를 대표하도록 설계된다는 개념을 사용하는 것이다.
REST의 형태는
/project/board/123 - GET방식
이런형태이면 그 뜻은
123번의 글을 요청하는 것이다.
방식에 따라 요청의 의미가 다른데
GET 의 자료 요청
POST는 자료 작성
DELETE는 삭제
의 의미이다.
B>Spring 에서
어노테이션 종류
@RestController : REST 방식을 처리하는 Controller 라는 것을 명시
@ResposeBody : JSP 와 같은 뷰가 아닌 데이타 자체를 전달하기 위한 용도
==response 부분의 Body에 전달하겠다.
@PathVariable : URL 경로에 있는 값을 파라미터로 추출할때 사용
== /project/board/123 애서 123만 추출
@CrossOrigin : ajax의 크로스 도메인 문제 해결
@RequestBody : JSON 데이터를 원하는 타입으로 바인딩 처리
C> Spring에서의 준비
-- jackson-databind 라이브러리
-- jackson-dataformat-xml 라이브러리
-- gson 라이브러리
가 필요하다. pom.xml에 추가하자
D>@RestController
-- 스프링4부터 지원
-- 해당 컨트롤러의 모든 메서드는 REST 방식
-- @RestContoller 의 return 타입
-- 주로 ResponseEntity<> 타입
-- 그 외의 타입도 다 가능하다.
-- 메소드에 사용하는 GetMapping 등의 매핑 어노테이션 속성에서
produces 속성은 반환하는 타입이다.
1
2
3
4
5
6
7
8
|
@GetMapping(value = "/getText", produces = "text/plain; charset=UTF-8")
public String getText() {
log.info("MIME TYPE: " + MediaType.TEXT_PLAIN_VALUE);
return "안녕하세요.";
}
|
cs |
1. produces 의 종류와 리턴타입
a> produces 의 종류
-- "text/plain; charset=UTF-8"
-- { MediaType.APPLICATION_JSON_UTF8_VALUE, MediaType.APPLICATION_XML_VALUE }) 등
b> 반환 형태
기본적인 리턴타입은 xml 형식
uri에 .json 을 붙이면 json 형식으로 된다.
2.ResponseEntity<>
객체를 응답으로 보낼 때 사용, 응답코드 같은 것도 함께 보낼수 있다.
a> consumes 속성
요청으로 받을 속성을 명시
예시
1
|
@PostMapping(value = "/new", consumes = "application/json", produces = { MediaType.TEXT_PLAIN_VALUE })
|
cs |
3. @PathVariable
1
2
3
4
5
|
@GetMapping("/product/{cat}/{pid}") // /product/a/1 이라 할때
public String[] getPath(@PathVariable("cat") String cat, @PathVariable("pid") Integer pid) {
// cat = a pid= 1
return new String[] { "category: " + catt, "productid: " + pidd };
}
|
cs |
Mapping에 있는 path들을 변수처리하여 @PathVariable(변수) 형태로 넘긴다.
4.@RequsetBody
1
2
3
4
5
6
7
8
|
@PostMapping("/ticket")
public Ticket convert(@RequestBody Ticket ticket) {
log.info("convert.......ticket" + ticket);
return ticket;
}
|
cs |
티켓 객체를 요청의 Body를 ticket으로 받는다.
E> 전송방식의 종류
1.CRUD 관련
-- create : post
-- read : get
-- update : put
-- delete : delete
2.형태
작업 |
전송방식 |
URI |
등록 |
POST |
/members/new |
조회 |
GET |
/members/{id} |
수정 |
PUT 혹은 PATCH |
/members/{id} + body (json 데이터 등) |
삭제 |
DELETE |
/member/{id} |
'웹 > spring' 카테고리의 다른 글
spring --12.스프링 시큐리티 (0) | 2021.03.03 |
---|---|
spring --13 트랜잭션 (0) | 2021.02.26 |
spring --11.예외처리 (0) | 2021.02.22 |
spring --9. 파일 업로드 (0) | 2021.02.22 |
spring --0. 설정 (0) | 2021.02.22 |