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

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

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

一、前提工作

新建一个空的web应用程序

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

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

二、编写我们的Startup.cs

 using Microsoft.Owin;
using Owin;
[assembly: OwinStartup(typeof(NancyAPIDemo.Startup))]
namespace NancyAPIDemo
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.UseNancy();
}
}
}

三、编写我们的Module

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

 using Nancy;
namespace NancyAPIDemo
{
public class HomeModule : NancyModule
{
private static User user = new User { UName = "catcher", UGender = "m" };
public HomeModule()
{
Get["/getdata"] = _ =>
{
return Response.AsJson(user);
};
}
}
public class User
{
public string UName { get; set; }
public string UGender { get; set; }
}
}

这里是演示,所以直接写死一条数据,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建的)

主要贴页面的代码

 @{
ViewBag.Title = "Index";
Layout = null;
}
<h1>这是访问数据服务的测试</h1>
<div class="col-md-12">
<label>name:</label>
<span id="uName"></span><br />
<label>gender:</label>
<span id="uGender"></span>
</div>
<script src="~/Scripts/jquery-1.8.2.min.js"></script>
<script type="text/javascript">
$(function () {
$.ajax({
url: 'http://192.168.1.2:1234/getdata',
dataType: 'jsonp',
success: function (json) {
$("#uName").text(json.uName);
$("#uGender").text(json.uGender);
}
});
})
</script>

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

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

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

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

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

 

Nancy之结合tinyfox给我们的应用提供简单的数据服务的更多相关文章

  1. 使用Nancy搭建简单的Http服务的示例demo

    刚刚接触Nancy没几天,暂时还不会使用Nancy来做web开发,只是使用Nancy实现了一个简单的Http服务的Demo程序,实现对Post和Get请求的处理. Demo的示例代码地址如下:http ...

  2. Nancy之结合TinyFox调试备忘

    最近把一个小项目的数据库换成MongoDB,同时用了MongoRepository 这个开源组件来对数据进行操作. 通过NuGet安装之后,它会自动在web.config文件生成一个连接字符串.但是却 ...

  3. Nancy之大杂烩

    Nancy关于Hosting的简单介绍 一. Nancy之基于Nancy.Hosting.Aspnet的小Demo 二.Nancy之基于Nancy.Hosting.Self的小Demo 三.Nancy ...

  4. Nancy之实现API的功能

    0x01.前言 现阶段,用来实现API的可能大部分用的是ASP.NET Web API或者是ASP.NET MVC,毕竟是微软官方出产的,用的人也多. 但是呢,NancyFx也是一个很不错的选择.毕竟 ...

  5. Nancy之实现API

    Nancy之实现API的功能 0x01.前言 现阶段,用来实现API的可能大部分用的是ASP.NET Web API或者是ASP.NET MVC,毕竟是微软官方出产的,用的人也多. 但是呢,Nancy ...

  6. 第二章 Rest框架 Nancy

    正如你看到的,Nancy有两个主要用途. 其中第一项是作为一种通用的基于 REST 框架,可替代 ASP.NET Web API 或其他Rest工具包. 默认情况下,Nancy提供一流的路由和内容协商 ...

  7. Nancy之区域和分部视图的使用

    一.前言 在MVC中,区域(Area)和分部视图(PartialView)应该是我们用的十分频繁的两个东西 今天我们就在Nancy中,把这两个东西简单的用起来!   二.简单使用之区域 区域,无论是对 ...

  8. 轻量级MVC框架:Nancy学习

    一.认识Nancy 今天听讲关于Nancy框架的培训,被Nancy的易用性所吸引.故晚上回来梳理了一下知识. 什么是Nancy呢?如标题所述,Nancy是一个轻量级的独立的框架: Nancy 是一个轻 ...

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

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

随机推荐

  1. AJXA!让体验更美好

    AJXA = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). AJAX 不是新的编程语言,而是一种使用现有标准的新方法. AJAX 是与服 ...

  2. XMPP iOS客户端实现一:服务器

    1.下载ejabberd,下载链接http://www.process-one.net/en/ejabberd/downloads/ 2.安装,使用默认配置即可,next.. 3.启动ejabberd ...

  3. HDFS 异常处理与恢复

    在前面的文章 <HDFS DataNode 设计实现解析>中我们对文件操作进行了描述,但并未展开讲述其中涉及的异常错误处理与恢复机制.本文将深入探讨 HDFS 文件操作涉及的错误处理与恢复 ...

  4. 使用 nvm 管理不同版本的 node 与 npm

    补充说明:Mac 下通过 brew install nvm 所安装的 nvm ,由于安装路径不同,无法正确启用.建议使用 brew uninstall nvm 卸载掉之后,通过本文的方案重新安装一次. ...

  5. HTTPS那些事(一)HTTPS原理(转载)

    原创地址:http://www.guokr.com/post/114121/   楔子 谣言粉碎机前些日子发布的<用公共WiFi上网会危害银行账户安全吗?>,文中介绍了在使用HTTPS进行 ...

  6. Apache Spark源码剖析

    Apache Spark源码剖析(全面系统介绍Spark源码,提供分析源码的实用技巧和合理的阅读顺序,充分了解Spark的设计思想和运行机理) 许鹏 著   ISBN 978-7-121-25420- ...

  7. css双飞翼布局

     双飞翼布局是一种比较灵活的布局,始于淘宝UED,玉伯提出的,他着重介绍的是双飞翼栅格布局. 三列布局为"双飞燕"布局,可以把三栏比作一只鸟,main部分相当是于鸟的身体,而lef ...

  8. CI Weekly #3 | 关于微服务、Docker 实践与 DevOps 指南

    CI Weekly 围绕『 软件工程效率提升』 进行一系列技术内容分享,包括国内外持续集成.持续交付,持续部署.自动化测试. DevOps 等实践教程.工具与资源,以及一些工程师文化相关的程序员 Ti ...

  9. WCF学习之旅——第一个WCF示例(二)

    第四步:通过自我寄宿的方式寄宿服务 WCF服务需要依存一个运行着的进程(宿主),服务寄宿就是为服务指定一个宿主的过程.WCF是一个基于消息的通信框架,采用基于终结点(Endpoint)的通信手段. 终 ...

  10. WPF入门教程系列十五——WPF中的数据绑定(一)

    使用Windows Presentation Foundation (WPF) 可以很方便的设计出强大的用户界面,同时 WPF提供了数据绑定功能.WPF的数据绑定跟Winform与ASP.NET中的数 ...