Resumen
Los servicios parametricos son una nueva funcionalidad incorporada en el API Ceibo ( o API Tarjeta habientes ) .
Esta funcionalidad permite crear nuevos servicios dentro del API de Ceibo tan solo configurando datos en tablas parametricas.
La esencia de esta funcionalidad es poder agilizar los procesos de desarrollo, automatizando la comunicacion entre el consumidor de un servicio (Ej: Frontend) y la base de datos (Ceibo), sin la necesidad de tener que programar por cada nuevo procedure un nuevo servicio que lo invoque.
En resumen, esta funcionalidad permite convertir un Procedimientos Almacenados en Servicios RESTFul que retornen JSON y que pueden ser invocados por cualquier programa.
Restricciones y Limitaciones
El uso de esta funcionalidad tiene unas de restricciones y limitaciones las cuales detallaremos a continuación.
Expand | |||||
---|---|---|---|---|---|
| |||||
ServiciosRequest:
Response:
Procedimientos AlmacenadosLos procedimientos almacenados configurados deben cumplir obligatoriamente con los siguientes criterios: Criterios Generales
Parámetros de Entrada / Salida:Entrada:Solo son soportados los siguientes tipos de datos para los parámetros de entrada:
Salida:Solo son soportados los siguientes tipos de datos para los parámetros de salida:
|
Plataforma de los Servicios Paramétricos
Diagrama
Los servicios paramétricos son consumidos desde un servicio principal que recibe los parámetros de acceso (ruta o path del Servicio) y los datos de entrada (de enviarse) , busca los datos parametrizados para el servicio, y luego ejecuta el SP configurado, retornando la respuesta.
Expand | ||
---|---|---|
| ||
API Ceibo / API Tarjeta Habientes
Todos los servicios habilitados o ha habilitarse serán invocados a través de un servicio principal o raíz que se encuentra en el API. Este servicio se encarga de las validaciones, verificaciones, configuración, ejecución y retorno de la respuesta de la ejecución del procedimiento almacenado que fue configurado
Expand | ||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||
Linkraíz deldel ServicioVersion 1: http://host/ws-tarjetahabiente/prmservices/v1/sprunner/prmGroup/prmVersion/prmServicio Observaciones: Este servicio quedará deprecado por la Version 2 Version 2: http://host/ws-tarjetahabiente/prmservices/v2/sprunner/prmGroup/prmVersion/prmServicio Donde:
Invocación del ServicioRequest:Además de los parámetros en el path del Servicio, el
Response:La respuesta del servicio depende de las configuraciones de los parámetros de salida del SP configurado. Pudiendo retornar desde ningún parámetro hasta N.
Response:La respuesta del servicio depende de las configuraciones de los parámetros de salida del SP configurado. Pudiendo retornar desde ningún parámetro hasta N parametros.
|
Base de Datos
Todas las configuraciones para los Servicios paramétricos se hacen en la base de datos BAPY CEIBO
Paquete PL/SQL
title | Ver Informacion |
---|
CREDITOPY.PKG_API_CEIBO
Todas los métodos necesarios para que los servicios otorgados por el API Paramétrico funcionen se encuentran en este PKG.
Observaciones IMPORTANTES !!:
La idea de este PKG es ser un package aislado, por lo cual dentro de este package SOLO deben existir los métodos relacionados al funcionamiento de la parametrizacion del SPs como servicios- Códigos PARTICULARES, PROPIOS del Proyecto en si y NO de este PKG
- No agregar procedures, funciones, types, referencias, etc.
- No tocar este PCK salvo si sea para hacer ajustes en el API Paramétrico
Tablas de Configuracion
title | Ver Info de Tablas |
---|
DER:
Detalle de Tablas:
Tabla principal de configuraciones de los servicios parametricos.
En esta tabla se configuran los procedures que seran invocados, la base de datos donde esta alojado el SP y el path de accesion en el API
{group}/v1/getDatos
La version del servicio disponibilizado. Ej:
tarjetas/{version}/getDatos
El nombre del servicio. Ej:
tarjetas/v1/{servicio}
La base de datos en las que es ejecutado el Procedure (BAPY / OLPY)
El nombre del esquema en el que se encuentra el procedure.
Obs: El usuario que ejecuta el SP es CREDITOPY, asi que debe tener permisos de ejecucion sobre el esquema.pkg.procedure
El nombre del procedimiento almacenado a ejecutar.
Obs: Configurar aqui el procedure procedure_name o pkg_name.procedure_name, sin el esquema. El API concatenará durante la ejecucion el esquema.sp_name o esquema.pkg_name.sp_name
Tabla hija de la tabla anterior y tiene como funcion registrar el detalle de los parametros de entrada con los que cuenta el procedure configurado
Especifica el tipo de dato permitido. Valores permitidos:
- NUMERO
- TEXTO
- FECHA
Obs: Fecha en formato: dd/mm/yyyy o dd/mm/yyyy hh24:mi:ss
Tabla que registra el detalle de los parametros de salida con los que cuenta el procedure configurado
Mapeo del tipo de dato que es retornado por el SP. Este dato se utiliza para la creacion del statement de ejecucion del SP contra la base de datos.
Especifica el tipo de dato permitido. Valores permitidos:
- NUMERO
- TEXTO
- FECHA
- CURSOR
- ESTRUCTURA
Obs: El tipo de dato "ESTRUCTURA" es un tipo de dato personalizado que representa el primer registro retornado por un Cursor. El API toma este tipo de dato y lo devuelve como un objeto JSON en lugar de como un Array JSON.
Configuracion de Servicios
Configurando Nuevos Servicios
Segun lo expuesto mas arriba para agregar nuevos servicios se debe:
- Contar con Procedimiento Almacenado (en BAPY/OLPY, parametros de entrada, luego salida, etc.)
- Configurar el mismo en las tablas de configuraciones
Consumir Servicios Configurados
Segun lo expuesto mas arriba agregar nuevos servicios
Observaciones
|
Base de Datos
Todas las configuraciones para los Servicios paramétricos se hacen en la base de datos BAPY CEIBO
Paquete PL/SQL
Expand | ||
---|---|---|
| ||
CREDITOPY.PKG_API_CEIBO Todas los métodos necesarios para que los servicios otorgados por el API Paramétrico funcionen se encuentran en este PKG. Observaciones IMPORTANTES !!:
|
Tablas de Configuracion
Expand | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DER:Detalle de Tablas:
|
Ejemplo de Configuración de Servicios
Ejemplo rápido de configuración de un SP como servicio.
Expand | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||
Según lo expuesto mas arriba para agregar nuevos servicios se debe:
Supongamos que hemos agregado una nueva configuración, con sus parámetros de entrada y salida
Para consumir el servicio tomamos de base el path raíz que mencionamos mas arriba reemplazando el valor por los valores configurados. Tomando como base http://host/ws-tarjetahabiente/prmservices/v2/sprunner/prmGroup/prmVersion/prmServicio El servicio será: http://host/ws-tarjetahabiente/prmservices/v2/sprunner/datosGenericos/v1/getLocalidades Y ya nada mas queda realizar una prueba vía postman. (En este caso el SP no recibe ningún parámetro de entrada) |