原文: 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也是正常的!