2016-03-18 41 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是高流量,这不要紧,你使用的框架,你应该用你最舒服的一个。瓶颈通常围绕数据库使用,您应该使用分析器来确保解决实际的性能问题。