Italian community of Lazarus and Free Pascal
Programmazione => Lazarus e il web => Topic aperto da: xinyiman - Ottobre 05, 2023, 09:43:56 am
-
Buongiorno a tutti, come esercizio di stile ho creato un piccolo progetto d'esempio, con lo scopo di dimostrare come si costruisce un microservizio web che restituisce dati in json.
Praticamente affronta due tematiche
1. realizzare un login basato su jwt (il codice l'ho preso da un altro progetto di Anderson J. Gado da Silva and Hélio S. Ribeiro)
2. leggere il contenuto di un file excel e renderlo disponibile in json (previa autorizzazione tramite jwt)
Il progetto lo potete trovare qui: https://github.com/XinYiMan/xls2json
Una volta che avete compilato il progetto lanciatelo (il file config.ini deve risiedere nella stessa cartella dell'eseguibile).
Gli utenti autorizzati e relative password li trovate nel config.ini
Una volta lanciato l'eseguibile aprite un browser e lanciate i seguenti due comandi
http://localhost:8080/login?username=test1&password=qwerty
Vi restituirà un json, se positivo il valore di code sarà 0 e la description sarà vuota, altrimenti avranno altri valori e vorrà dire che il login non sarà valido.
Recuperate la stringa che compone il valore di jwt che per semplicità da qui in avanti chiameremo JWT_RESULT
e lanciate il comando
http://localhost:8080/index?action=azione1&jwt=JWT_RESULT
vi restituirà un errore in quanto il file azione1.xls non esiste-
azione1 è il nome del file xls che deve essere trasformato in JWT.
Quindi create un file excel con nome azione1.xls riempitelo di valori nelle colonne (come se fosse una tabella) e la prima riga deve contenere il nome della colonna della tabella.
Ora salvate questo file nella sottocartella /cartella_dell_eseguibile/files/test1dir/azione1.xls
Adesso se rilanciate il comando
http://localhost:8080/index?action=azione1&jwt=JWT_RESULT
dovreste vedere il contenuto del file xls sottoforma di json.
Attenzione: se nel file config.ini
Users=2
non potete creare la terza accoppiata di credenziali nella sezione [Users]
Gli utenti iniziano da indice 0 e vanno a indice Users-1
ID rappresenta ovviamente l'identificativo dell'utente
USERNAME , PASSWORD e ACTIVE servono per l'autentificazione
DIR indica la sottodirectory di files dove trovare i file accessibili dall'utente (se vuota pesca direttamente da files)
Sperando che questo esempio possa essere d'aiuto a qualcuno.
-
Come nota tecnica, vorrei aggiungere che è necessario installare "FPSPREADSHEET" dal Online Package Manager e altre dipendenze che vengono risolte dando l'OK alle domande poste dall'OPM.
Ciao
-
Giustissimo DragoRosso, grazie della precisazione.
-
grazie xinyiman
progetto molto interessante
-
::)
https://github.com/paxtibi/jsonserver
Allora aspetto una recensione anche per questo progettino ;D
-
eh... dovreste metterli insieme e farne uno unico :)
ci sono cose interessanti in tutte e 2 i server
-
Ovviamente questo è solo un esempio. Però lo stesso approccio l'ho usato per creare nel giro di poche ore un servizio simile che prende in ingresso (sempre previa autorizzazione) delle stringhe da far stampare su delle stampanti zebra in giro per l'azienda. Poi un programma con lazreport manda in stampa sulla stampante corretta.
-
xiny è più di un anno che aspetto un feedback da nomore ;D ;D ;D ;D
Una cosa tra di noi insomma.
Stilgar
-
xiny è più di un anno che aspetto un feedback da nomore ;D ;D ;D ;D
Una cosa tra di noi insomma.
Stilgar
Si si lo so ;D ;D
-
colpa del COVID! 8)
-
COme Volevasi Inventare Digitale?
Che progetto è?
-
E' il nuovo progetto di vita di @nomorelogic, è rimasto fulminato dalla LUCE.
Però è l'acronimo di: COme Vivere Imparando Delphi ... ;D ;D ;D
-
o...
COme Vinere Ignorando Delphi
già suona meglio :D
-
Quando ho letto che sei rimasto fulminato dalla LUCE ho subito pensato che l'impianto di casa non fosse a norma ... :-X