[Nancy On .Net Core Docker] 轻量级的web框架

    .net core如今已经有了大的发展,虽然笔者如今已经从事python开发,可是一直在关注.net的发展,在逛博客园的时候,发现有你们都会提到Nancy这个框架,在简单的使用以后,发现居然是如此的简单而优雅python

public class SampleModule : Nancy.NancyModule
{
    public SampleModule()
    {
        Get["/"] = _ => "Hello World!";
    }
}

  代码已经上传到git上,包含源代码和docker打包脚本,你们有兴趣能够自行研究git

      https://github.com/BruceDone/webapigithub

 

      这和python里面的flask 相似,都是简单好用。今天咱们来作一个简单好用的.net core 版的nancy 应用,而后将程序打包到docker 并发布和使用。web

  •  开发环境:Marc Pro
  •  IDE: vscode
  • .Net Core 
  • Docker

     在开发前请保证以上的环境都已经安装好了docker

  1.    建立文件夹webapi 执行命令             
dotnet new

  2.    执行完后将初使化一些必要的文件 ,打开package.json,将以下内容复制进去json

   

{
  "version": "1.0.0-*",
  "buildOptions": {
    "debugType": "portable",
    "emitEntryPoint": true
  },
  "dependencies": {
    "Microsoft.NETCore.App": {
      "version": "1.0.0",
      "type": "platform"
    },
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
    "Microsoft.AspNetCore.Owin": "1.0.0",
    "Nancy": "2.0.0-barneyrubble"
  },
  "commands": {
    "web": "Microsoft.AspNet.Server.Kestrel"
  },
  "frameworks": {
    "netcoreapp1.0": {}
  }
}

    3.    OK.保存的时候vscode 会自动导入相关的dll文件,引入成功后咱们先建立StartUp.cs文件 flask

using Microsoft.AspNetCore.Builder;
using Nancy.Owin;



namespace NancyApplication
{
    public class Startup
    {
        public void Configure(IApplicationBuilder app)
        {
            app.UseOwin(x => x.UseNancy());
        }
    }
}

  4.    保存后建立HomeModel.cs 文件api

using Nancy;
namespace NancyApplication
{
    public class HomeModule : NancyModule
    {
        public HomeModule()
        {
            Get("/", args => "Hello World, it's Nancy on .NET Core");
        }
    }


    public class PageModule : NancyModule
    {
        public PageModule()
        {
            Get("/person/{name}", args => new Person() { Name = args.name });
        }
    }


    public class Person
    {
        public string Name { get; set; }
    }
}

 

   路由与返回值都已经写好,我这里就不解释相关的代码了,有兴趣的能够自行深刻了解bash

 

  4.    编辑Program.cs文件并发

using System.IO;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
 

namespace NancyApplication
{
    public class Program
    {
        public static void Main(string[] args)
        {
            var host = new WebHostBuilder()
                .UseContentRoot(Directory.GetCurrentDirectory())
                .UseKestrel()
                .UseUrls("http://*:5000")
                .UseStartup<Startup>()
                .Build();
 
            host.Run();
        }
    }
}

  

  5.    OK,必要的文件都已经准备好了,而后运行 dotnet run ,访问http://127.0.0.1:5000 就能够看到结果,    

     

 6.使用Docker来部署程序

 

 

访问咱们的api地址:

± |master ?:1 ✗| → curl http://127.0.0.1:5000/person/bruce
{"name":"bruce"}

 

 

  程序和代码我都已经打包到git 上了,里面有相关的说明 ,程序很方便的打包成了docker ,这样就能够很轻松的集群或者部署。

 

  git地址:https://github.com/BruceDone/webapi

 

  若是你以为对你有帮助,请不要吝啬你的star ,谢谢:)

相关文章
相关标签/搜索