สิ่งที่ต้องรู้ก่อนทดสอบ REST API

·

·

สวัสดีเพื่อนๆทุกท่าน วันนี้จะมาแนะนำให้ทุกคนรู้จักกับ REST API TESTING กัน ก่อนอื่นหากจะเริ่มทดสอบเราจำเป็นที่จะต้องรู้เกี่ยวกับ REST สักหน่อยนะ

ในบทความนี้จะกล่าวถึง
– REST API
– Goal API testing
– สิ่งที่ต้องรู้ก่อนทดสอบ REST 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)

สิ่งที่ต้องรู้ก่อนทดสอบ REST API

หัวใจหลักสำคัญในการทดสอบระบบ API นั้นจำเป็นจะต้องมี Document the API Testing เพื่อเป็นแกนหลักในการอ้างอิงถึงการเรียกใช้งานต่างๆของ API ได้ถูกต้อง ต่อไปนี้จะขอเปรียบเทียบการขอ HTTP Request ให้เสมือนการเขียนจดหมาย โดยจะประกอบด้วย

Resource description
จะต้องมีคำอธิบายในแต่ละ API เพื่อที่จะให้ผู้ใช้งานสามารถเข้าใจได้ทันทีว่า Request นี้มีไว้สำหรับทำอะไร

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

Post = การส่งจดหมายเพิ่มข้อมูล
Get = การส่งจดหมายขอข้อมูล
Put = การส่งจดหมายเพื่ออัพเดทข้อมูล
Delete = การส่งจดหมายเพื่อขอลบข้อมูล

Parameters
Parameter คือตัวเลือกข้อมูลที่เราสามารถส่งไปให้ระบบได้ โดยจะประกอบด้วย
1. Header parameters
เปรียบเสมือนการเขียนหัวข้อเรื่อง ว่ามาจากใคร และเนื้อหาข้างในจดหมายเป็นอย่างไร และเป็นส่วนคำสัญที่สุดในการนำส่งข้อมูล โดยส่วนมากจะเป็นการนำส่งข้อมูลต่างๆ ดังนี้

1.1. Request and Response Body
1.2. Request Authorization
1.3. Response Caching 
1.4. Response Cookies


2. Path parameters
เป็นส่วนหนึ่งของ endpoints เหมือนเป็นการค่อยๆอธิบายหน้าซองจดหมายว่าต้องการส่งไปที่ไหนถึงใคร ยกตัวอย่าง {api-version}, {user-id}

GET https://graph.instagram.com/{api-version}/{user-id}/?fields={fields}


3. Query string parameters
เป็นการจำกัดการแสดงข้อมูลให้แคบลง หรือเรียกว่าการ Filter ข้อมูล วิธีการใช้ต้องมี ? และตามด้วย parameter และ value โดยส่วนมากจะใช้กับ GET ยกตัวอย่าง ?fields={fields}

GET https://graph.instagram.com/{user-id}/?fields={fields}


4. Request body parameters
เป็นเนื้อหาของจดหมาย ว่าต้องการส่งข้อมูลอะไรไปให้ระบบ โดยส่วนมากที่ใช้งานจะอยู่ในรูปแบบ JSON (key: value)

{
  "id": "17895695668004550",
  "username": "jayposiris"
}

Response

จากที่ได้ส่งจดหมายไปแล้ว(client->server) หลังจากนั้นเราจะได้จดหมายตอบกลับมา(server-> client) โดยจะมีรายละเอียดการตอบกลับ
1. Response status code
บ่งบอกว่าจดหมายที่เราส่งไปนั้น มีการตอบกลับสำเร็จหรือไม่
2. Response body
เป็นเนื้อหาของจดหมายที่ตอบกลับมา

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

Back to top arrow