Des nouvelles ont été ajoutées en tête de listes.
Remontez pour les voir.
Inscription à la newsletter
Implémentation de la spécification Idempotency-Key sur Apache APISIX
DEV -
11/04
La semaine dernière, j'ai écrit une analyse de la spécification IETF Idempotency-Key. Le cahier des charges vise à...
La semaine dernière, j'ai écrit une analyse de la spécification IETF Idempotency-Key. La spécification vise à éviter les demandes en double. En bref, l'idée est que le client envoie une clé unique avec la requête :
Si le serveur ne connaît pas la clé, il procède comme d'habitude puis stocke la réponse
Si le serveur connaît la clé, il court-circuite tout traitement ultérieur et renvoie immédiatement la réponse stockée.
Cet article montre comment l'implémenter avec Apache APISIX.
Aperçu
Avant de commencer le codage, nous devons définir quelques éléments. Apache APISIX propose une architecture basée sur des plugins. Par conséquent, nous coderons la logique ci-dessus dans un plugin.
Apache APISIX s'appuie sur OpenResty, qui s'appuie sur nginx. Chaque composant définit des phases, qui se répartissent plus ou moins entre les composants. Pour plus d'informations sur les phases, veuillez consulter cet article précédent.
Finalement, nous déciderons d'une priorité. La priorité définit l'ordre dans lequel APISIX exécute les plugins au sein d'une phase. j'ai décidé1500, car tous les plugins d'authentification ont une priorité dans le2000et plus de plage, mais je souhaite renvoyer la réponse mise en cache dès que possible.
La spécification nous oblige à stocker des données. APISIX propose de nombreuses abstractions, mais le stockage n'en fait pas partie. Nous avons besoin d'un accès via la clé d'idempotence pour qu'elle ressemble à un magasin clé-valeur.
J'ai arbitrairement choisi Redis, car il est assez répandu et le client fait déjà partie de la distribution APISIX. Notez que Redis simple n'offre pas de stockage JSON ; par conséquent, j'utilise lepile redisImage Docker.
Entrer en mode plein écran Quitter le mode plein écran
Configurer APISIX pour la configuration ... [Courte citation de 8% de l'article original]
Loading...
🍪
Le modèle économique de notre site repose sur l'affichage de publicités personnalisées basées sur l'utilisation de cookies publicitaires. En continuant votre visite sur notre site, vous consentez à l'utilisation de ces cookies.
Politique de confidentialité