【问题标题】:Prevent posting an object if its id exists in the api如果对象的 id 存在于 api 中,则阻止发布对象
【发布时间】:2019-02-24 20:11:08
【问题描述】:

所以,我有一个按钮,可以将具有“id”、“name”、“description”属性的对象发布到 api。我想要实现的是防止发布任何其他对象,如果它们与之前发布的对象具有相同的“id”。 这可能吗?

【问题讨论】:

  • 您必须对 API 执行 GET 以确保您发送的 object.id 不存在。它是什么样的 API?
  • 或者您可以按照stackoverflow.com/questions/3825990/… 中的建议使用409 Conflict 回复POST 呼叫。
  • 我只是在一个假的 json-server 上测试这个

标签: reactjs ecmascript-6 fetch-api


【解决方案1】:

我建议服务器需要检查 ID 是否已经存在,如果存在,则返回您在客户端获取代码中处理的正确 HTTP 错误代码。

此外,您可以通过将已发送的 Id 或示例存储在 local state、Redux 状态或另一个全局对象中来跟踪您已经发送到服务器的内容(仅限此工作站)。你也可以使用像Inversify 这样的 IoC 容器来持有一个可以对已经发送的 ID 进行簿记的 singelton。有很多选择。如果您有任何更具体的要求或已在使用的库,请告诉我们。

【讨论】:

    【解决方案2】:

    如果您可以控制自己的 API,则可以拒绝任何具有相同 idPOST 请求。

    如果您无法控制 API,那么您必须自己明确地处理该检查。例如,您可以将其存储在Set 中,在调用fetch 之前,您可以检查它是否已经存在。

    如果您要问的是是否有通过fetch 执行此操作的预定义方法,那么没有。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-01
      • 2022-11-19
      • 2020-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-06
      相关资源
      最近更新 更多