我正在使用Java和Spring Framework开发REST API。目前,我在名为Server-Response
的自定义HTTP标头中从服务器返回一条消息。这用于发生错误和成功请求完成的两种情况。 为此目的使用自定义HTTP标头是一种不好的做法吗?
为什么我这样做?
List<Object>
,那么我就不能再返回一个字符串。为什么不这样做?
@ExceptionHandler
注释,以允许异常处理,允许String
响应。示例获取请求
我可以从以下示例网址获取位置列表:https://fakeurl.com/api/locations
请求标题
响应标题
回复正文
[
{"locId":1,"descr":"New York","activeStatus":"ACTIVE"},
{"locId":2,"descr":"Los Angelas","activeStatus":"ACTIVE"},
{"locId":3,"descr":"Canada","activeStatus":"ACTIVE"},
{"locId":4,"descr":"Mexico","activeStatus":"ACTIVE"},
{"locId":5,"descr":"Nebraska","activeStatus":"ACTIVE"},
{"locId":6,"descr":"Texas","activeStatus":"ACTIVE"},
{"locId":7,"descr":"Michigan","activeStatus":"ACTIVE"}
]
答案 0 :(得分:1)
TL / DR:这取决于您的实际使用情况。
这实际上取决于您处理自定义标头中传递的信息的方式。如果要在 enveloppe 级别传递信息,则使用自定义标头是有意义的。我的意思是,此信息与您要检索的数据无关,因此不应存储在那里,而是由封装工具使用。一个真实世界的例子是可以通过不同协议访问的数据服务器,比如HTTP,例如邮件(使用其他邮件回复)和专用协议。在这种情况下,应该在 enveloppe 级别传递有关无法访问实际服务器的原因或方式的信息,并且会特别调整自定义响应头。
另一个例子是当您使用相同的工具访问不同的信息类型时。有效负载应仅包含实际信息,这些信息将透明地传递给调用者,并且错误条件可以在响应头中传递,并由交换工具处理。
您应遵守的唯一规则是自定义标头应以X-
开头。