我目前正在实现一个 REST API,它对于某些资源子集需要支持所述资源的单一和批量创建。我正在尝试确定是否有必要公开两个单独的端点:一个用于单一创建,一个用于批量创建。
例如,假设我有一个地址资源。我可以通过将该资源的表示发布到 URI 来创建单个地址/address
。如果我想支持批量创建,最好让/address
端点辨别多个表示是否被发布到该端点,然后采取适当的操作(单个创建或批量创建),还是最好有一个完全独立的端点,只接受批量创建?
我的方法是允许 POST 到 /addresses 的对象中可以包含多个地址定义。在后端,您遍历对象并创建一个或多个地址。所以身体会是这样的:
<addresses>
<address>
<street>123 Maple Lane</street>
<city>Newark</city>
<state>NJ</state>
<zip>00000</zip>
</address>
<address>
<street>227 First Avenue</street>
<city>Tulsa</city>
<state>OK</state>
<zip>00000</zip>
</address>
</addresses>
我会避免使用单独的端点,因为没有理由这样做。如果您只在集合中发布一个地址,则只会创建一个。