2014-05-14 2 views
3

Umbraco 용 Surface 컨트롤러와 API 컨트롤러의 차이점은 무엇입니까? Umbraco Surface 컨트롤러와 API 컨트롤러의 차이점

표준 MVC에서 일반적인 규칙은 다음과 같습니다

  • API가 데이터를 반환에 사용되는, 여러 응용 프로그램에 의해 소비 될 수있다.
  • 컨트롤러 돌아보기

에 사용하지만 비트 Umbraco와 확신입니다.

지금까지 내가 올바르게 사용하고있는 경우 나 궁금하게하고있는,에서와 양식에 데이터를 게시하는 표면 컨트롤러를 사용하고 내가 대신에 대한 이유가 무엇이

에 대한 API 컨트롤러를 사용해야하는 경우 의견?

답변

2

나는 당신이 착각했다고 생각하지 않습니다. Umbraco 표면 컨트롤러 (http://our.umbraco.org/documentation/Reference/Mvc/surface-controllers부터) 형태로 데이터를 올리기 같은 프론트 엔드 사용자 상호 작용

SurfaceController가 UmbracoPage의 전단 렌더링과 상호 작용하는 MVC 컨트롤러 다룬다. 렌더링에 사용할 수 있습니다. 양식 작업 데이터 제출을 처리하고 하위 작업 매크로를 렌더링하는 하위 작업 내용 SurfaceController는 이라는 자동 라우팅을 사용하므로이 컨트롤러가 작동하려면 고유 한 경로를 추가하거나 만들 필요가 없습니다.

반면 API 컨트롤러를 사용하여 다른 도메인의 데이터 또는 현재 사이트의 백 엔드에 액세스 할 수 있습니다.

Umbraco가 자체 API (예 : ContentService 사용)를 통해 더 많이 사용되기 시작하고 백 오피스에 대한/umbraco/액세스가 더 복잡한 구현에서는 사용되지 않게 될 가능성이 있습니다 apis는 컨트롤러에서 모델 &보기를 연결하는 데 사용됩니다. 웹 사이트에서 umbraco를 분리하면 CMS에 대한 더 큰 모델이되고 많은 배포 문제가 해결 될 수 있으므로 더 많은 사용 사례에서 웹 API를 사용해야한다는 귀찮은 느낌이 잘 될 수 있습니다.

2

일반적으로 모든 MVC에 SurfaceController를 사용합니다. 내 API 컨트롤러는 웹 사이트 외부의 응용 프로그램에 사용됩니다. API 컨트롤러의 예는/Umbraco/Api/ResourcesApi/GetFaqs를 JSONResult로 호출하여 웹 사이트에 대한 모든 FAQ를 가져 오는 것입니다.

public sealed class ResourcesApiController : UmbracoApiController 
관련 문제