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初体验的主要内容,如果未能解决你的问题,请参考以下文章

Spring Cloud Gateway初体验

Ocelot和IdentityServer4初体验

Elasticsearch极限网关 INFINI Gateway 初体验

SpringCloud初体验:七gateway 网关服务如何做token验证

Spring Cloud Gateway 初体验

高性能网关Soul深入解析:http初体验及divide插件功能解析