Pilotariak

GraphQL · Open Source · Fédération

Frontis

L'API GraphQL de Pilotariak — cinq domaines de données, un seul point d'entrée. Conçue pour les développeurs qui veulent accéder aux données de la pelote basque.

Vue d'ensemble

Une API unifiée pour toutes les données

Frontis fédère cinq services indépendants en un seul point d'entrée GraphQL. Chaque domaine dispose de son propre schéma et de son propre cycle de déploiement.

echo

Healthcheck et version de l'API.

categories

Catégories de compétition — propriétaire de l'entité Category.

clubs

Clubs de pelote basque — propriétaire de l'entité Club.

competitions

Championnats et tournois — propriétaire de l'entité Competition.

results

Résultats de matchs — propriétaire de l'entité Result.

specialties

Spécialités de pelote — propriétaire de l'entité Specialty.

Comment ça marche

Simple, ouvert, extensible

Chaque service gère son propre domaine. La passerelle compose automatiquement les schémas et résout les requêtes cross-domaine.

01

Schéma fédéré

Chaque service expose son propre schéma GraphQL et déclare les entités qu'il possède. La passerelle compose un supergraphe cohérent sans configuration manuelle.

02

Un seul point d'entrée

Les clients envoient leurs requêtes à un seul endpoint /graphql. La passerelle résout les champs à travers les services de manière transparente.

03

Multi-ligue

Une seule instance de l'API dessert toutes les ligues. Un header de requête sélectionne le jeu de données actif — aucun déploiement par ligue.

04

Sécurité des requêtes

Des limites sur la profondeur, la complexité et la taille des requêtes protègent l'API contre les opérations coûteuses — configurables par environnement.

Fédération GraphQL

Entities & @key

Chaque service déclare les types qu'il possède. La passerelle résout automatiquement les champs qui traversent plusieurs services.

Entités fédérées

Entité Service Clé
Category categories id
Club clubs id
Competition competitions id
Result results id
Specialty specialties id

Résolution cross-service

# Requête client :
{ results { clubA { name } } }

# La passerelle :
# 1. Récupère les Result avec clubA { id }
#    → service results
# 2. Envoie _entities([{ __typename:"Club", id }])
#    → service clubs
# 3. Fusionne { name } dans la réponse

Open Source · Apache 2.0

Construisez-le avec nous

Frontis est open source et accueille toutes les contributions — nouveaux sous-graphes, corrections de bugs ou amélioration de la documentation.

Forker & lancer en local

Clonez le dépôt, installez les dépendances et lancez le gateway Apollo localement.

Ouvrir une issue

Un bug ou une idée ? Les issues GitHub sont le bon endroit pour en discuter et suivre l'avancement.

Soumettre une pull request

Toutes les pull requests sont examinées. Consultez le guide de contribution dans le dépôt pour les conventions.