我正在设计一个JSON API,我想使用某种内容协商来对API进行版本控制.我目前正计划使用Vendor MIME Types来做到这一点.
虽然我绝对可以在应用程序级别执行此操作,但我认为最好在HTTP服务器级别实现此目的. Apache或nginx可以实现吗?
Content-Type看起来像:application / vnd.vendorname-v1 json
或者可能使用参数:application / vnd.vendorname json; v = 1
Nginx对这类问题的惯用方法是通过地图.请参阅my answer at StackOverflow.
基本上,您在http部分中定义一个地图
map $any_variable $my_upstream {
# Default value:
default upstream1;
# Exact match:
application/vnd.vendorname+json;v=1 upstream2;
# Regexp:
~^application.*vnd.vendorname-v1\+json upstream3;
}
您可以在一个地图中混合完全匹配和正则表达式.
然后你只需在你的服务器或位置部分使用$my_upstream:
location / {
proxy_pass http://$my_upstream$uri;
}
Nginx懒惰地评估地图变量,只有一次(每个请求)以及何时使用它们.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。