선택기
선택기는 HTTP 요청이나 WebSocket 명령이 어떤 장치와 세션을 대상으로 하는지 나타냅니다.
기기 선택기 — URL 경로
기기 수준에서 모든 HTTP 요청에 다음 형식으로 사용됩니다. /{device_type}/{id_or_index}/….
| 경로 예시 | 선택자의 의미 |
|---|---|
inverse3/0 | 인덱스(0을 기준으로)에 따른 프리미어 Inverse3 |
inverse3/A14 | Inverse3 기기 식별자는 A14 |
inverse3/* | Inverse3 의 모든 기기 (범용 문자) |
*inverse/* | Inverse 제품군에 속하는 모든 기기 (Inverse3, Inverse3x, Minverse) |
inverse3:left/0 | 인덱스에 따르면, 프리미어 Inverse3 는 왼손잡이입니다. |
*inverse:right/0 | 인버스 제품군 중 최고급 기기로, 검지 손가락 기준 오른손용입니다. |
verse_grip/0 | 검지 손가락에 착용하는 프리미엄 VerseGrip 유선형 그립 |
wireless_verse_grip/* | 모든 무선 VerseGrip 제품 |
*verse_grip/* | VerseGrip 제품군에 속하는 모든 기기(유선, 무선, 맞춤형) |
*verse_grip:custom/0 | 프리미어 버즈그립 맞춤형 지수(다음과 동일함)에 따르면 custom_verse_grip/0) |
클래스 필터는 인덱싱 전에 처리됩니다.
선택기 <type>:<class>/<N> 아플리케 우선 클래스 필터를 적용한 다음,
필터링된 집합 내에서 인덱싱합니다. 이 <N> 이는 필터링된 목록 내의 위치를 나타내며,
원본 기기 목록 내의 위치를 나타내는 것이 아닙니다:
*inverse:left/0— 그 장치 검지 손가락의 고셔병 0 Inverse 제품군에 속합니다. Inverse 기기 3대가 연결된 경우 (오른손용, 왼손용, 오른손용), 이 선택기는 두 번째 기기에 해당하며, 인덱스에는 해당하지 않습니다.0필터 적용 “왼손잡이여야 한다”에 대해.inverse3:right/0— le Inverse3 오른손잡이 d'index 0.*inverse:left/3—404연결된 Inverse 왼손용 기기가 4대 미만인 경우, 총 Inverse 기기가 4대 이상이라 하더라도 마찬가지입니다.
일반 선택자에도 동일한 규칙이 적용됩니다: *inverse/* et *verse_grip/*
~에 해당하는 tous 가족용 기기 및 요청 POST / DELETE 대상
이 선택자들은 연산을 다음 대상에 적용합니다. toutes 각 대응 관계, 단지
첫 번째 대응 관계뿐만 아니라.
규칙:
GET모호한 일반 선택기를 거부한다 →400POSTetDELETEワ일드카드를 허용합니다 — 해당 연산은 일치하는 모든 항목에 적용됩니다- 답변
404~ 형태를 사용한다no device matches selector '<sel>', où<sel>수신된 원래의 선택자 표현식입니다.
다음에 대해 지원되는 값: {device_type} : inverse3, verse_grip, wireless_verse_grip,
또는 범주 와일드카드 *inverse, *verse_grip.
세션 선택기 — 쿼리 매개변수 ?session=<expr>
세션 범위 내의 HTTP 엔드포인트(basis, mount, preset, filters, navigation, SDF)는
요청 매개변수가 필수입니다. ?session=<expr> 세션의 맥락을 파악하여
그 맥락에 맞춰 작업을 수행하기 위함입니다.
| 표현 | 의미 |
|---|---|
| (생략) | 모든 세션 (다음에서만 허용됨: DELETE) |
#123 ou 123 | 디지털 식별자가 123인 세션 |
:0 | 목록에 따른 첫 번째 세션 |
:-1 | 색인에 따른 마지막 세션 |
profile_name | 이 프로필로 진행하는 첫 번째 세션 (다의적일 수 있음) |
profile_name:0 | 이 프로필로 진행하는 첫 번째 세션, 인덱스 0 |
:default:0 | 프로필을 사용한 첫 번째 세션 default 0번 인덱스 |
co.haply.hub::*:0 | 프로필이 다음으로 시작하는 첫 번째 세션 co.haply.hub:: (범용 문자 glob) |
:co.haply.hub::*:-1 | 네임스페이스의 마지막 세션 co.haply.hub:: |
예시:
GET /inverse3/0/config/navigation?session=:default:0
프로필 이름에 포함된 와일드카드 문자
프로필 패턴은 두 가지 전역 메타문자를 지원합니다:
| 메타문자 | 의미 |
|---|---|
* | 모든 문자열(빈 문자열 포함)에 해당합니다. |
? | 정확히 하나의 문자에 해당한다 |
그 밖의 모든 문자 — 다음을 포함하여 :, ., -, [, ] — 문자 그대로 비교됩니다(문자 클래스
예를 들어 [abc] ne sont pas (처리합니다). 대소문자를 구분하여 일치시킵니다.
Un * 서울 (또는 all) 기존의 의미를 그대로 유지하거나, 즉 모든 세션. 이름이
로 시작하는 프로필에 일치하도록 *, 적어도 하나의 문자를 더 추가하세요 (예: *foo).
유용한 모티프:
co.haply.hub::*— 네임스페이스의 모든 프로필co.haply.hub::*-update— 다음으로 끝나는 모든 프로필-updateco.haply.*:*— 이름공간이 다음으로 시작하는 모든 프로필co.haply.defaul?— 다음으로 시작하는 7자짜리 모든 프로필defaul
일반적인 모티프는 모호함 그 자체만으로도 (여러 세션에 해당할 수 있음). 이를
종단점에서 사용하려면 GET / POST, 다음을 사용하여 모호함을 해소하세요. :<index> 최종 :
# First session in the Haply Hub namespace
GET /inverse3/0/config/basis?session=co.haply.hub::*:0
# Last session in a Unity namespace
GET /inverse3/0/config/mount?session=:co.haply.unity::*:-1
모호한 와일드카드(인덱스가 없는)는 다음 조건에 따라 거부됩니다. 400 GET/POST 요청에 대해. 이러한 요청은
여러 세션 매칭을 명시적으로 허용하는 경로에서는 허용됩니다 — GET /sessions/<sel> (모든 통신 내용을 전달하며) 및
종단점 DELETE (모든 통신에 적용됨).
세션 선택기 — URL 경로
종점 /sessions/{selector} 수락합니다 경로 매개변수와 동일한 표현 — 특정 세션을 찾거나 해당 세션이 있는지 확인하는 데 유용합니다:
GET /sessions # list all active sessions
GET /sessions/:default:0 # one session by profile + index
GET /sessions/:-1 # last active session
GET /sessions/#42 # session id 42
GET /sessions/co.haply.hub::* # every session in the co.haply.hub:: namespace
GET /sessions/co.haply.hub::*:0 # first session in that namespace
이는 기능적으로 다음과 동일합니다. GET /sessions?session=<selector> ; 두
경로 모두 동일한 관리자를 호출합니다. GET /sessions/<sel> 접미사가 없는 모호한 일반 패턴을 허용하는
몇 안 되는 종결자 중 하나입니다 :<index> — il
모든 서신을 동일한 메일링 리스트 봉투에 담아 GET /sessions.
위의 모든 선택기 유형 — 다음을 포함하여 #42 그리고 프로필 패턴을 * —
표준 HTTP 클라이언트(Python)를 통해 있는 그대로 전송됩니다. requests, libhv,
curl, fetch). 클라이언트 측에서 URL을 인코딩할 필요가 없습니다. 명령 프롬프트에서 다음을 따옴표로 묶어 입력하세요.
다음 내용을 포함하는 토큰 # ou * (예: --session "#42", --session "co.haply.hub::*:0")
인터프리터가 이를 주석으로 처리하거나 로컬 파일에서 제네릭 패턴으로 확장하는 것을 방지하기 위해.
예외 : glob 메타문자 ? URL 쿼리 구분자입니다.
다음에서 chemins. 경로 형태의 선택기(예: /sessions/defaul?:0), 백분율로 표시되어야 하며
다음과 같은 형식으로 %3F — GET /sessions/defaul%3F:0. 쿼리 형식 선택기에서
(?session=defaul?:0), 첫 번째 항목만 ? 쿼리를 분리하고, 그리고 ? 다음 내용은 수정 없이 그대로 전달됩니다.
WebSocket 연결에서, 귀하는 êtes 이번 세션: 참가 신청 configure et
commands 현재 세션에 속한 기기를 자동으로 식별합니다. 세션 선택기는
다음과 같은 쿼리에만 필요합니다. HTTP (세션 사이의 리모컨 조작 포함 — 참조: 세션).