자바 스프링 기초문제연습
2023. 2. 21. 17:20ㆍQUIZ
1. "Hello, World!"를 출력하는 REST API를 만들어보세요.
- 요청 URL: /hello
- 요청 방식: GET
- 응답 메시지: "Hello, World!"
@RestController
public class HelloController{
@GetMapping("/hello")
public String hello(){
return "Hello World";
}
}
풀이:
@RestController 어노테이션을 사용하여 REST API를 구현하였습니다.
@GetMapping 어노테이션을 사용하여 GET 요청을 처리하며,
/hello 경로로 요청이 오면 "Hello, World!" 문자열을 반환합니다.
2. 간단한 게시판을 만들어보세요. 게시글에는 제목과 내용이 포함되며, 작성자와 작성일도 표시해야 합니다.
게시글은 목록 형태로 보여지며, 상세 페이지에서는 제목, 내용, 작성자, 작성일을 모두 볼 수 있어야 합니다.
또한 새로운 게시글을 작성할 수 있는 기능도 포함되어야 합니다.
public class Post {
private String title;
private String content;
private String author;
private Date createdDate;
public Post(String title, String content, String author, Date createdDate) {
this.title = title;
this.content = content;
this.author = author;
this.createdDate = createdDate;
}
// getter, setter 메소드 생략
}
@RestController
public class PostController {
private List<Post> posts = new ArrayList<>();
@PostMapping("/posts")
public ResponseEntity<Void> createPost(@RequestBody Post post) {
post.setCreatedDate(new Date());
posts.add(post);
return new ResponseEntity<Void>(HttpStatus.CREATED);
}
@GetMapping("/posts")
public List<Post> getAllPosts() {
return posts;
}
@GetMapping("/posts/{postId}")
public ResponseEntity<Post> getPostById(@PathVariable int postId) {
Post post = posts.stream()
.filter(p -> p.getId() == postId)
.findFirst()
.orElse(null);
if (post == null) {
return new ResponseEntity<Post>(HttpStatus.NOT_FOUND);
} else {
return new ResponseEntity<Post>(post, HttpStatus.OK);
}
}
}
풀이:
게시글 컨트롤러에서는 /posts 경로를 통해 게시글 목록을 조회하거나 게시글을 추가할 수 있도록 구현하였습니다. @PostMapping 어노테이션을 사용하여 POST 요청을 처리하며, @RequestBody 어노테이션을 사용하여 요청 바디의 JSON을 Post 객체로 변환합니다. @GetMapping 어노테이션을 사용하여 GET 요청을 처리하며, /posts 경로로 요청이 오면 게시글 목록을 반환합니다. @PathVariable 어노테이션을 사용하여 URL 경로에서 postId 값을 추출하고, 해당 postId에 해당하는 게시글을 찾아서 반환합니다.