---
title: "Détails catalogue & géo (JSON:API « 360° »)"
description: "Ces endpoints exposent le détail d'une ressource unique des domaines adossés à Meilisearch (lecture seule, aucune table MySQL côté Hydrogen). Tous suivent…"
---

Ces endpoints exposent le **détail d'une ressource unique** des domaines adossés à **Meilisearch** (lecture seule, aucune table MySQL côté Hydrogen). Tous suivent la [convention JSON:API 1.1](#convention-de-format--détails-360-en-jsonapi) : **strict superset** du `GET /api/<domaine>/{id}` public — même `type`/`id`/`attributes` (via le `*HitFormatter` partagé) + les mêmes enrichissements (descriptions Markdown, blocs hiérarchiques…) que le public, **plus** tous les champs bruts de l'index Meili rétro-remplis dans `data.attributes` via le trait [`MergesRawHit`](../src/Http/Action/Admin/Support/MergesRawHit.php) (une clé déjà émise par le formatter n'est jamais écrasée).

Robustesse commune : id malformé → `404` (erreur JSON:API) ; index Meili injoignable → `503` ; aucun hit → `404`.

| Endpoint | `type` | `id` (path & `data.id`) | Enrichissements (comme le public) |
|---|---|---|---|
| `GET /admin/establishments/{id}` | `establishments` | 32 hex minuscules | `images` + `description` (assets statiques) |
| `GET /admin/offers/{id}` | `offers` | 32 hex minuscules | — (champs bruts index uniquement) |
| `GET /admin/countries/{code}` | `countries` | code ISO **minuscule** (Meili stocke en MAJ) | `description` (Markdown) |
| `GET /admin/regions/{code}` | `regions` | ISO 3166-2 minuscule | `description` (Markdown) + bloc `country` |
| `GET /admin/subregions/{code}` | `subregions` | ISO 3166-2 minuscule | `description` (Markdown) + blocs `country` + `region` |
| `GET /admin/cities/{id}` | `cities` | UUID **dashé** | blocs `country` + `region` + `subregion` |

**Exemple**

```bash
curl -s -H "Authorization: Bearer $ADMIN_API_TOKEN" \
  -H "Accept: application/vnd.api+json" \
  "http://hydrogen.dev.com/admin/countries/fr"
```

```json
{
  "jsonapi": { "version": "1.1" },
  "data": {
    "type": "countries",
    "id": "fr",
    "attributes": {
      "name": "France", "slug": "france", "continent": "Europe",
      "description": "# France\n…",
      "…": "+ tous les champs bruts de l'index Meili countries (rétro-remplis)"
    }
  }
}
```

---
