Leggi le dichiarazioni di una scheda
Le dichiarazioni firmate di una scheda, dalla più recente, ognuna con quello che serve per controllarla. Lo stesso indirizzo senza .json è la pagina che le controlla.
/{kind}/{card}/statements.json- Accesso
- Pubblico; chiave API facoltativa
- Client
- Fetch dal browser supportato
Altri indirizzi#
/{kind}/{card}/statements
Parametri#
| Nome | Posizione | Significato |
|---|---|---|
kindObbligatorio | Percorso | u per una persona, o per un’organizzazione. |
cardObbligatorio | Percorso | Il numero permanente della scheda o il suo alias corrente. |
before | Query | Solo le dichiarazioni prima di questa posizione nel registro: next della pagina prima. |
limit | Query | Da 1 a 100, 20 se manca. |
Esempi di richiesta#
curl -fsS 'https://veil.rip/u/1/statements.json'Risposta#
Le dichiarazioni della scheda.
| Campo | Tipo | Significato |
|---|---|---|
card | object | n, type, name, token e url della scheda. |
total | integer | Quante dichiarazioni ha la scheda nel registro, ritiri compresi. |
statements | array<object> | Questa pagina, dalla più recente. |
next | integer | null | Il before della pagina dopo, o null. |
feed | string | Il feed Atom della scheda. |
Apri un oggetto annidato per leggerne i campi. I tipi con null ammettono un valore null; i campi optional possono essere assenti. Gli altri campi sono presenti nell’oggetto.
Dichiarazione
| Campo | Tipo | Significato |
|---|---|---|
id | integer | La posizione della voce nel registro: l’id permanente della dichiarazione. |
kind | string | statement oppure alert. |
n | integer | La scheda che fa la dichiarazione. |
signer | object | n e token della scheda di persona la cui chiave ha firmato: la scheda stessa, o un proprietario o amministratore di un’organizzazione. |
statement | string | La dichiarazione come è stata firmata, in JSON canonico. I suoi campi sono ripetuti sotto per mostrarli. |
salt | string | 32 byte in hex: c della voce è SHA-256(salt ‖ statement). |
entry | string | La voce del registro con la firma, come il registro la tiene. |
i | integer | La posizione della voce nel registro (la stessa di id). |
publishedAt | string | null | La prima controfirma sul primo checkpoint che contiene la voce. |
checkpoint | object | null | size e note del checkpoint controfirmato che data la voce. Null quando il registro non si legge. |
inclusion | array<string> | null | La prova di inclusione RFC 6962 della voce in quel checkpoint, in hex, dal più profondo. |
title | string | Il titolo, da 1 a 200 caratteri. |
text | string | Il testo, da 1 a 4 000 caratteri, con gli a capo. |
link | string | null | Un link https facoltativo. |
retracts | integer | null | L’id della dichiarazione che questa ritira. |
retractedBy | object | null | id, publishedAt e title della dichiarazione che ritira questa. |
url | string | La pagina della dichiarazione. |
Intestazioni della risposta#
| Intestazione | Valore | Significato |
|---|---|---|
Content-Type | application/json | Usa il tipo dichiarato per scegliere come leggere il corpo. |
Date | HTTP date | Ora del server. Confrontala con il tuo orologio per firmare le richieste. |
Cache-Control | no-cache | Richiedila ogni volta: una dichiarazione o un avviso nuovi si vedono subito. |
Cosa verificare#
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.
Errori#
Gli errori API restituiscono un oggetto error. Usa error.code nella logica del programma; error.message è un testo inglese per le persone e può cambiare. Guida a risposte ed errori
| HTTP | Codice | Significato e cosa fare |
|---|---|---|
| 400 | invalid_parameter | Un campo del percorso, della query o del corpo manca, è malformato o fuori intervallo. Correggi il campo indicato in |
| 400 | wrong_format | 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. Leggi |
| 404 | not_found | La scheda, la chiave, l’alias, il codice o la risorsa richiesti non sono stati trovati. Controlla l’identificatore. Codici e anteprime temporanei potrebbero essere scaduti o già usati. |
| 410 | erased | La scheda esisteva ed è stata cancellata o rimossa. La risposta contiene anche la ricevuta pubblica di cancellazione. Smetti di usare questa scheda come autorità corrente. Conserva soltanto la ricevuta pubblica se serve. |
Errori comuni delle richieste
| HTTP | Codice | Significato e cosa fare |
|---|---|---|
| 429 | rate_limited | È stato superato un limite anonimo, delle richieste firmate o della chiave API. Attendi almeno i secondi indicati da |
| 500 | internal_error | Si è verificato un errore imprevisto del server. I dettagli interni non vengono restituiti. Riprova le letture con attese crescenti e un limite. Controlla l’esito delle scritture prima di inviare una nuova operazione firmata. |
| 503 | busy | L’applicazione ha raggiunto un limite temporaneo di concorrenza o del database. Attendi i secondi indicati da |