Requisitos
La Web API de Crono expone datos y operaciones a sistemas de terceros mediante una API REST versionada. La provee el módulo Crono.WebApi, que se apoya en el mismo catálogo de módulos que la aplicación web, de modo que cada módulo puede publicar sus propios endpoints.
Qué se necesita
- El módulo
Crono.WebApiinstalado. Es un módulo del grupoApi(nombre de sistemaCrono.WebApi) que aporta la infraestructura REST: versionado, documentación OpenAPI/Swagger y el pipeline de autenticación y errores. Se instala desde el Administrador de módulos como cualquier otro (ver Primeros pasos con módulos). - Un host que cargue los módulos. La API vive en el mismo proceso que carga el catálogo de módulos, porque los controladores de API residen en los módulos (por ejemplo, el controlador de rutas de cobranza vive en
Crono.RutasCobranza, no enCrono.WebApi). - Una credencial de API válida. Cada llamada se autentica con el esquema de autenticación
Apiy se autoriza por permiso (ver Autenticación). - Cliente que hable JSON. La API produce y consume el tipo de medio
application/vnd.crono.v1+json; enviar o aceptar otro tipo provoca un415 Unsupported Media Type.
Dependencias que trae el módulo
Crono.WebApi declara como referencias privadas las librerías de documentación y serialización que necesita:
Swashbuckle.AspNetCore(Swagger, SwaggerGen, SwaggerUI, Annotations) para la documentación interactiva.Microsoft.OpenApipara el modelo OpenAPI.Markdigpara renderizar descripciones en Markdown dentro de la documentación.
El versionado de la API lo aporta Asp.Versioning, que llega transitivamente a los módulos que exponen endpoints.
Endpoints en un módulo
Cualquier módulo puede publicar endpoints referenciando Crono.Web.Comun (que trae CronoApiController y WebApiGrupoAttribute) y Asp.Versioning. El patrón de ruta es api/v{version}/...:
[WebApiGrupo(WebApiGrupoNombres.Prestamo)]
[ApiVersion("1")]
[Route("api/v{version:apiVersion}/rutas-cobranza")]
public class RutasCobranzaController : CronoApiController
{
// ...
}
Los detalles del controlador base, el versionado y el modelo de errores están en La Web API en detalle.
La API es de datos, no de contenido: sirve para que sistemas externos consulten y operen sobre entidades de Crono (por ejemplo, la ruta diaria de un asesor de cobranza), siempre acotado a lo que la credencial autenticada tiene permitido.