Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

มาทดสอบ RESTful API ด้วยการเขียนเอกสารในรูปแบบ Markdown กัน

$
0
0

จากการพูดคุยเรื่องการทดสอบ RESTful API ที่ Facebook มีการพูดถึง Silk ซึ่งเป็น framework สำหรับการทดสอบ RESTful API ด้วยการเขียนเอกสารในรูปแบบ Markdown ดังนั้นจึงลองนำมาใช้งานแบบขำ ๆ กันหน่อย

เริ่มต้นด้วยการติดตั้ง Silk

สิ่งที่ต้องติดตั้งก่อนคือภาษา Go จากนั้นทำการกำหนด $GOPATH ให้พร้อม ทำการติดตั้งด้วยคำสั่ง [code] $go get github.com/matryer/silk [/code] จากนั้นก็สามารถใช้งานคำสั่ง silk ได้ ซึ่งอยู่ที่ $GOPATH/bin

สร้าง RESTful API แบบง่าย ๆ เอาไว้ทดสอบนิดหน่อย

โดยเลือกใช้ stubby4j มาช่วยสร้าง เนื่องจากมันง่าย ๆ มาก สิ่งที่ต้องการคือ API เป็นดังนี้
  • Request ใช้งานผ่าน HTTP GET
  • Response ทำการส่งค่า id และ name ในรูปแบบ JSON
สามารถสร้าง APIs ง่าย ๆ ดังนี้ [gist id="2d6ad8c05079ad9e27a646a4f9f77494" file="test.yaml"] มี response เป็นดังนี้ [gist id="2d6ad8c05079ad9e27a646a4f9f77494" file="response.json"] ทำการ start API server ด้วยคำสั่ง [code] $java -jar stubby4j-version -d test.yaml [/code]

ได้เวลานำ Silk มาใช้ทดสอบ API ที่สร้างกันแล้ว

แนวคิดของ Silk นั้นดูเรียบง่ายมาก ๆ คือ ทำการเขียนเอกสารเพื่ออธิบาย API ในรูปแบบ Markdown ปกติ และได้ทำการกำหนดข้อตกลงการใช้งานสำหรับเรื่องต่าง ๆ ไว้ให้ เช่น
  • โครงสร้างของเอกสารเป็นอย่างไร
  • การกำหนด Request และรูปแบบข้อมูลต่าง ๆ ทั้ง parameter, header, cookie และ body
  • การตรวจสอบผลการทำงาน หรือ assert reponse ที่ API ส่งกลับมาเช่น Response code, content type และ data เป็นต้น
ตัวอย่างการทดสอบ API ข้างต้นสามารถเขียนง่าย ๆ ได้ดังนี้ [gist id="2d6ad8c05079ad9e27a646a4f9f77494" file="get_user_by_id.md"] จากนั้นสามารถทดสอบ API ที่เขียนอธิบายในไฟล์ markdown ดังนี้ [code] $silk -silk.url="http://localhost:8882/" get_user_by_id.md [/code] ผลการทำงานแสดงดังนี้ [code] silk: running 1 file(s)... PASS [/code] คำอธิบาย ทำการกำหนด url ของ API ทำการกำหนดไฟล์ markdown ที่เขียนอธิบาย API ไว้ ซึ่งสามารถระบุได้มากกว่า 1 file หรือสามารถใช้ wildcard ก็ได้นะ เช่น *.md
เพียงเท่านี้ก็สามารถเขียนเอกสารอธิบาย API ซึ่งทดสอบได้อีกด้วย แสดงว่าเราได้สร้างเอกสารที่มีชีวิตขึ้นมาแล้วนะครับ
Source code ตัวอย่างอยู่ที่ Github:Hello Silk ปล. ถ้าใครเขียน code ภาษา Go เป็น ก็สามารถเขียน code เพื่อทดสอบผ่าน silk runner ได้อีกด้วย ซึ่งแน่นอนว่าจะมีประโยชน์และยืดหยุ่นกว่าการใช้งาน commad line Reference Websites http://go-talks.appspot.com/github.com/matryer/silk/other/presentation/silk.slide#1

Viewing all articles
Browse latest Browse all 1997

Trending Articles