首页 文章

Laravel:将REST控制器与普通控制器和视图相结合?

提问于
浏览
1

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

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

实现这一目标的最佳方法是什么?所有教程都基于仅API的应用程序,但对我没有帮助 .

制作UserController.php和ApiUserController.php是一种好习惯吗?或UserController.php和API / v1.0 / UserController.php等子文件夹结构?我不会经常用这种结构重复一些事情吗?我的意思是经常唯一改变的是输出,不是吗?

提前致谢!

1 回答

  • 2

    您的API应该在API路由上提供,这些API可以与其他用户的东西在同一个控制器中,但它们实际上并非必须如此 .

    我喜欢使用带有所有API函数的ApiController . 在那里你可以实现像“showUsers”之类的东西,让它返回User :: all()或User :: paginate(50) . 如果你直接在Laravel中返回一个Model,它默认输出为JSON,非常方便 .

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

    您真的不想将RESTful控制器用于API,因为您可能需要使用不同命名的 endpoints . 我喜欢将所有用户保留在api / users,例如用户/ USER的单个用户 . 这正是我喜欢的,我认为我的API应该是完全可定制的和可路由的 .

相关问题