Introduzione

Premessa

Per soddisfare l’esigenza di integrare il nuovo software di pre-sale “Odoo” al flusso applicativo e procedurale IPI con i suoi CRM, sono state esposte delle nuove interfacce di comunicazione operanti sui CRM.

Obiettivo

Lo scopo del documento è quello di formalizzare il protocollo di comunicazione specificandone le fuzionalità

Requisiti

La comunicazione tra il software di Odoo ed il software di IPI avverrà con chiamate HTTP Restful in Json. Per poter eseguire operazioni tramite queste interfacce, sarà necessario implementare l’autenticazione degli utenti commerciali, i quali saranno abilitate nelle operazioni di inserimento nuovi utenti/contratti/attrezzature/impianti/.. nati da nuovi ordini d’acquisto, divenuti poi contratti.

Descrizione

IPI è una società che opera come certifiatore di prodotti e valutazione di conformità per impianti e attrezzature sotto la tutela delle direttive europee.

Il presente software viene utilizzato da applicazioni terze (applicazioni mobile Android ed ERP Odoo) per poter interfacciarsi al software per gestione attività tecniche di IPI

Architettura

Il presente software è sviluppato con la tecnologia NodeJS con il framework Loopback.io .

Per poter funzionare correttamente è necessario node@^8, richiede Java versione 1.7. È necessaria la comunicazione con il backend PHP ed al database applicativo IPI.

Installazione

Clonare il progetto da gitlab

export NODE_ENV=development
git clone git@git.webmonks.org:ipi-mobile/server.git --branch $NODE_ENV dm1104_$NODE_ENV
npm install
cp ipi-mobile_$NODE_ENV/scripts/lib/* $JAVA_HOME/jre/lib/

Configurazione

A runtime verrà caricato il file di configurazione

./server/config.json

sovrascrivendo le chiavi specifiche per il relativo ambiente, presenti nel

./server/config.NODE_ENV.json

Start up

Lo script di startup dell’applicativo è ./server/server.js. Dalla directory applicativa è quindi necessario eseguire node server/server.js

DM1104

Prod

Preprod

CRM

dm1104.ipiverifiche.com

dm1104-preprod.ipiverifiche.com

Middleware

dm1104-prod.ipi.middleware.monksoftware.it

dm1104-preprod.ipi.middleware.monksoftware.it

DPR462

Prod

Preprod

CRM

dpr462.ipiverifiche.com

dpr462-preprod.ipiverifiche.com

Middleware

dpr462-prod.ipi.middleware.monksoftware.it

dpr462-preprod.ipi.middleware.monksoftware.it

DPR162

Prod

Preprod

CRM

dpr162.ipiverifiche.com

dpr162-preprod.ipiverifiche.com

Middleware

dpr162-prod.ipi.middleware.monksoftware.it

dpr162-preprod.ipi.middleware.monksoftware.it

Protocollo di comunicazione

Struttura response

Descrizione

Ogni interfaccia HTTP richiede in input parametri ben definiti ed in output restituisce oggetti JSON.

Struttura generica di risposta

{
    "status": <integer>,
    "errorCode": <String>,
    "errorMessage": <Array> ErrorMessage,
    "response": <Object>
}

Descrizione response

Field Name

Descrizione

Type

status

esito risposta: 0 → ok < 0 → error > 0 → warning

integer

errorCode

codice univoco dell’errore/warning

string

errorMessage

oggetto generico di descrizione errore

string

response

oggetto generico di risposta

string

Access Token

Descrizione

Per le interfacce richiedenti autenticazione, si dovrà passare negli header della request il token restituito alla login ( login.response.authorization.id ).

Esempio di chiamata con autenticazione

Il token sarà da passare nell’header Authorization

> GET /api/<model>/<id>/<method> HTTP/1.1
> User-Agent: curl/7.52.1
> Authorization: 0GEpkO8IqM3nwyebWydrEG8r89BuCOPE0CHCmHfLLPKCBbKxbqBHVVqdqW6xKgmV
> Accept: application/json