MICROSITIOS Perfiles API para el consumo de servicios encargados de la creación, visualización, edición, eliminación y demás operaciones sobre los perfiles de usuarios de Metaportal. METAPORTAL 18/07/2014
Contenido Operaciones del API (Usuarios)... 3 Listar usuarios.... 3 Procedimiento... 3 Posibles Respuestas... 3 Visualización de plantilla.... 5 Procedimiento... 5 Posibles Respuestas... 6 Ver perfil.... 7 Procedimiento... 7 Posibles Respuestas... 7 Crear perfil.... 9 Procedimiento... 9 Posibles Respuestas... 9 Editar perfil.... 13 Procedimiento... 14 Posibles Respuestas... 14 Eliminar perfil.... 18 Procedimiento... 18 Posibles Respuestas... 18 Crear campo adicional.... 20 Procedimiento... 20 Posibles Respuestas... 20 Ver información de un campo específico.... 23 Procedimiento... 23 Posibles Respuestas... 23 Editar información de un campo específico.... 24 Procedimiento... 24 Posibles Respuestas... 25 Operaciones del API (Roles)... 27 Listar Roles... 27 Procedimiento... 27 Posibles Respuestas... 27 Ver Rol... 29 Procedimiento... 29 Posibles Respuestas... 29
Crear Rol... 31 Procedimiento... 31 Posibles Respuestas... 31 Editar Rol... 34 Procedimiento... 34 Posibles Respuestas... 34 Eliminar Rol... 38 Procedimiento... 38 Posibles Respuestas... 38
Operaciones del API (Usuarios) Listar usuarios. Una de las funcionalidades del api de perfiles de Metaportal consiste en listar los usuarios existentes en la base de datos. Los datos son mostrados en formato Collection+JSON - Hypermedia Type. Procedimiento 1. Por medio del método GET y la URL especificada se podrá recuperar la información de los usuarios. URL de consumo (GET) http://{url_del_servidor} /api/v1/users Datos permitidos que se recibirán: En esta operación no son necesarios datos adicionales a la URL especificada. En ciertos casos la URL puede cambiar si el formato de respuesta se requiere en XML, para este caso la URL de consumo es (GET) http://{url_del_servidor}/api/v1/users.xml En el listado de usuarios, según la cantidad de registros la respuesta se genera paginada, en estos casos la respuesta viene con una posición adicional en el arreglo (links). URL s: http://{url_del_servidor}/api/v1/users?page=3 http://{url_del_servidor}/api/v1/users.xml?page=3 En caso de no colocar el parámetro page en la URL, por defecto la página mostrada será la primera. Posibles Respuestas Las respuestas se pueden generar en formato application/vnd.collection+json o XML 1. En caso de que la URL de consumo finalice con un formato no válido (distinto a json o XML), por ejemplo si por accidente se envió con un carácter adicional Ej. http://{url_del_servidor}/api/v1/users.xmln
2. Si no hay usuarios para listar en la base de datos (tabla vacía). 3. Si la operación se efectúa con éxito se listan los usuarios en el formato correspondiente. Por efectos de visualización en la imagen se omiten parámetros, por tal motivo se listan a continuación. Parámetros básicos de la lista de usuarios mostrados: user_id, name, last_name, mail, pass, status, theme, signature, signature_format, created, access, login, timezone, language, picture, init, data. Adicional a los parámetros básicos, los campos correspondientes a los usuarios son dinámicos, es decir que si se agregan campos adicionales, estos también serán mostrados en el listado de usuarios Ej. phone, address. Cada usuario creado en la base de datos tiene uno o varios perfiles asociados, por tal razón en el listado son mostrados como parte de la información del usuario.
Visualización de plantilla. Una de las opciones que ofrecida al consumir el servicio que lista los usuarios, es la posibilidad de mostrar solo la plantilla ( template ) como guía para la creación, edición o futuras operaciones que se vayan a realizar. Para obtener dicha plantilla se debe enviar un parámetro adicional a la URL, el cual indicará que solamente se desea consultar el esqueleto. Procedimiento 1. Por medio del método GET y la URL especificada se podrá recuperar la plantilla de usuarios. URL de consumo (GET) http://{url_del_servidor}/api/v1/users?solo_template=true
Datos permitidos que se recibirán: Como parámetro adicional para consultar la plantilla es necesario solo_template y su valor debe ser verdadero ( true ) tal como se indica en la URL inmediatamente anterior. En ciertos casos la URL puede cambiar si la respuesta se requiere en formato XML, para este caso la URL de consumo es (GET) http://{url_del_servidor}/api/v1/users.xml?solo_template=true Posibles Respuestas Las respuestas se pueden generar en formato application/vnd.collection+json o XML 1. En caso de que la URL de consumo finalice con un formato no válido (distinto a json o XML), por ejemplo si por accidente se envió con un carácter adicional Ej. http://{url_del_servidor}/api/v1/users.xmln?solo_template=true 2. Si la operación se efectúa con éxito se listan los campos disponibles con valores vacíos. Si es necesario adicionar roles a determinado usuario, en la parte final de la plantilla se agrega un campo de tipo arreglo en el cual se indican los Id s de los roles que correspondan.
Ver perfil. Otra de las funcionalidades del API de perfiles es poder ver en detalle la información de un único usuario, indicando en la URL su identificador. Procedimiento 1. Por medio del método GET y la URL especificada se podrá recuperar la información de un usuario específico. URL de consumo (GET) http://{url_del_servidor}/api/v1/users/1 Datos permitidos que se recibirán: Es necesario dentro de la URL colocar como último parámetro el identificador del usuario que se desea consultar. En ciertos casos la URL puede cambiar si la respuesta se requiere en formato XML, para este caso la URL de consumo es (GET) http://{url_del_servidor}/api/v1/users/1.xml Posibles Respuestas Las respuestas se pueden generar en formato application/vnd.collection+json o XML
1. En caso de que la URL de consumo finalice con un formato no válido (distinto a json o XML), por ejemplo si por accidente se envió con un carácter adicional Ej. http://{url_del_servidor}/api/v1/users/1.xmln 2. Si no existe el usuario solicitado.
3. Si la operación se realizó de forma exitosa. Crear perfil. Para realizar la creación de un nuevo usuario con el API de perfiles es necesario que el consumidor suministre la información del usuario y sus roles de acuerdo a la plantilla ( Visualización de plantilla ). Procedimiento 1. Por medio del método POST, la URL especificada y los parámetros necesarios se podrá crear un usuario nuevo. Posibles Respuestas URL de consumo (POST) http://{url_del_servidor}/api/v1/users Datos necesarios: Todos aquellos datos generados en la plantilla correspondientes a información del usuario y roles asociados. Los datos deben ser enviados con la estructura application/vnd.collection+json. En ciertos casos la URL puede cambiar si la respuesta se requiere en formato XML, para este caso la URL de consumo es (POST) http://{url_del_servidor}/api/v1/users.xml Las respuestas se pueden generar en formato application/vnd.collection+json o XML 1. En caso de que la URL de consumo finalice con un formato no válido (distinto a json o XML), por ejemplo si por accidente se envió con un carácter adicional Ej. http://{url_del_servidor}/api/v1/users.xmln
2. En caso de que el formato en el cual se envía la información tenga malformaciones. 3. En caso de que la plantilla esté bien formada en su estructura, pero no tenga datos internos.
4. Por estructura application/vnd.collection+json cada tato enviado está compuesto por un name, value y prompt, por lo tanto si por error se altera alguno de estos parámetros se obtiene una respuesta errónea. 5. Si toda la estructura de la plantilla está correcta pero los campos obligatorios no contienen información. (user_id, name, last_name, mail)
6. Si se presenta alguna excepción durante la operación. 7. Si se presenta algún error agregando los roles del usuario.
8. Si alguno de los campos enviados en la plantilla no existe en la tabla de usuarios. 9. Si la operación se realizó con éxito no se retorna información, simplemente en el encabezado se coloca como estado 201 (Creado). Editar perfil. Para realizar la edición de un usuario con el API de perfiles es necesario que el consumidor suministre la información del usuario y sus roles de acuerdo a la plantilla ( Visualización de plantilla ).
Procedimiento 2. Por medio del método PUT, la URL especificada (incluido el Id del usuario) y los parámetros necesarios se podrá editar un usuario determinado. Posibles Respuestas URL de consumo (POST) http://{url_del_servidor}/api/v1/users/1 Datos necesarios: Todos aquellos datos generados en la plantilla, correspondientes a información del usuario que sea necesario editar. Los datos deben ser enviados con la estructura application/vnd.collection+json. En ciertos casos la URL puede cambiar si la respuesta se requiere en formato XML, para este caso la URL de consumo es (POST) http://{url_del_servidor}/api/v1/users/1.xml Las respuestas se pueden generar en formato application/vnd.collection+json o XML 1. En caso de que la URL de consumo finalice con un formato no válido (distinto a json o XML), por ejemplo si por accidente se envió con un carácter adicional Ej. http://{url_del_servidor}/api/v1/users/1.xmln 2. En caso de que el usuario que se desea editar no exista. 3. En caso de que el formato en el cual se envía la información tenga malformaciones.
4. En caso de que la plantilla esté bien formada en su estructura, pero no tenga datos internos. 5. Por estructura application/vnd.collection+json cada tato enviado está compuesto por un name, value y prompt, por lo tanto si por error se altera alguno de estos parámetros se obtiene una respuesta errónea.
6. Si toda la estructura de la plantilla está correcta pero los campos obligatorios no contienen información. (user_id, name, last_name, mail) 7. Si se presenta alguna excepción durante la operación.
8. Si se presenta algún error agregando los roles del usuario. 9. Si alguno de los campos enviados en la plantilla no existe en la tabla de usuarios.
10. Si la operación se realizó con éxito se muestra la información del usuario editada. Eliminar perfil. Para realizar la eliminación de un usuario con el API de perfiles es necesario que el consumidor suministre en la URL el identificador del usuario que desea eliminar. La eliminación de las relaciones (Perfiles e información de campos adicionales) se realizará en cascada, es decir que eliminado un usuario se elimina toda la información asociada al mismo. Procedimiento 3. Por medio del método DELETE y la URL especificada (incluido el Id del usuario) se podrá eliminar un usuario determinado. Posibles Respuestas URL de consumo (DELETE) http://{url_del_servidor}/api/v1/users/1 Datos necesarios: Solamente requiere que en la URL se especifique el identificador del usuario. En ciertos casos la URL puede cambiar si la respuesta se requiere en formato XML, para este caso la URL de consumo es (DELETE) http://{url_del_servidor}/api/v1/users/1.xml Las respuestas se pueden generar en formato application/vnd.collection+json o XML 1. En caso de que la URL de consumo finalice con un formato no válido (distinto a json o XML), por ejemplo si por accidente se envió con un carácter adicional Ej. http://{url_del_servidor}/api/v1/users/1.xmln
2. En caso de que el usuario que se desea eliminar no exista. 3. Si la operación se realizó con éxito no se retorna información, simplemente en el encabezado se coloca como estado 204 (Sin contenido).
Crear campo adicional. Para realizar la creación de un campo adicional para la tabla de usuarios con el API de perfiles es necesario que el consumidor suministre el nombre del nuevo campo (atributo) y opcionalmente el tipo de campo. Las respuestas se mostrarán en formato application/vnd.collection+json o XML. Procedimiento 4. Por medio del método PUT, la URL especificada y los datos mencionados se podrá crear un campo adicional para incluir información de perfil correspondiente a un usuario. URL de consumo (PUT) http://{url_del_servidor}/api/v1/users Datos necesarios: Obligatoriamente requiere el parámetro atributo correspondiente al nombre del nuevo campo, este debe ser en minúscula y sin espacios, en caso de requerir un separador de palabras puede usar guión bajo. Opcionalmente puede suministrar el tipo de dato a almacenar (entero, flotante, texto, fecha), si no se especifica por defecto será texto. {"atributo":"atributo_nuevo", "tipo":"texto"} En ciertos casos la URL puede cambiar si la respuesta se requiere en formato XML, para este caso la URL de consumo es (PUT) http://{url_del_servidor}/api/v1/users.xml Posibles Respuestas Las respuestas se pueden generar en formato application/vnd.collection+json o XML. 1. En caso de que la URL de consumo finalice con un formato no válido (distinto a json o XML), por ejemplo si por accidente se envió con un carácter adicional Ej. http://{url_del_servidor}/api/v1/users.xmln 2. En caso de que no se envíen datos para la creación del nuevo campo o de que los datos enviados no correspondan a los solicitados.
3. Si se envía el parámetro tipo, pero el valor no corresponde a un tipo de dato válido 4. Si ya existe un campo con el nombre que desea asignar.
5. Si el nombre del campo tiene caracteres inválidos. 6. Si la operación se realizó con éxito no se retorna información, simplemente en el encabezado se coloca como estado 201 (Creado).
Ver información de un campo específico. Esta funcionalidad del API permite ver la información específica de un campo que el consumidor requiera, para un usuario determinado. Las respuestas se mostrarán en formato json o XML. Procedimiento Por medio del método GET y la URL especificada se podrá consultar la información de un campo específico del perfil de un usuario. URL de consumo (GET) http://{url_del_servidor}/api/v1/users/{id_usuario}/attributes/{attribute_name} En ciertos casos la URL puede cambiar si la respuesta se requiere en formato XML, para este caso la URL de consumo es (GET) http://{url_del_servidor}/api/v1/users/{id_usuario}/attributes/{attribute_name}.xml Posibles Respuestas Las respuestas se pueden generar en formato json o XML. 1. En caso de que la URL de consumo finalice con un formato no válido (distinto a json o XML), por ejemplo si por accidente se envió con un carácter adicional Ej. http://{url_del_servidor}/api/v1/users/{id_usuario}/attributes/{attribute_name}.xmln 2. En caso de que el usuario del cual se requiere información no exista.
3. En caso de que el atributo solicitado no exista. 4. Si la operación se realizó con éxito. Editar información de un campo específico. Esta funcionalidad del API permite editar la información específica de un campo que el consumidor requiera, para un usuario determinado. Las respuestas se mostrarán en formato json o XML. Procedimiento Por medio del método PUT, la URL especificada y el nuevo valor del campo se podrá realizar la edición. URL de consumo (PUT) http://{url_del_servidor}/api/v1/users/{id_usuario}/attributes/{attribute_name} Parámetros: JSON con el atributo valor {"valor":"nuevo valor"}.
En ciertos casos la URL puede cambiar si la respuesta se requiere en formato XML, para este caso la URL de consumo es (PUT) http://{url_del_servidor}/api/v1/users/{id_usuario}/attributes/{attribute_name}.xml Posibles Respuestas Las respuestas se pueden generar en formato json o XML. 1. En caso de que la URL de consumo finalice con un formato no válido (distinto a json o XML), por ejemplo si por accidente se envió con un carácter adicional Ej. http://{url_del_servidor}/api/v1/users/{id_usuario}/attributes/{attribute_name}.xmln 2. En caso de que el usuario no exista. 3. En caso de que el atributo solicitado no exista.
4. Si no se envía el parámetro valor para el atributo a editar. 5. Si la operación se realizó con éxito no se retorna información, simplemente en el encabezado se coloca como estado 200 (Ok).
Operaciones del API (Roles) Listar Roles Ofrece el listado de los roles disponibles en la base de datos. Los datos son mostrados en formato Collection+JSON - Hypermedia Type. Procedimiento 1. Por medio del método GET y la URL especificada se podrá recuperar la información de los roles disponibles. URL de consumo (GET) http://{url_del_servidor}/api/v1/roles Datos permitidos que se recibirán: En esta operación no son necesarios datos adicionales a la URL especificada. En ciertos casos la URL puede cambiar si el formato de respuesta se requiere en XML, para este caso la URL de consumo es (GET) http://{url_del_servidor}/api/v1/roles.xml Para facilitar al consumidor el formato en el cual debe enviar los datos para realizar la creación y la edición de un rol, a la URL especificada anteriormente se le agrega el parámetro solo_template con valor true (GET) http://{url_del_servidor}/api/v1/roles?solo_template=true (GET) http://{url_del_servidor}/api/v1/roles.xml?solo_template=true Posibles Respuestas Las respuestas se pueden generar en formato application/vnd.collection+json o XML 1. En caso de que la URL de consumo finalice con un formato no válido (distinto a json o XML), por ejemplo si por accidente se envió con un carácter adicional Ej. http://{url_del_servidor}/api/v1/roles.xmln 2. Si la tabla de roles está vacía
3. Si la operación se realizó con éxito se muestra el listado de roles. 4. Si se requiere solo la plantilla ( template ) indicando en la URL?solo_template=true
Ver Rol Funcionalidad encargada de mostrar el detalle de un rol determinado. Los datos son mostrados en formato Collection+JSON - Hypermedia Type. Procedimiento 2. Por medio del método GET y la URL especificada (incluido el identificador del rol) se podrá recuperar la información del Rol requerido. Posibles Respuestas URL de consumo (GET) http://{url_del_servidor}/api/v1/roles/1 Datos permitidos que se recibirán: En esta operación no son necesarios datos adicionales a la URL especificada. En ciertos casos la URL puede cambiar si el formato de respuesta se requiere en XML, para este caso la URL de consumo es (GET) http://{url_del_servidor}/api/v1/roles/1.xml Las respuestas se pueden generar en formato application/vnd.collection+json o XML 1. En caso de que la URL de consumo finalice con un formato no válido (distinto a json o XML), por ejemplo si por accidente se envió con un carácter adicional Ej. http://{url_del_servidor}/api/v1/roles/1.xmln 2. En caso que no exista el Rol solicitado.
3. Si la operación se realiza con éxito se muestra la información del Rol solicitado.
Crear Rol Funcionalidad encargada de crear un rol en la base de datos según unos parámetros dados. Las respuestas son mostradas en formato Collection+JSON - Hypermedia Type. Procedimiento Por medio del método POST, la URL especificada y los datos correspondientes, se podrá crear un nuevo rol en la base de datos. URL de consumo (POST) http://{url_del_servidor}/api/v1/roles Datos permitidos que se recibirán: Todos aquellos correspondientes a los atributos de la tabla roles. En ciertos casos la URL puede cambiar si el formato de respuesta se requiere en XML, para este caso la URL de consumo es (POST) http://{url_del_servidor}/api/v1/roles.xml Posibles Respuestas Las respuestas se pueden generar en formato application/vnd.collection+json o XML 1. En caso de que la URL de consumo finalice con un formato no válido (distinto a json o XML), por ejemplo si por accidente se envió con un carácter adicional Ej. http://{url_del_servidor}/api/v1/roles.xmln 2. Si la plantilla en la cual se envían los datos no existe o existe con malformaciones. 3. Si existe la plantilla pero el arreglo de datos está vacío
4. Si existen parámetros requeridos sin información. 5. Si a la estructura de la plantilla le hace falta un parámetro nombre o valor.
6. Si alguno de los parámetros enviados no corresponde a los atributos del Rol 7. Si la operación se realizó con éxito.
Editar Rol Funcionalidad encargada de editar un rol existente en la base de datos según unos parámetros dados. Las respuestas son mostradas en formato Collection+JSON - Hypermedia Type. Procedimiento Por medio del método PUT, la URL especificada y los datos correspondientes, se podrá editar un rol existente en la base de datos. URL de consumo (PUT) http://{url_del_servidor}/api/v1/roles/1 Datos permitidos que se recibirán: Todos aquellos correspondientes a los atributos de la tabla roles. En ciertos casos la URL puede cambiar si el formato de respuesta se requiere en XML, para este caso la URL de consumo es (PUT) http://{url_del_servidor}/api/v1/roles/1.xml Posibles Respuestas Las respuestas se pueden generar en formato application/vnd.collection+json o XML 1. En caso de que la URL de consumo finalice con un formato no válido (distinto a json o XML), por ejemplo si por accidente se envió con un carácter adicional Ej. http://{url_del_servidor}/api/v1/roles/1.xmln 2. Si la plantilla en la cual se envían los datos no existe o existe con malformaciones.
3. Si existe la plantilla pero el arreglo de datos está vacío 4. Si existen parámetros requeridos sin información. 5. Si a la estructura de la plantilla le hace falta un parámetro nombre o valor.
6. Si alguno de los parámetros enviados no corresponde a los atributos del Rol 7. Si el rol buscado no existe.
8. Si la operación se realiza con éxito se muestra la información del Rol editado.
Eliminar Rol Funcionalidad encargada de eliminar un rol existente en la base de datos. Las respuestas son mostradas en formato Collection+JSON - Hypermedia Type. Procedimiento Por medio del método DELETE y la URL especificada (incluido el identificador del Rol), se podrá eliminar un rol existente en la base de datos. URL de consumo (DELETE) http://{url_del_servidor}/api/v1/roles/1 Datos permitidos que se recibirán En esta operación no son necesarios datos adicionales a la URL especificada. En ciertos casos la URL puede cambiar si el formato de respuesta se requiere en XML, para este caso la URL de consumo es (DELETE) http://{url_del_servidor}/api/v1/roles/1.xml Posibles Respuestas Las respuestas se pueden generar en formato application/vnd.collection+json o XML 1. En caso de que la URL de consumo finalice con un formato no válido (distinto a json o XML), por ejemplo si por accidente se envió con un carácter adicional Ej. http://{url_del_servidor}/api/v1/roles/1.xmln 2. Si el Rol que se desea eliminar no existe.
3. Si la operación se realiza con éxito.