我是MVC WebAPI和EF4的新手。我想知道是否最好將多個GET和/或PUT方法的大型控制器拆分爲多個控制器,以避免「找到與請求匹配的多個操作」錯誤。我更喜歡只使用基於VERB的路由模式「api/controller/id」,如下所示。asp.net webapi控制器的設計考慮因素
GlobalConfiguration.Configuration.Routes.MapHttpRoute(
"Api",
"api/{controller}/{id}",
new { id = RouteParameter.Optional }
);
例如,我有兩個域對象Doctor和Patient。一個ClinicController有下列行爲:
getDoctors()
getPatientCohort(int doctorId)
getPatientPrimaryDr(int patientId)
getPatientDoctors(int patientId, int clinicId)
getPatients()
getPatient(int patientId)
putDoctor(Doctor doctor)
putPatient(Patient patient)
createDoctor(Doctor doctor)
createPatient(Patient patient)
如果我這個控制器分成DoctorController和PatientController使每個控制器只與一個域對象的交易。由於Patient Cohort是一個關聯類,應該getPatientCohort(int doctorId)是PatientController還是DoctorController的方法?謝謝。