Bộ điều khiển API Web có thể được tạo và lưu trữ trong bất kỳ Ứng dụng ASP.NET nào, không chỉ các ứng dụng MVC. Do đó, một lý do rõ ràng để tạo API Web là nếu bạn không có giao diện người dùng MVC (ví dụ: các dịch vụ web RESTful cổ điển được lưu trữ bởi công ty / tổ chức của bạn.)
Bộ điều khiển MVC thường dựa vào Khung MVC, nếu bạn nhìn vào các mẫu mặc định và hầu hết các công việc được thực hiện bởi cộng đồng và các đồng nghiệp của bạn, bạn sẽ nhận thấy rằng hầu hết tất cả các Bộ điều khiển MVC đều được triển khai với Chế độ xem.
Cá nhân, tôi sử dụng Bộ điều khiển MVC khi tôi có ý định phản hồi với Chế độ xem () và tôi sẽ sử dụng API Web cho mọi thứ không phụ thuộc vào chế độ xem cụ thể.
Tất nhiên, có một số cảnh báo, nhưng nói chung, nếu bạn không yêu cầu hành vi Binding Model của MVC, dịch vụ của bạn là trung tâm dữ liệu và các hoạt động là trung tâm dữ liệu (ví dụ: hoạt động CRUD) thì bạn có thể muốn có 'Trình điều khiển API web 'thay vì' Bộ điều khiển xem mô hình '. Ngược lại, nếu các hoạt động của bạn là View-centric (ví dụ: cung cấp trang quản trị người dùng cho người dùng) hoặc bạn cần Binding Model của MVC để tạo ra 'ajax partials' (thì rất khó), thay vào đó bạn sẽ muốn có Trình điều khiển MVC.
Cá nhân, tôi sử dụng các bộ điều khiển API Web để điều khiển các máy khách RESTful dựa trên JSON, tôi sử dụng các bộ điều khiển MVC để xử lý việc định tuyến và phân phối trình duyệt cơ bản của SPA.