Tôi đang sử dụng API Web v2 và tôi có một số mô hình mà tôi cần thực hiện các thao tác CRUD. Ví dụ, tôi có một mô hình Allergy
và một mô hình Prescription
. Trong bản thân ứng dụng, tôi có các mô hình có thể biến thành các mô hình thích hợp của chúng, nhưng vì mục đích đơn giản, hãy nói rằng tôi lấy mô hình thẳng trong bộ điều khiển Web API.Bộ điều khiển API Web chung
Vì vậy, một cái gì đó như thế này:
public class PrescriptionsController
{
public HttpResponseMessage Put(Prescription model)
{
// saved to the DB
}
... (other CRUD operations)
}
Tôi cũng có tương tự cho Allergy
mô hình:
public class AllergiesController
{
public HttpResponseMessage Put(Allergy model)
{
// saved to the DB
}
... (other CRUD operations)
}
Cả hai mô hình có đặc tính khác nhau nhưng được xử lý một cách chính xác theo cùng một cách - trong thực tế, tôi có khoảng 3 mô hình khác được xử lý chính xác theo cùng một cách cho mỗi hoạt động CRUD. Tôi ghét phải có 5 điểm cuối khác nhau về cơ bản được sao chép và dán mã.
Vì vậy, câu hỏi của tôi là:
Tôi có thể tạo bộ điều khiển chung để xử lý tất cả các mô hình này không? Một cái gì đó như MyCommonController<T>
? (nhưng với một tên tốt hơn của khóa học!) API Web có thể xử lý định tuyến trong kịch bản đó không? Đó có phải là một ý tưởng hay không?
Tôi nghĩ bạn có thể đạt được điều này theo cách khác .. bằng cách định tuyến. Tôi chưa thử, nhưng sẽ thấy. – Guanxi
Dường như có thể. Đây là cuộc thảo luận về vấn đề này: http://stackoverflow.com/questions/12077361/generic-webapi-controller – Trisk