Cómo comenzar a usar la API de Google Cloud Datastore

En esta página, se brinda un ejercicio corto para crear una aplicación TaskList de línea de comandos simples con la API de Google Cloud Datastore. La aplicación TaskList almacena, muestra, actualiza y quita tareas.

Requisitos previos

  1. Capacidad para escribir y ejecutar una aplicación de línea de comandos en los lenguajes de programación utilizados en este tema
    Además de un conocimiento básico de cómo desarrollar aplicaciones, deberías poder descargar e instalar bibliotecas adicionales antes de comenzar con este instructivo.
  2. Un proyecto de Google Cloud Platform Console con la API de Cloud Datastore habilitada
    Las aplicaciones que utilicen Cloud Datastore deben estar asociadas con un proyecto de Google Cloud Platform Console que tenga la API de Cloud Datastore habilitada. Este proyecto ofrece credenciales de autenticación que puedes utilizar en tu aplicación para que Google la identifique y la autorice a usar la API de Cloud Datastore.
    Sigue estas instrucciones para crear un proyecto, habilitar la API de Cloud Datastore y configurar tu entorno de programación local con credenciales de autenticación mediante el comando gcloud auth login. Toma nota del ID del proyecto que utilizarás luego.
  3. Una aplicación App Engine activa
    Los proyectos que utilizan la API de Cloud Datastore necesitan una aplicación App Engine activa. Abre el panel de App Engine y confirma que tu proyecto tenga una app de App Engine activa.
    Si es necesario, crea una app de App Engine. La aplicación no debe estar inhabilitada.

Instalación y configuración

Instala las bibliotecas cliente y realiza los ajustes de configuración adicionales que sean necesarios para el entorno de programación.

C#

  1. Asegúrate de tener instalado Visual Studio (versión 2013 o posterior).
  2. Descarga la aplicación de muestra TaskList desde aquí.
  3. Extrae los archivos comprimidos en un directorio dentro tu carpeta Documentos.
  4. En Visual Studio, abre el archivo dotnet-docs-samples-master\datastore\api\Datastore.sln.
  5. En la ventana de Solution Explorer (Explorador de soluciones) de Visual Studio haz clic en el botón situado sobre el proyecto TaskList y elige Set as StartUp Project (Establecer como proyecto de inicio).
  6. Haz clic en el botón ubicado sobre el proyecto TaskList una vez más y elige Properties (Propiedades).
  7. En la ventana Properties (Propiedades), haz clic en Debug (Depurar) y escribe el ID de tu proyecto de Google Cloud Platform en el recuadro Command line arguments (Argumentos de línea de comandos):

    Ventana Debug de Visual Studio

  8. Haz clic en File (Archivo) y luego haz clic en Save (Guardar) para guardar los cambios.

  9. Ejecuta la aplicación. Presiona F5 en tu teclado.

Go

  1. Clona la aplicación de prueba TaskList.

    go get github.com/GoogleCloudPlatform/golang-samples/datastore/tasks
    
  2. Ve al directorio en el que clonaste la muestra.

    cd $GOPATH/src/github.com/GoogleCloudPlatform/golang-samples/datastore/tasks
    
  3. Ejecuta el siguiente comando en el símbolo del sistema (reemplaza <project-id> con el ID de tu proyecto de Google Cloud Platform).

    export DATASTORE_PROJECT_ID=<project-id>
    

    Los usuarios de Windows deberán usar set en lugar de export.

  4. Ejecuta la aplicación.

    go run tasks.go
    

Java

  1. Asegúrate de tener instalados Maven y Java (versión 7 o posterior).

  2. Descarga la aplicación de muestra TaskList desde aquí.

  3. En el símbolo del sistema, descomprime el archivo que descargaste.

    unzip master.zip
    
  4. Ve al directorio de la aplicación TaskList:

    cd java-docs-samples-master/datastore
    
  5. Ejecuta el siguiente comando (reemplaza <project-id> con el ID de tu proyecto de Google Cloud Platform).

    gcloud config set project <project-id>
    
  6. Compila y ejecuta la aplicación.

    mvn clean compile
    mvn exec:java
    

Node.js

  1. Prepara tu entorno para el desarrollo en Node.js.

  2. Descarga la aplicación de muestra TaskList desde aquí.

  3. Descomprime el archivo que descargaste:

    unzip master.zip
    
  4. Ve al directorio de la aplicación TaskList:

    cd nodejs-datastore-master/samples
    
  5. Instala las dependencias y vincula la aplicación:

    npm install
    
  6. Ejecuta el siguiente comando en el símbolo del sistema (reemplaza <project-id> con el ID de tu proyecto de Google Cloud Platform).

    export GCLOUD_PROJECT=<project-id>
    

    Los usuarios de Windows deberán usar set en lugar de export.

  7. Ejecuta la aplicación.

    node tasks.js
    

PHP

  1. Asegúrate de tener instalados PHP (versión 5.6 o posterior) y Composer.
  2. Descarga la aplicación de muestra TaskList desde aquí.
  3. Descomprime el archivo que descargaste:

    unzip master.zip
    
  4. Ve al directorio de la aplicación TaskList:

    cd php-docs-samples-master/datastore/tutorial
    
  5. Instala las dependencias:

    Si Composer se encuentra instalado de manera local, ejecuta el siguiente comando:

    php composer.phar install
    

    Si Composer se encuentra instalado de manera global, ejecuta el siguiente comando:

    composer install
    
  6. Ejecuta la aplicación.

    php tasks.php
    

Python

  1. Asegúrate de tener Python (versión 2.7.9 o posterior), pip y virtualenv instalados.
  2. Activa una sesión de virtualenv.

    virtualenv venv
    source venv/bin/activate
    
  3. Descarga la aplicación de muestra TaskList desde aquí.

  4. Descomprime el archivo que descargaste:

    unzip master.zip
    
  5. Ve al directorio de la aplicación TaskList:

    cd python-docs-samples-master/datastore/cloud-client
    
  6. Instala las dependencias:

    pip install -r requirements.txt
    
  7. Ejecuta la aplicación. Utiliza el ID del proyecto de Google Cloud Platform para <project-id>.

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

Ruby

  1. Asegúrate de tener instalados Ruby y Bundler.

  2. Descarga la aplicación de muestra TaskList desde aquí.

  3. Descomprime el archivo que descargaste:

    unzip master.zip
    
  4. Ve al directorio de la aplicación TaskList:

    cd ruby-docs-samples-master/datastore
    
  5. Instala las dependencias:

    bundle install
    
  6. Ejecuta el siguiente comando en el símbolo del sistema (reemplaza <project-id> con el ID de tu proyecto de Google Cloud Platform).

    export GOOGLE_CLOUD_PROJECT=<project-id>
    

    Los usuarios de Windows deberán usar set en lugar de export.

  7. Ejecuta la aplicación.

    bundle exec ruby tasks.rb
    

Cómo crear un objeto de servicio autorizado

Para realizar solicitudes autenticadas a las API de Google Cloud con las bibliotecas cliente de las API de Google debes hacer lo siguiente:

  • Obtener la credencial que usarás para las solicitudes
  • Crear un objeto de servicio que use esa credencial

Luego, podrás realizar llamadas a las API con los métodos del objeto de servicio de Cloud Datastore.

Para este ejemplo, recuperarás del entorno la credencial predeterminada de la aplicación y la pasarás como argumento para crear el objeto de servicio.

Esta es la llamada que usarás para crear el objeto de servicio autorizado de Cloud Datastore:

C#

Para saber cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta esta página. Si deseas obtener más información, consulta la documentación de referencia de la API de C# de Cloud Datastore.

// 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

Para saber cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta esta página. Si deseas obtener más información, consulta la documentación de referencia de la API de Go de Cloud Datastore.

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

Java

Para saber cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta esta página. Si deseas obtener más información, consulta la documentación de referencia de la API de Java de Cloud Datastore.

// 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

Para saber cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta esta página. Si deseas obtener más información, consulta la documentación de referencia de la API de Node.js de Cloud Datastore.

// 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

Para saber cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta esta página. Si deseas obtener más información, consulta la documentación de referencia de la API de PHP de Cloud Datastore.

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

Para saber cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta esta página. Si deseas obtener más información, consulta la documentación de referencia de la API de Python de Cloud Datastore.

from google.cloud import datastore

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

Ruby

Para saber cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta esta página. Si deseas obtener más información, consulta la documentación de referencia de la API de Ruby de Cloud Datastore.

require "google/cloud/datastore"

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

Cómo almacenar información

En Cloud Datastore, los objetos se denominan entidades, y cada una pertenece a un tipo específico. La aplicación TaskList almacenará entidades del tipo Task, con las siguientes propiedades:

  • description: una string especificada por el usuario como descripción de la tarea
  • created: una fecha que indica cuándo se creó inicialmente la tarea
  • done: un valor booleano que indica si la tarea se llevó a cabo

Cuando el usuario agrega una tarea nueva, la aplicación TaskList crea una entidad Task con valores para las propiedades mencionadas anteriormente:

C#

Para saber cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta esta página. Si deseas obtener más información, consulta la documentación de referencia de la API de C# de Cloud Datastore.

/// <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

Para saber cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta esta página. Si deseas obtener más información, consulta la documentación de referencia de la API de Go de Cloud Datastore.

// 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

Para saber cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta esta página. Si deseas obtener más información, consulta la documentación de referencia de la API de Java de Cloud Datastore.

/**
 * 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

Para saber cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta esta página. Si deseas obtener más información, consulta la documentación de referencia de la API de Node.js de Cloud Datastore.

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

Para saber cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta esta página. Si deseas obtener más información, consulta la documentación de referencia de la API de PHP de Cloud Datastore.

/**
 * 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

Para saber cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta esta página. Si deseas obtener más información, consulta la documentación de referencia de la API de Python de Cloud Datastore.

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

Para saber cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta esta página. Si deseas obtener más información, consulta la documentación de referencia de la API de Ruby de Cloud Datastore.

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

Para esta aplicación, también proporcionaremos un método para actualizar la propiedad done, a fin de indicar que la tarea se llevó a cabo:

C#

Para saber cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta esta página. Si deseas obtener más información, consulta la documentación de referencia de la API de C# de Cloud Datastore.

/// <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

Para saber cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta esta página. Si deseas obtener más información, consulta la documentación de referencia de la API de Go de Cloud Datastore.

// 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

Para saber cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta esta página. Si deseas obtener más información, consulta la documentación de referencia de la API de Java de Cloud Datastore.

/**
 * 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

Para saber cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta esta página. Si deseas obtener más información, consulta la documentación de referencia de la API de Node.js de Cloud Datastore.

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

Para saber cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta esta página. Si deseas obtener más información, consulta la documentación de referencia de la API de PHP de Cloud Datastore.

/**
 * 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

Para saber cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta esta página. Si deseas obtener más información, consulta la documentación de referencia de la API de Python de Cloud Datastore.

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

Para saber cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta esta página. Si deseas obtener más información, consulta la documentación de referencia de la API de Ruby de Cloud Datastore.

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

  task["done"] = true

  @datastore.save task
end

Usa este método para borrar una entidad Task con la clave de esa entidad Task:

C#

Para saber cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta esta página. Si deseas obtener más información, consulta la documentación de referencia de la API de C# de Cloud Datastore.

/// <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

Para saber cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta esta página. Si deseas obtener más información, consulta la documentación de referencia de la API de Go de Cloud Datastore.

// 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

Para saber cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta esta página. Si deseas obtener más información, consulta la documentación de referencia de la API de Java de Cloud Datastore.

/**
 * 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

Para saber cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta esta página. Si deseas obtener más información, consulta la documentación de referencia de la API de Node.js de Cloud Datastore.

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

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

PHP

Para saber cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta esta página. Si deseas obtener más información, consulta la documentación de referencia de la API de PHP de Cloud Datastore.

/**
 * 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

Para saber cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta esta página. Si deseas obtener más información, consulta la documentación de referencia de la API de Python de Cloud Datastore.

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

Ruby

Para saber cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta esta página. Si deseas obtener más información, consulta la documentación de referencia de la API de Ruby de Cloud Datastore.

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

  @datastore.delete task
end

Cómo ejecutar una consulta

Además de recuperar entidades de Cloud Datastore directamente con sus claves, una aplicación puede realizar una consulta para recuperarlas por los valores de sus propiedades. Una consulta típica incluye lo siguiente:

  • El tipo de entidad al cual se aplica la consulta
  • Cero o más filtros (por ejemplo, para seleccionar tipos cuyas propiedades coinciden con un valor)
  • Cero o más órdenes de clasificación para secuenciar los resultados

Para esta aplicación, enviaremos a Cloud Datastore una consulta de entidades Task ordenadas por tiempo de creación:

C#

Para saber cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta esta página. Si deseas obtener más información, consulta la documentación de referencia de la API de C# de Cloud Datastore.

/// <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

Para saber cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta esta página. Si deseas obtener más información, consulta la documentación de referencia de la API de Go de Cloud Datastore.

// 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

Para saber cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta esta página. Si deseas obtener más información, consulta la documentación de referencia de la API de Java de Cloud Datastore.

/**
 * 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

Para saber cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta esta página. Si deseas obtener más información, consulta la documentación de referencia de la API de Node.js de Cloud Datastore.

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

Para saber cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta esta página. Si deseas obtener más información, consulta la documentación de referencia de la API de PHP de Cloud Datastore.

/**
 * 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

Para saber cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta esta página. Si deseas obtener más información, consulta la documentación de referencia de la API de Python de Cloud Datastore.

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

    return list(query.fetch())

Ruby

Para saber cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta esta página. Si deseas obtener más información, consulta la documentación de referencia de la API de Ruby de Cloud Datastore.

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

Pasos siguientes

Este instructivo solo cubre los pasos básicos esenciales que necesitarás para realizar llamadas a la API de Cloud Datastore desde una aplicación de línea de comandos. Cloud Datastore admite transacciones ACID rápidas y altamente escalables, consultas similares a las de SQL, índices y más.

  • Para ver un análisis más detallado de las capacidades de Cloud Datastore, consulta ¿Qué es Google Cloud Datastore?
  • Para obtener información sobre cómo usar el emulador de Cloud Datastore mientras desarrollas tu aplicación, consulta esta página.
¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Documentación de Cloud Datastore