首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用API /前端/等构造Laravel系统

如何用API /前端/等构造Laravel系统
EN

Stack Overflow用户
提问于 2017-03-01 20:55:47
回答 2查看 2.5K关注 0票数 2

我的项目由四个主要部分组成:

App显示API中的数据

API为app提供数据

仪表板管理数据库数据(Twig,无SPA)

网站显示数据库中的一些数字(只读)

我们是否应该使用Laravel的模块库将系统分成: API、仪表板、公共、Web,还是有更好的想法?最好的方法是什么?

EN

回答 2

Stack Overflow用户

发布于 2017-03-02 00:15:57

拉勒维尔在默认情况下已经为你分拆了。只要查看一下路由目录,就可以看到web路由和api路由有单独的文件,前缀为api,尽管您可以自己更改前缀。

实际上,您需要考虑的部分是仪表板/网站部分,您必须实现授权才能知道谁可以访问什么。

基本上,您只是在构建一个正常的应用程序,然后开始添加不同的控制器来响应API路由,因为应用程序控制器和api控制器不返回相同的内容。应用程序控制器主要返回视图和重定向,而api控制器主要返回JSON格式的数据。您可以将这些控制器分成两个不同的目录,如下所示

代码语言:javascript
复制
app/Http/controllers/web/ 
app/Http/controllers/api/

因此,当在手工中生成控制器时,您需要将目录放在前面。

代码语言:javascript
复制
php artisan make:controller web/DashboardController
php artisan make:controller api/UserController

诸若此类。

因此,总结一下:

1- API:使用routes/api.php,控制器返回JSON return response()->json($data);

2- 公共:一些由web和api共享的助手、服务和中间件

3- 仪表板:身份验证+授权以限制访问。在这里使用一个路由组并应用中间件。

代码语言:javascript
复制
Route::group(['prefix' => 'admin', 'middleware' => ['auth', 'admin']], function(){
    //admin routes go in here
});

4- 网络:公共数据,只读。不需要授权。只是没有身份验证的基本页面。

票数 6
EN

Stack Overflow用户

发布于 2018-11-12 10:08:09

关于@EddyTheDove的答案,我会构建主要控制器,以便在web和api控制器中进行扩展。无论如何,每个输出都需要相同的数据。您可以在api控制器中转换数据雄辩资源或在web控制器中转换视图。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42541878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档