CRUD
웹 서비스의 사용자가 원하는 자원을 관리하는 방법 즉, 자원을 제공, 제작 및 갱신
Create - 생성
Read - 조회
Update - 갱신
Delete - 삭제
Get 요청에는 body의 내용물이 없어야 한다.
현업에서 User data를 List를 사용하는 경우 드물다.
package dev.ldk.crud.post;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
@Controller
@ResponseBody
@RequestMapping("post")
public class PostController {
private static final Logger logger = LoggerFactory.getLogger(PostController.class);
private final List<PostDto> postlist;
public PostController() {
postlist = new ArrayList<>();
}
@PostMapping("create")
public void createPost(@RequestBody PostDto postdto){
logger.info(postdto.toString());
this.postlist.add(postdto);
}
@GetMapping("read-all")
public List<PostDto> readPostAll(){
logger.info("in read all.");
return this.postlist;
}
@GetMapping("read-one")
public PostDto readPostOne(@RequestParam("id") int id){
logger.info("in read one");
return this.postlist.get(id);
}
@PostMapping("update")
public void updatePost(@RequestParam("id")int id,
@RequestBody PostDto postdto){
PostDto targetPost= this.postlist.get(id);
if (postdto.getTitle()!= null){
targetPost.setTitle(postdto.getTitle());
}
if (postdto.getContent() != null){
targetPost.setContent(postdto.getContent());
}
this.postlist.set(id,targetPost);
}
@DeleteMapping("delete")
public void delete(@RequestParam("id") int id){
this.postlist.remove(id);
}
}