API REST automática
Desde la v8.0 XavaPro genera y publica automáticamente una API REST para todas tus entidades JPA. No hace falta escribir controladores, DTOs, mapeadores ni ficheros de configuración: escribe las entidades de dominio con las anotaciones estándar de JPA y OpenXava, y la API REST está disponible de inmediato.
La API generada incluye:
- CRUD completo bajo URLs en plural, como
/api/customers.
- Una especificación OpenAPI 3 y un Swagger UI embebido en
/api/.
- Autenticación JWT con los usuarios de XavaPro y las mismas restricciones de rol, módulo, acción y campo que la interfaz web.
- Paginación, ordenación por varias propiedades y operadores de filtro.
- Respeto de
@Tab(baseCondition=...), Histórico, notificaciones por correo y multiempresa.
- CORS configurable para frontends basados en navegador.
Por defecto la API automática está desactivada por seguridad. Puedes activarla desde la interfaz de administración sin reiniciar el servidor.
Ve a la carpeta Admin del menú de la aplicación y abre el módulo Configuración. En el formulario, marca la casilla Autogenerar API y pulsa Grabar:
Una vez marcada, todos los endpoints bajo /api/ quedan activos de inmediato. Si se desmarca, cualquier petición a /api/* recibe HTTP 404 con el cuerpo JSON {"error":"API is disabled"}.
XavaPro incluye un explorador Swagger UI embebido y sin conexión que permite inspeccionar y probar interactivamente cada endpoint desde el navegador.
Para abrir Swagger UI, usa esta URL:
http://localhost:8080/tuaplicacion/api/
Desde Swagger UI puedes pulsar Authorize, pegar el JWT (sin el prefijo Bearer; Swagger UI lo añade), explorar los esquemas JSON de tus entidades y ejecutar consultas contra la aplicación.
La especificación OpenAPI 3.0 en JSON está en:
GET /api/openapi.json
La API automática aplica el mismo modelo de seguridad que XavaPro en la interfaz web:
- Acceso a módulos: Un usuario solo puede acceder al endpoint de una entidad si sus roles tienen permiso para ver ese módulo. Acceder a una entidad prohibida devuelve HTTP 403.
- Módulos de solo lectura: Si el módulo es de solo lectura para el usuario o su rol, solo se permiten peticiones
GET. POST, PUT y DELETE devuelven HTTP 403.
- Derechos de acción: Crear (
POST) exige permiso para la acción new; modificar (PUT) exige save; borrar (DELETE) exige delete.
- Propiedades excluidas: Las propiedades configuradas como excluidas para el rol del usuario se ocultan en todos los
GET y se ignoran en POST y PUT.
- Propiedades de solo lectura: Se devuelven en los
GET pero se ignoran en las modificaciones PUT.
Puedes crear un rol dedicado api (o varios roles de API) en el módulo Roles para los consumidores de la API. Asignar ese rol a las cuentas de API permite afinar exactamente qué módulos, acciones y campos son accesibles.
Puedes ver todos los detalles en la documentación.
|