ในบทความนี้จะกล่าวถึง
– REST API
– Goal API testing
– สิ่งที่ต้องรู้ก่อนทดสอบ API
REST API คืออะไร?
REST ย่อมาจาก Representational State Transfer เป็นรูปแบบการส่งข้อมูลระหว่าง Server-Client รูปแบบหนึ่ง ซึ่งอยู่บนพื้นฐานของ HTTP Protocol เป็นการสร้าง Web Service เพื่อแลกเปลี่ยนข้อมูลกันผ่าน Application ไม่ว่าจะเป็น PUT, GET, PATCH, และ DELETE

Goal API testing
จุดมุ่งหมายที่เราจะต้องทำการทดสอบ API กันนั้น เพราะจะเป็นการทดสอบ การทำงานของฟังก์ชัน(functionality), ความน่าเชื่อถือของระบบ(reliability), ประสิทธิภาพการทำงานของระบบ(performance), และความปลอดภัยของระบบ(security of the programming interfaces)
สิ่งที่ต้องรู้ก่อนทดสอบ API
หัวใจหลักสำคัญในการทดสอบระบบ API นั้นจำเป็นจะต้องมี Document the API Testing เสมอ เหมือนเป็นกฎและรายละเอียดในการอ้างอิงถึงการเรียกใช้งานต่างๆของ API ได้ถูกต้อง ต่อไปนี้จะขอเปรียบเทียบการขอ HTTP Request ให้เสมือนการเขียนจดหมาย โดยจะประกอบด้วย
Resource description
จะต้องมีคำอธิบายในแต่ละ API เพื่อที่จะให้ผู้ใช้งานสามารถเข้าใจได้ทันทีว่า Request นี้มีไว้สำหรับทำอะไร หากผู้ใช้งานไม่เข้าใจจุดประสงค์ของแต่ละ API การทดสอบนั้นก็จะไร้ประสิทธิภาพ

Endpoints and methods
Endpoints คือ เส้นทาง (path) หลายๆอันประกอบกันขึ้นมา สำหรับการเข้าถึงการใช้งานของแต่ละ API จึงเปรียบเสมือนการจ่าหน้าซองจดหมาย
Methods คือ จากข้างบนที่เรากล่าวว่า REST ทำงานอยู่บน HTTP Protocal ดังนั้นจึงทำให้เวลาเราใช้งานจะต้องอยู่บนพื้นฐาน HTTP Method ด้วยเช่นกัน เสมือนประเภทของจดหมายที่เราต้องการจะส่งไป เช่น
POST = การส่งจดหมายเพิ่มข้อมูล
GET = การส่งจดหมายขอข้อมูล
PUT = การส่งจดหมายเพื่ออัพเดทข้อมูล
DELETE = การส่งจดหมายเพื่อขอลบข้อมูล

Parameters
Parameter คือตัวเลือกข้อมูลที่เราสามารถส่งไปให้ระบบได้ โดยจะประกอบด้วย
- Header parameters
เปรียบเสมือน Barcode เพื่อระบุรายละเอียดของจดหมายได้อย่างรวดเร็ว ว่ามาจากใคร และเนื้อหาข้างในจดหมายเป็นอย่างไร และเป็นส่วนคำสัญที่สุดในการนำส่งข้อมูล โดยส่วนมากจะเป็นการนำส่งข้อมูลต่างๆ ดังนี้
1.1. Request and Response Body
1.2. Request Authorization
1.3. Response Caching
1.4. Response Cookies - Path parameters
เป็นส่วนหนึ่งของ endpoints เหมือนการระบุอาคารที่พักอาศัยบนซองจดหมาย ยกตัวอย่าง {user-id}
GET https://graph.instagram.com/{api-version}/{user-id}/?fields={fields}
- Query string parameters
เป็นการจำกัดการแสดงข้อมูลให้แคบลง หรือเรียกว่าการ Filter ข้อมูล วิธีการใช้ต้องมี?และตามด้วย key คู่กับ value โดยส่วนมากจะใช้กับ GET ยกตัวอย่าง ?fields={fields}
GET https://graph.instagram.com/{user-id}/?fields={fields}
- Request body parameters
เป็นเนื้อหาของจดหมาย ว่าต้องการส่งข้อมูลอะไรไปให้ระบบ โดยส่วนมากที่ใช้งานจะอยู่ในรูปแบบ JSON (key: value)
{
“id”: “17895695668004550”,
“username”: “jayposiris”
}
Response
จากที่ได้ส่งจดหมายไปแล้ว(client->server) หลังจากนั้นเราจะได้จดหมายตอบกลับมา(server-> client) โดยจะมีรายละเอียดการตอบกลับ
1. Response status code
บ่งบอกว่าจดหมายที่เราส่งไปนั้น มีการตอบกลับสำเร็จหรือไม่
- Response body
เป็นเนื้อหาของจดหมายที่ตอบกลับมา

เท่านี้เราก็ทราบรายละเอียดต่างๆของการเขียนจดหมายที่สมบูรณ์(HTTP Request) หวังว่าเพื่อนๆจะพอเข้าใจการเขียนมากขึ้น เพื่อให้เราทำตามจุดประสงค์หลักได้ต่อไป