【问题标题】:How to send data from controller to rest api in laravel?如何将数据从控制器发送到laravel中的rest api?
【发布时间】:2021-06-04 18:06:28
【问题描述】:

如何在 Laravel 中将数据从控制器发送到外部 api?

public function syncData(Request $request)
{
    $datas = Data::all();
    $newDatas = NewData::all();
    $url = 'mydomain.com/api/sync-data';
}

我想通过 Laravel 控制器将 $datas$newDatas 发送到 $url 并对这些数据执行一些操作。我怎样才能做到这一点?

【问题讨论】:

  • 您需要为此使用curl
  • 如何使用 curl 示例代码对我有帮助
  • 请看答案部分

标签: laravel api


【解决方案1】:
public function syncData(Request $request)
{
    $datas = Data::all();
    $newDatas = NewData::all();
    $url = 'mydomain.com/api/sync-data';
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS,  json_encode($datas));
        $output = curl_exec($ch);
        curl_close($ch);  
}

如果有帮助,请告诉我。 这里要注意的重要事项。 你必须知道你的外部 API 类型是什么。是 POST 还是 GET 方法。 我上面的示例只是一个示例代码,可让您了解如何使用 curl 它未针对您的上下文进行测试

【讨论】:

  • 我可以在我的域中添加这些数据吗?
  • dd 什么?你能解释一下吗?
  • 我的意思是如何验证数据是否发送到 url?
  • 我的方法是 POST 类型
  • 好吧,在这种情况下,您必须知道您的外部 API 需要什么。话虽如此,我的意思是。什么是键值对,例如名称应该完全相同。您可以通过阅读外部 API 文档来查看它。另一方面,您总是可以在发送到 curl 之前添加您的数据。
【解决方案2】:

您可以使用 Laravel HTTP 客户端(它是 Guzzle HTTP 客户端的包装器)来执行对该 API 的请求。

use Illuminate\Support\Facades\Http;

$response = Http::post('mydomain.com/api/sync-data', [
    'data' => Data::all(),
    'newdata' => NewData::all(),
]);

【讨论】:

  • 如何在外部 api 中回显数据?
  • 我不太清楚你的意思。您可以使用响应变量来执行进一步的步骤并处理 API 响应。还是您也控制着“外部”API?您是在问如何接收和处理从这个 sn-p 发送的请求吗?这可能是一个完全不同的话题,您可能想提出一个新问题...
猜你喜欢
  • 2020-05-26
  • 1970-01-01
  • 2019-07-25
  • 1970-01-01
  • 2021-05-17
  • 2019-11-13
  • 2016-11-07
  • 1970-01-01
  • 2017-03-11
相关资源
最近更新 更多