영원히 흘러가는 강
3장 오류 잡아보기 본문
728x90
근 1주일을 오류 잡는데 시간을 사용했지만 잘 정리된 글이 있어서 오류를 해결했다....
나름 괜찮은 삽질인듯하다.
어떤게 문제인지를 파악했고 왜 안되는지에 대해 이해 위의 글을 읽고 해결
105p.
@PutMapping("/api/v1/posts")
//@PutMapping->@PostMapping 으로 변경
@PostMapping("/api/v1/posts")
3장에서 posts를 진행중 책에서는
PostsResponseDto,PostsUpdateRequestDto 클래스를 생성해 주지 않기에 생성
PostsService에는 update 기능도 추가해줘야한다
경로 main/../service/PostsService.java
@RequiredArgsConstructor
@Service
public class PostsService {
private final PostsRepository postsRepository;
@Transactional
public Long save(PostsSaveRequestDto requestDto) {
return postsRepository.save(requestDto.toEntity()).getId();
}
@Transactional
public Long update(Long id, PostsUpdateRequestDto requestDto) {
Posts posts = postsRepository.findById(id).orElseThrow(() -> new IllegalArgumentException("해당 게시글이 없습니다. id=" + id));
posts.update(requestDto.getTitle(), requestDto.getContent());
return id;
}
public PostsResponseDto findById (Long id) {
Posts entity = postsRepository.findById(id).orElseThrow(() -> new IllegalArgumentException("해당 게시글이 없습니다. id=" + id));
return new PostsResponseDto(entity);
}
}
main/../web/dto
PostsResponseDto 생성
@Getter
public class PostsResponseDto {
private Long id;
private String title;
private String content;
private String author;
public PostsResponseDto(Posts entity) {
this.id = entity.getId();
this.title = entity.getTitle();
this.content = entity.getContent();
this.author = entity.getAuthor();
}
}
PostsUpdateRequestDto 생성
@Getter
@NoArgsConstructor
public class PostsUpdateRequestDto {
private String title;
private String content;
@Builder
public PostsUpdateRequestDto(String title, String content) {
this.title = title;
this.content = content;
}
}
728x90
'스프링 부트와 aws로 혼자 구현하는 웹 서비스' 카테고리의 다른 글
스프링 부트와 AWS로 혼자 구현하는 웹 서비스 (P.74) (0) | 2020.09.23 |
---|---|
스프링 부트와 aws로 혼자 구현하는 웹 서비스 (1) | 2020.09.22 |
가끔 이유를 모르는 오류 (0) | 2020.09.21 |
Comments