我是靠谱客的博主 落后柚子,最近开发中收集的这篇文章主要介绍Nancy (一),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Nancy 开发一个依赖控制台程序的api服务

首先了解下:

  1. Nancy是一个轻量级用于构建基于 HTTP 的 Web 服务,基于 .NET 和 Mono

  2. 平台,框架的目标是保持尽可能多的方式,并提供一个super-duper-happy-path所有交互。 Nancy 设计用于处理

  3. DELETE, GET, HEAD, OPTIONS, POST, PUT 和 PATCH 等请求方法,并提供简单优雅的 DSL
    以返回响应。 Nancy和Asp.net MVC原理相似,但有自己的一套路由机制,在使用上更加易用,可以用Nancy快速开发一些网站。

  4. 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 (一)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部