웹 서비스에 대한 더 나은 접근 방식은 계약 첫 또는 계약이 지속됩니까?

StackOverflow https://stackoverflow.com/questions/763827

  •  11-09-2019
  •  | 
  •  

문제

웹 서비스 개발에 대한 더 나은 접근 방식입니다. 계약을 먼저 또는 계약을 지속합니까?
각각의 장단점은 무엇입니까?

어떤 경험이 있습니까?

편집하다이 질문은 웹 서비스 구현 (읽기 : SOAP)에 관한 것입니다. 문제는 구현 클래스가 먼저 코딩되어야하는지 여부와 WSDL 및 XSD 스키마가 해당 (계약 마지막) 또는 WSDL 및 XSD 스키마에서 먼저 작성된 WSDL 및 XSD 스키마에서 생성되어야하는지 여부입니다. 생성 된 클래스 (계약 우선)

도움이 되었습니까?

해결책

계약 우선은 일반적으로 인정되는 '모범 사례'입니다.

서비스의 생산자와 소비자 모두에게 필요한 것과 예상되는 것을 정확하게 분명하게 만듭니다. Java 유형 -> xml 유형을 변환하려고 할 때 특히 중요합니다. 또한 다른 웹 서비스에서 스키마를 재사용 할 수 있습니다.

다른 팁

나는 두 가지 접근 방식을 모두 사용했습니다. 내 제안은 사용하는 것입니다 먼저 계약 스키마이지만 먼저 코드 WSDL.

WSDL 파일을 작성하려면 바인딩, 포트 등과 같은 이상한 뉘앙스가 있습니다. 차라리 손이 아닌 도구로 이것을 수행하고 싶습니다. 이 작업에 도움이되는 도구가 있지만 그중 어느 것도 더 간단하지 않습니다.

@WebService
public ...

최소한 배포를 확인할 수 있습니다.

스키마의 경우 제안했습니다 먼저 계약 XML 스키마 언어는 Java에서 설명 할 수있는 것보다 훨씬 풍부하기 때문입니다. 내가 일반적으로주는 예는 XML 스키마가 문자열의 크기를 제한하고 정규식 패턴을 적용 할 수 있음을 보여줍니다. Java와 주석으로 그렇게하는 것은 약간 더 거친 것처럼 보입니다.

스키마를 계약 첫 번째로 수행하는 또 다른 장점은 스키마 파일을 HTML 문서로 변환하는 도구가 있다는 것입니다.

XJC 도구는 필수 클래스 파일을 생성 할 수 있습니다. 그러나 처음에는 그렇게하는 것이 좋습니다.

결국 생성 된 WSDL 파일을 가져 와서 대신 작업해야합니다. 이렇게하면 wsimport를 사용하고 WSDL에서 Schema까지의 모든 것이 유효한지 확인할 수 있습니다.

@webservice 구현에서 wsdllocation 속성을 사용하여 WSDL 파일로 배포 할 수 있으며 응용 프로그램 서버는 사용자가 서버에서 WSDL을 요청할 때 바인딩 데이터를 수정하지만 여전히 주석을 유지합니다. 그렇지 않으면 요청 된 WSDL 파일에 주석이 나타나지 않습니다.

나는 대답이 명확한 "그것이 의존한다"고 생각합니다.

문제는 당신이 구축하는 경우입니다 그리고 출판 당신의 계약, 당신은 그것에 묶여 있습니다. 이것은 변화가 더 어려워집니다. 불가능하지는 않지만 더 어렵습니다.

반면에 Schemata 등이 편한 경우 코드보다 계약을 엉망으로 만드는 것이 더 빠릅니다. 따라서 계약에 약간의 점진적인 변경을 수행 할 수 있습니다.

WSDL에서 코드 골격을 생성 할 도구도 없습니까? 나는 거의 긍정적입니다. 그렇다면 스키마를 "코드"항목으로 만들고 코드를 생성하는 것이 좋습니다.

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