精品人妻系列无码人妻免费视频一_国产高清看AⅤ毛片_久久影院黄片毛片_暗网6一12呦女精品_亚洲一页二页高中_免费国产成版人视频appsite:_最近中文字幕MV免费高清动漫_18禁男女污污污爽爽影院

使用知行之橋®系統(tǒng)默認(rèn)API接口

知行之橋?在為您提供強(qiáng)大的EDI功能的同時, 也考慮到了如何方便的與之集成. 在此篇文章中, 我們會通過一個例子為您說明關(guān)于知行之橋?的API功能的使用.


瀏覽API定義

進(jìn)入知行之橋?的管理界面, 點擊導(dǎo)航欄中的”API”. 您就可以看到知行之橋?默認(rèn)提供的API接口.

api ui new.png

從上圖可一看到, 知行之橋?的API是以OData協(xié)議方式暴露的. OData是一種流行的REST接口的包裝方式. 知行之橋?默認(rèn)遵從與OData V4協(xié)議. 其內(nèi)容均以JSON方式傳輸.

點擊左邊列表中的任何一個連接, 你就可以看到關(guān)于這個API的詳細(xì)描述. 比如下圖中的”ports”接口. 您可以通過描述頁面上的集中方法對知行之橋?中的端口(Port)進(jìn)行增刪改查的操作.

HTTP方法 URL 操作
GET http://localhost:8001/api.rsc/certificates/ 獲取當(dāng)前所有的Port及其配置. 支持$fileter等OData查詢.
GET http://localhost:8001/api.rsc/certificates(Name) 獲取指定PortId的Port及其配置.
POST http://localhost:8001/api.rsc/certificates/ 創(chuàng)建一個新的Port, 其配置由Post請求的Body指定.
DELETE http://localhost:8001/api.rsc/certificates(Name) 刪除指定PortId的Port

您可以用任何瀏覽器打開http://localhost:8001/api.rst#certificates/地址. 然后您就可以看到當(dāng)前所有的Port及其配置了.

api ports new.png

API的安全認(rèn)證

可以看到, 知行之橋?提供了非常強(qiáng)大的接口功能. 基本上, 您可以用它完成任何在管理界面完成的工作. 正因此, 知行之橋?也提供了全面的安全認(rèn)證方式.

首先, 進(jìn)入管理界面的 “個人設(shè)置” -> “系統(tǒng)API”界面. 如下, 您可以在這里創(chuàng)建/修改方位API的用戶和IP地址.

security new.png

創(chuàng)建用戶

這里的用戶不同于您用來登錄管理界面的用戶. 它只能被用于API的訪問.

點擊”系統(tǒng)API用戶”表下方的”添加”按鈕, 您就可以開始創(chuàng)建用戶了. 這里, 您需要輸入的是用戶名稱和他的訪問權(quán)限. 對于權(quán)限, 您可以參考上面我們列出的表格. 幾種方法分別這對于增刪改查四種操作.

保存之后, 您剛創(chuàng)建的用戶就會出現(xiàn)在表中. 并且他會被賦予一個隨機(jī)的Authtoken. 這個Authtoken就可以被用于API調(diào)用的權(quán)限認(rèn)證.

訪問來源限制

默認(rèn)情況下, 知行之橋?只允許本機(jī)訪問API. 如果您希望從其他電腦/平臺訪問API. 那您就需要將其來源IP地址加入”受信任的IP地址”表. 點擊其下的”添加”按鈕就可以增加一個來源. 注意, 輸入”“將會使知行之橋?允許任何來源. 當(dāng)然, 您可以使用類似于”192.168.“這樣的配置來允許一個網(wǎng)段的訪問.

示例

這里, 我們用一個例子來說明如何用C#調(diào)用知行之橋?的接口. 假設(shè), 我們的知行之橋?已有一個AS2端口(PortId=TestAS2), 其用于和A公司做EDI報文的收發(fā)操作. 現(xiàn)在我們需要將ERP生成的EDI文件上傳給這個AS2端口, 置于其待發(fā)送隊列. 于此同時, 我們也需要檢查AS2端口的接收文件隊列, 獲取最近收到的EDI文件.

首先的, 我們通過瀏覽 http://localhost:8001/api.rst#files 地址,了解了files接口的詳細(xì)信息.

獲取文件列表

我們知道通過 GET http://localhost:8001/api.rsc/files/ 可以獲取所有文件. 但, 在這里我們需要制定PortId和Folder參數(shù)來僅獲取我們感興趣的內(nèi)容. 所以, 我們需要 GET http://localhost:8001/api.rsc/files?PortId=TestAS2&Folder=Receive. 即, 指定PortId為TestAS2, Folder為Receive. 下面是使用C#代碼的例子.

C#
1
2
3
4
5
6
7
8
9
10
11
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://localhost:8001/api.rsc/files?PortId=TestAS2&Folder=Receive");
request.Method = "GET";
request.ContentType = "application/json";
request.Headers.Add("x-rssbus-authtoken", "3m5X3i5a7G7p0f9F9u3k"); // 這就是上一步創(chuàng)建的Authtoken
 
HttpWebResponse response = (HttpWebResponse) request.GetResponse();
using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("utf-8"))) {
  String responseText = reader.ReadToEnd();
  // 解析Json獲取文件列表
}
response.Close();

獲取文件內(nèi)容

通過上面的代碼, 我們獲得了接收文件的列表. 然后我們就可以用 GET http://localhost:8001/api.rsc/files(<PortId=(PortId),Folder=(Folder),Filename=(Filename),MessageId=(MessageId)>) 這個API來獲取指定文件的內(nèi)容了. 比如: http://localhost:8001/api.rsc/files(PortId=’TestAS2′,Folder=’Receive’,Filename=’test_data_1.edi’,MessageId=”). 下面是使用C#代碼的例子.

C#
1
2
3
4
5
6
7
8
9
10
11
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://localhost:8001/api.rsc/files(PortId='TestAS2',Folder='Receive',Filename='test_data_1.edi',MessageId='')");
request.Method = "GET";
request.ContentType = "application/json";
request.Headers.Add("x-rssbus-authtoken", "3m5X3i5a7G7p0f9F9u3k");
 
HttpWebResponse response = (HttpWebResponse) request.GetResponse();
using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("utf-8"))) {
  String responseText = reader.ReadToEnd();
  // parse Json
}
response.Close();

上傳文件

接下來, 如果我們需要將文件上傳到AS2端口的待發(fā)送隊列, 我們就要使用 POST http://localhost:8001/api.rsc/files/ 接口. 而,文件的內(nèi)容和文件名需要通過JSON格式發(fā)送. 如下:

1
2
3
4
5
6
7
{
  "Folder": "Send",
  "Filename": "test.edi",
  "Content": "dGVzdA==",
  "PortId": "TestAS2",
  "MessageId": ""
}

其中, Content是文件內(nèi)容的BASE64編碼. 下面是使用C#代碼的例子. 注意, 您的用戶需要POST權(quán)限才能使用POST方法.

C#
1
2
3
4
5
6
7
8
9
10
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://localhost:8001/api.rsc/files");
request.Method = "POST";
request.ContentType = "application/json";
request.Headers.Add("x-rssbus-authtoken", "3m5X3i5a7G7p0f9F9u3k");
String file = "{\"Folder\": \"Send\",\"Filename\": \"test.edi\",\"Content\": \"dGVzdA==\",\"PortId\": \"TestAS2\",\"MessageId\"\"}";
byte[] fileBytes = Encoding.UTF8.GetBytes(file);
request.ContentLength = fileBytes.Length;
request.GetRequestStream().Write(fileBytes, 0, fileBytes.Length);
request.GetRequestStream().Close();
request.GetResponse().Close();

下載C#示例工程

該Demo實現(xiàn)的是調(diào)用Sendfile API,下載示例工程

生成其他語言代碼

為了適應(yīng)不同開發(fā)環(huán)境的示例代碼要求,我們將借助 Postman 工具,生成不同開發(fā)語言的示例代碼。

以上傳文件至 AS2 端口為例,端口ID 為 TestAS2,確保該端口存在于 EDI 環(huán)境。我們先用 Postman 工具使用 POST http://localhost:8001/api.rsc/files/ 接口,而文件的內(nèi)容和文件名都需要通過 JSON 格式發(fā)送。

1
2
3
4
5
6
7
{
  "Content": "dGVzdA==",
  "Filename": "Filename_1",
  "Folder": "Send",
  "MessageId": "",
  "PortId": "TestAS2"
}

開始之前,先下載 Postman 工具

啟用 Postman 之前,先根據(jù)上述的 API 的安全認(rèn)證指導(dǎo),進(jìn)入管理界面的 “PROFILE” -> “Admin API”界面,創(chuàng)建用戶,以及允許訪問。

接下來,在 Postman 工具選擇請求類型 POST,以及填寫上傳文件接口,同時還需要添加Header 屬性和對應(yīng)的值,如下圖:

edi

然后添加上述 JSON 內(nèi)容至 Body,內(nèi)容類型選擇 JSON(application/json),點擊 Send,如下圖結(jié)果顯示,調(diào) API 成功且已成功上傳文件。

edi

最后一步,點擊 Postman 當(dāng)前頁面的 code功能,彈出如下框,根據(jù)選擇語言類型,獲取調(diào)用 API 示例工程代碼。

edi

如果我們選擇 Java -> ok Http庫,Java 示例代碼如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
OkHttpClient client = new OkHttpClient();
 
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"PortId\": \"TestAS2\", \"Folder\": \"Send\", \"Filename\": \"Filename_1\",\"Content\":\"dGVzdA==\",\"MessageId\":\"\"}");
Request request = new Request.Builder()
  .url("http://localhost:8001/api.rsc/files/")
  .post(body)
  .addHeader("x-rssbus-authtoken", "4a8L4f1o2Y8u8s7G4c0h")
  .addHeader("Content-Type", "application/json")
  .addHeader("cache-control", "no-cache")
  .addHeader("Postman-Token", "8152e5bb-026d-4708-8f35-e264fef9a639")
  .build();
 
Response response = client.newCall(request).execute();

了解更多EDI信息,請您電話 177-8250-8152 或郵件 edi@kasoftware.cn 聯(lián)系我們。點擊下方藍(lán)色按鈕,即可免費(fèi)試用EDI軟件。

注:文案部分圖片及內(nèi)容來源于網(wǎng)絡(luò),版權(quán)歸原創(chuàng)作者所有,如有侵犯到您的權(quán)益,請您聯(lián)系我們進(jìn)行刪除,給您帶來困擾,我們深感抱歉。

標(biāo)簽: , , , , , ,
文章分類 幫助文檔, 示例工程