Autor Tema: Obtener y Visualizar información de una API JSON con PHP  (Leído 1524 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado ELITE

  • The Communiter-
  • *
  • Mensajes: 6227
  • NEMO ME IMPUNE LACESSIT
Obtener y Visualizar información de una API JSON con PHP
« : febrero 21, 2024, 10:05:17 am »
Partiendo de este post en el cual me dicen que si puedo hacer un pequeño y fácil ejemplo de como manejar información de una API JSON voy a ejemplificarlo de una manera super rápida y sencilla usando PHP.

Las APIs pueden ser de cualquier web o servicio, en este ejemplo yo elegí la primer web Wordpress que se me cruzo y que no tiene bloqueada la API, cosa que puede ser perjudicial en la seguridad del sitio. En otros temas voy a explicar como poner seguridad a Wordpress.

Bien, voy a colocar el Snippet comentado, es pequeño y fácil de entender, así ustedes solo necesitan armar un escenario PHP en sus PCs y listo. Pueden usar XAMPP para tal fin.

Código: [Seleccionar]
<?php
// API Wordpress
$siteBase "https://www.ladrilleramelendez.com.co/wp-json/wp/v2/";
// Leemos el JSON
$json file_get_contents($siteBase."producto");
// Convertimos en un array
$products json_decode($json);

// Probando la data
/*echo "<pre>";
print_r($products);
echo "</pre>";*/
?>


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Rest API SVC</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" integrity="sha384-rbsA2VBKQhggwzxH7pPCaAqO46MgnOM80zW1RWuH61DGLwZJEdK2Kadq2F9CUG65" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<h1 class="text-center mb-3 mt-3">Productos de la Web</h1>
<table class="table">
<thead>
<tr>
<th scope="col">Nombre</th>
<th scope="col">Imagen</th>
</tr>
</thead>
<tbody>
<?php foreach ($products as $product){ ?>
<tr>
<td>
<a href="<?php echo $product->link?>" target="_blank">
<?php echo $product->title->rendered?>
</a>
</td>
<td>
<?php
$mediaID $product->featured_media;
$mediaUrl $siteBase."media/".$mediaID;
$mediaJson file_get_contents($mediaUrl);
$media json_decode($mediaJson);
?>

<img src="<?php echo $media->media_details->sizes->thumbnail->source_url?>" alt="<?php echo $media->alt_text?>" width="75px" title="<?php echo $media->alt_text?>">
</td>
</tr>
<?php ?>
</tbody>
</table>
</div>
</body>
</html>

Resultado


Otro ejemplo de un API Woocommerce que tengo por ahí (con credenciales y todo) se ve así



Si se fijan, leer y visualizar la información de un JSON es fácil  :drinks:


Ojo, en este pequeño ejemplo, la web en cuestión no tiene bloqueado el acceso al API (la mayoría de sitios Wordpress están así) y esto permite que cualquiera vea y use esa información. Cuando se pone seguridad en la web, se necesitan credenciales para acceder a dichos sitios y es así como están configuradas la mayoría de las APIs desarrolladas por instituciones bancarios o gubernamentales.

En la documentación de las APIs (ya sea la general o alguna que nosotros desarrollemos) podrán encontrar los métodos que la API soporta (GET, POST, UPDATE, DELETE...) y los métodos necesarios para autenticarse, lo más seguro es que si quieren obtener información de X institución, sea esta la que les proporcione las credenciales necesarias para usar sus APIs.

Espero sirva a más de alguno y cualquier duda acá estamos  :hi:
« Última Modificación: mayo 14, 2024, 10:49:34 am por ELITE »

Desconectado EltalIvan

  • Sv Full Member
  • *
  • Mensajes: 728
Re:Obtener y Visualizar información de una API JSON con PHP
« Respuesta #1 : febrero 22, 2024, 02:24:18 am »
Interesante, esto seria como el webcraping? lo quiero aplicar a un web intranet del trabajo para no tener que estar copiando paginas a un excel, ya probe con la funcion de excel pero no ve la tabla.
(õxõ)
(v.v)
 J  L

Desconectado ELITE

  • The Communiter-
  • *
  • Mensajes: 6227
  • NEMO ME IMPUNE LACESSIT
Re:Obtener y Visualizar información de una API JSON con PHP
« Respuesta #2 : febrero 22, 2024, 08:25:08 am »
Interesante, esto seria como el webcraping? lo quiero aplicar a un web intranet del trabajo para no tener que estar copiando paginas a un excel, ya probe con la funcion de excel pero no ve la tabla.

No men, el web scraping se refiere al proceso de extracción de contenidos y datos de sitios web con algún software especializado en eso.

Las APIs por lo contrario son (lo voy a decir en palabras mortales  :phew: ) unas querys que se ejecutan para todo aquel que tenga acceso al API. Por ejemplo, un proveedor quiere compartir el stock de sus productos con algún distribuidor o revendedor. Entonces la query seria algo como

Código: [Seleccionar]
SELECT id, producto, stock FROM inventario
Esa query va a dar el reporte de todos los productos con su inventario, lo convierten en JSON y ya tienen un API básica. Pero quien puede ver toda esta información? Los distribuidores que previamente han solicitado acceso a esa API, entonces, con sus credenciales se conectan al API del proveedor, tabulan esa data y ya la pueden visualizar en una tabla como las del ejemplo.

Es más, eso justo es lo que hago en la segunda tabla de la imagen, obtengo el nombre y la url del producto, la categoría, la imagen y el precio. Esa tabla yo la puedo meter en mi web, o donde sea y ya hacerla visible a mis visitantes, pero si ellos dan click en un producto se irán a la web oficial de esos productos.

Algo así es como trabaja Amazon con su grupo de referidos, Amazon les comparte un API con información en tiempo real de stock, precios y otras cosas, y la gente cuando se mete a ofertas.com puede ver los productos de Amazon en ofertas y al dar click se van directito a Amazon (dejando la comisión al que hizo que el cliente llegara o comprara a Amazon).

Espero se haya entendido  :phew: