Please enable JavaScript.
Coggle requires JavaScript to display documents.
REST (Representational state transfer) - Coggle Diagram
REST (Representational state transfer)
REST ?
REST
เป็นรูปแบบของสถาปัตยกรรมซอฟแวร์ที่ใข้ประโยชน์จากเทคโนโลยี web protocol เพื่อใช้ในการสร้าง Web Service หรือเป็นกระบวนการ
Architectural Properties
Modifiability
ความสามารถในการปรีบเปลี่ยนส่วนประกอบเพื่อตอบสนองความต้องการที่เปลี่ยนแปลง (ในขณะที่แอปทำงานอยู่)
Visibility
การมองเห็นการสื่อสารระหว่าง Component ผ่าน Service agents
Simplicity
ความเรียบง่ายของ Interface ที่เหมือนกัน
Portability
ง่ายต่อการโยกย้ายในส่วนของ Program และ Data
Scalability
มีความสามารถในการปรับขยายได้ทำให้สามารถรองรับส่วนประกอบจำนวนมาก
Reliability
ความน่าเชื่อถือในการต้านทานความล้มเหลวในระบบ
Performance
ประสิทธิภาพในการตอบโต้
Restful Web Service
?
Web Service
ที่ใช้
REST achitectural style
เป็นที่รู้จักกันในชื่อ RESTful web service (RWS) RESTful Web Service อนุญาตให้ระบบ Request และเข้าถึง Resource บนเว็บโดยใช้ชุดคำสั่งที่กำหนดเอาไว้ล่วงหน้าโดยที่การตอบโต้ของระบบที่ใช้ REST จะอยู่บนพื้นฐานของ HTTP (Hypertext Tranfer Protocol) Request จะส่งคำขอไปยัง URL ที่กำหนดและล้วงเอา response กลับมาเป็น Payload ในแบบ HTML, XML, JSON หรือ format อื่นๆ
หรือก็คือขั้นตอนในกาารสร้าง
Web Service
ขึ้นมาเพื่ออนุญาตให้ระบบ Request และเข้าถึง Resource โดยใช้
REST
RESTful
ประกอบไปด้วย
Client
ผู้ที่จะเข้ามา
Request resources
Service
เป็นผู้ให้บริการ
Resources
Resource
เป็น Object หรือตัวแทนในการเชื่อมโยงข้อมูล image, video, web page วัตถุประสงค์เพื่อให้ผู้ใช้สามารถเข้าถึงปรับแต่งขยาย Resource ได้
ตัวอย่าง
URL
เป็นเส้นทางในการเข้าถึง
Resource
Client => Server => Resource
HTTP
Http (Hypertext Transfer Ptotocol) ใช้สื่อสารผ่าน internet ใช้ในการับและส่งข้อมูลระหว่างClient และ Server โดยการส่งจาก Client ไป Server จะเรียกว่า http request
Request Method
http request การกำหนด action ที่จะกระทำต่อข้อมูล method จะมีลักษณะเป็นตัวพิมพ์ใหญ่ทั้งหมดเสมอ
GET
เป็นการเรียกรับข้อมูลจาก URI ที่กำหนด method GET ควรใช้ในการดึงข้อมูลเท่านั้นและต้องไม่มีผลกระทบใดๆ กับข้อมูล
POST
ใช้สำหรับการสร้างข้อมูลใหม่โดยส่งข้อมูลผ่าน body
PUT
ใช้สำหรับแทนที่ข้อมูลที่มีทั้งหมดด้วยข้อมูลใหม่ที่ส่งขึ่้นไป
DELETE
ใช้สำหรับลบข้อมูลที่มีอยู่ ของเป้าหมายที่กำหนดโดย URI (Uiform Resource Identifier)
Patch
Request Header Fields
header จะให้ผู้ใช้ สามารถผ่านข้อมูลเพิ่มเติมเกี่ยวกับ Request ของผู้ใช้เช่น ภาษาอะไร, ชนิดข้อมูลแบบไหน
Accept-Charset, Accept-Encoding, Accept-Language, Connection, Content-Length, Content-Type, Cookie, Host, User-Agent
Message-body
เป็นส่วนสุดท้ายของ Request message เป็นส่วนที่ใช้สำหรับส่งข้อมูล
HTTP Body
ส่วนของเนื้อหา
HTTP Header
การหนดการร้องขอ
Status-Code
3xx (Redirection)
304 Not Modified เป็น status code ที่บอกว่า client ได้รับการ Response แล้วอยู่ใน cache และไม่จำเป็นจะต้องส่งผ่านข้อมูลเดิมอีกครั้ง
4xx (Client error) โดย status ในกลุ่มนี้จะบอก client ว่า request ที่เข้ามา error
401 Unauthorized บอกว่า client ไม่ได้รับอนุญาตในการเข้าถึงข้อมูลและควรจะส่ง credential มาพร้อม request
403 Forbidden บ่งบอกว่า request นั้นถูกต้องและ client ได้รับการอนุญาต แต่ Client ไม่ได้รับการอนุญาตให้เข้าถึงข้อมูลด้วยเหตุผลบางประการ
400 Bad Request บอกว่า request ที่ส่งมาโดย client นั้นไม่ถูกดำเนินการ และ Server ไม่เข้าใจว่า request เกี่ยวกับอะไร
404 Not Found บ่งบอกว่า resource ที่ request มานั้น ไม่ว่างใช้งานตอนนี้
405 Gone บ่งบอกว่าข้อมูลที่ต้องการนั้นไม่มีอยู่แล้ว หรืออาจจะย้ายไปที่อื่น
2xx (สำเร็จ) หมายความว่าการ request นั้นได้รับแล้วและกระทำตาม method สำเร็จโดย Server
201 Create เป็น Response สำหรับข้อมูลใหม่ได้ถูกสร้างขึ้น ใช้สำหรับ POST
204 No Content เป็น Response สำหรับ request ที่ดำเนินการ Success แต่ไม่ได้ return ข้อมูลกลับ
200 Ok เป็นมาตรฐานของ HTTP Response นั้น Success สำหรับ GET, PUT หรือ POST
5xx (Server error)
500 Internal Server Error บอกว่าการ request นั้นถูกต้อง แต่ server มีความสับสนและจะบริการด้วยเงื่อนไขที่คาดการไม่ได้
503 Service Unavailable บอกว่า server ใช้การไม่ได้ หรือไม่ว่างที่จะรับและดำเนินการ request โดยส่วนใหญ่แล้ว server อยู่ในช่วงบำรุงรักษา