API Categorías

Usar codificación de caracteres UTF-8 en el envío de datos

Manual de autenticación y versionado: manual (autenticación y versionado)

Por motivos de seguridad el external_id no puede contener los caracteres \ ni /  (http://tomcat.apache.org/security-6.html).


Crear categoría

Método: POST

URL: /admin/rest/administration/api/categories

Ejemplo:


Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /

Parámetros

  • external_id = Id externo (String, obligatorio(warning) Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /
  • name = Nombre de la categoría (String, obligatorio)
  • code = Código de la categoría (String, opcional)
    • Sólo puede contener letras, números y guiones (_ o -)
    • Si no se cubre este campo, se creará un código por defecto con el formato CAT-<id-categoría>
  • description = Descripción de la categoría (String, opcional)
  • i18n[clave idioma] (lista) = Internacionalización de la categoría (clave-valor de Strings, opcional)
    • Valores permitidos para "clave idioma" = los idiomas de la plataforma:
      • en = Inglés, es = Español, pt = Portugués, it = Italiano, gl = Gallego,...
     

Validaciones

  • Lista de parámetros vacía o algún campo obligatorio sin cubrir--> Error ERR001 / 400 (Bad Request) 
  • El nombre de categoría ya existe --> Error CTG001 / 400 (Bad Request)
  • El id externo de categoría ya existe --> Error ERR006 / 400 (Bad Request)
  • El identificador del idioma no existe --> Error CTG003 / 400 (Bad Request)
  • El código de categoría ya existe --> Error CTG004 / 400 (Bad Request)
  • El formato del código no es válido --> Error CTG005 / 400 (Bad Request)

Respuesta OK

  • 201 (Created) + cabecera 'Location' con el link al recurso creado 


Modificar categoría (sin internacionalización)

Método: PUT

URL:

  • Modificar por id: 
    • /admin/rest/administration/api/categories/id/{id}
  • Modificar por id externo:
    • /admin/rest/administration/api/categoriesexternalid/{external_id}


Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /

Ejemplo:

Parámetros

  • external_id = Id externo nuevo (String, obligatorio(warning) Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /
  • name = Nombre del grupo (String, obligatorio)
  • code = Código de la categoría (String, opcional)
    • Sólo puede contener letras, números y guiones (_ o -)
    • Si no se cubre este campo, se creará un código por defecto con el formato CAT-<id-categoría>
  • description = Descripción del grupo (String,  opcional)

Validaciones

  • Lista de parámetros vacía o algún campo obligatorio sin cubrir --> Error ERR001 / 400 (Bad Request) 
  • No existe la categoría --> Error 404 (Not Found)
  • El nombre de categoría ya existe --> Error CTG001 / 400 (Bad Request)
  • El código de categoría ya existe --> Error CTG004 / 400 (Bad Request)
  • El formato del código no es válido --> Error CTG005 / 400 (Bad Request)
  • El id externo de categoría ya existe --> Error ERR006 / 400 (Bad Request)
  • Todo OK --> 200 (OK)


Crear/Modificar internacionalización (todos los idiomas)

Método: PUT

URL:

  • Modificar por id: 
    • /admin/rest/administration/api/categories/id/{id}/i18n
  • Modificar por id externo:
    • /admin/rest/administration/api/categoriesexternalid/{external_id}/i18n


Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /

Ejemplo:

Parámetros

  • clave idioma (lista) = Internacionalización de la categoría (clave-valor de Strings, obligatorio)
    • Valores permitidos para "clave idioma" = los idiomas de la plataforma:
      • en = Inglés, es = Español, pt = Portugués, it = Italiano, gl = Gallego,...
    • Los valores que no se incluyan se inicializarán a nulo

Validaciones

  • Lista de parámetros vacía o algún campo obligatorio sin cubrir --> Error ERR001 / 400 (Bad Request) 
  • No existe la categoría --> Error 404 (Not Found)
  • Algún identificador de idioma no existe --> Error CTG003 / 400 (Bad Request)
  • Todo OK --> 200 (OK)


Crear/Modificar internacionalización (un idioma)

Método: PUT

URL:

  • Modificar por id: 
    • /admin/rest/administration/api/categories/id/{id}/i18n/{languageCode}
  • Modificar por id externo:
    • /admin/rest/administration/api/categoriesexternalid/{external_id}/i18n/{languageCode}

Ejemplo:

Parámetros

  • value = Internacionalización de la categoría (String, obligatorio)
    • Valores permitidos = los idiomas de la plataforma:
      • en = Inglés, es = Español, pt = Portugués, it = Italiano, gl = Gallego,...

Validaciones

  • Lista de parámetros vacía o algún campo obligatorio sin cubrir --> Error ERR001 / 400 (Bad Request) 
  • No existe la categoría --> Error 404 (Not Found)
  • El identificador de idioma no existe --> Error CTG003 / 400 (Bad Request)
  • Todo OK --> 200 (OK)


Obtener todas las categorías

Método: GET

URL:

  • Obtener todas las categorías sin paginación: 
    • /admin/rest/administration/api/categories?language={languageCode}
  • Obtener todas las categorías con paginación: 
    • /admin/rest/administration/api/categories?startIndex={startIndex}&count={count}&language={languageCode}

Ejemplo:

Parámetros

  • startindex = índice inicial para la paginación (Integer, opcional)
  • count = total de elementos a recuperar para la paginación (Integer, opcional)
  • language = Idioma en el que se debe mostrar la categoría (String, opcional)
    • Valores permitidos = los idiomas de la plataforma:
      • all = Todos los idiomas, en = Inglés, es = Español, pt = Portugués, it = Italiano, gl = Gallego, all = todos...

Campos devueltos en el Json

Listado de categorías, cada categoría consta de los siguientes campos:

  • id = Identificador
  • external_id = Id externo
  • name = Nombre de categoría
  • code = Código de la categoría
  • description = Descripción de categoría
    Si se ha solicitado internacionalización, se mostrará un listado de parejas locale-name de la siguiente manera:
  • internacionalization 
    • locale = identificador del idioma
    • name = valor internacionalizado (en caso de no estar cubierto, será null)

Validaciones

  • Índices erróneos --> Error 416 (Requested Range Not Satisfiable)
    • Usando paginación, ambos índices deben tener un valor
  • No hay categorías--> Error 204 (No Content)
  • El identificador del idioma no existe --> Error CTG003 / 400 (Bad Request)
  • Error en la generación del Json --> Error 503 (Service Unavailable)
  • Todo OK 
    • Si no hay paginación --> 200 (OK) + JSON
    • Si hay paginación --> 206 (Partial Content) + JSON


Obtener categoría

Método: GET

URL: 

  • Obtener por id: 
    • /admin/rest/administration/api/categories/id/{id}?language={languageCode}
  • Obtener por external id: 
    • /admin/rest/administration/api/categories/externalid/{external_id}?language={languageCode}


Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni / 

Ejemplo:

Parámetros

  • idiom = Idioma en el que se debe mostrar la categoría (String, opcional)
    • Valores permitidos = los idiomas de la plataforma:
      • all = Todos los idiomas, en = Inglés, es = Español, pt = Portugués, it = Italiano, gl = Gallego, all = todos...

Campos devueltos en el Json

Categoría, cada grupo consta de los siguientes campos:

  • id = Identificador
  • external_id = Id externo
  • name = Nombre de categoría
  • code = Código de la categoría
  • description = Descripción de categoría
    Si se ha solicitado internacionalización, se mostrará un listado de parejas locale-name de la siguiente manera:
  • internacionalization 
    • locale = identificador del idioma
    • name = valor internacionalizado (en caso de no estar cubierto, será null)

Validaciones

  • El nombre de categoría por Id no existe --> Error ERR004 / 404 (Not Found)
  • El nombre de categoría por External Id no existe --> Error ERR005 / 404 (Not Found)
  • El identificador del idioma no existe --> Error CTG003 / 400 (Bad Request)
  • Error en la generación del Json --> Error 503 (Service Unavailable)
  • Todo OK --> 200 (OK) + JSON


Eliminar categoría

Método: DELETE

URL: 

  • Obtener por id: 
    • /admin/rest/administration/api/categories/id/{id}
  • Obtener por external id: 
    • /admin/rest/administration/api/categories/externalid/{external_id}


Recuerda que por motivos de seguridad,  el external_id no puede contener los caracteres \ ni / 

Ejemplo:

Validaciones

  • La categoría no existe --> 404 (Not Found)
  • La categoría tiene actividades --> Error CTG002 / Error 400 (Bad Request)
  • Error en la generación del Json --> Error 503 (Service Unavailable)
  • Todo OK --> 200 (OK) + JSON