Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
Obě strany předchozí revizePředchozí verzeNásledující verze | Předchozí verze | ||
navody:vps:api [2021/12/09 12:08] – fix arch install instructions Aither | navody:vps:api [2025/03/24 20:40] (aktuální) – [Dokumentace API] Opraven link na dokumentaci API aither | ||
---|---|---|---|
Řádek 8: | Řádek 8: | ||
===== Dokumentace API ===== | ===== Dokumentace API ===== | ||
Dokumentace API, tzn. seznam zdrojů, možných akcí, vstupních a výstupních | Dokumentace API, tzn. seznam zdrojů, možných akcí, vstupních a výstupních | ||
- | parametrů je k vidění na https:// | + | parametrů je k vidění na https:// |
Bez přihlášení se zobrazuje seznam všech zdrojů, tj. i těch, se kterými můžou | Bez přihlášení se zobrazuje seznam všech zdrojů, tj. i těch, se kterými můžou | ||
Řádek 26: | Řádek 26: | ||
* JavaScript - https:// | * JavaScript - https:// | ||
* Go - https:// | * Go - https:// | ||
- | * Webové rozhraní z HaveAPI - https:// | + | * Webové rozhraní z HaveAPI - https:// |
- | * Souborový systém založený na FUSE - https:// | + | * Souborový systém založený na FUSE - https:// |
Ukázka použití je vždy v '' | Ukázka použití je vždy v '' | ||
Řádek 38: | Řádek 38: | ||
===== Autentizace ===== | ===== Autentizace ===== | ||
- | Lze využívat dvě autentizační metody. Tou první a jednodušší z nich je HTTP | + | API podporuje dva způsoby autentizace: |
- | basic. S každým požadavkem na API se musí zaslat jméno a heslo. Je to dobrá | + | |
- | volba pro jednorázové akce, pokud je ale potřeba API volat vícekrát nebo | + | |
- | automatizovaně, | + | |
- | Druhou metodou je autentizace přes tokeny. | + | * [[# |
- | požádá o vytvoření tokenu, k tomu potřebuje jméno, heslo a připadně i TOTP. | + | * [[#tokeny|Pomocí tokenů]] |
+ | |||
+ | Konkrétní ukázky autentizace pro podporované programovací jazyky a CLI najdete | ||
+ | v [[https:// | ||
+ | |||
+ | ==== HTTP Basic ==== | ||
+ | S každým požadavkem na API se musí zaslat jméno a heslo v HTTP hlavičce " | ||
+ | Je to dobrá volba pro jednorázové akce, pokud je ale potřeba API volat vícekrát nebo | ||
+ | automatizovaně, | ||
+ | nelze použít, pokud máte aktivované dvoufaktorové ověřování. | ||
+ | |||
+ | ==== Tokeny ==== | ||
+ | Klient nejprve | ||
Jakmile klient dostane token, může jméno a heslo zapomenout a dále se autentizuje | Jakmile klient dostane token, může jméno a heslo zapomenout a dále se autentizuje | ||
získaným tokenem. | získaným tokenem. | ||
Řádek 50: | Řádek 59: | ||
Tokeny mohou být několika typů s různě dlouhou životností: | Tokeny mohou být několika typů s různě dlouhou životností: | ||
- | * fixed - platnost tokenu je pevně dána | + | * //fixed// - platnost tokenu je pevně dána |
- | * renewable_manual - platnost tokenu lze manuálně prodloužit | + | * //renewable_manual// - platnost tokenu lze manuálně prodloužit |
- | * renewable_auto - platnost tokenu je prodloužena při každém požadavku | + | * //renewable_auto// - platnost tokenu je prodloužena při každém požadavku |
- | * permament - token je platný napořád, resp. dokud není smazán | + | * //permament// - token je platný napořád, resp. dokud není smazán |
Typ tokenu a časový interval, o který se prodlužuje, | Typ tokenu a časový interval, o který se prodlužuje, | ||
- | ===== CLI ===== | + | ===== Scopes |
- | [[https://github.com/vpsfreecz/vpsfree-client|Klient pro Ruby]] obsahuje i CLI. | + | U autentizačních tokenů si můžeme zvolit, jaké akce bude token mít k dispozici. |
- | Pro správnou funkci vyžaduje Ruby >= 2.0 a nainstalované hlavičkové soubory | + | To se může hodit u tokenů s dlouhou nebo permanentní platností. Každá akce |
- | Ruby, OpenSSL a ncurses (většinou balíčky | + | má svůj //scope//, jehož název najdeme v dokumentaci. Dostupné scope se nastavuje, |
+ | když žádáme o nový token, tj. zasílá se společně s přihlašovacími údaji. | ||
- | ==== Linux ==== | + | Ukázky možných scopes: |
- | ==== Ubuntu 20.04 ==== | + | * '' |
+ | * prázdný scope, přístup je povolen jen k akci '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
- | === Instalace závislostí === | + | Scope může obsahovat globy pro název resource a akce. Akce je od resource oddělena křížkem (''#'' |
- | <code bash> | + | ===== Instalace |
- | sudo apt-get install ruby ruby-dev make g++ libssl-dev libncurses-dev | + | [[https:// |
- | </ | + | (rozhraní pro příkazovou řádku) a knihovnu pro použití v Ruby skriptech. |
- | + | Pro správnou funkci vyžaduje Ruby >= 2.7, nainstalované hlavičkové soubory | |
- | === Instalace vpsfree-client === | + | Ruby a ncurses (většinou balíčky s příponou '' |
+ | Poté klienta nainstalujeme pomocí Ruby gems: | ||
<code bash> | <code bash> | ||
- | sudo gem install vpsfree-client | + | gem install vpsfree-client |
</ | </ | ||
+ | Konkrétní postupy instalace podle platformy: | ||
- | ====Instalace na Centos 7==== | + | * Linux |
- | + | | |
- | Zdrojový kod klienta lze najít | + | |
- | + | | |
- | vpsfree-client vyžaduje ruby > | + | |
- | + | | |
- | Ruby ve verzi nižší než [[https:// | + | |
- | + | ||
- | Aktuální Ruby je možné nainstalovat pomocí | + | |
- | + | ||
- | Například: | + | |
- | < | + | |
- | yum install -y openssl-devel readline-devel zlib-devel | + | |
- | / | + | |
- | # následně je zapotřebí přidat rbenv do PATH a provést trochu magie(snippet z .bashrc): | + | |
- | export PATH=" | + | |
- | if [ -d '/ | + | |
- | | + | |
- | fi | + | |
- | / | + | |
- | / | + | |
- | #projistotu spustte nový bash který uvidí novou verzi ruby | + | |
- | / | + | |
- | #proveďte instalaci | + | |
- | / | + | |
- | # | + | |
- | / | + | |
- | / | + | |
- | / | + | |
- | Usage: / | + | |
- | ... | + | |
- | </ | + | |
- | =============== | + | |
- | ====Instalace CLI na Linux distribucích založených na Arch Linux==== | + | |
- | Testováno na [[https:// | + | |
- | + | ||
- | <code bash> | + | |
- | sudo pacman -Syu ruby make gcc | + | |
- | gem install vpsfree-client # nainstalujeme vpsfree-client (nepoužívejte tady SUDO install!) | + | |
- | </ | + | |
- | + | ||
- | Přidáme PATH k nainstalovaným gems do '' | + | |
- | + | ||
- | <code bash> | + | |
- | sudo nano ~/.bashrc | + | |
- | </ | + | |
- | + | ||
- | Na konec souboru přidáme: | + | |
- | + | ||
- | <code bash> | + | |
- | if command -v ruby &>/ | + | |
- | PATH=" | + | |
- | fi | + | |
- | </ | + | |
- | + | ||
- | Restartujeme shell '' | + | |
- | <code bash> | + | |
- | vpsfreectl ip_traffic top | + | |
- | </ | + | |
- | + | ||
- | Výše uvedené příkazy nefungují na distribucích založených na Debian/ | + | |
- | + | ||
- | ==== macOS ==== | + | |
- | + | ||
- | Na OS X je nutné nainstalovat OpenSSL přes [[http:// | + | |
- | poté se dá nainstalovat EventMachine (gem, jenž klient vyžaduje). | + | |
- | + | ||
- | <code bash> | + | |
- | $ brew install openssl | + | |
- | $ sudo gem install eventmachine -- --with-opt-include="/ | + | |
- | </ | + | |
- | + | ||
- | Nainstalovat jej lze pomocí ruby gems: | + | |
- | + | ||
- | <code bash> | + | |
- | $ sudo gem install vpsfree-client | + | |
- | </ | + | |
- | + | ||
- | < | + | |
- | gem vypíše PATH pod kterým lze najít nainstalovaný balíček | + | |
- | <code bash> | + | |
- | WARNING: | + | |
- | gem executables will not run. | + | |
- | + | ||
- | </ | + | |
- | </ | + | |
- | + | ||
- | ==== Windows ==== | + | |
- | Instalace ve Windows 10 využitím Ubuntu Linux subsystem: | + | |
- | + | ||
- | - ve Windows 10 povolit developer mode, nechat nainstalovat | + | |
- | - přes Programy a funkce otevřít přidání součástí Windows, úplně dole zvolit Linux subsystem, nechat nainstalovat a restartovat počítač | + | |
- | - po restartu jako admin spustit v nabídce Start bash | + | |
- | - vytvořit Unix username a heslo | + | |
- | - stisknout y a nechat nainstalovat základ Ubuntu | + | |
- | + | ||
- | === Instalace závislostí === | + | |
- | + | ||
- | <code bash> | + | |
- | sudo apt-get install ruby2.1 ruby2.1-dev libssl-dev make g++ | + | |
- | </ | + | |
- | + | ||
- | === Quick & Dirty fix pro nastavení ruby2.1 jako výchozího namísto 1.9 === | + | |
- | + | ||
- | <code bash> | + | |
- | sudo rm / | + | |
- | sudo ln -s / | + | |
- | sudo ln -s / | + | |
- | sudo ln -s / | + | |
- | sudo ln -s / | + | |
- | sudo ln -s / | + | |
- | sudo gem update --system | + | |
- | sudo gem pristine --all | + | |
- | </ | + | |
- | + | ||
- | Zdroj: http:// | + | |
- | + | ||
- | === Instalace vpsfree-client === | + | |
- | + | ||
- | <code bash> | + | |
- | sudo gem install vpsfree-client | + | |
- | </ | + | |
- | + | ||
- | + | ||
- | ---- | + | |
Po instalaci by v '' | Po instalaci by v '' | ||
Řádek 217: | Řádek 115: | ||
<code bash> | <code bash> | ||
- | $ PATH=" | + | $ PATH=" |
</ | </ | ||
- | ==== Použití CLI ==== | + | ===== Použití CLI ===== |
< | < | ||
Řádek 375: | Řádek 273: | ||
--user USER User name | --user USER User name | ||
--password PASSWORD | --password PASSWORD | ||
+ | --scope [SCOPE] | ||
--token TOKEN Token | --token TOKEN Token | ||
--token-lifetime LIFETIME | --token-lifetime LIFETIME | ||
Řádek 419: | Řádek 318: | ||
přístupem k '' | přístupem k '' | ||
</ | </ | ||
+ | |||
+ | Při vytváření tokenu můžeme specifikovat scope: | ||
+ | <code bash> | ||
+ | $ vpsfreectl --auth token --scope ' | ||
+ | </ | ||
+ | |||
+ | Příkaz výše vytvoří autentizační token, který bude omezen na volání akcí nad resource '' | ||
==== Akce a parametry ==== | ==== Akce a parametry ==== |