首页 > 解决方案 > 如何使用 api 从 TMDB 显示前端数据

问题描述

我正在将 laravel 6 用于一个大学项目,我需要在其中显示来自 TMDB 的信息,以用于我正在创建的媒体评论网站。我对 laravel 很陌生,所以我很难让它工作。我在 tmdb 上注册了一个帐户,并获得了使用该 API 的密钥。到目前为止,我可以使用讲师给我的这段代码调用谷歌浏览器控制台中的数据,

<script>
https://api.themoviedb.org/3/movie/111?api_key=...&language=en-US
var api_key = '...';
var baseUrl = 'https://api.themoviedb.org/3/';

fetch(baseUrl+'movie/111?api_key='+api_key+'&language=en+US')
.then(response => response.json())
.then(function(data){
  console.log("all data");
  console.log(data);
});
</script>

这将在控制台中显示 id 为 111 的电影。我想知道如何在 laravel 中通过 HTML 和 PHP 显示这些信息。我已经有了可以在自己附加的数据库中创建自己的电影的代码。然而,对于这个项目,我需要在前端显示来自在线数据库的信息。抱歉,如果没有详细解释或者我遗漏了部分内容,我对 stackoverflow 还是很陌生。

标签: phphtmllaravelapi

解决方案


您应该将 http 客户端库添加到您的 Laravel 项目中,例如“guzzle”。

这是一篇应该详细解释这一点的文章:laravel-6-guzzle-http-client-exampleexample

Guzzle 文档:guzzle

然后你可以做这样的事情:

$client = new \GuzzleHttp\Client();
$response = $client->request(
    'GET',
    'https://api.themoviedb.org/3/movie/111',
    [
        'query' => [
            'api_key' => 'YOUR_API_KEY',
            'language' => 'en-US'
        ]
    ]
);

$body = $response->getBody();
$data = json_decode($body);

print_r($data);

PS 您可能不应该在您的问题中发布 api 密钥。


推荐阅读