上下文,
我正在使用Symfony2处理RESTfull API(我的API实现主要基于FOSRestBundle和Serializer,我还介绍了Hateoas以便达到{{3}的 the third Level(Richardson Maturity Model和Level 1完全受到尊重)。
我的问题,
我的问题与我的#34; Symfony2"客户端应用程序,我使用2来请求我的API,但我正在努力管理资源之间的关系。
让我们更清楚,这是一个相关的例子,
让我们说resource A
与resource B
相关,我正在研究的主要客户端功能是创建新的资源A,但是创建A还意味着创建相关的B resource
。
客户端应用程序应定位具有以下签名/路由的API方法:<POST> /api/resourceA
。
但是,由于创建A
需要创建B
并将其与A
相关联,因此我应该使用&#34; <POST> /api/resourceB
&#34;然后使用该链接调用相关的201
GET方法获取B resource
(或从{{1}获取),然后使用链接resource B
获取Id
响应响应)。将标识符添加到相关的POST
,然后可以调用我的ressource A
(新)方法。
这种方法看起来太乏味了,我想知道我是否遗漏了一些东西。我不想违反Guzzle library的Level 1,我希望能够轻松管理资源之间的关系。
有没有人对我应该这样做的方式有所了解?
TL; DR
总而言之,我的约束是,
所以我目前的方法(基于这些限制)是,
执行REST时的最佳做法是&#34;一个资源的一个操作&#34;,所以换句话说,我的问题是:
答案 0 :(得分:0)
如果你总是用B创建A(没有B就不能创建A),那么你就是一个复杂的资源。所以最好的方法是使用<POST> /api/resourceAB
。