:::

簡介

應用程式介面服務(API服務)主要以系統自動化介接方式提供防救災資料供應服務,故申請者需具備程式開發能力。若需檔案型資料,可至「檔案資料申請」頁面查詢。

連線方式

採用HTTP GET的方式,以申請方式取得Token進行驗證後即可取得資料。

Token認證方式

本網站採用Token認證授權機制。

API服務使用者請於 HTTP 請求時,於 Header 新增驗證資訊欄位,並放置您所申請的Token。設定方式如下:

格式說明:

Authorization: Basic {您所申請的Token}
或
Token: {您所申請的Token}

參考範例:

Authorization: Basic 1234567890ABCDEFGHIJKLMNOPQRSTUV
或
Token: 1234567890ABCDEFGHIJKLMNOPQRSTUV

參數使用方式

本網站API服務可能會有數量不等的查詢參數,查詢參數是為縮小查詢範圍、查詢特定類型資料之用,故請於API服務網址列後,加上欲傳送的參數值。

參數設定請以「參數名稱」及「參數值」成對出現,若有兩個(含)參數以上,請以符號「&」相連所有參數。設定方式如下:

格式說明:

API服務網址列?參數1={參數1的值}&參數2={參數2的值}

參考範例:

https://dataapi.ncdr.nat.gov.tw/api/V1/Disaster/Sensor/ObsRainfall?YY=1960&MM=01&Lon=119.30&Lat=23.40

API回傳欄位說明

登入本網站後於資料目錄點選「網路服務瀏覽」頁籤,查詢您所想要查詢的服務名稱,於側邊欄位點選「觀看網路服務」頁面滑動至網路服務清單後,點選「API參數」按鈕,即可查詢該API服務所屬的參數資訊。

API參數查看步驟

參數查詢

API服務回傳格式以JSON或XML為主,若格式參數不設定,則優先提供JSON格式。

API服務回傳欄位依各個資料的不同,將可能有多種不同回傳結果。使用者可依照熟悉的程式語言,將之進行處理、轉換等作業。如以下為JSON資料格式的回傳範例:

{
  "Grid5000": "119.30_23.40",
  "WGS84_Lon": 119.3,
  "WGS84_Lat": 23.4,
  "RainValue": "NaN",
  "YYYYMM": "196001",
  "YY": "1960",
  "MM": "1",
}

回傳欄位查詢

登入本網站後於資料目錄點選「網路服務瀏覽」頁籤,查詢您所想要查詢的服務名稱,於側邊欄位點選「觀看屬性資料」,即可查詢該API服務所屬的欄位資訊。

屬性資料查看步驟

使用 Curl 進行連線

使用命令提示字元(cmd)即可透過 HTTP 協定進行的操作,不須安裝其他應用程式。若參數值為中文需將URL編碼。

參考範例:

curl -X GET "https://dataapi.ncdr.nat.gov.tw/api/V1/Disaster/Sensor/ObsRainfallByCounty?County=%E6%96%B0%E5%8C%97%E5%B8%82&YYYY=1960" -H "Token: 1234567890ABCDEFGHIJKLMNOPQRSTUV "
或
curl -X GET "https://dataapi.ncdr.nat.gov.tw/api/V1/Disaster/Sensor/ObsRainfallByCounty?County=%E6%96%B0%E5%8C%97%E5%B8%82&YYYY=1960" -H "Authorization: Basic 1234567890ABCDEFGHIJKLMNOPQRSTUV "

使用 C# 進行連線

using (HttpClient client = new HttpClient()) {
  String URL = "http://dataapi.ncdr.nat.gov.tw/V1/Disaster/Other/CCDI_Area?GridOption=澎湖縣&DataFormat=JSON";
          
  try
  {
      client.DefaultRequestHeaders.Add("Token", "您所申請的Token");

      HttpResponseMessage response = client.GetAsync(URL).Result;
                          response.EnsureSuccessStatusCode();

      string responseBody = response.Content.ReadAsStringAsync().Result;

      Console.WriteLine(responseBody);
      Console.ReadKey();
  }
  catch (HttpRequestException e)
  {
      Console.WriteLine(e.Message);
    }
}

回應狀態碼

一般呼叫API後,其依照結果將會回傳特定的狀態代碼,可協助使用者依照代碼判斷其是否正確呼叫,或回傳結果是否狀態正常等資訊判讀。

狀態碼 狀態名稱 狀態說明
200 OK 查詢成功
400 Bad Request 未輸入驗證資訊
401 Unauthorized 身分驗證錯誤
404 Not Found 找不到相關資訊