2016-03-18 86 views
1

我們有一個大規模的PHP應用程序,基本上是從頭開始編寫在我們自己的框架中。現在爲了移動開發,我們需要創建一個API,但問題是隻能使用其他api包,或者尋求更強大的功能。從頭開始寫出自己的休息api不再是一種選擇。僅使用Laravel/Dingo API僅用於

我看過的選項包括Slim framework。這將很容易實現,但我認爲它缺乏一個好的結構。

我已經看過了另一種選擇是Dingo,這是建立在Laravel的頂部。一個巨大的優勢是它已經有了一個龐大的結構和大量的工具可以使用。這裏

問題是,Laravel太多的開銷只使用一個API,而我們在同一臺服務器上運行我們自己的框架了。請注意,我們必須包含我們自己的框架的大部分內容,以保持運行順暢。所有的模型和列表都將來自我們自己的框架。

我不知道是否Laravel將加載了很多不必要的項目獲得的API部分之前,或者,如果這將是多麼輕巧的超薄框架會。

回答

2

我不知道是否會Laravel獲取到API的一部分加載了很多不必要的物品 之前,或者如果這將是多麼輕巧的超薄 框架會。

我敢肯定,這就是爲什麼泰勒Otwell(Laravel的創建者)提出Lumen做檢查一下,看看它是否是正確的事情你。

如果您決定使用Laravel,從5.2開始,您可以將路由文件中的API端點與通常在網頁中常用的組件加載(例如會話,緩存等)分開,通過指定應該使用哪個中間件。

如果你看看路由文件,例如:

Route::group(['middleware' => ['web']], function() { 
    // 
}); 

然後看看中間件組Http\Kernel.php

protected $middlewareGroups = [ 
    'web' => [ 
     \App\Http\Middleware\EncryptCookies::class, 
     \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, 
     \Illuminate\Session\Middleware\StartSession::class, 
     \Illuminate\View\Middleware\ShareErrorsFromSession::class, 
     \App\Http\Middleware\VerifyCsrfToken::class, 
    ], 

    'api' => [ 
     'throttle:60,1', 
    ], 
]; 

你可以看到,它已經有點成立因爲你不需要加載任何東西。所以管理你的路由和中間件,你可以很好地控制你的API中加載的內容,而不是什麼。

+0

感謝您的回答,我確實看過了Lumen,我認爲這將是該項目的方式。 –

+0

@SaifBechan - 不客氣,很高興我能幫上忙。請記住,如果將來需要,可以將Lumen項目升級到完整的Laravel應用程序。快樂的編碼! – haakym

0

所有框架都提供了構建性能方便性之間的折衷。

在一般情況下,除非你的API是高流量,這不要緊,你使用的框架,你應該用你最舒服的一個。瓶頸通常圍繞數據庫使用,您應該使用分析器來確保解決實際的性能問題。