ฉันกำลังทำงานในโครงการใน MVC ที่มีแอปพลิเคชันมือถือสิ่งหนึ่งที่ชัดเจนว่าเราต้องใช้ Web API เพื่อให้สามารถใช้ในแอปพลิเคชันมือถือได้
หลังจากสร้าง API เมื่อเราเริ่มพัฒนาเว็บไซต์เราสับสนและมีการอภิปรายว่าจะใช้ API หรือเข้าถึงวัตถุธุรกิจโดยตรง และเราก็จบลงหลังจากมีความคิดเห็นจากนักพัฒนาที่มีประสบการณ์มากขึ้นในการใช้ Web API แทนการใช้วัตถุธุรกิจโดยตรง
ฉันมีความสับสนเกี่ยวกับโครงสร้างโซลูชันนี้
1) เหตุใดเราจึงควรใช้ Web API และทำการร้องขอ HTTP (ซึ่งใช้เวลานาน) ในการรับหรือวางข้อมูลแทนที่จะเป็นออบเจ็กต์ธุรกิจโดยตรงซึ่งอยู่ในโซลูชันเดียวกัน
2) หลังจากมีข้อโต้แย้งพวกเขาบอกว่าถ้าลูกค้าต้องการโฮสต์ API และเว็บบนคลาวด์เซิร์ฟเวอร์ที่แตกต่างกันและใช้การปรับขนาดเฉพาะบน API หรืออาจต้องการให้มี URL ที่แตกต่างกันสำหรับการเข้าถึง API และเว็บ (ซึ่งเป็นตรรกะ) ดังนั้นในกรณีนั้นเราควรเรียก Web API จากแอปพลิเคชั่น MVC ในโซลูชันเดียวกันหรือไม่
3) ถ้าเรากำลังโฮสต์ API และเว็บในการโฮสต์ที่แตกต่างกันนั่นหมายความว่าเว็บของเราจะใช้ WebClient และมีการโทร HTTP ในแต่ละการนำทาง ถูกต้องหรือไม่
4) ถ้าเราจะทำธุรกิจวัตถุในรูปแบบทั้ง API และเว็บโฮสติ้งบนเซิร์ฟเวอร์ที่แตกต่างกันถ้ามีอะไรเปลี่ยนแปลงใน BL จะต้องอัปเดตบิลด์บนเซิร์ฟเวอร์ทั้งสอง
5) หรือเราควรสร้างเพียงโครงการเดียวสำหรับ API และสามารถเพิ่มมุมมองหรือหน้า html เพื่อพัฒนาเว็บอินเตอร์เฟสดังนั้นด้วยวิธีนี้เราสามารถเรียก API โดยตรงจาก ajax
ตามความรู้ของฉัน # 5 เป็นทางออกที่ดีที่สุดหรือ API สำหรับการเข้าถึงบุคคลที่สามเท่านั้น หากเรามี DB, EF, ชั้นข้อมูลและชั้นธุรกิจในโซลูชันเดียวกันเราไม่ควรใช้ API ในการโทร HTTP และเข้าถึงวัตถุธุรกิจโดยตรง (แก้ไขฉันหากฉันผิด) API เป็นสิ่งจำเป็นสำหรับแอปพลิเคชันมือถือหรือเดสก์ท็อปหรือบุคคลใดก็ตามที่ต้องการเข้าถึงแอปพลิเคชันเพื่อให้เราสามารถมีพื้นที่เก็บข้อมูลและชั้นข้อมูลเดียวกัน
ในสถานการณ์ของฉันฉันต้องสร้าง API เนื่องจากเรามีแอปพลิเคชันมือถือและในด้าน API โครงการเราเรียกว่าเลเยอร์ธุรกิจ (โครงการแยกต่างหาก) และชั้นธุรกิจสื่อสารกับเลเยอร์การเข้าถึงข้อมูล (โครงการแยกต่างหาก) ดังนั้นคำถามของฉันคือถ้าเราโฮสต์ API และเว็บของเราไปยังเซิร์ฟเวอร์ที่แตกต่างกันแล้วเรียก API ซึ่งเป็นคำขอ HTTP อาจใช้เวลานานกว่าการใช้วิธีการจากชั้นธุรกิจในขณะที่เราสร้างโครงการและเรา. dll ชั้นธุรกิจ ในตัวควบคุม API เราเพิ่งแปลงส่วนธุรกิจของเราเป็นรูปแบบ json
ฉันค้นหาทางอินเทอร์เน็ต แต่ไม่ได้รับคำตอบที่น่าเชื่อถือ ฉันพบบล็อกhttp://odetocode.com/blogs/scott/archive/2013/07/01/on-the-coexistence-of-asp-net-mvc-and-webapi.aspxพูดถึงประเด็นเดียวกัน แต่อีกครั้ง ในบล็อกนั้นคำถามของฉันคือทำไมเราต้องพิจารณาสถานการณ์ # 3
อัปเดต: เราสามารถมีโครงการ API และโครงการ MVC ที่แตกต่างกันและเราสามารถเรียก API จากเว็บโดยใช้ jvascript หรือสามารถใช้รูปแบบ MVVM