Method: projects.locations.endpoints.queryData

Interroge le réseau pour obtenir des informations stockées dans le registre, telles que les comptes et les transactions.

L'accès à certains champs sensibles, tels que les soldes de compte, peut être limité en fonction de l'identité de l'expéditeur, dérivée de la signature de la requête. Si l'expéditeur ne dispose pas de l'autorisation, les champs sensibles seront masqués dans la réponse et signalés dans le champ redactedFields.

Requête HTTP


POST https://universalledger.googleapis.com/v1/{endpoint=projects/*/locations/*/endpoints/*}:queryData

Les URL utilisent la syntaxe de transcodage gRPC.

Paramètres de chemin d'accès

Paramètres
endpoint

string

Obligatoire. Point de terminaison pour diffuser la requête. Format : projects/{project}/locations/{location}/endpoints/{endpoint} L'emplacement est une région.

Corps de la requête

Le corps de la requête contient des données présentant la structure suivante :

Représentation JSON
{
  "serializedSignedQueryRequest": string
}
Champs
serializedSignedQueryRequest

string (bytes format)

Obligatoire. Un SignedQueryRequest sérialisé protobuf pour interroger le réseau Universal Ledger.

Chaîne encodée en base64.

Corps de la réponse

Message de réponse pour endpoints.queryData.

Si la requête aboutit, le corps de la réponse contient des données qui ont la structure suivante :

Représentation JSON
{
  "redactedFields": [
    {
      object (RedactedField)
    }
  ],

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "account": {
    object (Account)
  },
  "transactionState": {
    object (TransactionState)
  }
  // End of mutually exclusive fields.
}
Champs
redactedFields[]

object (RedactedField)

Indique les champs qui ont été masqués dans la réponse en raison de restrictions d'autorisation.

Résultat spécifique à la requête. Voici une liste de champs mutuellement exclusifs. Au maximum, un des champs sera défini dans une réponse :
account

object (Account)

Les informations sur le compte, si la requête concernait un compte.

transactionState

object (TransactionState)

État d'une transaction, si la requête concernait une transaction.

Fin des champs mutuellement exclusifs.

Niveaux d'accès des autorisations

Requiert le niveau d'accès OAuth suivant :

  • https://www.googleapis.com/auth/cloud-platform

Pour plus d'informations, consultez la Authentication Overview.

Autorisations IAM

Nécessite l'autorisation IAM suivante sur la ressource endpoint :

  • universalledger.endpoints.readNetwork

Pour en savoir plus, consultez la documentation IAM.

TransactionState

État d'une transaction.

Représentation JSON
{
  "transactionAttempts": [
    {
      object (TransactionAttempt)
    }
  ]
}
Champs
transactionAttempts[]

object (TransactionAttempt)

Une entrée pour chaque envoi connu de la transaction au validateur qui traite la requête.

RedactedField

Informations sur un champ masqué dans la réponse.

Représentation JSON
{
  "redactedPath": string,
  "reason": string,
  "reasonCode": enum (Code)
}
Champs
redactedPath

string (FieldMask format)

Uniquement en sortie. Chemins d'accès complets aux champs qui ont été masqués dans la charge utile.

Il s'agit d'une liste de noms de champs complets séparés par une virgule. Exemple : "user.displayName,photo".

reason

string

Uniquement en sortie. Explication lisible par l'humain de la raison pour laquelle les champs ont été masqués.

reasonCode

enum (Code)

Uniquement en sortie. Code lisible par machine indiquant pourquoi les champs ont été masqués.

Code

Les codes d'erreur canoniques pour les API de gRPC.

Parfois, plusieurs codes d'erreur peuvent s'appliquer. Les services doivent renvoyer le code d'erreur le plus spécifique qui s'applique. Par exemple, préférez OUT_OF_RANGE à FAILED_PRECONDITION si les deux codes s'appliquent. De même, préférez NOT_FOUND ou ALREADY_EXISTS à FAILED_PRECONDITION.

Enums
OK

Pas une erreur, affiché en cas de réussite.

Mise en correspondance HTTP : 200 OK

CANCELLED

L'opération a été annulée, généralement par l'appelant.

Mise en correspondance HTTP : 499 Le client a fermé la requête

UNKNOWN

Erreur inconnue. Par exemple, cette erreur peut s'afficher lorsqu'une valeur Status reçue d'un autre espace d'adressage appartient à un espace d'erreur inconnu dans cet espace d'adressage. De plus, les erreurs des API qui ne renvoient pas suffisamment d'informations sur les erreurs peuvent être converties dans cette erreur.

Mise en correspondance HTTP : 500 Erreur interne du serveur

INVALID_ARGUMENT

Le client a spécifié un argument non valide. Notez que cette erreur diffère de FAILED_PRECONDITION. INVALID_ARGUMENT indique les arguments problématiques, quel que soit l'état du système (par exemple, un nom de fichier incorrect).

Mise en correspondance HTTP : 400 Requête incorrecte

DEADLINE_EXCEEDED

Le délai a expiré avant que l'opération puisse se terminer. Pour les opérations qui modifient l'état du système, cette erreur peut être affichée même si l'opération s'est terminée avec succès. Par exemple, une réponse réussie d'un serveur aurait pu être retardée suffisamment longtemps pour que le délai expire.

Mappage HTTP : 504 Passerelle hors délai

NOT_FOUND

Une entité demandée (fichier ou répertoire, par exemple) est introuvable.

Remarque pour les développeurs de serveurs : NOT_FOUND peut être utilisé si une requête est refusée pour toute une classe d'utilisateurs, telle que le déploiement progressif d'une fonctionnalité ou une liste d'autorisation non documentée. Si une requête est refusée pour certains utilisateurs appartenant à une classe d'utilisateurs, telle que le contrôle des accès basé sur l'utilisateur, PERMISSION_DENIED doit être utilisé.

HTTP Mapping: 404 Not Found

ALREADY_EXISTS

L'entité qu'un client a tenté de créer (par exemple, un fichier ou un répertoire) existe déjà.

Mise en correspondance HTTP : 409 Conflit

PERMISSION_DENIED

L'appelant n'a pas l'autorisation d'exécuter l'opération spécifiée. PERMISSION_DENIED ne doit pas être utilisé pour les rejets causés par l'épuisement d'une ressource (utilisez plutôt RESOURCE_EXHAUSTED pour ces erreurs). PERMISSION_DENIED ne doit pas être utilisé si l'appelant ne peut pas être identifié (utilisez plutôt UNAUTHENTICATED pour ces erreurs). Ce code d'erreur n'implique pas que la requête soit valide ni que l'entité demandée existe ou qu'elle réponde à d'autres prérequis.

Mise en correspondance HTTP : 403 Accès interdit

UNAUTHENTICATED

La requête ne dispose pas d'identifiants d'authentification valides pour l'opération.

Mise en correspondance HTTP : 401 Accès non autorisé

RESOURCE_EXHAUSTED

Certaines ressources ont été épuisées ; par exemple, un quota par utilisateur a été atteint ou le système de fichiers dans son intégralité manque d'espace.

Mise en correspondance HTTP : 429 Requêtes trop nombreuses

FAILED_PRECONDITION

L'opération a été rejetée car le système n'est pas dans un état requis pour exécuter l'opération. Par exemple, le répertoire à supprimer n'est pas vide, une opération rmdir est appliquée à un emplacement qui n'est pas un répertoire, etc.

Les développeurs de services peuvent suivre les instructions suivantes pour choisir entre FAILED_PRECONDITION, ABORTED et UNAVAILABLE : (a) Utilisez UNAVAILABLE si le client ne peut relancer que l'appel ayant échoué. (b) Utilisez ABORTED si le client doit effectuer une nouvelle tentative à un niveau supérieur (par exemple, lorsqu'un test-and-set spécifié par le client échoue, indiquant que le client doit redémarrer une séquence lecture-modification-écriture). (c) Utilisez FAILED_PRECONDITION si le client ne doit pas effectuer de nouvelle tentative tant que l'état du système n'a pas été explicitement corrigé. Par exemple, si un "rmdir" échoue parce que le répertoire n'est pas vide, FAILED_PRECONDITION doit être affiché car le client ne doit pas réessayer sauf si les fichiers sont supprimés du répertoire.

HTTP Mapping: 400 Bad Request

ABORTED

L'opération a été annulée, généralement en raison d'un problème de simultanéité, tel qu'un échec de vérification du séquenceur ou un abandon de transaction.

Consultez les instructions ci-dessus pour choisir entre FAILED_PRECONDITION, ABORTED et UNAVAILABLE.

HTTP Mapping: 409 Conflict

OUT_OF_RANGE

L'opération a été tentée au-delà de la plage valide. Par exemple, rechercher ou lire après la fin du fichier.

Contrairement à INVALID_ARGUMENT, cette erreur indique un problème pouvant être résolu si l'état du système change. Par exemple, un système de fichiers 32 bits générera INVALID_ARGUMENT s'il est invité à lire avec un décalage qui n'est pas compris dans la plage [0,2 ^ 32-1], mais générera OUT_OF_RANGE s'il est invité à lire avec un décalage qui dépasse la taille du fichier actuel.

Il existe des cas où FAILED_PRECONDITION et OUT_OF_RANGE se chevauchent. Nous vous recommandons d'utiliser OUT_OF_RANGE (l'erreur la plus spécifique) lorsque celle-ci s'applique afin que les appelants qui itèrent dans un espace puissent facilement rechercher une erreur OUT_OF_RANGE pour détecter le moment où ils ont terminé.

HTTP Mapping: 400 Bad Request

UNIMPLEMENTED

L'opération n'est pas implémentée ou n'est pas prise en charge/activée dans ce service.

Mise en correspondance HTTP : 501 Non implémenté

INTERNAL

Erreurs internes. Cela signifie que certains invariants attendus par le système sous-jacent n'ont pas été respectés. Ce code d'erreur est réservé aux erreurs graves.

Mise en correspondance HTTP : 500 Erreur interne du serveur

UNAVAILABLE

Le service est actuellement indisponible. Il s'agit probablement d'une condition temporaire qui peut être corrigée en réessayant après avoir laissé passer un intervalle entre les tentatives. Notez que relancer des opérations non idempotentes peut présenter des risques.

Consultez les instructions ci-dessus pour choisir entre FAILED_PRECONDITION, ABORTED et UNAVAILABLE.

Mise en correspondance HTTP : 503 Service non disponible

DATA_LOSS

Perte ou corruption de données irrécupérable.

Mise en correspondance HTTP : 500 Erreur interne du serveur