概述
Nancy 开发一个依赖控制台程序的api服务
首先了解下:
-
Nancy是一个轻量级用于构建基于 HTTP 的 Web 服务,基于 .NET 和 Mono
-
平台,框架的目标是保持尽可能多的方式,并提供一个super-duper-happy-path所有交互。 Nancy 设计用于处理
-
DELETE, GET, HEAD, OPTIONS, POST, PUT 和 PATCH 等请求方法,并提供简单优雅的 DSL
以返回响应。 Nancy和Asp.net MVC原理相似,但有自己的一套路由机制,在使用上更加易用,可以用Nancy快速开发一些网站。 -
Nancy并不依赖任何现有的框架,所以他可以运行在任何平台上面。
这里的话,个人是比较喜欢 Nancy并不依赖任何现有的框架 这一个特点,尤其是提供一些接口的时候非常方便
Nancy官网地址:http://nancyfx.org/
货这从这里下载相关引用
链接: https://pan.baidu.com/s/1Dw4E2RoUVJOq4GPT_gmFoQ&shfl=shareset
提取码: 8stv
废话不多说我,我这里使用 控制台程序作为宿主写一个 简单的 api 服务
//添加两个引用之后,这里是主程序
using Nancy.Hosting.Self;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Study
{
class Program
{
static void Main(string[] args)
{
try
{
HostConfiguration configuration = new HostConfiguration();
configuration.UrlReservations = new UrlReservations()
{
CreateAutomatically = true,
User = "Everyone"
};
using (var host = new NancyHost(configuration, new Uri("http://localhost:8082")))
{
host.Start();
Console.WriteLine("Running on http://localhost:8082");
Console.ReadLine();
}
}
catch (Exception ex)
{
Console.WriteLine("站点启动失败:" + ex.Message);
}
Console.ReadKey();
}
}
}
在 继承自 NancyModule 的类中写相关 get,post ,put 的 请求方法
using System;
using System.IO;
using System.Collections.Generic;
using Nancy;
using Nancy.ModelBinding;
public class SampleModule : NancyModule {
public SampleModule () {
Get ("/", _ => "Hello World!"); // 单斜杆位根节点,这里和mvc 中的 路由是一样的
Get("/greet/{name}", x =>
{
Console.WriteLine(string.Format("调用了{1}方法,{0}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), x.name));
return "Hello " + x.name;
});
Get("/GetText", x =>
{
Console.WriteLine(string.Format("调用了show方法,{0}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")));
return "你好";
});
Get("/GetJsonOBJ", x =>
{
return Response.AsJson(new { name = "张三" });
});
Get("/GetMyText", x =>
{
return Response.AsText("我是文本", System.Text.Encoding.UTF8);
});
Get("/GetRequsetInfo", x =>
{
Console.WriteLine(" Request.Query --> "+ Request.Query);
Console.WriteLine(" Request.Path --> " + Request.Path);
Console.WriteLine(" Request.ProtocolVersion --> " + Request.ProtocolVersion);
Console.WriteLine(" Request.Session --> " + Request.Session.ToString());
Console.WriteLine(" Request.UserHostAddress --> " + Request.UserHostAddress );
Console.WriteLine(" Request.Method --> " + Request.Method);
return Response.AsText("GetRequsetInfo", System.Text.Encoding.UTF8);
});
}
}
最后上一个效果图
服务程序
非常的轻便,使用很方便!
最后
以上就是落后柚子为你收集整理的Nancy (一)的全部内容,希望文章能够帮你解决Nancy (一)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复