View a markdown version of this page

Crie interfaces com dados do catálogo - AWS Marketplace

A referência da API do AWS Marketplace foi reestruturada. Para obter mais informações sobre as operações de API suportadas, consulte a Referência de API do AWS Marketplace.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Crie interfaces com dados do catálogo

Você pode usar a API AWS Marketplace Discovery para acessar programaticamente o catálogo e exibir informações sobre produtos e preços em suas próprias plataformas. Esta seção descreve como criar interfaces personalizadas, como vitrines, portais de parceiros e experiências de vendas integradas para seus clientes navegarem, usando a API Discovery.

Visão geral da arquitetura

Uma integração típica segue esse padrão:

  1. Experiência de navegação — Ligue SearchListings para recuperar resumos de anúncios com base no texto e nos filtros de pesquisa e SearchFacets para preencher as opções de navegação e filtro por categorias com contagens.

  2. Páginas de detalhes do produto — Ligue GetListing ou GetProduct exiba detalhes completos do produto, mídia e avaliações.

  3. Exibição de preços — Ligue para ListPurchaseOptionsGetOffer, e GetOfferTerms para mostrar as opções de preços.

Crie uma experiência de navegação

Use SearchListings para recuperar resumos de listagens com base no texto e nos filtros de pesquisa e SearchFacets para criar uma navegação dinâmica de filtros. As facetas incluem categorias, tipos de atendimento, modelos de preços, unidades de preços, editores e status de implantação. Cada valor de faceta inclui uma contagem de listagens correspondentes, que você pode exibir junto com as opções de filtro.

import boto3 client = boto3.client('marketplace-discovery', region_name='us-east-1') # Get facet values for building filter navigation facets = client.search_facets( facetTypes=['CATEGORY', 'FULFILLMENT_OPTION_TYPE', 'PRICING_MODEL'] ) for facet_type, values in facets['listingFacets'].items(): print(f"\n{facet_type}:") for facet in values: print(f" {facet['displayName']} ({facet['count']})") # Search listings with filters applied from user selections response = client.search_listings( searchText='machine learning', filters=[ { 'filterType': 'CATEGORY', 'filterValues': ['Machine Learning'] }, { 'filterType': 'PRICING_MODEL', 'filterValues': ['USAGE'] } ], sortBy='RELEVANCE', maxResults=25 ) for listing in response['listingSummaries']: print(f"{listing['listingName']} - {listing['shortDescription']}")

Crie páginas de detalhes do produto

Use GetListing ou GetProduct para exibir detalhes completos do produto, mídia e avaliações. Use GetListing quando precisar da visão geral do anúncio, incluindo emblemas, categorias e resumos de preços. Use GetProduct quando precisar de informações detalhadas do produto, como descrições, destaques e mídia. Ligue ListFulfillmentOptions para recuperar as opções de implantação de um produto específico.

def get_product_page_data(listing_id, product_id): """Retrieve data for a product detail page.""" # Use GetListing for listing-level overview listing = client.get_listing(listingId=listing_id) # Or use GetProduct for detailed product information product = client.get_product(productId=product_id) # Get deployment options for the product fulfillment = client.list_fulfillment_options(productId=product_id) return { 'listing': listing, 'product': product, 'fulfillmentOptions': fulfillment }

Exibir informações de preços

Use ListPurchaseOptions para encontrar ofertas disponíveis para um produto GetOffer e, em seguida, GetOfferTerms para obter preços detalhados. Exiba modelos de preços, tabelas de preços e detalhes de prazos para ajudar seus clientes a avaliar as opções.

def get_pricing_for_product(product_id): """Retrieve pricing options for display.""" options = client.list_purchase_options( filters=[{ 'filterType': 'PRODUCT_ID', 'filterValues': [product_id] }] ) pricing = [] for option in options.get('purchaseOptions', []): for entity in option['associatedEntities']: offer = client.get_offer( offerId=entity['offer']['offerId'] ) terms = client.get_offer_terms( offerId=entity['offer']['offerId'] ) pricing.append({ 'option': option, 'offer': offer, 'terms': terms }) return pricing

Práticas recomendadas

  • Respostas em cache — os dados de produtos e preços mudam com pouca frequência. Armazene as respostas da API por 15 a 60 minutos para reduzir as chamadas à API e melhorar os tempos de carregamento da página.

  • Gerenciar paginação — Use nextToken para recuperar todos os resultados das operações paginadas. Os tokens de paginação expiram após 24 horas.

  • Implemente a lógica de repetição — Use o retrocesso exponencial para respostas ThrottlingException (HTTP 429).

  • Atribuição de exibição — Ao exibir AWS Marketplace dados em sua plataforma, siga as Diretrizes de AWS marcas comerciais.

  • Minimize as chamadas de API — use SearchListings para dados resumidos e chame somente as APIs detalhadas (GetProductGetOffer,,GetOfferTerms) quando um usuário navega até um produto específico.

nota

A API Discovery oferece suporte a todos os tipos de produtos AWS Marketplace, incluindo SaaS, agentes e ferramentas de IA, AMI, contêineres e modelos de aprendizado de máquina. Sua interface pode exibir toda a extensão do catálogo.