{"revision":"0ed62d2c742f8e20","language":"it","entry":{"id":"statement","kind":"endpoint","group":"cards","title":"Leggi una dichiarazione","method":"GET","path":"/v1/statements/{id}","paths":["/statements/{id}"],"summary":"Una dichiarazione firmata per il suo id, con la sua scheda e, per un ritiro, la dichiarazione che ritira. /statements/{id} è la sua pagina, con l’anteprima e un Article in JSON-LD; con .json dà questo JSON.","response":"card, statement e retracts (la dichiarazione ritirata, o null).","parameters":[{"name":"id","description":"L’id della dichiarazione: la sua posizione nel registro.","in":"path","required":true}],"sample":"/v1/statements/1","access":"public","base":"directory","notes":[],"errors":["400 invalid_parameter","400 wrong_format","401 invalid_api_key","403 api_key_scope","403 api_key_suspended","403 developer_suspended","404 not_found","410 erased","429 rate_limited","500 internal_error","503 busy"],"related":["card-statements","statements-feed"],"sections":[{"kind":"code","language":"shell","code":"curl -fsS 'https://veil.rip/v1/statements/1'"}],"verify":"Controlla ogni elemento prima di mostrarlo come della scheda: dichiarazione canonica, c = SHA-256(salt ‖ statement), la firma della voce su \"veil-rubrica:card-entry:v2\\n\" e la voce senza firma, con una chiave attiva per chi firma alla posizione i (dalle sue versioni di autorità), e l’inclusione in un checkpoint firmato dal registro e controfirmato da un quorum. L’elenco in sé è la parola del server: può tralasciare una voce.","live":false,"responses":[{"status":200,"contentType":"application/json","description":"La dichiarazione.","fields":[{"name":"card","type":"object","description":"n, type, name, token e url della scheda."},{"name":"statement","type":"object","description":"La dichiarazione, come nell’elenco della scheda."},{"name":"retracts","type":"object | null","description":"Per un ritiro, la dichiarazione che ritira."}]}],"responseObjects":[],"errorFormat":"json","responseHeaders":[{"name":"Content-Type","value":"application/json","description":"Usa il tipo dichiarato per scegliere come leggere il corpo."},{"name":"Date","value":"HTTP date","description":"Ora del server. Confrontala con il tuo orologio per firmare le richieste."},{"name":"Cache-Control","value":"no-cache","description":"Richiedila ogni volta: una dichiarazione o un avviso nuovi si vedono subito."}],"errorDetails":[{"status":400,"code":"invalid_parameter","description":"Un campo del percorso, della query o del corpo manca, è malformato o fuori intervallo.","action":"Correggi il campo indicato in `error.message` prima di inviare di nuovo.","scope":"endpoint"},{"status":400,"code":"wrong_format","description":"La richiesta o la lettura appartiene all’altro formato del registro di questo server: un record v1 su un registro in formato 2, o una lettura del formato 2 su un registro in formato 1.","action":"Leggi `format` in GET /v1/log (assente vuol dire 1) e manda la forma di quel formato.","scope":"endpoint"},{"status":401,"code":"invalid_api_key","description":"La credenziale Bearer è malformata, sconosciuta, scaduta o revocata.","action":"Usa una chiave attiva. Per l’accesso pubblico anonimo, rimuovi del tutto `Authorization`. Credenziali non valide non attivano automaticamente l’accesso anonimo.","scope":"apiKey"},{"status":403,"code":"api_key_scope","description":"La chiave API non ha il permesso read o verify, oppure l’endpoint non accetta chiavi Bearer.","action":"Usa il permesso corretto. Le modifiche alle schede e la gestione delle chiavi richiedono una firma del dispositivo.","scope":"apiKey"},{"status":403,"code":"api_key_suspended","description":"Questa chiave API è sospesa.","action":"Chiedi allo staff di ripristinarla; un’altra chiave non rimuove la sospensione dell’account.","scope":"apiKey"},{"status":403,"code":"developer_suspended","description":"L’account API del titolare è sospeso oppure la scheda titolare non è disponibile.","action":"Controlla l’account titolare e le restrizioni dello staff. Creare un’altra chiave non aggira la sospensione.","scope":"apiKey"},{"status":404,"code":"not_found","description":"La scheda, la chiave, l’alias, il codice o la risorsa richiesti non sono stati trovati.","action":"Controlla l’identificatore. Codici e anteprime temporanei potrebbero essere scaduti o già usati.","scope":"endpoint"},{"status":410,"code":"erased","description":"La scheda esisteva ed è stata cancellata o rimossa. La risposta contiene anche la ricevuta pubblica di cancellazione.","action":"Smetti di usare questa scheda come autorità corrente. Conserva soltanto la ricevuta pubblica se serve.","scope":"endpoint"},{"status":429,"code":"rate_limited","description":"È stato superato un limite anonimo, delle richieste firmate o della chiave API.","action":"Attendi almeno i secondi indicati da `Retry-After`. Condividi coda e budget dei tentativi tra i tuoi processi.","scope":"common"},{"status":500,"code":"internal_error","description":"Si è verificato un errore imprevisto del server. I dettagli interni non vengono restituiti.","action":"Riprova le letture con attese crescenti e un limite. Controlla l’esito delle scritture prima di inviare una nuova operazione firmata.","scope":"common"},{"status":503,"code":"busy","description":"L’applicazione ha raggiunto un limite temporaneo di concorrenza o del database.","action":"Attendi i secondi indicati da `Retry-After` e riprova con attese crescenti e un limite.","scope":"common"}],"documentationUrl":"https://veil.rip/docs/statement?lang=it","supportsBrowserFetch":true,"browserMode":"fetch"}}