使用Ballerina构建API网关

\

关键要点

\\
  • 在为WSO2 API Manager创建API网关时,我们实际上是创建了与API Manager上发布的API相关的Ballerina服务。\\t
  • 请求过滤器可以访问传入的请求数据。因此,它可用于检查请求内容,对内容进行验证,复制并将请求推送到其他系统,甚至修改原始请求。\\t
  • 默认情况下,客户端应用程序要调用网关上的服务需要发送由受网关信任的STS(安全令牌服务)签名的令牌(JWT)。调用请求需要符合OAuth Bearer配置。\\t
  • 你可以基于Ballerina Streams构建流式查询,对从事件流上接收到的数据进行投影、过滤、窗口、流连接和模式操作。\\t
  • 在微服务架构中,用户需要生成API网关的容器运行时。在Ballerina中,我们可以在服务上使用相关的Docker和Kubernetes注解,从而简化了这一过程。\
\\

现代API是一种具有良好定义且易于理解的网络功能,可满足特定的业务需求。API网关是架构模式中的一个层,负责请求分配、策略实施、协议转换和分析,让业务API专注于业务功能。

\\

本文将介绍如何使用BallerinaWSO2 API Manager构建API网关。WSO2 API Manager是一个开源的全生命周期API管理解决方案。它具有设计和文档化API并使用各种策略发布API的能力。还提供了一个开发者门户,应用程序开发人员可以在上面发现和订阅API。它的安全组件为客户端应用程序提供了获取令牌的功能。我们可以在基于Ballerina的API网关中应用API策略。

\\

在API Manager中为API生成Ballerina服务

\\

Ballerina是一门旨在让集成变得简单灵活的编程语言。它提供了集成领域所需要的所有构件,例如服务、端点、断路器等等。在为WSO2 API Manager创建API网关时,我们实际上是创建了与API Manager上发布的API相关的Ballerina服务。API Manager定义了API(资源路径、动词等)和每个API目标端点的详细信息,于是我们开发了一个工具,通过其REST接口连接到API Manager,并基于一组模板将API定义转换为基于Ballerina的源代码。

\\

同样的过程也适用于API Manager上定义的策略。所有策略(如API Manager上定义的配额策略)都将转换为Ballerina源代码。

\\

下图描绘了代码的生成过程。

\\

c87ad74d6b5ed61c9290c059deeaa5ac.jpg

\\

生成的源代码被放到一个中,Ballerina编译器编译它们,并生成一个可执行的二进制文件。

\\

接下来,我们将介绍如何使用Ballerina的语言构建块和概念来创建API网关。我将解释使用每个构建块的原因,并通过代码演示如何使用它们。

\\

Ballerina作为一个简单的代理

\\

API网关上的API实际上是位于客户端应用程序和目标API之间的代理。它的核心职责是拦截来自客户端应用程序的请求,并确保对它们应用适当的策略。以下是Ballerina服务的一个简单示例。

\\
\import ballerina/http;\import ballerina/log;\\//目标端点\endpoint http:Client targetEndpoint {\   url: \"https://api.pizzastore.com/pizzashack/v1\"\};\\//可以通过/pizzashack/1.0.0和9090端口访问这个服务\@http:ServiceConfig {\   basePath: \"/pizzashack/1.0.0\"\}\service\u0026lt;http:Service\u0026gt; passthrough bind { port: 9090 } {\\   @http:ResourceConfig {\       methods:[\"GET\"],\       path: \"/menu\"\   }\   passthrough(endpoint caller, http:Request req) {\\       //把客户端请求转发到目标端点的/menu上\       var clientResponse = targetEndpoint-\u0026gt;forward(\"/menu\
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值