2014-01-22 4 views
1

현재 C#에서 REST WVF 웹 서비스를 설계 중입니다.이 서비스는 MVC 웹 사이트에서 사용되고 한 점만 혼란스럽게합니다. 서명이있는 두 가지 메소드가 있다고 가정하십시오.REST 서비스에서 요청/응답 사용하기

public bool IsEmailAvailable(string email address) { ... } 

public DbUser GetUser(object id) { ... } 

위와 같이 서비스 인터페이스와 구현을 그대로 유지할 수 있습니까? 누군가가 나를 더 많이 디자인하는 것에 대해 언급했습니다.

public IsEmailAvailableResponse IsEmailAvailable(IsEmailAvailableRequest request) { ... } 

public GetUserResponse GetUser(GetUserRequest request) { ... } 

각 방법을 구현할 때 장단점은 무엇입니까?

답변

3

이것은 영리한 사람입니다. 원격 인터페이스는 매우 중요하며 두 번째 버전은 유지 관리가 쉽습니다. 변경을 깨지 않고 Request | Response에 params를 추가 할 수 있습니다. 이것은 메시지 기반 스타일입니다.

내 경우에도 두 번째 버전은 좋지 않습니다. 두 번째 버전에는 너무 구체적인 방법이 포함되어 있습니다.

object Get(object request); 
object Post(object request); 
object Put(object request); 
object Delete(object request); 
etc.. 

불행하게도, WCF에 의해이 종류의 인터페이스를 지원하지 않습니다 : 원격 인터페이스가 parametric polymorphism을 기반으로해야합니다, 그래서 API 이런 종류의

따라서 안정적이고 유연한 것, 편안하고 API는 같아야합니다 기본값이지만 객체 대신 Message을 사용할 수 있으며 동일한 결과를 얻을 수 있습니다.

자세한 내용은 다음 문서를 참조하십시오. Building RESTful Message Based Web Services with WCF