API สำหรับอ่านข้อมูลน้ำฝน
การกำหนดรายละเอียดของ API สำหรับอ่านข้อมูลน้ำฝน
| API ID | URL | รายละเอียด |
|---|---|---|
| A001.1 | /Rainfall | อ่านข้อมูลน้ำฝนตามเงื่อนไขที่ระบุ |
คุณลักษณะ API สำหรับอ่านข้อมูลน้ำฝน
API ID: A001.1
วัตถุประสงค์: อ่านข้อมูลน้ำฝน
Status: Required (ตั้งแต่ API version 1.0 Draft 1)
Since: 1.0 Draft 1
Revision: 1.0 Draft 1
ข้อมูลทั่วไป ในการติดต่อ API สำหรับอ่านข้อมูลน้ำฝน
| ข้อมูล | รายละเอียด |
|---|---|
| URL | /Rainfall |
| HTTP Method | GET |
Query parameter ของ API สำหรับอ่านข้อมูลน้ำฝน
| ลำดับ | Parameter | Type | ความหมาย | หมายเหตุ |
|---|---|---|---|---|
| 1 | interval | string | ประเภทความถี่ของการตรวจวัด (อ้างอิงค่าตามหัวข้อ การใช้ค่า interval ในการระบุความถี่ของข้อมูลด้านน้ำจากการตรวจวัด) | required |
| 2 | latest | boolean | true – ดึงข้อมูลเฉพาะค่าของการตรวจวัดล่าสุด false – ดึงข้อมูลตาม startDateTime และ endDateTime |
required |
| 3 | startDatetime | datetime | วัน-เวลาที่ตรวจวัด (เริ่มต้น) – Inclusive | required เมื่อค่าพารามิเตอร์ latest = false |
| 4 | endDatetime | datetime | วัน-เวลาที่ตรวจวัด (สิ้นสุด) – Inclusive | required เมื่อค่าพารามิเตอร์ latest = false |
| 5 | provinceCode | string | รหัสจังหวัด (2 หลัก) ดูหัวข้อการอ้างอิงจังหวัด | optional |
| 6 | amphoeCode | string | รหัสอำเภอ (4 หลัก) ดูหัวข้อการอ้างอิงอำเภอ | optional |
| 7 | tambonCode | string | รหัสตำบล (6 หลัก) ดูหัวข้อการอ้างอิงตำบล | optional |
| 8 | basinCode | string | รหัสลุ่มน้ำหลัก (2 หลัก) ดูหัวข้อการอ้างอิงลุ่มน้ำหลัก/ลุ่มน้ำสาขา | optional |
| 9 | subBasinCode | string | รหัสลุ่มน้ำสาขา (4 หลัก) ดูหัวข้อการอ้างอิงลุ่มน้ำหลัก/ลุ่มน้ำสาขา | optional |
| 10 | agencyCode | string | รหัสหน่วยงาน ดูหัวข้อรหัสหน่วยงาน | optional |
| 11 | stationCode | string | รหัสสถานีตรวจวัดของหน่วยงาน ดูหัวข้อรหัสสถานีตรวจวัด | optional |
หมายเหตุ
1) การอ่านข้อมูลที่มีความถี่แตกต่างกัน ให้ทำการ call API แยกกัน
2) ข้อมูล parameter 5-11 ใช้ในการบ่งบอก filter ว่าต้องการดึงข้อมูลของสถานีตรวจวัดครอบคลุมพื้นที่ใดบ้าง
ตัวอย่าง HTTP Request Parameter ในการอ่านค่าแบบช่วงเวลา 15 นาที
latest=false
&startDatetime=2022-05-02T23:15:00
&endDatetime=2022-05-02T23:30:00
&interval=C-15
&provinceCode=10
ตัวอย่าง HTTP Request Parameter ในการอ่านค่าแบบช่วงเวลารายวัน
latest=false
&startDatetime=2022-05-02T07:00:00
&endDatetime=2022-05-02T06:59:59
&interval=P-Daily
&provinceCode=10
หมายเหตุ
มีการขึ้นบรรทัดใหม่สำหรับ Parameter และไม่ได้ทำ HTTP URL Encode เพื่อให้ง่ายต่อการอ่าน
โครงสร้างของ Response body ข้อมูลน้ำฝน
{
"metadata": {
"version": string,
"dataProviderCode": string,
"dataProviderName": string,
"documentGenerateTime": datetime,
"waterDatatype": string,
"interval": string
},
"timeSeriesObservation": [
{
"observationMetadata": {
"observeAgencyCode": string,
"observeAgencyName": string,
"originality": integer,
"editAgencyCode": string,
"editAgencyName": string
},
"resultTime": datetime,
"station": {
"stationCode": string,
"stationReference": url
},
"waterResources": {
"waterResourcesCode": string,
"waterResourcesReference": url
},
"measurementResults": [
{
"instrumentPosition": {
"position": string,
"number": integer
},
"measureTime": datetime,
"createTime": datetime,
"updateTime": datetime,
"variable": string,
"value": decimal,
"uom": string,
"qualityFlag": string,
"comment": string,
"qualityControlLevel": string
}
]
}
]
}
หมายเหตุ
ในกรณีที่ ข้อมูลตามโครงสร้างมาตรฐานไม่ได้กำหนดเป็น Mandatory (ดูหัวข้อโครงสร้างข้อมูลตามลำดับเวลา (Time Series)) ถ้ามีข้อมูลสามารถส่งข้อมูลนั้นๆได้ตามโครงสร้าง แต่ในกรณีที่ไม่มีข้อมูล API อาจจะไม่ส่งข้อมูลนั้นๆกลับออกมา
ตัวอย่าง HTTP Response Body ของข้อมูลน้ำฝน 15 นาที
{
"metadata": {
"version": "1.0",
"dataProviderCode": "G11004",
"dataProviderName": "Meteorological Department",
"documentGenerateTime": "2022-05-02T22:30:00",
"waterDatatype": "A001",
"interval": "C-15"
},
"timeSeriesObservation": [
{
"observationMetadata": {
"observeAgencyCode": "G11004",
"observeAgencyName": "Meteorological Department",
"originality": 1
},
"resultTime": "2022-05-02T22:15:00",
"station": {
"stationCode": "G11004-103662",
"stationReference": "https://api.my.org/twsapi/v1.0/StationInfo/G11004-103662"
},
"measurementResults": [
{
"measureTime": "2022-05-02T22:00:00",
"createTime": "2022-05-02T22:00:00",
"updateTime": "2022-05-02T22:00:00",
"variable": "Rainfall",
"value": 2.1,
"uom": "mm",
"qualityFlag": "U",
"comment": "No quality control",
"qualityControlLevel": "1"
},
{
"measureTime": "2022-05-02T22:15:00",
"createTime": "2022-05-02T22:15:00",
"updateTime": "2022-05-02T22:15:00",
"variable": "Rainfall",
"value": 1.0,
"uom": "mm",
"qualityFlag": "U",
"comment": "No quality control",
"qualityControlLevel": "1"
}
]
}
]
}
หมายเหตุ
ข้อมูลที่ใส่ในตัวอย่างเป็นข้อมูลจำลองเพื่อประกอบความเข้าใจในการทำงานของ API เท่านั้น อาจจะไม่ตรงกับการใช้งานจริง