Spring Boot 애노테이션 - 최민준
@RestController
@Controller + @RequeseBody의 기능을 한다
@Controller
@RequestMapping("/api/v1/ex-api")
public class ExController {
@ResponseBody
@GetMapping(value = "/nametest")
public String getName() {
return "minjun";
}
@ResponseBody
@GetMapping(value = "/nametest2")
public String getName() {
return "minjun2";
}
@ResponseBody
@GetMapping(value = "/nametest3")
public String getName() {
return "minjun3";
}
}
Java
복사
기존에는 데이터 반환이 필요할 때마다 @ResponseBody를 api마다 달아줬어야 해서 api가 많아질 경우 번거로웠다.
@RestController는 해당 과정을 해결해준다
@RestController
@RequestMapping("/api/v1/get-api")
public class GetController {
@RequestMapping(value = "/hello", method = RequestMethod.GET)
public String hello() {
return "Hello World";
}
@GetMapping(value = "/name")
public String getName() {
return "minjun";
}
@GetMapping(value = "/variable1/{variable}")
public String getVariable1(@PathVariable String variable) {
return variable;
}
@GetMapping(value = "/request1")
public String getVariable2(@RequestParam String name,@RequestParam String email,@RequestParam String organization) {
return String.format("%s %s %s",name,email,organization);
}
@GetMapping(value = "/request2")
public String getVariable3(@RequestParam Map<String,String> emp) {
emp.entrySet().forEach((map) ->{
System.out.printf("key:%s value:%s\n",map.getKey(),map.getValue());
});
return "완료";
}
@GetMapping(value = "/request3")
public String getVariable3(MemberDto memberDto) {
return memberDto.toString();
}
}
Java
복사
@GetMapping vs @RequestMapping
@RequestMapping(value = "/hello", method = RequestMethod.GET)
public String hello() {
return "Hello World";
}
@GetMapping(value = "/name")
public String getName() {
return "minjun";
}
Java
복사
•
수업 시간에 등장한 Mapping 방법 같은 get 이지만 무엇이 다를까
•
@GetMapping과 @PostMapping어노테이션은 @PutMapping, @DeleteMapping, @PatchMapping과 함께 스프링 4.3부터 등장
@GetMapping의 장점
1. url 중복 사용 가능
@GetMapping(value = "/name")
public String getName() {
return "minjun";
}
@PostMapping("/name")
public String getName(@RequestBody String name) {
return name;
}
Java
복사
Mapping 방식에 따라서 같은 주소의 api여도 다르게 호출 할 수 있다.
2. 코드에 의미 명시
코드만 봐도 어떤 전송 방식을 처리하는지 확인할 수 있는 장점이 있다.
@RequestParam
@GetMapping(value = "/request1")
public String getVariable2(@RequestParam String name,@RequestParam String email,@RequestParam String organization) {
return String.format("%s %s %s",name,email,organization);
}
Java
복사
파라미터를 url에서 입력 받는다
@RequestBody
@PostMapping("/member2")
public String postMember(@RequestBody MemberDto memberDto) {
return memberDto.toString();
}
Java
복사
파라미터를 Body에서 입력 받는다
API 작성 - 조예지
본문
API 작성 - 정희준
HTTP 메서드에 해당하는 API를 개발 해보겠습니다. 데이터베이스는 설치하지 않고 외부의 요청을 받아 응답하는 기능을 구현해서 컨트롤러가 어떻게 구성되는지 알아보도록 하겠습니다.
spring initializr를 사용해 프로젝트를 생성 합니다.