1. Spring MVC
2. Postman
https://testmanager.tistory.com/342
개발은 위 사항을 숙지하였다는 가정하에 진행하며, 이해가 안 될 때마다 들어가서 보도록 하자.
이번에 다뤄볼것은 cotroller를 이용하여 포스트맨을 통해 JSON 타입으로 데이터를 간단하게 주고받아보려 한다.
controller와 user라는 패키지를 새로 만들어 각각의 패키지에 testController.java와 request를 받을 Param.java을 만들어준다.
Param.java
package studyTest.test.User;
public class Param {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
정말 간단하게 만들어 볼 것이기 때문에 name 만 파라미터 값을 받아보도록 하자.
testController.java
package studyTest.test.controller;
import org.springframework.web.bind.annotation.*;
import studyTest.test.User.Param;
@RestController
public class testController {
@PostMapping("/test")
public Param post(@RequestBody Param param) {
Param param1 = new Param();
param1.setName(param.getName());
return param1;
}
}
testController를 통해 맵핑(@PostMapping)을 한 후, 받은 값을 다시 JSON 형태로 반환하는 형태이다.
생성자를 통해 param1이라는 객체를 생성하여 받은 파라미터 값을 저장 후 JSON 형태로 return을 하는 구조이다. 간단한 코드이기에 긴 설명이 필요하진 않지만 각각의 어노테이션을 살펴보도록 하자.
🤔 어노테이션 이란?
사전적으로는 "주석"이라는 의미를 가지고 있으며, 프로그램 코드에 포함된 것이 아닌 프로그램에 관한 데이터를 제공해주며 정보를 추가하는 방법이다. 즉, 어노테이션을 사용하면 코드가 깔끔해지고 재사용이 가능하다.
@controller 또는 @RestController
: controller의 경우에 Model 객체를 만들어 데이터를 담고 View를 찾는 것이지만 RestController는 객체만을 반환하고 JSON 또는 XML 형식으로 HTTP 응답에 담아 전송을 한다. RestController는 @controller+@ResponseBody와 동일한 형태를 지니고 있으며
가장 큰 차이점으로는 모든 메소드가 뷰 대신 객체로 작성된다.
위 코드서는 View가 사용되지 않았기에 @RestController로 데이터 값만 확인하였다!
@Get/Post/Delete/Put/Patch + Mapping
: controller의 URI 메소드를 정하는데 쓰이며, 요청받는 형식을 Get/Post/Delete/Put/Patch 등으로 정할 수 있다. 위에서는 Post 방식을 사용하기 위해서 @PostMapping을 사용하였다.
그렇다면, 코드가 잘 작동되는지 확인하기 위해 서버를 켜고 포스트맨을 통하여 데이터를 주고받아보도록 하자.
메인클래스인 TestAplication.java에서 서버를 실행하게 되면
밑에 창의 실행을 보면 아래와 같이 8080 포트에 서버가 열렸다는 것을 확인할 수 있다. 정상적으로 서버가 열린 것을 확인하였으니 포스트맨으로 데이터를 보내보도록 하자.
위와 같이 전송방식을 POST로 설정하고 자신의 로컬 호스트의 포트번호와 맵핑시킨 주소를 입력 후 Body에서 raw -> JSON으로 선택 후 필드에 { "name" : "Hello-Spring" }이라는 JSON 형식으로 Send 해주게 되면
데이터가 JSON 형식으로 주고받아진 것을 확인할 수 있다.
'모험가의 Spring > Spring' 카테고리의 다른 글
Spring을 이용한 CRUD 구현_Create (0) | 2022.07.26 |
---|---|
Spring 기초 : SpringDataJpa 사용하기 (0) | 2022.07.20 |
Spring 기초 : 간단한 회원정보 입력받기 + MYSQL + JPA (0) | 2022.07.17 |
Spring 기초 : Mysql + Spring 연동 (0) | 2022.07.17 |
Spring 공부에 들어가기전에 (1) | 2022.07.16 |