laravel - 如何使用外部 api 在 Laravel 应用程序中工作?
问题描述
在我的 Laravel 5.7/mysql 应用程序中,我需要制作外部 api 以使用 get 请求从外部应用程序读取一些数据,并使用 post 请求将一些数据写入我的数据库。
有哪些工具/脚本可以解决这个问题,以及如何确保这些请求安全?
已修改: 感谢您的反馈,但看起来我的问题很糟糕外部应用程序(我不知道它是用什么编写的)需要从我的应用程序读取数据并将数据写入我的 Laravel 5 应用程序。
我如何在本地开发时测试这些请求?看起来我必须在提供的链接中使用 Guzzle?为了安全起见,我应该采取哪些步骤?
谢谢!
解决方案
这三个库在您的用例中很受欢迎:
如果数据库是本地的,您可以使用 Eloquent,如果不是,远程连接到该数据库可能会有所帮助。否则,如果您只有 API 访问权限,您应该使用上述库中的八个或任何替代选项来发出您的应用程序可能需要的 HTTP 请求。
安全方面,只要您只向远程服务器发出请求,建议的方法是将与授权您的请求(如果适用)相关的任何密钥或秘密字符串存储在您的 .env 中,以防止其提交到您的版本控制系统。不用说总是处理远程 API 可能抛出的任何可能的 HTTP 错误,以防止应用程序端出现任何不需要的错误。
正如 Abir Adak 在评论中提到的那样,请查看此线程以获取更多详细信息。
更新答案:就MODIFIED
部分而言,通常您有 3 个热门选项,
- REST API
这篇博文是为 Laravel 编写的详细演练 这一篇来自 Stack Overflow可以帮助您设计 API 最后一篇可以帮助您按照其规范开发广泛接受的 API 响应和端点。
GraphQL 可以节省一些时间来开发你的 API,但我建议确保你的 API 的消费者乐于使用这个选项。 用于 GraphQL 的GraphQ Laravel 包 如果不是必须使用 Laravel,并且您使用的是 PostgreSQL,那么您可能还想看看Hasura。
SOAP 对 Laravel 的这个选项知之甚少,只知道使用 C# 和 .net 编码的人更乐意用这个协议公开他们的 API。在WikiPedia上阅读有关它的更多信息
Postman是测试您的 API 或任何其他 API 的绝佳工具。
推荐阅读
- javascript - Mesh 未呈现其真实颜色 Three.js
- python - keras 网络不训练
- craftcms - 如何在 Craft 中的滚动条上更改样式或添加类
- visual-studio-code - 如何使用 VSCode 扩展将下拉菜单添加到“视图/标题”?
- tensorflow - TFLite 模型可变批量大小支持
- python - PyQt5 QgraphicsView 宽高
- python - 如何在 dajngo 中验证表单集
- snowflake-cloud-data-platform - 我们可以使用雪花中的存储过程将文件从文件位置加载到命名内部阶段吗?
- terraform - Vault 架构 - 多种环境
- php - Laravel 在更新另一个表中的列时创建一个新表条目