오류
Local API의 오류 코드, 클라이언트가 발생시키는 오류, 스트림의 종료 코드.
실패한 요청에는 항상 안정적인 코드가 들어 있습니다. 코드에 의존하십시오.
메시지는 사람이 읽기 위한 것이며 바뀔 수 있습니다. HTTP에서는 오류가 응답의
본문입니다:
{"error": {"code": "not_found", "message": "no such operation"}}.
오류 코드
| 코드 | HTTP | 발생 조건 | 대처 방법 |
|---|---|---|---|
unauthorized | 401 | 토큰이 없거나, 틀렸거나, API가 꺼져 있음 | 현재 토큰을 복사하고 스위치를 확인합니다 |
forbidden | 403 | 요청이 브라우저 페이지에서 왔거나, 호스트가 127.0.0.1 또는 localhost가 아님 | 같은 컴퓨터의 프로그램에서 호출합니다 |
forbidden_scope | 403 | 토큰에 해당 호출의 권한이 없음 | meta().scopes를 확인합니다 |
not_found | 404 | 알 수 없는 주소나 연결, 또는 종목에 맞는 연결이 없음 | 종목과 connections()를 확인합니다 |
invalid_request | 400 | 잘못된 매개변수, 또는 카탈로그에 없는 종목 | 매개변수를 수정합니다 |
unsupported | 501 | MOEX, 시장 데이터 없이 빌드된 터미널, 또는 API가 쓸 수 없는 설정 | 재시도하지 마십시오 |
not_active | 409 | 종목의 클러스터나 레버리지가 아직 로드되지 않음 | 몇 초 후 다시 호출합니다. 레버리지라면 터미널에서 종목을 엽니다 |
not_tradable | 409 | 연결이 꺼져 있거나, 읽기 전용이거나, 자격 증명이 없음 | 거래용 연결을 선택합니다 |
rate_limited | 429 | 제한을 초과함 | 잠시 기다렸다가 다시 호출합니다 |
unavailable | 503 | 거래소나 터미널이 응답하지 않았거나, 아직 데이터가 없음 | 나중에 다시 호출합니다 |
스트림도 같은 코드를 사용합니다. v1 안에서 새 코드가 추가될 수 있습니다.
오류 잡기
from spectre_terminal import ApiError
try:
book = terminal.orderbook("binance:futures:BTCUSDT", depth=20)
except ApiError as error:
print(error.status, error.code, error.message)클라이언트는 다음 오류를 발생시킵니다.
| Python | TypeScript | 발생 조건 |
|---|---|---|
ApiError | ApiError | 터미널이 위 표의 코드로 응답함 |
TokenMissing | TokenMissingError | 토큰을 전달하지 않았고 SPECTRE_LOCAL_API_TOKEN에도 설정하지 않음 |
LocalApiDisabled | LocalApiDisabledError | Local API가 꺼져 있음 |
TerminalUnreachable | TerminalUnreachableError | 터미널이 실행 중이 아니거나 다른 포트에서 수신함 |
IncompatibleTerminal | IncompatibleTerminalError | 클라이언트가 터미널의 API 버전을 지원하지 않음 |
StreamRequestError | StreamRequestError | subscribe 또는 unsubscribe가 거부됨 |
StreamClosed | StreamClosedError | 터미널이 스트림을 닫음 |
모두 SpectreTerminalError를 상속합니다. 토큰은 오류 텍스트에 절대 나타나지
않습니다.
스트림 종료 코드
| 코드 | 이유 | 대처 방법 |
|---|---|---|
1001 | API가 꺼졌거나 토큰이 재발급됨 | 현재 토큰으로 다시 연결합니다 |
1006 | 연결이 끊어짐 | 다시 연결합니다 |
4008 | 프로그램이 5초 넘게 읽지 않음 | 더 빨리 읽거나 구독을 줄입니다 |
4029 | 토큰에 이미 스트림 연결이 8개 있음 | 연결을 재사용합니다 |
코드에서 다시 연결하는 방법은 다시 연결하기를 참고하십시오.