Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
RESTAPI—命名端点的逻辑方式_Rest_Api Design - Fatal编程技术网

RESTAPI—命名端点的逻辑方式

RESTAPI—命名端点的逻辑方式,rest,api-design,Rest,Api Design,我希望遵循最佳实践来实现RESTAPI。我想公开一个资源,我可以想出两种方法作为端点 我想让用户有机会收到某个活动的所有付款 我可以公开/campaiments/{id}/payment,它返回一个分页的付款列表,其中包含每个付款的所有数据(名称、地址、日期…)。其中,/campaign/{id}依次返回该活动的所有数据(名称、描述…,paymentId的数组,以及一个逐个获取它们的路径) 或者我可以公开/payments/campetings/{campetingsid} 最好的方法是什么?为

我希望遵循最佳实践来实现RESTAPI。我想公开一个资源,我可以想出两种方法作为端点

我想让用户有机会收到某个活动的所有付款

我可以公开
/campaiments/{id}/payment
,它返回一个分页的付款列表,其中包含每个付款的所有数据(名称、地址、日期…)。其中,
/campaign/{id}
依次返回该活动的所有数据(名称、描述…,
paymentId的数组
,以及一个逐个获取它们的路径)

或者我可以公开
/payments/campetings/{campetingsid}


最好的方法是什么?为什么?

假设REST关心URI拼写是一种误解

但是,我鼓励您在API的URI中采用一致的命名约定。对引用集合并组织URI以表示层次结构的URI使用复数名词是一种常见的方法


因此,对于您在问题中描述的情况,您可以使用
/campetings/{id}/payments
来识别您的资源。它标识特定活动的付款集合。

我将使用
/campaiments/{id}/payments
,因为它将响应的内容传达给客户机,客户机在使用
GET
查询此URL时,可以根据惯例最清楚地看到响应内容

GET /camapaigns/{id}/payments
读起来很像“用
id={id}
给我所有活动的付款”。因此,这遵循了最小惊讶的原则。此外,客户机随后会准确地获得所请求的内容


如果您想了解更多有关这方面的信息,请访问Microsoft的RESTful API。谢谢。这是一个打字错误,因为我已经读了一篇关于这个主题的文章。这就是我大摇大摆的样子,谢谢。这是我一开始所做的,但与同事聊天让我产生怀疑。