View a markdown version of this page

Création d'interfaces avec les données du catalogue - AWS Marketplace

La référence d'API AWS Marketplace a été restructurée. Pour plus d'informations sur les opérations d'API prises en charge, consultez le manuel AWS Marketplace API Reference.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Création d'interfaces avec les données du catalogue

Vous pouvez utiliser l'API AWS Marketplace Discovery pour accéder par programmation au catalogue et afficher les informations sur les produits et les prix sur vos propres plateformes. Cette section explique comment créer des interfaces personnalisées telles que des vitrines, des portails partenaires et des expériences de vente intégrées permettant à vos clients de s'y retrouver, à l'aide de l'API Discovery.

Présentation de l’architecture

Une intégration typique suit le schéma suivant :

  1. Expérience de navigation : appelez SearchListings pour récupérer les résumés des annonces en fonction du texte de recherche et des filtres, et SearchFacets pour renseigner les options de navigation par catégorie et de filtrage avec des chiffres.

  2. Pages détaillées des produits — Appelez GetListing ou GetProduct pour afficher les détails complets du produit, les médias et les critiques.

  3. Affichage des prix — Appelez ListPurchaseOptions et GetOfferTerms pour afficher les options de tarification. GetOffer

Créez une expérience de navigation

SearchListingsÀ utiliser pour récupérer des résumés d'annonces en fonction du texte de recherche et des filtres, et SearchFacets pour créer une navigation par filtre dynamique. Les facettes incluent les catégories, les types d'expédition, les modèles de tarification, les unités de tarification, les éditeurs et le statut du déploiement. Chaque valeur de facette inclut le nombre de listes correspondantes, que vous pouvez afficher à côté des options de filtre.

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']}")

Création de pages détaillées de produits

Utilisez GetListing ou GetProduct pour afficher les détails complets du produit, les médias et les critiques. GetListingÀ utiliser lorsque vous avez besoin d'un aperçu de l'annonce, y compris les badges, les catégories et les résumés des prix. GetProductÀ utiliser lorsque vous avez besoin d'informations détaillées sur les produits, telles que les descriptions, les points forts et les médias. Appelez ListFulfillmentOptions pour récupérer les options de déploiement pour un produit spécifique.

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 }

Afficher les informations sur les prix

ListPurchaseOptionsUtilisez-le pour trouver les offres disponibles pour un produit, GetOffer puis GetOfferTerms pour récupérer les prix détaillés. Affichez les modèles de tarification, les fiches tarifaires et les détails des conditions pour aider vos clients à évaluer les options.

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

Bonnes pratiques

  • Réponses du cache : les données sur les produits et les prix changent rarement. Mettez en cache les réponses des API pendant 15 à 60 minutes afin de réduire les appels d'API et d'améliorer le temps de chargement des pages.

  • Gérer la pagination : permet nextToken de récupérer tous les résultats des opérations de pagination. Les jetons de pagination expirent au bout de 24 heures.

  • Implémenter une logique de nouvelle tentative : utilisez une temporisation exponentielle pour les réponses ThrottlingException (HTTP 429).

  • Afficher l'attribution — Lorsque vous affichez AWS Marketplace des données sur votre plateforme, suivez les directives relatives aux AWS marques commerciales.

  • Minimiser les appels d'API : utilisez cette option SearchListings pour les données récapitulatives et appelez uniquement les API détaillées (GetProductGetOffer,,GetOfferTerms) lorsqu'un utilisateur accède à un produit spécifique.

Note

L'API Discovery prend en charge tous les types de produits AWS Marketplace, y compris le SaaS, les agents et outils d'IA, les AMI, les conteneurs et les modèles d'apprentissage automatique. Votre interface peut afficher l'intégralité du catalogue.