Text Size | A   A   A

คู่มือการใช้งาน Data.go.th API

คู่มือการใช้งาน Data.go.th API

CKAN Data Catalog API

รายละเอียดวิธีการใช้งาน CKAN Data Catalog API

CKAN Data Catalog API เป็น API สำหรับการเข้าถึงข้อมูลเมทาดาตาของชุดข้อมูลเปิดภาครัฐบนเว็บ Data.go.th โดยข้อมูลเมทาดาตาแบ่งเป็น 2 ระดับคือ

  1. ระดับชุดข้อมูล (package) – ชุดข้อมูล 1 ชุดข้อมูลสามารถประกอบด้วยไฟล์ทรัพยากรหลายไฟล์ได้ ดังตัวอย่างในรูป เช่น ชุดข้อมูล ข้อมูลการจดทะเบียนนิติบุคคล พ.ศ. 2529 ประกอบด้วย ไฟล์ทรัพยากร 3 ไฟล์ ได้แก่ 1) ข้อมูลการจดทะเบียนนิติบุคคล – กุมภาพันธ์-2559-XLS (.xls) 2) ข้อมูลการจดทะเบียนนิติบุคคล – มีนาคม-2559-CSV (.csv) 3) Metadata-ข้อมูลการจดทะเบียนนิติบุคคล-พฤษภาคม-2559 (.pdf) เป็นต้น
  2. ระดับไฟล์ทรัพยากร (resource) – ไฟล์ทรัพยากรของชุดข้อมูล คือไฟล์ที่ผู้ใช้สามารถดาวน์โหลดไปใช้งานได้ ในรูปตัวอย่าง แสดงเมทาดาตาของไฟล์ทรัพยากร ข้อมูลการจดทะเบียนนิติบุคคล – กุมภาพันธ์-2559-XLS เป็นต้น

API สำหรับเรียกดูข้อมูลของชุดข้อมูล เช่น

API สำหรับเรียกดูข้อมูลของไฟล์ทรัพยากรชุดข้อมูล เช่น

 

รายละเอียด Dataset

CKAN Data API

          CKAN Data API เป็นการค้นคืนข้อมูลที่อยู่ในไฟล์ชุดข้อมูล ด้วยเงื่อนไขการสืบค้นต่างๆ โดย CKAN Data API จะสามารถใช้งานได้กับไฟล์ทรัพยากรชุดข้อมูลที่เป็นไฟล์ขนิด CSV, XLS, XLSX และข้อมูลต้องอยู่ในรูปแบบตารางเท่านั้น ทั้งนี้ไฟล์ทรัพยากรที่สามารถเรียกใช้ CKAN Data API ได้ระบบจะแสดงตาราง preview ข้อมุลควบคู่กันด้วย หากไฟล์ทรัพยากรใดที่ระบบไม่สามารถแสดงตาราง preview ได้ จะไม่สามารถเรียกใช้ CKAN Data API ได้

          วิธีการเรียกใช้งาน CKAN Data API สำหรับชุดข้อมูลนั้น ทำได้โดยคลิกที่ปุ่ม “Data API” เหนือตาราง preview จากนั้นจะปรากฏหน้าต่างแสดงคำอธิบายการใช้งาน และตัวอย่างการเรียกใช้งาน เช่น

ค้นคืนข้อมูลทั้งหมดโดยจำกัดจำนวนผลลัพธ์ 5 รายการ:

https://data.go.th/api/3/action/datastore_search?resource_id=<resource_id>&limit=5

ค้นคืนข้อมูลเฉพาะแถวที่ปรากฏคำค้นที่ระบุเท่านั้น

https://data.go.th /api/3/action/datastore_search?q=<keyword>&resource_id=<resource_id>

CKAN Data API Button

How to call CKAN Data API

 

Open-D Data API

          Open-D Data API เป็นการค้นคืนข้อมูลที่อยู่ในไฟล์ชุดข้อมูล ด้วยเงื่อนไขการสืบค้นต่างๆ เช่นเดียวกับ CKAN Data API และจะสามารถใช้งานได้กับไฟล์ทรัพยากรชุดข้อมูลที่เป็นไฟล์ขนิด CSV, XLS, XLSX ที่ข้อมูลอยู่ในรูปแบบตารางเท่านั้นเช่นเดียวกัน ทั้งนี้ Open-D Data API มีข้อแตกต่างจาก CKAN Data API ดังนี้

  1. Open-D Data API มีส่วนของการทำ data cleansing แบบพื้นฐาน จึงรองรับการนำเข้าข้อมูลในแบบตารางได้มากกว่า CKAN ทำให้ไฟล์ทรัพยากรชุดข้อมูลบางไฟล์ที่ไม่สามารถ preview หรือใช้งาน CKAN Data API ได้ สามารถเรียกใช้งานผ่าน Open-D Data API ได้
  2. Open-D Data API รองรับการสร้าง API request โดยวิธี Query By Example (QBE) โดยผู้ใช้มิจำเป็นต้องรู้จัก syntax ของ API request แต่สามารถใส่เงื่อนไขการสืบค้นที่ต้องการ และคลิกที่ “Get API” ดังรูป จะปรากฏ API request ที่สามารถนำไปใช้งานได้ทันที

Open-D Data Explorer

Get API - generate API request URL

 

การสร้าง URL สำหรับเรียกใช้งาน API ผ่านระบบ Open-D

รายละเอียดวิธีการใช้งานหน้าสืบค้นข้อมูลและการสร้าง URL สำหรับเรียกใช้งาน API ผ่านระบบ Open-D  มีขั้นตอนดังนี้

ส่วนประกอบของหน้าจอสืบค้นข้อมูล ประกอบด้วย 2 ส่วน ได้แก่ ส่วนของการค้นหาข้อมูลและการสร้าง URL สำหรับเรียกใช้งาน API

1. ส่วนของการค้นหาข้อมูล : ผู้ใช้สามารถค้นหาข้อมูลที่ต้องการได้ด้วยตนเอง โดยมีฟังก์ชันการค้นหาข้อมูล 2 รูปแบบ ได้แก่ 1) แบบระบุเงื่อนไข (field search) และ 2) แบบสรุปรายงาน (aggregation)

1.1. การค้นหาข้อมูลแบบระบุเงื่อนไข (field search): ผู้ใช้งานสามารถกำหนดเงื่อนไขที่ต้องการสืบค้นได้ โดยเลือกคอลัมน์ที่ต้องการค้นหา (Properties), เครื่องหมาย (Operators) และข้อมูลที่ต้องการค้นหา (Values)

กรณีที่ข้อมูลที่ต้องการค้นหามีชนิดข้อมูลตัวอักษร (string) สามารถกำหนดเครื่องหมายได้ 2 รูปแบบ คือ Contains และ S_EQUALS

  • Contains – ใช้กรณีที่ต้องการเปรียบเทียบข้อความเพียงบางส่วน เช่น ค้นหาข้อมูลวัฒนธรรมของจังหวัดที่มีคำว่า "เชียง" ระบบจะแสดงข้อมูลของจังหวัด "เชียงใหม่” และ "เชียงราย” เป็นต้น
  • S_EQUALS - ใช้กรณีที่ต้องการเปรียบเทียบข้อความแบบตรงกันหมด เช่น ค้นหาข้อมูลรูปภาพที่มีรหัสวัฒนธรรม "MOC-136739"

กรณีที่ต้องการค้นหามีชนิดข้อมูลตัวเลข (number) สามารถกำหนดเครื่องหมายได้ 5 รูปแบบ คือ =, <, <=,>, >=

1.2. การค้นหาข้อมูลแบบสรุปรายงาน (aggregation): ผู้ใช้งานสามารถค้นหาข้อมูลแบบสรุปรายงานได้ โดยเลือกฟังก์ชันการคำนวณ (Aggregation Function), การแบ่งกลุ่ม (Group by) และการเรียงลำดับของข้อมูล (Order by) ฟังก์ชันการคำนวณ (Aggregation Function) มี 5 ฟังก์ชัน ได้แก่ จำนวน (count), จำนวนไม่ซ้ำ (distinct), ผลรวม (sum), ค่าเฉลี่ย (average), ค่าสูงสุด (max), ค่าต่ำสุด (min)

2. ส่วนของการสร้าง URL เพื่อเรียกใช้งาน API : เป็นส่วนที่ระบบจะสร้าง URL เพื่อเรียกใช้งาน API แบบอัตโนมัติจากฟอร์มที่ผู้ใช้กำหนดเงื่อนไขในการค้นหาข้อมูล

ข้อมูลการใช้งาน API

Service Type: REST/JSON

Method: GET

ตัวอย่างการเรียกใช้งาน

เงื่อนไขสำหรับ field search: ค้นหารายชื่อนิติบุคคลที่มีที่อยู่ในจังหวัดเชียงใหม่

https://api.data.go.th/search_virtuoso/api/dataset/query?dsname=vir_408_1572336758&path=vir_408_1572336758&property=col_8&operator=CONTAINS&valueLiteral=เชียงใหม่&loadAll=1&type=json&limit=100&offset=0

 

- เงื่อนไขสำหรับ aggregation : แสดงจำนวนนิติบุคคลที่มีทุนจดทะเบียนมากกว่า 10 ล้านบาท แบ่งกลุ่มตามวัตถุประสงค์การจัดตั้ง

https://api.data.go.th/search_virtuoso/api/dataset/agg?dsname=vir_408_1572336758&path=vir_408_1572336758&aggf=count&agg_prop=col_2&groupby=col_7&orderby=desc&property=col_5&operator=GT&valueLiteral=10000000&loadAll=1&type=json&limit=100&offset=0

 

Parameters ของ API

ชื่อ

ชื่อพารามิเตอร์

คำอธิบาย

1

dsname

รหัสชุดข้อมูล

2

path

ชื่อตารางของชุดข้อมูล

3

property

คอลัมน์ที่ต้องการค้นหา

4

operator

เครื่องหมาย ประกอบด้วย Contains, S_EQUALS, EQUALS, LT, LE, GT, GE

5

valueLiteral

ค่าที่ต้องการค้นหา

6

aggf

ฟังก์ชันการคำนวณ ประกอบด้วย count, distinct, sum, average, min, max

7

agg_prop

คอลัมน์ที่ต้องการคำนวณ

8

groupby

คอลัมน์ที่ใช้ในการแบ่งกลุ่มข้อมูล

9

orderby

รูปแบบการเรียงลำดับ มี 2แบบ คือ มากไปน้อย (desc) และ น้อยไปมาก (asc)

10

limit

จำกัดจำนวนแถวผลลัพธ์

11

offset

แถวที่เริ่มต้น

 

รูปแบบของผลลัพธ์ (Output)

ผลลัพธ์ที่ได้จากระบบ G2P จะอยู่ในรูปแบบของ JSON ดังแสดงในรูป มีองค์ประกอบดังนี้

  • numData: จำนวนผลลัพธ์
  • data: ข้อมูลผลลัพธ์ที่ตรงกับเงื่อนไขการค้นคืน
  • message:
    • Success,
  • status:
    • 200

Open-D API Results