ใช้ URL เพื่อระบุวัตถุของคุณไม่ใช่การกระทำของคุณ:
โปรดทราบว่าสิ่งที่คุณพูดถึงครั้งแรกไม่ใช่สิ่งที่น่ารังเกียจ:
/questions/show/<whatever>
คุณควรใช้ URL ของคุณเพื่อระบุวัตถุของคุณแทน:
/questions/<question>
จากนั้นคุณดำเนินการอย่างใดอย่างหนึ่งด้านล่างกับทรัพยากรนั้น
รับ:
ใช้เพื่อรับทรัพยากรค้นหารายการทรัพยากรและเพื่อสอบถามข้อมูลแบบอ่านอย่างเดียวบนทรัพยากร
ในการขอรับทรัพยากรคำถาม:
GET /questions/<question> HTTP/1.1
Host: whateverblahblah.com
ในการแสดงรายการทรัพยากรคำถามทั้งหมด:
GET /questions HTTP/1.1
Host: whateverblahblah.com
โพสต์:
ใช้เพื่อสร้างทรัพยากร
โปรดทราบว่าต่อไปนี้เป็นข้อผิดพลาด:
POST /questions/<new_question> HTTP/1.1
Host: whateverblahblah.com
หากยังไม่ได้สร้าง URL คุณไม่ควรใช้ POST เพื่อสร้างในขณะที่ระบุชื่อ สิ่งนี้ควรส่งผลให้เกิดข้อผิดพลาดไม่พบทรัพยากรเนื่องจากยังไม่มี คุณควรวางทรัพยากรบนเซิร์ฟเวอร์ก่อน คุณสามารถโต้แย้งว่าด้วยการสร้างคำถามใหม่แสดงว่าคุณกำลังอัปเดตทรัพยากร / คำถามเนื่องจากตอนนี้จะส่งกลับอีกหนึ่งคำถามในรายการคำถาม
คุณควรทำสิ่งนี้เพื่อสร้างทรัพยากรโดยใช้ POST:
POST /questions HTTP/1.1
Host: whateverblahblah.com
โปรดทราบว่าในกรณีนี้ไม่ได้ระบุชื่อทรัพยากรเส้นทาง URL ของออบเจ็กต์ใหม่จะถูกส่งคืนให้คุณ
ลบ:
ใช้เพื่อลบทรัพยากร
DELETE /questions/<question> HTTP/1.1
Host: whateverblahblah.com
วาง:
ใช้เพื่อสร้างทรัพยากรหรือเขียนทับในขณะที่คุณระบุ URL ของทรัพยากร
สำหรับทรัพยากรใหม่:
PUT /questions/<new_question> HTTP/1.1
Host: whateverblahblah.com
ในการเขียนทับทรัพยากรที่มีอยู่:
PUT /questions/<existing_question> HTTP/1.1
Host: whateverblahblah.com
... ใช่พวกเดียวกัน PUT มักถูกอธิบายว่าเป็นวิธีการ 'แก้ไข' เช่นเดียวกับการแทนที่ทรัพยากรทั้งหมดด้วยเวอร์ชันที่มีการเปลี่ยนแปลงเล็กน้อยคุณได้แก้ไขสิ่งที่ไคลเอ็นต์จะได้รับเมื่อทำครั้งต่อไป
การใช้ REST ในรูปแบบ HTML:
HTML5 ข้อมูลจำเพาะกำหนด GET และ POST สำหรับองค์ประกอบแบบฟอร์ม
แอตทริบิวต์เนื้อหาวิธีการเป็นแอตทริบิวต์ที่แจกแจงด้วยคำสำคัญและสถานะต่อไปนี้:
- คีย์เวิร์ด GET แมปกับสถานะ GET ระบุเมธอด HTTP GET
- คีย์เวิร์ด POST แมปกับสถานะ POST ซึ่งระบุเมธอด HTTP POST
ในทางเทคนิคข้อกำหนด HTTP ไม่ได้ จำกัด ให้คุณใช้เฉพาะวิธีการเหล่านั้นเท่านั้น คุณมีอิสระในทางเทคนิคที่จะเพิ่มวิธีการใด ๆ ที่คุณต้องการแม้ว่าในทางปฏิบัตินี่ไม่ใช่ความคิดที่ดี แนวคิดก็คือทุกคนรู้ว่าคุณใช้ GET เพื่ออ่านข้อมูลดังนั้นมันจะทำให้เกิดความสับสนหากคุณตัดสินใจที่จะใช้ READ แทน ที่บอกว่า ...
ปะ:
นี่เป็นวิธีการที่กำหนดไว้ใน RFC อย่างเป็นทางการ ออกแบบมาเพื่อใช้เมื่อคุณต้องการส่งการแก้ไขเพียงบางส่วนไปยังทรัพยากรโดยจะใช้เหมือนกับ PUT:
PATCH /questions/<new_question> HTTP/1.1
Host: whateverblahblah.com
ความแตกต่างคือ PUT ต้องส่งทรัพยากรทั้งหมดไม่ว่าจะใหญ่แค่ไหนเมื่อเทียบกับสิ่งที่เปลี่ยนแปลงจริงในขณะที่ PATCH คุณสามารถส่งเพียงการเปลี่ยนแปลงได้