天天看點

Nancy之結合tinyfox給我們的應用提供簡單的資料服務

原文: 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有,就不貼上來了

下面是項目截圖

Nancy之結合tinyfox給我們的應用提供簡單的資料服務

五、本地測試

在放到centos之前,還是要試試正常與否!

我配置的端口是12345

Nancy之結合tinyfox給我們的應用提供簡單的資料服務

測試通過

六、部署到centos中

把剛才的項目釋出,将釋出的檔案傳到centos中

然後就是發揮TinyFox的作用了

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

Nancy之結合tinyfox給我們的應用提供簡單的資料服務

好了,資料服務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>        

八、運作我們釋出過後的通路程式

Nancy之結合tinyfox給我們的應用提供簡單的資料服務

是不是也很簡單很輕松呢!!

注:最開始我用的是vs2015 update2建的mvc項目,不過釋出後一直是同一個錯誤提示

Nancy之結合tinyfox給我們的應用提供簡單的資料服務

暫時還沒有找到解決方法,之前沒用update2貌似是正常的。

是以就換了2013建了個項目,在2015,不選高版本的.net framework也是正常的!