使用PHP从API提取数据

时间:2020-10-16 08:09:04

标签: php html api

我试图了解有关API的更多信息,这就是为什么我要执行新任务。 我试图建立一个商店网站。我所知道的一切都来自Here(Rapidapi) 我所能做的就是在项目服务器上回显联机API。所以我的问题是我如何回显(?)i.g“产品”。

这是我的代码:

<?php
$url = 'http://10.100.40.80:1337';
$collection_name = 'products';
$request_url = $url . '/' . $collection_name;
$curl = curl_init($request_url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, [
  'Content-Type: application/json'
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
?>

这是来自API:

    "id": 1,
"product_name": "Awesome Wooden Cheese",
"product_number": "MV8YUWEA7",
"description": "Sint accusantium earum adipisci consectetur velit vel aperiam aut et. Provident aut quam aperiam expedita qui est. Iste esse dolores libero eius vitae exercitationem modi. In aut sapiente qui sit porro.\n \rNemo dolores aliquid nisi molestiae. Omnis sint quia quia. Dolor corrupti ut officiis reiciendis consequatur in est. Quia consequuntur nihil atque omnis amet laboriosam.",
"price": 830,
"published_at": "2017-12-14T11:05:07.000Z",
"created_at": "2019-02-19T09:39:58.000Z",
"updated_at": "2019-02-19T09:39:58.000Z",
"user": {
  "id": 1,
  "username": "rheinschafe",
  "email": "react@rheinschafe.de",
  "provider": "local",
  "confirmed": true,
  "blocked": false,
  "role": 1
},
"weight": 37307,
"discount": null,
"image": "https://images.unsplash.com/photo-1538410797877-279eaba2f663?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=800&h=800&fit=crop&ixid=eyJhcHBfaWQiOjF9",
"images": [
  
],
"categories": [
  {
    "id": 19,
    "name": "DVDs & Videos",
    "created_at": "2019-02-19T10:38:37.000Z",
    "updated_at": "2019-02-19T10:38:37.000Z",
    "product": 0
  }
]

, 我想以Bootstrap格式的形式给它。

感谢您的帮助! :)

1 个答案:

答案 0 :(得分:3)

首先,API返回一个JSON-String。因此,您必须先decode将其放入数组。我认为您的例子只是摘录,对吗?因此,您必须遍历每个产品,然后才能将产品信息嵌入到引导卡中。

这是code example的用法:

$url = 'http://10.100.40.80:1337';
$collection_name = 'products';
$request_url = $url . '/' . $collection_name;
$curl = curl_init($request_url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, [
  'Content-Type: application/json'
]);
$response = curl_exec($curl);
curl_close($curl);

// decode your json-string to an associative array
$products = json_decode($response, true);

通过这种方式,您可以在html中输出产品数组:

<div class="row">
  <?php foreach((array) $products as $product): ?>
      <div class="col-4">
        <div class="card" style="width: 18rem;">
          <img src="..." class="card-img-top" alt="...">
          <div class="card-body">
              <h5 class="card-title"><?= $product['product_name']; ?></h5>
              <p class="card-text"><?= $product['description']; ?></p>
              <a href="#" class="btn btn-primary">Go somewhere</a>
          </div>
        </div>
      </div>
  <?php endforeach; ?>
</div>