Servicios web con axum
9 pasos en 4 series de Rust.
Un servicio web pequeño en Rust. Rutas y handlers, luego extractores y estado compartido, que es donde el diseño guiado por tipos de axum o te encanta o te produce un error del compilador del largo de una página.
Respuestas y middleware lo cierran. Nueve pasos, deliberadamente acotados: lo suficiente para ver la forma de un servicio axum sin pretender que un tour te enseñe a operarlo en producción.
Rutas y handlers
- Un router y un handlerUn servicio de axum es un Router de rutas, cada una apuntando a un handler async.
- JSON de entrada y de salidaJson es extractor y respuesta a la vez, impulsado por serde sobre tus tipos.
- Anidar y fallbacksLos routers se componen: anida un sub-router bajo un prefijo y dale al resto un fallback.
Extractores y estado
- Extractores Path y QueryLos extractores tipados desarman por ti las partes de una URL.
- Estado compartidoState lleva un handle a lo que tus handlers comparten — un pool, un caché, un contador.
Respuestas y middleware
- Códigos de estado y encabezadosUna respuesta de tupla fija estado, encabezados y cuerpo en un solo return.
- Un tipo de error que respondeImplementa IntoResponse para tu error y los handlers pueden usar el operador ?.
- Capas de middlewareUna capa envuelve cada ruta debajo de ella: logging, timeouts, compresión.
Bis
- tour_api.rsUn servicio pequeño y completo: estado compartido, rutas anidadas, errores tipados, JSON.