Desarrollo de APIs REST

Última modificación por Admin el 06/03/2025 16:41

Arquitecturas REST

Las arquitecturas REST comparten las siguientes características.

  • Sin estado(Stateless): Las arquitecturas REST no mantienen estado lo que les permite ser más escalables.
  • Orientada a Recursos: Siendo un recurso un elemento de información accesible con un identificador global único
  • Operaciones Definidas: Un conjunto de operaciones estándar definidas que se aplican a cada uno de los recursos (GET,POST,PUT,DELETE etc).
  • HiperMedia: Definición de enlaces o vínculos que nos permiten navegar entre los diferentes recursos.

Niveles de madurez REST

Las arquitecturas REST se dividen en cuatro niveles de madurez (Modelo Richardson):

nivelesRest.png

  • Nivel 0: En el nivel 0 se usa HTTP como mecanismo de transporte a la hora de acceder de forma remota al servidor y obtener sus datos . Habitualmente se utilizan peticiones POST y XML/JSON para comunicarnos con el servidor (Plain Old XML) conectándonos a una URL concreta.
  • Nivel 1: Es el primer paso hacia un mejor enfoque. En el se define el concepto de Recurso . A partir de este momento en vez de realizar peticiones HTTP a un único endpoint comenzamos a realizar peticiones a recursos individuales cada uno de ellos dispone de una URL única de acceso como por ejemplo /personas.
  • Nivel 2: En este nivel hay un cambio importante comparado con los anteriores. En los anteriores la mayoría de la gente realiza todas las peticiones usando GET o POST. A partir de este nivel pasamos a realizar las peticiones utilizando HTTP Verbs, concretamente de la siguiente forma:
    • GET: Obtención de información de un Recurso
    • POST: Inserción de nueva información del Recurso
    • PUT: Actualización de la información del Recurso
    • DELETE: Borrado de la información de un Recurso
  • Nivel 3 : Este es el nivel más exigente y permite que cuando nosotros devolvamos información sobre un Recurso vía GET este puede contener enlaces a otros Recursos relacionados (HATEHOAS).

 nivel6.png

Salvo adaptaciones de aplicaciones legacy, los nuevos desarrollos deberán cumplir al menos hasta el nivel 2 (incluido).

Otras normas

  • Los recursos estarán en formato camel case y siempre en plural.
  • Los servicios deberán aceptar tanto peticiones en formato XML como en formato JSON. La respuesta igualmente será JSON o XML en función de la petición.

Contexto y versionado

Cada vez que se modifique un método de la API se correrá la versión de la misma. El path base será siempre "webapi" seguido de la versión.

http://<host>:<puerto>/<app>/webapi/<version>

Documentación y pruebas

Toda funcionalidad expuesta en una aplicación en forma de API Rest deberá estar documentada y probada.

Documentación

Por cada servicio se deberá documentar los siguientes puntos:

  • URL
    • Método HTTP
    • Parámetros de entrada: nombre, tipo (formato), obligatoriedad
    • Parámetros de salida

Se recomienda el uso de la herramienta Swagger.

Pruebas

Junto a la documentación, se deberá entregar un proyecto Postman en formato "JSON Collection v.2.1" con scripts de test para cada petición.

Estos scritps pasarán a formar parte del proceso de CI y en caso de no cumplirse las aserciones, el proyecto no será desplegado en los servidores de Gobierno.

Checklist de calidad

Puede descargar el checklist de calidad desde la sección de QA.

© 2025 GOBIERNO DE CANTABRIA - AVISO LEGAL Y PROTECCIÓN DE DATOS