Accès aux API


Vous trouverez plus d’informations sur comment utiliser les différentes API dans les sections qui suivent.  

Définitions

Une API (Application Programming Interface) est une interface qui permet à différents logiciels de communiquer entre eux. Imaginez l’API comme un « traducteur » qui reçoit des demandes d’une application, les interprète et envoie ensuite la réponse sous le bon format. Grâce aux API, un programme peut interagir avec des services externes et accéder à des fonctionnalités ou données qui ne sont pas présentes dans son code.

Une API REST (Representational State Transfer) est un type d’API qui respecte un ensemble de principes de conception pour faciliter la communication entre les applications sur internet. Ces API appliquent des méthodes HTTP communes, comme GET, POST, PUT et DELETE, pour interagir avec les données. Le REST est un style d’architecture très populaire car il permet de transférer des données rapidement et facilement via internet.

Un point de terminaison, ou endpoint, est une URL particulière de l’API qui correspond à une ressource ou un service accessible. C’est le « point de contact » qui reçoit les demandes et envoie les réponses, comme la liste des utilisateurs d’une application, un renseignement sur un produit ou toute autre donnée disponible sur l’API. 

Par exemple, pour une API donnée, le endpoint pour accéder à une liste d’utilisateurs pourrait être https://api.ejemplo.com/usuarios.

Connexion à une API

Trois éléments de base sont indispensables pour se connecter à une API :

  1. L’URL d’un point de terminaison (endpoint) : l’adresse de la ressource à laquelle on souhaite accéder.
  2. La méthode HTTP : le type d’action qu’on souhaite réaliser. (Pour l’API de ce Catalogue la méthode GET suffit).
  3. L’autorisation d’accès (si requise) : certaines API publiques requièrent une authentification, soit par clé API, soit par jeton d’accès. Cette démarche n’est pas nécessaire pour accéder à l’API du Catalogue MITECO.

Exemples

Voici des exemples de réalisation d’une demande GET dans différents langages de programmation :

import requests

url = "https://api.ejemplo.com/usuarios"

response = requests.get(url)

if response.status_code == 200:

    datos = response.json()

    print(datos)

else:

    print("Error en la solicitud:", response.status_code)

const url = "https://api.ejemplo.com/usuarios";

fetch(url)

  .then(response => {

    if (!response.ok) {

      throw new Error("Error en la solicitud: " + response.status);

    }

    return response.json();

  })

  .then(data => console.log(data))

  .catch(error => console.error("Error:", error));

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.net.HttpURLConnection;

import java.net.URL;

public class ApiExample {

    public static void main(String[] args) {

        try {

            URL url = new URL("https://api.ejemplo.com/usuarios");

            HttpURLConnection connection = (HttpURLConnection)

url.openConnection();

            connection.setRequestMethod("GET");

            int status = connection.getResponseCode();

            if (status == 200) {

                BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));

                String inputLine;

                StringBuilder content = new StringBuilder();

                while ((inputLine = in.readLine()) != null) {

                    content.append(inputLine);

                }

                in.close();

                System.out.println("Respuesta: " + content.toString());

            } else {

                System.out.println("Error en la solicitud: " + status);

            }

            connection.disconnect();

        } catch (Exception e) {

            e.printStackTrace();

        }

    }

}

csharp

Copiar código

using System;

using System.Net.Http;

using System.Threading.Tasks;

public class ApiExample

{

    public static async Task Main(string[] args)

    {

        HttpClient client = new HttpClient();

        string url = "https://api.ejemplo.com/usuarios";

        try

        {

            HttpResponseMessage response = await client.GetAsync(url);

            response.EnsureSuccessStatusCode();

            string responseBody = await response.Content.ReadAsStringAsync();

            Console.WriteLine("Respuesta: " + responseBody);

        }

        catch (HttpRequestException e)

        {

            Console.WriteLine("Error en la solicitud: " + e.Message);

        }

    }

}