.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
在开发前请保证以上的环境都已经安装好了docker
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 ,谢谢:)