Accés a API

Per a accedir directament a les API, polsa sobre el següent enllaç:  


En les següents seccions es mostren més detalls sobre com usar les diferents API. 

Definicions

Una API (Application Programming Interface) és una interfície que permet a diferents aplicacions comunicar-se entre si. Imagina l’API com un “traductor” que rep sol·licituds d’una aplicació, les interpreta i després torna la resposta en el format adequat. Gràcies a les API, és possible que un programa interactue amb servicis externs i accedisca a funcionalitats o dades que no estan dins del seu propi codi.

Una API REST (Representational State Transfer) és un tipus d’API que seguix un conjunt de principis de disseny per a facilitar la comunicació entre aplicacions en el web. Estes API usen mètodes HTTP comuns, com ara GET, POST, PUT i DELETE, per a interactuar amb les dades. REST és un estil d’arquitectura molt popular perquè permet la transferència de dades de forma ràpida i senzilla a través d’Internet.

Un punt de connexió, punt final o endpoint és una URL específica de l’API que representa un recurs o servici al qual es pot accedir. És el “punt de contacte” que rep les sol·licituds i torna les respostes, com el llistat d’usuaris d’una aplicació, la informació sobre un producte o qualsevol altra dada que oferisca l’API. 

Per exemple, en una API d’exemple, l’endpoint per a obtindre una llista d’usuaris podria ser https://api.ejemplo.com/usuarios.

Connectar a una API

Per a connectar a una API, es necessiten tres elements bàsics:

  1. URL del punt de connexió (endpoint): l’adreça del recurs al qual es vol accedir.
  2. Mètode HTTP: el tipus d’acció que es vol fer. En el cas de l’API d’este Catàleg, únicament és necessari el mètode GET).
  3. Credencials d’accés (si cal): algunes API públiques requerixen autenticació, ja siga mitjançant una clau API o tokens d’accés. No és necessari per a accedir a l’API del Catàleg de MITECO.

Exemples

A continuació, es mostren exemples de com fer una sol·licitud GET en diferents llenguatges de programació:

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);

        }

    }

}