Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过RESTful接口管理池_Rest_Api_Methods_Restful Architecture_Pool - Fatal编程技术网

如何通过RESTful接口管理池

如何通过RESTful接口管理池,rest,api,methods,restful-architecture,pool,Rest,Api,Methods,Restful Architecture,Pool,由于我不确定我最初是否把这个问题说得很好,所以我重复了一遍,看看是否有更好的回答 我对如何最好地使用RESTful API管理特定种类的集合有一个问题。为了帮助说明我的问题,我将使用一个简单的人工示例。让我们称之为“奖券选择器”。对于这个问题,我只对如何执行一个功能感兴趣 我收集了一些未购买的抽奖券。每个都有一个唯一的抽奖号码以及其他信息 我需要能够从raffleTickets集合中获取确定数量的票(numTickets),而无需唯一选择它们。集合本身具有随机选择机制 结果是,我从集合中返回了5

由于我不确定我最初是否把这个问题说得很好,所以我重复了一遍,看看是否有更好的回答

我对如何最好地使用RESTful API管理特定种类的集合有一个问题。为了帮助说明我的问题,我将使用一个简单的人工示例。让我们称之为“奖券选择器”。对于这个问题,我只对如何执行一个功能感兴趣

  • 我收集了一些未购买的抽奖券。每个都有一个唯一的抽奖号码以及其他信息
  • 我需要能够从raffleTickets集合中获取确定数量的票(numTickets),而无需唯一选择它们。集合本身具有随机选择机制
  • 结果是,我从集合中返回了5个唯一的票证,集合的大小减少了5,因为返回的5个票证已被删除
  • 问题是,我如何以一种平静的方式来做这件事? 我直觉地想使用方法../raffelTickets?numTickets=5,但要使用哪种HTTP方法比较困难

    在回答时;您不允许建议我通过标记状态更改来修补/放置状态更改以实现删除。它必须导致集合的cardanality发生实际变化

    注意:每次调用该方法两次将返回不同的结果集,并且将始终更改执行该方法的集合(除非该集合为空!)

    那么我应该用什么方法呢?放?邮递删除?补丁?这些限制似乎只会给我留下贴子和补丁,这两个对我来说都不理想。或者,也许有另一种提供整体行为的方法被认为是正确的方法

    我真的很想知道什么是最佳实践,并理解为什么

    干杯


    第一次回复所依据的原始帖子:

    我有一个给定项的池,它将使用RESTful API进行管理。现在向池中添加项目不是问题,但如何从池中获取项目?这也是一个帖子还是一个删除? 假设它是一个随机数池,我希望在单个方法调用中检索数量可变的项。 我有两种情况:

  • 我不会检查它们,因为一旦取下它们,它们将不会返回游泳池
  • 我只想查看它们,它们实际上仍然是池的一部分,但状态更改为“使用”
  • 在每种情况下,重要的是我不在乎我得到了什么,我只想要N件

    在池上执行这两个操作中的每一个都被认为是什么RESTful方式?我对第二种选择有意见,但我对前者犹豫不决,所以我对你们的想法都感兴趣,这样我就能更好地理解思维模式


    谢谢

    我不知道我是否理解你的问题。这主要取决于您开发REST通信的API端的方式

    在一般解决方案中,可以使用DELETE从列表中删除项。但是,如果您只想部分更新项目,可以使用补丁而不是POST或PUT


    看看这个:

    我想我的问题是,我认为删除是在资源级别上的,所以删除poolOfResources/{resourceID},这很好,但我不想这样做。我不在乎我得到什么资源,只要给我N个就行了。如果我确实删除了池(集合),那么我不是在删除集合。此外,如果我对集合执行删除操作,并让它为我提供N个池成员,然后重复该操作,我将不会得到相同的结果,我相信REST要求DELETE是幂等的。@DarylORegan,因此,如果您对poolOfResources执行删除操作,则需要获得N个资源ID(随机),并确保将这些N个资源标记为“已删除”,这样以后就不会再获取它们了。这就是你的意思吗?这在很大程度上取决于你编写get操作的方式。比如说,get poolOfResources将返回N个资源,并将N个资源标记为,比如说,“已删除”,或者将它们标记为“已完成”“或者别的什么。我们在同一页吗?顺便说一句,这是一个有趣的案例/问题。嗨,丹尼尔,为了清楚起见,我用一个具体(我希望)的例子重申了上述问题,并删除了一个可能有助于集中注意力的案例。我想说的是,同时具有幂等性和安全性也是值得怀疑的