繁体   English   中英

Laravel:将REST控制器与普通控制器和视图结合在一起吗?

[英]Laravel: Combine REST-Controllers with normal controllers and views?

我想创建一个新的应用程序,为此,我选择了laravel。 所以我也是Laravel的新手。

我想从一开始就为浏览器插件或移动应用程序集成API。 当然,我不想使其成为仅API的应用。 我仍然需要正常的视图和控制器来处理此问题。 现在,我对正确的结构有些困惑。 当它是API请求时,它应该将数据输出为JSON,否则作为普通视图输出。

实现这一目标的最佳方法是什么? 所有教程均基于仅API应用程序,但对我无济于事。

制作UserController.php和ApiUserController.php是一个好习惯吗? 还是UserController.php和子文件夹结构(如API / v1.0 / UserController.php)? 我不会经常用这种结构重复一遍吗? 我的意思是,通常唯一的变化就是输出,不是吗?

提前致谢!

您的API应该在API路由上提供,这些路由可以与其他用户的资源位于同一控制器中,但实际上并非必须如此。

我喜欢将ApiController与所有API函数一起使用。 这样,您可以实现“ showUsers”之类的东西,并使其返回User :: all()或User :: paginate(50)。 如果您直接在Laravel中返回模型,则默认情况下它将以JSON输出,这非常方便。

现在,为了获得一些真正的API优势,我喜欢将dingo的API包与artdarek的Laravel OAuth 2包装器结合使用。 它提供了具有许多功能的真正高质量的安全API,例如速率限制和范围以及所有很酷的东西。

您确实不想为API使用RESTful控制器,因为您可能希望使用其他名称的终结点。 我想将所有用户都保留为api / users,但将单个用户保留为user / USER。 这就是我的偏爱,我认为我的API应该是完全可定制和可路由的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM