第一个ServiceStack服务框架
最近刚接触ServiceStack,就尝试着写了第一个服务框架,难免出错,还望同道们多多指正。
关于ServiceStack相关的概念不在做详细的叙述,网上研究此领域的大神们比比皆是。
ServiceStack的官网地址为:
https://github.com/ServiceStack/ServiceStack
主要的步骤如下:
一、在VS中新建一个Window窗体程序。
在默认程序的AppConfig中进行端口的配置
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup> <appSettings>
<!--端口号-->
<add key="ServerPort" value=""/> </appSettings>
</configuration>
二、添加ServiceStack相关的引用库文件
三、添加APPHost.cs文件,在其中进行配置ServiceStack
public class AppHost:AppSelfHostBase
{
public AppHost(Assembly[] Assemblys):base("ZBDService", Assemblys)
{ }
//配置
public override void Configure(Container container)
{
Plugins.Add(new CorsFeature());
JsConfig.IncludeNullValues = true;
SetConfig(new HostConfig
{
DebugMode = true
});
}
}
四、在默认程序列表中的Program.cs文件中配置ServiceStack的监听。
static void Main(string[] args)
{
Assembly[] assembly =
{
Assembly.Load("ZBDServiceApp")
};
string port = ConfigurationManager.AppSettings["ServerPort"].ToString();
var listeningOn = args.Length == ? "http://*:" + port + "/" : args[];
var appHost = new AppHost(assembly)
.Init()
.Start(listeningOn);
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
五、新建cs文件用于存储请求路由,和返回值类型
//定义路由,用于请求
[Route("/ZBD/Test/{name}",verbs:"GET")] public class ZBD:IReturn<IList<string>>
{
public string name { get; set; }
}
六、新建cs文件,用于实现具体的操作,包括后期对数据库的操作等。
public class ZBDServer:Service
{
public List<string> Get(ZBD request)
{
List<string> list = new List<string>(); list.Add(request.name);
list.Add("第一个服务");
return list;
}
七、运行程序,启动服务,在浏览器中进行测试
以上只是最基本的配置,需要学习的还有很多。