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 15:26] – michalkren | manualy:api [2024/12/12 12:10] (aktuální) – [1) curl a Treq API] zimandl | ||
---|---|---|---|
Řá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 13: | Řádek 13: | ||
===== Použití ===== | ===== Použití ===== | ||
- | Vyžaduje-li aplikace autentizaci, | + | Token se posílá |
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%> |
+ | Popisy | ||
* [[https:// | * [[https:// | ||
- | * [[https:// | + | * [[manualy: |
+ | </ | ||
- | Následující příklady zahrnují vše zmíněné. | + | Každé API běží na vlastní adrese: |
+ | * KonText: '' | ||
+ | * Treq: '' | ||
- | ==== curl ==== | + | <WRAP round important 60%> |
+ | Každá aplikace má také vlastní **limity**, po jejichž překročení hrozí zablokování přístupu k API. | ||
+ | * **KonText**: | ||
+ | * **Treq**: max. 30 požadavků za minutu a současně max. 5000 požadavků za den | ||
+ | </ | ||
- | Dotaz do aplikace | + | ===== Příklady ===== |
+ | |||
+ | ==== 1) curl a Treq API ==== | ||
<code bash> | <code bash> | ||
Řádek 33: | Řádek 43: | ||
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> | ||
Řádek 49: | Řádek 57: | ||
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)) | ||
Řádek 95: | Řádek 103: | ||
" | " | ||
} | } | ||
- | r = s.post(' | + | r = s.post(' |
response_json = r.json() | response_json = r.json() | ||
print(response_json) | print(response_json) | ||
Řádek 101: | Řádek 109: | ||
# Displaying a concordance | # Displaying a concordance | ||
conc_persistence_op_id = response_json[' | conc_persistence_op_id = response_json[' | ||
- | r = s.get(' | + | r = s.get(' |
print(r.json()) | print(r.json()) | ||
Řádek 107: | Řádek 115: | ||
with open(cookies_file, | with open(cookies_file, | ||
pickle.dump(s.cookies, | pickle.dump(s.cookies, | ||
+ | </ | ||
+ | |||
+ | ==== 3) R a KonText API ==== | ||
+ | |||
+ | <code r> | ||
+ | library(httr) | ||
+ | |||
+ | # Log in | ||
+ | personal_access_token = ' | ||
+ | r <- POST(" | ||
+ | |||
+ | # Creating a concordance query | ||
+ | request_body <- '{ | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | ] | ||
+ | }' | ||
+ | |||
+ | r <- POST(" | ||
+ | |||
+ | # Displaying a concordance | ||
+ | response_json <- content(r) | ||
+ | conc_persistence_op_id <- response_json$conc_persistence_op_id | ||
+ | params <- list( | ||
+ | format=" | ||
+ | q=paste0(" | ||
+ | refs=" | ||
+ | refs=" | ||
+ | pagesize=100 | ||
+ | ) | ||
+ | r <- GET(" | ||
+ | content(r) | ||
</ | </ |