mi interfaccio quotidianamente con un gestionale web che funziona con web services , avrei bisogno di eseguire delle chiamate dai miei file excel per scrivere e ottenere dei dati.
Ho provato a modificare 2 soluzioni qui del forum ma non mi funzionano, non so se perchè sono troppo scarso (probabile) o perchè questo sito non gira su IE o perchè è necessario un login particolare.
Il minimo che dovrei ottenere è, avendo un codice specifico di un elemento, la restituzione dell''idx di quell'elemento, con questo metodo:
• Method: GET
• URL: https://xxxxx.yyyyyyyyyy.it/api/element ... XXXXXXX/id
• Response: {"idElemento":8949919}
Da qui poi si possono fare le operazioni di lettura e scrittura negli elementi.
Detto questo, metto qui la prima parte di istruzioni inviatemi dal dev del sito, con cancellati gli url reali, intanto per capire se è una cosa percorribile con VBA.
È possibile interfacciarsi con i Web Services software tramite API Rest con scambio di dati unicamente in formato JSON.
In caso di errore le API rispondono sempre con uno status code HTTP (tipicamente 500 Server Error) e il seguente JSON:
{
code: null
message: "Nome utente non valido!"
success: false
}
Dove:
code (quando presente) rappresenta un identificativo dell'errore utile per capire di che tipo di errore si tratta
message è la descrizione in un formato leggibile dall'utente dell'errore
success rappresenta lo stato della richiesta ed è utile a livello "applicativo". In caso di errore è sempre a false.
Login
Tutte le API necessitano di un JSON Web Tokens (JWT, https://jwt.io/) di autenticazione per poter funzionare.
È possibile ottenere il token di autenticazione (che ha una durata di 24 ore) tramite la chiamata di login.
Importante: qualsiasi altra chiamata dovrà contenere questo token (o verrà rifiutata con codice HTTP 403 Forbidden).
Url: http://xxx-yyy.xxxxxxxxxx.it/api/auth/login
Method: POST
Request Parameters: -
Request Body (Content-Type: application/json):
{
"username": "yyy",
"password": "xxxxxxxx"
}
Response (Content-Type: application/json):
{
"token": "eyJ0eXAiOi [...]"
}
In caso di errato login (ad esempio username non riconosciuto o password non valida) le API risponderanno con il codice di errore HTTP 401
Unauthorized.
Il token può essere decodificato facilmente grazie alle librerie messe a disposizione da JWT (si veda https://jwt.io/) e contiene diverse
informazioni utili riguardandi l'utente corrente.
È presente anche un timestamp (come da immagine qui sotto) che indica quando il Token scadrà (utile se si vuole capire quando è necessario
rinnovarlo senza incorrere in un errore 403).
Importante: negli headers di tutte le chiamate (eccetto ovviamente quella di login) è necessario passare il parametro Authorization con valore
"Bearer {token JWT ottenuto dalla chiamata di login}"
si può fare secondo voi?
Grazie