Protobuf , GraphQL, et Webhook

Un exemple imaginaire pour bien se représenter les différences

a marqué ce sujet comme résolu.

Salut, je m' intéresse en ce moment au réseau et j’ai l’impression de tirer sur une bobine qui n’en finit pas. Pourriez vous donner un exemple imaginaire de service qui utiliserait conjointement Protobuf , GraphQL, et Webhook ? J’ai compris que Protobuf et GraphQL étaient des mini langages, que Protobuf est intégré au gRPC et permet l’envoi de binaire, que le webhook était lié à la méthode POST, et que le GraphQL permetait de slicer du JSON. voilà…

Bonjour,

  • Protobuf est un format de sérialisation de données (considère qu’il permet d’encoder n’importe quoi, comme JSON ou XML). Contrairement à JSON, le format n’est pas libre : pour faire du Protobuf, tu décris d’abord la structure de tes données (messages contenant des chaînes, nombres, booléens, octets ou d’autre messages) en utilisant un langage texte. Le langage texte est ensuite compilé vers du code de sérialisation/désérialisation dans le langage de ton choix (il y a des implémentations pour à peu près tous les langages). Ce code de sérialisation/désérialisation produit ensuite des messages sous formes binaires. Protobuf a été créé au début des années 2000 par Google (son plus gros utilisateur) qui voulait se passer de XML, et son but principal est la performance.

  • GraphQL est un format texte qui te permet, très grossièrement, de présenter l’équivalent d’un message JSON avec que les clefs (sans les valeurs) et éventuellement quelques filtres, et d’obtenir un message JSON construit en retour. D’un autre côté, la structure JSON de base qui peut être retournée par le serveur et lue par le client est définie avec un schéma texte muni de types. Il a été créé par Facebook qui voulait un moyen standard de retourner des choses par ses API et qui est son principal utilisateur.

  • Un webhook est simplement un endpoint HTTP fait pour recevoir des informations de la part d’applications externes, le plus souvent avec une requête POST munie d’un jeton d’authentification statique.

Pourriez vous donner un exemple imaginaire de service qui utiliserait conjointement Protobuf , GraphQL, et Webhook ?

Je suis Slack.

Je veux faire communiquer mon client bureau avec mon serveur mais je veux gagner du temps de sérialisation et de la bande passante, ou alors l’aspect déstructuré et dynamiquement typé de JSON ne me plaît pas. Je vais faire communiquer mon client bureau et mon serveur avec Protobuf.

Je veux ouvrir une API qui permet aux développeurs externes qui permet de requêter des profils avec un maximum de données de retour possibles, en filtrant éventuellement certaines données façon LDAP, et donner une possibilité d’alléger les réponses. Je suis dans une réalité alternative où Slack a été racheté par Facebook, plutôt que de faire du REST avec de l’OAuth comme tout le monde, je vais faire du GraphQL.

Je veux fournir une API qui permette aux développeurs externes d’être notifié quand un message important tombe sur un canal, par exemple si un filtre à mots-clefs prévenant quand le cours du sneaker a chuté s’est déclenché. Les développeurs externes pourront fournir une URL correspondant à un endpoint sur leur serveur, qui recevra une notification POST/JSON quand le filtre se sera mis en marche : ce sera un webhook sortant.

Je veux fournir une API qui permette aux développeurs de faire un bot qui postera occasionnellement un message quelque part. Les développeurs externes pourront envoyer à une URL présente sur mes serveurs contenant le message que leur souhaite envoyer, cela en envoyant une requête POST/JSON : ce sera un webhook entrant.

Bonne journée,

Bonjour,

  • Protobuf est un format de sérialisation de données […]. Contrairement à JSON, le format n’est pas libre
r0anne

On dit qu’il est structuré. Voilà, c’est tout pour moi.

Au sujet des Webhook, on a un exemple de tutoriel, avec la création d’un bot Discord.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte