自动生成客户端代码 - OpenRasta,Nancy和ServiceStack

时间:2015-06-19 09:36:40

标签: servicestack nancy openrasta

我查看了上述框架的文档,看看它们是否提供了自动生成客户端代码的工具,即模型类。有谁知道他们是否可以,或者您是否必须尝试使用​​svcutil执行此操作?如果是这样,有没有人有这方面的经验?

1 个答案:

答案 0 :(得分:3)

ServiceStack有许多不同的选项可用于启用强类型API以在客户端上使用ServiceStack服务:

1)在客户端

上共享服务器DTO

ServiceStack encourages logically separating your Services,以便在依赖和无impl项目中定义您的服务请求和响应DTO(即消息合同),通常名为{ProjectName}.ServiceModel。这个推荐的项目结构包含在ServiceStackVS VS.NET Project Templates的每一个中。

这种方法的好处是,您的客户能够重新使用服务器DTO dll(用于定义Web服务合同)与任何.NET Service Clients一起使用以启用端到端类型的API 没有任何代码生成

此方法还允许您首先按代码定义基于消息的DTO(即服务合同),即不存在任何实现问题,让您专注于服务应接受和返回的域值。一旦定义了DTO,客户端和服务器团队就可以并行地彼此独立地实现它们,因为客户端甚至可以在服务响应实现之前绑定它们。

所有ServiceStack's ServiceClients都实现了干净的接口(例如IServiceClient),这些接口允许客户端轻松模拟返回存根结果,直到实现服务器。

2) Add ServiceStack Reference

Add ServiceStack Reference提供了共享DTO dll的替代方案,可以为外部客户端提供更好的开发工作流程,而外部客户端可以从BaseUrl为远程ServiceStack服务生成(和更新)Typed API - 减少所需的负担和工作量使用ServiceStack服务,同时受益于客户母语强类型反馈。

添加ServiceStack参考还包括与大多数领先的IDE集成,客户可以轻松地添加对远程ServiceStack实例的引用,并直接从VS.NET,Xamarin Studio,XCode和Android Studio中更新DTO。对于这些受支持的语言:

支持的语言

3)SOAP和WSDL生成的代理

分享DTO或使用添加ServiceStack参考是holds a number of benefits over using SOAP, WSDL's and generated proxies的推荐方法,用于启用类型化的客户端API,鼓励今天在Web服务实现中使用complex and fragile combination of technologies

但是当需要它们时,ServiceStack还为您的服务启用follow the SOAP limitations的SOAP端点,为外部客户端提供生成WSDL生成的代理所需的WSDL和XSD。