APIetara sartzea


Hurrengo atalean API ezberdinen erabilerari buruzko xehetasun gehiago ematen dira.  

Definizioak

API (Application Programming Interface) bat hainbat aplikazio beren artean komunikatzea ahalbidetzen duen interfazea da. Imajinatu APIa aplikazio baten eskaerak jasotzen, interpretatzen eta horiei formatu egokia duen erantzuna ematen dien “itzultzaile” bat dela. APIei esker, programa batek eta kanpoko zerbitzuek elkarri eragin diezaiokete eta programak bere kodearen barruan ez dauden funtzionaltasunak edo datuak atzitu ditzake.

API REST (Representational State Transfer) bat diseinu-printzipioen multzo bati jarraitzen dion API mota bat da, web-orrian aplikazioen arteko komunikazioa errazteko. API horiek HTTP metodo arruntak erabiltzen dituzte, hala nola GET, POST, PUT eta DELETE metodoak, horiek eta datuek elkarri eragiteko. REST arkitektura mota oso ezaguna da, datuak Internet bidez era erraz eta azkar batean transferitzea ahalbidetzen baitu.

Konexio-puntu bat, amaiera-puntu bat edo endpoint bat APIaren URL espezifiko bat da, eta atzitu daitekeen baliabide edo zerbitzu bat adierazten du. Eskaerak jaso eta erantzunak ematen dituen “harreman-puntua” da; adibidez, aplikazio baten erabiltzaileen zerrenda, produktu bati buruzko informazioa edo APIak eskaintzen duen beste edozein datu. 

Adibidez, adibideko API batean, erabiltzaile-zerrenda bat lortzeko endpoint bat https://api.ejemplo.com/usuarios izan ahalko litzateke.

API batera konektatzea

API batera konektatzeko, oinarrizko hiru elementu behar dira:

  1. Konexio-puntuaren URLa (endpoint): sartu nahi duzun baliabidearen helbidea.
  2. HTTP metodoa: egin nahi den ekintza mota. (Katalogo honetako APIaren kasuan, GET metodoa baino ez da behar).
  3. Sarbide-kredentzialak (eskatuz gero): API publiko batzuek baimentzea behar dute, bai API gako baten bidez, bai token bidezko sarbidea. Ez da beharrezkoa MITECOko Katalogoaren APIra sartzeko.

Adibideak

Ondoren, GET eskaera bat hainbat programazio-lengoaiatan egiteko moduaren adibideak erakusten dira:

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

        }

    }

}