문제

웹 서비스를 코딩할 때 반환 값을 어떻게 구성합니까?오류 조건(예상된 오류 및 예상치 못한 오류)을 어떻게 처리합니까?int와 같은 간단한 것을 반환하는 경우 그냥 반환합니까, 아니면 더 복잡한 객체에 포함합니까?한 서비스 내의 모든 웹 메소드는 단일 클래스의 인스턴스를 반환합니까, 아니면 각 메소드에 대해 사용자 정의 반환 값 클래스를 생성합니까?

도움이 되었습니까?

해결책

저는 인수를 간단한 공용 속성이 있는 단일 [Operation]Request 클래스로 캡슐화하는 요청/응답 개체 패턴을 좋아합니다.

AddCustomerResponse를 반환하는 AddCustomerRequest와 같은 것입니다.

응답에는 작업의 성공/실패에 대한 정보, UI에서 사용할 수 있는 메시지, 추가된 고객의 ID 등이 포함될 수 있습니다.

또 다른 좋은 패턴은 이러한 모든 것이 간단한 IMessage 인터페이스에서 파생되도록 만드는 것입니다. 여기서 일반적인 끝점은 Process(params IMessage[] message)...와 같습니다.이렇게 하면 동일한 웹 요청에서 여러 작업을 전달할 수 있습니다.

다른 팁

Ben의 답변에 +1입니다.

또한 일반적인 응답에서는 여러 오류/경고 항목을 허용하여 응답이 최대한 포괄적이고 실행 가능하도록 하는 것을 고려할 것을 제안합니다.(첫 번째 오류 메시지 이후에 중지된 컴파일러를 사용하시겠습니까, 아니면 가능한 한 많은 정보를 알려주는 컴파일러를 사용하시겠습니까?)

SOAP 웹 서비스를 사용하는 경우 SOAP 결함 오류 세부 정보를 반환하는 표준 방법으로, 오류 메시지는 원하는 추가 세부 정보를 반환할 수 있습니다.

Soap 오류는 호출 애플리케이션이 Soap 클라이언트인 표준 사례입니다.XMLHTTP를 사용하는 COM 클라이언트와 같이 Soap이 XML로 구문 분석되고 Soap 오류를 쉽게 처리할 수 없는 경우가 있습니다.아직 투표할 수 없지만 @Ben Scheirman에게 +1을 더 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top