我想创建一个新的应用程序,为此我选择了laravel。所以我也是laravel的新手。
我想从头开始集成API,例如浏览器插件或移动应用。当然,我不想让它成为仅限API的应用程序。我仍然需要能够处理此问题的普通视图和控制器。现在我对正确的结构感到有些困惑。它应该在API请求时将数据输出为JSON,否则作为普通视图。
实现这一目标的最佳方法是什么?所有教程都基于仅限API的应用程序,但对我没有帮助。
制作UserController.php和ApiUserController.php是不错的做法?或UserController.php和API / v1.0 / UserController.php等子文件夹结构?我不会经常用这种结构重复一些事情吗?我的意思是经常唯一改变的是输出,不是吗?
提前致谢!
答案 0 :(得分: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,因为您可能需要使用不同命名的端点。我喜欢将所有用户保留在api / users,例如用户/ USER的单个用户。它只是我喜欢的,我的API应该是完全可定制的,并且在我看来是可路由的。