说到提供数据服务给我们的一些应用,估计用的最多的也就是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. Replication的犄角旮旯(三)--聊聊@bitmap

    <Replication的犄角旮旯>系列导读 Replication的犄角旮旯(一)--变更订阅端表名的应用场景 Replication的犄角旮旯(二)--寻找订阅端丢失的记录 Repli ...

  2. SQL Server 事务日志传输

    概述 可以使用日志传送将事务日志不间断地从一个数据库(主数据库)发送到另一个数据库(辅助数据库).不间断地备份主数据库中的事务日志,然后将它们复制并还原到辅助数据库,这将使辅助数据库与主数据库基本保持 ...

  3. nginx小记

    上一次折腾nginx还是两年前的事情了.好多配置都忘记了. 捣腾了下阿里云,部署了一下,遇到几个小问题,温故并记录一下吧 :) 重新设置 nginx遇到问题:nginx: [error] invali ...

  4. dede在php7上空白

    最近想看一本小说,想采集回来看,结果发现除了dedecms支持php7.0,其他主流cms基本上都不支持php7.0 在本地win7上调试了一遍,没有问题,放到linux服务器上的时候,发现打开任何页 ...

  5. iOS-证书相关

    iOS证书相关问题   1.iOS应用真机调试(xcode5),developer证书申请以及真机调试 2.iOS应用发布流程,distribution证书申请以及应用发布到app store 流程 ...

  6. SSISDB3:Environments 和 Environment Variables

    Environment 是ETL执行时使用的Parameters的集合,可以为一个Project引用不同的Environment variables,从而改变ETL执行的属性. 查看Environme ...

  7. 【Win10应用开发】协议-下篇:自定义多个协议

    前面介绍了如何为应用程序自定义协议,于是有朋友会问,我希望为我的应用注册多个协议,不同的协议处理不同的事情,能吗?答案是能的. 方法主要在配置清单文件上,这里我给出一个例子,示例应用将注册两个协议,分 ...

  8. Linq 知识回顾

    开篇语 在说LINQ之前必须先说说几个重要的C#语言特性 与LINQ有关的语言特性 隐式类型 (1)源起 在隐式类型出现之前, 我们在声明一个变量的时候, 总是要为一个变量指定他的类型 甚至在fore ...

  9. ModelDataExchange - Import

    ModelDataExchange - Import eryar@163.com Abstract. The ModelDataExchange import utility enables the ...

  10. Python 模块学习:os模块

    一.os模块概述 Python os模块包含普遍的操作系统功能.如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的.(一语中的) 二.常用方法 1.os.name 输出字符串指示正在使用的平台 ...