Premiers pas avec l'API Cloud Firestore en mode Datastore

Cette page propose un court exercice consistant à créer une application de ligne de commande TaskList simple, avec l'API Cloud Firestore en mode Datastore. Cette application TaskList va permettre de stocker, répertorier, mettre à jour et supprimer des tâches.

Prérequis

  1. Capacité à écrire et à exécuter une application de ligne de commande dans les langages de programmation indiqués sur cette page
    En plus de disposer de connaissances de base en matière de développement d'applications, vous devez être en mesure de télécharger et d'installer des bibliothèques supplémentaires avant de commencer ce tutoriel.
  2. Un projet de console Google Cloud Platform avec l'API en mode Datastore activée
    Les applications qui utilisent le mode Datastore doivent être associées à un projet de console Google Cloud Platform avec l'API en mode Datastore activée. Ce projet fournit les identifiants d'authentification que vous employez dans votre application pour l'identifier auprès de Google et l'autoriser à utiliser l'API en mode Datastore.
    Suivez ces instructions pour créer un projet, activer l'API en mode Datastore pour celui-ci, et définir des identifiants d'authentification pour votre environnement de développement local à l'aide de la commande gcloud auth login. Notez l'ID du projet, car vous en aurez besoin ultérieurement.
  3. Une application App Engine active
    Les projets faisant appel à l'API en mode Datastore nécessitent une application App Engine active. Ouvrez le tableau de bord App Engine, puis vérifiez que votre projet dispose d'une application App Engine active.
    Créez-en une si nécessaire. L'application ne doit pas être désactivée.

Installation et configuration

Installez les bibliothèques clientes et configurez tout paramètre supplémentaire pour votre environnement de développement.

C#

  1. Assurez-vous que Visual Studio (version 2013 ou ultérieure) est installé.
  2. Téléchargez l'exemple d'application TaskList.
  3. Extrayez les fichiers du fichier ZIP dans un répertoire de votre dossier Documents.
  4. Dans Visual Studio, ouvrez le fichier dotnet-docs-samples-master\datastore\api\Datastore.sln.
  5. Dans la fenêtre Solution Explorer (Explorateur de solutions) de Visual Studio, cliquez avec le bouton droit sur le projet TaskList et choisissez Définir comme projet de démarrage.
  6. Cliquez à nouveau avec le bouton droit sur le projet TaskList, puis choisissez Propriétés.
  7. Dans la fenêtre Propriétés, cliquez sur Debug (Débogage), puis tapez l'ID du projet Google Cloud Platform dans la zone Command line arguments (Arguments de ligne de commande).

    Fenêtre de débogage Visual Studio

  8. Cliquez sur Fichier, puis sur Enregistrer pour enregistrer les modifications.

  9. Exécutez l'application. Appuyez sur la touche F5 du clavier.

Go

  1. Clonez l'exemple d'application TaskList.

    go get github.com/GoogleCloudPlatform/golang-samples/datastore/tasks
    
  2. Remplacez les répertoires par ceux dans lesquels vous avez cloné l'exemple :

    cd $GOPATH/src/github.com/GoogleCloudPlatform/golang-samples/datastore/tasks
    
  3. Lorsque l'invite de commande s'affiche, exécutez la commande suivante, où <project-id> est l'ID du projet Google Cloud Platform.

    export DATASTORE_PROJECT_ID=<project-id>
    

    (Utilisateurs Windows : employez set au lieu de export.)

  4. Exécutez l'application.

    go run tasks.go
    

Java

  1. Assurez-vous que Maven et Java (version 7 ou ultérieure) sont installés.

  2. Téléchargez l'exemple d'application TaskList.

  3. Lorsque l'invite de commande s'affiche, décompressez le fichier téléchargé :

    unzip master.zip
    
  4. Modifiez les répertoires pour qu'ils pointent vers l'application TaskList :

    cd java-docs-samples-master/datastore
    
  5. Exécutez la commande suivante, où <project-id> est l'ID du projet Google Cloud Platform.

    gcloud config set project <project-id>
    
  6. Compilez et exécutez l'application.

    mvn clean compile
    mvn exec:java
    

Node.js

  1. Préparez votre environnement pour un développement en Node.js.

  2. Téléchargez l'exemple d'application TaskList.

  3. Décompressez le fichier téléchargé :

    unzip master.zip
    
  4. Modifiez les répertoires pour qu'ils pointent vers l'application TaskList :

    cd nodejs-datastore-master/samples
    
  5. Installez les dépendances et associez l'application :

    npm install
    
  6. Lorsque l'invite de commande s'affiche, exécutez la commande suivante, où <project-id> est l'ID du projet Google Cloud Platform.

    export GCLOUD_PROJECT=<project-id>
    

    (Utilisateurs Windows : employez set au lieu de export.)

  7. Exécutez l'application.

    node tasks.js
    

PHP

  1. Assurez-vous que PHP (version 5.6 ou ultérieure) et Composer sont installés.
  2. Téléchargez l'exemple d'application TaskList.
  3. Décompressez le fichier téléchargé :

    unzip master.zip
    
  4. Modifiez les répertoires pour qu'ils pointent vers l'application TaskList :

    cd php-docs-samples-master/datastore/tutorial
    
  5. Installez les dépendances.

    Si Composer est installé en local :

    php composer.phar install
    

    Si Composer est installé de manière globale :

    composer install
    
  6. Exécutez l'application.

    php tasks.php
    

Python

  1. Assurez-vous que Python (version 2.7.9 ou ultérieure), pip et virtualenv sont installés.
  2. Activez une session virtualenv.

    virtualenv venv
    source venv/bin/activate
    
  3. Téléchargez l'exemple d'application TaskList.

  4. Décompressez le fichier téléchargé :

    unzip master.zip
    
  5. Modifiez les répertoires pour qu'ils pointent vers l'application TaskList :

    cd python-docs-samples-master/datastore/cloud-client
    
  6. Installez les dépendances :

    pip install -r requirements.txt
    
  7. Exécutez l'application. Employez l'ID du projet Google Cloud Platform pour <project-id>.

    python tasks.py --project-id <project-id>
    

Ruby

  1. Assurez-vous que Ruby et Bundler sont installés.

  2. Téléchargez l'exemple d'application TaskList.

  3. Décompressez le fichier téléchargé :

    unzip master.zip
    
  4. Modifiez les répertoires pour qu'ils pointent vers l'application TaskList :

    cd ruby-docs-samples-master/datastore
    
  5. Installez les dépendances :

    bundle install
    
  6. Lorsque l'invite de commande s'affiche, exécutez la commande suivante, où <project-id> est l'ID du projet Google Cloud Platform.

    export GOOGLE_CLOUD_PROJECT=<project-id>
    

    (Utilisateurs Windows : employez set au lieu de export.)

  7. Exécutez l'application.

    bundle exec ruby tasks.rb
    

Créer un objet de service autorisé

Pour envoyer des requêtes authentifiées aux API Google Cloud à l'aide des bibliothèques clientes d'API Google, vous devez :

  • extraire les identifiants à utiliser pour les requêtes ;
  • créer un objet de service qui utilise ces identifiants.

Vous pouvez ensuite effectuer des appels d'API en appelant des méthodes sur l'objet de service en mode Datastore.

Dans cet exemple, vous allez extraire les identifiants par défaut de l'application de l'environnement, puis les transmettre en tant qu'argument pour créer l'objet de service.

Voici l'appel permettant de créer l'objet de service en mode Datastore autorisé :

C#

Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud Datastore, consultez la page Bibliothèques clientes Cloud Datastore. Pour plus d'informations, consultez la documentation de référence sur l'API Cloud Datastore en langage C#.

// Create an authorized Datastore service using Application Default Credentials.
_db = DatastoreDb.Create(projectId);
// Create a Key factory to construct keys associated with this project.
_keyFactory = _db.CreateKeyFactory("Task");

Go

Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud Datastore, consultez la page Bibliothèques clientes Cloud Datastore. Pour plus d'informations, consultez la documentation de référence sur l'API Cloud Datastore en langage Go.

ctx := context.Background()
client, err := datastore.NewClient(ctx, projID)

Java

Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud Datastore, consultez la page Bibliothèques clientes Cloud Datastore. Pour plus d'informations, consultez la documentation de référence sur l'API Cloud Datastore en langage Java.

// Create an authorized Datastore service using Application Default Credentials.
private final Datastore datastore = DatastoreOptions.getDefaultInstance().getService();

// Create a Key factory to construct keys associated with this project.
private final KeyFactory keyFactory = datastore.newKeyFactory().setKind("Task");

Node.js

Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud Datastore, consultez la page Bibliothèques clientes Cloud Datastore. Pour en savoir plus, consultez la documentation de référence sur l'API Cloud Datastore en langage Node.js.

// By default, the client will authenticate using the service account file
// specified by the GOOGLE_APPLICATION_CREDENTIALS environment variable and use
// the project specified by the GCLOUD_PROJECT environment variable. See
// https://googlecloudplatform.github.io/google-cloud-node/#/docs/datastore/latest/guides/authentication
const {Datastore} = require('@google-cloud/datastore');

// Creates a client
const datastore = new Datastore();

PHP

Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud Datastore, consultez la page Bibliothèques clientes Cloud Datastore. Pour plus d'informations, consultez la documentation de référence sur l'API Cloud Datastore en langage PHP.

use Google\Cloud\Datastore\DatastoreClient;

/**
 * Create a Cloud Datastore client.
 *
 * @param string $projectId
 * @return DatastoreClient
 */
function build_datastore_service($projectId)
{
    $datastore = new DatastoreClient(['projectId' => $projectId]);
    return $datastore;
}

Python

Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud Datastore, consultez la page Bibliothèques clientes Cloud Datastore. Pour plus d'informations, consultez la documentation de référence sur l'API Cloud Datastore en langage Python.

from google.cloud import datastore

def create_client(project_id):
    return datastore.Client(project_id)

Ruby

Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud Datastore, consultez la page Bibliothèques clientes Cloud Datastore. Pour plus d'informations, consultez la documentation de référence sur l'API Cloud Datastore en langage Ruby.

require "google/cloud/datastore"

@datastore = Google::Cloud::Datastore.new project: project_id

Stocker des données

Dans le mode Datastore, les objets sont appelés entités, et chaque entité est d'un genre particulier. L'application TaskList stocke des entités du genre Task, avec les propriétés suivantes :

  • description : chaîne spécifiée par l'utilisateur en tant que description de la tâche
  • created : date de création initiale de la tâche
  • done : booléen qui indique si la tâche a été effectuée

Lorsque l'utilisateur ajoute une tâche, l'application TaskList crée une entité Task avec des valeurs pour les propriétés répertoriées ci-dessus.

C#

Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud Datastore, consultez la page Bibliothèques clientes Cloud Datastore. Pour plus d'informations, consultez la documentation de référence sur l'API Cloud Datastore en langage C#.

/// <summary>
///  Adds a task entity to the Datastore
/// </summary>
/// <param name="description">The task description.</param>
/// <returns>The key of the entity.</returns>
Key AddTask(string description)
{
    Entity task = new Entity()
    {
        Key = _keyFactory.CreateIncompleteKey(),
        ["description"] = new Value()
        {
            StringValue = description,
            ExcludeFromIndexes = true
        },
        ["created"] = DateTime.UtcNow,
        ["done"] = false
    };
    return _db.Insert(task);
}

Go

Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud Datastore, consultez la page Bibliothèques clientes Cloud Datastore. Pour plus d'informations, consultez la documentation de référence sur l'API Cloud Datastore en langage Go.

// Task is the model used to store tasks in the datastore.
type Task struct {
	Desc    string    `datastore:"description"`
	Created time.Time `datastore:"created"`
	Done    bool      `datastore:"done"`
	id      int64     // The integer ID used in the datastore.
}

// AddTask adds a task with the given description to the datastore,
// returning the key of the newly created entity.
func AddTask(ctx context.Context, client *datastore.Client, desc string) (*datastore.Key, error) {
	task := &Task{
		Desc:    desc,
		Created: time.Now(),
	}
	key := datastore.IncompleteKey("Task", nil)
	return client.Put(ctx, key, task)
}

Java

Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud Datastore, consultez la page Bibliothèques clientes Cloud Datastore. Pour plus d'informations, consultez la documentation de référence sur l'API Cloud Datastore en langage Java.

/**
 * Adds a task entity to the Datastore.
 *
 * @param description The task description
 * @return The {@link Key} of the entity
 * @throws DatastoreException if the ID allocation or put fails
 */
Key addTask(String description) {
  Key key = datastore.allocateId(keyFactory.newKey());
  Entity task = Entity.newBuilder(key)
      .set("description", StringValue.newBuilder(description).setExcludeFromIndexes(true).build())
      .set("created", Timestamp.now())
      .set("done", false)
      .build();
  datastore.put(task);
  return key;
}

Node.js

Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud Datastore, consultez la page Bibliothèques clientes Cloud Datastore. Pour en savoir plus, consultez la documentation de référence sur l'API Cloud Datastore en langage Node.js.

async function addTask(description) {
  const taskKey = datastore.key('Task');
  const entity = {
    key: taskKey,
    data: [
      {
        name: 'created',
        value: new Date().toJSON(),
      },
      {
        name: 'description',
        value: description,
        excludeFromIndexes: true,
      },
      {
        name: 'done',
        value: false,
      },
    ],
  };

  try {
    await datastore.save(entity);
    console.log(`Task ${taskKey.id} created successfully.`);
  } catch (err) {
    console.error('ERROR:', err);
  }
}

PHP

Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud Datastore, consultez la page Bibliothèques clientes Cloud Datastore. Pour plus d'informations, consultez la documentation de référence sur l'API Cloud Datastore en langage PHP.

/**
 * Create a new task with a given description.
 *
 * @param DatastoreClient $datastore
 * @param $description
 * @return Google\Cloud\Datastore\Entity
 */
function add_task(DatastoreClient $datastore, $description)
{
    $taskKey = $datastore->key('Task');
    $task = $datastore->entity(
        $taskKey,
        [
            'created' => new DateTime(),
            'description' => $description,
            'done' => false
        ],
        ['excludeFromIndexes' => ['description']]
    );
    $datastore->insert($task);
    return $task;
}

Python

Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud Datastore, consultez la page Bibliothèques clientes Cloud Datastore. Pour plus d'informations, consultez la documentation de référence sur l'API Cloud Datastore en langage Python.

def add_task(client, description):
    key = client.key('Task')

    task = datastore.Entity(
        key, exclude_from_indexes=['description'])

    task.update({
        'created': datetime.datetime.utcnow(),
        'description': description,
        'done': False
    })

    client.put(task)

    return task.key

Ruby

Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud Datastore, consultez la page Bibliothèques clientes Cloud Datastore. Pour plus d'informations, consultez la documentation de référence sur l'API Cloud Datastore en langage Ruby.

def add_task description
  task = @datastore.entity "Task" do |t|
    t["description"] = description
    t["created"]     = Time.now
    t["done"]        = false
    t.exclude_from_indexes! "description", true
  end

  @datastore.save task

  puts task.key.id

  task.key.id
end

Pour cette application, nous fournirons également une méthode permettant de mettre à jour la propriété done, afin d'indiquer que la tâche est terminée :

C#

Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud Datastore, consultez la page Bibliothèques clientes Cloud Datastore. Pour plus d'informations, consultez la documentation de référence sur l'API Cloud Datastore en langage C#.

/// <summary>
/// Marks a task entity as done.
/// </summary>
/// <param name="id">The ID of the task entity as given by Key.</param>
/// <returns>true if the task was found.</returns>
bool MarkDone(long id)
{
    using (var transaction = _db.BeginTransaction())
    {
        Entity task = transaction.Lookup(_keyFactory.CreateKey(id));
        if (task != null)
        {
            task["done"] = true;
            transaction.Update(task);
        }
        transaction.Commit();
        return task != null;
    }
}

Go

Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud Datastore, consultez la page Bibliothèques clientes Cloud Datastore. Pour plus d'informations, consultez la documentation de référence sur l'API Cloud Datastore en langage Go.

// MarkDone marks the task done with the given ID.
func MarkDone(ctx context.Context, client *datastore.Client, taskID int64) error {
	// Create a key using the given integer ID.
	key := datastore.IDKey("Task", taskID, nil)

	// In a transaction load each task, set done to true and store.
	_, err := client.RunInTransaction(ctx, func(tx *datastore.Transaction) error {
		var task Task
		if err := tx.Get(key, &task); err != nil {
			return err
		}
		task.Done = true
		_, err := tx.Put(key, &task)
		return err
	})
	return err
}

Java

Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud Datastore, consultez la page Bibliothèques clientes Cloud Datastore. Pour plus d'informations, consultez la documentation de référence sur l'API Cloud Datastore en langage Java.

/**
 * Marks a task entity as done.
 *
 * @param id The ID of the task entity as given by {@link Key#id()}
 * @return true if the task was found, false if not
 * @throws DatastoreException if the transaction fails
 */
boolean markDone(long id) {
  Transaction transaction = datastore.newTransaction();
  try {
    Entity task = transaction.get(keyFactory.newKey(id));
    if (task != null) {
      transaction.put(Entity.newBuilder(task).set("done", true).build());
    }
    transaction.commit();
    return task != null;
  } finally {
    if (transaction.isActive()) {
      transaction.rollback();
    }
  }
}

Node.js

Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud Datastore, consultez la page Bibliothèques clientes Cloud Datastore. Pour en savoir plus, consultez la documentation de référence sur l'API Cloud Datastore en langage Node.js.

async function markDone(taskId) {
  const transaction = datastore.transaction();
  const taskKey = datastore.key(['Task', taskId]);

  try {
    await transaction.run();
    const [task] = await transaction.get(taskKey);
    task.done = true;
    transaction.save({
      key: taskKey,
      data: task,
    });
    await transaction.commit();
    console.log(`Task ${taskId} updated successfully.`);
  } catch (err) {
    transaction.rollback();
  }
}

PHP

Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud Datastore, consultez la page Bibliothèques clientes Cloud Datastore. Pour plus d'informations, consultez la documentation de référence sur l'API Cloud Datastore en langage PHP.

/**
 * Mark a task with a given id as done.
 *
 * @param DatastoreClient $datastore
 * @param int $taskId
 */
function mark_done(DatastoreClient $datastore, $taskId)
{
    $taskKey = $datastore->key('Task', $taskId);
    $transaction = $datastore->transaction();
    $task = $transaction->lookup($taskKey);
    $task['done'] = true;
    $transaction->upsert($task);
    $transaction->commit();
}

Python

Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud Datastore, consultez la page Bibliothèques clientes Cloud Datastore. Pour plus d'informations, consultez la documentation de référence sur l'API Cloud Datastore en langage Python.

def mark_done(client, task_id):
    with client.transaction():
        key = client.key('Task', task_id)
        task = client.get(key)

        if not task:
            raise ValueError(
                'Task {} does not exist.'.format(task_id))

        task['done'] = True

        client.put(task)

Ruby

Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud Datastore, consultez la page Bibliothèques clientes Cloud Datastore. Pour plus d'informations, consultez la documentation de référence sur l'API Cloud Datastore en langage Ruby.

def mark_done task_id
  task = @datastore.find "Task", task_id

  task["done"] = true

  @datastore.save task
end

Voici la méthode permettant de supprimer une entité Task à l'aide de la clé de l'entité Task :

C#

Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud Datastore, consultez la page Bibliothèques clientes Cloud Datastore. Pour plus d'informations, consultez la documentation de référence sur l'API Cloud Datastore en langage C#.

/// <summary>
/// Deletes a task entity.
/// </summary>
/// <param name="id">The ID of the task entity as given by Key.</param>
void DeleteTask(long id)
{
    _db.Delete(_keyFactory.CreateKey(id));
}

Go

Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud Datastore, consultez la page Bibliothèques clientes Cloud Datastore. Pour plus d'informations, consultez la documentation de référence sur l'API Cloud Datastore en langage Go.

// DeleteTask deletes the task with the given ID.
func DeleteTask(ctx context.Context, client *datastore.Client, taskID int64) error {
	return client.Delete(ctx, datastore.IDKey("Task", taskID, nil))
}

Java

Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud Datastore, consultez la page Bibliothèques clientes Cloud Datastore. Pour plus d'informations, consultez la documentation de référence sur l'API Cloud Datastore en langage Java.

/**
 * Deletes a task entity.
 *
 * @param id The ID of the task entity as given by {@link Key#id()}
 * @throws DatastoreException if the delete fails
 */
void deleteTask(long id) {
  datastore.delete(keyFactory.newKey(id));
}

Node.js

Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud Datastore, consultez la page Bibliothèques clientes Cloud Datastore. Pour en savoir plus, consultez la documentation de référence sur l'API Cloud Datastore en langage Node.js.

async function deleteTask(taskId) {
  const taskKey = datastore.key(['Task', taskId]);

  await datastore.delete(taskKey);
  console.log(`Task ${taskId} deleted successfully.`);
}

PHP

Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud Datastore, consultez la page Bibliothèques clientes Cloud Datastore. Pour plus d'informations, consultez la documentation de référence sur l'API Cloud Datastore en langage PHP.

/**
 * Delete a task with a given id.
 *
 * @param DatastoreClient $datastore
 * @param $taskId
 */
function delete_task(DatastoreClient $datastore, $taskId)
{
    $taskKey = $datastore->key('Task', $taskId);
    $datastore->delete($taskKey);
}

Python

Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud Datastore, consultez la page Bibliothèques clientes Cloud Datastore. Pour plus d'informations, consultez la documentation de référence sur l'API Cloud Datastore en langage Python.

def delete_task(client, task_id):
    key = client.key('Task', task_id)
    client.delete(key)

Ruby

Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud Datastore, consultez la page Bibliothèques clientes Cloud Datastore. Pour plus d'informations, consultez la documentation de référence sur l'API Cloud Datastore en langage Ruby.

def delete_task task_id
  task = @datastore.find "Task", task_id

  @datastore.delete task
end

Exécuter une requête

En plus de récupérer les entités à partir du mode Datastore directement à l'aide de leurs clés, une application peut exécuter une requête pour les extraire en fonction des valeurs de leurs propriétés. Une requête type comprend les éléments suivants :

  • Un genre d'entité auquel s'applique la requête.
  • Zéro, un ou plusieurs filtres, par exemple pour sélectionner des genres dont les propriétés correspondent à une valeur.
  • Zéro, un ou plusieurs ordres de tri, pour séquencer les résultats.

Pour cette application, nous allons interroger le mode Datastore pour obtenir les entités Task triées par date de création :

C#

Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud Datastore, consultez la page Bibliothèques clientes Cloud Datastore. Pour plus d'informations, consultez la documentation de référence sur l'API Cloud Datastore en langage C#.

/// <summary>
/// Returns a list of all task entities in ascending order of creation time.
/// </summary>
IEnumerable<Entity> ListTasks()
{
    Query query = new Query("Task")
    {
        Order = { { "created", PropertyOrder.Types.Direction.Descending } }
    };
    return _db.RunQuery(query).Entities;
}

Go

Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud Datastore, consultez la page Bibliothèques clientes Cloud Datastore. Pour plus d'informations, consultez la documentation de référence sur l'API Cloud Datastore en langage Go.

// ListTasks returns all the tasks in ascending order of creation time.
func ListTasks(ctx context.Context, client *datastore.Client) ([]*Task, error) {
	var tasks []*Task

	// Create a query to fetch all Task entities, ordered by "created".
	query := datastore.NewQuery("Task").Order("created")
	keys, err := client.GetAll(ctx, query, &tasks)
	if err != nil {
		return nil, err
	}

	// Set the id field on each Task from the corresponding key.
	for i, key := range keys {
		tasks[i].id = key.ID
	}

	return tasks, nil
}

Java

Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud Datastore, consultez la page Bibliothèques clientes Cloud Datastore. Pour plus d'informations, consultez la documentation de référence sur l'API Cloud Datastore en langage Java.

/**
 * Returns a list of all task entities in ascending order of creation time.
 *
 * @throws DatastoreException if the query fails
 */
Iterator<Entity> listTasks() {
  Query<Entity> query =
      Query.newEntityQueryBuilder().setKind("Task").setOrderBy(OrderBy.asc("created")).build();
  return datastore.run(query);
}

Node.js

Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud Datastore, consultez la page Bibliothèques clientes Cloud Datastore. Pour en savoir plus, consultez la documentation de référence sur l'API Cloud Datastore en langage Node.js.

async function listTasks() {
  const query = datastore.createQuery('Task').order('created');

  const [tasks] = await datastore.runQuery(query);
  console.log('Tasks:');
  tasks.forEach(task => {
    const taskKey = task[datastore.KEY];
    console.log(taskKey.id, task);
  });
}

PHP

Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud Datastore, consultez la page Bibliothèques clientes Cloud Datastore. Pour plus d'informations, consultez la documentation de référence sur l'API Cloud Datastore en langage PHP.

/**
 * Return an iterator for all the tasks in ascending order of creation time.
 *
 * @param DatastoreClient $datastore
 * @return EntityIterator<Google\Cloud\Datastore\Entity>
 */
function list_tasks(DatastoreClient $datastore)
{
    $query = $datastore->query()
        ->kind('Task')
        ->order('created');
    return $datastore->runQuery($query);
}

Python

Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud Datastore, consultez la page Bibliothèques clientes Cloud Datastore. Pour plus d'informations, consultez la documentation de référence sur l'API Cloud Datastore en langage Python.

def list_tasks(client):
    query = client.query(kind='Task')
    query.order = ['created']

    return list(query.fetch())

Ruby

Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud Datastore, consultez la page Bibliothèques clientes Cloud Datastore. Pour plus d'informations, consultez la documentation de référence sur l'API Cloud Datastore en langage Ruby.

def list_tasks
  query = @datastore.query("Task").order("created")
  tasks = @datastore.run query

  tasks.each do |t|
    puts t["description"]
    puts t["done"] ? "  Done" : "  Not Done"
    puts "  ID: #{t.key.id}"
  end
end

Étapes suivantes

Ce tutoriel n'aborde que les étapes les plus élémentaires nécessaires pour appeler l'API en mode Datastore à partir d'une application de ligne de commande. Le mode Datastore est compatible avec les transactions ACID rapides et hautement évolutives, les requêtes de type SQL, les index, etc.

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Documentation Cloud Datastore