Создание API-сервера с PHP, который получает определенные данные из другого API (пример: api.themoviedb.org) - PullRequest
0 голосов
/ 17 апреля 2019

Я создаю API, который используется для получения определенных данных (например, определенных фильмов с сайта api.themoviedb.org), а затем мне нужно вернуть эти данные в виде объекта JSON. Мне было интересно, есть ли у кого-нибудь информация о том, как я могу поступить так, как я потерялся.

Я понимаю, что мне нужно сделать запрос GET от моего API к публичному API с определенными критериями поиска и, очевидно, ключом API. Затем мне нужно вернуть эти данные пользователю, который сделал запрос на поиск.

Любые предложения о том, как это сделать, пожалуйста?

1 Ответ

2 голосов
/ 17 апреля 2019

Просто спроектируйте свой API как обычно, я имею в виду конечные точки, маршрутизацию, формат вывода и т. Д.

Для извлечения данных из других сетевых ресурсов вы можете использовать:

<?php
$postData = 'whatever';
$headers = [
    'Content-Type: application/json',
    'Auth: depends-on-your-api',
];
$ch = curl_init("http://your-remote-api.url");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

// for POST request:
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
// end for POST request

$response = curl_exec($ch);
$apiResponseCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
<?php    
$postData = 'whatever';
$contextData = [
    'http' => [
        'method' => 'POST',
        'header'=> "Content-type: application/json\r\n"
            . "Auth: depends-on-your-api\r\n",
        'content' => $postData
    ]
];
$response = file_get_contents(
    'http://your-remote-api.url',
    false,
    context_create_stream($contextData)
);

Ссылки нацелены на определенные части документации PHP, которые могут указывать на дальнейшие действия.

...