Pushpin - ajouter du Push à mon API
(pushpin.org)- Un serveur proxy qui maintient la connexion client et s’intègre facilement avec n’importe quel langage/framework
- Permet de créer facilement des endpoints d’API en temps réel
- Prend en charge le streaming HTTP / long polling et les WebSockets
- Peut être utilisé de manière totalement transparente pour le client
- Les endpoints en temps réel peuvent aussi être gérés avec des outils de gestion d’API comme KONG et 3SCALE
- Écrit en Rust & C++
5 commentaires
Je l’ai utilisé pendant deux ou trois mois.
J’y ai vu un gros avantage dans des environnements comme PHP, où le traitement en temps réel est difficile. Rien que le fait de ne pas avoir à développer un serveur temps réel séparé est déjà assez séduisant.
En particulier, dans un projet PHP classique, pour authentifier un endpoint temps réel, il suffit de transmettre l’en-tête Grip uniquement aux utilisateurs autorisés, sans échange de données complexe (et pénible), ce qui m’a permis de me concentrer un peu plus sur la logique métier.
Contrairement à PHP, dans d’autres langages où garder une requête ouverte en permanence ne pose pas vraiment de problème, je n’y ai pas vu un avantage majeur par rapport au fait d’ouvrir et d’utiliser directement un endpoint temps réel...
Du point de vue de la procédure d’authentification et du scaling, je pense que c’est en théorie une solution avec pas mal d’avantages.
... Mais si j’ajoute la précision « en théorie », c’est parce que la solution elle-même est assez instable. En particulier, le serveur proxy — sans exagérer, la partie la plus importante de cette solution — est assez instable.
Je n’ai pas cherché les bugs en détail, mais avec ma configuration, dès qu’une requête POST arrivait, toutes les requêtes suivantes mouraient pendant un moment.
J’ai contourné le problème (???) en ajoutant un autre serveur proxy pour que seules les requêtes GET, et en particulier celles dont l’en-tête Accept est SSE, soient dirigées vers pushpin, mais pour l’instant cela me paraît encore prématuré. Uniquement pour des projets jouets...
Bref, il y a encore beaucoup de problèmes pour l’utiliser en production, mais on peut au moins dire que l’idée est plutôt bonne.
Waouh, merci pour ce très bon retour.
Euh… c’est à la fois magique, mais je n’arrive toujours pas à répondre à la question : à quoi ça sert, concrètement, d’ajouter ça à une API web classique existante… snif
Je me demandais quoi faire face à l’augmentation progressive des requêtes API, mais essayer un programme comme celui-ci pourrait aussi être une bonne option. +_+
Le nom me disait quelque chose : c'est le même que PushPin - outil de collaboration en temps réel local-first.
Mais c'est une solution totalement différente.
Dans Thoughtworks Technology Radar, Volume 29, elle a aussi été retenue comme une technologie à tester dans la catégorie des frameworks.