12 dépôts
The practical implementation of server-side GraphQL interfaces to provide data to clients.
Distinct from GraphQL API Design: Distinct from GraphQL API Design by focusing on the technical implementation and exposure rather than the architectural design.
Explore 12 awesome GitHub repositories matching web development · GraphQL API Implementations. Refine with filters or upvote what's useful.
express-graphql est une implémentation de serveur API GraphQL et un middleware HTTP qui connecte un schéma GraphQL à un serveur HTTP. Il fournit un analyseur de requêtes pour extraire les requêtes et variables depuis divers types de contenu, ainsi qu'un fournisseur de contexte pour injecter les données de requête HTTP et l'état de session dans les fonctions de résolution (resolvers). La bibliothèque inclut un IDE interactif basé sur le navigateur qui détecte les requêtes GET pour servir une interface HTML permettant de tester les requêtes et d'inspecter les réponses. Elle prend également en charge un pipeline d'exécution personnalisé, permettant de remplacer les fonctions par défaut d'analyse, de validation, d'exécution et de formatage d'erreurs. Le projet couvre l'intégration d'API via middleware et l'analyse des paramètres de requête, ainsi qu'une architecture pour la validation de requêtes basée sur l'AST et l'exécution basée sur le schéma. Il fournit en outre des mécanismes pour l'extension des métadonnées de réponse et l'application de règles de validation pour restreindre des champs ou opérations spécifiques.
Implements server-side GraphQL interfaces to allow clients to request specific data based on a schema.
GraphQL.NET est un framework côté serveur pour construire et exécuter des API GraphQL au sein d'applications C#. Il fournit une boîte à outils complète pour la construction de schémas, un moteur fédéré pour les graphes de données distribués et un gestionnaire d'abonnements pour gérer les flux de données en temps réel. Le projet se distingue par un constructeur de schéma flexible qui prend en charge à la fois les définitions programmatiques code-first et les approches déclaratives schema-first utilisant le langage de définition de schéma standard. Il inclut un moteur de fédération dédié pour diviser les graphes de données en sous-graphes et les composer en une passerelle unifiée, ainsi qu'une implémentation de chargeur de données (data loader) spécifiquement conçue pour résoudre le problème de requête N+1 via le traitement par lots et la mise en cache. Le framework couvre un large éventail de capacités opérationnelles, notamment l'intégration de l'injection de dépendances pour la gestion du cycle de vie des services, des pipelines de middleware pour l'interception de la résolution de champs, et un pipeline d'exécution optimisé avec des types de valeur pour réduire les allocations mémoire. Il fournit également des outils pour l'analyse de la complexité des requêtes, la mise en cache des documents et le contrôle d'accès basé sur les rôles pour sécuriser les endpoints de l'API. La prise en charge de la compilation de schéma en avance de phase (ahead-of-time) permet au framework de s'exécuter dans des environnements qui interdisent la génération de code dynamique.
Provides a comprehensive toolkit for implementing server-side GraphQL interfaces using both code-first and schema-first approaches.
Juniper est une bibliothèque de serveur GraphQL et un moteur de schéma pour Rust. Il fournit une boîte à outils pour construire des API typées en toute sécurité en mappant les structures de données natives Rust vers des objets, entrées et scalaires GraphQL. Le projet fonctionne comme un moteur d'exécution qui peut traiter les requêtes et les mutations soit via un serveur réseau, soit comme un moteur sans tête pour une exécution locale. La bibliothèque est agnostique vis-à-vis de l'exécution, ce qui lui permet de faire le pont entre le traitement GraphQL et divers frameworks web Rust asynchrones. Elle inclut un framework d'abonnement qui gère les connexions WebSocket persistantes pour pousser des mises à jour de données en temps réel aux clients. Le moteur couvre une large surface de capacité, notamment l'exportation de langage de schéma, la gestion du contexte d'état partagé pour l'injection de dépendances et une approche code-first pour définir les résolveurs. Il prend également en charge l'intégration de types de données spécialisés tels que les décimaux et les horodatages pour éviter les conversions de données manuelles.
Provides a full toolkit for implementing type-safe GraphQL APIs by mapping native Rust structures to a schema.
Ce projet est une bibliothèque de référence et une collection de modèles de code d'exemple pour déployer une infrastructure cloud en utilisant l'AWS CDK. Il fournit un ensemble de projets exemples qui démontrent comment définir des ressources de calcul, de stockage et de réseau en utilisant des langages de programmation à usage général. La bibliothèque inclut des implémentations de référence pour divers modèles architecturaux, notamment des backends serverless avec des API GraphQL et WebSocket, l'orchestration de conteneurs avec des équilibreurs de charge et l'auto-scaling, et l'hébergement de sites web statiques globaux via des réseaux de diffusion de contenu (CDN). Elle fournit également des conceptions pour des topologies réseau isolées et l'automatisation de workflows pilotés par événements en utilisant des machines à états. Les capacités couvertes s'étendent à la gestion de bases de données relationnelles, à la configuration de serveurs de transfert de fichiers sécurisés et à l'implémentation d'une autorisation fine. De plus, les exemples démontrent des techniques de personnalisation d'infrastructure, telles que la surcharge des propriétés de ressources et l'intégration de ressources personnalisées.
Shows how to implement server-side GraphQL interfaces with resolvers for database operations.
GraphQL-Ruby est une bibliothèque Ruby pour construire des API GraphQL avec un schéma fortement typé et un moteur d'exécution de requêtes dédié. Elle fournit un framework complet pour mapper les objets de l'application à un système de types formel, permettant une récupération de données structurée via des résolveurs définis. Le projet se distingue par des mécanismes avancés de performance et de livraison, incluant un data loader pour le batching et le cache afin d'éviter les patterns de requêtes N+1. Il supporte la livraison de données haute performance via le streaming de réponses incrémentales, les réponses de requêtes différées et la récupération de données en parallèle utilisant des fibers. De plus, il offre un support natif pour les conventions Relay, incluant des helpers spécialisés pour les connexions et l'identification d'objets. La bibliothèque couvre une large surface de gestion d'API, incluant un contrôle d'accès granulaire, le versioning de schéma pour maintenir la rétrocompatibilité et des mises à jour en temps réel via des abonnements. Elle inclut également des outils de gestion de trafic pour protéger les ressources serveur, tels que la limitation de complexité des requêtes et le rate limiting. Le développement et l'observabilité sont supportés par des outils d'analyse AST, le traçage d'exécution et des utilitaires de test spécialisés pour la vérification du chargement par lots.
Provides a comprehensive implementation of server-side GraphQL interfaces to serve structured data to clients.
graphql-go est une bibliothèque serveur pour implémenter des serveurs GraphQL en Go. Elle fournit l'infrastructure de base pour le parsing de schéma, le mapping de résolveurs et l'exécution de requêtes. La bibliothèque inclut un moteur de souscription qui permet le streaming de données en temps réel vers les clients en utilisant le transport WebSocket. Elle dispose également d'un traceur d'exécution pour surveiller et profiler les performances des requêtes via des outils de télémétrie. Le système gère la consommation de ressources et la stabilité via un optimiseur de requêtes qui impose des restrictions de profondeur et contrôle la concurrence des résolveurs. Il prend en charge l'optimisation de la récupération de données via le pré-fetching au niveau du champ pour réduire les requêtes répétitives en base de données et utilise un mécanisme de transformation panic-to-error pour maintenir la stabilité du serveur.
Provides a flexible data layer implemented in Go to handle complex GraphQL queries and structured retrieval.
graphql-go est une bibliothèque GraphQL schema-first et une implémentation serveur pour Go. Elle fournit un moteur d'exécution de requêtes et un parseur de schéma qui convertit les chaînes de définition de schéma en structures exécutables et valide les signatures des résolveurs. La bibliothèque inclut également une implémentation de streaming pour les souscriptions GraphQL en temps réel utilisant des channels au sein des résolveurs. Le projet se distingue par l'exécution parallèle des résolveurs pour réduire la latence des requêtes et l'utilisation de la gestion mémoire buffer-pool pour réduire la surcharge du garbage collector. Elle permet la création d'instances de schéma clonables à partir d'un arbre de syntaxe partagé pour appliquer des configurations de résolveurs uniques ou des surcharges. La bibliothèque couvre de larges domaines de capacités incluant la gestion de schéma avec des définitions de scalaires personnalisées et l'export de métadonnées, et la sécurité via des limitations de profondeur et de complexité de requête. Elle fournit également des outils pour une récupération efficace des données via l'inspection des jeux de sélection pour prévenir les requêtes N+1, ainsi qu'une observabilité via le traçage d'exécution et la gestion des panics des résolveurs.
Provides a full implementation of a server-side GraphQL interface to process queries and return structured data.
backend-cheats est un guide de référence complet en ingénierie backend et une collection de cheatsheets techniques. Il sert de base de connaissances pour le développement côté serveur, le réseautage et les fondamentaux de l'informatique, livrés sous forme de site statique basé sur Markdown. Le projet fournit des manuels détaillés pour la conception d'API, couvrant spécifiquement les interfaces REST et GraphQL, ainsi que des patterns d'architecture logicielle tels que Monolithique, Microservices et MVC. Il inclut un aperçu de l'architecture de base de données comparant les paradigmes relationnels et NoSQL, ainsi qu'une référence sur la sécurité web pour identifier les vulnérabilités et gérer les variables d'environnement. La surface de référence s'étend au DevOps et à la gestion d'infrastructure, incluant l'administration système Linux et la conteneurisation avec des outils d'orchestration. Une couverture supplémentaire inclut l'architecture matérielle informatique, les fondamentaux réseau, l'optimisation des performances via la mise en cache et le profilage, et les stratégies de test logiciel. La documentation est structurée en utilisant des fichiers source Markdown qui sont convertis en pages HTML pré-rendues.
Includes technical guides on implementing GraphQL APIs using schemas and types for efficient data retrieval.
Ce projet est un boilerplate pré-configuré et un projet de démarrage pour construire des applications web serverless en utilisant React et Firebase. Il sert de modèle complet pour configurer l'environnement, le routage et l'infrastructure requis pour lancer des applications monopages. Le framework intègre une couche de données utilisant GraphQL et Relay pour coordonner les requêtes et maintenir une gestion d'état évolutive. Il inclut un kit d'interface utilisateur standardisé basé sur les principes du Material Design et implémente le découpage de code asynchrone pour réduire les charges utiles initiales. Le système couvre la gestion des identités via des intégrations Google et OAuth, ainsi que des scripts en ligne de commande automatisés pour déployer des actifs statiques et des fonctions vers l'hébergement cloud. Il fournit également une interface visuelle pour exécuter et valider des requêtes GraphQL avec vérification de syntaxe en temps réel.
Implements a server-side GraphQL interface to provide structured data to the frontend.
Graphene-Django is a GraphQL integration framework and schema mapper used to build typed APIs for Django applications. It functions as a database API layer that transforms Django model fields and relationships into a graph schema, allowing clients to request specific data in a single call. The project implements the Relay specification, providing tools for global object identification and standardized connection-based pagination to manage large datasets. It distinguishes itself by mapping database models, forms, and serializers directly into GraphQL object types and mutations. The framework
Implements a full server-side GraphQL interface to expose Django data models and logic via a typed schema.
Ce projet est un boilerplate de monorepo full stack et un template d'API GraphQL Node.js. Il fournit un projet de départ qui intègre une API GraphQL schema-first, une base de données PostgreSQL et un frontend React au sein d'un dépôt unique pour partager les types entre le backend et l'interface utilisateur. L'architecture inclut un wrapper serverless pour le déploiement cloud et la mise à l'échelle automatique. Elle implémente une couche de batching de requêtes pour optimiser la performance de la base de données en prévenant le problème de requête N+1. Le projet couvre la gestion de base de données via le versionnage de schéma basé sur les migrations et les fichiers de seed. Il inclut également des capacités pour l'intégration de l'identité utilisateur, englobant l'authentification, l'autorisation et le contrôle d'accès basé sur les permissions.
Implements a type-safe, schema-first GraphQL API layer to handle data requests between the client and server.
light-4j is a Java microservices framework designed for building scalable distributed systems. It provides a toolkit for developing cloud-native services with integrated support for service discovery, telemetry, and secure inter-service communication. The project includes a runtime OpenAPI request validator to ensure communication consistency by checking data against formal specifications. It also features an OAuth2 API security gateway for verifying identity tokens and managing credentials, alongside an event-sourcing messaging system for building command query responsibility segregation arc
Implements data-driven GraphQL APIs using generated schemas and a plugin architecture to fetch microservice information.