这是Web服务的更好的方法 - 先合同或合同持续多久?
-
11-09-2019 - |
题
这是开发Web服务的更好的方法;契约优先的或合同持续多久?点击 什么各自的优点和缺点?
里面做你有经验吗?
修改强> 这个问题是关于网络服务的实现(读:SOAP) 的问题是,是否实现类应编码的第一,并从该(合同最后)或WSDL和XSD模式生成的WSDL和XSD模式写入第一和生成的实现类(合同第一)
解决方案
契约优先是普遍接受的“最佳实践”。
这会让你非常清楚有什么需要的,什么是预期的服务的生产者和消费者双方。 > XML类型 - 当你开始尝试转换Java类型,这显得尤为重要。你还可以重复使用在不同的网络服务模式。
其他提示
我使用这两种方法。我的建议是使用合同第一强>模式,但<强>码第一强> WSDL。
编写WSDL文件有很多怪异的细微差别等绑定,港口和这样的。我宁愿用这个工具,而不是由手工完成。有工具来帮助做到这一点,但他们都不是比
简单@WebService public ...
至少,你可以验证部署。
有关的模式,我建议的合同第一因为XML Schema语言远远比你可以在Java描述更丰富。一个例子,我通常给是表示XML模式可以限制一个字符串的大小和应用正则表达式模式。这样做,在Java和注释看起来有点混乱。
在做模式作为合同的另一个优点首先是工具的存在模式文件转换为HTML文档。
在XJC工具可以生成必要的类文件。不过,我只想建议这样做,在启动。
在结束时,你应该采取的生成的WSDL文件以及与该代替工作。这样,你可以使用的wsimport并验证从WSDL来架构整个事情是有效的。
您可以通过使用您的@WebService实施wsdlLocation属性和应用程序服务器将修复体的结合数据为您当用户从服务器请求WSDL与WSDL文件部署,但你仍然保留您的注释。否则,你的注释将不会出现在请求WSDL文件。
我怀疑的答案是一个明确的“这取决于”。
问题是,如果你建立的和发布的你的合同,你被它约束。这使得改变更难。不是不可能的,但更难。
在另一方面,它是更快地乱用合同不是与代码,如果你熟悉的图式等,所以你可以在合同中增加一些变化。
是不是还有会从WSDL中生成代码框架的工具?我几乎可以肯定有。如果是这样,那你最好让图式的“密码”项,并从它生成代码。