2011-03-29 2 views
0

저는 최근에 기존 웹 포털에 대한 API를 만드는 요구 사항을 발견했습니다. 현재 웹 UI는 그대로 유지되며 API는 핵심 앱 상단에 앱을 빌드하려는 모든 클라이언트에게 추가 기능을 제공합니다.MVC 웹 UI 및 API 디자인 질문 - 새로운보기 모델 또는 기존 모델을 사용합니까?

웹 UI는 매우 복잡하며 원하는 기능을 수행하기위한 몇 가지 단계별 양식으로 구성되어 있습니다. 예를 들어, 일부 도메인 객체는 마법사와 같은 방식으로 일련의 양식보기 (내 viewmodel)로 분할됩니다. 입력 된 값이 int인지 여부에 대한 유효성 검사, 주어진 전자 메일이 유효한지 여부 등은 viewmodel에서 발생합니다.

API에서 사용자 입력을 표시하기 위해 viewmodel 클래스를 다시 사용할 계획이었습니다.

웹 UI : 공공 ActionResult 저장 (FormOne 양식) {...} API : 공공 ActionResult 저장 (문자열 apiKey에, FormOne 양식) {...}

그러나이 그렇게 어려운, 즉 인 웹 UI의 뷰 모델 간의 완벽한 매핑이 및 API viewmodel.

이 경우 양호한 설계는 무엇입니까?

a) API에 대한 새로운 viewmodel을 만드시겠습니까? b) 가능한 경우 기존의 뷰 모델을 사용합니다. - 적절한 경우 새 클래스를 만듭니다. c) 다른 것?

덕분에, Y

답변

2

뷰 모델은 하나 개의보기에 의해 사용되어야한다.

그들을 재사용하지 마십시오. 단지 문제의 원인 일뿐입니다.

가끔 은 커플 링을 줄이기 위해 DRY를 위반하면이됩니다. 이것은 그 시대의 하나입니다.

API를 제공 할 새 ViewModel을 만듭니다.

+0

당신이 옳다는 것은 이미 작성된 코드의 재사용을 극대화하는 것입니다. – Yannis