对于RESTful服务,名词可以省略和丢弃吗?
可以替换为 /service/555/111
吗?
第一种选项是必需的还是有多种选择和争议?
完全由您决定,我认为使用名词的好处在于它可以帮助您从URL中看出服务试图实现什么目标。
此外,考虑到在客户下面您可以拥有像下面这样的内容,从URL中您可以区分客户的报价和订单:
/service/customers/555
和/service/orders/1234567
的内容。/service/555/111
缺乏一致性。/service/555/111
对应于调用客户 555
和订单 111
的服务。您知道这一点。但 API 的客户端不一定知道路径的含义。555
调用相同的服务,但是针对年份 2018
。现在该怎么办?像这样:/service/555/2018
将容易出错,因为您必须添加参数以传达最后一个路径值,并且 service/555/years/2018
会使您的 API 定义不一致。
清晰、简洁和一致性非常重要。
话虽如此,如果您希望客户通过阅读文档来发现URI(而不是从明确定义的超媒体响应中读取它们),那么使用遵循简单概念模型的URI拼写将是一个好主意。