Fragt das Netzwerk nach Informationen ab, die im Ledger gespeichert sind, z. B. Konten und Transaktionen.
Der Zugriff auf bestimmte vertrauliche Felder, z. B. Guthaben, kann je nach Identität des Absenders, die aus der Signatur in der Anfrage abgeleitet wird, eingeschränkt sein. Wenn der Absender nicht die erforderliche Berechtigung hat, werden vertrauliche Felder aus der Antwort entfernt 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, der die Anfrage verarbeitet. Format: |
Anfragetext
Der Anfragetext enthält Daten mit folgender Struktur:
| JSON-Darstellung |
|---|
{ "serializedSignedQueryRequest": string } |
| Felder | |
|---|---|
serializedSignedQueryRequest |
Erforderlich. Ein 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. |
| Das abfragespezifische Ergebnis. Im Folgenden finden Sie eine Liste von Feldern, die sich gegenseitig ausschließen. In einer Antwort wird höchstens eines der Felder festgelegt: | |
account |
Die Kontoinformationen, wenn die Abfrage für ein Konto war. |
transactionState |
Der Status einer Transaktion, wenn die Abfrage für eine Transaktion war. |
| Ende der sich gegenseitig ausschließenden Felder. | |
Autorisierungsbereiche
Erfordert den folgenden OAuth-Bereich:
https://www.googleapis.com/auth/cloud-platform
Weitere Informationen finden Sie unter Authentication Overview.
IAM-Berechtigungen
Erfordert die folgende IAM-Berechtigung für die Ressource endpoint:
universalledger.endpoints.readNetwork
Weitere Informationen finden Sie in der IAM-Dokumentation.
TransactionState
Der Status einer Transaktion.
| JSON-Darstellung |
|---|
{
"transactionAttempts": [
{
object ( |
| Felder | |
|---|---|
transactionAttempts[] |
Ein Eintrag pro bekannter Übermittlung der Transaktion an den Validator, der die Anfrage verarbeitet. |
RedactedField
Informationen zu einem entfernten 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 zurückgegeben. 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 Interner Serverfehler |
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-Zuordnung: 404 Nicht gefunden |
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 Interner Serverfehler |
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 |
Nicht wiederherstellbarer Datenverlust oder Datenkorruption. HTTP-Mapping: 500 Interner Serverfehler |