Aguas Nuevas Microservicio V3


834KB Größe 13 Downloads 11 vistas
Documentación micro servicio v3

Documentación

Notificaciones · Microservicio • Especificaciones • Flujo • Paso a producción • Integraciones notificaciones leídas y numero de notificaciones pendientes

1

Documentación micro servicio v3

Especificaciones Sistema operativo Windows Server 2012 Servidor web IIS 8.0 ~ 8.5 Lenguaje de programación: Python 2.7 Framework: Flask 0.10 Dependencias utilizadas: flask-restful (Servicios tipo REST API) flask-restful-swagger (Documentación de servicio) pyfcm (Envío de notificaciones vía FCM Google) apns (Envío de notificaciones vía APNS) opbeat (Tracking de performance)

Estructura de proyecto Archivos

Descripción

app.py

Código completo de la app

requirements.txt

Archivo de instalación de dependencias

apns/aguas-altiplano-pushcert.pem

Certificado para APNS para ADA

apns/aguas-magallanes-pushcert.pem

Certificado para APNS para AMA

apns/apns-dev-cert.pem

Certificado para APNS para ARA

logger.log

Log completo de transacciones

* APNS = Apple Push Notification Service

Flujo

2

Documentación micro servicio v3

Paso a producción Código de fuente: http://plr-emar.s3.amazonaws.com/Clientes/Aguas%20nuevas/microserviciosnotificacionesV3.zip Carpetas: Archivos

Descripción

flask/

Entorno de python (Opcional para Virtualenv)

app/

Codigo de fuente de app python

Instalación en Windows Server 2012 RC2 IIS 8.0 ~ 8.5 Proceso en base a tutorial publicado: http://netdot.co/2015/03/09/flask-on-iis/ Preparación servidor IIS: Instalar o verificar paquete de CGI instalado

3

Documentación micro servicio v3 Paso 1 Instalación de FastCGI: Instalar Web Plataform Installer 5.0 Descarga oficial https://www.microsoft.com/web/downloads/platform.aspx Ejecutar programa:

Buscar WFastCGI Instalar WFastCGI * Gateway for IIS and Python 2.7*

4

Documentación micro servicio v3 Paso 2 configuración de WFastCGI en el proyecto python: Descargar proyecto proyecto en directorio de servidor (ej: C:/inetpub/wwwroot/…) Copiar archivo wfastcgi desde el directorio de python creado C:/Python27/script/. ( * Directorio creado en la instalación del paso 1 de WFastCGI ) Pegar archivo wfastcgi en dentro de directorio app/. *Dar permisos de escritura para el usuario de IIS al directorio completo del microservicio Paso 3 configuración de WFastCGI en IIS: Configurar FastCGI: Seleccionar Handler mappings

Seleccionar “Add module mapping”

* El campo “Ejecutable” debe ingresar la ruta del python.exe instalado y separador por un “|” hacia el archivo Python ha ejecutar en este caso el archivo wfastcgi.py dentro del proyecto (Previamente copiado)

5

Documentación micro servicio v3

Dentro de las opciones de “Request restrictions” se debe desmarcar la opción de “Invoke handler only if request is mapped to:”

Finalmente al seleccionar ok. Luego de esto seleccionar las Configuraciones de FastCGI a nivel root del servidor, buscar la opción de Python de wfastcgi.py creada anteriormente

6

Documentación micro servicio v3 Al seleccionar la configuración se debe seleccionar la opción de agregar Variables de entorno:

Se debe agregar el PYTHONPATH, la cual es la ruta hacia el micro servicio en el servidor Ej: En el caso de llamare microservicio/ la ruta debería ser “C:\inetpub\wwwroot\microservicio\”

7

Documentación micro servicio v3 Y finalmente una variable de nombre WSGI_HANDLER con el valor de app.app

Paso 4 Instalación de dependencias de ptyhon: Con CMD o Administrador Windows Power Shell situarse en directorio de app: ej: “cd C:\inetpub\wwwroot\Microservicio\app”

Instalar dependencias con Pip: C:\Python27\Scripts\pip.exe install -r requirements.txt C:\Python27\Scripts\pip.exe uninstall -y certifi C:\Python27\Scripts\pip.exe install certifi==2015.04.28

8

Documentación micro servicio v3

Finalmente reiniciar el servidor web de la app y verificar que el sitio esta corriendo validando

que la pagina de documentación se visualiza en el sitio web

9

Documentación micro servicio v3

Notificaciones no leídas Para poder mostrar el numero de notificaciones no leídas en android se debe agregar un campo nuevo al modelo de notificaciones dependiente del usuario, el campo debe ser un Boleano tipo “LEIDO”. El proceso para que se cambie a leída debe ser implementado en el mismo servicio de notificaciones ( ../api/mobile/notificaciones/{Plataforma} ) :

El servicio debe ser capaz de detectar cuando el servicio fue entregado (Finalize response) y marcar las notificaciones como leídas. Con esto se puede generar un segundo servicio que devuelva el numero de notificaciones no leídas ya que por flujo no han abierto la secciones de notificaciones.

10