
如何快速實現REST API集成以優化業務流程
(1)輸入工具名稱,如:阿里云工商信息查詢…..(隨你自己取名,但一定要取一個名字)
(2)在鑒權方法那里填入appcode。點擊鑒權方法的下拉框,鑒權類型選擇“api key”.
健,填寫:
Authorization
值,填寫:你復制的那個appcode。
整體如下圖所示:
點擊保存。
(3)編寫工具swagger格式的openapi代碼。
我給大家提供我自己寫的swagger-openapi代碼示例:
{
"openapi": "3.1.0",
"info": {
"title": "天眼查-精準查詢工商信息",
"description": "天眼查-精準查詢工商信息",
"version": "1.0.0"
},
"tags": [
],
"paths": {
"/getCompanyBaseInfo/{CompanyNameOrCreditNo}/": {
"get": {
"operationId": "CompanyNameOrCreditNo",
"summary": "天眼查-精準查詢工商信息",
"deprecated": true,
"description": "企業全稱或者全國統一信用代碼",
"tags": [
],
"parameters": [
{
"name": "CompanyNameOrCreditNo",
"in": "path",
"description": "企業全稱或者全國統一信用代碼",
"required": true,
"example": "安徽建工集團股份有限公司",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "成功",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
}
}
}
}
},
"1101": {
"description": "輸入的名稱不合法",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
}
}
}
}
},
"1102": {
"description": "請求超時",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
}
}
}
}
},
"1103": {
"description": "服務器異常",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
}
}
}
}
},
"1104": {
"description": "無法匹配到傳入的企業全稱",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
}
}
}
}
},
"1105": {
"description": "系統繁忙",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
}
}
}
}
}
},
"security": [
]
}
}
},
"components": {
"schemas": {
},
"securitySchemes": {
}
},
"servers": [
{
"url": "https://api.81api.com"
}
]
}
復制這段代碼到指定位置即可。如果你有一定的編碼能力,可自行優化。
(小聲BB:其實我寫的示例代碼已經夠用了)
代碼寫好后,點擊“保存”。
到這里,恭喜你,dify中構建一個基于阿里云的工商信息查詢工具,就已經實現了。
實現歸實現,是騾子是馬,得拉出來溜溜,看看到底對不對,能不能跑起來最重要。那么你就需要繼續往下看。
我們實操一次,用dify的workflow快速構建一個基于工商信息查詢工具的工作流出來,并運行這個工作流,實現:輸入一個企業名稱,查詢該企業的工商信息結果。
假設:
我們輸入一個企業名稱,要求工作流輸出這個企業的統一社會信用代碼和企業名稱。
業務分析:
首先我們要分析一下我們的工作流實現邏輯。這個工具需要傳入一個具體的企業名稱,那么就意味著我們需要設定一個輸入字段,接收這個字段,并傳給工商信息數據去查詢,然后將查詢出來的結果做一個簡單的json字段解析,最后展示出企業名稱和該企業的統一社會信用代碼。
(1)OK。說干就干,在“開始”組件中,建立一個字段“name”,如下圖所示:
(2)“開始”組件之后要拉出一個新的節點,這個節點,我們就選擇剛創建好的工具節點。
工具節點,我們要設置一個輸入變量,選擇“開始”組件中的“name”即可。如上圖所示。
(3)工具節點之后再拉出一個“代碼執行”節點,該節點用于解析阿里云接口返回的json數據內容,因為我們要提取統一社會信用代碼,所以我們需要通過代碼腳本提取出統一社會信用代碼這個參數。
(3.1)將工具節點的輸出變量,設置為代碼執行局節點的輸入變量。
是的,你沒看錯,因為工具節點的輸出,其實就是代碼節點的輸入,你得設置一下,不然人家不知道輸入是什么,懂了么?
我知道你是懶人,懶得手動拼寫這個參數名,所以,你還是直接復制吧。
http_response
(3.2)寫入Python代碼,用于解析工具傳回的json代碼。代碼示例如下:
def main(http_response: str) -> dict:
import json
try:
# 嘗試解析JSON
data = json.loads(http_response)
# 嘗試提取統一社會信用代碼
register_no = data['data']['registerData'].get('creditNo', 'creditNo not found')
# 嘗試提取公司名稱
company_name = data['data'].get('name', 'Company Name not found')
# 構建結果字典并返回
return {
'register_no': register_no,
'company_name': company_name
}
except json.JSONDecodeError:
# 如果JSON解析失敗,返回錯誤信息字典
return {'error': "Failed to decode JSON"}
except KeyError as e:
# 如果缺少某個鍵,返回錯誤信息字典
return {'error': f"Missing key in JSON data: {e}"}
如圖所示,你參考下,別弄錯了哦。
(3.3)設置代碼節點的輸出變量,用于最終結果展示。
直接參考吧,懶人請直接復制下面的吧:
這個參數指社會統一信用代碼的字段名。
register_no
這個參數指企業全稱的字段名。
company_name
(4)代碼執行節點之后再拉出一個模型轉換節點。如下圖所示:
解釋一下這個節點為什么是這樣:
兩個輸入字段名是不是很熟悉,就是你剛填寫的,這兩個字段作為模版節點的輸入變量,模板節點接收到這兩個變量之后,才能在模板代碼中引用展示。
在模板的代碼節點中,你是不是一下子就感覺自己懂了,錯,你沒懂,jinjia2格式的代碼看起來就像是正常的文檔一樣,其實它屬于模板語法,變量需要通過兩個花括號標記。
你之所以覺得它簡單,是因為我們本次示例沒有那么多額外的要求,所以不需要復雜的構造。
公司名稱:{{ company_name }}
統一社會信用代碼:{{ register_no }}
(5)最后拉出一個“結束”節點。將模板節點的輸出,作為“結束”節點的輸入。展示最終效果。到這里,這個簡單但完整的工作量就算構建成功了,如下圖所示:
到這里,恭喜你,你可以去調試,自己跑一遍整體工作流了。以下是我又跑了一遍的結果:
本文章轉載微信公眾號@提示日記