Поэтому я пытаюсь получить данные из другого URL, который может быть что-то вроде:
Для этого я хочу использовать свой проект Laravel в качестве REST API, а это означает, что он не должен иметь возможность хранить данные локально, однако я должен быть в состоянии получить / получить что-то из некоторой конечной точки API в моем приложении, однако я немного запутался, как это сделать.
Я гуглил, как будто я сумасшедший, но я не могу понять, как решить мою проблему.
Может ли кто-нибудь указать мне правильное направление?
Всего 3 ответа
Вы можете использовать пакет, как Guzzle .
Затем, чтобы использовать конечную точку API из вашего приложения, вы можете просто сделать что-то вроде следующего, используя пример случайного json:
$client = new GuzzleHttpClient();
$response = $client->get('https://jsonplaceholder.typicode.com/posts/1');
$json = json_decode($response->getBody()->getContents(), true);
Адам уже указал на Жадность. Вы также можете использовать cURL, если не хотите использовать внешнюю библиотеку.
$headers = [
'Accept: application/json'
];
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => $url,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => $headers,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 30,
]);
$result = curl_exec($ch);
if ($result === false) {
throw new Exception('Curl failed: ' . curl_error($ch));
}
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$jsonResult = json_decode($result);
Я написал небольшую оболочку для своих приложений.
Самый простой способ сделать это - использовать json_decode(file_get_contents())
Смотрите пример:
$post = json_decode(file_get_contents('https://jsonplaceholder.typicode.com/posts/1'), true);
А для запросов POST вы можете обратиться к ответу Паскаля МАРТИНА здесь