当前位置: 首页 > 面试题库 >

消耗我自己的Laravel API

单于海荣
2023-03-14
问题内容

我正在开发一个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版本,然后选择最佳的API版本。



 类似资料:
  • 问题内容: 我为我使用的API提供了一个速率限制器,它每秒允许20个请求。所有请求均基于承诺,并且一旦有响应,承诺将使用API​​数据进行解析。 问题: 我设置了一个promiseArray,其中包含58k个都在等待响应的Promise。如此缓慢地增加内存,直到内存用完。在我的特定情况下,我不需要将解析的数据传递给我,并且数据耗尽了我所有的RAM。 编码: 那么,有没有一种方法可以等待到promi

  • 我们使用的是Spring kafka 2.7非阻塞重试机制。在Spring Kafka重试机制中,Kafka listenser使用来自main topic、Retry topic和DLT topic的消息,我们希望侦听器仅使用来自main和Retry topic的消息。 有没有简单的方法来进行设置? 因为我们不希望同一个消费者处理DLT消息。DLT还将被另一个进程使用,以发送请求通知。

  • 问题内容: 我正在阅读另一个SO问题,即Swift do-try-catch语法。在他的回答中, rickster 为OP的自定义类创建了扩展。 Konrad77 评论说,这是“保持代码整洁的好方法。” 我尊重他们的知识,这使我相信我在自己的代码中遗漏了一点。 除了为我创建的类创建扩展之外,还有其他好处(除了整洁)还是原因?我可以将相同的功能直接放入类中。如果我是唯一使用该类的人,或者其他人将使用

  • 问题内容: 我需要阅读该文件,该文件提供了我的课程,但是当我使用时: 我MANIFEST从第一个加载到Java运行时中就得到了。 我的应用程序将从或运行, 所以我无法访问自己的文件。 我实际上是想从启动的中读取属性,因此可以将这些包公开给Felix。有任何想法吗? 问题答案: 你可以执行以下两项操作之一: 调用并遍历返回的URL集合,将它们作为清单读取,直到找到你的URL: 你可以尝试检查是否是的

  • 如果要在apstring变量中查找一个字符,可能我们并不想从字符串的头部开始查找。这种find函数的一种实现方式就是写一个增加一个参数的版本——传入我们希望的开始位置的索引。这是该函数的一个实现: int find (apstring s, char c, int i) { while (i<s.length()) { if (s[i] == c) return i; i =