2017-02-16 77 views
1

假設我有一個SDK的第三方數據庫應用程序,可用於從XML數據庫中檢索數據。Laravel的Web服務

另一方面,我開發了一個使用PHP的Laravel框架的網站。該網站應該顯示來自應用程序數據庫的數據。

在問候上面我有以下問題:

  1. 據我瞭解,我可以請求的數據存儲在我的網站的數據庫或只顯示它不保存。你建議什麼技術?
  2. 如何實現從數據庫服務器到網站的xml數據傳輸?考慮到我有C#開發經驗,我假設我必須開發一些可以在數據庫服務器上運行的Web服務,檢索所需的數據並將其發送到我的網站。因此,網絡服務必須接收來自我的Laravel網站的請求,相應地從數據庫服務器檢索數據,並將XML響應傳遞到我的網站,最終顯示它。我是否正確?如果是這樣,請你指導我如何編碼和綁定這些部分?

在此先感謝您。

+1

嗨,只是爲了澄清 - 「第三方數據庫應用程序」,你的意思是你通過SDK處理並返回XML的本地數據庫?或者,您的意思是說這是一個由爲您提供XML的第三方託管的Web服務? –

+2

如果您還沒有在源數據庫服務上運行Web服務,那麼爲什麼不在那裏運行整個事件?然後你只需要一個運行在那裏的Laravel應用程序並提供請求......如果不是,那麼你將不得不開發Web服務和與之通信的前端應用程序。 這是一個非常廣泛的問題......許多方法來做到這一點... – Serge

+0

@RyanLund正是,'第三方數據庫應用程序'我的意思是一個本地數據庫,其SDK的SDK返回不同類型的XML消息。 –

回答

0

我必須同意@Serge的評論 - 有很多方法可以做到這一點,因爲它是一個非常廣泛的問題。

我的答案主要是處理第三方數據庫將如何定期更新,但從您的意見來看,我認爲它會相當頻繁?在這種情況下,我可能會使用這裏找到的firebird驅動程序從laravel應用程序直接連接到第三方數據庫:https://github.com/jacquestvanzuydam/laravel-firebird(請注意,我從來沒有使用過這個,所以我不能評論它的質量)而不是編寫C#Web服務。我不太瞭解firebird本身,但出於安全原因,您可能希望使用SSH隧道或VPN進行連接。

然後,我要麼將數據存儲在MySQL中,如果您知道它不太可能經常更改(在這種情況下,您將使用laravel命令,按計劃運行,每隔[X]天/小時/分鐘,具體取決於數據),或者如果數據可能在每個潛在的網絡請求上發生變化,則使用某種形式的緩存系統(redis,memcache,文件緩存等)來加速Web請求。

很抱歉,如果不是特別有幫助 - 如果你能提供更多的信息,也許我還可以幫你:)

祝你好運!

+0

我喜歡你提出的想法 - 特別是對於我不需要開發單獨的Web服務的事實。但是有一個問題 - 第三方數據庫是加密的。因此,我沒有關於表格和列結構以及關係的信息。我對第三方解決方案的唯一看法就是它的SDK。因此,我認爲開發Web服務將是與數據庫進行通信的唯一方式。但我目前卡住,因爲我不認爲xml數據在系統之間傳遞的方式。 –

+0

更具體地說,是的,我知道我的web服務將引用SDK中的一些方法,它將從數據庫中提取數據,以便在輸出中會有一些xml消息。你下一步怎麼做?我應該如何提供響應(發送XML)到我的網站?爲了更一般化,我如何使用我的PHP/Laravel網站與我的.Net Web服務進行通信?我在哪裏可以閱讀更多關於這種框架組合的內容? –

+1

當你說加密時,它是如何加密的(記住我一般對firebird一無所知)?如果你真的沒有其他選擇,數據庫中的數據可能會定期更改,最簡單的方法是使用C#SDK編寫簡單的REST api,然後使用curl從laravel應用程序向該api發出請求。您可以通過將C#端的數據格式從XML更改爲更緊湊的JSON(無論如何更容易解析laravel端),從而加快速度。 –