ServiceStack简单服务发布

原创
03/30 17:04
阅读数 0

ServiceStack是目前使用的最舒服的.net服务开发类库,开发简单,速度也相当快,而且还可以进行跨平台,集成多种数据库的访问。

ServiceStack提供基于web可发布在iis的服务和单独的应用程序式运行服务,两种方式都比较简单。

下边举例一个简单的Rest服务开发,是以单独的应用程序运行:

//因服务一般要求的性能都比较高,所以单独程序是要基于console应用程序为开始,下边是一个最简单的apphost的初始化,最重要是要指定监听的url地址

        static void Main(string[] args)

        { 

            ServiceStackHost appHost;

            appHost = new AppHost()

                .Init()

                .Start("http://localhost:7771/");

            Console.WriteLine("指定服务已启动,监听端口为xxxx,请不要关闭窗

              口!");

            Console.ReadLine();

        }

    //apphost的实现,要继承servicestack的AppHostHttpListenerBase

 public class AppHost : AppHostHttpListenerBase

    {

       //配置rest接口所存在的编译集合

        public AppHost() : base("ServiceBaseST", typeof(AppHost).Assembly) { }

      //apphost中的配置,主要是配置数据库连接等,在此处配置完成后,rest的服务就都可进行使用

        public override void Configure(Container container)

        { 

         //初始化数据库连接,ormlite也能够支持多数据源连接

            container.Register<IDbConnectionFactory>(c => new OrmLiteConnectionFactory("连接字符串", PostgreSqlDialect.Provider));

        }

    }


 //下边是一个简单的helloworldservice,要继承Service接口,同时要配置服务的

//路由,服务中的方法为Get,Post或者Any,根据路由中的类名进行实现

public class HelloWorldService : Service

    { 

        public Object Get(Hello hello)

        {

            string _restStr = string.Format("hello {0}!", hello.name);

            double[,] a2 = new double[,] { { 1, 2, 3 }, { 4, 5, 6 } };

            return new HelloWorldModel() { name = _restStr, userid = "test", testDoule =a2 };

        } 

    } 

   //服务的路由配置

    [Route("/hello/{name}", "GET")]

    public class Hello : IReturn<HelloWorldModel>

    {

        public string name { get; set; }

    }

   //ServiceStack的服务是以model为基础的,所以一般都定义model进行返回,

  //在客户端使用时,url后边加上format=json或者format=xml,就会返回相应格

//式的数据

  public class HelloWorldModel

    {

        public string userid { get; set; }

        public string name { get; set; } 

        public double[,] testDoule { get; set; }

    }

//客户端访问的url:http://localhost:7771//hello/name参数?format=json或者format=xml

 




本文分享自微信公众号 - 技术几句杂谈(tecsimplepoint)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部