Cuando se crea una API, bien disponibilizando una Ontología, bien registrando una API Externa existente en el sistema, se ofrece la opción de que sea pública. Si se selecciona esa opción, todos los usuarios podrán suscribirse a la API, pudiendo utilizarla desde ese momento. En caso de que la API se defina como no pública, se deberá proporcionar un sistema de permisos a los usuarios.
Para implementar esta funcionalidad, se utiliza la pantalla de autorizaciones. Sólo tendrán acceso a esta pantalla los usuarios con perfiles Administrador y Colaborador.
La pantalla tendría un un aspecto similar al siguiente:
En la primera parte se muestran todos los usuarios del sistema con roles Usuario y Colaborador (exceptuando al propio usuario logado) junto con todas las APIs de las que es propietario el usuario (en caso de usuarios Administradores se mostrarán todas las APIs). En la parte inferior de la pantalla se mostrarán los permisos existentes en el sistema de los usuarios sobre las APIs. Es decir qué usuarios pueden acceder a qué APIS.
Este mismo interfaz sirve para asignar permisos a los usuarios. Tras seleccionar un usuario en la primera combo y una API en la segunda, si se pulsa sobre el botón Guardar, se almacenará el permiso en el sistema, pudiendo acceder el usuario a la API (u pudiendo suscribirla).
De la misma forma, en esta misma pantalla se permite eliminar los permisos dados de alta, pulsando sobre el botón eliminar que se encuentra en cada uno de los registros de la tabla.
14.4. Suscripción a APIs
Mediante esta opción un usuario podrá registrarse para poder usar las APIs registradas. Para los usuarios con rol ADMINISTRADOR, esta pantalla no mostrará ninguna API, ya que podrán invocar a todas. Para los usuarios con rol COLABORADOR aparecerán las APIs disponibles de las que no sean propietarios, ya que las propias serán invocables. Para el resto de usuarios, aparecerán todas las APIs registradas.
En la primera parte de la pantalla se incluyen unos filtros. Como primer control, se observan las distintas categorías disponibles. Pulsando sobre dichas categorías, se realizará el filtrado de las Apis por las mismas (la opción Todas no filtra por ninguna, muestra todas las APIs disponibles). El siguiente filtro realiza una búsqueda sobre los campos Identificación, descripción y meta-inf de la API. Tras pulsar sobre buscar, se mostrarán los resultados de la búsqueda.
Los registros de la tabla mostrarán los mismos campos que en la gestión de APIs, si bien los registros no son accesibles para consultar.
Junto a cada registro se incluye un control que permite realizar la suscripción a dicha API. Tras pulsar sobre el control Suscribir, se recargará la página, desapareciendo el registro de la lista (al estar ya suscrito al mismo).
14.5. Mis Suscripciones
En esta pantalla se mostrarán las suscripciones activas de cada usuario. Para usuarios con rol ADMINISTRADOR, aparecerán todas las APIS, ya que tienen acceso a todas. Para los usuarios con rol COLABORADOR se mostrarán todas las APIs de las que son propietarios, así como todas aquellas a las que se hayan suscrito. Para el resto de usuarios, aparecerán las APIs a las que se encuentren suscritos.
La pantalla será similar a la siguiente:
En cada registro se incluyen los datos asociados a cada API. Se podrá navegar al detalle de las APIs pulsando sobre el link con el nombre del API y se mostrará una pantalla como la siguiente:
Además desde Mis Suscripciones para cada API sobre la que estamos suscritos, se incluyen dos controles:
Desuscribir: Permitire desuscribir al usuario de la API seleccionada.
Test: Mediante este control se abre una pantalla que permite invocar a la API registrada.
Desde este interfaz se podrá invocar a las distintas operaciones de la API. Se seleccionará la operación correspondiente, se introducirá el token de usuario en el campo (X-SOFIA2-APIKey) y los parámetros necesarios para invocar a la operación.
Se incluyen las siguientes operaciones:
En todas ellas se deberá introducir el token de usuario en el campo X-SOFIA2-APIKey. INSERT:
Operación con método HTTP POST sobre /sofia2.com/sib-api/api/{VERSION}/{API]/ enviando en el body de la petición una instancia de la ontología disponibilizada.
"Feed": { "assetId": "1", "assetType": "CuadroElectrico", "assetSource": "CuadroEntrada", "type": "VIRTUAL", "timestamp": {"$date": "2014-05-19T13:57:39.342Z"}} UPDATE:
Operación con método HTTP PUT sobre /sofia2.com/sib-api/api/{VERSION}/{API]/ enviando en el body de la petición un objeto con:
- Nuevos datos de la instancia en el mismo formato descrito en el esquema de su ontología.
{"_id" : {"$oid" : "5388701fdef773767496e05d"} , "Feed": {"assetId" : "2" , "assetType" : "CuadroElectrico" , "assetSource" : "CuadroEntrada" , "type" : "VIRTUAL" , "timestamp" : { "$date" : "2014-05-19T13:57:39.342Z"}}} DELETE:
Operación con método HTTP DELETE sobre /sofia2.com/sib-api/api/{VERSION}/{API]/ enviando en el body de la petición un objeto con:
- ObjectId de la instancia a eliminar de la BTDR.
{"_id" :{ "$oid" : "5388701fdef773767496e05d"}}
QUERY:
Se implementan dos métodos:
- Operación con método HTTP GET sobre /sofia2.com/sib-api/api/{VERSION}/{API]/ enviando en el body de la petición un objeto con:
o Id de la instancia a actualizar de la BTDR
- Operación con método HTTP GET sobre /sofia2.com/sib-api/api/{VERSION}/{API]/ enviando en el body de la petición un objeto con:
o $targetdb: Base de datos sobre la que se realizará la consulta: “BDTR”
“BDH”
o $filter: Consulta a realizar sobre la BBDD. o $queryType: Tipo de consulta realizada:
SQL-LIKE Native
o $formatResult: Permite configurar el formato en el que se va a mostrar la información resultante a la petición enviada. En caso de que este campo no se rellene, la información se mostrará en formato JSON. Los formatos disponibles son:
CSV JSON
XML QUERY OPS:
Operación con método HTTP GET sobre /sofia2.com/sib-api/api/{VERSION}/{API]/ enviando en el body de la petición un objeto con:
o $queryType:Tipo de consulta. “SQLLIKE”
o $query: Consulta SQL a realizar sobre la BBDD. Se incluyen INSERT, UPDATE y DELETE.
Para el caso de las APIs Externas se comportaría de forma similar, si bien el interfaz de invocación se construirá de forma dinámica en función de las operaciones y los atributos de la API.
15. SOCIAL MEDIA
15.1. Usuarios Twitter
Desde la Consola Web de Sofia2 se puede acceder a contenido de Social Media, en este caso a la red social Twitter. Desde la opción de Menú “Social Media”, “Usuarios Twitter” se pueden buscar usuarios de Twitter por su nombre_usuario. También debemos elegir la configuración de acceso con la que queremos acceder a la red social.
15.2. Búsqueda
Desde la opción de Menú “Social Media”, “Búsqueda” se puede buscar twits introduciendo la palabra clave a buscar y seleccionando la configuración de acceso con la que queremos acceder a la red social.
15.3. Tendencias
Desde la opción de Menú “Social Media”, “Tendencias” se puede buscar las últimas tendencias de Twitter seleccionando en los combos la zona geográfica de interés (Global, España, EEUU, Francia, Reino Unido, Italia, Portugal, Alemania o México) y la configuración de acceso con la que queremos acceder a la red social.
Al pulsar el botón Buscar aparece una pantalla con las últimas tendencias de la red social:
15.4. Páginas Facebook
Desde la opción de Menú “Social Media”, “Páginas Facebook” se puede buscar el nombre de la página facebook, pudiendo ofrecer múltiples resultados en un listado en el caso de que haya más de una página con ese nombre. Este listado resultante se puede guardar sobre una ontología, de manera que todos los datos se almacenan en la ontología destino que se elija.
Adicionalmente, sobre cada resultado se podrá obtener el Timeline de la página en concreto y de nuevo se podrá guardar esta información sobre una ontología.