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

说到提供数据服务给我们的一些应用,估计用的最多的也就是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也是正常的!

 

时间: 2024-08-07 20:54:43

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

Nancy之结合TinyFox调试备忘

最近把一个小项目的数据库换成MongoDB,同时用了MongoRepository 这个开源组件来对数据进行操作. 通过NuGet安装之后,它会自动在web.config文件生成一个连接字符串.但是却并不会配置TinyFox, 所以运行时会一直出现NullReference 以及不能加载Owin Adapter 后面经过排查是忘记更新TinyFox的配置(很久之前是配置好了的). 把自动生成的连接字符串更新到TinyFox.exe即可成功运行 更新之后,可以正确运行了!

数据型产品经理的前世今生

Nancy导读:互联网是个制造流行概念的行业,“数据产品”也不幸免.其实,数据产品的“实”早就存在,只是“名”是后面几年慢慢流行起来的. 我看到过很多讨论数据产品的文章,但大家基本没有统一的认识,对概念的理解也不太认同,所以这里想简单写写自己的观点,主要内容也是不会在其它网文看到的一家之谈.   1.什么是数据产品 要谈清楚数据产品,首先不可回避的“俗套问题”便是数据产品的定义认知.我的理解是:广义来看,数据产品是可以发挥数据价值去辅助用户更优的做决策(甚至 行动)的一种产品形式.它在用户的决策

Nancy之实现API

Nancy之实现API的功能 0x01.前言 现阶段,用来实现API的可能大部分用的是ASP.NET Web API或者是ASP.NET MVC,毕竟是微软官方出产的,用的人也多. 但是呢,NancyFx也是一个很不错的选择.毕竟人家的官方文档都是这样写的:framework for building HTTP based services. 本文主要是通过一个简单的场景和简单的实现来说明. 0x02.场景假设与分析 现在A公司与B公司有一些业务上的合作,B公司要得到一些关于A公司产品的信息 所

Nancy之实现API的功能

原文:Nancy之实现API的功能 0x01.前言 现阶段,用来实现API的可能大部分用的是ASP.NET Web API或者是ASP.NET MVC,毕竟是微软官方出产的,用的人也多. 但是呢,NancyFx也是一个很不错的选择.毕竟人家的官方文档都是这样写的:framework for building HTTP based services. 本文主要是通过一个简单的场景和简单的实现来说明. 0x02.场景假设与分析 现在A公司与B公司有一些业务上的合作,B公司要得到一些关于A公司产品的信

DNX使用Mono库运行iBoxDB与Nancy

在上一篇文章中介绍了使用 dnxcore5运行iBoxDB, 但如果使用了其它不支持dnxcore5的组件,会出现如下提示 /dnxcore/project.json(19,27): error NU1002: The dependency Nancy 1.4.3 does not support framework DNXCore,Version=v5.0. Nancy是一个实用的.NET Web框架,简单对它自带的服务器进行了一个请求测试,平均第秒可以处理2000个请求,也就是一天可以处理一

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

一.前言 在MVC中,区域(Area)和分部视图(PartialView)应该是我们用的十分频繁的两个东西 今天我们就在Nancy中,把这两个东西简单的用起来! 二.简单使用之区域 区域,无论是对开发过程还是代码管理都占据着一个重要的地位! 下面我们就来看看Nancy中的区域要如何用,其实,准确来说, Nancy中并没有明确提出区域这个概念,也只是我凭着与MVC的对照,自己添加的一个好理解的概念 下面就来看一下吧,这里用到了Nancy,Nancy.Hosting.Aspnet这些引用 这里是所有

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

Nancy简介 Nancy是一个轻量级的独立的框架,下面是官网的一些介绍: Nancy 是一个轻量级用于构建基于 HTTP 的 Web 服务,基于 .NET 和 Mono 平台,框架的目标是保持尽可能多的方式,并提供一个super-duper-happy-path所有交互. Nancy 设计用于处理 DELETE, GET, HEAD, OPTIONS, POST, PUT和 PATCH 等请求方法,并提供简单优雅的 DSL 以返回响应.让你有更多时间专注于你的代码和程序. 官方地址:http:

Nancy简介

Nancy简介 Nancy是一个轻量级的独立的框架,下面是官网的一些介绍: Nancy 是一个轻量级用于构建基于 HTTP 的 Web 服务,基于 .NET 和 Mono 平台,框架的目标是保持尽可能多的方式,并提供一个super-duper-happy-path所有交互. Nancy 设计用于处理 DELETE, GET, HEAD, OPTIONS, POST, PUT和 PATCH 等请求方法,并提供简单优雅的 DSL 以返回响应.让你有更多时间专注于你的代码和程序. 官方地址:http:

.NET轻量级MVC框架:Nancy入门教程(一)

当我们要接到一个新的项目的时候,我们第一时间想到的是用微软的MVC框架,但是你是否想过微软的MVC是不是有点笨重?我们这个项目用MVC是不是有点大材小用?有没有可以替代MVC的东西呢?看到这里也许你会反问我,微软的MVC到底什么地方不好了?这个暂且不说,我们先认识一下Nancy,来了解一下他和MVC的不同.  一.Nancy简介 什么是Nancy呢?如果你学习过Ruby的话,就会知道Ruby中有个框架叫做Sinatra,Nancy就是Sinatra的.Net版本.如果你感觉微软的MVC过于笨重.