Please enable JavaScript.
Coggle requires JavaScript to display documents.
Assignment 2 REST http status/method (http method (Method POST (HTTP.POST…
Assignment 2 REST http status/method
RESTful Web Service
Representational state transfer หรือ REST
การสร้าง Webservice ชนิดหนึ่งที่ใช้สื่อสารกันบน Internet ใช้หลักการแบบ stateless คือไม่มี session ซึ่งต่างจาก webservice แบบอื่นเช่น WSDL และ SOAP การทำงานของ RESTful Webservice จะอาศัย URI/URL ของ request เพื่อค้นหาและประมวลผลแล้วตอบกลับไปในรูป XML, HTML, JSON โดย response ที่ตอบกลับจะเป็นการยืนยันผลของคำสั่งที่ส่งมา และสามารถพัฒนาด้วยภาษา programming ได้หลากหลาย คำสั่งก็จะมีตาม HTTP verbs ซึ่งก็คือ
GET ทำกการดึงข้อมูลภายใน URI ที่กำหนด
POST สำหรับสร้างข้อมูล
PUT ใช้แก้ไขข้อมูล
DELETE สำหรับลบข้อมูล
คุณสมบัติของ REST
เป็น API อย่างหนึ่ง ซึ่งทุกๆ system ต่างใช้ resource ซึ่งเป็นได้ทั้ง image, video, web page หรือข้อมูลทางธรุกิจ ก็ได้ที่สามารถแสดงบนระบบ computer วัตถุประสงค์เพื่อให้ user สามารถเข้าถึง, ติดตั้ง, ปรับแต่ง, ขยาย resource เหล่านี้ได้ง่าย
ข้อดีและข้อเสียของ REST
ข้อดี
ทำการอยู่บน HTTP และทำตามมาตรฐานของ HTTP จึงทำให้พัฒนาได้ง่าย
มีประสิทธิภาพการทำงานที่ดี
รองรับการขยายระบบได้ง่าย
รองรับเรื่อง caching ข้อมูล
สนับสนุนรูปแบบข้อมูลมากมาย เช่น XML, JSON, Plain Text และอื่น ๆ อีกมากมาย
ข้อเสีย
ทำงานได้เฉพาะ HTTP protocol เท่านั้น
ไม่มีเรื่องของ security และ reliability มาให้ในตัว ดังนั้นต้องทำเอง
รูปแบบข้อมูลที่ส่งไปมาระหว่าง client-server ไม่มีข้อจำกัดอะไรเลย
Http Status
HTTP Response Code คือตัวเลขชุดหนึ่ง ประกอบด้วยตัวเลข 3 ตัว ซึ่งเป็นมาตรฐานที่มีไว้เพื่อใช้ตอบกลับจากเซิฟเวอร์บนเว็บไซต์ต่าง ๆ โดยตัวเลขแต่ละชุดก็จะมีความหมายที่แตกต่างกันไป
1xx: Information
100: Continue เซิร์ฟเวอร์ได้รับ request header แล้ว, และ client จะส่ง request body ต่อ
101: Switching Protocols ผู้ร้องขอต้องการเปลี่ยน protocol
102: Checkpoint เซิร์ฟเวอร์กำลังประมวลผล
2xx: Successful
200: OK การส่งคำขอสำเร็จแล้ว
201: Created สร้างทรัพยากรใหม่แล้ว
202: Accepted คำขอได้รับการยอมรับสำหรับแล้ว แต่ยังประมวลผลยังไม่เสร็จ
203: Non-Authoritative Information คำขอได้รับการประมวลผลเรียบร้อยแล้ว แต่กำลังส่งคืนข้อมูลที่อาจมาจากแหล่งอื่น
204: No Content คำขอได้รับการประมวลผลเรียบร้อยแล้ว แต่ไม่ได้ส่งคืนเนื้อหาใด ๆ
205: Reset Content การร้องขอได้ดำเนินการสำเร็จแล้ว แต่ไม่มีเนื้อหาใด ๆ คืนกลับมา ต่างจากรหัส 204 ตรงที่การตอบรับนี้ ผู้ร้องขอจำเป็นต้องล้างมุมมองของเอกสาร
206: Partial Content เซิร์ฟเวอร์ส่งข้อมูลมาให้บางส่วน ตามที่ผู้ร้องขอกำหนดไว้ใน header
3xx: Redirection
300: Multiple Choices ผู้ใช้สามารถเลือกลิงค์ที่จะ redirect ไป (ไม่เกิน 5 ลิงค์)
301: Moved Parmanently หน้าที่เรียกนี้ย้ายไป URL อื่นถาวร
302: Found หน้าที่เรียกนี้ย้ายไป URL อื่นชั่วคราว
303: See Other หน้าที่เรียกนี้อยู่ภายใต้ URL อื่น
304: Not Modified หน้าที่เรียกนี้ยังมีเนื้อหายังไม่ได้แก้ไขตั้งแต่การเรียกครั้งล่าสุด
4xx: Client Error
400: Bad Request ไม่ตอบสนองเพราะมี syntax ไม่ถูกต้อง
401: Unauthorizedยัง ไม่ได้ระบุตัวตน
402: Payment Required มีการเรียกชำระเงิน (ใช้ในอนาคต)
403: Forbidden ระบุตัวตนแล้วแต่ไม่มีสิทธิ์เข้าถึงส่วนนี้
404: Not Found ไม่พบหน้าที่ร้องขอ
405: Method Not Allowed method ไม่ถูกต้อง ดูให้ดีว่าใช้ get, post, put หรือ delete
406: Not Acceptable header ของ request ไม่สัมพันธ์กัน
413: Request Entity Too Large ทรัพยากรที่ร้องขอใหญ่เกินกว่าที่จะส่งได้
414: Request-URI Too Long URL ยาวเกินไป
415: Unsupported Media Type เซิร์ฟเวอร์ไม่รู้จักชนิดของรูปหรือสื่อที่เรียก
5xx: Server Error
500: Internal Server Error มีข้อผิดพลาดบางอย่างภายใน ไม่ทราบสาเหตุ
501: Not Implemented เซิร์ฟเวอร์ไม่เข้าใจ request หรือไม่สามารถทำงานตามคำสั่งได้
502: Bad Gateway เซิร์ฟเวอร์เป็น Gateway หรือ Proxy ได้รับ response ผิดพลาดจากเซิร์ฟเวอร์อื่น
503: Service Unavailable ใช้งานเกินพิกัด(ล่ม) หรือกำลังปรับปรุงเซิร์ฟเวอร์
504: Gateway Timeout เซิร์ฟเวอร์ไม่ได้รับตอบสนองจากเซิร์ฟเวอร์อื่น จนหมดเวลากันก่อน
https://www.ideagital.com/savepong/http-status-code
http method
Method POST
HTTP.POST ใช้เมื่อ Client ส่งข้อมูลมาสู่ Server เพื่อมา Create new resource
Method PUT
HTTP.PUT ใช้เมื่อ Client ส่งข้อมูลมาสู่ Server โดยมากจะใช้เพื่อทำการ Update ข้อมูลที่มีอยู่แล้วในระบบ จะใช้ Path เดียวกันกับ Method POST ก็ได้ เพียงแค่เพิ่ม Context path เข้าไปแล้วเปลี่ยน Method ที่รับ
Method PATCH
HTTP.PATCH ใช้เมื่อ Client ส่งข้อมูลมาสู่ Server โดยมากจะใช้เพื่อทำการ Update ข้อมูลที่มีอยู่แล้วในระบบ แต่จะแตกต่างกัน ที่เห็นได้ชัดก็คือ ข้อมูลที่จะถูกส่งเข้ามา ไม่จำเป็นต้องส่งเข้ามาทั้งหมด ส่งมาแค่ฟิลด์ที่ต้องการจะแก้ไขเท่านั้น ฟิลด์ไหนที่ไม่ถูกส่งมาจะไม่ถูก Update
GET
GET จะเป็นการส่ง URL ร้องขอข้อมูลไปตรงๆ หรือการส่งไปพร้อมกับคิวรี่สตริงใน URL
DELETE
ส่วนการ DELETE นั้น จะเป็นการสั่งลบข้อมูลที่มีอยู่แล้ว