일부 SOAP 및 REST 서비스를 리팩토링하고 있습니다. SOAP 서비스는 요청 된 엔티티로 응답하고 다른 것은 응답하지 않습니다. 예를 들어, GET은 요청 된 엔티티의 XML 표현을 리턴합니다. 오류의 경우 표준 예외가 발생합니다. REST 서비스에는 동일한 동작이 있습니다.반환 할 부분과 SOAP 서비스의 방법은 무엇입니까?
웹 응용 프로그램 예외를 throw하고 적절한 http 코드를 반환하도록 REST 서비스를 수정합니다 (예 : http 200를 항상 반환하는 대신 성공적인 게시를 위해 http 201). 나는 SOAP에 익숙하지 않으므로, 무엇이 필요한지, 무엇을 바꿀 필요가 있는지 질문한다.
1) 반환 HTTP 코드 (예를 들어, POST/제작 요청에 대한 HTTP 201을 반환) 성공 및 오류 경우에 :
주위 SOAP를위한 가장 좋은 방법은 무엇입니까? 그렇다면 어떻게?
2) 예외를 던집니까? 서비스 호출자가 보낸 잘못된 데이터를 포함하여 모든 오류가 발생 했습니까? 그것은 SOAP 예외인가, WebApplicationException인가?
귀하의 의견을 기다리고 있습니다.
의견에 감사드립니다. 답장에서 대답 할 수없는 몇 가지 질문이 있습니다. 모든 오류 (예 : 데이터에 전달 된 실패한 보호 조항)에 대해 예외를 던지십니까? 그리고 SOAP 예외 또는 WebApplicationExceptions가 발생합니까? – TERACytE
클라이언트로 반환하는 모든 예외는 SoapException 유형이어야합니다. 예외를 구성하는 것은 무엇이며 디자인 결정은 아닙니다. 예를 들어 SOAP 요청에 기본 키가 포함되어 있고 데이터베이스에서 해당 키를 찾을 수없는 경우 SOAP 응답에 표시된 오류로 더 적합 할 수 있습니다. 반면에 데이터베이스 연결이 끊어지면 SOAP 예외가 발생할 수 있습니다. 메서드와 비슷합니다 : 오류를 나타 내기 위해 예외를 던지거나 오류를 나타내는 응답 값을 반환하고 해석 할 클라이언트에 남겨 둘 수 있습니다. – Bleaourgh
+1 # 2 특히. Microsoft SharePoint는 SOAP이없는 500 (입력 XML이 잘못되었지만 때로는 경우에만)을 반환하고 SOAP 예외를 반환하는 것 사이에 "차이가납니다". 가장 끔찍한 짜증나. –