2011-05-23 68 views
11

我期待創建一個API,以便其他站點可以訪問我的Web應用程序中的數據。如何編寫JavaScript API?

我一直沒能找到解釋創建自己的JavaScript API的過程的任何資源。

我想學習如何設置身份驗證,數據傳輸等

我怎樣寫我自己的JavaScript API?

是否有很好的教程來解釋創建JavaScript API的過程,比如GData API或YouTube API?

我真的會在2個不同的應用程序上做到這一點。一個是使用Tomcat,MySQL和Java的apache服務器。另一個是使用MySQL和PHP的Apache。前端全部用JavaScript編寫,通過它與後端進行交互。我已經開始編寫他們將用來與我們的函數進行交互的庫。

+4

您是否已經擁有JavaScript API將通過其接口的服務器端組件?還是你打算直接檢查你的HTML頁面? – Matt 2011-05-23 16:19:57

+0

我還沒有服務器端組件,但我可以。取決於哪個更好或更容易。我也可以做,但我傾向於檢查HTML頁面。 – UpHelix 2011-05-23 16:46:40

+0

好吧,該死的我覺得它很有用! – 2016-01-31 05:52:10

回答

7

這是一個非常普遍的/廣泛的問題,因此只會得到非常普遍的/廣泛的回答。如果不知道您正在使用哪種服務器端技術,您目前的架構如何,需要完成多少工作以及需要完成多少工作,則很難提出任何建議(與需要採取一種方法需要多少努力有關另一個)等。

我個人不熟悉GData或YouTube API,所以他們的技術對我來說是未知的。但是,我可以提出以下個人建議:

1)我建議您避免直接對您的頁面進行HTML檢查,而是建議使用服務器端API來補充您的客戶端API。具體而言,我會考慮一個RESTful like approach,您將您的實體/數據視爲您希望採取行動的資源。

此方法的好處是獨立於您頁面的實際視圖/ HTML表示,因此對更改具有更強的適應性。如果您直接針對HTML編寫API,則每當您更改網頁時(即使內容/數據保持不變),您都有可能違反API。

擁有服務器端組件的另一個好處是您將能夠利用JSONP,這可以減輕跨域請求所涉及的一些痛苦。然而,JSONP的一個缺點是你不能發出POST請求,只有GET請求,它並不完全採用RESTful方法(但我仍然相信RESTful架構提供了許多優點)。

2)數據傳輸是一個簡單的建議 - 下手我會選擇JSON。在某些情況下,XML可能比JSON更適合使用數據格式,但總的來說,我認爲您會發現JSON將很好地滿足您的需求。

3)對於跨域請求,客戶端認證可能很困難。這裏的一個選擇是使用iframe來進行身份驗證。另一種選擇是使用HMAC或OAuth。 4)至於實際編寫JavaScript API,我建議閱讀關於JavaScript books的SO上的一些線程。這可能包括關於命名空間和其他組織API的討論。

正如我所說 - 這些都是非常通用的建議。可能是你的用例在一個快速而髒的HTML抓取中可以做得很好(儘管你可能需要使用IFrame來解決跨域限制)。我上面提到的整體來看,並不是一項微不足道的任務,特別是如果現在這些要素都不存在的話。

+0

謝謝,這幾乎是我需要開始的所有信息。我用我運行的技術更新了我的問題,僅供參考。 – UpHelix 2011-05-23 21:21:54

+0

這是一個很棒的頁面,任何想要實現oAuth的人都可以選擇你的語言並實現這個庫:http://oauth.net/code/。如果你只是想更好地理解oAuth:http://oauth.net/ – UpHelix 2011-05-27 19:50:05