WILT-191031
오늘 한 일
- 블록체인 강의 듣고 정리
- 10-3 내용 듣고 정리 & 10주차 마무리
- K-MOOC 알기쉬운블록체인 참고
- node 게시물 전체확인, 수정, 삭제 API 만들기
- 게시물 전체확인:
get('/')
->find()
- 게시물 수정:
put('/:id)
->findOneAndUpdate()
- 근데 수정 후 수정된 객체 반환하고 싶어서 프로퍼티로
{returnNewDocument : true}
넣어줬는데 수정 전 기존 객체가 반환된다. 뭔가 다른 속성이 있나..? 업데이트는 잘 된다. 나중엔 그냥 id만 반환해서 안드로이드 게시물 확인창에서 바로 수정사항 확인할 수 있도록 하면 될 듯 - 게시물 삭제:delete('/:id)
->findOneAndDelete()
- 삭제 찾아보는데 몽구스 명령어 중
findOneAndDelete()
와findOneAndRemove()
가 있다. 차이점은 각 명령어가 불러오는 MongoDB의 명령어가 다르다는 것이었다. 몽구스가 몽고 디비를 이용하기 위한 툴이다보니 몽구스 명령어를 쓰면 그걸 알아서 몽고 디비 명령어로 바꿔서 실행해주나 보다. delete()는 몽고디비의 findOneAndDelete()를 호출하고, remove()는 findOndAndModify()를 호출한다고 한다. 공식 문서에 특별한 이유가 없으면 전자를 쓰라고 적혀 있었다. -
This function differs slightly from Model.findOneAndRemove() in that findOneAndRemove() becomes a MongoDB findAndModify() command, as opposed to a findOneAndDelete() command. For most mongoose use cases, this distinction is purely pedantic. You should use findOneAndDelete() unless you have a good reason not to.
- 게시물 전체확인:
- 안드로이드에 게시물 API 적용 (진행 중)
- 메인 게시판: 전체 게시물 보기 (완료)
- MVP 패턴으로 어댑터 구현해놓아서 어느 부분에서 서버 데이터 불러올지 고민했다. 1순위) presenter에서 데이터 불러오기, 2순위)어댑터에서 불러오기 로 잡았는데 다행히 첫 번째 계획대로 구현함
- 전체 게시물 보기를 위해서
presenter
에서 여러 객체를 불러온 다음 어댑터에 그걸 넣어주는 과정이 필요한데response.body
에 들어있는json
배열을 파싱하는 방법을 찾아봤다. - 데이터클래스에
Gson @SerializeName
추가,ArrayList<Post>->List<Post>
로 바꿔서response
객체 그대로 받아올 수 있도록 변경 - 그리고 기존에
adapter
에getItemCount(
)의 경우 List길이가 null일 때 오류가 발생해서 null이면 0을 반환하도록 바꿔줌 - 데이터클래스
Post
,presenter
,postList
(데이터가 들어있는 List) 등 하드코딩된 데이터 부분 전부 바꿔 줌. 내일 게시물 생성, 수정, 삭제 시 에도 신경써서 바꿔야 할 듯 - 현재 데이터클래스에
ObjectId
없는데 개별 게시물 들어가려면 해당 정보 있어야 하는 것 아닐까? 일단 내일 해 보기 - 오류)
java.lang.IllegalArgumentException: FormUrlEncoded can only be specified on HTTP methods with request body (e.g., @POST)
: form 형식으로 request body에 정보 안 담아도 되는 경우인데 서비스 안 메소드에 @FormUrlEncoded 태그 붙이면 발생하는 에러. 해당 태그 삭제하니 해결됨.
- 메인 게시판 아이템 클릭: 개별 게시물 보기 (예정)
- 게시물 생성 (예정)
- 게시물 수정 (예정)
- 게시물 삭제 (예정)
댓글남기기