2012-05-01 2 views
2

최근에 MVC4 WebApi 예제를 조사했습니다. 이러한 샘플 응용 프로그램은 매우 간단하며 몇 페이지 만 포함합니다. 그들의 목적은 ApiController를 사용하는 방법을 보여주는 것일 뿐이므로 응용 프로그램이 최소한의 구조로 유지됩니다.일반 컨트롤러 및 ApiController 배치 위치

대규모 웹 응용 프로그램에는 많은 일반 컨트롤러와 Api 컨트롤러가 있습니다. 우리는 어떻게 그들을 체계적으로 정리해야합니까? 모든보기 컨트롤러에서 하나의 폴더에 모든 API 컨트롤러를 배치하고 여기에서 $.ajax()을 호출하는 것이 좋습니다. 또는 API 컨트롤러를 일반 컨트롤러와 함께 배치하여 관련 $.ajax()이있는 뷰를 렌더링하는 것이 더 좋습니까?

권장되는 방법은 무엇입니까?

일부 생각은 여기에 추가 :

내가 그것을 통해 생각하고 더 많은 시간을 보낼 예정이다. 이제 내 계획은 표준 컨트롤러가 뷰를 렌더링하는 데에만 사용된다는 것입니다. 뷰 모델은 표준 컨트롤러를 통과하지 않습니다. 즉, no return View(model)입니다. 뷰에는 jQuery 템플릿과 같은 클라이언트 측 프로그래밍을 사용하여 API 컨트롤러에서 반환 된 json 객체가 채워집니다. [나는 이것에서 너무 극단적 인가? No return View(model)? 정말로?]

괜찮 으면 일반 컨트롤러는 작업자 서비스를 호출하지 않습니다. 대신 모든 작업자 서비스는 API 컨트롤러에서 호출되어야합니다. 그러면 WorkerServices와 해당 인터페이스를 어떻게 배치해야합니까?

무엇보다, 영역을 갖고 싶다면 어떻게해야합니까? 지역 외부에 API 및 WorkerServices를 배치해야합니까? 또는 각 영역에 API 폴더와 WorkerServices 폴더가 있습니까?

나는 오늘 오후에 계산 된 결정을 내리는 데 계속해서 그렇게 생각할 것입니다. 제안이나 경험을 알려주십시오. 고맙습니다.

답변

4

당신은 당신의 API 컨트롤러와 표준 컨트롤러 사이의 분리를 유지하기 위해 Controllers 폴더를 분기 수 :

   |--- Api 
Controllers - | 
       |--- Standard 

또는 다음 분리 :

|-- Controllers 
|-- Api 

정말 개인적인 취향의 문제이다. 나는 구별하기가 더 어렵 기 때문에 표준 폴더와 Api 컨트롤러를 같은 폴더에 섞어서는 안된다.

$.ajax 호출과 관련하여 컨트롤러가있는 위치와 서버에서 어떻게 구성되어 있는지는 중요하지 않습니다. 들어오는 URL을 해당 컨트롤러에 발송하는 것은 라우팅 엔진에 달려 있습니다.

+0

감사합니다. 특히 인물에게 감사드립니다. 그것들은 제가 정확히 설명하려고했던 것입니다. – Blaise