一尘不染

消耗我自己的Laravel API

php

我正在开发一个Laravel 4应用,该应用将通过JSON REST API和Web
UI对数据集进行相同的CRUD操作。为了防止违反DRY原则,我的UI应该通过将所有请求从UI路由回API来使用我自己的API。我不确定如何使这项工作的最佳方法。大概我将拥有单独的UI和API控制器,并以某种方式路由请求。还是我应该完全采用另一种方法?

谢谢。


阅读 231

收藏
2020-05-29

共1个答案

一尘不染

我实际上是在修改相同的想法,而且非常简洁。使用Laravel,您确实可以发出内部请求(有些人可能将其称为HMVC,但我不会)。这是内部请求的基础。

$request = Request::create('/api/users/1', 'GET');

$response = Route::dispatch($request);

$response现在将包含API的返回响应。通常,这将返回一个JSON编码的字符串,该字符串对客户端很有用,但对内部API请求却不那么有用。您必须在此处扩展一些内容,但基本上,其想法是通过内部调用返回实际对象,而对于外部请求则返回格式化的JSON响应。您可以$response->getOriginalContent()在这里使用诸如此类的东西。

您应该看的是构建某种内部结构Dispatcher,该内部结构允许您分派API请求并返回原始对象。调度程序还应该处理格式错误的请求或错误的响应,并抛出异常以进行匹配。

这个想法本身是坚定的。但是,规划API是一项艰苦的工作。我建议您编写一份所有预期端点的好清单,并草拟一些API版本,然后选择最佳的API版本。

2020-05-29