MuleSoft 是一家用于企业级软件集成平台,它的作用呢,就是将传统的紧密耦合的集成方式,变成API-led Connectivity,属于ESB(企业服务总线)的形式,简单来讲,传统的点对点集成模式,缺乏扩展性,做出来的产品很可能是这样的
这样的产品在完成后,因为其耦合程度太高,但凡要修改其中一个地方的内容,比如新增字段,其他数据库实体也需要相应的更新集成代码,并通过测试再上线,随着需求更新变更增加,系统的负载会越来越高,并最终不堪重负
那么如果使用MuleSoft对接口进行整合,做出来的产品就会摇身一变成
如图中所示,重构后的系统架构分Experience APIs、Process APIs和System APIs三层,从而有效保障了系统的扩展性,这也是MuleSoft所推荐的组织形式,将API构建和组织为三类
那么我们来看一下MuleSoft该如何使用
首先注册MuleSoft试用账号(30天免费),然后填写信息完成,就可以进入到Anypoint平台
MuleSoft平台主要分五个大区域
组件 | 描述 |
Design Center | 设计API,构建集成并为任何系统创建连接器 |
Manage Cneter | 从初始部署到正在进行的操作,管理API和关于AnyPoint平台的所有信息 |
Engage - AnyPoint Exchange | 私有的或者公开的资源库 |
Run - Mule | 基础执行引擎,轻巧且高性能的通用处理器 |
Scale - Runtime Service | 支持平台的辅助功能,例如数据的临时存储和消息队列 |
接下来我们尝试下MuleSoft的使用:登录Anypoint, 选择Design Center → Start designing.
点击Create按钮,Create API specification。输入名称:Hello-World
之后进入到一个API Specification窗口,在这里可以设计API 规范,输入下列内容
#%RAML 1.0
title: Hello-World
version: v1.0
securitySchemes:
basic:
description: |
This API supports Basic Authentication.
type: Basic Authentication
securedBy: [basic]
types:
Account:
properties:
identifier?: string
identifiers: IdentifierMap
name: string
email: string
phone: number
description?: string
Identifier:
type: string
pattern: ^[0-9A-Za-z-]+
minLength: 3
maxLength: 36
IdentifierMap:
type: array
items:
type: object
properties:
/[0-9A-Z-]+/:
type: Identifier
/Account:
/{accountId}:
uriParameters:
accountId: string
get:
responses:
200:
body:
application/json:
type: Account
example: |
{
"identifier": "eb8c8ca7-3c42-4489-a820-3aa138430b75",
"identifiers": [{
"SKU": "UGG-BB-PUR-06"
}],
"name": "Luqinghau",
"phone":12334567890,
"email":"[email protected]",
"description": "just test mulesoft Function.this is hello mulesoft"
}
404:
body:
application/json:
properties:
message: string
example: |
{
"message" : "Account not found"
}
上面的内容很简单,首先从顶层描述整体API开始,定义支持的身份验证方法(基本身份验证),然后使用secureBy参数为所有端点和方法全局分配该身份验证方法。规范创建产品的数据类型,其中包含其参数和类型。在其下,您可以找到IdentifierMap等数据类型。通过指定数据类型,可以在整个RAML文件中引用它们来重用它们。接下来该规范描述了GET API /Account / {accountId} 以及它对请求参数-客户ID,内容类型和枚举的查询参数-以及响应。成功的200输出为JSON正文指定的数据类型,以及200响应的示例。最后,还有一个异常错误,状态代码为404未找到。
那么完成的API规范该如何进行测试呢?右上角打开内置的模拟服务(Mocking Service),然后就会出现一个Base URL的参数,这个Base URL是访问API的基本路径。 所有端点都附加到此基本路径
Tips: 模拟服务可以让实现API与调用API并行,从而加快项目速度,无需等待API的完成
点击GET按钮,然后页面反转,出现Try It,从而开始进行接口授权以及参数模拟
点击Send, 会得到一个模拟的响应结果,点击Details, 可以查看接口响应的原始数据
设计出来的模拟API可以跟其他团队成员共享,点击右上角的 Publish to Exchange,输入API版本号,即可保存到团队共有的资料库中供人查看使用
总体上来讲,MuleSoft的设计和使用更适合大型项目,涉及的系统越多越能发挥它的作用,是一款值得学习的软件