Rozdíly
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 | ||
| manualy:api [2022/12/16 16:08] – michalkren | manualy:api [2026/02/19 12:40] (aktuální) – [Použití] tomasmachalek | ||
|---|---|---|---|
| Řádek 3: | Řádek 3: | ||
| Vybrané aplikace umožňují přístup pomocí [[https:// | Vybrané aplikace umožňují přístup pomocí [[https:// | ||
| - | ===== Postup získání osobního přístupového tokenu ===== | + | ===== Postup |
| - Pokud nejste přihlášeni, | - Pokud nejste přihlášeni, | ||
| Řádek 17: | Řádek 17: | ||
| V odpovědi přijde session cookie, kterou je následně potřeba posílat s každým dalším požadavkem. Pro rychlejší komunikaci je vhodné session cookie uložit a používat ji v rámci několika hodin opakovaně. | V odpovědi přijde session cookie, kterou je následně potřeba posílat s každým dalším požadavkem. Pro rychlejší komunikaci je vhodné session cookie uložit a používat ji v rámci několika hodin opakovaně. | ||
| - | Každá aplikace má specifický způsob dotazování. Návody pro použití | + | <WRAP tip important 60%> |
| - | * [[https://github.com/czcorpus/kontext/wiki/HTTP-API|KonText]] | + | Popisy |
| - | * [[https://wiki.korpus.cz/doku.php/manualy: | + | * [[https://korpus.cz/mquery/api/docs/index.html|MQuery]] |
| + | * [[manualy: | ||
| + | * <del>[[https://github.com/czcorpus/kontext/ | ||
| + | </ | ||
| - | ===== Příklady ===== | + | Každé API běží na vlastní adrese: |
| - | ==== curl ==== | + | * MQuery: '' |
| + | * Treq: '' | ||
| + | * < | ||
| - | Dotaz do aplikace Treq | + | <WRAP round important 60%> |
| + | Každá | ||
| + | * **KonText**: | ||
| + | * **Treq**: max. 30 požadavků za minutu a současně max. 5000 požadavků za den | ||
| + | </ | ||
| + | |||
| + | ===== Příklady ===== | ||
| + | |||
| + | ==== 1) curl a Treq API ==== | ||
| <code bash> | <code bash> | ||
| Řádek 33: | Řádek 46: | ||
| curl --cookie cookies.txt --cookie-jar cookies.txt -X POST -F ' | curl --cookie cookies.txt --cookie-jar cookies.txt -X POST -F ' | ||
| # Query Treq | # Query Treq | ||
| - | curl --cookie cookies.txt --cookie-jar cookies.txt ' | + | curl --cookie cookies.txt --cookie-jar cookies.txt ' |
| </ | </ | ||
| - | ==== Python | + | ==== 2) Python |
| - | + | ||
| - | Dotaz do aplikace KonText | + | |
| <code python> | <code python> | ||
| # | # | ||
| - | import | + | import requests |
| + | import pprint | ||
| + | import pickle | ||
| personal_access_token = ' | personal_access_token = ' | ||
| cookies_file = ' | cookies_file = ' | ||
| + | corpus = ' | ||
| + | timeout = 10 | ||
| with requests.Session() as s: | with requests.Session() as s: | ||
| # Load cookies | # Load cookies | ||
| - | try | + | try: |
| with open(cookies_file, | with open(cookies_file, | ||
| s.cookies.update(pickle.load(f)) | s.cookies.update(pickle.load(f)) | ||
| except FileNotFoundError: | except FileNotFoundError: | ||
| pass | pass | ||
| + | r = s.post(' | ||
| + | r = s.get( | ||
| + | f' | ||
| + | params=dict( | ||
| + | q=' | ||
| + | attr=' | ||
| + | ), | ||
| + | timeout=timeout | ||
| + | ) | ||
| + | pprint.pp(r.json()) | ||
| - | # Log in | + | # Store cookies |
| - | | + | |
| + | pickle.dump(s.cookies, f)</ | ||
| - | # Creating a concordance query | + | ==== 3) R a MQuery API ==== |
| - | request_body | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | ], | + | |
| - | " | + | |
| - | " | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | }, | + | |
| - | " | + | |
| - | } | + | |
| - | r = s.post(' | + | |
| - | response_json | + | |
| - | print(response_json) | + | |
| - | | + | <code r> |
| - | | + | library(httr) |
| - | | + | library(jsonlite) |
| - | print(r.json()) | + | |
| + | personal_access_token <- ' | ||
| + | cookies_file <- ' | ||
| + | corpus <- ' | ||
| + | timeout_secs <- 10 | ||
| + | |||
| + | # Create | ||
| + | handle <- handle('https:// | ||
| + | cookie_cfg <- config( | ||
| + | cookiefile | ||
| + | cookiejar | ||
| + | ) | ||
| + | |||
| + | # Log in | ||
| + | r <- POST( | ||
| + | | ||
| + | handle = handle, | ||
| + | cookie_cfg, | ||
| + | body = list(personal_access_token = personal_access_token), | ||
| + | encode | ||
| + | timeout(timeout_secs) | ||
| + | ) | ||
| + | |||
| + | # Frequency query via MQuery | ||
| + | r <- GET( | ||
| + | paste0(' | ||
| + | handle = handle, | ||
| + | cookie_cfg, | ||
| + | query = list( | ||
| + | | ||
| + | attr = 'word' | ||
| + | | ||
| + | timeout(timeout_secs) | ||
| + | ) | ||
| + | |||
| + | print(content(r)) | ||
| - | # Store cookies | ||
| - | with open(cookies_file, | ||
| - | pickle.dump(s.cookies, | ||
| </ | </ | ||