Skip to content

Consumir API

arpincheira edited this page Dec 3, 2020 · 1 revision

Ejemplo de Api Request

Ejemplo de form

<?php include('templates/header.html'); ?>
<?php $id_usuario = $_GET['ID']; ?>
        <h1>Aquí hacemos Requests a la API</h1>
        <h3>Ingrese los campos que desea</h3>
        <div class="api-requester">
            <form align="center" action="busqueda_texto_mensaje.php" method="get">
                <input type="hidden" name="ID" value="<?php echo $id_usuario ?>">
                <label for="desired">Busqueda Simple:</label><br>
                <input id="desired"> type="text" name="desired">
                <label for="required">Busqueda Exacta:</label><br>
                <input id="required" type="text" name="required">
                <label for="forbidden">No buscar:</label><br>
                <input id="forbidden" type="text" name="forbidden">
            <input type="submit" value="Buscar">
            </form>
        </div>
    </body>
</html>

Ejemplo de manejo de cosulta

Mientras que en busqueda_texto_mensaje.php sería:

<?php include('../templates/header.html');   ?>

<body>
    <?php 
    # Aquí deberían manejar los casos en los que no se ingrese información en alguno de los inputs del form, por simplicidad  
    $desired = explode(",", $_GET['desired']);
    $required = explode(",",$_GET['required']);
    $forbidden =  explode(",", $_GET['forbidden']);
    $userId =  $_GET['ID'];

    $data = array(
        'desired' => $desired,
        'required' => $required,
        'forbidden' => $forbidden,
        'userId' => intval($userId)
    );


    $options = array(
        'http' => array(
        'method'  => 'GET',
        'content' => json_encode( $data ),
        'header'=>  "Content-Type: application/json\r\n" .
                    "Accept: application/json\r\n"
        )
    );
    
    $context  = stream_context_create( $options );
    $result = file_get_contents( 'https://miApi.herokuapp.com/text-search', false, $context );
    $response = json_decode($result, true);

    ?>

    <div class="container">
        <table>
            <thead>
            <tr>
                <th>Fecha</th>
                <th>Latitud</th>
                <th>Longitud</th>
                <th>Enviado a</th>
                <th>ID mensaje</th>
                <th>Mensaje</th>
            </tr>
            </thead>
            <tr>
            <?php foreach ($response as $message){
                    # Aquí se añade un ejemplo en el que se obtiene el usuario que recibe el mensaje
                    $ch = curl_init();
                    $url = 'https://miApi.herokuapp.com/users/' . $message['receptant'];
                    curl_setopt($ch, CURLOPT_URL, $url);
                    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                    $res = curl_exec($ch);
                    curl_close($ch);
                    $receptant = json_decode($res, true);
        
                    echo "<tr> <td>" .  $message['date'] . "</td>";
                    echo "<td>" . $message['lat'] . "</td>";
                    echo "<td>" . $message['long'] . "</td>";
                    echo "<td>" . $receptant["name"] . "</td>";
                    echo "<td>" . $message['mid'] . "</td>";
                    echo "<td>" . $message['message'] . "</td> </tr>";
            }
            ?>
            </tr>
        </table>
    </div>

<?php include('../templates/footer.html'); ?>