说到提供数据服务给我们的一些应用,估计用的最多的也就是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. .NET面试题系列[13] - LINQ to Object

    .NET面试题系列目录 名言警句 "C# 3.0所有特性的提出都是更好地为LINQ服务的" - Learning Hard LINQ是Language Integrated Que ...

  2. UI控件(UITextField)

    @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; UITextField* textField1 = ...

  3. Java多线程7:死锁

    前言 死锁单独写一篇文章是因为这是一个很严重的.必须要引起重视的问题.这不是夸大死锁的风险,尽管锁被持有的时间通常很短,但是作为商业产品的应用程序每天可能要执行数十亿次获取锁->释放锁的操作,只 ...

  4. 剑指Offer面试题:10.数值的整数次方

    一.题目:数值的整数次方 题目:实现函数double Power(doublebase, int exponent),求base的exponent次方.不得使用库函数,同时不需要考虑大数问题. 在.N ...

  5. Scrum Guide - Scrum指南中文版

    现在公司在使用敏捷开发模式进行日常的开发和管理工作,所以我看了下Ken Schwaber的<Scrum Guide>这本小册子,原本是英文的,这里提供中文的,以供日后复习和参考. Scru ...

  6. TODO:Node.js pm2使用方法

    TODO:Node.js pm2使用方法 pm2 是一个带有负载均衡功能的Node应用的进程管理器. 当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着,0秒的重载, PM2是完 ...

  7. struts1二:基本环境搭建

    首先建立一个web项目 引入需要的jar包 建立包com.bjpowernode.struts创建LoginAction package com.bjpowernode.struts; import ...

  8. Android_安卓为按钮控件绑定事件的五种方式

    一.写在最前面 本次,来介绍一下安卓中为控件--Button绑定事件的五种方式. 二.具体的实现 第一种:直接绑定在Button控件上: 步骤1.在Button控件上设置android:onClick ...

  9. ClickOnce部署(4):下载多个安装包

    有时候,我们可能会一次性发布多个安装包,当然在网页上多加几个链接让用户逐个安装也是可取的.不过,也可以弄得更方便些,即用户先安装一个,作为一个"引导程序",然后通过这个程序去下载安 ...

  10. WPF 子窗体关闭,刷新父窗体

    父窗体代码 private void DGUserEdit() { if(DGUser.SelectedItem!=null) { DataRow dr = (DGUser.SelectedItem ...