อย่าเวอร์ชัน URL เนื่องจาก ...
- คุณทำลายลิงก์ถาวร
- การเปลี่ยนแปลง url จะแพร่กระจายเช่นโรคผ่านทางอินเทอร์เฟซของคุณ คุณจะทำอย่างไรกับการแสดงที่ไม่มีการเปลี่ยนแปลง แต่ชี้ไปที่การเป็นตัวแทนที่มี? หากคุณเปลี่ยน URL คุณจะทำลายลูกค้าเก่า หากคุณออกจาก url ไคลเอนต์ใหม่ของคุณอาจไม่ทำงาน
- การกำหนดเวอร์ชันประเภทสื่อเป็นโซลูชันที่ยืดหยุ่นกว่ามาก
สมมติว่าทรัพยากรของคุณส่งคืนตัวแปร application / vnd.yourcompany.user + xml สิ่งที่คุณต้องทำคือสร้างการสนับสนุนสำหรับแอปพลิเคชันใหม่ / ประเภทสื่อ vnd.yourcompany.userV2 + xml และผ่านความมหัศจรรย์ของการเจรจาเนื้อหา v1 ของคุณและ ไคลเอนต์ v2 สามารถอยู่ร่วมกันได้อย่างสงบสุข
ในอินเทอร์เฟซ RESTful สิ่งที่ใกล้เคียงที่สุดที่คุณต้องทำสัญญาคือคำจำกัดความของประเภทสื่อที่แลกเปลี่ยนระหว่างไคลเอนต์และเซิร์ฟเวอร์
URL ที่ไคลเอ็นต์ใช้ในการโต้ตอบกับเซิร์ฟเวอร์ควรจัดเตรียมโดยเซิร์ฟเวอร์ที่ฝังอยู่ในการแสดงที่ดึงมาก่อนหน้านี้ URL เดียวที่ไคลเอ็นต์ต้องทราบคือ URL รากของอินเทอร์เฟซ การเพิ่มหมายเลขเวอร์ชันให้กับ URL จะมีค่าก็ต่อเมื่อคุณสร้าง URL บนไคลเอนต์ซึ่งคุณไม่ควรทำกับอินเทอร์เฟซ RESTful
หากคุณต้องการเปลี่ยนแปลงประเภทสื่อของคุณที่จะทำลายลูกค้าปัจจุบันของคุณให้สร้างใหม่และปล่อยให้ URL ของคุณอยู่คนเดียว!
และสำหรับผู้อ่านเหล่านั้นในปัจจุบันกล่าวว่าสิ่งนี้ไม่สมเหตุสมผลหากฉันใช้ application / xml และ application / json เป็นสื่อประเภท เราควรจะทำเวอร์ชันเหล่านั้นอย่างไร? คุณไม่. ประเภทสื่อเหล่านี้ค่อนข้างไร้ประโยชน์สำหรับอินเทอร์เฟซ RESTful เว้นแต่คุณจะแยกวิเคราะห์โดยใช้การดาวน์โหลดโค้ดซึ่งการกำหนดเวอร์ชันเป็นจุดที่สงสัย