API หรือ Application Programming Interface เป็นบริการช่องทางการเชื่อมต่อเพื่อแลกเปลี่ยนข้อมูลจากระบบหนึ่งไปสู่ระบบอื่นๆ ที่ สะดวก รวดเร็ว ปลอดภัย หน้าที่หลักของ API คือคอยรับคำสั่งจากฝั่ง Client ซึ่งก็คือ Application ต่างๆ เช่น Web App., Mobile App., Desktop App. เป็นต้น เมื่อฝั่ง Client ส่งคำสั่ง จะเรียกว่าการ Request จากนั้น ตัว API จะรับคำสั่งดังกล่าว นำไปประมวลผล และสรุปเป็นข้อมูลที่ตรงกับ Request และส่งข้อมูลเหล่านั้นกลับไปที่ฝั่ง Client หรือ Application เพื่อนำไปใช้งานต่อไป (อันนี้ก็อปมาจากเว็บ ของ
ธนาคารแห่งประเทศไทยนะครับ)
โอเครเมื่อรู้แล้วว่า API คืออะไรมาเริ่มวิธีการดึงข้อมูล API มาจากเว็บ
https://apiportal.bot.or.th เลยนะครับ
1. ให้เราไปสมัครสมาชิกที่เว็บ
https://apiportal.bot.or.th/bot/public/ ก่อนนะครับ อันนี้ผมจะไม่ลงรายละเอียดมาก
คลิกที่นี่เพื่อสมัคร
2. เมื่อเรามี Account เรียบร้อยแล้ว ให้เราเข้าระบบ แล้วไปที่เมนู Apps >> Create new App
3. กรอกข้อมูลเข้าไปในแต่ล่ะช่อง แล้วกด submit
4. เมื่อเรากด submit แล้วจะเด้งมาหน้านี้ ให้กด Show Client Secret แล้วจดรหัส client secret และ และ Client ID ไว้นะครับ เดี๋ยวเราจะได้ใช้นะครับ
5. ต่อไปกดไปที่ API Products >> Exchange Rates (2.0.1) (ในตัวอย่างนี้คือ Exchange Rate 2.0.1 ภายในมี API ให้ใช้งานสองตัว) คลิกที่ปุ่ม Subscribe แล้วเลือกแอพพลิเคชั่นที่เราเพิ่งลงทะเบียนไป
6. ที่แถบข้างซ้ายคลิกที่ API ที่จะใช้งาน เพื่อเข้าไปศึกษารายละเอียดต่างๆ ของ API เช่นความถี่และเวลาอัพเดตข้อมูล, รูปแบบ parameter ที่ API รับ, ตัวอย่างการเรียก request ในภาษาต่างๆ และตัวอย่าง response ในรูปแบบ JSON (ในตัวอย่างนี้คือ Average Exchange Rate รายวัน)
ในหน้าต่างนี้ ฝั่งขวาจะมีตัวอย่าง Code อยู่นะครับที่ใช้สำหรับ Python (อันนี้ผมแนะนำให้ใช้เป็น Python 3 นะครับ)
ข้อมูลที่เราต้องใช้คือ
1. x-ibm-client-id ต้องกรอก Client ID ที่เราได้มาจาก ขั้นตอนที่ 4 นะครับ
2. start_period และ end_period รูปแบบการใส่จะเป็นแบบนี้นะครับ ตัวอย่าง
โค้ด: เลือกทั้งหมด
conn.request("GET", "/bot/public/Stat-ReferenceRate/v2/DAILY_REF_RATE/?start_period=2019-03-24&end_period=2019-03-25", headers=headersssss)
โค้ด: เลือกทั้งหมด
import http.client
conn = http.client.HTTPSConnection("apigw1.bot.or.th")
headers = {
'x-ibm-client-id': "คีย์ Client ID",
'accept': "application/json"
}
conn.request("GET", "/bot/public/Stat-ReferenceRate/v2/DAILY_REF_RATE/?start_period=ระยะเวลาเริ่มต้น&end_period=ระยะเวลาสิ้นสุด", headers=headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
ข้อมูลที่ได้จะเป็นข้อมูลในรูปแบบ
json นะครับ ถ้าต้องการ ใช้ python ถอดรหัส หรือเข้ารหัส JSON ให้ดูที่กระทู้นี้นะครับ
viewtopic.php?p=138579#p138579
เพิ่มเติ่ม
ถ้าหากเราต้องการทดสอบ API ก่อนเริ่มลงมือเขียนโปรแกรมก็สามารถทำได้ที่ แถบตัวอย่างโค้ดทางด้านขวา เลื่อนหน้าจอลงมานิดนึงจะมีช่อง Try this operation ให้ได้ทดลองกรอก parameter และกด Call operation เพื่อดูผลลัพธ์
ผลลัพท์ก็จะออกมาประมาณนี้นะครับ
- Selection_025.png (51.97 KiB) Viewed 9262 times
สามารถใช้งานได้ที่นี่
https://www.mindphp.com/tools/tools_exc ... /index.php
[b]API หรือ Application Programming Interface[/b] เป็นบริการช่องทางการเชื่อมต่อเพื่อแลกเปลี่ยนข้อมูลจากระบบหนึ่งไปสู่ระบบอื่นๆ ที่ สะดวก รวดเร็ว ปลอดภัย หน้าที่หลักของ API คือคอยรับคำสั่งจากฝั่ง Client ซึ่งก็คือ Application ต่างๆ เช่น Web App., Mobile App., Desktop App. เป็นต้น เมื่อฝั่ง Client ส่งคำสั่ง จะเรียกว่าการ Request จากนั้น ตัว API จะรับคำสั่งดังกล่าว นำไปประมวลผล และสรุปเป็นข้อมูลที่ตรงกับ Request และส่งข้อมูลเหล่านั้นกลับไปที่ฝั่ง Client หรือ Application เพื่อนำไปใช้งานต่อไป (อันนี้ก็อปมาจากเว็บ ของ[url=https://www.bot.or.th/Thai/Statistics/EconomicAndFinancial/Pages/API.aspx]ธนาคารแห่งประเทศไทย[/url]นะครับ)
โอเครเมื่อรู้แล้วว่า API คืออะไรมาเริ่มวิธีการดึงข้อมูล API มาจากเว็บ https://apiportal.bot.or.th เลยนะครับ
1. ให้เราไปสมัครสมาชิกที่เว็บ https://apiportal.bot.or.th/bot/public/ ก่อนนะครับ อันนี้ผมจะไม่ลงรายละเอียดมาก [url=https://apiportal.bot.or.th/bot/public/user/register]คลิกที่นี่เพื่อสมัคร[/url]
2. เมื่อเรามี Account เรียบร้อยแล้ว ให้เราเข้าระบบ แล้วไปที่เมนู Apps >> Create new App
[attachment=6]Selection_018.png[/attachment]
3. กรอกข้อมูลเข้าไปในแต่ล่ะช่อง แล้วกด submit
[attachment=6]Selection_019.png[/attachment]
4. เมื่อเรากด submit แล้วจะเด้งมาหน้านี้ ให้กด Show Client Secret แล้วจดรหัส client secret และ และ Client ID ไว้นะครับ เดี๋ยวเราจะได้ใช้นะครับ
[attachment=5]Selection_020.png[/attachment]
5. ต่อไปกดไปที่ API Products >> Exchange Rates (2.0.1) (ในตัวอย่างนี้คือ Exchange Rate 2.0.1 ภายในมี API ให้ใช้งานสองตัว) คลิกที่ปุ่ม Subscribe แล้วเลือกแอพพลิเคชั่นที่เราเพิ่งลงทะเบียนไป
[attachment=4]Selection_021.png[/attachment]
[attachment=3]Selection_022.png[/attachment]
6. ที่แถบข้างซ้ายคลิกที่ API ที่จะใช้งาน เพื่อเข้าไปศึกษารายละเอียดต่างๆ ของ API เช่นความถี่และเวลาอัพเดตข้อมูล, รูปแบบ parameter ที่ API รับ, ตัวอย่างการเรียก request ในภาษาต่างๆ และตัวอย่าง response ในรูปแบบ JSON (ในตัวอย่างนี้คือ Average Exchange Rate รายวัน)
ในหน้าต่างนี้ ฝั่งขวาจะมีตัวอย่าง Code อยู่นะครับที่ใช้สำหรับ Python (อันนี้ผมแนะนำให้ใช้เป็น Python 3 นะครับ)
[attachment=2]Selection_023.png[/attachment]
ข้อมูลที่เราต้องใช้คือ
1. x-ibm-client-id ต้องกรอก Client ID ที่เราได้มาจาก ขั้นตอนที่ 4 นะครับ
2. start_period และ end_period รูปแบบการใส่จะเป็นแบบนี้นะครับ ตัวอย่าง
[code]conn.request("GET", "/bot/public/Stat-ReferenceRate/v2/DAILY_REF_RATE/?start_period=2019-03-24&end_period=2019-03-25", headers=headersssss)[/code]
[code]
import http.client
conn = http.client.HTTPSConnection("apigw1.bot.or.th")
headers = {
'x-ibm-client-id': "คีย์ Client ID",
'accept': "application/json"
}
conn.request("GET", "/bot/public/Stat-ReferenceRate/v2/DAILY_REF_RATE/?start_period=ระยะเวลาเริ่มต้น&end_period=ระยะเวลาสิ้นสุด", headers=headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
[/code]
ข้อมูลที่ได้จะเป็นข้อมูลในรูปแบบ [url=https://www.mindphp.com/forums/viewtopic.php?f=77&t=22108]json[/url] นะครับ ถ้าต้องการ ใช้ python ถอดรหัส หรือเข้ารหัส JSON ให้ดูที่กระทู้นี้นะครับ
https://www.mindphp.com/forums/viewtopic.php?p=138579#p138579
[b]เพิ่มเติ่ม[/b]
ถ้าหากเราต้องการทดสอบ API ก่อนเริ่มลงมือเขียนโปรแกรมก็สามารถทำได้ที่ แถบตัวอย่างโค้ดทางด้านขวา เลื่อนหน้าจอลงมานิดนึงจะมีช่อง Try this operation ให้ได้ทดลองกรอก parameter และกด Call operation เพื่อดูผลลัพธ์
[attachment=1]Selection_024.png[/attachment]
ผลลัพท์ก็จะออกมาประมาณนี้นะครับ
[attachment=0]Selection_025.png[/attachment]
สามารถใช้งานได้ที่นี่
https://www.mindphp.com/tools/tools_exchange_rate/index.php