UUID로 유저 고유 식별자 생성@RequestBody 사용@PostMapping
public String join(@RequestBody Member member) {
member.setUid(UUID.randomUUID().toString());
memberStore.put(member.getUid(), member);
return "새로운 멤버가 생성됨! - nickname: " + member.getNickname();
}
GET /api/v3-2/members 로 전체 회원 조회Math.random() 으로 id 부여 (간단 처리)@PostMapping
public String createFeedback(@RequestBody Feedback feedback) {
feedback.setId((long) (Math.random() * 1000000 + 1));
feedbackList.add(feedback);
return "Feedback created: " + feedback;
}
GET /api/v3-2/feedback 으로 전체 피드백 조회if (member.getAccount().isBlank()) {
return ResponseEntity
.badRequest()
.body("계정은 필수값입니다.");
}
HttpHeaders headers = new HttpHeaders();
headers.add("my-pet", "cat");
headers.add("hobby", "swimming");
return ResponseEntity
.ok()
.headers(headers)
.body(memberList);
@GetMapping("/{account}")
public ResponseEntity<?> findOne(@PathVariable String account) {
Member found = ...;
return ResponseEntity.ok(found);
}
@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/api/v3-3/*")
.allowedOrigins("https://127.0.0.1:5500")
.allowedMethods("GET")
.allowedHeaders("*");
}
}
@GetMapping("/pet-page")
public String petPage(Model model) {
model.addAttribute("petList", petList);
return "chap4-1/pet";
}
<c:forEach var="pet" items="${petList}">
<li>${pet.name}, ${pet.kind}, ${pet.age}살, ${pet.injection}</li>
</c:forEach>
@GetMapping("/hobby-page") public String hoobyPage(Model model) { model.addAttribute("username", "또치"); model.addAttribute("hobbies", List.of("동생 괴롭히기", "폭식하기")); return "hobby"; }
<h2 th:text="${username}"></h2>
<li th:each="hobby : ${hobbies}" th:text="${hobby}"></li>
@RestController 와 @ResponseBody 기반의 JSON API 처리법 학습@RequestBody, @PathVariable, @RequestParam 활용법 익힘ResponseEntity를 활용한 예외 처리와 커스텀 응답 구성