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

标签 javascript node.js reactjs rest

我对 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/

相关文章:

javascript - 单击 html5 Canvas 中的文本

javascript - React 检查 css 是否已使用 Webpack 和 React 加载

windows - 进程开销是否使 Linux 成为比 Windows 更好的 Node.js 主机?

node.js - 使用 NodeJS SDK 引发错误时,如何在 Application Insights 中设置异常类型?

javascript - CSS "depth meter"(跟随屏幕并更改数字的 div)

javascript - 如何使 .env 变量在 JS 类构造函数中工作?

reactjs - React Router v4 生命周期事件

reactjs - React Router v4 与 babel 给出多个路由错误

reactjs - react-router-dom,有 `getComponent`的代码分割方法吗?

javascript - 看不到卡片