gpt4 book ai didi

javascript - REST API 删除请求和更新分页

转载 作者:行者123 更新时间:2023-11-30 19:04:37 25 4
gpt4 key购买 nike

我对 REST API 中的 DELETE 端点有疑问。

为了提供一些上下文,在我的前端我有一个带有服务器端分页的“客户端”表,所以每当我更改页面时我都会向服务器发送一个请求,该请求返回一个如下所示的对象:

{
"items": [{id: 1, name: 'foo'}, {id: 2, name: 'bar'}, {id: 3, name: 'buzz'}],
"itemCount": 3,
"totalItems": 56,
"pageCount": 19,
"next": "http://localhost:3000/api/clients?page=2&limit=3",
"previous": "",
"currentPage": 1
}

当我删除或修改客户端时,我想返回客户端列​​表的更新版本,但我不确定在页面上不发送信息的最佳方法是什么和每页限制

我想到的解决这个问题的办法是:

  • 我可以通过请求发送页面信息和每页限制,并在删除客户端后在我的删除端点中检索信息。但是,这似乎效率很低,因为我不仅要为客户端而且还要为其他模型向端点添加这些额外信息,例如我对产品有同样的问题。

  • 我可以在我的前端发送一个删除请求,并在完成后发出请求以单独获取更新的信息(甚至可能是并行的?)。但由于额外的网络请求,这似乎也很低效。

解决这个问题的最佳方法是什么?

最佳答案

有趣的问题。我建议发送另一个 GET /clients请求获取更新的数据而不是依赖 DELETE端点为您提供该数据。这样,你就可以保留你的 GETDELETE逻辑分开,您不必在 API 代码中重复自己。

这种方法可能看起来很浪费,但它也感觉更干净,您的 API 的使用者可以利用它以编程方式重新获取数据,就像 GraphQL/Apollo (https://www.apollographql.com/docs/react/data/queries/#refetching)。

如果您担心性能,您还可以将缓存添加到您的 API(使用 node-cache,例如:https://www.npmjs.com/package/node-cache 或 AWS Redis:https://aws.amazon.com/redis/)以更快地发送对以前看到的查询的响应。

没有 REST API 标准,但根据经验,DELETE 很常见端点尽可能无状态并返回状态代码为 204 的空主体(参见 https://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api#http-status)。

希望对您有所帮助!继续做好工作:)

关于javascript - REST API 删除请求和更新分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59118185/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com