스터디일지/JAVA SPRING
[Java Spring] 1 주차 강의 과제하기
똥쟁이핑크
2023. 8. 28. 22:24
https://github.com/teresa881016/Post_part1
https://www.notion.so/Lv-1-a7c973fe92324baa86eea24959a41d7b?pvs=4
과제
게시글 작성하는 API 만들기
API 명세서
API 명세서는 다음과 같다.
Method | URL | Request | Response |
POST | /api/posts | { "title" : "title", "content" : "content", "name" : "name", "password" : "password" } |
{"id" : "id", "title" : "title", "content" : "content", "name" : "name", "password" : "password" "fromDate :"yyyy-MM-dd 24:00:00", "toDate" :"yyyy-MM-dd 24:00:00"} |
GET | /api/posts | - | |
PUT | /api/{id} | { "title" : "title2", "content" : "content2", "name" : "name2", "password" : "password2" } |
{"id" : "id", "title" : "title2", "content" : "content2", "name" : "name2", "password" : "password2" "fromDate :"yyyy-MM-dd 24:00:00", "toDate" :"yyyy-MM-dd 24:00:00"} |
DELETE | /api/{id} | { "title" : "title", "content" : "content", "name" : "name", "password" : "password" } |
Database 연결하기
CMD를 열고 mysql -u root -p 를 치고 비번을 쳐서 create database post;를 해줬다.
다음 인텔리제이에 들어가서
필요한 정보 입력하고 연결 테스트 까지 성공했다.
시작이 좋은 줄 알았다.
이해하고 만들고 이해하고 만드는 시간이 엄청 오래 걸렸다.
에러 및 문제점 발생
- properties에 DB 연동 코드를 넣지 않아서 에러가 발생했다.
- GetMapping 에서 url을 /posts가 아닌 그냥 posts로 써서 에러거 발생했다.
- post 테이블에서 생성날짜는 넣었지만 id와 수정 날짜의 컬럼이 들어가지 않아 다시 만들었다.
- id 값이 null이 들어가서 매니저님께 여쭤보니 PostResponseDto 생성자에 내가 id를 넣지 않았다는걸 알게 됬다.
- id 값을 확인하고 password를 쳐서 수정 삭제를 해야 하는데 id는 확인 안하고 password만 확인해서 같은 password면 id 상관없이 모조리 삭제 됬다.
- GET 방식으로 불러올때 name에 contents값이 들어갔다. 아니면 contents값에 password가 출력되서 나왔다. 이 부분은 Controller에서 순서도 바꿔 줬지만 그럼에도 해결이 안나서 더 자세히 보니 PostResponseDto 생성자에서도 순서가 바뀌어서 그랬다. 순서를 맞춰주니 잘 들어갔다.
오늘까지 한 과제 결과는 API동작은 잘 됬고 비밀번호 맞게 들어가서 수정과 삭제 까지 다 되었다.
postman으로 확인해보니 잘 돌아갔다.
다만, 세부적인 사항은 조금 더 수정을 해야한다.
내일은 조금 더 강의를 듣고 수정을 하려한다.