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í verzePoslední revizeObě strany příští revize | ||
navody:vps:api [2018/11/28 19:48] – [Práce s API] fix haveapi js lib url uxes | navody:vps:api [2024/01/02 20:52] – aither | ||
---|---|---|---|
Řádek 2: | Řádek 2: | ||
====== API ====== | ====== API ====== | ||
- | Naše API běží na adrese https:// | + | Naše API běží na adrese https:// |
- | akcí, stejně jako z webového | + | co jde naklikat ve webovém |
- | správa uživatelských profilů (adresa, e-mail, apod.). | + | běžící na https:// |
- | + | ||
- | Ve skutečnosti webové rozhraní běžící na https:// | + | |
- | využívá a pro každý úkon jej volá. | + | |
===== Dokumentace API ===== | ===== Dokumentace API ===== | ||
- | Dokumentace API, tzn. seznam | + | Dokumentace API, tzn. seznam |
- | parametrů je k vidění na https:// | + | parametrů je k vidění na https:// |
- | Bez přihlášení se zobrazuje seznam všech | + | Bez přihlášení se zobrazuje seznam všech |
pracovat pouze administrátoři. Vpravo nahoře se lze přihlásit stejnými údaji | pracovat pouze administrátoři. Vpravo nahoře se lze přihlásit stejnými údaji | ||
jako do vpsAdminu a poté se zobrazí pouze objekty, akce a parametry, se | jako do vpsAdminu a poté se zobrazí pouze objekty, akce a parametry, se | ||
Řádek 26: | Řádek 23: | ||
* Ruby - https:// | * Ruby - https:// | ||
- | * PHP - https:// | + | * PHP - https:// |
* JavaScript - https:// | * JavaScript - 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 40: | Řá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. Funguje to tak, že klient nejprve | + | * [[# |
- | požádá o vytvoření tokenu, k tomu potřebuje jméno a heslo. Jakmile dostane | + | * [[#tokeny|Pomocí |
- | token, může jméno a heslo zapomenout a dále se autentizuje získaným tokenem. | + | |
- | Tokeny mohou být několika typů s různě dlouhou životností: | + | Konkrétní ukázky autentizace pro podporované programovací jazyky a CLI najdete |
+ | v [[https:// | ||
- | * fixed - platnost tokenu je pevně dána | + | ==== HTTP Basic ==== |
- | * renewable_manual - platnost tokenu lze manuálně prodloužit | + | S každým požadavkem na API se musí zaslat jméno a heslo v HTTP hlavičce " |
- | * renewable_auto - platnost tokenu je prodloužena při každém požadavku | + | Je to dobrá volba pro jednorázové akce, pokud je ale potřeba API volat vícekrát nebo |
- | * permament - token je platný napořád, resp. dokud není smazán | + | automatizovaně, ukládání hesla na disk či neustálé opisování |
+ | nelze použít, pokud máte aktivované dvoufaktorové ověřování. | ||
- | Typ tokenu | + | ==== Tokeny ==== |
+ | Klient nejprve požádá o vytvoření | ||
+ | Jakmile | ||
+ | získaným tokenem. | ||
- | ===== CLI ===== | + | Tokeny mohou být několika typů s různě dlouhou životností: |
- | [[https:// | + | |
- | Pro správnou funkci vyžaduje Ruby >= 2.0 a nainstalované hlavičkové soubory | + | |
- | Ruby, OpenSSL a ncurses (většinou balíčky | + | |
- | < | + | * //fixed// - platnost tokenu |
- | Na OS X je nutné nainstalovat OpenSSL přes [[http://brew.sh/|Homebrew]] a až | + | * //renewable_manual// - platnost tokenu lze manuálně prodloužit |
- | poté se dá nainstalovat EventMachine (gem, jenž klient vyžaduje). | + | * // |
+ | * // | ||
- | <code bash> | + | Typ tokenu a časový interval, o který se prodlužuje, |
- | $ brew install openssl | + | |
- | $ sudo gem install eventmachine -- --with-opt-include="/ | + | |
- | </ | + | |
- | </ | + | |
- | Nainstalovat jej lze pomocí ruby gems: | + | ===== Scopes ===== |
+ | U autentizačních tokenů si můžeme zvolit, jaké akce bude token mít k dispozici. | ||
+ | To se může hodit u tokenů s dlouhou nebo permanentní platností. Každá akce | ||
+ | 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. | ||
- | <code bash> | + | Ukázky možných scopes: |
- | $ sudo gem install vpsfree-client | + | |
- | </ | + | |
- | < | + | * '' |
- | gem vypíše PATH pod kterým lze najít nainstalovaný balíček | + | * prázdný scope, přístup je povolen jen k akci '' |
- | <code bash> | + | * '' |
- | WARNING: | + | * '' |
- | gem executables will not run. | + | * '' |
+ | * '' | ||
+ | * '' | ||
- | </ | + | Scope může obsahovat globy pro název resource a akce. Akce je od resource oddělena křížkem (''#'' |
- | </ | + | |
- | ==== Instalace | + | ===== Instalace |
- | + | [[https:// | |
- | === Instalace Ubuntu (Linux subsystemu Windows 10) === | + | (rozhraní pro příkazovou řádku) |
- | + | Pro správnou funkci vyžaduje Ruby >= 2.7 a nainstalované hlavičkové soubory | |
- | | + | Ruby, OpenSSL a ncurses (většinou balíčky s příponou '' |
- | | + | Poté klienta nainstalujeme pomocí Ruby gems: |
- | | + | |
- | - vytvořit Unix username a heslo | + | |
- | - stisknout y a nechat nainstalovat základ Ubuntu | + | |
- | + | ||
- | === Instalace závislostí === | + | |
<code bash> | <code bash> | ||
- | sudo apt-get | + | gem install |
</ | </ | ||
- | === Quick & Dirty fix pro nastavení ruby2.1 jako výchozího namísto 1.9 === | + | Konkrétní postupy instalace podle platformy: |
- | + | ||
- | <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 | + | |
- | </ | + | |
- | + | ||
- | + | ||
- | ---- | + | |
+ | * Linux | ||
+ | * [[navody: | ||
+ | * [[navody: | ||
+ | * [[navody: | ||
+ | * [[navody: | ||
+ | * [[navody: | ||
Po instalaci by v '' | Po instalaci by v '' | ||
Řádek 140: | Řádek 115: | ||
<code bash> | <code bash> | ||
- | $ PATH=" | + | $ PATH=" |
</ | </ | ||
- | ==== Použití ==== | + | ===== Použití |
< | < | ||
Řádek 187: | Řádek 162: | ||
Available resources: | Available resources: | ||
- | auth_token | ||
cluster | cluster | ||
cluster_resource | cluster_resource | ||
+ | cluster_resource_package | ||
+ | cluster_resource_package.item | ||
dataset | dataset | ||
dataset.snapshot | dataset.snapshot | ||
Řádek 199: | Řádek 175: | ||
environment.config_chain | environment.config_chain | ||
environment.dataset_plan | environment.dataset_plan | ||
+ | host_ip_address | ||
integrity_check | integrity_check | ||
integrity_fact | integrity_fact | ||
integrity_object | integrity_object | ||
ip_address | ip_address | ||
- | ip_range | ||
ip_traffic | ip_traffic | ||
ip_traffic_monitor | ip_traffic_monitor | ||
Řádek 216: | Řádek 192: | ||
migration_plan.vps_migration | migration_plan.vps_migration | ||
network | network | ||
+ | network_interface | ||
node | node | ||
node.status | node.status | ||
Řádek 221: | Řádek 198: | ||
os_template | os_template | ||
pool | pool | ||
+ | session_token | ||
snapshot_download | snapshot_download | ||
+ | system_config | ||
transaction | transaction | ||
transaction_chain | transaction_chain | ||
Řádek 228: | Řádek 207: | ||
user.cluster_resource | user.cluster_resource | ||
user.public_key | user.public_key | ||
+ | user.mail_role_recipient | ||
+ | user.mail_template_recipient | ||
user.state_log | user.state_log | ||
+ | user_cluster_resource_package | ||
+ | user_cluster_resource_package.item | ||
+ | user_namespace | ||
+ | user_namespace_map | ||
+ | user_namespace_map.entry | ||
user_session | user_session | ||
vps | vps | ||
Řádek 234: | Řádek 220: | ||
vps.config | vps.config | ||
vps.feature | vps.feature | ||
- | vps.ip_address | ||
vps.mount | vps.mount | ||
vps.outage_window | vps.outage_window | ||
Řádek 240: | Řádek 225: | ||
vps.status | vps.status | ||
vps_config | vps_config | ||
+ | monitored_event | ||
+ | monitored_event.log | ||
+ | outage | ||
+ | outage.entity | ||
+ | outage.handler | ||
+ | outage_update | ||
+ | user_outage | ||
+ | vps_outage | ||
+ | vps_outage_mount | ||
+ | help_box | ||
+ | news_log | ||
+ | incoming_payment | ||
+ | payment_stats | ||
+ | user_account | ||
+ | user_payment | ||
+ | user_request | ||
+ | user_request.registration | ||
+ | user_request.change | ||
action_state | action_state | ||
</ | </ | ||
Řádek 268: | Řádek 271: | ||
-a, --auth METHOD | -a, --auth METHOD | ||
-s, --save | -s, --save | ||
- | --username | + | --user USER User name |
--password PASSWORD | --password PASSWORD | ||
+ | --scope [SCOPE] | ||
--token TOKEN Token | --token TOKEN Token | ||
--token-lifetime LIFETIME | --token-lifetime LIFETIME | ||
Řádek 314: | Řá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 ==== | ||
Řádek 686: | Řádek 697: | ||
aither | aither | ||
</ | </ | ||
+ |