ตัวอย่างการใช้ API ด้วย Postman

เก็บข้อมูลที่ Sensitive อย่าง "Password" และ "Token" ไว้ในตัวแปร Environment เพื่อความปลอดภัย และสามารถใช้ตัวแปรนี้ในหน้าต่างอื่นได้ โดยไม่ต้อง copy & paste ซ้ำ
ตัวแปรที่เก็บไว้เรียกใช้ในเครื่องหมาย {{ }}
จากนั้นใช้ POST ส่ง JSON ใน Body (Body tab -> raw) โดยมี Key เป็น "username" และ "password"
ส่งไปที่ endpoint https://hcode.moph.go.th/api/token/

envVar.png

จะได้ Token 2 ตัว คือ
1. "access" เป็น Short Life Token ที่ใช้เข้าถึงข้อมูล มีอายุ 240 นาที
2. "refresh" เป็น Long Life Token มีอายุ 7 วัน ใช้ขอ access-token ใหม่เมื่อ access-token เดิมหมดอายุ
หมายเหตุ อย่าลืมบันทึก refresh-token และ access-token ไว้ใน Environment Variable ตามขั้นตอนข้างต้น

tokens.png

เมื่อ access-token เดิมหมดอายุ สามารถขอใหม่โดยใช้ POST ส่ง JSON ที่มี Key เป็น "refresh" และ Value เป็น refresh-token จากข้างต้น
ส่งไปที่ endpoint https://hcode.moph.go.th/api/token/refresh/

refresh.png

 ท่านสามารถ Authorization ได้ 2 วิธี
1. ไปที่ Authorization tab ตั้งค่า Type เป็น Bearer Token แล้วใส่ Value ด้วย access-token ที่เก็บไว้ใน Environment Variable
2. วิธีนี้เป็นวิธีทั่วไปเมื่อท่านเขียนโปรแกรมเพื่อส่ง Token ในการ Authorization ด้วย HTTP Protocol ให้ส่ง access-token ไปกับ headers
โดยตั้งค่า "Authorization": "Bearer access-token"
ให้แทนค่า access-token ในตัวอย่างนี้ด้วย access-token ที่เก็บไว้ใน Environment Variable

ภาพต่อไปนี้เป็น Response จาก endpoint https://hcode.moph.go.th/api/health_office/

healthoffice.png

ข้อดีของ Postman ท่านสามารถเลือกตัวอย่าง Code ภาษาโปรแกรมที่ใช้ Request ข้อมูลหน้าปัจุบันโดยคลิกที่ Bracket icon ตามภาพต่อไปนี้

showlanguage.png

คลิกที่ Dropdown เพื่อเลือกภาษาโปรแกรม หรือเทคโนโลยีที่เราใช้งาน

chooselanguage.png

Postman จะ Generate Code ใหม่ให้อัตโนมัติ ตัวอย่างรูปด้านล่างคือโค้ดของ NodeJS (Javascript Runtime Environment) และ Axios (HTTP Request library)

newlanguage.png

การใช้ Query Parameter เพื่อกรองข้อมูลได้ 2 วิธี

  1. ไปที่ Param tab ใส่ Key และ Value
  2. เพิ่ม Key และ Value เองโดยตรงที่แถบ URL เริ่มด้วยเครื่องหมาย "?" assign value ด้วย "=" แล้วเชื่อมพารามิเตอร์หลายตัวด้วย "&"
ตัวอย่างต่อไปนี้จะกรองข้อมูลหน่วยงานบริการสุขภาพที่ https://hcode.moph.go.th/api/health_office/
ใช้พารามิเตอร์ "page" กรองเลขหน้าข้อมูลที่ตอบสนอง หรือตามลิงค์ "next" ใน Response หากไม่กรองหน้าจะอยู่ที่หน้า 1 เสมอ

page.png

พารามิเตอร์ "page_size" เพิ่มจำนวนข้อมูลที่ตอบสนอง โดยปกติจะเป็น 100 รายการ ต่อหน้า
1. บัญชีทั่วไป สามารถเพิ่มได้สูงสุด 1,000 รายการ
2. บัญชีหน่วยงานรัฐบาล สามารถกรองได้สูงสุด 10,000 รายการ

pagesize.png

พารามิเตอร์ "name" ใช้กรองชื่อหน่วยงานบริการสุขภาพ จะสังเกตว่าชื่อมีโอกาสซ้ำกันได้

qname.png

พารามิเตอร์ "code5" กรองรหัส 5 หลัก ไปพร้อมกับ "name" ช่วยให้กรองข้อมูลที่ต้องการได้ 1 รายการ

qcode.png

สามารถกรองเลขไอดีได้โดยไม่ใช้ query parameter ให้ใช้ "/id/" ต่อท้าย endpoint และแทน id ในี่นี้ด้วยเลขไอดีจริง

qid.png

พารามิเตอร์ "health_zone" ใช้กรองหน่วยงานตามเลขเขตบริการสุขภาพ

qhealthzone.png

เพิ่มพารามิเตอร์ "health_office_type" เพื่อกรองประเภทหน่วยงานบริการสุขภาพ ในที่นี้จะเป็นหน่วยงาน โรงพยาบาลชุมชนในเขตบริการสุขภาพที่ 8

qhealthofficetype.png

กรณีที่ไม่ทราบชื่อหรือรหัสของ ประเภทหน่วยงานบริการสุขภาพ สามารถตรวจสอบได้ที่ endpoint
https://hcode.moph.go.th/api/health_office_type/
แนะนำใช้ "page_size" เพิ่มจำนวนข้อมูลควบคู่ไปด้วย

healthofficetype.png

ตัวอย่างนี้กรอง หน่วยงานบริการสุขภาพ ที่เป็น สำนักงานสาธารณสุขจังหวัด โดยใส่รหัส หรือฟิลด์ "code" ในภาพก่อนหน้าแทนการกรองด้วยชื่อ

qhealthofficetype2.png

 ข้อมูลสำคัญเพิ่มเติม

  1. รายการ Endpoints และสิทธิ์การเข้าถึง
  2. รายการ Query Parameters