加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Code First vs WSDL Frist

发布时间:2020-12-17 02:52:57 所属栏目:安全 来源:网络整理
导读:如果要构建一个Web Services,CXF提供了两种构建方式一个是Code First,另一个WSDL First。 那什么是Code First,什么又是WSDL First呢? 大家知道,如果我们要将一个服务发布一个WebService,我们需要定义这个服务所支持的方法,以及调用这些方法所提供的参

如果要构建一个Web Services,CXF提供了两种构建方式一个是Code First,另一个WSDL First。
那什么是Code First,什么又是WSDL First呢?

大家知道,如果我们要将一个服务发布一个WebService,我们需要定义这个服务所支持的方法,以及调用这些方法所提供的参数并将其转化成为WSDL,供其它的客户端调用。Code First是第一代的WebService开发工具所提供的构建WebService的一种方式。以Java为例,我们可以通过Interface定义一组Web服务所提供的方法,Code First就是通过获取这个Interface的信息构建出Web Services 所需要的信息,并在这些信息的基础上生成WSDL。

而WSDL First就是通过WSDL文件,生成相关的Aritifacts,例如有相关的接口以及实现的代码框架等,这CORBA开发一样,先使用IDL描述我们的CORBA服务,通过IDL2XXX生成相关的接口和实现框架(屏蔽了网络传输中Marshal和Unmarshal的操作)。

这两种构建Web Services各有特点,适合在不同的场景。

接触过WSDL的朋友应该都有这样的感觉,WSDL虽然是用XML来进行描述的,但是如果让你在不借助任何工具的情况下写一个正确的WSDL,或者是改正一个错误的WSDL是很难的。Code First可以说是为我们提供了一个不错的选择。

但是Web Services的Best Practies并不推荐Code First这一Web Services的构建方式。原因是什么呢?

这是因为我们在使用Code First构建方式时很少考虑到Web Services之间的交互是以文档方式进行(这样可以大大提高Web Services的互交互性),如果是使用Code First来构建WSDL信息,在描述描述交互信息的XML Schema都是以我们的Code中定义的类型信息来生成的,这样就可能会暴露一些比较细粒度的信息。同时大家知道不同的语言(C++,Java, C#,PHP)对XML Schema映射是各不相同的,如果我们Code中定义的类型很特殊,就可能产生出一个不能互操作的现象。

所以Best Practies建议你在创建Web Services从交互的消息Schema入手,构建一个中间层来提供一个比较粗粒度的描述,这样可以比较好的解决Web Services的互交互问题。?

转自:http://willem.bokeland.com/blog/794/post/trackbacks/108854

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读