View a markdown version of this page

Erstellen Sie Schnittstellen mit Katalogdaten - AWS Marketplace

Die AWS Marketplace API-Referenz wurde neu strukturiert. Weitere Informationen zu den unterstützten API-Vorgängen finden Sie in der AWS Marketplace API-Referenz.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erstellen Sie Schnittstellen mit Katalogdaten

Sie können die AWS Marketplace Discovery-API verwenden, um programmgesteuert auf den Katalog zuzugreifen und Produkt- und Preisinformationen auf Ihren eigenen Plattformen anzuzeigen. In diesem Abschnitt wird beschrieben, wie Sie mithilfe der Discovery-API benutzerdefinierte Benutzeroberflächen wie Storefronts, Partnerportale und integrierte Verkaufserlebnisse erstellen, auf denen Ihre Kunden navigieren können.

Übersicht über die Architektur

Eine typische Integration folgt diesem Muster:

  1. Nutzererlebnis — Rufen Sie uns anSearchListings, um auf Suchtext und Filtern basierende Angebotszusammenfassungen abzurufen und die Kategorienavigation und die Filteroptionen mit Zählungen SearchFacets zu füllen.

  2. Produktdetailseiten — Rufen Sie an GetListing oderGetProduct, um sich die vollständigen Produktdetails, Medien und Rezensionen anzeigen zu lassen.

  3. Preisanzeige — Rufen Sie ListPurchaseOptionsGetOffer, und GetOfferTerms an, um Preisoptionen anzuzeigen.

Schaffen Sie ein Surferlebnis

Wird verwendetSearchListings, um auf Suchtext und Filtern basierende Angebotszusammenfassungen abzurufen und SearchFacets um eine dynamische Filternavigation zu erstellen. Zu den Facetten gehören Kategorien, Versandarten, Preismodelle, Preiseinheiten, Herausgeber und Bereitstellungsstatus. Jeder Facettenwert umfasst eine Anzahl passender Angebote, die Sie zusammen mit den Filteroptionen anzeigen können.

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

Erstellen Sie Produktdetailseiten

Verwenden Sie GetListing oder, GetProduct um vollständige Produktdetails, Medien und Rezensionen anzuzeigen. Verwenden Sie diese Option, GetListing wenn Sie eine Angebotsübersicht mit Badges, Kategorien und Preisübersichten benötigen. Verwenden Sie GetProduct es, wenn Sie detaillierte Produktinformationen wie Beschreibungen, Highlights und Medien benötigen. Rufen Sie ListFulfillmentOptions an, um die Bereitstellungsoptionen für ein bestimmtes Produkt abzurufen.

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 }

Preisinformationen anzeigen

Wird verwendetListPurchaseOptions, um verfügbare Angebote für ein Produkt GetOfferTerms zu finden GetOffer und anschließend detaillierte Preise abzurufen. Zeigen Sie Preismodelle, Preislisten und Konditionen an, damit Ihre Kunden die Optionen besser einschätzen können.

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 Practices

  • Antworten zwischenspeichern — Produkt- und Preisdaten ändern sich selten. Zwischenspeichern Sie API-Antworten für 15—60 Minuten, um API-Aufrufe zu reduzieren und die Ladezeiten der Seiten zu verbessern.

  • Paginierung verarbeiten — Wird verwendetnextToken, um alle Ergebnisse von paginierten Vorgängen abzurufen. Paginierungstoken laufen nach 24 Stunden ab.

  • Implementieren Sie die Wiederholungslogik — Verwenden Sie exponentielles Backoff für ThrottlingException (HTTP 429) -Antworten.

  • Zuordnung anzeigen — Beachten Sie bei der Anzeige von AWS Marketplace Daten auf Ihrer Plattform die Markenrichtlinien.AWS

  • API-Aufrufe minimieren — Verwenden Sie SearchListings für Übersichtsdaten und rufen Sie Detail-APIs (GetProduct,,GetOfferTerms) nur aufGetOffer, wenn ein Benutzer zu einem bestimmten Produkt navigiert.

Anmerkung

Die Discovery-API unterstützt alle Produkttypen AWS Marketplace, einschließlich SaaS, KI-Agenten und -Tools, AMI, Container und Modelle für maschinelles Lernen. Ihre Benutzeroberfläche kann die gesamte Breite des Katalogs anzeigen.