AplikaceAplikace
Nastavení

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revizePředchozí verze
Následující verze
Předchozí verze
manualy:api [2022/12/22 13:29] – [Postup získání osobního přístupového tokenu] michalkrenmanualy:api [2024/12/12 12:10] (aktuální) – [1) curl a Treq API] zimandl
Řádek 18: Řádek 18:
  
 <WRAP tip important 60%> <WRAP tip important 60%>
-Každá aplikace má specifický způsob dotazování. **Návody** pro použití API:+Popisy API jednotlivých aplikací:
   * [[https://github.com/czcorpus/kontext/wiki/HTTP-API|KonText]]   * [[https://github.com/czcorpus/kontext/wiki/HTTP-API|KonText]]
-  * [[https://wiki.korpus.cz/doku.php/manualy:treq:api|Treq]]+  * [[manualy:treq:api|Treq]]
 </WRAP> </WRAP>
 +
 +Každé API běží na vlastní adrese:
 +  * KonText: ''https://korpus.cz/kontext-api/v0.17''
 +  * Treq: ''https://korpus.cz/treq/api/v1''
  
 <WRAP round important 60%> <WRAP round important 60%>
Řádek 31: Řádek 35:
 ===== Příklady ===== ===== Příklady =====
  
-==== curl, dotaz do aplikace Treq ====+==== 1) curl Treq API ====
  
 <code bash> <code bash>
Řádek 39: Řádek 43:
 curl --cookie cookies.txt --cookie-jar cookies.txt -X POST -F 'personal_access_token=0a1b2c3d4e5f6-abc012...' 'https://korpus.cz/login' curl --cookie cookies.txt --cookie-jar cookies.txt -X POST -F 'personal_access_token=0a1b2c3d4e5f6-abc012...' 'https://korpus.cz/login'
 # Query Treq # Query Treq
-curl --cookie cookies.txt --cookie-jar cookies.txt 'https://treq.korpus.cz/api/v1?from=cs&to=en&multiword=false&regex=true&lemma=true&ci=true&pkgs[0]=SYNDICATE&pkgs[1]=CORE&query=pravda&order=perc&asc=false'+curl --cookie cookies.txt --cookie-jar cookies.txt 'https://korpus.cz/treq/api/v1?from=cs&to=en&multiword=false&regex=true&lemma=true&ci=true&pkgs[0]=SYNDICATE&pkgs[1]=CORE&query=pravda&order=perc&asc=false'
 </code> </code>
  
-==== Python, dotaz do aplikace KonText ====+==== 2) Python KonText API ====
  
 <code python> <code python>
Řádek 53: Řádek 57:
 with requests.Session() as s: with requests.Session() as s:
     # Load cookies     # Load cookies
-    try+    try:
         with open(cookies_file, 'rb') as f:         with open(cookies_file, 'rb') as f:
             s.cookies.update(pickle.load(f))             s.cookies.update(pickle.load(f))
Řádek 99: Řádek 103:
         "async": False         "async": False
     }     }
-    r = s.post('https://korpus.cz/kontext/query_submit', params={'format': 'json'}, json=request_body)+    r = s.post('https://korpus.cz/kontext-api/v0.17/query_submit', params={'format': 'json'}, json=request_body)
     response_json = r.json()     response_json = r.json()
     print(response_json)     print(response_json)
Řádek 105: Řádek 109:
     # Displaying a concordance     # Displaying a concordance
     conc_persistence_op_id = response_json['conc_persistence_op_id']     conc_persistence_op_id = response_json['conc_persistence_op_id']
-    r = s.get('https://korpus.cz/kontext/view', params={'format': 'json', 'q': '~'+conc_persistence_op_id})+    r = s.get('https://korpus.cz/kontext-api/v0.17/view', params={'format': 'json', 'q': '~'+conc_persistence_op_id})
     print(r.json())     print(r.json())
  
Řádek 111: Řádek 115:
     with open(cookies_file, 'wb') as f:     with open(cookies_file, 'wb') as f:
         pickle.dump(s.cookies, f)         pickle.dump(s.cookies, f)
 +</code>
 +
 +==== 3) R a KonText API ====
 +
 +<code r>
 +library(httr)
 +
 +# Log in
 +personal_access_token = '0a1b2c3d4e5f6-abc012...'
 +r <- POST("https://korpus.cz/login", body=list(personal_access_token=personal_access_token))
 +
 +# Creating a concordance query
 +request_body <- '{
 + "type": "concQueryArgs",
 + "structs": ["text", "s"],
 + "refs": ["%3Dtext.txtype", "%3Ddoc.author"],
 + "queries": [
 + {
 + "qtype": "advanced",
 + "corpname":"syn2020",
 + "query": "[word=\\\"celou\\\"] [lemma=\\\"pravda\\\"]"
 + }
 + ]
 +}'
 +
 +r <- POST("https://korpus.cz/kontext-api/v0.17/query_submit?format=json", content_type_json(), body=request_body)
 +
 +# Displaying a concordance
 +response_json <- content(r)
 +conc_persistence_op_id <- response_json$conc_persistence_op_id
 +params <- list(
 + format="json",
 + q=paste0("~", conc_persistence_op_id),
 + refs="=text.txtype",
 + refs="=doc.author",
 + pagesize=100
 +)
 +r <- GET("https://korpus.cz/kontext-api/v0.17/view", query=params)
 +content(r)
 </code> </code>