REST API เป็นแนวทางให้ระบบสื่อสารกันผ่าน HTTP โดยแยกบทบาท Client และ Server ชัดเจน Client ขอข้อมูลหรือส่งคำสั่ง ส่วน Server ประมวลผลและตอบกลับ
HTTP Method ที่ใช้บ่อย ได้แก่ GET สำหรับอ่านข้อมูล POST สำหรับสร้าง PUT/PATCH สำหรับแก้ไข และ DELETE สำหรับลบข้อมูล
JSON เป็นรูปแบบข้อมูลที่อ่านง่ายและใช้แพร่หลายใน API ผู้เรียนจะฝึกแปลงข้อมูล JSON เป็นโครงสร้างข้อมูลในโปรแกรมและตรวจสอบค่าที่ได้รับ
เชื่อมต่อ API ตัวอย่าง ดึงข้อมูล JSON มาประมวลผล แสดงผล และจัดการกรณี API ตอบกลับผิดพลาด
ผู้เรียนเข้าใจ API ในฐานะสัญญาระหว่างโปรแกรม โดยพิจารณา Endpoint, Method, Request, Response, Status Code และรูปแบบข้อมูล JSON การเขียนโปรแกรมเชื่อม API ต้องตรวจสอบทั้งกรณีสำเร็จและไม่สำเร็จ เช่น 400, 401, 404 และ 500
การออกแบบโปรแกรมที่ใช้ API ควรแยกส่วนเรียก API ออกจากส่วนประมวลผลและส่วนแสดงผล เพื่อให้ทดสอบง่ายและเปลี่ยนแหล่งข้อมูลได้ในอนาคต
เรียก API สาธารณะหรือ API จำลอง แปลง JSON เป็นข้อมูลในโปรแกรม และแสดงผลลัพธ์พร้อมจัดการ error อย่างน้อย 3 กรณี
API (Application Programming Interface) คือสัญญาการสื่อสารระหว่างโปรแกรม โดย REST API มักใช้ HTTP Method และ JSON ในการรับส่งข้อมูล
%%{init: {'theme': 'base', 'themeVariables': {'background': '#282828','primaryColor': '#3c3836','primaryTextColor': '#fbf1c7','primaryBorderColor': '#fabd2f','lineColor': '#8ec07c','secondaryColor': '#504945','tertiaryColor': '#665c54'}}}%%
sequenceDiagram
participant C as Client
ฝั่งเรียกใช้
participant A as API Server
ฝั่งบริการ
C->>A: GET /items
ขอข้อมูล
A-->>C: 200 OK + JSON
ตอบกลับข้อมูล
C->>C: Parse JSON
แปลงข้อมูล
#include <iostream>
#include <string>
using namespace std;
int main() {
// ตัวอย่าง JSON ที่ได้จาก API จำลอง
string json = "{\"id\":1,\"name\":\"Book\"}";
cout << "API Response: " << json << endl;
cout << "Parse field name manually for practice" << endl;
return 0;
}
| HTTP Method | จุดประสงค์ | ตัวอย่าง |
|---|---|---|
| GET | อ่านข้อมูล | GET /students |
| POST | สร้างข้อมูล | POST /students |
| PUT/PATCH | แก้ไขข้อมูล | PATCH /students/1 |
| DELETE | ลบข้อมูล | DELETE /students/1 |