탐색
클라이언트가 터미널의 포트와 토큰을 스스로 찾게 하거나, 직접 전달합니다.
클라이언트에는 두 가지가 필요합니다. 터미널이 수신하는 포트와 토큰입니다.
Terminal.discover()가 둘 다 찾습니다.
터미널 찾기
from spectre_terminal import Terminal
terminal = Terminal.discover()토큰은 SPECTRE_LOCAL_API_TOKEN 환경 변수에서만 가져옵니다. 포트는 터미널의
instance.json 파일에서 가져옵니다. 파일이 없으면 포트는 48180입니다.
그다음 discover()가 테스트 요청을 한 번 보냅니다.
탐색이 실패할 때
| 상황 | 받는 응답 | 대처 방법 |
|---|---|---|
| 토큰이 설정되지 않음 | TokenMissing | SPECTRE_LOCAL_API_TOKEN을 설정합니다 |
| API가 꺼져 있음 | LocalApiDisabled | API를 켭니다 |
| 포트에서 아무것도 응답하지 않음 | TerminalUnreachable | 터미널을 시작합니다 |
| 토큰이 현재 토큰이 아님 | 코드가 unauthorized인 ApiError | 토큰을 다시 복사합니다 |
| 터미널의 API 버전이 다름 | IncompatibleTerminal | 호환성을 참고하십시오 |
이것은 Python의 이름입니다. TypeScript의 이름은 Error로 끝납니다. 예:
TokenMissingError.
포트와 토큰 직접 지정하기
import os
from spectre_terminal import Terminal
found = Terminal.discover(port=48181)
direct = Terminal(os.environ["SPECTRE_LOCAL_API_TOKEN"], port=48181)포트를 넘긴 discover()는 instance.json을 읽지 않습니다. 생성자는 토큰과
포트를 받은 그대로 사용합니다.
다른 포트에서 실행하는 두 번째 터미널에 이 방법을 씁니다. 컴퓨터 한 대에
터미널 하나가 지원되는 구성입니다. 호스트는 항상 127.0.0.1 또는
localhost입니다.
클라이언트 없이 포트 읽기
다른 언어로 작성한 프로그램은 instance.json에서 local_api_port를 읽습니다.
{ "pid": 108957, "http_port": 46727, "local_api_port": 48180 }| 시스템 | 경로 |
|---|---|
| Linux | $XDG_DATA_HOME/spectre-terminal/instance.json, 기본값은 ~/.local/share/spectre-terminal/instance.json |
| macOS | ~/Library/Application Support/spectre-terminal/instance.json |
| Windows | %LOCALAPPDATA%\spectre-terminal\instance.json |
API가 꺼져 있는 동안 local_api_port는 없거나 null입니다. http_port는
사용하지 마십시오. Local API가 아닙니다.