| Entrambe le parti precedenti la revisioneRevisione precedenteProssima revisione | Revisione precedente |
| apireference:manifesto_microservizio [2024/04/08 13:25] – marcomerlino | apireference:manifesto_microservizio [2024/04/22 14:08] (versione attuale) – marcomerlino |
|---|
| |
| {"code":"pim","name":"Product Information Management"} | {"code":"pim","name":"Product Information Management"} |
| | |
| | Inoltre nello stesso potrà essere presente una sezione "relations" che contenga i microservizi referenziati dallo stesso (in formato codice: manifesto) |
| |
| ==== Configurazione del Microservizio ==== | ==== Configurazione del Microservizio ==== |
| |
| il formato d'errore è un oggetto composto da: | il formato d'errore è un oggetto composto da: |
| - codice errore (obbligatorio) | |
| - descrizione testuale errore | * codice errore (obbligatorio) |
| - parametri errore | * descrizione testuale errore |
| | * parametri errore |
| Ad esempio: | Ad esempio: |
| {"error":{"code":"F001","description":"Il campo codice non è | |
| univoco","params":[{"field":"code"}]}} | {"error":{"code":"F001","description":"Il campo codice non è univoco","params":[{"field":"code"}]}} |
| API Microservizi v1.0.2 | |
| API del microservizio | ==== API del microservizio ==== |
| Ogni api per accedere a un modello sarà descritta in termini di: | Ogni api per accedere a un modello sarà descritta in termini di: |
| - codice identificativo | |
| - nome mnemonico | * codice identificativo |
| - verbo http (GET, POST, ...) | * nome mnemonico |
| - url di accesso (assoluta rispetto alla root di dominio del manifest del microservizio o assoluta, | * verbo http (GET, POST, ...) |
| quindi, se ad esempio abbiamo un manifest tipo https://pim.neosidea.com/api/Manifest.json, lo | * url di accesso (assoluta rispetto alla root di dominio del manifest del microservizio o assoluta, quindi, se ad esempio abbiamo un manifest tipo https://pim.neosidea.com/api/Manifest.json, lo stesso potrà specificare url di accesso tipo: /api/product/create/ o https://pim.neosidea.com/api/product/create/ |
| stesso potrà specificare url di accesso tipo: /api/product/create/ o | * parametri url: saranno descritti i parametri concatenabili dall'url di accesso in termini di codice identificativo, nome mnemonico, tipo (dal sottoinsieme: text/number/integer/positivenumber/positiveinteger/date/datetime/time/timerange/boolean/uuid ), e obbligatorierà, gli stessi dovranno essere passati codificati in USASCII e separati da un forward slash. |
| https://pim.neosidea.com/api/product/create/ | * parametri: saranno descritte le chiavi utilizzabili in un oggetto json trasferibile nel contenuto delle chiamate, in aggiunta ai tipi sin qui visti occorre prevedere i tipi speciali: "array" e "object" che potranno essere utilizzati per trasferire vettori di oggetti, oggetti, oggetti di ricerca, oggetti di risposta, e il tipo "blob" per i trasferimenti binary o opachi alla specifica. |
| - parametri url: saranno descritti i parametri concatenabili dall'url di accesso in termini di codice | * response |
| identificativo, nome mnemonico, tipo (dal sottoinsieme: | * capabilities richieste (oggetto contenente un array di capabilities in or organizzate per funzione) |
| text/number/integer/positivenumber/positiveinteger/date/datetime/time/timerange/boolean/uuid ), e | |
| obbligatorierà, gli stessi dovranno essere passati codificati in USASCII e separati da un forward slash. | |
| - parametri: saranno descritte le chiavi utilizzabili in un oggetto json trasferibile nel contenuto delle | |
| chiamata, in aggiunta ai tipi sin qui visti occorre prevedere i tipi speciali: "array" e "object" che | |
| potranno essere utilizzati per trasferire vettori di oggetti, oggetti, oggetti di ricerca, oggetti di risposta, e | |
| il tipo "blob" per i trasferimento binary o opachi alla specifica. | |
| - response | |
| - capabilities richieste (oggetto contenente un array di capabilities in or organizzate per funzione) | |
| Esempio: | Esempio: |
| "new":{"name":"Create new | |
| objects","method":"GET","url":"/api/product/create/","params":[{"code":"num","name":"Nume | "new":{"name":"Create new objects","method":"GET","url":"/api/product/create/","params":[{"code":"num","name":"Numero","type":"positiveinteger","required":true}],"response":"array","capabilities":{}} |
| ro","type":"positiveinteger","required":true}],"response":"array","capabilities":{}} | |
| In aggiunta alle chiamate standard la stessa potrà prevedere chiamate custom (es: changepassword). | * Elenco puntatoIn aggiunta alle chiamate standard la stessa potrà prevedere chiamate custom (es: changepassword). |
| Il formato della risposta è sempre da intendersi in alternativa al formato d'errore. | * Il formato della risposta è sempre da intendersi in alternativa al formato d'errore. |
| Tutte le risposte potranno essere validate verificando la nullità del JSONPath (JSONPath) $.error.code | * Tutte le risposte potranno essere validate verificando la nullità del JSONPath (JSONPath) $.error.code |
| Per migliorare l'integrazione delle stesse sarebbe utile evidenziare nel manifest le capabilities | Per migliorare l'integrazione delle stesse sarebbe utile evidenziare nel manifest le capabilities necessarie per il possibile utilizzo di una api, di modo che la UI possa mostrare/nascondere le funzioni sulla base del permesso utente, questa funzione sarà aggiunta alla specifica in una futura revisione. |
| necessarie per il possibile utilizzo di una api, di modo che la UI possa mostrare/nascondere le funzioni | |
| sulla base del permesso utente, questa funzione sarà aggiunta alla specifica in una futura revisione. | |
| |
| |