我正在寻找基于doctrine2的RESTful API设计的最佳方法。
示例
我有两个示例表。 Product and ProductAttribute(一对多关系)
当我提出像/ products这样的请求时,我可以看到没有属性的产品列表。
当我提出/ products / details之类的请求时,我希望看到每个产品附带子资源属性的产品列表。
我想知道单独行动(使用separete查询)或使用相同的查询和相同的DataProvider作为/ products操作并将某种联接放到/ product-attribiutes资源更好。
问题
一般问题是“您对/ products和/ products / details操作使用相同的查询吗?”
答案 0 :(得分:0)
通常,对/products
的调用应返回该产品的所有相关数据字段(详细信息/库存/成本等)。呼叫/products/details
的情况应仅显示该产品的详细信息字段。
答案 1 :(得分:0)
就RESTful API设计而言,一种可能的解决方案是将details
作为/products
的可选参数。使用此解决方案,/ products的查询将仅返回没有属性的列表,而/products?details=true
的查询将返回列出所有详细信息的列表。
另一种可能性是实现expand
或embed
查询参数,该参数可用于指定应扩展哪些特定字段。例如,查询/products?expand=company,shipping_info
会扩展company
和shipping_info
资源。这符合本指南的建议:http://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api#autoloading