知行之桥®在为您提供强大的EDI功能的同时, 也考虑到了如何方便地与之集成。在此篇文章中,我们会通过一个例子介绍如何使用知行之桥®V2025的API功能。
浏览API 定义
进入知行之桥®,点击左侧导航栏中的"API",可以看到知行之桥®默认提供的API接口。知行之桥®EDI系统的API是以OData协议方式(OData是一种流行的REST接口的包装方式)暴露的,知行之桥®默认遵从OData V4协议,其内容均以JSON方式传输。

点击左侧列表中的任何一个连接,你就可以看到关于这个API的详细描述。比如以下列表中的"POST"接口,您可以通过描述页面上的集中方法对知行之桥®中的端口(Port)进行增删改查的操作。
| HTTP方法 | URL | 操作 |
|---|---|---|
| GET | http://localhost:8001/api.rsc/certificates/ | 获取当前所有的Port及其配置. 支持$fileter等OData查询. |
| GET | http://localhost:8001/api.rsc/certificates(Name) | 获取指定PortId的Port及其配置. |
| POST | http://localhost:8001/api.rsc/certificates/ | 创建一个新的Port, 其配置由Post请求的Body指定. |
| DELETE | http://localhost:8001/api.rsc/certificates(Name) | 删除指定PortId的Port |
用户可以用任何浏览器打开http://localhost:8001/api.rst#certificates/地址,然后就可以看到当前所有的Port及其配置了。

API 的安全认证
知行之桥® EDI系统提供了非常强大的接口功能,基本上,用户可以用它完成任何在管理界面完成的工作。正因此,知行之桥®EDI系统也提供了全面的安全认证方式。
首先,点击左侧菜单栏中的"系统设置 "-> "安全"界面,如下所示:

用户可以在这里进行IP设置,允许或限制对知行之桥® EDI系统 API 和应用程序管理界面的访问,添加受信任 IP范围或者添加禁用IP范围。
访问来源限制
默认情况下,知行之桥®只允许本机访问API。如果您希望从其他电脑/平台访问API,那您就需要将其来源IP地址加入"受信任的IP地址"表。点击其下的"添加"按钮就可以增加一个来源。注意,输入星号将会使知行之桥®允许任何来源。当然, 您可以使用类似于"192.168."这样的配置来允许一个网段的访问。

创建用户
每个用户都被授予一个身份验证令牌,可用于访问系统 API。用户可以通过系统 API 执行的特定操作反映了同一用户可以通过 UI 执行的操作。例如,无法通过 UI 删除端口的用户无法使用系统 API 删除端口。要通过系统 API 执行任意操作,请在调用 API 时使用来自 Admin 用户的身份验证令牌。
点击左侧菜单栏中的"系统设置"-> "用户"界面,点击 "添加用户"。

根据指示,填写用户名、密码,默认创建的是管理员角色的用户。注意启用"API访问"。

接下来请保存身份认证令牌(Authtoken),并将此令牌复制到安全的地方。如果授权令牌丢失,可以随时为此用户创建一个新的。这个Authtoken就可以被用于API调用的权限认证。

添加成功后即可在 用户 页面中看到新创建的用户Iris。

可以通过多种方式在API请求中使用身份认证令牌:
- 基本身份认证:使用基本身份认证时,用户的身份认证令牌(Authtoken)作为密码。
- HTTP 头:将带有身份认证令牌(Authtoken)的"x-cdata-authtoken"添加到 HTTP 头请求中。
- 查询字符串参数:将身份认证令牌(Authtoken) 指定为"@authtoken",作为 HTTP 表单发布数据或查询参数的一部分。
使用Postman调用EDI系统的API
在了解了知行之桥®对于API的定义和安全机制后,下面我们将使用Postman来实现对AS2端口文件列表的获取、文件内容的获取以及文件的上传。
在知行之桥®左侧菜单栏点击工作流,在Default工作区中创建一个AS2端口(PortId=AS2_testAPI),用于和A公司做EDI报文的收发操作。

现在我们需要将生成的EDI文件上传给这个AS2端口。同时,我们也需要检查AS2端口的接收文件队列,获取最近收到的EDI文件。
获取文件列表
使用Postman获取文件列表之前,需要添加Header的属性和对应的值,如下表:
| key | Value |
|---|---|
| x-rssbus-authtoken | 4x8T4y2w0K6z3m1J8w9e |
| Content-Type | application/json |
这里的x-rssbus-authtoken属性的值即刚刚为用户分配的随机Authtoken。我们选择http请求的类型为Get,将URL:http://localhost:8001/api.rsc/files输入到对应的链接栏中,点击send,将看到下方的Body中返回的JSON格式的文件列表,如下图:

红色箭头所指位置显示"Status:200 OK"即为调用成功。用户可以在"Body"框中看到知行之桥®工作流中的所有文件。
获取特定端口下的文件列表
比如说我们要检索命名为"X12Test"的X12端口下的输出列表中的文件。

只需要将URL修改为:http://localhost:8001/api.rsc/files?ConnectorId=X12Test\&Folder=Receive,即可获取指定的文件内容,(其中X12Test是工作流端口名)如下图:

然后我们就可以在Body当中看到列表中的文件了。
获取文件内容

有了使用Postman获取文件列表的基础,如果需要获取文件内容,我们可以将URL修改为以下格式:
在这里我们只需要指定路径以及文件名,即可获取指定的文件内容。

例如:
http://localhost:8001/api.rsc/files(\<Connectorld='X12Test',Folder='Send',Filename='856.x12′)
表示获取端口ID为X12Test的这个端口下,Send文件夹中文件名为856.x12的文件。
如果提前不知道MessageId或者不想填写,去掉该属性也是可以的。

然后填写好端口名以及文件夹名。Send之后调用成功,在这个Body框中的"Content"即为调用到的文件内容。

(经过64转码后得到的856报文为下图)

上传推送新文件

首先在API界面复制POST方法的URL,复制到postman的链接栏。
上传文件到AS2端口,就需要使用POST请求,并将在API界面复制POST方法的URL:http://localhost:8001/api.rsc/files/ ,复制到postman的链接栏,而文件的内容需要在Body中,以JSON的格式发送。(除了GET方法以外,其余POST、PUT、DELETE都需要填写固定的属性)如下图:

接下来点击Body,选择raw,选择JSON,将文件的内容写入到Body框当中。

可以看到在这段内容当中,指定了新文件名为"test.x12"同时指定了端口名和文件夹名及路径。
点击Send(看到Status:200 OK即为调用成功)工作流当中刷新对应的输入列表,就可以看到推送的新文件了。

如在实操过程中遇到问题,或希望了解有关EDI对接的相关信息,欢迎交流。