2014-11-12 5 views
1

아직 개발중인 REST API에 관한 몇 가지 질문이 있습니다.REST API를 개선하는 방법은 무엇입니까?

나는 다음과 같은 엔드 포인트가 있습니다

  • /users.json : 모든 사용자
  • /users/$username.json의 목록을 보여줍니다 : 단일 사용자 자원을
  • /게시물을 보여줍니다. JSON은 :
  • /posts/$post_id.json 모든 게시물의 목록을 보여줍니다 : 단일 포스트 자원은 다음과 같습니다 단일 포스트 자원

을 보여줍니다 :

{"path": "http://api.myproject.com/posts/1.json", "id": 1, "author": "http://api.myproject.com/users/kristof.json", "image": "/images/posts/cxyUzlPo.jpg", "date": "2014-11-09 15:16", "likes": "http://api.myproject.com/posts/1/likes.json", "comments": "http://api.myproject.com/posts/1/comments.json", "likes_count": 0, "comments_count": 0} 

자세히 알 수 있듯이 게시물에는 단일 사용자 리소스에 대한 하이퍼 링크 관계를 정의하는 "author"필드가 있습니다.

이제 다음과 같은 문제가 발생합니다. 사용자가 만든 모든 게시물의 피드를 작성하려고합니다. 쉽습니다. /posts.json 엔드 포인트를 호출하기 만하면 모든 게시물이 있습니다 ...하지만 모든 게시물에 대한 작성자 정보를 표시하려면 해당 게시물의 모든 게시물에 대해 추가 HTTP REST 호출을 만들어야합니다. 명부? 성능이 나쁘고 비효율적 인 것 같습니다.

물론 작성자 리소스를 중첩 리소스로 게시물 리소스 목록에 추가 할 수도 있지만 여전히 "RESTful"로 간주됩니까?

REST API를 구축하는 데 시간이 많이 들지만 (실제로 배우는 것이 많을수록) "실용적인 휴식"과 "종교로의 휴식"사이에서 더 많은 결정을해야합니다. :-)

미리 도움을 청하십시오!

종류와 관련, K.

답변

0

당신은/게시물에 대한 호출의 모든 게시물에 대한 저자 정보를 포함 할 수 있습니다/그리고 그것은 여전히 ​​편안하고있다. 문제는이 정보를 포함하는 방법이됩니다. JSON HAL을보고 임베디드 리소스에 대해 읽어보십시오.

+0

도움을 주셔서 감사합니다! 또한 "Richardson Maturity Model"에 대해 알아 냈습니다.이 모델은 웹 API가 "RESTful"인 방법을 결정하는 데 도움이됩니다. http://martinfowler.com/articles/richardsonMaturityModel.html – Braek

관련 문제