是酱,觉得市面上的 api 网关都太产品化,难用(配置麻烦),所以用 spring cloud gateway 自己开发了一套网关。
然后对实现形式上,有一些争议,主要体现在规范、管理上。 比如:
第一种,像支付宝一样
openapi.x.com/gateway.do?method=api.name.and.version&other_business_parameters&sign_type=hmac&sign=
第二种
GET openapi.x.com/api/name/and/version?other_business_parameters HTTP/1.1
Host openapi.x.com
X-$公司名缩写-AUTHTYPE: HMAC-SHA256
X-$-Client-ID: xxx
X-$-Sign: xxxxxxxxx
无论那种,到网关,最终都 http.reveserve( http://backend-server-name-in-k8s:port)
就从表意、管理、规范、使用等等等等各方面来综合定一个方案,哪种更好。
尝试第一种,使用 apisix , 配置了一堆 /gatweay.do 的路由。。后台页面像这样:
路由 | 对应服务 |
---|---|
/gateawy.do | s1 |
/gateway.do | s2 |
/gateway.do | s3 |
/gateway.do | s4 |
第二种,后台页面像这样:
路由 | 对应服务 |
---|---|
/v1/s1/** | s1 |
/v1/s2/** | s2 |
/v1/special/** | s3 |
/v1/444/** | s4 |
不说技术实现,自己开发的话,无论哪种方案都能实现也都好实现。就说管理、规范等等等等其他方案。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.