目录
ServiceStack 概念
ServiceStack Web Service 创建与调用简单示列
上篇文章介绍了ServiceStack是什么,本章进入主题,如何快速简单的搭建ServiceStack服务环境和调用。
ServiceStack服务搭建
服务的搭建有两种方法,我会一一介绍。
第一种方法如下:
1.创建网站项目
2.安装发布组件
packages.confing文件为您提供每一个ServiceStack dll 的版本和运行时信息。
定义是 ServiceStack <Ticket> 请求数据契约
using System; using System.Collections.Generic; using System.Linq; using System.Text; using ServiceStack; namespace Model { 创建票据 请求实体 TicketRequest : IReturn<TicketResponse> { public int TicketId { get; set; } public int TableNumber { get; set; } public int ServerId { get; set; } } public class TicketDeleteRequest { public int TicketId { get; set; } } }
定义ServiceStack <Ticket> 响应数据契约
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Model { 创建票据响应数据实体 TicketResponse { public int TicketId { get; set; } public int TableNumber { get; set; } public int ServerId { get; set; } public List<OrderResponse> Orders { get; set; } public DateTime Timestamp { get; set; } } 票据所属订单 OrderResponse { public int OrderId { get; set; } } }
定义ServiceStack 接口方法
using Model; using System.Collections.Generic; namespace Interface { public interface ITicketService { 方法请求模式和路由规则 后面再说 /// 请求票据列表 List<TicketResponse> Any(TicketRequest request); 删除指定票据 POST(TicketDeleteRequest deleteid); } }
实现ServiceStack 接口方法
using Interface; using Model; using System; using System.Collections.Generic; namespace Service { public class TicketService : ServiceStack.Service, ITicketService { 方法请求模式和路由规则 后面再说 /// 请求票据列表 List<TicketResponse> Any(TicketRequest request) { List<TicketResponse> result = new List<TicketResponse>(); List<OrderResponse> orderlist = new List<OrderResponse>(); orderlist.Add(new OrderResponse() { OrderId = 1 }); result.Add(new TicketResponse() { Orders = orderlist, ServerId = 1, TableNumber = 1, TicketId = 1, Timestamp = DateTime.Now }); result.Add(new TicketResponse() { Orders = orderlist, ServerId = 2, TableNumber = 2, TicketId = 2, Timestamp = DateTime.Now }); return result; } 删除指定票据 POST(TicketDeleteRequest deleteid) { return true; } } }
实现ServiceStack服务宿主
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Service.Host { public class TickServiceHost : ServiceStack.AppHostBase { TickServiceHost() : , typeof(Service.TicketService).Assembly) { } Configure(Funq.Container container) { // Register any dependencies your services use here. } } }
启动ServiceStack服务宿主