View a markdown version of this page

Crea interfacce con dati di catalogo - Marketplace AWS

L'AWS Marketplace API Reference è stato ristrutturato. Per ulteriori informazioni sulle operazioni API supportate, consulta l'AWS Marketplace API Reference.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Crea interfacce con dati di catalogo

Puoi utilizzare l'API Marketplace AWS Discovery per accedere in modo programmatico al catalogo e visualizzare informazioni sui prodotti e sui prezzi sulle tue piattaforme. Questa sezione descrive come creare interfacce personalizzate come vetrine, portali per i partner ed esperienze di vendita integrate per consentire ai clienti di navigare, utilizzando l'API Discovery.

Panoramica dell’architettura

Un'integrazione tipica segue questo schema:

  1. Esperienza di navigazione: chiama SearchListings per recuperare i riepiloghi delle inserzioni in base al testo di ricerca e SearchFacets ai filtri e per inserire i conteggi nelle opzioni di navigazione e filtro delle categorie.

  2. Pagine dei dettagli del prodotto: chiama GetListing o GetProduct per visualizzare i dettagli completi del prodotto, i media e le recensioni.

  3. Visualizzazione dei prezzi: chiama ListPurchaseOptions GetOffer e mostra GetOfferTerms le opzioni di prezzo.

Crea un'esperienza di navigazione

Utilizzalo SearchListings per recuperare i riepiloghi delle inserzioni in base al testo di ricerca e ai filtri e SearchFacets per creare una navigazione dinamica tra filtri. Gli aspetti includono categorie, tipi di evasione degli ordini, modelli di prezzo, unità di prezzo, editori e stato di implementazione. Ogni valore sfaccettato include un numero di inserzioni corrispondenti, che puoi visualizzare insieme alle opzioni di 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']}")

Crea pagine di dettaglio dei prodotti

Utilizza GetListing o GetProduct per visualizzare i dettagli completi del prodotto, i contenuti multimediali e le recensioni. Utilizzalo GetListing quando ti serve la panoramica delle offerte che include badge, categorie e riepiloghi dei prezzi. Utilizzalo GetProduct quando hai bisogno di informazioni dettagliate sul prodotto come descrizioni, punti salienti e contenuti multimediali. Chiama ListFulfillmentOptions per recuperare le opzioni di distribuzione per un prodotto specifico.

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 }

Visualizza le informazioni sui prezzi

ListPurchaseOptionsUtilizzalo per trovare le offerte disponibili per un prodotto GetOffer e quindi GetOfferTerms per recuperare i prezzi dettagliati. Visualizza modelli di prezzo, schede tariffarie e dettagli sui termini per aiutare i clienti a valutare le opzioni.

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

Best practice

  • Risposte nella cache: i dati sui prodotti e sui prezzi cambiano raramente. Memorizza nella cache le risposte API per 15-60 minuti per ridurre le chiamate API e migliorare i tempi di caricamento delle pagine.

  • Gestisci l'impaginazione: consente di nextToken recuperare tutti i risultati delle operazioni impaginate. I token di impaginazione scadono dopo 24 ore.

  • Implementa la logica dei tentativi: utilizza il backoff esponenziale per le risposte (HTTP 429). ThrottlingException

  • Attribuzione del display: quando Marketplace AWS visualizzi i dati sulla tua piattaforma, segui le linee guida sui marchi.AWS

  • Riduci al minimo le chiamate API: utilizzale SearchListings per i dati di riepilogo e richiama le API di dettaglio (GetProduct,GetOffer,GetOfferTerms) solo quando un utente accede a un prodotto specifico.

Nota

L'API Discovery supporta tutti i tipi di prodotti Marketplace AWS, inclusi SaaS, agenti e strumenti di intelligenza artificiale, AMI, contenitori e modelli di apprendimento automatico. L'interfaccia può visualizzare l'intera gamma del catalogo.