Passer au contenu principal

Principe d’auto-découverte

L’API REST JobAffinity est auto-découvrable et auto-documentée. Seule l’URL principale de départ est nécessaire : https://jobaffinity.fr/restapi/v1
Il n’est pas nécessaire de construire des URLs manuellement. Les URLs de relation sont fournies dans les réponses de l’API. La construction ad-hoc d’URL est déconseillée car les URLs peuvent être modifiées sans changement majeur de version.

Ressource racine

La ressource racine liste les services de haut niveau exposés et donne l’état de l’API.
GET /restapi/v1

Exemple de réponse

{
  "_status": "OK",
  "_self": "/restapi/v1",
  "_version": "1.10",
  "_last_version_url": "/restapi/v1",
  "_expiration": null,
  "_changelog": {
    "_self": "/restapi/changelog"
  },
  "candidates": {
    "_self": "/restapi/v1/candidate",
    "description": "List of visible candidates"
  },
  "jobs": {
    "_self": "/restapi/v1/job",
    "description": "List of visible jobs."
  }
}

Champs de surveillance

Version et migration

  • _version : Version mineure de l’API utilisée
  • _last_version_url : URL racine de la dernière version disponible (vaut _self si vous utilisez déjà la dernière version)
  • _expiration : Date d’expiration de la version utilisée (null si aucune expiration prévue)
Important : Mettez en place un système d’alerte sur le champ _expiration. Lorsqu’il devient différent de null, une migration sera nécessaire.

Changelog

Le champ _changelog fournit un lien vers la liste des évolutions de l’API.
Consultez régulièrement le changelog pour découvrir les nouvelles possibilités offertes par l’API.

Points d’entrée

Les autres champs de la ressource racine (candidates, jobs, etc.) fournissent les points d’entrée principaux de l’API avec leurs URLs respectives. Utilisez toujours les URLs fournies dans les champs _self pour naviguer dans l’API :
{
  "job": {
    "_self": "/restapi/v1/job/42",
    "applications": {
      "_self": "/restapi/v1/job/42/application"
    }
  }
}
Cette approche garantit que votre code reste fonctionnel même si les URLs changent.