我目前将通过HTTP REST的API到在线服务,我面对的是一个非常简单的问题,对此我无法找到满足我一个答案REST接口用法:多个资源
我主要有2资源:“用户”和“报告”,因为你也能猜到报告关联到用户(一个且只有一个,在我的DB =外键)
无论如何,我有这个URL映射为GET
:
mywebsite/api/users/{id}
:返回用户及相关信息离子,或用户的列表,如果ID不存在mywebsite/api/report/{id}
:返回一个报告及相关信息,或报告的列表,如果ID不存在
现在我想获得一个报告我现在这样做的方法是为GET
方法添加一个可选参数以用于报告:?username={username}
,如果存在,我将筛选结果以仅返回此用户的报告。
我不禁觉得有什么是错的......如果我开始做这样的事情,我将有我的方法处理GET
充满的if/else寻找失踪参数...
其他解决方案II想到的是:
- 纳入产生的
GET
报告上mywebsite/api/users/{id}
但我有很多很多的报告,以便最终将成为真正的坏... - 映射另一个URL只是这个功能,但它只是不觉得正确...
我刚刚掌握了这个REST的东西,我喜欢这个概念,但是关于这个问题的一点解释能够帮助我更好地理解它。
感谢
编辑:
看来我已经打了REST世界一个共同的问题,我都绑不住我的资源模型。如果将资源绑定到模型,最终会遇到聚合属性问题。 有些家伙在这里描述了这个错误http://jacobian.org/writing/rest-worst-practices/但我还没有理解如何来管理,他说......
仅供参考我使用Django /活塞,但这个问题应该交代无论任何语言。