2012-04-05 42 views
0

我有一個網站A與數據庫和一些對象的搜索引擎,用戶可以在我的網站上創建帳戶,然後添加這些對象的評論。 我需要創建一個類似於插件的api,它將導致在另一個網站B上具有搜索引擎。創建一個插件,將我的網站功能添加到另一個網站

我已經計劃做類似於fb或twitter的插件:想要使用我的API的開發者將只需要在網站B上添加一行js和一行html,然後它將加載插件。但我想知道如何組織它。

在這裏,我猜對了:我在我的網站A上創建一個頁面,把搜索引擎放在它上面。我創建了一個js,它會在開發人員的頁面(網站B)上在iframe中加載此頁面,然後加入他的插件。然後,我實現了OAuth 2(與提供商一起提供,所以人們可以發佈請求來改變我的數據庫),並且作爲網站B的人員將能夠在網站B上發佈對搜索引擎對象的評論。

其實它看起來和fb註釋插件過程一樣,但是看起來太複雜了。這是正確的方式嗎?任何人都可以詳細說明在實施過程中我應該面對的問

+4

你的問題是非常廣泛的...請更具體的...你有什麼試過?你卡在哪裏?你需要支持哪些瀏覽器?你的數據庫/網站的可擴展性如何(請注意,任何這樣的系統都會打開你的DDos端)? – Yahia 2012-04-07 21:00:55

+4

您是否試過揮動手而不是編寫代碼? – Incognito 2012-04-08 22:42:02

+0

@Yahia任何web瀏覽器(桌面不移動)我試過這個:做了一個json api來訪問我的數據,保護與否(oauth2)。我想知道爲我的搜索引擎提供一個「開箱即用」插件是否很簡單,而不是告訴人們通過api寫一些東西。 – tahir 2012-04-09 17:19:28

回答

1

你需要開發一個體面的API,它可以返回JSON的搜索結果(如果你想讓所有人都滿意,還可以使用XML)。這已經可以爲其他開發人員提供使用網站功能的能力,這主要是後端工作。所以他們可以開發自己的小部件。要開發自己的小部件作爲搜索小部件,你不需要那麼多,只需要一個設置目標(也許是必需的元素)或/和一個初始化方法(更靈活的開發),你可以傳遞一個目標。

綁定的搜索按鈕,搶字詞的搜索,打電話給你的API,當你得到的結果顯示它們和/或執行一個定製的回調傳遞結果作爲參數,靈活性)

如果你做你的JavaScript以及你也可以在那裏創建一個小API,以便通過javascript使用你的API。然後,甚至可以輕鬆將其移植到jQuery插件或類似的東西。

服務JSON時,始終記得爲您的API設置標頭,以允許跨域或替代jsonp。

0

以下是向用戶提供自定義搜索的兩種簡單方法。

最簡單的方法是做什麼谷歌沒有 - 您網站上的搜索將遵循一個簡單的,明確的API - 使

www.mysite.com/search?q=keyword1+keyword2 

返回HTML結果列表。

然後你會告訴你的用戶,包括HTML的一個片段:

<form action="http://www.mysite.com/search" method="get"> 
    <input name="q" type="text" value="Search"> 
</form> 

那會做,但在這個節骨眼上,你可能需要提高的東西用更好的搜索選項,搜索一個JavaScript包裝表單,返回數據的JSON或XML格式,安全性,更好的解決API的問題,將所有這些考慮在內。

另一種方法是用一個回呼功能使用JavaScript和提供的數據,這樣的網址:

www.mysite.com/js-search?q=keyword1+keyword2&callback=someHandle 

將返回包含JSON數據,並在它被加載調用「someHandle」的JavaScript文件。使用API​​的開發人員必須編寫自己的請求和處理程序。請記住,由於XSS,查詢可能來自您的合作伙伴的服務器。最簡單的方法可能是讓自己的搜索提供簡單且有據可查的文檔,以便其他人可以利用它。

1

你的問題意味着一個建築方向,但是對於這樣的選擇,要求太寬泛。我會先縮小你的需求。 OAuth 2.0可能有助於滿足您的需求,但至少要問自己以下幾點:

  • 什麼用戶數據需要保護?
  • 需要什麼第三方數據訪問?什麼功能?
  • 如果你使用OAuth 2.0,你準備遵循一個仍在改變的規範嗎?你願意成爲認證提供者嗎?
  • 什麼服務器端語言/平臺可以接受?
  • 還有哪些其他安全考慮對您很重要? (比如社交分享,第三方應用程序信任等級)
  • 您願意依賴第三方工具多少錢?或者寫你自己的?

我同意你的造型設計過FB或Twitter或谷歌是不是一個壞主意,因爲他們已經做了這樣的事情。你可以看看新書Getting Started with OAuth 2.0

0

如果您允許網站B在後臺向網站A發送POST請求,則OAuth 2可能會有所幫助。

相反,如果您希望允許訪問網站B的用戶發佈評論,那麼具有指向網站A的表單的iframe就足夠了。

0

更容易打賭,但不一定是最明智的,是創建一些JS使用JSONP在您的網站上調用。

iFrames不是W3C標準,儘可能避免它們。用一些Javascript代碼編寫一些事件,這些事件會將一些JSONP調用放入您自己的服務器中,並相應地使用Javascript返回結果,以便能夠與頁面進行交互。

相關問題