Get product information

Retrieve information about a product.

Explore further

For detailed documentation that includes this code sample, see the following:

Code sample

Go

Before trying this sample, follow the Go setup instructions in the Vision quickstart using client libraries. For more information, see the Vision Go API reference documentation.

To authenticate to Vision, set up Application Default Credentials. For more information, see Set up authentication for a local development environment.


import (
	"context"
	"fmt"
	"io"

	vision "cloud.google.com/go/vision/apiv1"
	"cloud.google.com/go/vision/v2/apiv1/visionpb"
)

// getProduct gets a product.
func getProduct(w io.Writer, projectID string, location string, productID string) error {
	ctx := context.Background()
	c, err := vision.NewProductSearchClient(ctx)
	if err != nil {
		return fmt.Errorf("NewProductSearchClient: %w", err)
	}
	defer c.Close()

	req := &visionpb.GetProductRequest{
		Name: fmt.Sprintf("projects/%s/locations/%s/products/%s", projectID, location, productID),
	}

	resp, err := c.GetProduct(ctx, req)
	if err != nil {
		return fmt.Errorf("GetProduct: %w", err)
	}

	fmt.Fprintf(w, "Product name: %s\n", resp.Name)
	fmt.Fprintf(w, "Product display name: %s\n", resp.DisplayName)
	fmt.Fprintf(w, "Product category: %s\n", resp.ProductCategory)
	fmt.Fprintf(w, "Product labels: %s\n", resp.ProductLabels)

	return nil
}

Java

Before trying this sample, follow the Java setup instructions in the Vision quickstart using client libraries. For more information, see the Vision Java API reference documentation.

To authenticate to Vision, set up Application Default Credentials. For more information, see Set up authentication for a local development environment.

/**
 * Get information about a product.
 *
 * @param projectId - Id of the project.
 * @param computeRegion - Region name.
 * @param productId - Id of the product.
 * @throws IOException - on I/O errors.
 */
public static void getProduct(String projectId, String computeRegion, String productId)
    throws IOException {
  try (ProductSearchClient client = ProductSearchClient.create()) {

    // Get the full path of the product.
    String formattedName = ProductName.format(projectId, computeRegion, productId);
    // Get complete detail of the product.
    Product product = client.getProduct(formattedName);
    // Display the product information
    System.out.println(String.format("Product name: %s", product.getName()));
    System.out.println(
        String.format(
            "Product id: %s",
            product.getName().substring(product.getName().lastIndexOf('/') + 1)));
    System.out.println(String.format("Product display name: %s", product.getDisplayName()));
    System.out.println(String.format("Product description: %s", product.getDescription()));
    System.out.println(String.format("Product category: %s", product.getProductCategory()));
    System.out.println(String.format("Product labels: "));
    for (Product.KeyValue element : product.getProductLabelsList()) {
      System.out.println(String.format("%s: %s", element.getKey(), element.getValue()));
    }
  }
}

Node.js

Before trying this sample, follow the Node.js setup instructions in the Vision quickstart using client libraries. For more information, see the Vision Node.js API reference documentation.

To authenticate to Vision, set up Application Default Credentials. For more information, see Set up authentication for a local development environment.

// Imports the Google Cloud client library
const vision = require('@google-cloud/vision');

// Creates a client
const client = new vision.ProductSearchClient();

async function getProduct() {
  /**
   * TODO(developer): Uncomment the following line before running the sample.
   */
  // const projectId = 'Your Google Cloud project Id';
  // const location = 'A compute region name';
  // const productId = 'Id of the product';

  // Resource path that represents Google Cloud Platform location.
  const productPath = client.productPath(projectId, location, productId);

  const [product] = await client.getProduct({name: productPath});
  console.log(`Product name: ${product.name}`);
  console.log(`Product id: ${product.name.split('/').pop()}`);
  console.log(`Product display name: ${product.displayName}`);
  console.log(`Product description: ${product.description}`);
  console.log(`Product category: ${product.productCategory}`);
  console.log(`Product labels: ${product.productLabels}`);
}
getProduct();

Python

Before trying this sample, follow the Python setup instructions in the Vision quickstart using client libraries. For more information, see the Vision Python API reference documentation.

To authenticate to Vision, set up Application Default Credentials. For more information, see Set up authentication for a local development environment.

from google.cloud import vision
from google.protobuf import field_mask_pb2 as field_mask

def get_product(project_id, location, product_id):
    """Get information about a product.
    Args:
        project_id: Id of the project.
        location: A compute region name.
        product_id: Id of the product.
    """
    client = vision.ProductSearchClient()

    # Get the full path of the product.
    product_path = client.product_path(
        project=project_id, location=location, product=product_id
    )

    # Get complete detail of the product.
    product = client.get_product(name=product_path)

    # Display the product information.
    print(f"Product name: {product.name}")
    print("Product id: {}".format(product.name.split("/")[-1]))
    print(f"Product display name: {product.display_name}")
    print(f"Product description: {product.description}")
    print(f"Product category: {product.product_category}")
    print(f"Product labels: {product.product_labels}")


What's next

To search and filter code samples for other Google Cloud products, see the Google Cloud sample browser.