2012-03-17 26 views
0

我一直有這個想法在我腦海中徘徊了兩週。我終於創建了一些案例和計劃,以便我將這個項目放在哪裏。我將不得不創建一個Web應用程序(ASP.NET)和一個桌面應用程序(Java)。這兩個應用程序都需要具有sync'd數據庫。創建一個API(使用PHP)

我一直在考慮在我的數據庫上創建一個公共API,以便我的前端和第三方可以與數據庫進行通信。但我從來沒有真正嘗試過這樣的事情。到目前爲止,我已花了我的週末閱讀我如何能夠接近這一點,我已經得到了一個很好的主意。我目前有一些疑問/懷疑,並希望有人能幫助我。

1)我目前還在上大學,我沒有工作,所以我的口袋不會很深。我一直在考慮用PHP編寫API,我已經擁有一個未計算的主機帳戶,否則我將被迫購買.NET託管,這可能會非常昂貴。但是,我的PHP知識對解析用戶輸入/安全性非常有限。圍繞這個話題搜索一本(e)書是否明智?或者我在線教程會不會很好?你有什麼建議去看看?我是否應該把時間寫在可能存在漏洞的PHP API上,或者我應該看看其他選項?

2)到目前爲止,我從來沒有真正需要查看PHP庫。我想知道是否應該研究一些(例如cakePHP)來幫助我開發API。

3)我有實現Twitter/Linkedin他們的API的經驗,所以我一直在考慮使用OAuth(V2)來讓人們使用我的API。爲你的API實現OAuth很多工作?對於只具有基本PHP知識的人來說,它是否足夠有據可查?如果你曾經在你的API上使用它,你有什麼經驗呢?

4)如果這個項目能夠啓動,那麼在雲中託管它是明智的。我目前是否需要考慮某些事情,以便未來的雲集成成爲可能?

5)對於Web應用程序,使用API​​或直接連接數據庫會有一個(大)性能差異嗎?

6)歡迎任何推薦的講座或技巧。這是我第一次嘗試這麼大的功能(在功能&所需的知識)。

+1

對不起,但這個問題對於堆棧溢出來說太廣泛了。或者說,這六個問題。 – Ryan 2012-03-17 20:48:58

+0

您的帖子包含很多很多的問題,這裏的帖子應該更加具體。你爲什麼不嘗試自己實現一個API,並且當你遇到一個問題時會發布關於該特定問題的問題。 – Lix 2012-03-17 20:49:19

+0

好的:/ 只是不願意創造一些東西,然後看到它可以做得更容易/更安全。 – Reinard 2012-03-17 21:01:23

回答

2

1)如果您有其他語言的使用經驗,開發一個簡單的API並不難。當然,每種語言都有自己的方式,當談到優化和類似的東西時,你可能需要更多的PHP知識。

2)使用PHP框架肯定會有很多方面的幫助。我爲我的所有PHP項目使用symfony 2。我真的建議檢查它。這是一個分離的框架,您可以使用框架中的單個組件。它重量輕,速度快,並提供了很棒的工具來構建你想要的東西。 What is symfony?解釋了好處。另外,使用ORM(我更喜歡教條)是一種選擇,但這是另一個話題。 3)如果你決定使用symfony2,那麼你可以使用bundles(庫)。即使沒有框架也不難實現,但我在這方面沒有任何經驗。

4)我沒有任何雲計算經驗,所以不能對此發表評論。

5)當你向你的項目中添加另一個層時,會有性能差異,但是它是大還是小取決於API,數據庫等。但是,使用API​​將意味着一種標準的方法與數據庫進行通信,因此即使性能存在差異,在一致性和開發時間方面也可能是有益的(您不必處理不同的平臺來處理數據庫內容)。

6)API的用處很大程度上取決於應用程序,我無法確定它是否超過了沒有關於項目的特定信息的成本。但是,在處理多個平臺和語言IMO時,使用標準化的方式與數據存儲進行通信通常是一個好主意。因爲我不知道你對PHP有多少了解,所以我不能評論它是否值得你花時間。如果有足夠的時間,我會盡力去做,因爲學習PHP會在你的武庫中增加更多的工具,這將是一個提升自己作爲開發人員的好機會。

+0

感謝您的回答!今晚晚些時候會檢查symfony2。 – Reinard 2012-03-17 21:19:52