feat: updated integration page with missing API routes

This commit is contained in:
Florian Sylvain committed 2026-10-26 02:18:35 +01:00
1 parent 25d9c30b8a
commit 7c0ee21906
25 files changed
+2402 -350

No files matched your search

+94 -4
View File
@@ -950,8 +950,8 @@ export const messages = {
'API reference': 'Référence de l’API',
'Everything a developer needs to build on RenewCMS.':
'Tout ce dont une personne développeuse a besoin pour construire sur RenewCMS.',
'RenewCMS is headless: it stores your content and your own code displays it. There are two ways in. Public read-only access lets a website read online articles. API keys let a script or service manage articles, media and users without the back-office.':
'RenewCMS est headless : il stocke votre contenu et votre propre code l’affiche. Il y a deux façons d’y accéder. L’accès public en lecture seule permet à un site de lire les articles publiés. Les clés d’API permettent à un script ou à un service de gérer les articles, les médias et les utilisateurs sans le back-office.',
'RenewCMS is headless: it stores your content and your own code displays it. There are two ways in. Public read-only access lets a website read online articles. API keys let a script or service manage articles, media and users, and manage content types and entries, without the back-office.':
'RenewCMS est headless : il stocke votre contenu et votre propre code l’affiche. Il y a deux façons d’y accéder. L’accès public en lecture seule permet à un site de lire les articles publiés. Les clés d’API permettent à un script ou à un service de gérer les articles, les médias et les utilisateurs, ainsi que les types de contenu et les entrées, sans le back-office.',
'No key': 'Sans clé',
'No key needed. Two read-only routes, and only online articles are returned.':
'Aucune clé nécessaire. Deux routes en lecture seule, et seuls les articles publiés sont renvoyés.',
@@ -961,8 +961,8 @@ export const messages = {
'Envoyez `Authorization: Bearer rcms_…`. Les requêtes agissent comme la personne qui a créé la clé, avec son rôle (propriétaire ou administrateur). Une clé n’a jamais plus de droits que son créateur.',
'Keys start with `rcms_` and are shown in full once, when you create them.':
'Les clés commencent par `rcms_` et ne sont affichées en entier qu’une fois, à leur création.',
'A key can\'t create, list or revoke API keys, verify or cancel a registration, or call anything under `/v1/system`. Those routes answer 403 "This action needs a real session." An invalid, unknown, expired or revoked key answers 401, even on public routes, and so does a key whose user was deleted or unverified.':
'Une clé ne peut pas créer, lister ni révoquer de clés d’API, vérifier ou annuler une inscription, ni appeler quoi que ce soit sous `/v1/system`. Ces routes répondent 403 « This action needs a real session. » Une clé invalide, inconnue, expirée ou révoquée reçoit 401, même sur les routes publiques, tout comme une clé dont l’utilisateur a été supprimé ou n’est pas vérifié.',
'A key can\'t create, list or revoke API keys, verify or cancel a registration, or call anything under `/v1/system`. Those routes answer 403 "This action needs a real session." An invalid, unknown, expired or revoked key answers 401, even on public routes, and so does a key whose user was deleted or unverified. Owner and admin routes answer 403 to a key whose creator is neither.':
'Une clé ne peut pas créer, lister ni révoquer de clés d’API, vérifier ou annuler une inscription, ni appeler quoi que ce soit sous `/v1/system`. Ces routes répondent 403 « This action needs a real session. » Une clé invalide, inconnue, expirée ou révoquée reçoit 401, même sur les routes publiques, tout comme une clé dont l’utilisateur a été supprimé ou n’est pas vérifié. Les routes propriétaire et administrateur répondent 403 à une clé dont le créateur n’est ni l’un ni l’autre.',
'Each key can make 120 requests per minute. Beyond that the API answers 429 with a `Retry-After` header.':
'Chaque clé peut faire 120 requêtes par minute. Au-delà, l’API répond 429 avec un en-tête `Retry-After`.',
'Every error is a plain-text body with a single sentence. The status code is in the HTTP status line, and the Content-Type is text/plain.':
@@ -2741,6 +2741,96 @@ export const messages = {
'Status codes and messages': 'Codes d’état et messages',
'Images, CORS and ?format=': 'Images, CORS et ?format=',
'{0} routes, not available to API keys': '{0} routes, indisponibles avec une clé API',
'Define your own kind of content, like events or recipes. An owner or admin creates a type made of 1 to 50 ordered fields; the type then has its own entry routes.':
'Définissez votre propre type de contenu, comme des événements ou des recettes. Un propriétaire ou un administrateur crée un type composé de 1 à 50 champs ordonnés ; le type a alors ses propres routes d’entrées.',
'A content type has a `key` (2 to 40 lowercase letters, digits or hyphens, chosen at creation and never changed) and fields. Each field has a `key` (letters, digits and underscores, starting with a letter), a `label`, a `type` and rules.':
'Un type de contenu a une `key` (2 à 40 lettres minuscules, chiffres ou tirets, choisie à la création et jamais modifiée) et des champs. Chaque champ a une `key` (lettres, chiffres et tirets bas, commençant par une lettre), un `label`, un `type` et des règles.',
'Field object': 'Objet champ',
string: 'chaîne',
'min/max = length in characters. Can be unique.':
'min/max = longueur en caractères. Peut être unique.',
'string (Markdown)': 'chaîne (Markdown)',
'min/max = length. Cannot be unique.': 'min/max = longueur. Ne peut pas être unique.',
number: 'nombre',
'min/max = value. Can be unique.': 'min/max = valeur. Peut être unique.',
'true/false': 'true/false',
'No min/max. Cannot be unique.': 'Pas de min/max. Ne peut pas être unique.',
'string "YYYY-MM-DD"': 'chaîne « AAAA-MM-JJ »',
'min/max = earliest/latest date. Can be unique.':
'min/max = date la plus ancienne/la plus récente. Peut être unique.',
'one string from `options` (1 to 50 choices)': 'une chaîne parmi `options` (1 à 50 choix)',
'Can be unique.': 'Peut être unique.',
'the numeric id of an uploaded image (see Media)':
'l’identifiant numérique d’une image envoyée (voir Médias)',
'ids of entries of another content type; `relation: { content_type, kind }`, kind one_to_one | one_to_many | many_to_many':
'identifiants d’entrées d’un autre type de contenu ; `relation: { content_type, kind }`, kind valant one_to_one | one_to_many | many_to_many',
'List all custom content types.': 'Liste tous les types de contenu personnalisés.',
'Get one content type with its fields.': 'Renvoie un type de contenu avec ses champs.',
'Create a content type.': 'Crée un type de contenu.',
"2 to 40 characters. Lowercase letters, digits and hyphens. Can't be changed later.":
'2 à 40 caractères. Lettres minuscules, chiffres et tirets. Ne peut pas être modifiée ensuite.',
'Up to 100 characters.': 'Jusqu’à 100 caractères.',
'Optional.': 'Facultatif.',
'1 to 50 fields, in order. See Field types.':
'1 à 50 champs, dans l’ordre. Voir Types de champ.',
"Replace the name, icon and fields of a type. The key never changes. Saved field keys and types can't change.":
'Remplace le nom, l’icône et les champs d’un type. La clé ne change jamais. Les clés et types des champs enregistrés ne peuvent pas changer.',
"Some existing entries don't fit the new fields. Nothing was changed.":
'Certaines entrées existantes ne conviennent pas aux nouveaux champs. Rien n’a été modifié.',
'Delete a content type. Only possible when it has no entries and no relation field points at it.':
'Supprime un type de contenu. Possible seulement s’il n’a aucune entrée et si aucun champ de relation ne pointe vers lui.',
'Read and write the content of a custom type. Any verified user can write entries.':
'Lisez et écrivez le contenu d’un type personnalisé. Tout utilisateur vérifié peut écrire des entrées.',
"An entry's `data` is an object keyed by field key, validated against the type. Responses add `media` (the resolved images for media fields, keyed by field key: id, filename, width, height, size and thumbnail_url, or { id, missing: true } if the image was deleted) and `relations` (the resolved first field of related entries).":
'Les `data` d’une entrée forment un objet indexé par clé de champ, validé selon le type. Les réponses ajoutent `media` (les images résolues des champs média, indexées par clé de champ : id, filename, width, height, size et thumbnail_url, ou { id, missing: true } si l’image a été supprimée) et `relations` (le premier champ résolu des entrées liées).',
'List entries of a type, one page at a time. The response is an object with items, total, page and size, not a bare array like articles.':
'Liste les entrées d’un type, une page à la fois. La réponse est un objet avec items, total, page et size, et non un tableau simple comme pour les articles.',
'id, created_at or updated_at, then :asc or :desc. For example updated_at:desc.':
'id, created_at ou updated_at, puis :asc ou :desc. Par exemple updated_at:desc.',
'Create an entry.': 'Crée une entrée.',
"Keys are the type's field keys. For events: title, starts_on, capacity, online, category and cover.":
'Les clés sont les clés de champ du type. Pour les événements : title, starts_on, capacity, online, category et cover.',
'Get one entry.': 'Renvoie une entrée.',
'Replace the data of an entry.': 'Remplace les données d’une entrée.',
'Delete an entry.': 'Supprime une entrée.',
'Built-in types': 'Types intégrés',
'The fields of Articles, Authors, Sites, Media and Users, in the same shape as the fields of a content type.':
'Les champs des articles, auteurs, sites, médias et utilisateurs, dans la même forme que les champs d’un type de contenu.',
'Built-in types are read-only: they cannot be changed through the API.':
'Les types intégrés sont en lecture seule : ils ne peuvent pas être modifiés par l’API.',
'List the built-in types (Articles, Authors, Sites, Media, Users) and their fields. Keys are article, author, site, media and user.':
'Liste les types intégrés (articles, auteurs, sites, médias, utilisateurs) et leurs champs. Les clés sont article, author, site, media et user.',
'Get one built-in type. Keys are article, author, site, media and user.':
'Renvoie un type intégré. Les clés sont article, author, site, media et user.',
'Merge every group of identical copies. Send the preview fingerprint to refuse a changed library. failed_groups counts groups that could not be purged; the others were still purged.':
'Fusionne chaque groupe de copies identiques. Envoyez l’empreinte de l’aperçu pour refuser une bibliothèque modifiée. failed_groups compte les groupes qui n’ont pas pu être purgés ; les autres l’ont été.',
'Sites and authors': 'Sites et auteurs',
'Read the sites and authors your content belongs to. Creating and changing them needs a session.':
'Lisez les sites et les auteurs auxquels votre contenu appartient. Les créer et les modifier demande une session.',
'Sites and authors writes': 'Écritures des sites et des auteurs',
'List variants': 'Lister les variantes',
'Create a variant': 'Créer une variante',
'Replace a variant': 'Remplacer une variante',
'Update a variant': 'Mettre à jour une variante',
'Delete a variant': 'Supprimer une variante',
'Purge the cache of a variant': 'Purger le cache d’une variante',
'Image cache status': 'État du cache d’images',
'Purge the image cache': 'Purger le cache d’images',
'List the variants of an image': 'Lister les variantes d’une image',
'Add variants to an image': 'Ajouter des variantes à une image',
'Generate one variant of an image': 'Générer une variante d’une image',
'Delete one variant of an image': 'Supprimer une variante d’une image',
'Text in code style is the literal body of the response, not a sentence.':
'Le texte en style code est le corps littéral de la réponse, pas une phrase.',
'On an entry, `invalid_entry: <reason>` is a 409 only when a unique field clashes. Any other field error is a 422.':
'Sur une entrée, `invalid_entry: <reason>` est un 409 seulement quand un champ unique entre en conflit. Toute autre erreur de champ est un 422.',
Unprocessable: 'Non traitable',
'An entry doesn\'t fit its content type. The body is `invalid_entry`, then ": " and the reason, for example `invalid_entry: capacity must be at most 5000`.':
'Une entrée ne convient pas à son type de contenu. Le corps est `invalid_entry`, puis « : » et la raison, par exemple `invalid_entry: capacity must be at most 5000`.',
'Field types': 'Types de champ',
'Value in an entry': 'Valeur dans une entrée',
'1 or higher. Default 1.': '1 ou plus. 1 par défaut.',
'One of 5, 25, 50 or 100. Default 25.': '5, 25, 50 ou 100. 25 par défaut.',
} as const
export type MessageKey = keyof typeof messages