REST是在一个请求中发布多个相同类型的资源的方法

REST是在一个请求中发布多个相同类型的资源的方法,rest,web-services,http,url,endpoint,Rest,Web Services,Http,Url,Endpoint,我正在设计RESTAPI,以便在实体上执行CRUD操作 我将以下URL用于添加一个权限的POST请求: POST: /permissions 我在所有的终点都使用了这个惯例。但是,现在我需要能够通过一个请求存储一组权限。它可能包含1-100条记录。我应该做什么URL修改来遵循REST风格,同时能够使用两个端点-添加一个或多个权限 我本想用一个列表只列出一个端点,但这会让人困惑。为什么使用我的API的最终用户只发送一个元素的JSON数组?我想他们希望我们只希望他们发送不带数组包装器的对象 定义一

我正在设计RESTAPI,以便在实体上执行CRUD操作

我将以下URL用于添加一个权限的POST请求:

POST: /permissions
我在所有的终点都使用了这个惯例。但是,现在我需要能够通过一个请求存储一组权限。它可能包含1-100条记录。我应该做什么URL修改来遵循REST风格,同时能够使用两个端点-添加一个或多个权限


我本想用一个列表只列出一个端点,但这会让人困惑。为什么使用我的API的最终用户只发送一个元素的JSON数组?我想他们希望我们只希望他们发送不带数组包装器的对象

定义一种新的媒体类型和一种新的资源是完全可能的,它与许多其他资源具有相同的数据

单个原子数据不一定只需要在单个url上由RESTAPI表示。因此,一种选择可能是只创建一个新的端点,该端点可以接收表示“许多权限”的资源


另一种选择可能是尝试找出为什么执行许多HTTP请求是不好的,并尝试在不引入批处理系统的情况下修复该问题。HTTP2在这方面可能会有所帮助,但引入HTTP2可能不会让您一直做到这一点。

定义一种新的媒体类型和一种与许多其他资源具有相同数据的新资源肯定是可能的

单个原子数据不一定只需要在单个url上由RESTAPI表示。因此,一种选择可能是只创建一个新的端点,该端点可以接收表示“许多权限”的资源


另一种选择可能是尝试找出为什么执行许多HTTP请求是不好的,并尝试在不引入批处理系统的情况下修复该问题。HTTP2在这方面可能会有所帮助,但引入HTTP2可能不会让您一直走到这一步。

是的!数组很好,但这只是一个很好的批处理攻击,而HTTP/2确实可以很好地完成这项工作

当你批量生产时,你必须考虑如果百分之一的产品失败了该怎么办。把这批货还回去?如果你的后援是解雇了AMQP或其他工人,你能给他们回电话吗


如果您需要做100件事,请使用HTTP/2做100件事,然后查看哪些失败,然后重试在100中失败的1,而不是试图避免网络聊天,因为网络聊天正是为此而设计的。

是!数组很好,但这只是一个很好的批处理攻击,而HTTP/2确实可以很好地完成这项工作

当你批量生产时,你必须考虑如果百分之一的产品失败了该怎么办。把这批货还回去?如果你的后援是解雇了AMQP或其他工人,你能给他们回电话吗


如果您需要做100件事情,请使用HTTP/2来做100件事情,然后查看哪些失败,然后重试在100中失败的1,而不是试图避免网络聊天,因为网络聊天正是出于这个原因而设计的。

我们使用不支持HTTP2的Tomcat 7.x。迁移在这里很棘手。所以,这是一个很好的解决方案,但不是在本例中……我们使用不支持HTTP2的tomcat7.x。迁移在这里很棘手。所以,这是一个很好的解决方案,但不是在这种情况下。。。