Ir al contenido

Rutas y CRUD

Las rutas son los puntos de entrada de su API. Están agrupadas por recurso, y puede escribirlas a mano o generarlas desde un modelo.

La sección Rutas: un grupo de rutas CRUD generado desde un modelo, con los métodos, las rutas y las respuestas

Una ruta lleva un método, una ruta, unos parámetros y unas respuestas. La ruta utiliza la sintaxis {{param}} de Restorm: en cuanto escribe {{id}} en la ruta, el parámetro correspondiente aparece; retirarlo lo suprime.

La pestaña Definición de una ruta enumera sus parámetros — los parámetros de ruta (creados a partir de los placeholders {{param}}) y los parámetros de consulta / cabecera que añade con Añadir un parámetro. Cada uno lleva un nombre, una ubicación (en), su carácter requerido, una descripción y, opcionalmente, un ejemplo.

La celda Tipo es un combo: elija un primitivo (string, integer, number, boolean) o uno de los enums con nombre del diseño en un solo clic. Para los casos más ricos, elija Advanced… para abrir un pequeño cuadro de diálogo donde puede:

  • hacer del parámetro un array y elegir su tipo de elemento (array<string>, …) — un parámetro de consulta multivalor;
  • darle valores de enum inline (el conjunto permitido, enumerado en chips) cuando no está tipado por un enum con nombre;
  • Extraer a un enum con nombre — promover esos valores inline a un enum compartido (véase Modelos y enums).

Un parámetro también puede estar vinculado a una propiedad de modelo (columna Enlace de modelo), de la que hereda el tipo, o marcarse como obsoleto. Cada parámetro — su tipo, su enum, su obsolescencia — se refleja en la documentación generada y en cada proyección de protocolo.

Desde los ajustes de un modelo, Generar el CRUD crea con un clic un grupo de rutas nombrado según el plural del modelo, con seis rutas:

RutaMétodo y rutaRespuestas
ListarGET / (paginado)200
RecuperarGET /{{id}}200 · 404
CrearPOST /201
ReemplazarPUT /{{id}}200 · 404
ActualizarPATCH /{{id}}200 · 404
EliminarDELETE /{{id}}204 · 404

La lista está paginada (desplazamiento/offset, 20 elementos por defecto, 100 como máximo). Cada {{id}} se vincula automáticamente al identificador del modelo.

El cuadro de diálogo Generar el CRUD ofrece dos opciones:

  • Reemplazar las rutas existentes — para evitar duplicados si regenera.
  • Proteger las rutas de escritura mediante autenticación — la creación, el reemplazo, la actualización y la eliminación exigen entonces un token (bearer), mientras que las lecturas permanecen públicas.

También recuerda que el CRUD se sirve en cada protocolo: rutas REST, consultas y mutaciones GraphQL, métodos gRPC, conjunto de entidades OData y operaciones SOAP (véase Servir el diseño como mock).

Para cada propiedad marcada como searchable, Generar las rutas de búsqueda añade un parámetro de consulta vinculado a la ruta de listado del modelo (y crea esa ruta si aún no existe).

La autenticación se configura en tres niveles: un valor por defecto del diseño, una autenticación requerida por grupo, y un reemplazo por ruta (que hereda del grupo por defecto). Los modos disponibles son Ninguno, Bearer (JWT), Clave de API (cabecera) y Basic.

Las etiquetas agrupan las rutas para la documentación y la exportación OpenAPI. Viven en dos niveles: una ruta lleva sus propias etiquetas (su pestaña Definición), y un grupo lleva etiquetas compartidas (sus ajustes) aplicadas a cada una de sus rutas. Las etiquetas efectivas de una ruta son la unión de ambas — por eso una etiqueta común a todo un grupo se pone preferiblemente una sola vez en el grupo. Cuando convierte una API importada en un diseño, una etiqueta presente en todas las rutas de un grupo se eleva automáticamente al grupo.

Una ruta (como una propiedad o un parámetro) puede marcarse como obsoleta desde sus Ajustes. Una ruta obsoleta aparece atenuada en la lista de Rutas y en los clientes generados, y lleva un aviso de obsolescencia en su pestaña. La bandera se propaga a cada proyección de protocolo — el deprecated de OpenAPI, la directiva @deprecated de GraphQL, los descriptores SOAP y gRPC, y los metadatos OData — para que los consumidores de cualquier protocolo servido la vean.