2021. 6. 24. 22:36ㆍSpring
이번에는 REST API 에 대해서 알아 봅시다.
REST API
REST API 는 비동기 서버 라고 생각을 하시면 되겠습니다.
REST API 를 사용해서, 데이터(객체)를 반환할 수도 있고, 데이터(객체)를 전달 받을 수도 있습니다.
REST API 는 @RestController 를 사용하는 데요
지금까지의 spring mvc 구조에서는 컨트롤러에서 뷰 리졸버로 view 에 대한 데이터를 전달해 주었는데, @RestController 는 해당 페이지로 요청한 클라이언트에게 특정한 데이터(객체)를 돌려 줍니다.
이를 실습해 보기 위해서, "크롬 웹스토어" 에 들어가서 "Yet Another Client" 를 설치해 주세요
설치를 완료하면 브라우저 창 오른쪽 상단에, 아래와 같이 나옵니다
클릭을 하면, 새로운 브라우저 창에 아래와 같이 나올 겁니다.
그러면 실습할 준비는 모두 끝이 났습니다.
이제, 아래처럼 클래스 ( 컨트롤러 ) 를 만들어 주세요.
이렇게 작성이 완료 되었다면, 서버를 실행시켜 주세요 ( 저는 Tomcat )
이제 REST Client 로 가서, URL을 http://localhost:(포트번호)/프로젝트명/getText 쓰고 아래의 Send Request 를 누르면 아래처럼, 데이터를 받아 올 수 있습니다.
REST API 는 기본적으로, json(객체) 를 반환하기 때문에, json 형태가 아니고, Text 를 반환시키려면 produces = "text/plain" 을 작성 해줍니다.
그리고, 요청이 들어왔기 때문에, 제 이클립스 에서는 실행됐다 고 문자열을 출력했습니다 ( system.out.println )
이렇게, REST API 는 비동기로 서버에 요청하고 반환받는 서버 입니다.
이번에는, json(객체) 를 반환 받아 봅시다.
JAVA 에서 json 을 사용하려면, jackson 라이브러리가 반드시 필요합니다.
아래의 코드를 "pom.xml" 추가하고, Maven Update를 해줍시다.
위의 과정이 완료가 되었다면, 컨트롤러에 아래의 코드를 추가 시켜 줍시다.
※ TestVO 는 name, age, date, birth 를 멤버변수로 가지고 있습니다
이제 또 REST Client 에서 요청 해 봅시다.
이번에는 json 의 형태로 값을 반환 받았습니다.
이번에는 데이터를 전달해 볼까요? 데이터를 받을 때는 @RequestParam 을 사용합니다.
데이터를 여러개 받고 싶다면 아래의 코드처럼 @PathVariable 을 사용 합니다.
어디서 많이 본 것 같은 형태죠? fetch 할 때 비동기 API URL 하고 똑같은 형태 입니다.
Get 방식은, 전달하는 데이터의 내용을 produces 에 작성 합니다.
지금까지 사용한 예제들을 보면, 다 Get 방식으로 요청이 들어왔죠?
REST API 의 전송은 POST, GET, PUT, DELETE 가 있으며, 각각 등록, 조회, 수정, 삭제 의 뜻이 있습니다.
그래서, GET 방식의 전송이 가장 많이 일어나고, PUT, DELETE 전송은 대부분 막아 놓습니다 ( 다른 누군가가 서버에 접속해서 데이터를 무단 수정, 삭제 할 수 있기 때문에 )
POST 방식은 아래처럼 사용 합니다.
POST 방식은, GET 방식과는 달리, URL 에 데이터를 넘기는 것이 아닌, payload 에 데이터를 작성해서 넘겨주어야 합니다.
오늘은 이렇게 REST API 에 대해서 간단하게 알아 보았습니다.
'Spring' 카테고리의 다른 글
Day90 - [Spring]검색페이징 ( 게시판 검색 구현 ) (2) | 2021.06.24 |
---|---|
Day90 - [Spring]페이징, 페이지네이션 (0) | 2021.06.23 |
Day89 - [Spring]게시판 기능 구현하기 (0) | 2021.06.22 |
Day88 - [Spring]타일즈 뷰 템플릿(Tiles View Template) (0) | 2021.06.22 |
Day88 - [Spring]롬복(Lombok) 설치 및 사용법 (0) | 2021.06.21 |