我正在设计REST API,以便对我的实体执行CRUD操作。
我将以下网址用于添加一项权限的POST请求:
POST: /permissions
这个惯例我一直在使用我的所有终点。但是,现在我需要能够通过1个请求存储一堆权限。它可能包含1-100条记录。我应该做什么的URL修改来遵循REST风格,同时能够使用两个端点 - 添加一个或多个权限?
我想过只制作一个带有列表的端点,但这让人感到困惑。为什么使用我的API的最终用户只发送一个元素的JSON数组?我想他们希望我们只是希望他们在没有数据包装器的情况下发送对象。
答案 0 :(得分:2)
确定可以定义一个新的媒体类型和一个与其他资源保存相同数据的新资源。
单个原子数据不一定只需要由单个URL上的REST api表示。因此,一种选择可能是创建一个可以接收代表许多权限的资源的新端点。
一种替代方案可能是试图弄清楚为什么做很多HTTP请求是坏的,并尝试在不引入批处理系统的情况下修复该问题。 HTTP2可能在这里有所帮助,但是引入HTTP2可能无法让你一路走来。
答案 1 :(得分:1)
是的!事物的数组很好,但是当真正的HTTP / 2可以很好地完成工作时,这只是一个不错的批处理。
当你"批次"如果百分之一失败,你必须弄清楚要做什么。还原那么多?如果你的拯救后是在解雇AMQP或其他工人,那么这会让你感到困惑吗?你可以回电话吗?
如果你需要做100件事,使用HTTP / 2做100件事,然后看看哪些失败并重试100失败的1,而不是试图避免"网络聊天"这正是出于这个原因而设计的。