我正在创建一个 RESTful API,其中包含以下 UML-ish 图表中显示的以下资源。如多重性(括号之间)所示,有四个一对多关系。
我目前GET
定义了以下方法:
GET /farmers
GET /farmers/[farmer_id]
GET /farms
GET /farms/[farm_id]
GET /llamas
GET /llamas/[llama_id]
GET /events
我正在尝试确定访问这些关系以及访问与农场和农民相关的事件(通过 Llamas)的最佳和最 RESTful 方式是什么。所有这些关系都将通过超媒体链接提供。到目前为止,我提出的两个选项是:
多个 URI
GET /farmers/[farmer_id]/farms
GET /farmers/[farmer_id]/llamas
GET /farmers/[farmer_id]/events
GET /farms/[farm_id]/farmer
GET /farms/[farm_id]/llamas
GET /farms/[farm_id]/events
GET /llamas/[llama_id]/farm
GET /llamas/[llama_id]/farmer
GET /llamas/[llama_id]/events
单一 URI 和过滤
GET /farms?farmer=[farmer_id]
GET /llamas?farmer=[farmer_id]
GET /events?farmer=[farmer_id]
GET /farmers/[farm_farmer_id]
GET /llamas?farm=[farm_id]
GET /events?farm=[farm_id]
GET /farms/[llama_farm_id]
GET /farmers/[llama_farmer_id]
GET /events?llama=[llama_id]
这些方法中的任何一种是 REST 的首选,还是我可以选择我最喜欢的一种?