使用自定义标题查看响应消息; 不好的做法?
我正在使用Java和Spring框架开发一个REST API。 目前,我从服务器返回一个名为Server-Response
的自定义HTTP头中的消息。 这用于发生错误和成功请求完成的两种情况。 为此目的使用自定义HTTP标头是一种不好的做法?
我为什么要这样做?
List<Object>
,那么我不能返回一个额外的字符串。 为什么不这样做?
@ExceptionHandler
注释来允许异常处理方式不同,从而允许String
响应。 示例GET请求
我可以从以下示例网址获取位置列表: https://fakeurl.com/api/locations
: 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"}
]
TL / DR:这取决于您的实际使用情况。
这实际上取决于您如何处理您在自定义标题中传递的信息。 如果要在信封级别传递信息,则使用自定义标头是有意义的。 我的意思是,这些信息与您想要检索的数据无关,因此不应该存储在那里,而是由封装工具使用。 一个真实世界的例子可能是一个数据服务器,可以通过不同的协议访问,例如HTTP和例如邮件(用另一封邮件回复)和专用协议。 在这种情况下,应该在enveloppe级别传递关于为什么或如何无法访问实际服务器的信息,并且会特别调整自定义响应标头。
另一个例子是当你使用相同的工具来访问不同的信息类型。 有效载荷应该只包含实际的信息,这些信息将被透明地传递给调用者,并且错误条件可以在响应头中传递并且将由交换工具处理。
你应该遵守的唯一规则是自定义标题应该以X-
开头。
上一篇: Using Custom Headers for Response Messages; Bad Practice?
下一篇: Polymer expression