2011-06-09 38 views
2

我知道這個問題有點含糊,但我不確定如何解釋它。爲Restful Web Service構建JSON配置的正確方法

我正在構建一個應用程序,它將與ASP.NET MVC WebService進行通信。

不是將所有寧靜的URL都放在應用程序的所有位置,而是想設置一個包含WebService信息的配置文件。以下是我到目前爲止。

var config = { 
    WebService: { 
     Url: 'http://webservice.myapp.com/', 
     Vimeo: { 
      Read: 'Vimeo/Read' 
     }, 
     Contact: { 
      Communicate: 'Contact/Communicate', 
      Contact:'Contact/Contact' 
     } 
    } 
}; 

雖然這個工作,當我設置我的JSONP請求,它看起來有點有趣。

$.ajax(config.WebService.Url + config.WebService.Vimeo.Read, { 
    crossDomain: true, 
    dataType: "jsonp", 
    success: function (data) { 
     $.each(data, function (i, item) { 
      videosToShow = data; 
     }); 
    } 
}); 

有沒有更好的方法來解決這個問題?

+0

我不認爲這看起來很有趣......你有沒有理由把URL分成兩部分? – Fosco 2011-06-09 19:39:38

+0

好吧,因爲我將使用數十種服務,並且我不想將RESTful URI的域部分反覆放入配置中。 – 2011-06-09 19:42:17

+0

然後我認爲你做得很好。 – Fosco 2011-06-09 19:43:18

回答

0

我有點決定走不同的方向。

我已經建立了一個名爲WebService(controller, action)

一息尚存,我提交如下

$.ajax(WebService("myController", "myAction"), { 
    crossDomain: true, 
    dataType: "jsonp", 
    success: function (data) { 
     $.each(data, function (i, item) { 
      // do stuff 
     }); 
    } 
}); 

作品如飛方法。

1

jQuery ajax對象是xmlhttp的一個很好的通用包裝器,但是因爲您正在構建額外的抽象層次,爲什麼不將$ .ajax包裝到您自己的對象中,該對象接受配置類型並處理ajax以及可能會發生的任何錯誤優雅地結果。

你可以設計它,以便您的通話看起來是這樣的:

root.ajax(config.WebService.Vimeo.Read, callback); 

然後,您可以在啓動時配置URL的根在你的包裹Ajax對象一次。

root.ajax.rootUrl = config.WebService.Url 
+0

不確定這究竟是怎麼回事...... – 2011-06-10 21:49:36

相關問題