gpt4 book ai didi

http - ReST API 是否应该默默地忽略更改不存在字段的请求?

转载 作者:可可西里 更新时间:2023-11-01 15:17:52 24 4
gpt4 key购买 nike

考虑一个提供数据库接口(interface)的 ReST API。

服务器是否应该在 PUTPATCH 请求上响应 HTTP 400 Bad Request 尝试为 a 指定新值数据库中不存在的列?服务器应该默默地忽略错误吗?服务器是否应该做我在这里没有提到的其他事情?

最佳答案

不要默默地忽略请求
除了服务器在不发送响应的情况下关闭连接之外,我不确定你怎么能这样做。

400 和 409 一样好。您可能还需要考虑 403 Forbidden:服务器理解您的请求但拒绝满足它。

400 通常用于格式错误的请求。
403 适用于当请求的格式足够好以至于您的服务器代码能够解析它并理解请求的目的时。我认为这最符合您的要求。

但是,您问题中的一行让我担心:

attempts to specify a new value for a column which does not exist in the database

请求不应修改数据库中列的值。他们应该修改资源的内容。两者不一样。很容易陷入“哦,让我们将这个域对象公开为 HTTP 资源”这样的想法,但这可能会导致可扩展性问题。通常,您的 URI 空间中应该拥有比模型对象更多的资源。这使您可以使用与那些更动态的部分不同的策略来缓存模型的相当静态的部分。

例如,在订单处理系统中,送货地址很少更改,但进度跟踪器可能每隔几分钟更改一次。给两个数据不同的URI和不同的缓存策略。

关于http - ReST API 是否应该默默地忽略更改不存在字段的请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13692847/

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