nancy南希入门


备注

关于:

Nancy是一个轻量级框架,用于在.Net中基于为Ruby存在的Sinatra框架构建基于HTTP的服务。它旨在允许处理几种不同类型的HTTP请求,并提供一种简单的方法来返回具有少量代码的响应。

其他资源:

版本

发布日期
南希1.4.3 2015年12月21日
南希1.4.2 2015年11月23日
南希1.4.1 2015年11月5日
南希1.4.0 2015年10月29日
南希1.3.0 2015年9月25日
南希1.2.0 2015年4月17日
南希1.1.0 2015年2月18日
南希1.0.0 2015年1月23日

创建一个简单的自托管Nancy应用程序

  1. 使用Nuget将Nancy和Nancy.Hosting.Self包安装到项目中。
  2. 实例化一个新的NancyHost对象并传入相关的URL
using( var host = new NancyHost( hostConfiguration, new Uri( "http://localhost:1234" ) ) )
{
    host.Start();
    Console.WriteLine( "Running on http://localhost:1234" );
    Console.ReadLine();
}

当您希望开始侦听http流量时,将此代码放在项目中。

  1. 在项目中添加一个继承自NancyModule的类并添加构造函数方法。
public class FooModule : NancyModule
{
    public FooModule()
    {
    }
}
 
  1. 在构造函数中定义路由:
...
public FooModule()
{
    Get["Bar"] = parameters => {
        return "You have reached the /bar route";
    }
}
 

在* nix系统上使用Dotnet核心v1.1,Kestrel和Visual Studio Code设置Nancyfx

Prerequiste步骤:

  1. 为您的平台获取dotnet核心:

    Dotnet核心

  2. 按照说明操作,确保dotnet核心正常工作
  3. 获取适用于您平台的Visual Studio代码:

    VS代码

  4. 启动Visual Studio代码(VS代码)并安装C#扩展然后重新加载

创建自托管的NancyFx项目:

  1. 使用正确的项目目录结构设置项目。

    打开Bash终端并输入:

    mkdir nancydotnetcore
    cd nancydotnetcore
    mkdir src 
    mkdir test
    touch global.json
    
  2. 打开global.json并输入以下代码:
    {
        "projects":["src", "test"]
    }
    
  3. 在Bash终端:
    cd src 
    mkdir NancyProject1
    dotnet new 
    

    在VS代码中打开文件夹NancyProject1

    您将收到一条警告:“'nancyproject1'中缺少构建和调试所需的资产。”

    点击“是”

    您还将看到:'project.json'中存在未解析的依赖项。请执行restore命令继续。

    点击“关闭”我们很快就会到达。

  4. 添加依赖项,打开“project.json”并使用以下内容覆盖它:
    {
        "version": "1.0.0-*",
        "buildOptions": {
            "debugType": "portable",
            "emitEntryPoint": true
        },
    
        "frameworks": {
            "netcoreapp1.1": {
                "dependencies": {
                    "Microsoft.AspNetCore.Hosting": "1.1.0",
                    "Microsoft.AspNetCore.Server.Kestrel": "1.1.0",
                    "Microsoft.AspNetCore.Owin": "1.1.0",
                    "Nancy": "2.0.0-barneyrubble",
                    "Microsoft.NETCore.App": {
                        "type": "platform",
                        "version": "1.1.0"
                    }
                }
            }
        }
    }
    

    VS代码将要求恢复点击“恢复”

  5. 在VSCode项目中创建文件夹“Modules”

    在Modules文件夹中添加名为“IndexModule.cs”的文件,然后复制并保存以下内容:

    namespace NancyProject1
    {
        using Nancy;
        public class IndexModule : NancyModule
        {
            public IndexModule()
            {
                Get("/", _ => "Hello dotnet core world!");
            }
        }
    }
    
  6. 在项目的根目录中,创建一个名为“Startup.cs”的文件,然后复制并粘贴以下内容:
    namespace NancyProject1
    {
        using Microsoft.AspNetCore.Builder;
        using Nancy.Owin;
    
        public class Startup
        {
            public void Configure(IApplicationBuilder app)
            {
                app.UseOwin(x => x.UseNancy());
            }
        }
    }
    
  7. 打开文件“Program.cs”并用以下内容覆盖内容并保存:

    namespace NancyProject1
    {
        using System.IO;
        using Microsoft.AspNetCore.Builder;
        using Microsoft.AspNetCore.Hosting;
    
        public class Program
        {
            public static void Main(string[] args)
            {
                var host = new WebHostBuilder()
                    .UseContentRoot(Directory.GetCurrentDirectory())
                    .UseKestrel()
                    .UseStartup<Startup>()
                    .Build();
    
                host.Run();
            }
        }
    }
     
  8. 完成!现在让我们运行它并查看输出。

    单击VS Code中的调试符号,然后单击运行按钮。它应该编译并启动项目。

    打开浏览器@ http:// localhost:5000

  9. 拍拍自己的背部,享受!