Strumenti Utente

Strumenti Sito


sviluppo:rest_server

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisioneRevisione precedente
Prossima revisione
Revisione precedente
sviluppo:rest_server [2016/02/29 09:22] m.biagiolisviluppo:rest_server [2018/03/19 10:45] (versione attuale) – modifica esterna 127.0.0.1
Linea 4: Linea 4:
  
 ======Definizione routes====== ======Definizione routes======
-Le routes vanno censite su un apposito file di configurazione'/config/routes.ini'.+Le routes vanno censite su appositi file di configurazione con estensione '.ini' all'interno della cartella 'routes'.
 Per ogni route devono essere specificate le seguenti informazioni: Per ogni route devono essere specificate le seguenti informazioni:
   * **VERB**: indica il 'verb http' (GET o POST)   * **VERB**: indica il 'verb http' (GET o POST)
Linea 62: Linea 62:
  
 ======REST Model====== ======REST Model======
-Per le classiche operazioni CRUD su un model attraverso l'utilizzo di servizi REST (ad esempio, se si vuole utilizzare itaEngine come back-end completo di una app implementata con un'altra tecnologia - come AngularJS o Ionic), occorre definire delle classi model specifiche che estendono '**wsModelRest**'.+Per le classiche operazioni CRUD su un model attraverso l'utilizzo di servizi REST (ad esempio, se si vuole utilizzare itaEngine come back-end completo di una app implementata con un'altra tecnologia - come AngularJS o Ionic).
 Le operazioni messe a disposizione sono le seguenti: Le operazioni messe a disposizione sono le seguenti:
-  * query +  * load [GET] 
-  * readRecord +  * count [GET] 
-  * insertRecord +  * insert [POST] 
-  * updateRecord +  * update [POST] 
-  * deleteRecord +  * delete [POST] 
-Per un funzionamento di default, le varie sottoclassi dovranno solamente specializzare i metodi: +  * custom [POST]
-  * initVars +
-  * getAuditInfo+
  
-=====Esempio=====+Le operazioni CRUD sono associate al model, se presente la classe specifica viene presa quella, altrimenti si va in fallback sulla classe generica, che deriva da wsModelRest. 
 +Esempio: 
 +Modello: cwbBtaGrunaz.php 
 +Classe ModelRest specifica: rest/cwbBtaGrunazModelRest.php 
 +(Fallback su rest/cwbBaseModelRest) 
 + 
 +=====load===== 
 +Effettua la ricerca di un record per chiave. 
 +Riceve in ingresso i valori delle PK. 
 + 
 +Chiamata:
  
 <code> <code>
 +{
 + "PKVALUES": {
 + "CODGRNAZ":"01"
 + }
 +}
 +</code>
  
-class cwbBtaGrunazRest extends wsModelRest+Risposta: 
-     + 
-    public function initVars() +<code> 
-       $this->setDbName('CITYWARE'); +
-       $this->setDbSuffix(''); +  "ESITO": 1, 
-       $this->setTableName('BTA_GRUNAZ'); +  "MESSAGGIO": "Esito positivo", 
-       $this->setPk('CODGRNAZ'); +  "DATI": { 
-       $this->setKeyAutoincrement(false); +    "RESULTS": 
-       $this->setUseInsertAudit(false); +      "CODGRNAZ": "01", 
-       $this->setUseUpdateAudit(true);+      "DESGRNAZ": "UNIONE EUROPEA                          ", 
 +      "CEENAZ": "C", 
 +      "CONTINENTE": "1 ", 
 +      "CODUTE": "italsoft            ", 
 +      "DATAOPER": "2015-12-15", 
 +      "TIMEOPER": "17:38:18"
     }     }
 +  }
 +}
 +</code>
  
-    protected function getAuditInfo($data) +=====count===== 
-        return 'Oggetto$data['CODGRNAZ'] . " " . $data['DESGRNAZ'];+Effettua il conteggio dei record, dati in ingresso i parametri per la query specifica. 
 + 
 +Chiamata: 
 + 
 +<code> 
 +
 + "PARAMS"
 + "DESGRNAZ":"europ" 
 +
 +
 +</code> 
 + 
 +Risposta: 
 + 
 +<code> 
 +
 +  "ESITO": 1, 
 +  "MESSAGGIO": "Esito positivo", 
 +  "DATI":
 +    "COUNT": "2" 
 +  } 
 +
 +</code> 
 + 
 + 
 +=====query===== 
 +Effettua la lettura dei record, dati in ingresso i parametri per la query specifica. 
 + 
 +Chiamata: 
 + 
 +<code> 
 +
 + "PARAMS":
 + "DESGRNAZ":"europ" 
 + }, 
 + "FROM": 0, 
 + "TO":
 +
 +</code> 
 + 
 +Risposta: 
 + 
 +<code> 
 +
 +  "ESITO": 1, 
 +  "MESSAGGIO": "Esito positivo", 
 +  "DATI":
 +    "RESULTS": [ 
 +      { 
 +        "CODGRNAZ": "01", 
 +        "DESGRNAZ": "UNIONE EUROPEA                          ", 
 +        "CEENAZ": "C", 
 +        "CONTINENTE": "1 ", 
 +        "CODUTE": "italsoft            ", 
 +        "DATAOPER": "2015-12-15", 
 +        "TIMEOPER": "17:38:18" 
 +      }, 
 +      { 
 +        "CODGRNAZ": "02", 
 +        "DESGRNAZ": "ALTRI PAESI EUROPEI                     ", 
 +        "CEENAZ": "E", 
 +        "CONTINENTE": "1 ", 
 +        "CODUTE": "italsoft            ", 
 +        "DATAOPER": "2016-01-22", 
 +        "TIMEOPER": "10:25:21" 
 +      } 
 +    ] 
 +  } 
 +
 +</code> 
 + 
 + 
 +=====insert===== 
 + 
 +Chiamata: 
 + 
 +<code> 
 +
 + "DATA":
 + "CURRENTRECORD":
 + "CODGRNAZ": "90", 
 + "DESGRNAZ": "Inserimento da WS", 
 + "CEENAZ":"C", 
 + "CONTINENTE":"1" 
 +
 + }  
 +
 +</code> 
 + 
 +Risposta: 
 + 
 +<code> 
 +
 +  "ESITO": 1, 
 +  "MESSAGGIO": "Esito positivo", 
 +  "DATI":
 +    "RESULTS":
 +      "CODGRNAZ": "90", 
 +      "DESGRNAZ": "Inserimento da WS                       ", 
 +      "CEENAZ": "C", 
 +      "CONTINENTE": "1 ", 
 +      "CODUTE": "italsoft            ", 
 +      "DATAOPER": "2016-06-24", 
 +      "TIMEOPER": "15:07:10"
     }     }
 +  }
 +}
 +</code>
  
 +
 +=====update=====
 +
 +Chiamata:
 +
 +<code>
 +{
 + "DATA": {
 + "CURRENTRECORD":{
 + "CODGRNAZ": "90",
 + "DESGRNAZ": "Inserimento da WS Modificato",
 + "CEENAZ":"E",
 + "CONTINENTE":"1"
 + }
 + }
 +}
 +</code>
 +
 +Risposta:
 +
 +<code>
 +{
 +  "ESITO": 1,
 +  "MESSAGGIO": "Esito positivo",
 +  "DATI": {
 +    "RESULTS": {
 +      "CODGRNAZ": "90",
 +      "DESGRNAZ": "Inserimento da WS Modificato            ",
 +      "CEENAZ": "E",
 +      "CONTINENTE": "1 ",
 +      "CODUTE": "italsoft            ",
 +      "DATAOPER": "2016-06-24",
 +      "TIMEOPER": "15:18:11"
 +    }
 +  }
 +}
 +</code>
 +
 +=====delete=====
 +
 +Chiamata:
 +
 +<code>
 +{
 + "DATA": {
 + "CURRENTRECORD":{
 + "CODGRNAZ": "90",
 + "DESGRNAZ": "Inserimento da WS",
 + "CEENAZ":"C",
 + "CONTINENTE":"1"
 + }
 + }
 +}
 +</code>
 +
 +Risposta:
 +
 +<code>
 +{
 +  "ESITO": 1,
 +  "MESSAGGIO": "Esito positivo",
 +  "DATI": {
 +    "RESULTS": {
 +      "CODGRNAZ": "90",
 +      "DESGRNAZ": "Inserimento da WS",
 +      "CEENAZ": "C",
 +      "CONTINENTE": "1"
 +    }
 +  }
 +}
 +</code>
 +
 +=====custom=====
 +Attraverso il metodo custom è possibile chiamare qualsiasi metodo della classe modelRest specifica. 
 +Il servizio riceva in ingresso il nome del metodo e i parametri.
 +
 +Chiamata:
 +
 +<code>
 +{
 + "METHOD":"testCustom",
 + "PARAMS":{
 + "PAR1": "X",
 + "PAR2": 1
 + }
 +}
 +</code>
 +
 +Risposta:
 +
 +<code>
 +{
 +  "ESITO": 1,
 +  "MESSAGGIO": "Esito positivo",
 +  "DATI": {
 +    "RESULTS": {
 +      "Risposta metodo custom": {
 +        "Parametro 1": "X",
 +        "Parametro 2": 1
 +      }
 +    }
 +  }
 } }
 </code> </code>
sviluppo/rest_server.1456737775.txt.gz · Ultima modifica: 2018/03/19 10:45 (modifica esterna)