在 Laravel 中使用 API 的干净解决方案?
Clean solution for using APIs within Laravel?
有没有人有在 Laravel 中使用 API 的干净且代码效率最高的解决方案?
感谢您的帮助
很多人似乎忘记的一件事是模型在 MVC 中的真正含义。大多数时候,它们只是您数据库的抽象层,但并非必须如此。它们也可以是与外部交互的服务 API.
话虽如此,当我在使用外部 API 的站点上构建功能时,我通常会从为 API 创建模型开始。然后我尝试将这些方法命名为尽可能类似于 Eloquent
方法,因为这是我最习惯使用的方法并且往往最有意义。
这些方法只与 API 交互,您甚至可以使用 API 的结果来填充集合对象。我们的想法是以一种您甚至感觉不到与第三方交互的方式设计您的模型 API。
在模型之上,我还将构建一个存储库,其中包含您的应用与 API 交互所需的任何业务逻辑。例如,如果您需要从 API 中获取某个项目,您可能需要先检查您自己的数据库中的缓存版本。如果有 none,请从 API 和 cache/recache 中获取项目,然后 return 将结果发送到您的控制器。
然后您将存储库注入您的控制器并使用它做任何您需要的事情。
此外,这可能很明显,但是像 API 键和进入 API 的入口点之类的东西在你的配置文件或 .env 文件中会很好,具体取决于哪个 Laravel 您正在使用的版本。最好使用服务提供商来管理依赖项注入,以防万一第三方推出了您想要使用的更新 API 版本时您需要更新模型。在这种情况下将您的模型编码为界面可能会在以后为您省去一些麻烦。
最后一点,在开始之前,请先检查 packagist。重新发明轮子是没有意义的。
有没有人有在 Laravel 中使用 API 的干净且代码效率最高的解决方案?
感谢您的帮助
很多人似乎忘记的一件事是模型在 MVC 中的真正含义。大多数时候,它们只是您数据库的抽象层,但并非必须如此。它们也可以是与外部交互的服务 API.
话虽如此,当我在使用外部 API 的站点上构建功能时,我通常会从为 API 创建模型开始。然后我尝试将这些方法命名为尽可能类似于 Eloquent
方法,因为这是我最习惯使用的方法并且往往最有意义。
这些方法只与 API 交互,您甚至可以使用 API 的结果来填充集合对象。我们的想法是以一种您甚至感觉不到与第三方交互的方式设计您的模型 API。
在模型之上,我还将构建一个存储库,其中包含您的应用与 API 交互所需的任何业务逻辑。例如,如果您需要从 API 中获取某个项目,您可能需要先检查您自己的数据库中的缓存版本。如果有 none,请从 API 和 cache/recache 中获取项目,然后 return 将结果发送到您的控制器。
然后您将存储库注入您的控制器并使用它做任何您需要的事情。
此外,这可能很明显,但是像 API 键和进入 API 的入口点之类的东西在你的配置文件或 .env 文件中会很好,具体取决于哪个 Laravel 您正在使用的版本。最好使用服务提供商来管理依赖项注入,以防万一第三方推出了您想要使用的更新 API 版本时您需要更新模型。在这种情况下将您的模型编码为界面可能会在以后为您省去一些麻烦。
最后一点,在开始之前,请先检查 packagist。重新发明轮子是没有意义的。