제목 | RESTful API 재귀트리형 리소스 질문입니다. | ||
---|---|---|---|
글쓴이 | 지훈임돠 | 작성시각 | 2014/09/05 17:27:10 |
|
|||
가급적 Restful 하게 API 를 만들려고 하고 있습니다. 재귀트리형 리소스(용어가 적당한지 모르겠네요@@ 깊이있는 메뉴같은걸 생각하시면 편할 듯싶습니다.)는 보통 어떤식으로 구현하는지 궁금해서 여쭤봅니다. 제가 구현하려는 상태는 다음과 같습니다. 목록형 리소스는 재귀트리형 리소스는 특히 궁금한 부분은 GET items 의 역할을 이런식으로 나눠도 될지가 궁금하고, 혹시 다른방법도 있는지 궁금합니다. |
|||
다음글 | 나눔고딕 사용하시는 분들은 사용 중 이상 없으신가요? | ||
이전글 | jqGrid 셀렉트 박스 질문 입니다!!! (1) | ||
darkninja
/
2014/09/05 22:22:18 /
추천
0
|
앤드그리고
/
2014/09/08 11:39:02 /
추천
0
저도 비슷한 구조로 서비스를 만들고 있습니다.
(api 는 node.js, 웹사이트는 php 로 구현 중인데, endpoint만 보자면 질문하신님과 거의 비슷한 구조로 하고 있습니다.) GET items/ID/items - 특정 노드 후손 아이템(query 로 깊이조절) 다만, 이 부분에서 부모/자식 노드가 같은 타입(?) 일 경우에는 GET items/ID 이렇게 하나로 사용하고 있고, 부모/자식 노드가 다른 타입 일 경우에는 GET item/ID/item2/ID 형태로 사용하고 있습니다. |
지훈임돠
/
2014/09/11 09:15:30 /
추천
0
@조영운
저도 조영운님과 비슷하게 사용하고 있습니다. 제가 GET items/ID/items 는 후손 목록임을 누락하여 적었네요. URI 유일성을 유지하는게 좋다고 생각해서 GET items/ID 나 GET items/ID/items/ID 둘중 하나만 사용합니다 ㅎㅎ 재귀트리형 리소스는 GET items 를 어떻게 디자인 하시나요? |
지훈임돠
/
2014/09/11 09:18:37 /
추천
0
@다크닌자
DB 구조 부분이 고민이 되신다면 아래의 링크를 한번 참조하시는 것도 좋을꺼같습니다^^ http://blog.insightbook.co.kr/wp-content/uploads/1/cfile1.uf.14665F334E3A4EC10D9C25.pdf |
앤드그리고
/
2014/09/11 12:51:34 /
추천
0
작업중인 서비스에 재귀트리형(? 부모-자식 댓글 정도로 생각하면 맞을까요?) 구조가 없기 때문에 깊이 생각해보지 않았지만,
아마 현재 서비스에 적용을 해야 한다면 URI 는 위에 적은대로 GET items/ID 로만 사용하고, 부모-자식 관계는 서버에서 처리하되, 클라이언트에서 부모자식 관계 정보가 필요하다면, API 결과에 부모 정보를 포함 시킬 듯 합니다. ===== "댓글" 라는 리소스를 예로 들면 댓글 A 댓글 A-a 댓글 A-b 댓글 B 이렇게 있다면 API example /post/1/comments { id: 1, comment: "댓글 A" }, { id: 2, comment: "댓글 B" }, { id: 3, parent_id: 1, comment: "댓글 A-a", }, { id: 4, parent_id: 1, comment: "댓글 A-b", } 이런식으로 응답 데이터를 구성하고, 데이터를 화면에 뿌리는 작업은 별도로 처리 하도록 할 듯 합니다. |
지훈임돠
/
2014/09/11 14:52:48 /
추천
0
답변 감사드립니다. 일단은 http://jimliu.github.io/angular-ui-tree/ 여기에 나오는 형식처럼 해두었는데,
목록형과 트리형의 응답데이터 형태가 완전히 달라서 고민인데, 말씀하신 방법으로 하면 API 는 일관성있게 나오겠네요. 감사합니다. 고민좀 해봐야겠네요. |
darkninja
/
2014/09/13 07:49:17 /
추천
0
@ 지훈임돠
감사합니다. 다운받아서 보니 제대로 보이네요. |
유일하게 ci 에서 참고할수 있는 자료인데
이건 다 아실것이고...
json 데이타를 트리에 뿌려주는건 js tree 가 여러종류 있어서 문제가 안되는데
db 입출력에서 문제가 생기더군요!
검색을 해봐도 그놈이 그놈이고
자료가 많아지면 db 입출력에 상당한 부하가 걸릴것인데
입출력을 우선 할것인지
검색을 우선 할것인지에 따라 자신만의 알고리즘을 개발하여
...초보가 뭔 말을 하는것인지...
상당히 흥미있는 주제인데 항상 시간이 충분치 않으니
어떤 답변이 달릴지 기대됩니다 ㅋ