API utilisateur WSD
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.
- 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
- 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
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
| 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 |
| 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 : Valeur maximale : Valeur par défaut : |
| future_reservations_months | Nombre de mois de réservations futures à renvoyer. Type de données : nombre Valeur minimale : Valeur maximale : Valeur par défaut : |
| 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.
| 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. |
| 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.
| 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 |
| collaborateurs | Liste des collaborateurs de l’utilisateur avec leurs données de présence. Type de données : tableau d’objets |
| 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 Type de données : tableau d’objets |
| 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 Type de données : objet |
| 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.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 |
| réservations.futur.bâtiment | Bâtiment dans lequel se trouve l’emplacement réservé. Type de données : objet |
| 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 |
| 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 :
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 |
| 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 |
| 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 |
| 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 :
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 :
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 Type de données : objet |
| 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.bâtiment | Bâtiment dans lequel se trouve le lieu de travail. Type de données : objet |
| 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 |
| 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 |
| 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": []
}
}
}