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

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

  代码已经上传到git上,包含源代码和docker打包脚本,大家有兴趣可以自行研究

https://github.com/BruceDone/webapi

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

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

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

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

  2.    执行完后将初使化一些必要的文件 ,打开package.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文件

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 文件

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; }
}
}

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

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 ?: ✗| → curl http://127.0.0.1:5000/person/bruce
{"name":"bruce"}

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

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

如果你觉得对你有帮助,请不要吝啬你的star ,谢谢:)

最新文章

  1. Nginx服务器之Nginx与tomcat结合访问jsp
  2. EF6 在 SQLite中使用备忘
  3. CLR via C#(13)-浅谈事件
  4. zend 快捷键
  5. GUI 快捷键的实现思路
  6. android 输出.txt 文本换行问题
  7. [AngularJS] Accessing Data in HTML -- controllerAs, using promises
  8. 跨平台网络库(采用C++ 11)
  9. 第二章 使用JavaScript
  10. window下的php安装redis扩展
  11. 百度编辑器不能插入html标签解决方法
  12. C#方法中参数ref和out的解析
  13. 正则替换replace中$1的用法以及常用正则
  14. Linux &amp; Windows 环境下 RabbitMQ 安装与基本配置
  15. biaffineparser
  16. wamp解决ajax跨域问题
  17. Lambda 表达式有何用处?如何使用?
  18. 《linux就该这么学》第九节课:第七章,RAID阵列和LVM逻辑卷技术
  19. 关于 Spring AOP (AspectJ) 该知晓的一切
  20. 【COGS1752】 BOI2007—摩基亚Mokia

热门文章

  1. 看看Maple T.A.的详细作用
  2. 基于 Jenkins 快速搭建持续集成环境
  3. 分分钟用上C#中的委托和事件
  4. Key/Value之王Memcached初探:三、Memcached解决Session的分布式存储场景的应用
  5. 备忘录:hadoop技术一点积累
  6. 搭建域服务器和DNS
  7. 谁占了我的端口 for Windows
  8. 【玩转单片机系列001】 08接口双色LED显示屏驱动方式探索
  9. java中对final关键字的理解以及使用场景
  10. jQuery Colorbox弹窗插件使用教程小结、属性设置详解