Fragt das Netzwerk nach Informationen ab, die im Ledger gespeichert sind, z. B. Konten und Transaktionen.
Der Zugriff auf bestimmte vertrauliche Felder wie Kontostände kann basierend auf der Identität des Absenders eingeschränkt werden, die aus der Signatur in der Anfrage abgeleitet wird. Wenn der Absender keine Berechtigung hat, werden vertrauliche Felder in der Antwort unkenntlich gemacht und im Feld redactedFields gemeldet.
HTTP-Anfrage
:
POST https://universalledger.googleapis.com/v1/{endpoint=projects/*/locations/*/endpoints/*}:queryData Für die URLs wird die Syntax der gRPC-Transcodierung verwendet.
Pfadparameter
| Parameter | |
|---|---|
endpoint |
Erforderlich. Der Endpunkt, über den die Anfrage bereitgestellt wird. Format: |
Anfragetext
Der Anfragetext enthält Daten mit folgender Struktur:
| JSON-Darstellung |
|---|
{ "serializedSignedQueryRequest": string } |
| Felder | |
|---|---|
serializedSignedQueryRequest |
Erforderlich. Ein in Protobuf serialisiertes Ein base64-codierter String. |
Antworttext
Antwortnachricht für endpoints.queryData.
Bei Erfolg enthält der Antworttext Daten mit der folgenden Struktur:
| JSON-Darstellung |
|---|
{ "redactedFields": [ { object ( |
| Felder | |
|---|---|
redactedFields[] |
Gibt an, welche Felder aufgrund von Berechtigungseinschränkungen aus der Antwort entfernt wurden. |
Union-Feld kind. Das abfragespezifische Ergebnis. Für kind ist nur einer der folgenden Werte zulässig: |
|
account |
Die Kontoinformationen, wenn sich die Anfrage auf ein Konto bezog. |
transactionState |
Der Status einer Transaktion, wenn die Anfrage für eine Transaktion gestellt wurde. |
Autorisierungsbereiche
Erfordert den folgenden OAuth-Bereich:
https://www.googleapis.com/auth/cloud-platform
Weitere Informationen finden Sie unter Authentication Overview.
TransactionState
Der Status einer Transaktion.
| JSON-Darstellung |
|---|
{
"transactionAttempts": [
{
object ( |
| Felder | |
|---|---|
transactionAttempts[] |
Ein Eintrag für jede bekannte Übermittlung der Transaktion an den Validator, der die Anfrage bearbeitet. |
RedactedField
Informationen zu einem vertraulichen Feld in der Antwort.
| JSON-Darstellung |
|---|
{
"redactedPath": string,
"reason": string,
"reasonCode": enum ( |
| Felder | |
|---|---|
redactedPath |
Nur Ausgabe. Die vollständig qualifizierten Feldpfade, die aus der Nutzlast entfernt wurden. Dies ist eine kommagetrennte Liste vollständig qualifizierter Feldnamen. Beispiel: |
reason |
Nur Ausgabe. Eine menschenlesbare Erklärung, warum die Felder entfernt wurden. |
reasonCode |
Nur Ausgabe. Ein maschinenlesbarer Code, der angibt, warum die Felder entfernt wurden. |
Code
Die kanonischen Fehlercodes für gRPC APIs.
Manchmal können mehrere Fehlercodes zutreffen. Dienste sollten den spezifischsten Fehlercode liefern, der zutrifft. Beispiel: OUT_OF_RANGE sollte gegenüber FAILED_PRECONDITION bevorzugt werden, wenn beide Codes zutreffen. Entsprechend ist NOT_FOUND oder ALREADY_EXISTS gegenüber FAILED_PRECONDITION vorzuziehen.
| Enums | |
|---|---|
OK |
Kein Fehler; wird bei Erfolg angezeigt. HTTP Mapping: 200 OK |
CANCELLED |
Der Vorgang wurde abgebrochen, üblicherweise vom Aufrufer. HTTP Mapping: 499 Client Closed Request |
UNKNOWN |
Unbekannter Fehler. Dieser Fehler wird z. B. angezeigt, wenn ein von einem anderen Adressbereich erhaltener HTTP Mapping: 500 Internal Server Error |
INVALID_ARGUMENT |
Der Client hat ein ungültiges Argument angegeben. Dieser Wert ist nicht identisch mit HTTP Mapping: 400 Bad Request |
DEADLINE_EXCEEDED |
Die Frist ist abgelaufen, bevor der Vorgang abgeschlossen werden konnte. Bei Vorgängen, die den Systemstatus verändern, kann dieser Fehler angezeigt werden, auch wenn der Vorgang erfolgreich abgeschlossen wurde. Zum Beispiel könnte eine erfolgreiche Antwort von einem Server so lange verzögert worden sein, dass die Frist abgelaufen ist. HTTP Mapping: 504 Gateway Timeout |
NOT_FOUND |
Eine angeforderte Entität (z. B. Datei oder Verzeichnis) wurde nicht gefunden. Hinweis für Serverentwickler: Wenn eine Anfrage, z. B. eine schrittweise Einführung von Funktionen oder eine undokumentierte Zulassungsliste, für eine gesamte Nutzerklasse abgelehnt wird, kann HTTP Mapping: 404 Not Found |
ALREADY_EXISTS |
Die Entität, die ein Client erstellen wollte (z. B. eine Datei oder ein Verzeichnis), ist bereits vorhanden. HTTP Mapping: 409 Conflict |
PERMISSION_DENIED |
Der Aufrufer hat keine Berechtigung zur Ausführung des angegebenen Vorgangs. HTTP Mapping: 403 Forbidden |
UNAUTHENTICATED |
Die Anfrage enthält keine gültigen Authentifizierungsdaten für diesen Vorgang. HTTP Mapping: 401 Unauthorized |
RESOURCE_EXHAUSTED |
Eine Ressource, z. B. ein nutzerbezogenes Kontingent, ist erschöpft oder der Speicherplatz für das gesamte Dateisystem ist ausgegangen. HTTP Mapping: 429 Too Many Requests |
FAILED_PRECONDITION |
Der Vorgang wurde abgelehnt, weil der Systemzustand nicht für die Ausführung des Vorgangs geeignet ist. Beispielsweise ist das zu löschende Verzeichnis nicht leer, ein rmdir-Vorgang wird auf eine Ressource angewendet, die kein Verzeichnis ist, usw. Dienstimplementierungen können anhand der folgenden Richtlinien zwischen HTTP Mapping: 400 Bad Request |
ABORTED |
Der Vorgang wurde abgebrochen, in der Regel aufgrund eines Parallelitätsproblems wie einer fehlgeschlagenen Sequencer-Überprüfung oder einer abgebrochenen Transaktion. Siehe obige Richtlinien zum Abwägen zwischen HTTP Mapping: 409 Conflict |
OUT_OF_RANGE |
Beim Vorgang wurde versucht, den gültigen Bereich zu überschreiten. Beispiel: Such- oder Lesevorgang über das Dateiende hinaus. Im Gegensatz zu Es gibt einige Überschneidungen zwischen HTTP Mapping: 400 Bad Request |
UNIMPLEMENTED |
Dieser Vorgang ist nicht implementiert oder wird bei diesem Dienst nicht unterstützt bzw. ist bei diesem Dienst nicht aktiviert. HTTP Mapping: 501 Not Implemented |
INTERNAL |
Interne Fehler. Das bedeutet, dass einige Invarianten, die vom zugrunde liegenden System erwartet werden, nicht erfüllt wurden. Dieser Fehlercode ist für schwerwiegende Fehler reserviert. HTTP Mapping: 500 Internal Server Error |
UNAVAILABLE |
Der Dienst ist derzeit nicht verfügbar. Dies ist höchstwahrscheinlich ein vorübergehender Zustand, der durch Wiederholen mit einem Backoff korrigiert werden kann. Es ist nicht immer sicher, nicht idempotente Vorgänge zu wiederholen. Siehe obige Richtlinien zum Abwägen zwischen HTTP Mapping: 503 Service Unavailable |
DATA_LOSS |
Dauerhafter Datenverlust oder Datenkorruption. HTTP Mapping: 500 Internal Server Error |