Développeurs

Marquer un livre comme lu est une opération API.

Quand vous marquez une œuvre comme « Lue » dans votre bibliothèque, le site envoie la requête ci-dessous. Votre application peut envoyer la même requête pour obtenir le même résultat et suivre les mêmes vérifications.

Écriture

Une requête d’écriture, ligne par ligne

PUT /v1/works/{id}/reader-status
Authorization: Bearer …
Idempotency-Key: 7f3c2a9e-read
Content-Type: application/json

{
  "actingSubject":
    "https://rezics.com/id/…",
  "expectedVersion": 3,
  "status": "read",
  "finishedOn": "2026-10-19"
}
La version, la date et la clé d’idempotence sont données à titre d’exemple.
  • Le chemin désigne une œuvre

    {id}

    Chaque élément dans REZICS a un identifiant stable commençant par https://rezics.com/id/. Il reste le même quelle que soit la langue ou le site.

  • Indiquer l’identité

    actingSubject

    Un compte peut représenter une personne ou une organisation. Chaque écriture indique l’identité utilisée, dont le serveur vérifie les droits avant l’exécution.

  • Répéter sans risque

    Idempotency-Key

    Chaque écriture utilise une clé d’idempotence. Après un délai dépassé ou une déconnexion, renvoyez la requête avec la même clé pour éviter de dupliquer l’écriture.

  • Éviter d’écraser les changements

    expectedVersion

    Si vous avez lu la version 3, indiquez la version 3. Si une autre personne a modifié les données entre-temps, votre écriture ne les écrase pas.

  • Les erreurs détaillent le problème

    application/problem+json

    En cas d’échec, code est une valeur stable. Votre application peut agir en fonction de ce code sans comparer le texte du message.

Répétition

Renvoyez la même requête pour retrouver le même résultat.

Avec la même clé et le même contenu, le serveur renvoie le résultat initial : la version reste 4 et replayed passe à true. Si le contenu change avec la même clé, le serveur renvoie 409 reader_status_conflict. Si la version n’est plus 3, il renvoie 409 stale_reader_status. Relisez les données avant de réessayer.

  • Première requête

    200
    {
      "status": "read",
      "version": 4,
      "replayed": false
    }
  • Répétition

    200
    {
      "status": "read",
      "version": 4,
      "replayed": true
    }
  • Version obsolète

    409
    {
      "status": 409,
      "code":
        "stale_reader_status"
    }

Types

L’API et ses types viennent de la même définition

Le site REZICS appelle l’API en TypeScript. Les types des requêtes et réponses proviennent directement des déclarations de routes du serveur. Si un champ change de nom ou si un code d’erreur est ajouté, l’application appelante le détecte à la compilation. Le SDK TypeScript est généré à partir de la même définition : vous utilisez les mêmes types que le site.

La documentation OpenAPI 3.1 est générée à partir des mêmes déclarations de routes. Elle indique la validation, le format des requêtes et la réponse pour chaque code d’état.

main().v1
  .works({ id: uuid(work) })
  ['reader-status'].put({
    actingSubject,
    expectedVersion,
    status: 'read',
    ...dates,
  }, headers())
Extrait de la bibliothèque du site REZICS.

generated/openapi/main/public.json

Lecture

Les lectures suivent aussi des règles

  • nextCursor · snapshot

    Les longues listes fournissent un curseur pour lire les pages jusqu’au bout. Les exports de bibliothèque incluent un instantané et signalent les changements intervenus pendant l’opération, plutôt que de vous remettre un fichier incohérent.

  • count.precision

    Le nombre total de résultats indique s’il est exact ou s’il s’agit d’un minimum.

  • title.language · basis

    Les titres indiquent leur langue et leur orientation d’écriture, ainsi que la raison du choix de cette langue : demandée, même écriture, autre écriture ou langue de secours.

  • 404 resource_unavailable

    Une ressource que vous n’êtes pas autorisé à consulter renvoie la même réponse qu’une ressource inexistante, sans révéler qu’elle existe.

Créez vos propres outils avec la même API.

Permettez à vos applications de lire et modifier les œuvres, les bibliothèques et les données des communautés. Chaque opération suit les règles d’identité et d’autorisation de REZICS.