BAAS

Para poder usar nuestro PARSE SERVER desde Delphi, tenemos que modificar la URL de llamada a la dirección de  PARSE SERVER.

La unit donde se encuentra la definición de la conexión es REST.Backend.ParseApi, y las líneas a modificar son estas :

La última línea es donde definimos la conexión. Nosotros necesitamos especificar la dirección de nuestro servidor (sea localhost o con IP/Dominio) y al puerto en el que está instalado.

Si vemos el constructor de la clase TParseAPI vemos como se asigna la dirección del servidor:

Solución (a lo bruto)

Cambiamos:

Por:

Por ejemplo, para un servidor local:

Como veis, ponemos ‘/parse‘ al final, ya que es el punto de entrada de nuestro servidor, y puerto 1337 que como vimos en la instalación, es el puerto por defecto del servidor, aunque puede ser modificado.

Y.. ya está. Luego configuramos el componente TParseProvider con los datos de nuestra APP y ya estaría todo listo para acceder a los servicios de nuestro servidor.

Con esto tenemos un ‘problema’, cada vez que queramos cambiar de servidor de SERVER PARSE (y os recuerdo que solo soporta una aplicación a la vez por ahora) tendremos que cambiar la dirección.

Si alguien se anima a solucionar este problema, sera bien recibida su colaboración.

De momento, para trabajar nos sobra con esta modificación. Para las notificaciones PUSH para android tendremos que hacer otra modificación que veremos en cuando tratemos el tema de las notificaciones.

Vamos a suponer que no queremos en c:/…./mongo/ tener instalado el servidor, y que tampoco queremos en c:/data/ (que es la carpeta de almacén de datos por defecto)  el almacén de los datos, para ello, tendremos que crear un archivo de configuración y luego cargarlo desde la línea de comandos al iniciar el servidor de esta forma:

Todas las opciones de para el archivo de configuración, las tenéis en la página oficial de mongo..

Vamos pues a crear el archivo de configuración básico con lo que nos interesa, la base de datos en un directorio (D:/mongo/data) y el directorio de LOG (D:/mongo/logs), ademas, configuraremos los parametros de conexión y los BINDING_IP, que nos permiten acceder a MongoDB desde internet.

Sencillo, ¿no?. Con esto nos basta en principio, podemos incluir más opciones de configuración, tal como se indican aquí.

Añadiendo Usuarios

Por defecto, Mongo, no tiene ningún usuario configurado. Tenemos que crear un admin por lo menos, aunque el acceso en local no lo necesita, podremos acceder sin necesidad de credenciales, pero si para accesos remotos.

Podemos usar la misma consola de Mongo (mongo.exe) o la consola de (por ejemplo) RoboMongo. Yo lo explicaré con este programa, mas que nada por que me parece más útil a la hora de ver los resultados de las operaciones.

Básicamente, la operación para crear un usuario admin (o los que queráis), se desarrolla sobre la base de datos admin, todos los usuarios creados allí en esa tabla, pueden acceder a las demás bases de datos.

Comenzamos usando admin:

Para acto seguido añadir un objeto user, acción que se realiza con db.createUser, de la siguiente forma:

Existen unos roles predefinidos que podéis encontrar en la web de MongoDB, pero básicamente, con el rol ‘dbadmin’, ya tendríamos acceso a todas las tablas / bases de datos.

Para los impacientes, aquí hay una guía rápida, paso a paso que en menos de 10 minutos te permitirá tener funcionando tu servidor PARSE.

  1. Descargar e instalar Mongo DB. No requiere ninguna configuración especial.

Iniciar MongoDB desde una consola de comandos (preferiblemente como administrador):

  1. Descargar e instalar Node.js. No requiere ninguna configuración especial.
  2. Descargar e instalar Python 2.7.11 (el recomendado). Tampoco requiere ninguna configuración especial.
  3. Descargar desde GitHub el ejemplo de servidor Parse. Descomprimir en una carpeta (p.e /parse ).

Abrimos una consola de comandos en modo administrador, nos vamos al directorio donde esta PARSE (/parse) y escribimos :

Esto solo hay que hacerlo la primera vez, o cuando descarguemos una nueva versión.

  1. Configuración del archivo index.js del directorio de Parse/parse/index.js ).
Vamos a explicar las cosas, aunque su propio nombre da pistas de lo que son y si habéis usado parse, os sonaran bastante:

  • identificador de la aplicación : Puede ser cualquier cosa, desde demodelphi, hasta un identificador tipo Parse o Kinvey tal como XdgH45Uas…..
  • masterkey : Una clave maestra, recordad que cuanto más compleja, mas segura…
  • restapikey: Lo mismo que masterkey. No hay un mínimo de caracteres.
  • GCM Sender ID : El identificador que nos da google para el envío de notificaciones.
  • GCM API Key : La clave de aplicación que nos da google.

Para la versión de instalación rápida, no hace falta configurar más cosas.

Ahora ejecutamos Parse:

  1. Descargar desde GitHub el Dashboard de Parse. Descomprimir en una carpeta (p.e /dsparse ).
  2. Configuración del archivo parse-dashboard-config.json (/dsparse/Parse-Dashboard/parse-dashboard-config.json ).

Para cada aplicación que queramos controlar desde el Dashboard, deberemos crear tantas entradas como aplicaciones.

Vamos a ver que es cada cosa:

  • ServerURL : Dirección del Servidor Parse.
  • appID : Identificador de la aplicación (configurado en index.js del servidor).
  • masterkey : Clave de la aplicación (configurado en index.js del servidor).
  • appName : Nombre que queremos que tenga la aplicación en el dashboard.

Ahora abrimos otra consola de comandos y nos vamos al directorio donde esta ubicado el DashBoard.

Instalamos :

Para ejecutar el dashboard:

Veríamos algo así en nuestra consola:dsinstall003

Y ya estaría todo funcionando…

Para acceder al dashboard hay que hacerlo por el puerto 4040, y desde localhost:

Y accediendo, veriamos nuestro DASHBOARD:

dsinstall002

PARSE es un backend que tiene como fondo MongoDB para el almacén de datos. En esta base de datos, se almacenan desde los archivos (salvo que se especifique otra plataforma como WS3), hasta el historial de notificaciones PUSH.

PARSE almacena las colecciones (lo que podríamos llamar ‘tablas’) como documentos JSON/BSON en la base de datos. Cada colección equivaldría a una tabla de datos, pero las columnas (campos), tal y como las conocemos, dentro de MongoDB no existen, aunque desde PARSE podemos crearlas en la gestión de colecciones, para nuestra comodidad.

¿ Por que no digo nada acerca de que se puedan crear los campos desde gestores de MongoDB ? Por que luego no nos aparecerían en PARSE de forma natural, eso si, si definimos campos con RoboMongo y luego en PARSE los definimos otra vez, nos aparecerian con los valores que ya tuvieran.

Instalación Básica

Bien, comencemos instalando MongoDB. Para ello podemos descargar la última versión desde su web oficial (www.mongodb.org). Podemos utilizar cualquier versión, pero atentos si queremos usar delphi para acceder a los datos de MongoDB. La versión mínima especificada para poder acceder con FireDac es la 3.0, concretamente la 3.0.11. A fecha de escribir esto, la versión existente es la 3.2.6.

Instalación mas ‘personalizada’. Configurando Mongo.

Vamos a suponer que no queremos en c:/…./mongo/ tener instalado el servidor, y que tampoco queremos en c:/data/ el almacén de los datos, para ello, tendremos que crear un archivo de configuración y luego cargarlo desde la línea de comandos al iniciar el servidor de esta forma:

Todas las opciones de para el archivo de configuración, las tenéis aquí.

Vamos pues a crear el archivo de configuración básico con lo que nos interesa, la base de datos en un directorio (D:/mongo/data) y el directorio de LOG (D:/mongo/logs), ademas, configuraremos los parametros de conexión y los BINDING_IP, que nos permiten acceder a MongoDB desde internet.

Sencillo, ¿no?. Con esto nos basta en principio, podemos incluir más opciones de configuración, tal como se indican aquí.

Añadiendo Usuarios

Por defecto, Mongo, no tiene ningún usuario configurado. Tenemos que crear un admin por lo menos, aunque el acceso en local no lo necesita, podremos acceder sin necesidad de credenciales, pero si para accesos remotos.

Podemos usar la misma consola de Mongo (mongo.exe) o la consola de (por ejemplo) RoboMongo. Yo lo explicaré con este programa, mas que nada por que me parece más útil a la hora de ver los resultados de las operaciones.

Básicamente, la operación para crear un usuario admin (o los que queráis), se desarrolla sobre la base de datos admin, todos los usuarios creados allí en esa tabla, pueden acceder a las demás bases de datos.

Comenzamos usando admin:

Para acto seguido añadir un objeto user, acción que se realiza con db.createUser, de la siguiente forma:

Existen unos roles predefinidos que podéis encontrar aquí, pero básicamente, con el rol ‘dbadmin’, ya tendríamos acceso a todas las tablas / bases de datos.