發佈API-參數為空查詢全部

  • 文檔創建者:Roxy
  • 編輯次數:15
  • 最近更新:Nikozhan 于 2025-07-19
  • icon提示:

    本文方案適用於 4.2.6.2 及之後版本;4.2.6.2 之前版本,請參見:歷史版本

    1. 概述

    1.1 版本

    FineDataLink版本
    功能變動
    4.0.28

    資料發佈 API 參數支援配置必填/非必填


    1.2 應用場景

    使用者想要在發佈 API 時,對 API 取數邏輯進行設定:未傳指定參數,則省略此參數對應的查詢條件。即實現想查詢全部資料時,不傳對應參數;要查詢其他非空值資料時,正常傳參。

    18.png

    2. 操作步驟

    範例:將S訂單中的資料發佈為 API。希望在取數時不傳遞參數「area」,則取出全部的資料,當正常傳遞「area」參數,則查詢其他非空值資料。

    2.1 建立API

    進入「資料服務」,點選「建立>API」,進入 API 發佈編輯介面。如下圖所示:

    11.png

    2.2 輸入API資訊

    設定 API 名稱;請求方式選擇 GET;設定路徑、逾時時間、綁定應用;API 描述可為空。

    若此時沒有建立應用,可不新增應用,在完成 API 建立後,在應用列表中綁定 API ,詳情參見:綁定API至應用綁定應用步驟必做,否則後續無法呼叫該 API 。

    各設定項說明請參見:發佈API概述

    12.png

    注:若使用者想要對發佈的API進行層級設計,可以使用連字元(-)、正斜槓(/)等符號設計API路徑,如下圖所示:

    13.png

    2.3 設定發佈內容及參數

    1)設定介面如下圖所示:

    SELECT * FROM S訂單 WHERE 1=1 AND CASE WHEN '${area}' != '' THEN 貨主地區='${area}' ELSE 1=1 END

    14.png

    各設定項說明如下:

    設定項
    說明
    SQL語句

    1)SQL 語句中設定參數 area,該 API 發佈後,可使用參數查詢S訂單」表中的數

    2)範例為 MySQL 資料庫文法,不同資料庫的文法不同,使用者可根據實際使用資料庫類型修改文法

    3)若 SQL 語句中參數加上''(本文範例寫法),呼叫 API 時,參數值就不用帶''

    注:此時若呼叫 API ,則SQL 語句會將預設值空帶入,即執行SELECT * FROM S訂單 WHERE 1=1 AND CASE WHEN '' != '' THEN 貨主地區='' ELSE 1=1 END,即查詢出全量資料

    若設定預設值為 NULL 時,則SQL 語句會將預設值 NULL 帶入,即執行 SELECT * FROM S訂單 WHERE 1=1 AND CASE WHEN 'NULL' != '' THEN 貨主地區='NULL' ELSE 1=1 END,此時的執行結果取決於資料庫讀取情況

    若 SQL 語句中參數不帶'',即:SELECT * FROM S訂單 WHERE 1=1 AND CASE WHEN ${area} != '' THEN 貨主地區=${area} ELSE 1=1 END,則呼叫 API 時,參數值需要帶上''

    4)4.0.28 之前版本:為瞭解決 SQL 防注入問題,FineDataLink 將參數中包含的單引號預設新增進防注入限制分離字元中,也就是預設 SQL 語句中參數中的資料不允許加單引號,需要在查詢預覽的時候手動給參數預設值加引號進行預覽。因此若使用者需要 SQL 語句中的參數需要有引號,則需要在 SQL防注入 中將分離字元單引號取消選擇

    請求參數配置

    自動識別查詢 SQL 設定的參數名,可以定義該參數的參數類

    由於此時希望實現使用 API 時不引用參數,預設取出所有的資料,因此取消開啟「參數必填」按鈕

    回傳值配置

    點選「獲取」按鈕,可輸入參數值查詢資料

    16.png

    2)點選下一步」進入「預覽測試」介面,點選測試呼叫按鈕,可看到參數為空成功查詢全部資料。如下圖所示:

    15.png

    3)點選生成API按鈕。

    2.4 API上線

    在右上角點選「上線」,即可發佈 API,如下圖所示:

    17.png

    3. 後續步驟

    1)若使用者在發佈時沒有將 API 新增至指定應用,也可以在 綁定API至應用 中將上線的 API 透過應用進行管理,以便能夠被呼叫。

    2)若需要使用已經發布的 API,詳情參見:使用資料服務發佈的API(GET 請求)

    可看到參數為空,即不傳對應參數 area 時,取全部的資料,如下圖所示:

    18.png

    對已經發布的 API 進行管理,詳情參見:服務維運




    附件列表


    主題: 資料服務
    已經是第一篇
    已經是最後一篇
    • 有幫助
    • 沒幫助
    • 只是瀏覽
    • 评价文档,奖励 1 ~ 100 随机 F 豆!