API utilisateur WSD

  • Rversion finale: Australia
  • Mis à jour 28 avr. 2026
  • 10 minutes de lecture
  • L’API UTILISATEUR WSD est une API REST scriptée qui renvoie le contexte du lieu de travail de l’utilisateur authentifié, y compris l’emplacement de l’espace de travail qui lui a été affecté, le calendrier de présence au bureau, les collaborateurs et les réservations passées et futures.

    Cet utilisateur WSD est présenté avec le Prestation de services de lieu de travail produit de réservation (WSD) et fournit un point d’entrée d’appel unique pour initialiser l’expérience de réservation avec toutes les données utilisateur pertinentes. Cette API se trouve dans le module d’extension Prestation de services de lieu de travail Réservation (com.sn_wsd_rsv) et sert de point d’entrée pour mettre en évidence l’identité et l’historique complets du lieu de travail d’un utilisateur.

    Un utilisateur authentifié est une personne qui est connectée ou dont les informations d’identification sont incluses dans la demande d’API.

    Cas d’utilisation courants :
    • Initialisation du portail de réservation : chargez l’emplacement du domicile, le calendrier et l’historique des réservations d’un utilisateur en un seul appel lors de l’ouverture d’une application ou d’un portail de lieu de travail.
    • Applications mobiles ou Web personnalisées : récupérez tout le contexte utilisateur sans assembler plusieurs appels d’API de table, par exemple lors de la création d’expériences de réservation front-end.
    • Suivi de la présence au bureau : identifiez les employés qui doivent être au bureau un jour donné.

    Besoins

    L’API utilisateur WSD nécessite :
    • Au moins un enregistrement utilisateur doit exister avec le rôle sn_wsd_core.workplace_user.
    • Les Prestation de services de lieu de travail modules d’extension Concierge (com.sn_wsd_concierge), Prestation de services de lieu de travail Core (com.sn_wsd_core) et Prestation de services de lieu de travail Réservation (com.sn_wsd_rsv) doivent être actifs.

    API connexes

    L’API utilisateur WSD appartient à une famille d’API toutes situées dans l’espace de noms sn_wsd_rsv qui, ensemble, prennent en charge l’ensemble du cycle de vie de la réservation :
    • API de recherche WSD : recherchez des espaces réservables disponibles en fonction de l’emplacement, de l’heure et des critères de capacité.
    • API de réservation WSD : créer des réservations et gérer les enregistrements/départs.
    • API du module réservable WSD : récupérez les configurations de règles de réservation qui régissent ce que les utilisateurs peuvent réserver et comment.

    Utilisateur WSD : GET /api/sn_wsd_rsv/v1/user/context

    Récupère le contexte du lieu de travail de l’utilisateur authentifié, y compris l’emplacement du lieu de travail qui lui a été affecté, le calendrier de présence, les collaborateurs et les réservations passées et futures.

    Utilisez ce point de terminaison pour initialiser une expérience de réservation en chargeant tout le contexte utilisateur pertinent en un seul appel. Les données de collaborateur sont incluses en option lorsque le module d’extension com.sn_wsd_concierge est actif.

    Format d'URL

    URL versionnée : /api/sn_wsd_rsv/{api_version}/user/context

    URL par défaut : /api/sn_wsd_rsv/user/context

    Paramètres de demande pris en charge

    Tableau 1. Paramètres de chemin d'accès
    Nom Description
    api_version Facultatif. Version du point de terminaison auquel accéder. Par exemple, v1 ou v2. Spécifiez uniquement cette valeur pour utiliser une version de point de terminaison autre que la plus récente.

    Type de données : chaîne

    Tableau 2. Paramètres de requête
    Nom Description
    inclure Valeur pour inclure les données connexes dans la réponse. Utilise une correspondance d’égalité stricte (pas d’analyse séparée par des virgules).
    Remarque :
    include n’est efficace que lorsque le module d’extension Prestation de services de lieu de travail Concierge (com.sn_wsd_concierge) est actif.

    Seule valeur valide : collaborateurs

    Type de données : chaîne

    Par défaut : exclut les collaborateurs de la réponse.

    past_reservations_months Nombre de mois de réservations passées à renvoyer.

    Type de données : nombre

    Valeur minimale : 0

    Valeur maximale : 12

    Valeur par défaut : 3

    future_reservations_months Nombre de mois de réservations futures à renvoyer.

    Type de données : nombre

    Valeur minimale : 0

    Valeur maximale : 12

    Valeur par défaut : 3

    Tableau 3. Paramètres de corps de demande (XML ou JSON)
    Nom Description
    Néant

    En-têtes

    Les en-têtes de demande et de réponse suivants s’appliquent uniquement à cette action HTTP ou s’appliquent à cette action d’une manière distincte. Pour obtenir la liste des en-têtes généraux utilisés dans l’API REST, consultez En-têtes d’API REST pris en charge.

    Tableau 4. En-têtes de demandes
    En-tête Description
    Accepter Format de données du corps de la réponse. Types pris en charge : application/json, application/xml, texte/xml.
    Autorisation Informations d’identification d’authentification. Prend en charge l’authentification de base ou l’authentification basée sur la session.
    Tableau 5. En-têtes de réponses
    En-tête Description
    Type de contenu Format des données du corps de la réponse : application/json.

    Codes d'état

    Les codes d’état suivants s’appliquent à cette action HTTP. Pour obtenir la liste des codes d’état possibles utilisés dans l’API REST, consultez Codes de réponse HTTP de l’API REST.

    Tableau 6. Codes d'état
    Code d'état Description
    200 Réussi. La demande a été traitée avec succès.
    500 Erreur interne du serveur. Une erreur inattendue s’est produite lors du traitement de la demande. La réponse contient des informations supplémentaires sur l’erreur.

    Paramètres du corps de la réponse (JSON ou XML)

    Nom Description
    résultat Objet contenant les résultats de la demande.

    Type de données : objet

    "result": {
      "collaborators": [Array],
      "reservations": {Object},
      "schedule": {Object},
      "workplace_location": {Object}
    }
    collaborateurs Liste des collaborateurs de l’utilisateur avec leurs données de présence.

    Type de données : tableau d’objets

    "collaborators": [
      {
        "sys_id": "String",
        "name": "String",
        "routine": "Object",
        "exceptions": "Array"
      }
    ]
    collaborateurs.exceptions Liste des dates auxquelles le calendrier au bureau du collaborateur s’écarte de sa routine.

    Contient un marqueur booléen pour chaque jour de la semaine indiquant la présence prévue au bureau. Affiche vrai lorsque l’utilisateur prévoit d’être au bureau ce jour-là et faux lorsque la présence n’est pas planifiée.

    Type de données : tableau d’objets

    "exceptions": [
    { 
       "monday": "Boolean", 
       "tuesday": "Boolean", 
       "wednesday": "Boolean", 
       "thursday": "Boolean", 
       "friday": "Boolean", 
       "saturday": "Boolean", 
       "sunday": "Boolean" 
    }
    ]
    collaborators.name Nom d’affichage du collaborateur. Par exemple, Jane Smith.

    Type de données : chaîne

    collaborateurs.routine Calendrier récurrent au bureau hebdomadaire du collaborateur. Suit la même structure booléenne du jour de la semaine que schedule.routine.

    La valeur vrai indique la présence au bureau et la valeur faux indique l’absence de présence.

    Type de données : objet

    "routine": {
      "monday": Boolean,
      "tuesday": Boolean,
      "wednesday": Boolean,
      "thursday": Boolean, 
      "friday": Boolean,
      "saturday": Boolean,
      "sunday": Boolean
    }
    collaborators.sys_id Sys_id de l’enregistrement utilisateur du collaborateur.

    Table : Utilisateur [sys_user]

    Type de données : chaîne

    Réservations Objet contenant les réservations passées et futures de l’utilisateur. Les réservations privées et sans emplacement sont exclues.

    Maximum de 100 réservations par direction.

    Filtré par états : confirmé, terminé.

    Type de données : objet

    "reservations": {
      "past": [Array],
      "future": [Array]
    }
    reservations.future Liste des réservations futures de l’utilisateur au cours de la plage mensuelle demandée. Trié par date/heure de début, du plus tôt au plus tôt.

    Type de données : tableau d’objets

    "future": [
     {
      "sys_id": "String",
      "number": "String",
      "start": "String",
      "end": "String",
      "state": "String",
      "subject": "String,
      "location": {Object},
      "building": {Object}
     }
    ]
    réservations.futur.bâtiment Bâtiment dans lequel se trouve l’emplacement réservé.

    Type de données : objet

    "building": {
     "name": "String",
     "sys_id": "String"
    }
    reservations.future.building.name Nom d’affichage du bâtiment. Par exemple, le bâtiment A du siège social.

    Type de données : chaîne

    reservations.future.building.sys_id Sys_id de l’enregistrement du bâtiment.

    Table : Bâtiment du lieu de travail [sn_wsd_core_building]

    Type de données : chaîne

    reservations.future.end Date/heure de fin de la réservation (UTC).

    Format : aaaa-MM-jj HH :mm :ss

    Type de données : chaîne

    reservations.future.location Espace réservé.

    Type de données : objet

    "location": {
      "sys_id": "String",
      "name": "String"
    }
    reservations.future.location.name Nom d’affichage de l’emplacement réservé. Par exemple, Bureau 42.

    Type de données : chaîne

    reservations.future.location.sys_id Sys_id de l’emplacement réservé.

    Table : emplacement du lieu de travail [sn_wsd_core_workplace_location]

    Type de données : chaîne

    réservations.futur.numéro Numéro de réservation explicite. Par exemple, RSV0001234.

    Type de données : chaîne

    reservations.future.start Date/heure de début de la réservation en UTC.

    Format : aaaa-MM-jj HH :mm :ss

    Type de données : chaîne

    reservations.future.state État actuel de la réservation.
    Valeurs valides :
    • Confirmés le
    • Terminé

    Type de données : chaîne

    réservations.futur.objet Objet ou titre de la réservation. Par exemple, Bureau debout de l’équipe.

    Type de données : chaîne

    reservations.future.sys_id Sys_id de l’enregistrement de la réservation.

    Table : Réservation du lieu de travail [sn_wsd_rsv_reservation]

    Type de données : chaîne

    réservations.passées Liste des réservations passées de l’utilisateur au cours de la plage mensuelle demandée. Classé par date/heure de début, la plus récente en premier.

    Suit la même structure de tableau que reservation.future.

    Type de données : tableau d’objets

    "past": [
     {
      "sys_id": "String",
      "number": "String",
      "start": "String",
      "end": "String",
      "state": "String",
      "subject": "String,
      "location": {Object},
      "building": {Object}
     }
    ]
    schedule Le calendrier de présence au bureau de l’utilisateur, y compris sa routine hebdomadaire récurrente et les exceptions éventuelles.
    Remarque :
    Lorsque le module d’extension com.sn_wsd_concierge est inactif, la routine est nulle et les exceptions sont un tableau vide.

    Type de données : objet

    "schedule": {
      "exceptions": [Array],
      "routine": {Object}
    }
    Calendrier.Exceptions Liste des dates auxquelles le calendrier au bureau de l’utilisateur s’écarte de sa routine.

    Type de données : tableau d’objets

    "exceptions": [
    {
      "sys_id": "sys_id", 
      "date": "String", 
      "in_office": String, 
      "origin": "String", 
      "location": "String" 
     }
    ]
    schedule.exceptions.date Date à laquelle s’applique cette exception, au format aaaa-MM-jj. Il s’agit de la date à laquelle la routine de l’utilisateur est remplacée.

    Type de données : chaîne

    schedule.exceptions.in_office Marqueur indiquant si l’utilisateur sera au bureau à cette date. Cela remplace tout ce que le calendrier spécifie pour ce jour de la semaine.
    Valeurs valides :
    • vrai : l’utilisateur sera au bureau.
    • faux : l’utilisateur ne sera pas au bureau

    Type de données : chaîne

    schedule.exceptions.location Nom ou identificateur de l’emplacement du bureau où l’utilisateur se trouvera à cette date. Pertinent uniquement lorsque in_office est vrai. Peut être une chaîne vide lorsque l’utilisateur est distant.

    Type de données : chaîne

    Calendrier.Exceptions.Origine Source qui a créé l’exception.
    Valeurs valides :
    • user : créé manuellement par l’employé.
    • system : créé automatiquement par la plateforme.
    • manuel : créé par un administrateur ou au nom de l’utilisateur.

    Type de données : chaîne

    schedule.exceptions.sys_id Sys_id de l’enregistrement d’exception.

    Table : Exceptions relatives à la présence des employés (sn_wsd_concierge_employee_presence_exception)

    Type de données : chaîne

    Calendrier.Routine Calendrier récurrent au bureau hebdomadaire de l’utilisateur. Chaque champ est un booléen qui représente un jour de la semaine et indique si l’utilisateur doit être au bureau ce jour-là.

    La valeur vrai indique la présence au bureau et la valeur faux indique l’absence de présence.

    Type de données : objet

    "routine": {
      "monday": Boolean,
      "tuesday": Boolean,
      "wednesday": Boolean,
      "thursday": Boolean, 
      "friday": Boolean,
      "saturday": Boolean,
      "sunday": Boolean
    }
    workplace_location L’emplacement du lieu de travail affecté à l’utilisateur, y compris l’étage, le bâtiment et les détails du campus.

    Type de données : objet

    "workplace_location": {
      "building": {Object},
      "campus": {Object},
      "floor": {Object},
      "name": "String",
      "sys_id": "String"
    }
    workplace_location.bâtiment Bâtiment dans lequel se trouve le lieu de travail.

    Type de données : objet

    "building": {
      "name": "String",
      "sys_id": "String"
    }
    workplace_location.building.name Nom d’affichage du bâtiment. Par exemple, le bâtiment A du siège social.

    Type de données : chaîne

    workplace_location.building.sys_id Sys_id de l’enregistrement du bâtiment.

    Table : Bâtiment du lieu de travail [sn_wsd_core_building]

    Type de données : chaîne

    workplace_location.campus Campus sur lequel se trouve le bâtiment.

    Type de données : objet

    "campus": {
      "name": "String",
      "sys_id": "String"
    }
    workplace_location.campus.name Nom d’affichage du campus. Par exemple, Campus principal.

    Type de données : chaîne

    workplace_location.campus.sys_id Sys_id de l’enregistrement du campus.

    Table : Campus du lieu de travail [sn_wsd_core_campus]

    Type de données : chaîne

    workplace_location.étage Étage sur lequel se trouve l’emplacement du lieu de travail.

    Type de données : objet

    "floor": {
      "name": "String",
      "sys_id": "String"
    }
    workplace_location.floor.name Sys_id de l’enregistrement de l’étage.

    Table : Étage du lieu de travail [sn_wsd_core_floor]

    Type de données : chaîne

    workplace_location.floor.sys_id Nom d’affichage de l’étage. Par exemple, Étage 3.

    Type de données : chaîne

    workplace_location.nom Nom d’affichage de l’emplacement du lieu de travail affecté à l’utilisateur. Par exemple, Bureau 42 - Étage 3.

    Type de données : chaîne

    workplace_location.sys_id Sys_id de l’emplacement du lieu de travail affecté à l’utilisateur.

    Table : emplacement du lieu de travail [sn_wsd_core_workplace_location]

    Type de données : chaîne

    Demande cURL

    L’exemple suivant récupère le contexte de lieu de travail complet de l’utilisateur authentifié, y compris les collaborateurs, 1 mois de réservations passées et 6 mois de réservations futures.

    curl "https://<instance>.service-now.com/api/sn_wsd_rsv/v1/user/context?include=collaborators&past_reservations_months=1&future_reservations_months=6" \
      --request GET \
      --header "Accept: application/json" \
      --user "username:password"

    Corps de la réponse.

    {
      "result": {
        "workplace_location": {
          "sys_id": "a1b2c3d4e5f6g7h8",
          "name": "Desk 42 - Floor 3",
          "floor": { "sys_id": "f1a2b3c4", "name": "Floor 3" },
          "building": { "sys_id": "b1c2d3e4", "name": "HQ Building A" },
          "campus": { "sys_id": "c1d2e3f4", "name": "Main Campus" }
        },
        "schedule": {
          "routine": {
            "monday": true, "tuesday": true, "wednesday": false,
            "thursday": true, "friday": false, "saturday": false, "sunday": false
          },
          "exceptions": []
        },
        "collaborators": [
          {
            "sys_id": "d4e5f6g7",
            "name": "Jane Smith",
            "routine": { "monday": true, "tuesday": false, "wednesday": true,
                         "thursday": true, "friday": false, "saturday": false, "sunday": false },
            "exceptions": []
          }
        ],
        "reservations": {
          "past": [
            {
              "sys_id": "r1e2s3v4",
              "number": "RSV0001234",
              "start": "2026-04-01 09:00:00",
              "end": "2026-04-01 17:00:00",
              "state": "completed",
              "subject": "Team standup desk",
              "location": { "sys_id": "l1o2c3", "name": "Desk 42" },
              "building": { "sys_id": "b1c2d3e4", "name": "HQ Building A" }
            }
          ],
          "future": []
        }
      }
    }