一个简单的REST API:
问题:提供这样的API是常见的吗?
备选方案:在单连接的时代,多个请求发出多个请求是便宜的,而且工作起来更加原子化,因为一个更改要么成功要么失败,但是在NOSQL数据库的时代,列表中的更改可能已经发生了,即使请求处理在内部服务器或其他任何原因中消失了。
[更新]
顶级资源API:
其中PUT方法需要替换完整的集合,以便返回HTTP语义引用的等效表示PUT:
一个给定表示成功PUT将意味着随后对同一目标资源的GET将导致在200(OK)响应中返回一个等价的表示。
[UPDATE2]
因此,与POST相比,PATCH可能也是一个更好的主意,因为PATCH允许更新,而POST只允许附加一些内容,意思是添加,而没有修改的机会。
所以POST在这里似乎是错误的,我们需要将建议的API更改为:
一个简单的REST API:
您可以为集合打补丁,例如。
PATCH /items
[ { id: 1, name: 'foo' }, { id: 2, name: 'bar' } ]
技术上,PATCH将在URL中标识记录(即PATCH/items/1
而不是在请求正文中标识记录),但这似乎是一个很好的实用解决方案。
为了支持在一次调用中删除、创建和更新,标准REST约定并不真正支持这一点。一种可能是一种特殊的“批处理”服务,它允许您将调用集合在一起:
POST /batch
[
{ method: 'POST', path: '/items', body: { title: 'foo' } },
{ method: 'DELETE', path: '/items/bar' }
]
[ 200, 403 ]
不是真正的标准,但我做了它,它的工作。
问题内容: 一个简单的REST API: GET:items / {id}-返回具有给定id的商品的描述 PUT:items / {id}-使用给定的id更新或创建项目 DELETE:items / {id}-删除具有给定id的项目 现在要讨论的API扩展: GET:item?filter-返回与过滤器匹配的所有项目ID PUT:项目-更新或创建一组由JSON有效负载描述的项目 [[ DELETE
还是使用现有endpoint更好?使用现有endpoint的一个问题是,驱动程序有很多字段(几乎30个),发送所有这些字段只是为了更新“启用”或“禁用”驱动程序是一些过分的东西。 你觉得呢?
问题内容: 我正在尝试让Javascript读取/写入PostgreSQL数据库。我在github上找到了这个项目。我能够获得以下示例代码以在节点中运行。 接下来,我试图使其在网页上运行,但是似乎什么也没有发生。我在Javascript控制台上进行了检查,它只显示“要求未定义”。 那么这是什么“要求”?为什么它在节点中有效但在网页中无效? 另外,在我让它在节点上工作之前,我必须做。那是什么意思 我
问题内容: 对于我的工作,我必须开发一个小型Java应用程序,该应用程序可以解析非常大的XML文件(约30万行)以选择非常具体的数据(使用),因此我试图对其进行一些优化。我想知道这两个摘要之间哪个更好: 要么 其他详情: 这些if语句在循环内的每次迭代中执行(约20k次迭代) 的是一种在利用外部函数每次迭代计算 如果将设置为,则无需测试正则表达式是否匹配 谢谢你的帮助。 问题答案: 我遵循的一条黄
在构建Kafka Streams拓扑时,可以通过两种不同的方式对多个主题的读取进行建模: 读取具有相同源节点的所有主题。 选项1相对于选项2是否有相对优势,反之亦然?所有主题都包含相同类型的数据,并具有相同的数据处理逻辑。
在Jersey 2中,我试图开发一种方法,它允许传递一对JSON列表(服务、方法),这些列表表示REST请求中对资源的访问路径,并将结果聚合到单个响应中。因此,JSON列表可以如下所示: 相应的命令bean可以如下所示: 我找到了这个主题,但它似乎适用于Jersey的版本1:如何在单个请求中访问多个资源:Jersey Rest 谢谢你的回答,为我糟糕的英语感到抱歉。