Javascript 什么';让Laravel应用程序既能为基于浏览器的应用程序服务,又能作为iPhone和Android应用程序的API,这是最佳做法吗?

Javascript 什么';让Laravel应用程序既能为基于浏览器的应用程序服务,又能作为iPhone和Android应用程序的API,这是最佳做法吗?,javascript,angularjs,laravel,ember.js,laravel-5.1,Javascript,Angularjs,Laravel,Ember.js,Laravel 5.1,我们在Laravel 5.1中使用了repository模式,并将我们的逻辑保存在repository中,我们将数据从repo返回给controller,我们如何在本机应用程序和web浏览器(即web应用程序)中使用相同的数据…场外数据是json格式的,那么我们如何在blade模板中显示相同的数据…我们是否需要为前端使用另一个框架(Angular或任何其他)?我个人认为您不需要一个包或框架来实现这一点。因为您遵循存储库模式,所以您的控制器只负责返回结果(也可以选择将结果转换为输出) 实现你的目标

我们在Laravel 5.1中使用了repository模式,并将我们的逻辑保存在repository中,我们将数据从repo返回给controller,我们如何在本机应用程序和web浏览器(即web应用程序)中使用相同的数据…场外数据是json格式的,那么我们如何在blade模板中显示相同的数据…我们是否需要为前端使用另一个框架(Angular或任何其他)?

我个人认为您不需要一个包或框架来实现这一点。因为您遵循存储库模式,所以您的控制器只负责返回结果(也可以选择将结果转换为输出)

实现你的目标

1-对API路由进行分组(等
Route::Group('API/v1'
,…)

2-创建一个类或更好的特性来检测传入路由

3-在控制器内或处理JSON转换的类上,检测请求的路由

4-如果请求是从api路由发出的,则返回JSON.Blade模板,否则返回


您还可以查看链接,它将帮助您建立路由检测。还请记住,您也需要在
ExceptionHandler
中使用此精确实现。您不希望有人在web前端看到json错误消息,或者从API返回404刀片模板。

如果我使用angular.j这是为了前端显示json数据…然后我不需要使用另一种逻辑来显示数据以查看页面..对吗?这是一种好的做法吗?是的,你不需要它。考虑到你对angular有一定的了解,这会节省你一些时间和代码。但我不认为这两种方式都是一种好的做法。这只是关于你如何需要你的服务器后端。如果你扩展它好,我不认为这将是一个刀片模板上的问题太多。