2019년 10월부터 유지

공개 API, 그리고 7년이 걸린 이유

플랫폼 개정 5.4가 6월에 토큰 인증 API를 출시했습니다. API가 무엇을 하는지, 의도적으로 거부하는 것이 무엇인지, 그리고 왜 이렇게 오래 기다렸는지 설명합니다.

API는 7월 2일에 베타를 종료했습니다. 6월에 플랫폼 개정 5.4로 배포되었으며, 2월부터 400개가 조금 넘는 계정으로 초대 베타가 운영되었고, 4월 이후로 형태가 바뀌지 않았습니다. 버전 관리되고, 문서화되어 있으며, 패널과 동일한 가용성 약속이 적용됩니다.

늦었다고 말하는 건 너그러운 표현일 겁니다. 그 이유는 신비롭지 않습니다: 서버 구축에 3분 30초가 걸리는 프로비저닝 시스템 위에 올라간 인터페이스는 스피너를 폴링하기 위한 인터페이스였을 테니까요. 우리는 2025년에 먼저 큐를 다시 작성했고, 그 순서는 운이 아니라 의도적인 것이었습니다.

기능

그룹수행할 수 있는 작업비고
인스턴스생성, 크기 조정, 재구축, 스냅샷, 복원, 삭제크기 확장은 실시간, 축소는 재부팅 한 번 필요
이미지OS 카탈로그 나열, URL로 사용자 지정 ISO 등록사용자 지정 ISO 설치는 여전히 수동이며 느림
네트워킹IPv4 추가, 역방향 DNS 편집, IPv6 /48 요청위임되며, 프록시되지 않음
필터링공격 이벤트 읽기, DDoS Pro에 레이어-7 규칙 푸시기본 필터링에는 구성할 항목 없음
청구잔액 읽기, 인보이스 나열, 충전 인보이스 열기카드 필드 없음. 카드가 없기 때문
이벤트이벤트 로그 폴링 또는 웹훅 등록계정별 비밀로 서명

모든 것은 HTTPS를 통한 JSON이며, 패널이 보여줄 수 있는 모든 객체는 API가 반환할 수 있는 객체입니다. 웹 인터페이스 전용 기능 계층은 없습니다. 이것은 우리에게 비용이 드는 약속입니다: 패널은 이제 여러분이 사용하는 것과 동일한 공개 엔드포인트를 사용하므로, API가 고장나면 패널도 고장나며 우리는 즉시 알 수 있습니다.

인증

토큰은 패널에서 생성되며, 범위가 지정되고, 정확히 한 번만 표시됩니다. 비밀번호 인증, 세션 쿠키, 또는 우리가 수집하지 않기 위해 상당한 노력을 기울인 것을 신뢰해야 하는 ID 공급자로의 리디렉션이 없습니다.

토큰은 읽기, 쓰기 또는 청구 범위, 단일 사이트로의 선택적 제한, 인스턴스 목록으로의 선택적 제한, 그리고 설정하는 만료일을 전달합니다. 기본값은 60일입니다. 토큰은 개별적으로 해지할 수 있으며, 해지는 에지에서 2초 이내에 적용됩니다. 이는 빌드 서버에 무엇이 있었는지 모르는 누군가에 의해 재구축될 때 들리는 것보다 더 중요합니다.

여기 계정은 이메일 주소와 비밀번호 해시이므로, 가져올 고객 객체가 없습니다. API에는 이름 필드, 주소 필드, 회사 필드 및 세금 필드가 없습니다. 정확히 가입 양식에 없는 이유와 같습니다.

속도 제한, 멱등성, 오류

분당 600회 읽기와 60회 쓰기. 계정이 아닌 토큰별로 계산되므로, 시끄러운 스크립트 하나가 나머지 자동화를 굶주리게 할 수 없습니다. 제한은 성공적인 응답을 포함한 모든 응답의 헤더에 반환됩니다.

모든 쓰기는 멱등성 키를 허용합니다. 동일한 키로 생성을 재시도하면 두 번째 서버가 청구되는 대신 원래 인스턴스가 반환됩니다. 이것은 베타 테스터들이 가장 감사하다고 말한 단일 기능입니다. 이는 프로비저닝 중 시간 초과를 처리하는 나머지 업계의 방식에 대해 뭔가를 말해줍니다.

오류는 문서화된 머신 코드, 사람이 읽을 수 있는 한 문장, 그리고 요청 식별자입니다. 식별자를 티켓에 붙여넣으면 지원팀은 재현을 요청하지 않고도 여러분이 본 것과 동일한 요청을 볼 수 있습니다.

의도적으로 하지 않는 것

  • 법정 화폐는 절대 없음. 청구 엔드포인트는 잔액을 읽고 충전 인보이스를 엽니다. 결제는 결제 페이지에 설명된 대로 OxaPay와 선택한 체인에 그대로 유지됩니다.
  • 하위 계정 또는 역할 없음. 끊임없이 요청됨. 구축하지 않음. 명백한 구현이 누가 누구를 위해 일하는지에 대한 구조를 보유하는 것을 의미하기 때문이며, 우리는 만료되는 범위 지정 토큰을 제공하고 조직도를 스스로 유지하게 하는 편이 낫습니다.
  • 자동 확장 없음. 인스턴스는 실제 실리콘의 전용 코어이며, 우리가 만들어낼 수 있는 풀이 아닙니다. 자체 일정에 따라 생성 및 삭제할 수 있습니다. 우리는 그 아래에 탄력적 추상화가 있다고 가장하지 않을 것입니다.
  • SDK 매트릭스 없음. 하나의 참조 클라이언트와 계약으로서의 일반 HTTP. 유지 관리가 덜 되는 6개의 언어 바인딩은 문서보다 더 빨리 낡았을 것입니다.

우리가 깨지길 바라는 것

베타 기간 동안 고칠 가치가 있는 9개의 버그가 발견되었으며, 그중 3개는 흥미로운 방식으로 우리 잘못이었고 6개는 문서가 거짓말을 한 것이었습니다. 10번째를 발견하면 속도 제한을 남용하는 것은 테스트 중에 괜찮고 예상되는 일이며, 지원팀은 스크린샷보다 요청 식별자를 더 원합니다.

참조는 문서에 있습니다. 개정 5.4의 변경 로그에는 2월과 4월 사이에 형태가 변경된 7개의 엔드포인트가 나열되어 있으며, 이것이 버전 1 내에서 발생할 유일한 주요 변경 사항입니다.

준비 완료

도시를 고르고, 크기를 고르고, 코인으로 결제하세요.

신원 확인 양식도, 승인을 기다리는 담당자도, 검증을 위한 전화도 없습니다. 청구서가 결제되면 자격 증명이 받은 편지함에 도착합니다.