2

我正在构建一个以 API 为中心的 Web 应用程序,但我无法理解一些业务逻辑。

拿这个用例:

POST /companies -> User adds a new Company which has a Location 

(Company Entity 有一个 Location Entity 保存公司的地址,一个 Company 有一个 Location,一个 Location 可以有多个 Companies)

PATCH/PUT /companies/{id} -> User edits a Company information (changes street name from Company->Location

我希望我的 API 能够检查该位置是否已经有其他公司。如果是这种情况,我希望用户在编辑位置实体(随后将为该位置上的所有公司更改)或创建新位置之间进行选择。

如何以 RESTful 方式将此选择发送回用户?

4

2 回答 2

2

简单的 :

  • PUT如果存在则替换整个资源,如果不存在则创建新资源。如果您想严格遵守 REST(但您不必这样做),则别无选择。您的用户可以在看跌期权之前检查公司是否存在 GET。

  • POST假设更换了所有公司的收藏。

  • 但是,您可以使用它PATCH来更新现有公司。

见:https ://www.rfc-editor.org/rfc/rfc5789

于 2013-04-11T11:45:04.863 回答
1

REST API 或任何严格的服务将根据请求提供响应。因此,如果其他公司与该位置相关,REST API 肯定可以响应用户。但是 API 无法通过选择做出回应。API 可以返回一些信息,用户需要根据该信息发出另一个请求。

相反,最好让用户选择预先指定它。因此,作为请求的一部分,用户预先选择是否应更新该位置的相关公司。例如,用户可以将其指定为 REST API 上的查询参数,并且服务可以根据该查询参数采取适当的操作。

于 2013-04-12T02:08:01.770 回答