Acceso a APIS


Nas seguintes seccións móstranse máis detalles sobre como usar os diferentes APIs.  

Definicións

Un API (Application Programming Interface ou Interface de Programación de Aplicacións) é un interface que permite a diferentes aplicacións comunicarse entre si. Imaxina o API coma un "tradutor" que recibe solicitudes dunha aplicación, interprétaas e logo devolve a resposta no formato axeitado. Grazas aos APIs, é posible que un programa interactúe con servizos externos e acceda a funcionalidades ou datos que non están dentro do seu propio código.

Un API REST (Representational State Transfer ou Transferencia de Estado Representacional) é un tipo de API que segue un conxunto de principios de deseño para facilitar a comunicación entre aplicacións na web. Estes APIs usan métodos HTTP comúns, como GET, POST, PUT e DELETE, para interactuar cos datos. REST é un estilo de arquitectura moi popular porque permite a transferencia de datos de forma rápida e sinxela a través de internet.

Un punto de conexión, punto final, ou endpoint ou é un URL específico do API que representa un recurso ou servizo ao que se pode acceder. É o "punto de contacto" que recibe as solicitudes e devolve as respostas, como a listaxe de usuarios dunha aplicación, a información sobre un produto ou calquera outro dato que ofreza o API. 

Por exemplo, nun API de exemplo, o endpoint para obter unha lista de usuarios podería ser https://api.ejemplo.com/usuarios.

Conectar a una API

Para conectar a un API precísanse tres elementos básicos:

  1. URL do Punto de conexión (endpoint): a dirección do recurso ao que se desexa acceder.
  2. Método HTTP: o tipo de acción que se desexa realizar. No caso do API deste Catálogo unicamente é necesario o método GET.
  3. Credenciais de acceso (se se require): algúns APIs públicos requiren autenticación, xa sexa mediante unha clave API ou tokens de acceso. Non é preciso para acceder ao API do Catálogo de MITECO.

Exemplos

A continuación móstranse exemplos de como realizar unha solicitude GET en diferentes linguaxes de programación:

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

        }

    }

}