2011-05-26 143 views
1

對不起,如果我的措辭是錯誤的,因爲我不太清楚如何解釋我想要的,所以我只會描述最終結果。關於如何創建一個mysql web服務/ api的建議

我有一個名爲socialcalc的基於php的excel工具(它是之前的wikicalc)。我希望允許用戶連接到數據庫並將實時數據提交到工作表上(以便他們可以對其進行計算)。

我明白,肯定社會鈣必須查詢MySQL,但我試圖找出最有效的方法。允許它直接查詢它會更好嗎?或者我應該讓它查詢數據庫得到一個XML文件作爲結果?或者,您建議採用其他哪種方式來實現對數據的讀取訪問的有效且安全的方法?

我們正在從頭開始構建大量的ontop社交計算器,這對所有解決方案都非常開放,但最終我們希望能夠爲其他服務提供支持。

更新:澄清,我正在尋找使用SOAP/XML直接查詢數據庫或使用HTTP POST/GET等方面的建議。您會建議哪種類型的服務層,或者需要考慮哪些因素何時選擇?

回答

1

「簡單勝過複雜」。

你當然可以在你的應用程序和MySQL之間實現一個Web服務層,但是問自己爲什麼你會想要這個。你可能會想,是因爲:

  1. 你計劃在將來的某個時刻改變後端系統,不希望有在前端應用程序

  2. 你要重構業務邏輯暴露你的後端數據到其他應用程序和這樣做的

  3. 提供了一個通用的接口希望實現SMOE排序緩存/持續性戰略的中間層

所有這些都是有效的,這是在應用程序和數據庫之間使用Web Service層的充分理由。當然有更多有效,也是很好的理由。

如果你不能想到你應該實現Web服務層的原因,那麼不要這麼簡單。當有一個很好的理由時,你可以隨時決定。


編輯:

所以,你已經決定與Web服務先走...恭喜!我認爲,在這種情況下,你應該看看兩個關鍵的框架爲您節省大量的時間:

  1. 獲得了良好的ORM框架,可以產生絕大部分的CRUD邏輯。 Doctrine是PHP的熱門選擇。

  2. 使用Web服務框架來實現您的接口和業務邏輯。我之前使用Zend Framework這樣做過,因爲它們通過REST支持XML和JSON負載。如果您需要嚴格的數據驗證要求,XML和SOAP是非常好的,但是如果您是唯一一個使用自己的Web服務的人,您不需要對自己施加這樣的限制,因爲您知道您的要求。在這種情況下,JSON應該足夠了。

順便說一句,我已經討論通過Zend的RESTful服務在另一個前面的問題:

lightweight RESTful PHP server

+0

謝謝你的回答,AJ。真正有用的思考方式,我已經決定了,因爲我很快就想提供更多的服務,我希望Web服務層爲我的用戶/開發人員提供一些數據庫內容。我正在尋找如何做到這一點以及使用什麼技術(soap,http post等)的建議。 – Lostsoul 2011-05-26 19:31:24

+0

@Lostsoul - 查看我的更新答案。 – 2011-05-26 20:52:47

+0

非常感謝AJ。我會努力做到這一點! – Lostsoul 2011-05-26 21:05:38

1

我認爲最好的方法是使用一步一步的行動。

月一個

讓用戶選擇,他希望在他的excel表來實現數據。如何做到這一點取決於你。

第二步

提交用戶的choise到自己創建的SQL API。該API將檢查注入的輸入等,並將執行所有查詢數據檢索。

步驟三

TEH檢索到的數據發送到一類將創建Excel文件。

第四步

發送創建Excel文件的用戶。

這最重要的部分是SQL API。這是一個處理來自用戶的所有輸入和與數據庫通信的類。它可以使用正常的SQL語句,但您可以使用它來驗證所有數據。

希望這對你有些用處。

+0

謝謝,我在想這個問題。我原本想爲每個單元格提供一個http POST/GEt請求,並且只在數據更新時才刷新。但是因爲我是用澱粉設計的,所以我想把它作爲一個設定正確基礎的機會。 – Lostsoul 2011-05-26 19:33:24