/////
Search

221027

작성자
조예지
최민준
날짜
2022/10/27
학습 내용
SpringBoot(Get,Post,Put,Delete,Swagger)
텍스트

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를 사용해 프로젝트를 생성 합니다.

GET API 만들기

POST API 만들기 (insert에 주로 사용)

PUT API 만들기

DELETE API 만들기

Swagger