REST = การถ่ายโอนสถานะผู้แทน
RESTเป็นชุดของกฎที่เมื่อติดตามจะช่วยให้คุณสามารถสร้างแอปพลิเคชันแบบกระจายที่มีชุดข้อ จำกัด ที่ต้องการโดยเฉพาะ
RESTเป็นโปรโตคอลในการแลกเปลี่ยนข้อความใด ๆ (XML, JSON ฯลฯ ) ที่สามารถใช้ HTTP เพื่อส่งข้อความเหล่านั้น
คุณสมบัติ:
มันไร้สัญชาติซึ่งหมายความว่าไม่มีการเชื่อมต่อระหว่างไคลเอนต์กับเซิร์ฟเวอร์ มันเป็นความรับผิดชอบของลูกค้าที่จะส่งบริบทไปยังเซิร์ฟเวอร์แล้วเซิร์ฟเวอร์สามารถจัดเก็บบริบทนี้เพื่อประมวลผลคำขอเพิ่มเติมของลูกค้า ตัวอย่างเช่นเซสชันที่ดูแลโดยเซิร์ฟเวอร์ถูกระบุโดยตัวระบุเซสชันที่ส่งผ่านโดยลูกค้า
ข้อดีของการไร้สัญชาติ:
- บริการบนเว็บสามารถจัดการการโทรแต่ละวิธีแยกกันได้
- บริการเว็บไม่จำเป็นต้องรักษาการโต้ตอบก่อนหน้าของลูกค้า
- ทำให้การออกแบบแอปพลิเคชันง่ายขึ้น
- HTTP นั้นเป็นโปรโตคอลไร้สัญชาติซึ่งแตกต่างจาก TCP ดังนั้น RESTful Web Services จึงทำงานร่วมกับโปรโตคอล HTTP ได้อย่างราบรื่น
ข้อเสียของการไร้สัญชาติ:
- ต้องเพิ่มเลเยอร์พิเศษหนึ่งรายการในรูปแบบหัวเรื่องในทุกคำขอเพื่อรักษาสถานะของลูกค้า
- เพื่อความปลอดภัยเราต้องเพิ่มข้อมูลส่วนหัวในทุกคำขอ
วิธีการ HTTP ได้รับการสนับสนุนโดย REST:
GET: / string / someotherstring เป็น idempotent และควรส่งคืนผลลัพธ์เดียวกันทุกครั้งที่มีการโทร
วาง: เหมือนกับ GET Idempotent และใช้เพื่ออัปเดตทรัพยากร
POST: ควรมี URL และเนื้อหาที่ใช้สำหรับการสร้างทรัพยากร การโทรหลายครั้งควรให้ผลลัพธ์ที่แตกต่างกันและควรสร้างผลิตภัณฑ์หลายรายการ
DELETE: ใช้เพื่อลบทรัพยากรบนเซิร์ฟเวอร์
ศีรษะ:
วิธี HEAD นั้นเหมือนกับ GET ยกเว้นว่าเซิร์ฟเวอร์จะต้องไม่ส่งคืนเนื้อความในการตอบกลับ ข้อมูลเมตาที่มีอยู่ในส่วนหัว HTTP เพื่อตอบสนองคำขอ HEAD SHOULD จะเหมือนกับข้อมูลที่ส่งเพื่อตอบสนองต่อคำขอ GET
ตัวเลือก:
วิธีนี้ช่วยให้ลูกค้าสามารถกำหนดตัวเลือกและ / หรือข้อกำหนดที่เกี่ยวข้องกับทรัพยากรหรือความสามารถของเซิร์ฟเวอร์โดยไม่ต้องมีการกระทำของทรัพยากรหรือการเริ่มต้นการดึงทรัพยากร
การตอบสนอง HTTP
ไปที่นี่เพื่อรับคำตอบทั้งหมด
ต่อไปนี้คือสิ่งสำคัญสองสามประการ: 200 - ตกลง 3XX - ข้อมูลเพิ่มเติมที่ต้องการจากการเปลี่ยนเส้นทางไคลเอนต์และ URL 400 - คำขอ
ไม่
ถูกต้อง401 - ไม่ได้รับอนุญาตให้เข้าถึง
403 - ต้องห้าม
คำขอถูกต้อง แต่เซิร์ฟเวอร์ปฏิเสธการดำเนินการ ผู้ใช้อาจไม่มีสิทธิ์ที่จำเป็นสำหรับทรัพยากรหรืออาจจำเป็นต้องมีบัญชีของการจัดเรียงบางอย่าง
404 - ไม่พบ
ทรัพยากรที่ร้องขอไม่พบ แต่อาจมีในอนาคต คำขอต่อมาโดยลูกค้าที่ได้รับอนุญาต
405 - วิธีการไม่อนุญาตวิธีการร้องขอไม่ได้รับการสนับสนุนสำหรับทรัพยากรที่ร้องขอ ตัวอย่างเช่นคำขอ GET บนแบบฟอร์มที่ต้องการข้อมูลที่จะแสดงผ่าน POST หรือคำขอ PUT บนทรัพยากรแบบอ่านอย่างเดียว
404 - ไม่พบคำขอ
500 - เซิร์ฟเวอร์ภายในล้มเหลว
502 - ข้อผิดพลาดเกตเวย์ไม่ดี