Rest API de Gestión de Maestros

El API de Gestión de Maestros permite a los clientes modificar y gestionar de forma masiva la creación, modificación y eliminación de maestros. Permitiendo al cliente crear procesos de sincronización de datos, logrando así que los datos Maestros de BPulse reflejen la realidad del negocio.

Todos las APIs aquí mencionadas se autentican usando en

Headers

  • Authorization: Basic {user:pass}
  • Content-Type: application/json

{user:pass}: Es el uso del hash generado en base 64.

MasterDef

En Definición de Maestro se permite definir una estructura para los Maestros con la posibilidad de tener campos adicionales asociados para el dato Maestro.
Ejemplo:  Definición de Maestro: ciudaddef

 

Petición Mapeo Descripción
GET /api/model/master_defs/{masterDefId} Retorna el registro del Id indicado.
POST /api/model/master_defs/{masterDefId} Crea un nuevo registro y requiere el cuerpo JSON.
PUT /api/model/master_defs/{masterDefId} Edita el registro del Id indicado y requiere el cuerpo JSON.
DELETE /api/model/master_defs/{masterDefId} Elimina el registro del Id indicado.
JSON Body de Master Def – POST / PUT
1
2
3
4
5
6
7
//Estructura  de campos auxiliares para ciudaddef
{
   "auxFields": [ "pais", "region", "habitantes" ],
   "auxMandarory": [ true, false, true ]
}
//En este ejemplo para ciudades se tendría una estructura que ademas del id y un nombre (campos por defecto del maestro)
//permite asociar los campos auxiliares ("pais", "region", "habitantes")
Atributo
Tipo
Descripción
{masterDefId} String Es el identificador del registro, debe cumplir con el estándar de sólo texto sin caracteres especiales.

Ejemplo: ciudaddef, ciudadestructura, ciudadeseuropaestructura

auxFields String Array Arreglo con la lista de nombres personalizados de hasta máximo 10 para los campos auxiliares.
auxMandatory Boolean Array Arreglo con la lista de obligatoriedad de hasta máximo 10 para los campos auxiliares.

Master Type

Un Tipo Maestro es una categoría agrupadora que se asigna a Maestros que pertenecen a un mismo MasterDef. El Tipo Maestro permite incluso que un Maestro pueda tener varios agrupadores.

Por ejemplo podemos tener varios Tipos Maestros (agrupadores) listos para ser asignados a registros que pertenecen al MasterDef ciudadesdef así:

MasterType => “Ciudades”

MasterType => “CiudadesPrincipales”

MasterType => “CiudadesZonaNorte”

MasterType => “CiudadesCosteras”

Petición Mapeo Descripción
GET /api/model/master_types/{masterTypeId} Retorna el registro del Id indicado.
POST /api/model/master_types/{masterTypeId} Crea un nuevo registro y requiere el cuerpo JSON.
PUT /api/model/master_types/{masterTypeId} Edita el registro del Id indicado y requiere el cuerpo JSON.
DELETE /api/model/master_types/{masterTypeId} Elimina el registro del Id indicado.
JSON Body de Master Type – POST / PUT
1
2
3
4
{
 "name": "Ciudades",
 "description": "Ciudades del mundo"
}
Atributo
Tipo
Descripción
{masterTypeId} String Es el identificador del registro, debe cumplir con el estándar de sólo texto sin caracteres especiales.

Ejemplo: ciudades, ciudadeseuropa

name String Nombre del tipo maestro que será visible en Bpulse.

Ejemplo: ciudades, ciudades de europa

description String Descripción de ayuda del tipo maestro.

Master

Un Dato Maestro es una instancia o registro que pertenece a una Definición de Maestro (MasterDef) determinado con anterioridad.

Por lo tanto la KEY del registro será compuesta por: (masterDef , MasterId)

Ejemplo: Queremos crear Barcelona como un registro de la estructura ciudaddef

Definición de Maestro: ciudaddef

Master: Barcelona

 

Petición Mapeo Descripción
GET /api/model/masters/masterdef/{masterDef}/master/{masterId} Retorna el registro para la KEY indicada. masterDef:ciudaddef , masterId:barcelona
POST /api/model/masters/masterdef/{masterDef}/master/{masterId} Crea un nuevo registro y requiere el cuerpo JSON.
PUT /api/model/masters/masterdef/{masterDef}/master/{masterId} Edita el registro de la KEY indicada y requiere el cuerpo JSON.
DELETE /api/model/masters/masterdef/{masterDef}/master/{masterId} Elimina el registro de la KEY indicada.
JSON Body de Master – POST / PUT
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
   "name": "Barcelona",
   "description": "World city",
   "latitude": 0,
   "longitude": 0,
   "auxiliary1": "Europe",
   "auxiliary2": "Spain",
   "auxiliary3": "30",
   "auxiliary4": "false",
   "auxiliary5": "",
   "auxiliary6": "",
   "auxiliary7": "",
   "auxiliary8": "",
   "auxiliary9": "",
   "auxiliary10": ""
}
Atributo
Tipo
Descripción
{masterId} String Es el identificador del registro, debe cumplir con el estándar de sólo texto sin caracteres especiales.

Ejemplo: ciudadmadrid, ciudadbarcelona, esmadrid

name String Nombre del maestro que será visible en Bpulse.

Ejemplo: Madrid, Barcelona, Bogotá

description String Descripcion de ayuda del maestro.
latitude Double Campo opcional de la latitud pensado en maestros de ubicaciones.

Ejemplo: 1.23

longitude Double Campo opcional de la longitud pensado en maestros de ubicaciones.

Ejemplo: 3.26

auxiliary1 String Campo auxiliar del maestro.
auxiliary2 String Campo auxiliar del maestro.
auxiliary3 String Campo auxiliar del maestro.
auxiliary4 String Campo auxiliar del maestro.
auxiliary5 String Campo auxiliar del maestro.
auxiliary6 String Campo auxiliar del maestro.
auxiliary7 String Campo auxiliar del maestro.
auxiliary8 String Campo auxiliar del maestro.
auxiliary9 String Campo auxiliar del maestro.
auxiliary10 String Campo auxiliar del maestro.

Relación Master – MasterType

API encargada de administrar las relaciones entre Tipos de Maestros y Maestros

En esta relación se permite que un maestro pueda tener asociados varion Tipos de Maestro.

Un maestro se identifica por una Key compuesta por: (masterDef , MasterId) y a esta key se le va relacionando el Tipo Maestro

 

Petición Mapeo Descripción
POST /api/model/masters/masterdef/{masterDef}/master/{masterId}/mastertype/{masterTypeId} Agrega relación entre Master Type y Maestro.
DELETE /api/model/masters/masterdef/{masterDef}/master/{masterId}/mastertype/{masterTypeId} Elimina relación entre Master Type y Maestro.

 

Por ejemplo si queremos que Barcelona que esta definido bajo la estructura de MasterDef=ciudadesdef sea reconocida como un registro de “Ciudades” y ademas como una de las “CiudadesPrincipales”

Se invocaría el API dos veces así:

/api/model/masters/masterdef/ciudadesdef/master/Barcelona/mastertype/Ciudades

/api/model/masters/masterdef/ciudadesdef/master/Barcelona/mastertype/CiudadesPrincipales