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:30] – [Použití] michalkrenmanualy:api [2024/12/12 12:10] (aktuální) – [1) curl a Treq API] zimandl
Řádek 11: Řádek 11:
 Takto lze vytvořit libovolné množství osobních přístupových tokenů. Je také možné tokeny libovolně mazat. Po vypršení platnosti tokenu je třeba vytvořit nový. Takto lze vytvořit libovolné množství osobních přístupových tokenů. Je také možné tokeny libovolně mazat. Po vypršení platnosti tokenu je třeba vytvořit nový.
  
-===== Použití API =====+===== Použití =====
  
 Token se posílá v HTTP požadavku na URL ''https://korpus.cz/login'' metodou POST jako parametr ''personal_access_token''. Token se posílá v HTTP požadavku na URL ''https://korpus.cz/login'' metodou POST jako parametr ''personal_access_token''.
Řá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>