MVC ค่อนข้างตรงไปตรงมา
มาร์ตินฟาวเลอร์อาจจะไม่เห็นด้วยกับสิ่งนี้ :
ผู้คนต่าง ๆ ที่อ่านเกี่ยวกับ MVC ในที่ต่าง ๆ ต่างนำแนวคิดที่แตกต่างกันและอธิบายสิ่งเหล่านี้ว่า 'MVC'
กำลังเดินทางไป...
เมื่อเราสร้างเว็บไซต์มันทั้งหมดมารวมกันเป็น 'ไคลเอนต์ส่งคำขอคำหลัก REST ไปยังเซิร์ฟเวอร์ -> เซิร์ฟเวอร์ตรงกับ URL ที่ร้องขอไปยังการดำเนินการควบคุม -> ซึ่งจากนั้นเรียกรูปแบบ (s) สำหรับการรวบรวมข้อมูล / การประมวลผลได้รับผล -> และส่งคืนผลลัพธ์กลับไปยังลูกค้าเป็นหน้า HTML (ดู) '
ตกลงนี่เป็นเรื่องยุ่งเหยิงนิดหน่อย
MVC ไม่ว่าจะเป็นอะไรคือชุดของแนวคิดสำหรับการนำส่วนติดต่อผู้ใช้ไปใช้
REST เป็นชุดของข้อ จำกัด ทางสถาปัตยกรรมสำหรับการสร้างแอพพลิเคชั่นขนาดใหญ่
เว็บซึ่งเป็นสิ่งที่คุณกำลังพูดถึงที่นี่เป็นแอปพลิเคชันการจัดการเอกสารขนาดใหญ่ที่สร้างขึ้นโดยใช้ข้อ จำกัด เดียวกัน
ความคล้ายคลึงกันที่คุณเห็นระหว่างสองสิ่งนี้คือ (นำการเลือกของคุณ) มาประกอบอย่างไม่ถูกต้องหรือผิวเผิน
RESTafariansมีความเข้าใจร่วมกันของHATEOAS "ไฮเปอร์เป็นเครื่องมือของรัฐแอพลิเคชัน" และควรจะส่งสัญญาณเตือนเสียงเรียกเข้าผ่านคุณหัว - ทำไมจะมุมมองที่เป็นเครื่องมือของรัฐ ? หากเราตั้งคำถามและมองหาหลักฐานเพิ่มเติมเราอาจสังเกตเห็นสองสิ่งที่แปลก
อันดับแรกเราสามารถนำเซิร์ฟเวอร์ HTTP ออกจากสมการได้อย่างสมบูรณ์โดยการโหลด HTML จากดิสก์ เบราว์เซอร์นั้นมีเนื้อหาที่สมบูรณ์แบบโดยมีการเปลี่ยนแปลงพฤติกรรมเล็กน้อยที่อาจเกิดขึ้นจากการเปลี่ยนแปลงใน URL พื้นฐาน โดยทั่วไปมุมมองจะไม่ทำงานต่อเมื่อถูกตัดการเชื่อมต่ออย่างสมบูรณ์จากโมเดลและคอนโทรลเลอร์เช่นนั้น
ข้อสองหากเราสังเกตเบราว์เซอร์สมัยใหม่อย่างระมัดระวังเราจะสังเกตเห็นว่ามีหลายมุมมองของ HTML มุมมองหลายมุมมองดูเหมือนเป็นความคิดที่แปลกจริง ๆ แต่ก็มีการนำเสนอหลักพร้อมด้วยมาร์กอัปข้อความที่ตอบสนองต่อท่าทางของผู้ใช้และจากนั้นก็มีสิ่งนี้ "มุมมองที่มา" ที่แสดง HTML ดิบและยังตอบสนองต่อ ท่าทางผู้ใช้ มันเป็นเต่าตลอดทาง!
แน่นอนว่าคำตอบของปริศนานี้คือ HTML ไม่ใช่มุมมอง คอลเล็กชันของวิดเจ็ตในเบราว์เซอร์เป็นมุมมองและอยู่ในการสื่อสารกับDocument Object Modelซึ่งเริ่มต้นโดยการอ่าน HTML
กล่าวอีกนัยหนึ่ง HTML เป็นตัวแทนของรัฐเช่นเดียวกับRoy T. Fielding ที่สัญญาไว้
ถ้าเรากำลังพูดถึงบริการเว็บ RESTful API ที่บริสุทธิ์ ... เหมือนเมื่อก่อน แต่ไม่มี 'มุมมอง'
ถูกต้องเหมือนเมื่อก่อน: ไม่มีมุมมอง JSON เช่นเดียวกับ HTML เป็นตัวแทนของรัฐเหมาะสำหรับการข้ามขอบเขตกระบวนการ
คิดว่า "DTO" หรือ "ข้อความ" และคุณอ้างถึงจะมีโอกาสน้อยที่จะทำให้คุณหลงทาง