说到提供数据服务给我们的一些应用,估计用的最多的也就是json和xml这两种数据格式

实现的方法也是多种多样,web api,mvc的jsonresult和contentresult...等等

本文是结合Nancy、TInyFox、Owin等来实现的

一、前提工作

新建一个空的web应用程序

添加相应的程序集,配置本地调试的TinyFox等等

具体参见 Nancy之基于Nancy.Owin的小Demo

二、编写我们的Startup.cs

 1 using Microsoft.Owin;
 2 using Owin;
 3 [assembly: OwinStartup(typeof(NancyAPIDemo.Startup))]
 4 namespace NancyAPIDemo
 5 {
 6     public class Startup
 7     {
 8         public void Configuration(IAppBuilder app)
 9         {
10             app.UseNancy();
11         }
12     }
13 }

三、编写我们的Module

随便起个名字就好,具体如下

 1 using Nancy;
 2 namespace NancyAPIDemo
 3 {
 4     public class HomeModule : NancyModule
 5     {
 6         private static User user = new User { UName = "catcher", UGender = "m" };
 7         public HomeModule()
 8         {
 9             Get["/getdata"] = _ =>
10             {
11                 return Response.AsJson(user);
12             };
13         }
14     }
15     public class User
16     {
17         public string  UName { get; set; }
18         public string UGender { get; set; }
19     }
20 }  

这里是演示,所以直接写死一条数据,User类也是直接放在。。

这里是返回json数据的,如果要返回xml可以用Response.AsXml

四、搬东西(Adapter和SiteRootPath)

TinyFox里面的Demo有,就不贴上来了

下面是项目截图

五、本地测试

在放到centos之前,还是要试试正常与否!

我配置的端口是12345

测试通过

六、部署到centos中

把刚才的项目发布,将发布的文件传到centos中

然后就是发挥TinyFox的作用了

./fox.sh -root /var/www/NancyAPIDemo -p 1234

好了,数据服务OK了。

下面就建个程序来访问试试

七、建立访问程序

用的是MVC4(VS2013建的)

主要贴页面的代码

 1 @{
 2     ViewBag.Title = "Index";
 3     Layout = null;
 4 }
 5 <h1>这是访问数据服务的测试</h1>
 6 <div class="col-md-12">
 7     <label>name:</label>
 8     <span id="uName"></span><br />
 9     <label>gender:</label>
10     <span id="uGender"></span>
11 </div>
12 <script src="~/Scripts/jquery-1.8.2.min.js"></script>
13 <script type="text/javascript">
14     $(function () {
15         $.ajax({
16             url: 'http://192.168.1.2:1234/getdata',
17             dataType: 'jsonp',
18             success: function (json) {
19                 $("#uName").text(json.uName);
20                 $("#uGender").text(json.uGender);
21             }
22         });
23     })
24 </script>  

八、运行我们发布过后的访问程序

是不是也很简单很轻松呢!!

注:最开始我用的是vs2015 update2建的mvc项目,不过发布后一直是同一个错误提示

暂时还没有找到解决方法,之前没用update2貌似是正常的。

所以就换了2013建了个项目,在2015,不选高版本的.net framework也是正常的!

 

转载于:https://www.cnblogs.com/catcher1994/p/5371429.html

Nancy之结合tinyfox给我们的应用提供简单的数据服务相关推荐

  1. Nancy之结合TinyFox调试备忘

    原文:Nancy之结合TinyFox调试备忘 最近把一个小项目的数据库换成MongoDB,同时用了MongoRepository 这个开源组件来对数据进行操作. 通过NuGet安装之后,它会自动在we ...

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

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

  3. 2019/08/09 zookeeper基础概念(01)

    **zookeeper主要是对分布式系统提供服务的,ES集群,分布式文件系统,mysql主从复制,主要不是工作同一节点的都称为分布式系统 分布式系统:是一个硬件或软件组件分布在网络中的不同的计算机之上 ...

  4. 基于.net6.0在wpf桌面应用中发布webApi服务示例

    1.前言 不想依赖IIS,想让webApi服务寄宿在winform或wpf桌面应用程序中,如何做?在.netframework时代,可以使用构建http应用的Nancy组件.而.netcore之后,可 ...

  5. Nancy之实现API的功能

    https://www.cnblogs.com/lonelyxmas/p/9068167.html 0x01.前言 现阶段,用来实现API的可能大部分用的是ASP.NET Web API或者是ASP. ...

  6. Nancy 寄宿IIS

    一:简介 Nancy是一个轻量级的独立的框架,下面是官网的一些介绍: Nancy 是一个轻量级用于构建基于 HTTP 的 Web 服务,基于 .NET 和 Mono 平台,框架的目标是保持尽可能多的方 ...

  7. ASP.NET Core开发-使用Nancy框架

    Nancy简介 Nancy是一个轻量级的独立的框架,下面是官网的一些介绍: Nancy 是一个轻量级用于构建基于 HTTP 的 Web 服务,基于 .NET 和 Mono 平台,框架的目标是保持尽可能 ...

  8. asp.net nancy_如何在ASP.Net Core中使用Nancy

    asp.net nancy Nancy是用于构建基于HTTP的服务的轻量级框架. Nancy更喜欢约定而不是配置,并提供对GET,HEAD,POST,PUT,DELETE和PATCH操作的支持. Na ...

  9. .NET轻量级MVC框架:Nancy入门教程(二)——Nancy和MVC的简单对比

    在上一篇的.NET轻量级MVC框架:Nancy入门教程(一)--初识Nancy中,简单介绍了Nancy,并写了一个Hello,world.看到大家的评论,都在问Nancy的优势在哪里?和微软的MVC比 ...

最新文章

  1. 11个让你吃惊的Linux终端命令
  2. Android组件化打造知乎日报系列(一)—— 项目架构搭建
  3. 自动化测试报告(ReportNG)手把手教你
  4. 面试官问:你讲讲分布式事务问题的几种方案?
  5. golang错误处理机制(异常处理)
  6. C#中oracle数据库的连接方法
  7. linux程序流量平滑,Linux下按程序查实时流量 network traffic(示例代码)
  8. 重磅签约!成都睿铂与成都航院共建数据处理联合实验室
  9. 服务器android打包,Android rom解包打包工具
  10. 5817. 【NOIP提高A组模拟2018.8.15】 抄代码
  11. Material Design控件使用
  12. css中用于设置首行文本缩进的属性是,css中设置段落缩进的属性是什么
  13. python中symbol_理解和使用ES6中的Symbol
  14. Debug调试工具使用
  15. dw如何制作图片自动切换效果_如何在DREAMWEAVER中做出图片切换效果?
  16. Python LeetCode 数组中的最长山脉
  17. 如何进行邮件营销,邮件营销群发是否有效?
  18. 针对3-Des的Merkle Hellman攻击
  19. 为什么在wps中调整了0.5倍行距,某一页的行数不会发生变化?
  20. 云计算机的一大特征是什么,云计算最大的特征是什么?

热门文章

  1. 浮点数精度问题透析:小数计算不准确+浮点数精度丢失根源
  2. Thrift在Windows及Linux平台下的安装和使用示例
  3. 【Alpha】开发日志Day4-0715
  4. MySQL参数调优[转载]
  5. 移动互联网漫谈(4)-移动通信网络
  6. 廖雪峰Java11多线程编程-3高级concurrent包-4Concurrent集合
  7. Eclipse 中 SDK无法更新---解决方法
  8. 【转】简述configure、pkg-config、pkg_config_path三者的关系
  9. qt creator报错处理积累
  10. 数据分析基础教程Numpy指南笔记