2014-04-09 1 views
0

웹 서비스 설정이 필요합니다. 일부 고객은이를 REST-JSON 방식이라고 부릅니다. SOAP 방식의 일부 한 세트의 코드 만 작성하고 싶습니다. 그 외에도 config 매개 변수를 사용하여 출력 형식이 변경되어야합니다. 즉, SOAP 클라이언트는 SOAP 입력 XML을 전달하고 SOAP 출력 XML을 가져옵니다. 다른 클라이언트의 경우 JSON이됩니다. 내 옵션은 무엇입니까?Rest + JSON과 SOAP를 모두 지원하는 웹 서비스

+0

SOAP 및 REST는 XML 및 JSON을 지원하지 않습니다. RESTful 응용 프로그램은 Resources에 관한 것입니다. SOAP은 기본적으로 RPC입니다. –

답변

1

일반적으로 반복하지 않는 것이 좋지만 복잡한 일이 될 수 있습니다. 원격 인터페이스가 충분히 복잡하기 때문에 몇 줄의 코드를 줄이기 위해 기술을 혼합하면 인터페이스를 유지 관리 할 수 ​​없게 될 수도 있습니다.

일반적으로 묻는대로 일반적인 대답 만 제공 할 수 있습니다.

기술 레이어에 추가로 나타납니다 유사한 게시물이 첫째 :

is it possible to have same class for both soap and rest in cxf

그러나 당신은뿐만 아니라 자신을 대답해야합니다 다른 질문이 있습니다 :

  • 은 무엇 당신을 서비스가 수행해야합니다 (유스 케이스).
  • 어디에서 상처를 줄 수 있습니까?

Spring (또는 Jersy MK2)을 사용하므로 IoC를 사용하면 좋은 커팅을 크게 향상시킬 수 있습니다.

나는 두 개의 다른 WS-Endpoints를 만들 것을 제안합니다. 하나는 REST 용이고 다른 하나는 SOAP 용입니다. 먼저 카운터 직관적으로 보일 수 있지만, 내 추론은 간단하다 :

  • 너무 많은 주석이 물건이 무엇을하고 있는지 숨 깁니다.
  • 기술 요구 사항이 다를 수도 있고 시간이 지나면 개발할 수도 있습니다.
  • Separation of Concerns는 테스트 시간을 단축합니다.

백엔드 용으로 2 명의 소비자를 작성하면 백엔드가 얼마나 좋은지에 대한 느낌이 더 좋으며 사용법이 얼마나 어색한 지 알 수 있습니다.

위의 링크 뒤에있는 예제는 "실제"사례가 될만큼 복잡하지는 않습니다. 그것은 단순히 그렇게하는 것이 좋습니다.

보안, 대금 청구, 모니터링, 추적 등의 주요 모조를 시작하면 금액 주석이 이상하게 쌓일 것입니다.

마지막으로, REST 방식으로 Sense를 만드는 것이 SOAP 방식에서는 의미가 없으며 그 반대도 마찬가지입니다.