代码之家  ›  专栏  ›  技术社区  ›  Martin OConnor

哪种是更好的web服务方法——先签订合同还是后签订合同?

  •  13
  • Martin OConnor  · 技术社区  · 17 年前


    每种方法的优缺点是什么?

    编辑 这个问题是关于web服务的实现(阅读:SOAP) 问题是,是应该首先对实现类进行编码,然后从中生成WSDL和XSD模式(最后),还是应该首先编写WSDL和XSD架构,然后生成实现类(首先)

    3 回复  |  直到 17 年前
        1
  •  8
  •   Nathan    17 年前

    合同优先是公认的“最佳实践”

    它让你非常清楚地了解服务的生产者和消费者,确切地知道需要什么和期望什么。当您开始尝试转换java类型时,这一点变得尤为重要。>xml类型。您还可以在不同的web服务中重用模式。

        2
  •  6
  •   Archimedes Trajano    16 年前

    契约优先 代码优先 WSDL。

    @WebService
    public ...

    对于模式,我建议 契约优先 因为XML模式语言比Java中描述的要丰富得多。我通常举的一个例子是,XML Schema可以限制字符串的大小并应用正则表达式模式。在Java和注释中这样做看起来有点混乱。

    首先将模式作为契约的另一个优点是,有工具可以将模式文件转换为HTML文档。

    XJC工具可以生成必要的类文件。但是,我只建议在开始时这样做。

    最后,您应该使用生成的WSDL文件并使用它。这样,您就可以使用wsimport并验证从WSDL到Schema的整个过程都是有效的。

    您可以通过在@WebService实现中使用wsdlLocation属性来部署WSDL文件,当用户从服务器请求WSDL时,应用程序服务器将为您修复绑定数据,但您仍保留注释。否则,您的注释将不会出现在请求的WSDL文件上。

        3
  •  0
  •   Charlie Martin    17 年前

    我怀疑答案是肯定的“视情况而定”

    问题是,如果你建造

    另一方面,如果你对模式等很熟悉,那么修改合约比修改代码更快。所以你可以在合同中做一些增量更改。

    难道没有工具可以从WSDL生成代码骨架吗?我几乎肯定有。如果是这样,您最好将模式设置为“代码”项,并从中生成代码。

    推荐文章