天天看點

微服務工具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。歡迎留言,謝謝!

繼續閱讀