我正在创建一个REST API,在我的API成功发出POST请求后,我目前面临着返回值的困境。
我正在使用的对象如下:
Service
(用户请求的某些服务); ServicePriceSelection
(为服务提供的价格); Booking
(已定义价格的服务 已付款)。用户将对象数据POST到/api/service
后,不仅创建了新的Service
对象,还创建了ServicePriceSelection
。用户需要ServicePriceSelection
中包含的数据来显示价格和其他信息。
所以问题是以下哪一种是处理这种情况的正确方法:
Service
和ServicePriceSelection
的资源ID。用户需要向/api/service/{id}
和/api/service/service-price-selection/{id}
发出GET请求才能获取数据。Service
的资源ID以及资源ID和新ServicePriceSelection
的所有数据。用户不需要另外请求获取数据,但我不确定这是否正确基于RESTful原则。服务器端编程语言 - PHP(Yii2框架)。
答案 0 :(得分:1)
如果有疑问,请以对客户更容易的方式做事。没有必要为了原则(在一定程度上)使生活更加艰难。
在我个人看来,在RESTful for POST中至关重要的是创建元素,为每个请求创建新元素(与幂等PUT相反)和正确的返回码。我在其他任何方面都很灵活。
答案 1 :(得分:1)
我建议使用较少的非200个html状态,因为在这种情况下许多前端的行为不足。
1和2的选择取决于REST使用者(前端)的逻辑。我的意思是说。 2.1。在POST请求之后,前端可以将用户推送到service / {id}或其他页面。在这种情况下,发送过多数据是没有用的。发送id id。 2.2。 POST后,消费者会处理响应数据。在这种情况下,值得发送所需的对象。 BUT
但请记住,即使在POST之前,前端也有大量数据,并且不需要重复响应中的数据。