---
title: "Public"
description: "Page d'accueil web (Twig). Renvoie du HTML, pas du JSON. Passe par la pile de middleware web (cf. Sessions web (cookie)) — la template a accès aux globals…"
---

## `GET /`

Page d'accueil web (Twig). Renvoie du HTML, pas du JSON. Passe par la pile de middleware web (cf. [Sessions web (cookie)](#sessions-web-cookie)) — la template a accès aux globals `viewer`, `csrf_token`, `locale`.

- **Auth** : aucune
- **Action** : [HomeAction](../src/Http/Action/HomeAction.php)
- **Réponse** : `200 OK` (HTML)

---

## `GET /api/ping`

Healthcheck + identité du framework. Retourne un objet JSON simple (pas au format JSON:API — héritage du tout premier endpoint, conservé volontairement pour que les sondes de monitoring (uptime / load balancer) restent indépendantes du format métier).

C'est aussi la **seule surface publique qui expose la version d'Hydrogen** : aucun header HTTP `X-Hydrogen-Version` n'est émis sur les autres endpoints (choix sécurité — ne pas divulguer la version au monde sur chaque requête). Les ops qui ont besoin de la corréler avec un incident lisent ici.

- **Auth** : aucune
- **Action** : [PingAction](../src/Http/Action/Api/PingAction.php)
- **Réponse `200`** :

```json
{
  "status":    "ok",
  "timestamp": "2026-06-10T12:34:56+00:00",
  "version":   "0.1.0",
  "codename":  "Protium"
}
```

- **`version`** : SemVer du framework. Source : fichier `VERSION` à la racine, miroré dans `Hydrogen::VERSION`. Tant qu'on est en `0.x`, les minor bumps peuvent porter des breaking changes ; la garantie "no breaking without major" s'active à partir de `1.0.0`.
- **`codename`** : nom de release. Suit la séquence des isotopes de l'hydrogène (`Protium` → `Deuterium` → `Tritium` → …).

---
