참고 : 밑의 코드에서 MemberDto는 postId, title, content, createTime를 가지는 PostDto로 실행하였음
@RequestMapping(value = "/hello", method = RequestMethod.GET)
public String hello() {
return "Hello World";
}
@GetMapping(value = "/hello")
public String hello() {
return "Hello World";
}
// 1. 같은 변수명
@GetMapping(value = "/variable1/{variable}")
public String getVariable1(@PathVariable String variable) {
return variable;
}
// 2. 다른 변수명
@GetMapping(value = "/variable2/{variable}")
public String getVariable2(@PathVariable(value = "variable") String value) {
return value;
}
@GetMapping(value = "/request1")
public String getRequestParam1(@RequestParam String name, @RequestParam String email) {
return name+" "+email;
}
@GetMapping(value = "/request2")
public String getRequestParam2(@RequestParam Map<String, String> param) {
StringBuilder sb = new StringBuilder();
param.entrySet().forEach(map -> {
sb.append(map.getKey() + " : " + map.getValue() + "\n");
});
// param.forEach((key, value) -> sb.append(key).append(" : ").append(value).append("\n"));
return sb.toString();
}
@GetMapping(value = "/request3")
public String getRequestParam3(MemberDto memberDto){
return memberDto.toString();
}
@RequestMapping(value = "/hello", method = RequestMethod.POST)
public String hello() {
return "Hello World";
}
@PostMapping(value = "/request1")
public String postRequestBody1(@RequestBody Map<String, String> body) {
StringBuilder sb = new StringBuilder();
body.entrySet().forEach(map -> {
sb.append(map.getKey() + " : " + map.getValue() + "\n");
});
// body.forEach((key, value) -> sb.append(key).append(" : ").append(value).append("\n"));
return sb.toString();
}
@PostMapping(value = "/request2")
public String postRequestBody2(@RequestBody MemberDto memberDto){
return memberDto.toString();
}
@RequestMapping(value = "/hello", method = RequestMethod.PUT)
public String hello() {
return "Hello World";
}
@PutMapping(value = "/request1")
public String postMember(@RequestBody Map<String, String> body) {
StringBuilder sb = new StringBuilder();
body.entrySet().forEach(map -> {
sb.append(map.getKey() + " : " + map.getValue() + "\n");
});
// body.forEach((key, value) -> sb.append(key).append(" : ").append(value).append("\n"));
return sb.toString();
}
1. memberDto.toString() => content-type : text/plain 으로 일반 문자열
@PutMapping(value = "/request2")
public String postMemberDto1(@RequestBody MemberDto memberDto){
return memberDto.toString();
}
2. memberDto => content-type : application/json 형식
@PutMapping(value = "/request3")
public MemberDto postMemberDto2(@RequestBody MemberDto memberDto){
return memberDto;
}
@PutMapping(value = "/request4")
public ResponseEntity<MemberDto> postMemberDto3(@RequestBody MemberDto memberDto) {
return ResponseEntity
.status(HttpStatus.ACCEPTED) // 202
.body(memberDto);
}
@RequestMapping(value = "/hello", method = RequestMethod.DELETE)
public String hello() {
return "Hello World";
}
@DeleteMapping(value = "/{variable}")
public String DeleteVariable(@PathVariable String variable){
return variable;
}
@DeleteMapping(value = "/request1")
public String getRequestParam1(@RequestParam String variable){
return variable;
}
implementation 'org.springdoc:springdoc-openapi-ui:1.7.0'
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Info;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class SwaggerConfig {
@Bean
public OpenAPI springShopOpenAPI() {
return new OpenAPI()
.info(new Info().title("익명 게시판 API Document")
.description("익명 게시판 API 명세서입니다.")
.version("1.0.0"));
}
}
=> 책에선 springfox로 다루고 있어서 여러 변형 방법에 대해서는 공식문서로 공부해야겠음