我开发了一个WCF应用程序,它作为数据库和我的Web应用程序之间的中间层.现在我的客户端希望使用ServiceStack 将此WCF转移到基于REST的.
我在GitHub上环顾四周,并尝试构建一个演示.我使用NuGet创建了一个启动模板,因此它包含一个Hello&Todo示例.
如果您还没有这样做,请通过ServiceStack演示文稿创建REST服务.
1)如果您已经看过ServiceStack的Hello World示例,它会向您显示创建Web服务所需的唯一步骤是提供:
//1. A Request DTO
public class Hello : IReturn<HelloResponse> {
public string Name { get; set; }
}
//2. A Response DTO
public class HelloResponse {
public string Result { get; set; }
}
//3. The web service implementation that takes a Request DTO and returns a Response DTO
public class HelloService : Service
{
public object Any(Hello request)
{
return new HelloResponse { Result = "Hello, " + request.Name };
}
}
Run Code Online (Sandbox Code Playgroud)
上面的示例显示了创建Hello Web服务所需的所有代码.您应该能够从WCF方法重用大量现有类型和逻辑,并将其复制到Any()方法中.
2)ServiceStack的一个好处是您不需要添加ServiceReference,即您可以为所有Web服务重复使用相同的通用服务客户端和DTO.例如:
//Using JSON:
IServiceClient client = new JsonServiceClient("http://localhost/path/to/servicestack");
//Using XML:
IServiceClient client = new XmlServiceClient("http://localhost/path/to/servicestack");
var response = client.Send(new Hello { Name = "Arun" });
Console.WriteLine("Received: " + response.Result);
Run Code Online (Sandbox Code Playgroud)
在/ metadata页面上还有一个指向webservices WSDL的链接,您可以根据需要创建生成的服务客户端.然而,这不是推荐的方法,因为它只需要使用现有的DTO就需要更多的摩擦力.
3)ServiceStack Web服务已经是一个ASP.NET应用程序,即ServiceStack只是一组IHttpHandler,您可以通过向Web应用程序Web 添加Web.config映射来配置为在普通的ASP.NET或MVC Web应用程序内运行.配置.
基本上,您可以将ServiceStack Web服务视为普通的ASP.NET Web应用程序,实际上Hello World教程向您展示了如何通过创建空的ASP.NET应用程序来实现此目的.
您可能还有兴趣查看The Starter Templates示例项目,这些项目向您展示了配置ServiceStack以在各种不同的托管选项(即ASP.NET/Windows服务/控制台应用程序等)中运行所需的最低设置.
| 归档时间: |
|
| 查看次数: |
2585 次 |
| 最近记录: |