es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo hacer un ciclo de consulta API + salida de matriz en PHP

Soy nuevo en PHP. Quiero exportar algunos datos de una API de un sitio web, tengo un script con una consulta y una respuesta JSON, pero hay aproximadamente 20 consultas similares y supongo que puedo simplificar mucho este script con bucles, pero realmente no sé cómo hacerlo. También quiero insertar los resultados en una tabla.

Ejemplo:

$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://api.opensea.io/api/v1/collection/clonex');
$json = $response->getBody();
$data = json_decode($json);
print "CloneX: ";
print_r($data->collection->stats->floor_price);

$client2 = new \GuzzleHttp\Client();
$response2 = $client2->request('GET', 'https://api.opensea.io/api/v1/collection/the-solaverse-sola-stars');
$json2 = $response2->getBody();
$data2 = json_decode($json2);
print "<br>SolaVerse: ";
print_r($data2->collection->stats->floor_price);
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Dado que tienes 20 consultas similares, sería mejor usar bucles como for, foreach o while, los cuales pueden ayudarte a automatizar y simplificar el proceso. Por ejemplo, puedes crear un array de URLs para acceder a la API y luego recorrer cada URL, haciendo la solicitud, decodificando la respuesta JSON y luego agregando los resultados a una tabla.

    Aquí tienes un código de ejemplo que utiliza un bucle foreach:

    // Define un array de URLs para recorrer
    $urls = array(
        'https://api.opensea.io/api/v1/collection/clonex',
        'https://api.opensea.io/api/v1/collection/the-solaverse-sola-stars',
        // Añade tantas URLs como necesites aquí
    );
    
    // Crea una tabla para almacenar los resultados
    echo '<table>';
    echo '<tr><th>Colección</th><th>Precio mínimo</th></tr>';
    
    // Recorre cada URL y realiza la solicitud
    foreach ($urls as $url) {
        $client = new \GuzzleHttp\Client();
        $response = $client->request('GET', $url);
        $json = $response->getBody();
        $data = json_decode($json);
    
        // Agrega los resultados a la tabla
        echo '<tr>';
        echo '<td>' . $data->collection->name . '</td>';
        echo '<td>' . $data->collection->stats->floor_price . '</td>';
        echo '</tr>';
    }
    
    echo '</table>';
    

    Este código define un array de URLs para recorrer, crea una tabla para almacenar los resultados y luego recorre cada URL utilizando un bucle foreach. Realiza la solicitud, decodifica la respuesta JSON y luego agrega el nombre de la colección y el precio mínimo a la tabla.

    Este código asume que cada respuesta JSON tiene un objeto “collection” con una propiedad “name” y un objeto “stats” con una propiedad “floor_price”. Es posible que necesites ajustar el código para que coincida con la estructura de la respuesta de la API que estás utilizando.

    ¡Espero que esto te ayude!

Comments are closed.