gpt4 book ai didi

json - 用于指示响应正文所需样式属性的 HTTP header

转载 作者:可可西里 更新时间:2023-11-01 17:34:21 25 4
gpt4 key购买 nike

我应该使用什么 HTTP header 来指定 HTTP 响应的样式属性,特别是 JSON 对象中的键的情况?注意:我正在开发一个 REST API,我希望客户提供一个预期的大小写,例如 camelCasesnake_case

当指定 camelCase 时,响应如下所示:

{
"peopleUrl": "…",
"postsUrl": "…"
}

当指定 snake_case 时,响应如下所示:

{
"people_url": "…",
"posts_url": "…"
}

我一直在看的 header 是 ExpectPreferExpect描述为服务器必须遵守或错误的强制配置,Prefer描述为可选配置。我正在查看的具体语法是:

Expect: case=camel

或:

Prefer: case=camel

目前,我觉得 Expect 是最好的,因为它需要配置。然而,虽然在 RFC 2616提供了 Expect 的扩展机制,但是在 RFC 7231 中此扩展机制已被删除,只允许使用 100-continue 字段(滚动到下一页以查看提供授权的注释)。 Prefer header 在 RFC 7240 中指定并且确实似乎有一个扩展机制。

哪个 header 最适合此配置选项?我是不是用 ExpectPrefer 看错了方向?

最佳答案

正如一些评论所指出的,可能没有在 HTTP RFC 中定义的现有 HTTP header 名称可以涵盖/处理您的用例。使用 ExpectPrefer,具有定义明确的语义,但不能完全满足您的需求,可能会导致比您想要的更多的痛苦/挫折;这些 header 可能会以您不希望/不期望的方式由现有客户端、服务器和代理专门处理。

也就是说,没有什么可以阻止您使用自己的自定义 X- header 来处理请求响应,例如 X -JSON-KeyStyle:

GET /path/to/resource HTTP/1.1
Host: ...
X-JSON-KeyStyle: camel
...

然后您的响应将指示返回数据中使用的样式:

HTTP1/1 200 OK
...
X-JSON-KeyStyle: camel
...

根据规范,任何以 X- 开头的 header 名称都故意不处理/覆盖,并且用于此类用途。然后,使用这种方法,您只需要记录您的自定义 HTTP header ,供 REST API 的客户端使用。

希望这对您有所帮助!

关于json - 用于指示响应正文所需样式属性的 HTTP header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36204282/

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