API网关express-gateway初体验
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了API网关express-gateway初体验相关的知识,希望对你有一定的参考价值。
参考技术A 昨天朋友发来一个消息,问我express源码中的一个问题,我去看了一番源码以后,发现自己并不是很懂,只能看懂一些字面意思...不过在聊天过程中,了解到他们公司在用express做api网关,什么是api网关呢?
我将以express-gateway为例,学习 get started教程 ,对api网关进行探索。
安装
①npm i -g express-gateway
②创建一个express网关:eg gateway create
③根据提示选择server模板
④运行express网关:npm start
5分钟入门教程
目标:
1.选择一个微服务并且作为一个api暴露出去
2.定义一个api的消费者
3.使用key认证保证api的安全性
1.选择一个微服务并且作为一个api暴露出去
①直接访问微服务
curl http://httpbin.org/ip
②指定微服务
在express gateway的一个默认的管道中,服务将被分配到一个端口。一个管道指的是一个策略集合。Express Gateway有一个代理策略。在默认的管道中,会使用这个代理策略,网关现在挡在了 https://httpbin.org/ip 服务前面,并且并且路由其它请求到网关的端口。
在config/gateway.config.yml这个文件中,可以找到一个serviceEndpoints选项,这里定义了httpbin这个服务。
在默认管道的proxy选项的action中,可以找到serviceEndpoint: httpbin
③以api的方式公开微服务
通过Express Gateway,我们将暴露httpbin 服务到api端口。当通过api端口公开api后,外部可以访问到api。
在config/gateway.config.yml这个文件中,可以找到apiEndpoints选项,这里定义了api。
现在我们有一个公共api浮出水面了,我们应该确保自己可以穿过express网关获取到service的权限。
2.定义一个api网关的消费者
管理我们api的人,在这里我们称之为“Consumer”。
eg users create
3.使用key认证方式确保安全
①现在api暴露了出去,而且也获得了访问权限。我们现在将为其加上key安全认证。
在config/gateway.config.yml这个文件中,可以找到pipelines选项,这里定义了key-auth。
②为Consumer Bob分配key。
eg credentials create -c bob -t key-auth -q
③Bob没有加key直接访问。
④Bob加了key进行访问。
That's it!
以上是关于API网关express-gateway初体验的主要内容,如果未能解决你的问题,请参考以下文章
Elasticsearch极限网关 INFINI Gateway 初体验