World Data
World Data คือข้อมูลอ้างอิง — ข้อมูลที่เหมือนกันสำหรับทุกผู้เรียกใช้ และเปลี่ยนแปลง ปีละไม่กี่ครั้ง ปัจจุบันคือรายการรหัสโทรศัพท์ของแต่ละประเทศ
มีไว้เพื่อให้ช่องกรอกเบอร์โทรไม่ต้องเก็บรายการนี้เอง ตารางที่ hardcode ไว้จะเก่าโดยไม่มีใคร รู้ตัว และจะไม่มีใครสังเกตว่าประเทศไหนหายไปจนกว่าจะมีคนจากประเทศนั้นสมัครไม่ได้
| การกระทำ | Route |
|---|---|
| ดูรายการรหัสประเทศ | GET /worlddata/countries |
รับ publishable key ได้ด้วย
ข้อมูลรหัสโทรศัพท์เหมือนกันสำหรับทุกผู้เรียกและไม่ให้สิทธิ์ใด ๆ จึงเป็นพื้นผิวเดียวที่รับ publishable key (pk_…) จาก Origin ที่ผูกไว้ได้ด้วย โดยใช้ header API-Key แทน
ดูรายการรหัสโทรศัพท์ของประเทศ
GET /worlddata/countries?page=1&limit=100
API-Key: $ME_API_KEY{
"object": "list",
"data": [
{ "code": "TH", "dial_code": "+66", "name": "Thailand" },
{ "code": "SG", "dial_code": "+65", "name": "Singapore" }
],
"page": 1,
"limit": 100,
"total_items": 230,
"total_pages": 3
}| ฟิลด์ | ความหมาย |
|---|---|
code | ISO-3166 alpha-2 ตัวพิมพ์ใหญ่ |
dial_code | รหัสโทร E.164 รวมเครื่องหมาย + ด้านหน้า |
name | ชื่อประเทศภาษาอังกฤษ |
การแบ่งหน้า
page เริ่มที่ 1 และทั้งสองค่าจะถูกส่งกลับมาด้วย ผู้เรียกใช้จึงเดินตาม total_pages ได้โดยไม่ต้องเก็บ cursor เอง
| ค่าที่ส่งเข้ามา | ผลลัพธ์ |
|---|---|
limit มากกว่า 250 | ถูกจำกัดไว้ที่ 250 |
limit หรือ page ไม่ถูกต้อง | กลับไปใช้ค่าเริ่มต้น (page 1, limit 100) |
page เกินหน้าสุดท้าย | data ว่าง แต่ยังได้ 200 |
หน้าที่เกินรายการสุดท้ายจะคืน list ว่างแทนที่จะเป็น 404 เพื่อให้ผู้เรียกใช้ที่เดินจนสุด ไม่ต้องเขียนกรณีพิเศษสำหรับแถวถัดจากแถวสุดท้าย
ประเทศในกลุ่ม NANP ใช้ prefix เต็ม
ประเทศในกลุ่ม North American Numbering Plan ใช้รหัสประเทศ 1 ร่วมกัน แต่มี prefix ต่างกัน — American Samoa คือ +1684 และ Anguilla คือ +1264 อย่าตัดให้เหลือ +1 เพราะเบอร์ที่ได้จะโทรออกไม่ได้
การ Cache
ข้อมูลชุดนี้เปลี่ยนปีละไม่กี่ครั้ง จะ cache ไว้นานเท่าที่เหมาะสมแล้วรีเฟรชตอน deploy ก็ได้ ไม่จำเป็นต้องเรียกทุก request
