我们目前正在设计一种REST API,以访问经典客户数据。API中的元素之一是用户的资产。资产在给定服务下添加。后端API仅会在给定服务下向用户添加资产。因此,没有用户-资产关系,而是用户-[服务]-资产关系。
我们的URI如下所示:
/users/{id}/assets/{id}/services/{id}
使用API会知道资产ID和服务ID,以创建新条目。我们正在努力的是建立这种关系。
一种简单的方法是将整个关系发布到 /users/{id}/assets/
POST /users/{id}/assets
{asset:${id}, service:{id}, attribute1:"{var}", attribute2:"{var}"}
但是我们实际上并不是在创建URI可能表明的资产,而是资产-服务关系。
作为替代方案,我们正在考虑将POST'ing到解决该关系的URI,如下所示:
POST /users/{id}/assets/{id}/service/{id}
{attribute1:"{var}", attribute2:"{var}"}
但是在这种情况下,资源路径/users/{id}/assets/{id}
在POST之前将不存在,并且将被创建为副作用。
是否将POST发送到尚不存在的资源路径?
谢谢你的想法
杰拉德。