天天看点

微服务工具Axway API Builder 4.x 实战

这里给大家介绍Axway最新的一款可免费本地使用的微服务(Microservices)创建工具Axway API Builder Standalone 4.x。此工具基于Node.js runtime,完全图形化操作,几乎没有代码开发,使用非常方便。主要用于:

  • 1)     快速创建访问内部数据源或者外部云数据的微服务和API;
  • 2)     对微服务可进行图形化流程编排;
  • 3)     内置DockerFile,直接打包微服务,生成Docker Image以实现容器化部署;

下面我们就来看看这个工具的方便程度。这里以CentOS环境进行详细步骤的说明。

安装:

1. 安装Node.js(含NPM), Node.js版本不低于8.9, NPM版本不低于5.7,这里用Node.js官网当前推荐的node-v8.11.3-linux-x64.tar.gz

下载地址:https://nodejs.org/download/release/v8.11.3/

这里解压安装包,即可使用。

设置Node.js环境变量

export NODE_HOME=/usr/bin/node

export PATH=$NODE_HOME/bin:$PATH

所有步骤完成后,可通过npm -v 验证Node.js是否可使用

2. 安装Docker  

参考https://docs.docker.com/install/linux/docker-ce/centos/#install-from-a-package

按照指示下载docker-ce-18.06.0.ce-3.el7.x86_64.rpm,并完成相关安装命令,以及 Post-installation steps for Linux

3. 安装Axway API Builder 4.x

参考https://docs.axway.com/bundle/API_Builder_4x_allOS_en/page/api_builder_getting_started_guide.html

安装:

sudo npm install -g @axway/api-builder

创建微服务项目,并启动:

api-builder init myproject

cd ./myproject

npm install --no-optional

npm start

API Builder使用

API Builder可以安装各种关系型数据库、No-SQL、云数据的连接器,以基于数据创建CRUD微服务。这里以MySQL数据库为例,介绍如何创建访问MySQL数据的微服务。

1. 搭建好自己的MySQL服务器。这里我们创建一张新的表。比如创建表demotable, 包含2个字段:

微服务工具Axway API Builder 4.x 实战

2. 安装微服务工程的MySQL connector

在<微服务工程根目录>下执行安装MySQL连接器:

npm install @axway/api-builder-plugin-dc-mysql

3. 修改<微服务工程根目录>\conf目录下的default.js和mysql.default.js,替换数据库主机IP、用户名、密码等。

详细请参考https://docs.axway.com/bundle/API_Builder_4x_allOS_en/page/api_builder_connectors.html

4. API Builder会自动将MySQL数据库中的表加载到Mode列表里。API Builder提供了基于Mode和基于API两种模式的微服务创建,这里以mode为例。

通过http://<API Builder Host IP>:8080/console,进入API Builder图形化管理控制台,选择其中一个Mode,创建endpoints.

微服务工具Axway API Builder 4.x 实战

Endpoints创建完成之后,会进入API详细信息,

微服务工具Axway API Builder 4.x 实战

通过左边菜单“API Docs&Test”,也可以看到demotable的API。

5. 测试API。这里既可以在页面直接测试,也可以通过CURL命令等其他工具进行测试。

比如展开Create API,输入两个字段的值,点击Create,返回201 Created。

微服务工具Axway API Builder 4.x 实战

6. 检查MySQL数据库,会发现数据已成功写入。

7. 再比如使用CURL命令,查询数据,命令中的API Key可以通过<微服务工程根目录>\conf目录下的default.js文件找到。

微服务工具Axway API Builder 4.x 实战

Docker容器部署

详细内容可参考https://docs.axway.com/bundle/API_Builder_4x_allOS_en/page/dockerize_an_api_builder_service.html

1. 首先执行:docker run hello-world  验证docker是否可用

2. 通常情况下,对于数据库IP地址、微服务运行端口等信息,我们可以在运行容器时再指定。故而,在Build Docker Image的时候,将此部分信息设置为变量。这里以数据库IP地址、微服务运行端口两个参数为例,修改<微服务工程根目录>\conf目录下的default.js和mysql.default.js:

Default.js中的服务端口修改为:

微服务工具Axway API Builder 4.x 实战

mysql.default.js 中的数据库主机修改为 :

微服务工具Axway API Builder 4.x 实战

图中“||” 之后的内容为默认值,即在没有变量输入的情况下会使用默认值。

3. API Builder创建Project的时候会在每个Project的根目录生成DockerFile,基于此DockerFile可以快速创建docker镜像了:

cd ./myproject

docker build -t <IMAGE_NAME> ./

docker image ls

本例中:

docker build -t myimage ./

微服务工具Axway API Builder 4.x 实战

4. 基于docker image运行容器实例1,通过PORT变量传输服务运行端口值“8081”

docker run --name <CONTAINER_NAME> -e PORT=8081 <IMAGE_NAME>

本例中执行:

微服务工具Axway API Builder 4.x 实战

容器启动成功有如下提示:

微服务工具Axway API Builder 4.x 实战

验证此容器。首先,获取此容器的IP地址:

docker inspect container8081 | grep '"IPAddress"' | head -n l

微服务工具Axway API Builder 4.x 实战

然后再执行CURL验证服务:

curl  -u <API_KEY>: "http://<IP_ADDRESS>:<PORT>/api/endpoints/demotable/query"

微服务工具Axway API Builder 4.x 实战

5. 基于docker image运行容器实例2,通过PORT变量传输服务运行端口值“8082”

微服务工具Axway API Builder 4.x 实战

验证此容器:

微服务工具Axway API Builder 4.x 实战

以上就全部完成了微服务的快速创建,以及容器化部署。

API Builder除了MySQL connector,还支持其他很多Connector,比如:MongoDB, Oracle, SQL Server, Elastic, OData, Redis, LokiJS, zendesk, Saleforce, Google Drive, Amazon S3, Microsoft Azure, Twitter, Facebook, HubSpot, NetSuite CRM, MS Sharepoint, MS Dynamics CRM, ServiceNow, One Drive, Eloquoa, MailChimp, Sugar CRM, Concur, Pardot等。

Microservices & API Management (微服务和API管理)

Axway除了提供API Builder之外,还提供API Gateway, API Manager, API Portal, Analytics等一系列API管理商业中间件,功能还是很强大很完整,属于Gartner APIM Leader级别的解决方案。有兴趣的可以访问Axway官网http://www.axway.com。欢迎留言,谢谢!

继续阅读