# Frontis — API GraphQL | Pilotariak

> Frontis est la passerelle GraphQL de Pilotariak. Elle unifie cinq domaines de données en une seule API — compétitions, clubs, résultats et spécialités.

[Pilotariak](/fr/) 
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.
[Voir sur GitHub](https://github.com/Pilotariak/frontis) [Comment ça marche](#architecture) 
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.
[Voir sur GitHub](https://github.com/Pilotariak/frontis) [← Retour à l'accueil](/fr/) 
### 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.