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. Vì vậy, một lý do rõ ràng để tạo ra một API Web là nếu bạn không có một mặt trước MVC (ví dụ như các dịch vụ web RESTful được lưu trữ bởi công ty/tổ chức của bạn.)
MVC Bộ điều khiển 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ô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 như tất cả các bộ điều khiển MVC đều được thực hiện với chế độ xem.
Cá nhân, tôi sử dụng Bộ điều khiển MVC khi tôi dự định trả lời bằng Chế độ xem() và tôi sẽ sử dụng API Web cho bất kỳ thứ gì không phụ thuộc vào một chế độ xem cụ thể. Dĩ nhiên, hãy cẩn thận nếu bạn không yêu cầu hành vi Ràng buộc mô hình 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 'Bộ điều khiển API Web' thay vì 'Bộ điều khiển kiểu xem'. Ngược lại, nếu hoạt động của bạn là Xem trung tâm (ví dụ:cung cấp một trang quản trị người dùng cho người dùng), hoặc bạn cần Model Binding của MVC để tạo ra 'partj partials' (rất khó), sau đó bạn sẽ muốn có một Controller MVC thay thế.
Cá nhân, tôi sử dụng bộ điều khiển API Web để điều khiển máy khách RESTful dựa trên JSON, tôi sử dụng bộ điều khiển MVC để xử lý định tuyến trình duyệt cơ bản và phân phối SPA.
Nguồn
2013-01-11 21:34:07
có thể trùng lặp của [Sự khác biệt giữa ApiController và Bộ điều khiển trong ASP.NET MVC] (http: // stackoverflow.com/questions/9494966/differential-between-apicontroller-and-controller-in-asp-net-mvc) – digawp
Điều quan trọng cần lưu ý là câu hỏi này là cụ thể cho một ngữ cảnh nhất định: tác giả muốn biết bộ điều khiển nào sẽ sử dụng nếu CHỈ json nên được trả lại. REST API cho phép định dạng phương tiện khác nhau tùy thuộc vào thương lượng nội dung (ví dụ: chấp nhận xml, chấp nhận json). Trong trường hợp này, trình điều khiển WebAPI là lựa chọn tốt nhất của bạn – Sentinel