不保留数据的资源

时间:2019-05-31 12:37:22

标签: rest json-api

JSON-API希望我向# Virtual Hosts <VirtualHost *:80> ServerName localhost ServerAlias localhost DocumentRoot "${INSTALL_DIR}/www" <Directory "${INSTALL_DIR}/www/"> Options +Indexes +Includes +FollowSymLinks +MultiViews AllowOverride All #Require local Require all granted </Directory> </VirtualHost> 提供我们创建和移动的资源。但是,如何处理资源没有自然ID的情况?

一个很好的例子是报价系统,其中价格需要确定服务器端。在这种情况下,我们不会给客户提供价格手册来自行计算价格,客户需要向API提交一些内容,以便服务器确定价格。

但是,我们不希望将报价单保留到数据库中,因为它在技术上并未“锁定”,客户端只是在继续操作之前就使用了选项”。

我想到的一种方法是为挂起状态下的报价创建UUID

例如

id

现在我在响应中有价格了,但是我还无法通过/ quote / 1234这样的已定义网址获得它。

然后,一旦状态更新为“已报价”,我就可以物理保存到数据库中,获取正确的ID,客户可以获取/ quote / 1234来查看提交的报价及其价格。

另一种选择是创建意图资源,以建模获取价格或完成某些工作流程的意图。我只是不知道您将如何在JSON-API上下文中实现它,因为同样没有ID。

一个人应该如何处理这些动态/计算/临时资源端点?

1 个答案:

答案 0 :(得分:1)

我将为这些报价前请求创建一个单独的表。我可以想到几个原因,您希望将它们捕获到数据库中,您可以使用各种度量标准,例如它们使用选项的次数,在什么时间,创建实际报价所需的时间等。然后,您可以限制这些请求,可以停止此类请求的垃圾邮件等。

一旦引号变成实际的引号,此时您就可以将数据移到Quotes表中并可以正确使用API​​,因为现在您可以使用引号中的ID。在我看来,只要将它们存储在数据库中并从头开始为其分配一个正确的ID,就可以简化所有操作。