WSD 사용자 API
WSD 사용자 API는 할당된 작업 공간 위치, 사무실 출근 일정, 공동 작업자, 과거 및 향후 예약 등 인증된 사용자의 직장 컨텍스트를 반환하는 스크립트된 REST API입니다.
이 WSD 사용자는 (WSD) 예약 제품에 포함 워크플레이스 서비스 제공 되며 모든 관련 사용자 데이터로 예약 예약 환경을 초기화하기 위한 단일 통화 엔트리포인트를 제공합니다. 이 API는 예약(com.sn_wsd_rsv) 플러그인 내에 워크플레이스 서비스 제공 있으며 사용자의 전체 직장 ID 및 이력을 표시하기 위한 엔트리포인트 역할을 합니다.
인증된 사용자는 로그인되어 있거나 자격 증명이 API 요청에 포함된 사용자입니다.
- 예약 포털 초기화: 직장 앱 또는 포털을 열 때 한 번의 호출로 사용자의 집 위치, 일정 및 예약 내역을 로드합니다.
- 사용자 지정 모바일 또는 웹 앱: 프론트엔드 예약 환경을 빌드하는 경우와 같이 여러 테이블 API 호출을 연결하지 않고 모든 사용자 컨텍스트를 가져옵니다.
- 사무실 내 상태 추적: 지정된 날짜에 사무실에 출근할 예정인 직원을 식별합니다.
요구 사항
- sn_wsd_core.workplace_user 역할이 있는 사용자 기록이 하나 이상 있어야 합니다.
- 워크플레이스 서비스 제공 컨시어지(com.sn_wsd_concierge워크플레이스 서비스 제공), 코어(com.sn_wsd_core) 및 워크플레이스 서비스 제공 예약(com.sn_wsd_rsv) 플러그인이 활성화됩니다.
관련 API
sn_wsd_rsv 네임스페이스 아래의 API 제품군에 속합니다.- WSD 검색 API: 위치, 시간 및 용량 기준에 따라 사용 가능한 예약 가능한 공간을 찾습니다.
- WSD 예약 API: 예약을 생성하고 체크인/체크아웃을 관리합니다.
- WSD 예약 가능 모듈 API: 사용자가 예약할 수 있는 항목과 예약 방법을 관리하는 예약 규칙 구성을 검색합니다.
WSD 사용자 - GET /api/sn_wsd_rsv/v1/user/context
할당된 직장 위치, 현재 상태 일정, 공동 작업자, 과거 및 향후 예약 등 인증된 사용자의 직장 컨텍스트를 검색합니다.
이 엔드포인트를 사용하여 단일 호출에 모든 관련 사용자 컨텍스트를 로드하여 예약 환경을 초기화합니다. 공동 작업자 데이터는 com.sn_wsd_concierge 플러그인이 활성화된 경우 선택적으로 포함됩니다.
URL 형식
버전이 지정된 URL: /api/sn_wsd_rsv/{api_version}/user/context
기본 URL: /api/sn_wsd_rsv/user/context
지원되는 요청 매개변수
| 이름 | 설명 |
|---|---|
| api_version | 옵션입니다. 액세스할 엔드포인트의 버전입니다. 예를 들어 v1 또는 v2입니다. 최신 버전이 아닌 엔드포인트 버전을 사용하도록 이 값만 지정하십시오. 데이터 유형: 문자열 |
| 이름 | 설명 |
|---|---|
| 포함 | 응답에 관련 데이터를 포함하기 위한 값입니다. 엄격한 동일성 일치를 사용합니다(쉼표로 구분된 구문 분석이 아님). 주: include 는 컨시어지(com.sn_wsd_concierge) 플러그인이 워크플레이스 서비스 제공 활성 상태인 경우에만 유효합니다. 유효한 값만: 공동 작업자 데이터 유형: 문자열 기본값: 응답에서 공동 작업자를 제외합니다. |
| past_reservations_months | 반환할 과거 예약의 개월 수입니다. 데이터 유형: 숫자 최소값: 최대값: 기본값: |
| future_reservations_months | 반환할 향후 예약의 개월 수입니다. 데이터 유형: 숫자 최소값: 최대값: 기본값: |
| 이름 | 설명 |
|---|---|
| 안 함 |
헤더
다음 요청 및 응답 헤더는 이 HTTP 작업에만 적용되거나 고유한 방식으로 이 작업에 적용됩니다. REST API에 사용되는 일반 헤더 목록은 지원되는 REST API 헤더를 참조하십시오.
| 머리글 | 설명 |
|---|---|
| 수용 | 응답 본문의 데이터 형식입니다. 지원되는 유형: application/json, application/xml, text/xml. |
| 권한 부여 | 인증 자격 증명입니다. 기본 인증 또는 세션 기반 인증을 지원합니다. |
| 머리글 | 설명 |
|---|---|
| 콘텐츠-형식 | 응답 본문의 데이터 형식: application/json. |
상태 코드
이 HTTP 작업에 적용되는 상태 코드는 다음과 같습니다. REST API에 사용되는 가능한 상태 코드 목록은 REST API HTTP 응답 코드를 참조하십시오.
| 상태 코드 | 설명 |
|---|---|
| 200 | 성공입니다. 요청이 성공적으로 처리되었습니다. |
| 500 | 내부 서버 오류입니다. 요청을 처리하는 동안 예기치 않은 오류가 발생했습니다. 응답에는 오류에 대한 추가 정보가 포함되어 있습니다. |
응답 본문 매개변수(JSON 또는 XML)
| 이름 | 설명 |
|---|---|
| 결과 | 요청의 결과를 포함하는 객체입니다. 데이터 유형: 객체 |
| 공동 작업자 | 현재 상태 데이터가 있는 사용자의 공동 작업자 목록입니다. 데이터 유형: 객체 배열 |
| 공동 작업자.예외 | 공동 작업자의 오피스 일정이 루틴에서 벗어나는 날짜 목록입니다. 계획된 사무실 출석을 나타내는 각 요일의 부울 플래그를 포함합니다. 사용자가 해당 날짜에 사무실에 출근할 계획이면 데이터 유형: 객체 배열 |
| collaborators.name | 공동 작업자의 표시 이름입니다. 예: Jane Smith 데이터 유형: 문자열 |
| collaborators.routine | 공동 작업자의 반복되는 주간 오피스 일정입니다. 와 동일한 요일 부울 구조 schedule.routine를 따릅니다.
데이터 유형: 객체 |
| collaborators.sys_id | 공동 작업자의 사용자 기록 Sys_id입니다. 테이블: 사용자 [sys_user] 데이터 유형: 문자열 |
| 예약 | 사용자의 과거 및 향후 예약을 포함하는 객체입니다. 개인 및 위치 없는 예약은 제외됩니다. 방향당 최대 100개의 예약이 가능합니다. 상태별로 필터링됨: 확인됨, 완료됨. 데이터 유형: 객체 |
| 예약.미래 | 요청된 월 범위 내 사용자의 향후 예약 목록입니다. 시작 날짜/시간별로 가장 빠른 순서부터 정렬됩니다. 데이터 유형: 객체 배열 |
| 예약.미래.건물 | 예약 위치가 있는 건물입니다. 데이터 유형: 객체 |
| reservations.future.building.name | 건물의 표시 이름입니다. 예를 들어, HQ 빌딩 A입니다. 데이터 유형: 문자열 |
| reservations.future.building.sys_id | 건물 기록의 Sys_id입니다. 테이블: 직장 건물 [sn_wsd_core_building] 데이터 유형: 문자열 |
| 예약.미래.종료 | 예약의 종료 날짜 시간(UTC)입니다. 형식: yyyy-MM-dd HH:mm:ss 데이터 유형: 문자열 |
| 예약.미래.위치 | 예약 공간입니다. 데이터 유형: 객체 |
| reservations.future.location.name | 예약 위치의 표시 이름입니다. 예: Desk 42 데이터 유형: 문자열 |
| reservations.future.location.sys_id | 예약 위치의 Sys_id입니다. 테이블: 직장 위치 [sn_wsd_core_workplace_location] 데이터 유형: 문자열 |
| 예약.미래.번호 | 사람이 읽을 수 있는 예약 번호입니다. 예를 들면 RSV0001234입니다. 데이터 유형: 문자열 |
| reservations.future.start | 예약의 시작 날짜 시간(UTC)입니다. 형식: yyyy-MM-dd HH:mm:ss 데이터 유형: 문자열 |
| reservations.future.state | 예약의 현재 상태입니다. 유효한 값은 다음과 같습니다.
데이터 유형: 문자열 |
| 예약.미래.제목 | 예약의 주제 또는 제목입니다. 예: 팀 스탠드업 데스크 데이터 유형: 문자열 |
| reservations.future.sys_id | 예약 기록의 Sys_id입니다. 테이블: 직장 예약 [sn_wsd_rsv_reservation] 데이터 유형: 문자열 |
| 예약.과거 | 요청된 월 범위 내 사용자의 과거 예약 목록입니다. 시작 날짜/시간별로 정렬되며, 가장 최근 항목부터 정렬됩니다. 와 reservation.future동일한 배열 구조를 따릅니다. 데이터 유형: 객체 배열 |
| 일정 | 사용자의 오피스 출근 일정(반복되는 주간 루틴 및 예외 포함) 주: com.sn_wsd_concierge 플러그인이 비활성 상태이면 루틴은 null이고 예외는 빈 배열입니다. 데이터 유형: 객체 |
| 일정.예외 | 사용자의 오피스 일정이 루틴에서 벗어나는 날짜 목록입니다. 데이터 유형: 객체 배열 |
| schedule.exceptions.date | 이 예외가 적용되는 날짜(yyyy-MM-dd 형식)입니다. 사용자의 루틴이 재정의되는 날짜입니다. 데이터 유형: 문자열 |
| schedule.exceptions.in_office | 사용자가 이 날짜에 사무실에 출근할 것인지 여부를 나타내는 플래그입니다. 이는 일정에서 해당 요일에 지정하는 모든 것을 무효화합니다. 유효한 값은 다음과 같습니다.
데이터 유형: 문자열 |
| 일정.예외.위치 | 이 날짜에 사용자가 있을 사무실 위치의 이름 또는 식별자입니다. in_office이 예인 경우에만 관련이 있습니다. 사용자가 원격 근무인 경우 빈 문자열일 수 있습니다.데이터 유형: 문자열 |
| 일정.예외.원본 | 예외를 생성한 소스입니다. 유효한 값은 다음과 같습니다.
데이터 유형: 문자열 |
| schedule.exceptions.sys_id | 예외 기록의 Sys_id입니다. 테이블: 직원 현재 상태 예외(sn_wsd_concierge_employee_presence_exception) 데이터 유형: 문자열 |
| 일정.루틴 | 사용자의 반복되는 주간 오피스 일정입니다. 각 필드는 요일을 나타내는 부울이며 사용자가 해당 날짜에 사무실에 출근하도록 예약되어 있는지 여부를 나타냅니다.
데이터 유형: 객체 |
| workplace_location | 사용자에게 할당된 직장 위치(층, 건물 및 캠퍼스 상세 정보 포함) 데이터 유형: 객체 |
| workplace_location.건물 | 직장 위치가 있는 건물입니다. 데이터 유형: 객체 |
| workplace_location.building.name | 건물의 표시 이름입니다. 예를 들어, HQ 빌딩 A입니다. 데이터 유형: 문자열 |
| workplace_location.building.sys_id | 건물 기록의 Sys_id입니다. 테이블: 직장 건물 [sn_wsd_core_building] 데이터 유형: 문자열 |
| workplace_location.campus | 건물이 있는 캠퍼스입니다. 데이터 유형: 객체 |
| workplace_location.campus.name | 캠퍼스의 표시 이름입니다. 예: 메인 캠퍼스 데이터 유형: 문자열 |
| workplace_location.campus.sys_id | 캠퍼스 기록의 Sys_id입니다. 테이블: 직장 캠퍼스 [sn_wsd_core_campus] 데이터 유형: 문자열 |
| workplace_location.floor | 직장 위치가 위치한 층입니다. 데이터 유형: 객체 |
| workplace_location.floor.name | 층 기록의 Sys_id입니다. 테이블: 직장 층 [sn_wsd_core_floor] 데이터 유형: 문자열 |
| workplace_location.floor.sys_id | 층의 표시 이름입니다. 예를 들어 3층입니다. 데이터 유형: 문자열 |
| workplace_location.name | 사용자에게 할당된 직장 위치의 표시 이름입니다. 예: 책 상 42 - 3층. 데이터 유형: 문자열 |
| workplace_location.sys_id | 사용자의 할당된 직장 위치의 Sys_id입니다. 테이블: 직장 위치 [sn_wsd_core_workplace_location] 데이터 유형: 문자열 |
cURL 요청
다음 예에서는 공동 작업자, 과거 예약 1개월, 향후 예약 6개월을 포함하여 인증된 사용자의 전체 직장 컨텍스트를 검색합니다.
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"
응답 본문.
{
"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": []
}
}
}