์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- ์๊ณ ๋ฆฌ์ฆ
- ์น๊ฐ๋ฐ๊ธฐ๋ก
- ๋ฐฑ์๋
- ๋ฆฌ์กํธ
- SSE
- ํ๋ก๊ทธ๋๋ฐ
- ์คํ๋ง
- ์ฐ์ ์์ํ
- ์ปด๊ณต
- ๊ฐ๋ฐ์
- spring
- boj11653
- ๋ฐฑ์คํ์ด
- ํ์ด์ฌ
- ์ดํญ๊ณ์
- ๋ฆฌ์กํธ๋ค์ดํฐ๋ธ
- ChatGPT
- ์น๊ฐ๋ฐ
- ๊ทธ๋ฆฌ๋
- ๋ฐฑ์ค1436
- ์ฝ๋ฉํ ์คํธ
- ์ปด๊ณต์
- ์ปดํจํฐ๊ณตํ
- ์ฝ๋ฉ
- ํ๋ก ํธ์ค๋
- ๋ฐฑ์ค
- ๋ชจ๋ฐ์ผ์ฑํ๋ก๊ทธ๋๋ฐ
- ๋จ์ํ ์คํธ
- ์๋ฃ๊ตฌ์กฐ
- ๊ทธ๋ฆฌ๋์๊ณ ๋ฆฌ์ฆ
- Today
- Total
๐ป๐ญ๐ง๐
[์น ๊ฐ๋ฐ ํ๋ก์ ํธ] 4. ๋ชจ์ง๊ธ ๋ฑ๋ก ๊ตฌํ (๋ชจ์ง๊ธ๊ณผ ํ๊ทธ, ๋งค์น ์ฐ๊ฒฐ) ๋ณธ๋ฌธ
[์น ๊ฐ๋ฐ ํ๋ก์ ํธ] 4. ๋ชจ์ง๊ธ ๋ฑ๋ก ๊ตฌํ (๋ชจ์ง๊ธ๊ณผ ํ๊ทธ, ๋งค์น ์ฐ๊ฒฐ)
adorableco 2024. 1. 9. 19:15๋ชจ์ง๊ธ์ ๋ฑ๋กํ ์ ์๋ api๋ฅผ ๊ตฌํํด๋ณธ๋ค.
๋ชจ์ง๊ธ์๋ ๊ธฐ๋ณธ์ ์ธ title, content , category, (๋ฑ๋กํ๋ ์ฌ์ฉ์์) userEmail (โก๏ธ ์ด๊ฑด ํ ํฐ์ ์ด์ฉํ ์ ์๊ฒ ๋๋ฉด ๋ณ๊ฒฝํ ์์ ์ด๋ค.) ์ด ํ์ํ๋ค.
์ถ๊ฐ์ ์ผ๋ก ๋ชจ์ง๊ธ ๋ฑ๋ก ์์ ํจ๊ป ์์ฑํด์ผ ํ Match ๊ฐ์ฒด์ ํ๋๋ค์ด ํ์ํ๊ณ ์ฑ๋ณ, ๋์ด๋, ๋์ด๋ ๋ฑ์ ํ๊ธฐํ ์ ์๋ Tag ๊ฐ์ฒด๊ฐ ๋ค์ด๊ฐ๋ค.
(โ
Match : ๊ฒฝ๊ธฐ ์ธ์ ์, ๊ฒฝ๊ธฐ ์ฅ์, ๊ฒฝ๊ธฐ ๋ ์ง๊ฐ ๋ค์ด๊ฐ๋ค.)
ํ์ฌ๊น์ง์ ํจํค์ง ๊ณ์ธต ๊ตฌ์กฐ

๋๋ฆ๋๋ก ์ฒด๊ณ์ ์ผ๋ก ์ ๋ฆฌํ๋ ค๊ณ ๋
ธ๋ ฅ ์ค์ธ๋ฐ ์ํ๊ณ ์๋ ๋ชจ๋ฅด๊ฒ ๋ค..~
AddPostRequest.java
๋ชจ์ง๊ธ ๋ฑ๋ก ์ request body์ ๋ค์ด๊ฐ dto
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
public class AddPostRequest {
private String title;
private String content;
private String category;
private String userEmail;
private Match match;
private Tag tag;
public Post postToEntity(Tag tag, Match match, User user) {
return Post.builder()
.category(category)
.tag(tag)
.match(match)
.user(user)
.title(title)
.content(content)
.build();
}
public Match matchToEntity(User user) {
return Match.builder()
.user(user)
.category(category)
.headCnt(match.getHeadCnt())
.place(match.getPlace())
.matchDate(match.getMatchDate())
.build();
}
public Tag tagToEntity() {
return Tag.builder()
.ageType(tag.getAgeType())
.genderType(tag.getGenderType())
.levelType(tag.getLevelType())
.build();
}
}
์ฒ์์๋ ๋ฌด์จ ์๊ฐ์ด์๋์ง ๊ทธ๋ฅ Tag, Match ๊ฐ์ฒด์ ํ๋๋ค๋ ๋ค ๋ฐ๋ก๋ฐ๋ก ๋ฐ์์ ์ด๊ฒ๋ค์ ๋ค์ ๊ฐ๊ฐ์ dto ๋ก ๋ง๋ค๊ณ ์ด๊ฒ์ ์ํฐํฐ๋ก ๋ง๋ค์ด์ ๋ชจ์ง๊ธ ์ ์ฅ ์์ ํจ๊ป ์ถ๊ฐํ์ฌ ์ ์ฅํ๋ ๊ต์ฅํ ๋ณต์กํ ๋ฐฉ์์ผ๋ก ๊ตฌํ์ ํ๋ค. ์ ๋๋ก ๋์๊ฐ๊ธด ํ๋๋ฐ ์๋ฌด๋๋ ๋๋ฌด ๋ณต์กํด๋ณด์๊ณ ์ญ์๋ _request body_ ์ ๊ฐ์ฒด ์์ฒด๋ฅผ ๋ฐ์๋ ๋๋๊ฑฐ์๋ค..
์ด ๊ฐ์ฒด๋ฅผ ์ํฐํฐ๋ก ๋ณํํ๋ ๋ฉ์๋๋ matchToEntity(), tagToEntity() ๋ก ๋ง๋ค์ด์ postToEntity()์ ํจ๊ป dto ์๋ฐ ํ์ผ์ ๋์๋ค.
PostService.java
save ๋ฉ์๋๋ง ํ์ธํ๋ฉด ๋๊ฒ ๋ค.
public Long save(AddPostRequest dto) {
User user = userRepository.findByEmail(dto.getUserEmail()).orElseThrow(null);
Tag tag = dto.tagToEntity();
Tag savedTag = tagRepository.save(tag);
Match match = dto.matchToEntity(user);
Match savedMatch = matchRepository.save(match);
Post post = dto.postToEntity(savedTag,savedMatch,user);
postRepository.save(post);
return post.getPostId();
}
addPostRequest dto ์ ์๋ ์ํฐํฐ ๋ณํ ๋ฉ์๋๋ค์ ์ฌ๊ธฐ์์ ๋ชจ๋ ์ฌ์ฉํ๋ค. user ์ request body์ ๋ด๊ฒจ์ค๋ email์ ํตํด ์ฐพ์ ๊ฐ์ฒด์ด๋ค. tag, match ๋ ๋ชจ๋ __ToEntity() ์ ์ด์ฉํด ๊ฐ์ฒด์์ ์ํฐํฐ๋ก ๋ณํํ๋ค.
โ
์ฌ๊ธฐ์ ๋ฐ๋ก post์ ๋ด์ผ๋ฉด ์๋๊ณ ์ ์ฅํ๊ณ ๋ฆฌํด๋๋ ๊ฐ์ฒด๋ฅผ ๋ด์์ผ ์ค๋ฅ๊ฐ ๋์ง ์๋๋ค.
PostApiController.java
@PostMapping("/api/post")
public ResponseEntity<Map<String,Long>> addPost(@RequestBody AddPostRequest request) {
Long savedPost = postService.save(request);
Map<String,Long> response = new HashMap<>();
response.put("postId",savedPost);
return ResponseEntity.status(HttpStatus.CREATED).body(response);
}
๋ชจ์ง๊ธ ๋ฑ๋ก์ด ์๋ฃ๋๋ฉด response๋ก ๋ชจ์ง๊ธ ์ ์ฒด ๋ด์ฉ๋ณด๋จ ๊ทธ๋ฅ ๋ชจ์ง๊ธ id๋ง ๋ณด๋ด์ฃผ๋ฉด ๋ ๊ฒ ๊ฐ์๋ฐ...? ์ด๊ฒ๋ dto๋ก ๋ง๋ค์ด์ผ ๋ผ? ๋ผ๊ณ ์๊ฐํ๋๋ฐ ์ญ์ ๊ทธ๋ด๋ฆฌ๊ฐ ์์๋ค. Map<>์ ์ด์ฉํด "postId" ์ ์ ์ฅ๋ postId๋ฅผ ๋ด์์ฃผ๊ณ ResponseEntity body์ ์ ๋ฃ์ด์ค๋ค!
๊ฒฐ๊ณผ

๋ฑ๋ก ํ์ธ!

์กฐํ ํ์ธ!
๋ค์ ํ ์ผ
- ๋ชจ์ง๊ธ ์์ , ์ญ์ ๊ตฌํํ๊ธฐ
- ๋ค์ ๋ณด๋ ๋ชจ์ง๊ธ ์กฐํ ์ ์ฌ์ฉ์ ์ ๋ณด๊ฐ ๋ ํ์ํ๋ ์ถ๊ฐํ๊ธฐ (ํ๋กํ ์ด๋ฏธ์ง, (๊ณต๊ฐ ์) ์ฑ๋ณ ๋์ด๋)
- ๊ทธ๋ฆฌ๊ณ ๋ชจ์ง๊ธ ๊ด๋ จ api ๊ตฌํ์ด ๋ค ๋๋๋ฉด ์ด๋ ๊ฒฝ๊ธฐ ์ฐธ๊ฐ ์ ์ฒญ ๊ตฌํ!