Se reestructuró la referencia de la 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.