점점 api가 전부 완성 되어가고 있다.
오늘은 main, soup, side에 따라서 데이터를 불러오는 api를 만들었다.
이걸 위해서 best 카테고리에서 카테고리 아이디를 사용하는 것처럼 main, soup, side에도 특정 카테고리 아이디를 넣어주고 불러올때 그 아이디를 통해서 데이터를 가져오는 방식으로 하려고 했는데 !
그냥 tag라는 컬럼을 따로 추가해줬다.
그래서
@Query("생략")
List<Banchan> findBanchansByTag(String tag);
요런식으로 만들어주고 간단히 해결하긴 했는데,
tag가 가만보니 상수여서 이넘으로 해주려다가,,일단은 모든 api 구현이 먼저라고 생각해서 넘어갔다.
오늘은 크게 한게 없지만, 데이터삽입하는데 용을 많이 썼다.
하면서 이렇게 하는게 맞나 싶었는데......
일단 내 Banchan 데이터들은 아래 이미지처럼 @Embedded 로 전부 연결되어있다. 즉 한 테이블에 Banchan에 대한 정보가 모두 담겨있다.
Banchan - BanchanDetail - BanchanDetailData 이런식으로 되어있다. 클래스이름도 이렇게 해놓음 ㅋㅋㅋ
Mock API에 나와있던 JSON 데이터들을 그대로 복사해서 Postman을 이용해서 PUT 하고 싶었다.
대충 POST로 들어온 데이터를 레포에 save()하는 api를 만들어서 하려고했는데, @Embedded 어노테이션이 달린 객체는 어떻게 데이터를 넣어야할지 몰라서 첨엔 걍 필드에 나와있는거만 데이터를 넣었다.
그러니까 위에 있는 이미지를 가지고 예를 들자면
name
, age
만 데이터를 포스트맨으로 넣고 UserDetail은 어떻게 해야할지 몰라서 일단 내비뒀었다.
그러다 어떻게 넣는 방법이 없을까? 생각하다가,
다시 이미지를 가지고 비유를 하자면
User Entity를 GET 해서 JSON이 어떤 형식으로 나오는지 봤다.
왜냐면, 그 형식을 그대로 따라서 JSON을 작성해서 POST하거나 PUT하면 데이터가 삽입되거나 바뀔것 같았다.
그래서 GET을 해서 봤더니 이런식으로 나왔다.
{
"name": "큐큐",
"age": 19,
"userDetail": {
"email": "kyukyu@velog.com",
"github": {
...
...생략
...
}
}
}
UserDetail과 Gitgub부분은 내가 지정했던 변수이름으로 나왔다.
그러니까 userDetail이라고 나온건 내가 private UserDetail userDtail;
이라고 했기 때문에 저렇게 나왔었다.
이걸 알고서 GET으로 알아낸 저 데이터 형식대로 데이터를 삽입했더니 한번에 잘 됐다!
Mock API에서 접속되는 데이터가 총 24개이고, 각 데이터가 Detail이라는 것을 가지고 있어서 총 48개 링크를 복붙 & 내 api에 맞게 조금 수정 하느라 힘들었다.
그래서 이렇게 하는게 맞는지 좀 의구심이 든다..최대한 노가다를 줄여보려 했으나 그래도 꽤 힘든 노가다가 필요했기 때문이다..