728x90
반응형
2021.06.05 - [🌎Web Application/Spring Boot] - [Spring Boot/IntelliJ] Todo List 구현 1
2021.06.06 - [🌎Web Application/Spring Boot] - [Spring Boot/IntelliJ] Todo List 구현 2
Part1. Controller 작성
package com.example.controller;
import com.example.model.TodoEntitiy;
import com.example.model.TodoRequest;
import com.example.model.TodoResponse;
import com.example.service.TodoService;
import lombok.AllArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.stream.Collectors;
@CrossOrigin
@AllArgsConstructor
@RestController
@RequestMapping("/")
public class TodoController {
private final TodoService service;
@PostMapping
public ResponseEntity<TodoResponse> create(@RequestBody TodoRequest request) {
System.out.println("CREATE");
if (ObjectUtils.isEmpty(request.getTitle())) {
return ResponseEntity.badRequest().build();
}
if (ObjectUtils.isEmpty(request.getOrder())) {
request.setOrder(0L);
}
if (ObjectUtils.isEmpty(request.getCompleted())) {
request.setCompleted(false);
}
TodoEntitiy result = this.service.add(request);
return ResponseEntity.ok(new TodoResponse(result));
}
@GetMapping("{id}")
public ResponseEntity<TodoResponse> readOne(@PathVariable Long id) {
System.out.println("READ ONE");
TodoEntitiy result = this.service.searchById(id);
return ResponseEntity.ok((new TodoResponse(result)));
}
@GetMapping
public ResponseEntity<List<TodoResponse>> readAll() {
System.out.println("READ ALL");
List<TodoEntitiy> list = this.service.searchAll();
List<TodoResponse> response = list.stream().map(TodoResponse::new)
.collect(Collectors.toList());
return ResponseEntity.ok(response);
}
@PatchMapping("{id}")
public ResponseEntity<TodoResponse> update(@PathVariable Long id, @RequestBody TodoRequest request) {
System.out.println("UPDATE");
TodoEntitiy result = this.service.updateById(id, request);
return ResponseEntity.ok(new TodoResponse(result));
}
@DeleteMapping("{id}")
public ResponseEntity<?> deleteOne(@PathVariable Long id) {
System.out.println("DELETE ONE");
this.service.deleteById(id);
return ResponseEntity.ok().build();
}
@DeleteMapping
public ResponseEntity<?> deleteAll() {
System.out.println("DELETE ONE");
this.service.deleteByAll();
return ResponseEntity.ok().build();
}
}
Part2. Main Method 수정
package com.example;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class TodoServerApplication {
public static void main(String[] args) {
SpringApplication.run(TodoServerApplication.class, args);
}
}
그리고 RUN!
728x90
반응형
'⚙️Backend > Spring Boot' 카테고리의 다른 글
[SpringBoot/IntelliJ/Kotlin] GET API (0) | 2021.06.06 |
---|---|
[Spring Boot/IntelliJ] Todo List 구현 2 (0) | 2021.06.06 |
[Spring Boot/IntelliJ] Todo List 구현 1 (0) | 2021.06.05 |