0% encontró este documento útil (0 votos)
1 vistas7 páginas

APIs REST

El documento describe las APIs REST, que son interfaces que permiten la comunicación entre aplicaciones siguiendo principios de transferencia de estado representacional. Se detallan los componentes de una API REST, como endpoints, métodos HTTP y el formato de respuesta en JSON. Además, se presenta un ejemplo práctico de implementación en Android utilizando la librería Volley para realizar solicitudes a una API y procesar los datos obtenidos.

Cargado por

Leon Cio
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
1 vistas7 páginas

APIs REST

El documento describe las APIs REST, que son interfaces que permiten la comunicación entre aplicaciones siguiendo principios de transferencia de estado representacional. Se detallan los componentes de una API REST, como endpoints, métodos HTTP y el formato de respuesta en JSON. Además, se presenta un ejemplo práctico de implementación en Android utilizando la librería Volley para realizar solicitudes a una API y procesar los datos obtenidos.

Cargado por

Leon Cio
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

TECNICATURA UNIVERSITARIA EN INFORMÁTICA

APLICADA AL DISEÑO MULTIMEDIA Y DE SITIOS WEB

DESARROLLO DE APLICACIONES MÓVILES

TEMA:
APIs REST
¿Qué es una API REST?

API (Application Programming Interface o Interfaz de Programación de Aplicaciones): es un


conjunto de reglas y definiciones que permite que dos aplicaciones se comuniquen entre sí.
Funciona como un intermediario que permite que las aplicaciones soliciten y compartan datos o
servicios, permitiendo la integración y el intercambio de información.

REST (Representational State Transfer o Transferencia de Estado Representacional): es un estilo


arquitectónico para diseñar servicios web, basándose en un conjunto de principios que describen
cómo deberían funcionar.

Entonces una API REST es una interfaz de programación de aplicaciones (API) que sigue los
principios del estilo arquitectónico de transferencia de estado representacional (REST).

Componentes de una API REST

- Endpoint: la URL donde se encuentra el recurso al que queremos acceder.

- Las API REST utilizan métodos HTTP. Los más comunes son:
o GET: obtener datos del servidor.
o POST: enviar datos al servidor para crear un nuevo recurso.
o PUT: actualizar un recurso existente.
o DELETE: eliminar un recurso.

- Encabezados (Headers): información adicional como tipo de contenido, autenticación, etc.

- Cuerpo (Body): datos que se envían en la petición (solo para POST y PUT).

Respuesta de una API REST

- Código de estado HTTP: indica el resultado de la solicitud, por ejemplo, 200 OK, 404 Not Found
o 500 Internal Server Error.
- Cuerpo de la respuesta: contiene los datos que devuelve el servidor, generalmente en formato
JSON.
JSON (JavaScript Object Notation)

- Formato ligero de intercambio de datos, fácil de leer y escribir tanto para humanos como para
máquinas.
- Estructura: clave-valor.
- Las respuestas del servidor pueden ser en forma de Objeto JSON o Array JSON.

Ejemplos de API REST

- API de Google Maps.


- API de Instagram.
- API de OpenWeatherMap.

Librerías en Android para trabajar con APIs REST

Existen diversas librerías para trabajar con APIs REST en Android. Dos de las más conocidas son
Volley y Retrofit, ambas son opciones muy potentes para el manejo de peticiones HTTP. En nuestro
caso utilizaremos Volley pero en el material adicional encontrarás la documentación de ambas
librerías para que puedas elegir la que más te guste.

Implementación con Volley

Lo primero que debemos hacer es añadir en el AndroidManifest el permiso para el uso de internet:
<uses-permission android:name="[Link]" />

Así como existe la etiqueta <application> dentro de <manifest> ... </manifest>, de la misma
manera se pueden añadir distintos <uses-permission />, como permisos para el uso de internet o
uso de la cámara del dispositivo.

Luego, en el archivo [Link] (Module:app), buscar “dependencies” y agregar la dependencia de


Volley y presionar el “Sync Now” que aparecerá arriba a la derecha.

dependencies {
// ...otras dependencias...
implementation ‘[Link]:volley:1.2.1’
}
Veremos dos ejemplos, primero comenzaremos utilizando JSON Placeholder, que nos brinda una
API gratuita para realizar pruebas, pudiendo acceder a un listado de users, posts, photos, etc. En
nuestro caso, haremos un ejemplo simulando que queremos consultar a una API el listado de
usuarios, haciendo una consulta a [Link] Si se ingresa a dicha
URL, se puede ver la respuesta en JSON que nos devuelve la API, notando que es un JSONArray.

Para este ejemplo creamos una clase User, pero en otros casos podría no ser necesario.

public class User {


private int id;
private String name;

// Getters y Setters
public int getId() { return id; }
public void setId(int id) { [Link] = id; }

public String getName() { return name; }


public void setName(String name) { [Link] = name; }
}

Luego, creamos un [Link] que será donde vamos a realizar la consulta a la API.
En el código te iré dejando comentarios en las partes más importantes para entender paso por paso.

import [Link];
import [Link];
import [Link];

import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link].R;

import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
public class MainActivityAPI extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
[Link](savedInstanceState);
setContentView([Link].activity_main_api);

// Crear una instancia de RequestQueue para manejar las solicitudes de red


RequestQueue queue = [Link](this);

// Definir la URL de la API a la que se va a realizar la solicitud


String url = "[Link]

// Crear una solicitud JSONArray para obtener los datos de la API mediante
// una solicitud de tipo GET
JsonArrayRequest jsonArrayRequest = new JsonArrayRequest([Link], url, null,
new [Link]<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
List<User> users = new ArrayList<>();
for (int i = 0; i < [Link](); i++) {
try {
// Procesar la respuesta JSON
JSONObject userObject = [Link](i);
User user = new User();
[Link]([Link]("id"));
[Link]([Link]("name"));
[Link](user);
} catch (JSONException e) {
[Link]();
}
}
for (User user : users) {
// Hacer algo con los datos de los usuarios
Log.d("User", "ID: " + [Link]() + ", Name: " + [Link]());
}
}
}, new [Link]() {
@Override
public void onErrorResponse(VolleyError error) {
// Manejar errores de la solicitud
Log.e("Error", [Link]());
}
});
// Agregar la solicitud a la cola de solicitudes
[Link](jsonArrayRequest);
}
}

Con lo que hicimos, al ejecutar la app se realiza la consulta a la API y se procesan los usuarios
obtenidos, y dentro del for donde se recorre cada usuario se podría realizar lo que se desea, como
mostrar la información en un listado en la pantalla. En ese caso solo se muestra un Log, al que
podemos acceder desde la pestaña Logcat en la barra inferior de AndroidStudio y aplicar un filtro
tag:’User’ para mostrar los resultados obtenidos y asegurarnos que la API devuelve la información
correcta, como se observa en la Fig. 1.

Fig. 1: Resultado de la consulta de usuarios a la API.

Otro ejemplo clásico y útil para practicar es realizar una consulta a una API con información del
clima, por ejemplo, OpenWeathetMap u otra. En el material adicional te comparto el enlace a la API
de OpenWeatherMap para que puedas revisar cómo se utiliza, o buscar otra que te interese. Es
interesante para que veas el uso de URL con parámetros y API_KEY.

Algunos detalles:
- En la mayoría de APIs es muy probable que necesitemos crear una cuenta para obtener una
API_KEY que se debe utilizar en la URL al realizar la consulta.
- También en esos casos normalmente no hará falta crear una clase adicional como User en el
ejemplo anterior, simplemente podrás obtener la información de la respuesta de la API y
mostrarla en el diseño de interfaz que hayas creado. El caso anterior con el uso de User fue para
tener un ejemplo más.
- Siempre prestar atención al tipo de respuesta que devuelve la API, en algunos casos puede ser
un JSONObject y en otros un JSONArray. Por ejemplo, si se utiliza la API de OpenWeatherMap,
para la URL y la información podrías tener algo similar a lo que se muestra debajo.
String URL =
"[Link]
="+longitude+"&appid="+API_KEY;

JSONObject jsonObject = new JSONObject(response); // si el JSON viene como objeto


//JSONArray jsonArray = new JSONArray(response); // si el JSON viene como array

// Descripcion del clima


JSONArray jsonArrayWeather = [Link]("weather");
JSONObject jsonObjectWeather = [Link](0);
[Link]([Link]("description"));

De la misma manera se podría ir obteniendo y mostrando el resto de información que nos devuelve
la API.

Material adicional

Volley overview. (s. f.). Volley. [Link]

RetroFIt. (s. f.). [Link]

JSONPlaceholder - Free Fake REST API. (s. f.). [Link]

[Link]. (s. f.). Weather API - OpenWeatherMap. [Link]

También podría gustarte