我正在开发一个 Laravel 4 应用程序,它将通过 JSON REST API 和 Web UI 对我的数据集提供相同的 CRUD 操作。看来,为了防止违反 DRY 原则,我的 UI 应该通过将所有请求从 UI 路由回 API 来使用我自己的 API。但我不确定完成这项工作的最佳方法。想必我会有单独的 UI 和 API 控制器,并以某种方式路由请求。或者我应该考虑完全不同的方法?
我实际上也在修改同样的想法,而且它非常简洁。使用 Laravel,您确实能够发出内部请求(有些人可能将其称为 HMVC,但我不会)。以下是内部请求的基础知识。
$request = Request::create('/api/users/1', 'GET');
$response = Route::dispatch($request);
$response
现在将包含 API 返回的响应。通常,这将返回一个 JSON 编码的字符串,这对于客户端来说非常有用,但对于内部 API 请求来说就不太好了。您必须在此处扩展一些内容,但基本上的想法是为内部调用返回实际对象,并为外部请求返回格式化的 JSON 响应。你可以利用类似的东西$response->getOriginalContent()
来这里就是为了这种事情。
你应该考虑做的是构建某种内部Dispatcher
它允许您分派 API 请求并返回原始对象。调度程序还应该处理格式错误的请求或错误的响应,并抛出异常以进行匹配。
这个想法本身是可靠的。但规划 API 是一项艰巨的工作。我建议您写一份完整的所有预期端点列表,并起草几个 API 版本,然后选择最佳的一个。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)