Meilleures pratiques en matière de données d'API de tiers sur le commerce électronique

StackOverflow https://stackoverflow.com/questions/1425629

  •  07-07-2019
  •  | 
  •  

Question

Quelle serait la meilleure pratique pour la situation suivante. J'ai un magasin de commerce électronique qui réduit les niveaux de stock d'un distributeur. Le site doit-il, à chaque fois qu'un utilisateur charge une page de détail de produit, utiliser l'API tierce pour les données les plus récentes? Ou alors, le site doit-il utiliser des API tierces, puis stocker ces données pendant un certain temps dans son propre système et les mettre à jour périodiquement?

Pour moi, il semble évident qu'il devrait être mis à jour à chaque fois que la page de détail du produit est chargée, mais qu'en est-il des magasins de commerce électronique à fort trafic? Des solutions complètement différentes sont-elles utilisées pour ce cas?

Était-ce utile?

La solution

Dans ce cas, je mettrais certainement en cache les résultats du site du distributeur pendant un certain temps, plutôt que de les frapper à chaque fois que vous recevez une demande. Cependant, je ne voudrais pas simplement utiliser un délai d'expiration général de 5 ou 30 minutes pour toutes les entrées en mémoire cache. Au lieu de cela, j'utiliserais des heuristiques. Si possible, par exemple si votre application est écrite dans un langage tel que Python, vous pouvez associer un script simple à chaque produit implémentant le délai d’expiration.

Ainsi, s'il s'agit d'un élément demandé rarement ou dont le stock est important, vous pouvez le mettre en mémoire cache plus longtemps.

if product.popularityrating > 8 or product.lastqtyinstock < 20:
   cache.expire(productnum)
distributor.checkstock(productnum)

Cela vous donne une flexibilité à laquelle vous pouvez faire appel si vous en avez besoin. Au départ, vous pouvez définir toutes les règles comme suit:

 cache.expireover("3m",productnum)
 distributor.checkstock(productnum)

En réalité, le script n'inclurait probablement pas l'appel à la fonction checkstock car il figurerait dans l'application principale, mais il est inclus ici pour le contexte. Si Python semble trop lourd à inclure uniquement pour cette petite flexibilité, jetez un œil à TCL, spécialement conçu pour ce type de travail. Les deux peuvent être facilement intégrés aux applications C, C ++, C # et Java.

Autres conseils

En fait, il existe une autre solution. Votre distributeur conserve le catalogue de produits sur ses serveurs et vous en donne l'accès via Interface de catalogue ouverte . Lorsqu'un utilisateur souhaite passer une commande, il est redirigé sur place vers le catalogue du distributeur, choisit les articles puis transfère la sélection vers votre boutique.

Il est largement utilisé dans la branche SRM (Supplier Relationship Management).

Cela dépend de nombreux facteurs: le trafic sur votre site, la fréquence à laquelle les niveaux d'inventaire changent, l'impact commercial de l'affichage de données obsolètes, la fréquence à laquelle les fournisseurs vous permettent d'appeler leur API, le contrat de niveau de service de leur API en termes de disponibilité et de performance. , etc.

Une fois que vous avez ces réponses, il y a bien sûr beaucoup de possibilités ici. Par exemple, pour un site à faible trafic où il est important d'obtenir le droit d'inventaire, vous pouvez appeler l'API tierce à chaque appel, mais revenir à un comportement alternatif (tel que l'utilisation de données en cache) si l'API ne répond pas. dans un certain délai.

Parfois, des API bien conçues incluent des indications sur la période de validité des données. Par exemple, certaines API REST-over-HTTP prennent en charge divers en-têtes de contrôle de cache HTTP pouvant être utilisés pour spécifier une période de validité ou pour extraire des données uniquement si elles ont été modifiées depuis la dernière demande.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top