คู่มือการใช้งาน API ในระบบ Open data
June 6, 2025API ในระบบ Open data ช่วยให้ผู้ใช้สามารถเข้าถึงข้อมูลที่อยู่ในระบบได้โดยไม่ต้องเข้าถึงหน้าเว็บไซต์โดยตรง ซึ่งระบบ Open data สามารถใช้ API ที่อยู่ในระบบ API พื้นฐานของ CKAN ได้ ตามเอกสาร Official Documentation ของ CKAN โดยสามารถเข้าถึงได้ทั้งข้อมูล metadata ของทั้งชุดข้อมูลและทรัพยากร และยังสามารถดึงเนื้อข้อมูลทรัพยากรบางประเภทได้โดยตรง
API ของระบบ Open data จะสามารถใช้งานได้กับไฟล์ทรัพยากรชุดข้อมูลที่เป็นไฟล์ขนิด CSV, XLS, XLSX ที่อยู่ในรูปแบบตารางที่ระบบสามารถ preview ได้ หากไฟล์ทรัพยากรใดที่ระบบไม่สามารถแสดงตาราง preview ได้ จะไม่สามารถเรียกเนื้อข้อมูลผ่าน API ได้โดยตรง
โครงสร้างของ API และตัวอย่าง Endpoint ที่สามารถใช้งานได้ในระบบ Open data
Base URL: https://opendata.mea.or.th/api/3/action
Base Response Structure
Parameter | รายละเอียด |
---|---|
help | URL สำหรับดูรายละเอียดของ Endpoint นั้นๆ |
success | (True of False) API ทำงานสำเร็จหรือไม่ |
result | (กรณีที่ Success=True) ข้อมูลจาก API |
error | (กรณีที่ Success=False) รายละเอียดปัญหาที่เกิดขึ้น |
Endpoint เรียกดูรายละเอียดชุดข้อมูล
GET /package_show
Params
Parameter | รายละเอียด |
---|---|
id | ชื่อหรือรหัสของชุดข้อมูล |
Example: https://opendata.mea.or.th/api/3/action/package_show?id=budget-2568
Endpoint เรียกดูรายละเอียดทรัพยากร
GET /resource_show
Params
Parameter | รายละเอียด |
---|---|
id | รหัสทรัพยากร (สามารถหาได้จาก Endpoint package_show หรือ URL ของทรัพยากร) |
Example: https://opendata.mea.or.th/api/3/action/resource_show?id=54cdd6d1-497a-44ea-9e8a-d60f6ccc7537
Endpoint ดึงข้อมูลจากทรัพยากร (รองรับเฉพาะบางทรัพยากร)
GET /datastore_search
Params บางส่วน
Parameter | รายละเอียด |
---|---|
resource_id | รหัสทรัพยากร |
q | Keyword คำค้นหา |
limit | จำนวนข้อมูลที่ต้องการ |
offset | จำนวนข้อมูลที่ต้องการข้าม นับจากข้อมูลแถวแรก |
สามารถศึกษารายละเอียด parameter ที่สามารถใช้งานได้ทั้งหมด ที่นี่
Example: https://opendata.mea.or.th/api/3/action/datastore_search?limit=5&resource_id=640db899-0985-458f-a964-a22236634cd8
ตัวอย่างการเรียกใช้ API ระบบ Open data ในภาษา Python
url = "https://opendata.mea.or.th/api/3/action/datastore_search"
params = {
"resource_id": "54cdd6d1-497a-44ea-9e8a-d60f6ccc7537",
"limit": 5
}
response = requests.get(url, params=params, headers=headers)
data = response.json()
for record in data['result']['records']:
print(record)
ตัวอย่างการเรียกใช้ API ระบบ Open data ในภาษา JavaScript (Fetch API)
const url = "https://opendata.mea.or.th/api/3/action/datastore_search?resource_id=54cdd6d1-497a-44ea-9e8a-d60f6ccc7537&limit=5";
fetch(url, {
method: "GET",
headers: {
"Content-Type": "application/json",
}
})
.then(response => response.json())
.then(data => {
const records = data.result.records;
records.forEach(record => {
console.log(record);
});
})
.catch(error => {
console.error("Error: ", error);
});