Se reestructuró la referencia de API de AWS Marketplace. Para obtener más información sobre las operaciones de API compatibles, consulte la referencia de API de AWS Marketplace.
Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Cree interfaces con datos de catálogo
Puede usar la API AWS Marketplace Discovery para acceder al catálogo mediante programación y mostrar información sobre productos y precios en sus propias plataformas. En esta sección, se describe cómo crear interfaces personalizadas, como escaparates, portales de socios y experiencias de ventas integradas para que sus clientes puedan navegar por ellas, mediante la API Discovery.
Información general de la arquitectura
Una integración típica sigue este patrón:
Experiencia de navegación: llama
SearchListingspara recuperar los resúmenes de los anuncios basados en el texto y los filtros de búsqueda, ySearchFacetspara rellenar las opciones de navegación y filtrado por categorías con los recuentos.Páginas de detalles del producto: llama
GetListingo consultaGetProductpara ver todos los detalles del producto, contenido multimedia y reseñas.Visualización de precios: llame
ListPurchaseOptionsy muestreGetOfferTermslas opciones de precios.GetOffer
Cree una experiencia de navegación
Úselo SearchListings para recuperar resúmenes de anuncios basados en el texto y los filtros de búsqueda, y SearchFacets para crear una navegación dinámica por filtros. Las facetas incluyen las categorías, los tipos de gestión logística, los modelos de precios, las unidades de precios, los editores y el estado de la implementación. El valor de cada faceta incluye un recuento de los anuncios coincidentes, que puedes mostrar junto con las opciones 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']}")
Crea páginas de detalles del producto
Utilice GetListing o GetProduct para mostrar todos los detalles del producto, los contenidos multimedia y las reseñas. GetListingÚsala cuando necesites un resumen del anuncio, que incluye distintivos, categorías y resúmenes de precios. Úsalo GetProduct cuando necesites información detallada sobre el producto, como descripciones, aspectos destacados y contenido multimedia. Llame ListFulfillmentOptions para obtener información sobre las opciones de implementación de un producto 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 }
Mostrar información de precios
Úselo ListPurchaseOptions para buscar las ofertas disponibles de un producto GetOffer y, a continuación, GetOfferTerms para recuperar los precios detallados. Muestra los modelos de precios, las tablas de tarifas y los detalles de los plazos para ayudar a tus clientes a evaluar las opciones.
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ácticas recomendadas
Respuestas en caché: los datos de productos y precios cambian con poca frecuencia. Almacene en caché las respuestas de la API durante 15 a 60 minutos para reducir las llamadas a la API y mejorar los tiempos de carga de las páginas.
Gestionar la paginación: se utiliza
nextTokenpara recuperar todos los resultados de las operaciones paginadas. Los tokens de paginación caducan después de 24 horas.Implemente la lógica de reintento: utilice un retroceso exponencial para las respuestas
ThrottlingException(HTTP 429).Mostrar atribución: cuando muestres AWS Marketplace datos en tu plataforma, sigue las directrices sobre marcas comerciales.AWS
Minimice las llamadas a las API: utilícelas
SearchListingspara obtener datos resumidos y solo llame a las API detalladas (GetProductGetOffer,,GetOfferTerms) cuando un usuario navegue hasta un producto específico.
nota
La API Discovery es compatible con todos los tipos de productos AWS Marketplace, incluidos SaaS, agentes y herramientas de IA, AMI, contenedores y modelos de aprendizaje automático. Su interfaz puede mostrar todo el catálogo.