Asp.net core Kestrel的超迷你http服务器,能实现哪些功能?

摘要:AServer是基于ASP.NET Core Kestrel封装的一个超迷你http服务器。它可以集成进你的Core程序里,用来快速的响应Http请求,而不需要集成整个ASP.NET Core MVC 框架。 一:什么是ASever? AS
AServer是基于ASP.NET Core Kestrel封装的一个超迷你http服务器。它可以集成进你的Core程序里,用来快速的响应Http请求,而不需要集成整个ASP.NET Core MVC 框架。 一:什么是ASever?   AServer就像它的名字一样,Just a server,它的功能非常简单,它唯一的功能就是用来对Http请求做出响应。以前我们开发一个.NET程序,比如控制台程序,Windows服务等,如果需要对外提供接口,我们通常会在程序里集成WCF,使用WCF对外提供RPC接口。但是现在是.NET Core的时代,我们已经没有办法选择WCF了。而且这些需求往往很简单,只是想要对外提供几个接口,查询一些数据,或者触发一些功能,如果我们集成整个ASP.NET Core MVC框架又觉得是杀鸡用牛刀的感觉。这个时候你或许可以选择AServer。AServer很简单,它仅仅是一个dll,这或许正是你想要的。 github地址:https://github.com/kklldog/AServer欢迎star。 二:使用AServer   如何使用AServer呢,非常简单,让我们看几个示例代码就明白了。假设我们现在有个跑定时任务的控制台程序,这个程序需要对外提供3个Http接口:   1.查询所有任务   2.新增一个任务   3.删除一个任务   下面演示如何使用AServer来实现这3个接口。   1.新建一个Core的控制台程序      2.从nuget安装AServer      3.实例化一个Server   直接new一个Server对象,它默认会监听本地5000端口。 static void Main(string[] args) { var server = new Agile.AServer.Server(); }   4.实现查询所有任务接口   该接口的请求地址为/api/tasks,请求方法为GET,返回任务列表数组。 server.AddHandler(new HttpHandler() { Method = "GET", Path = "/api/tasks", Handler = (req, resp) => { return resp.Write("['Task1','Task2','Task3']"); } });   5.实现新增任务接口   该接口的请求地址为/api/tasks,请求方法为POST,如果新增成功则返回文本"ok"。 //新增任务 server.AddHandler(new HttpHandler() { Method = "POST", Path = "/api/tasks", Handler = (req, resp) => { var task = req.BodyContent; Console.WriteLine(task); return resp.Write("ok"); } });   6.实现删除任务接口   该接口的请求地址为/api/tasks/:taskId,请求方法为DELETE,如果删除成功则返回文本"ok"。
阅读全文