π ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠ°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ API (1Π‘)
Π§ΡΠΎ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅β
API β ΡΡΠΎ Π΅Π΄ΠΈΠ½Π°Ρ ΡΠΎΡΠΊΠ° Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π΄Π°Π½Π½ΡΠΌ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ 1Π‘. ΠΠ½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ:
- ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠΏΠΈΡΠΊΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠΈ ΠΈΠ»ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ);
- ΠΈΡΠΊΠ°ΡΡ ΠΈ ΡΠΈΠ»ΡΡΡΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅;
- Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ, ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΈ ΡΠ΄Π°Π»ΡΡΡ Π·Π°ΠΏΠΈΡΠΈ;
- ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ ΠΈΠ»ΠΈ ΡΡΠΎΠ½ΡΠ΅Π½Π΄ΠΎΠΌ (React, Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½ΡΡ);
- Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ (Swagger / OpenAPI).
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ APIβ
ΠΠ°Π·ΠΎΠ²ΡΠΉ Π°Π΄ΡΠ΅Ρ (ΠΏΡΠΈΠΌΠ΅Ρ):
http://<HOST>/<BASE_PATH>/hs/api/v2/
ΠΠ°ΠΌΠ΅Π½ΠΈΡΠ΅ <HOST> ΠΈ <BASE_PATH> Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ°.
ΠΠ²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡβ
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ HTTP Basic Auth:
- ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ:
Authorization: Basic <TOKEN> <TOKEN>= Base64 ΠΎΡ ΡΡΡΠΎΠΊΠΈΠ»ΠΎΠ³ΠΈΠ½:ΠΏΠ°ΡΠΎΠ»Ρ
β οΈ Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π²ΡΠ΅Π³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ HTTPS.
ΠΡΠΈΠΌΠ΅Ρ:
curl -G 'http://localhost/hs/api/v2/echo?text=ΠΡΠΈΠ²Π΅Ρ' -H 'Authorization: Basic dXNlcjpwYXNzd29yZA=='
Π€ΠΎΡΠΌΠ°Ρ ΠΎΠ±ΠΌΠ΅Π½Π°β
- Π€ΠΎΡΠΌΠ°Ρ: JSON
- ΠΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ°: UTF-8
- ΠΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΡΠΈΡ ΠΎΡΠ²Π΅ΡΠΎΠ² (gzip)
ΠΠ»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡβ
ΠΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΏΠΎΡΡΠΈ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ Π·Π°ΠΏΡΠΎΡΡ:
| ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
|---|---|
conditions | ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΡ (SQL-ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ) |
order | ΠΏΠΎΠ»Π΅ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ time_moment) |
sort_direction | Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ: asc / desc |
object_start | Ρ ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π½Π°ΡΠ°ΡΡ (Π½ΡΠΌΠ΅ΡΠ°ΡΠΈΡ Ρ 1) |
object_end | ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²Π΅ΡΠ½ΡΡΡ |
get_view_references | Π²Π΅ΡΠ½ΡΡΡ Β«ΡΠΈΡΠ°Π΅ΠΌΡΠ΅Β» ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΡΠ»ΠΎΠΊ |
fields | ΡΠΏΠΈΡΠΎΠΊ ΠΏΠΎΠ»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ Π²Π΅ΡΠ½ΡΡΡ (ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠ³Π½ΠΎΡΠΈΡΡΡΡΡΡ) |
ΠΡΡΡΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡβ
1) ΠΡΠΎΡΡΠΎΠ΅ ΡΡ ΠΎ-ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅β
ΠΠ°ΠΏΡΠΎΡ
curl -G 'http://localhost/hs/api/v2/echo' -H 'Authorization: Basic <TOKEN>' --data-urlencode 'text=ΠΡΠΈΠ²Π΅Ρ'
ΠΡΠ²Π΅Ρ
"ΠΡΠΈΠ²Π΅Ρ"
2) ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ° ΡΠ΅Π³ΠΎΠ² Ρ ΠΏΠ°Π³ΠΈΠ½Π°ΡΠΈΠ΅ΠΉ ΠΈ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΎΠΉβ
ΠΠ°ΠΏΡΠΎΡ
curl -G 'http://localhost/uit/hs/api/v2/tags' -H 'Authorization: Basic <TOKEN>' --data-urlencode 'order=time_moment' --data-urlencode 'sort_direction=desc' --data-urlencode 'object_start=1' --data-urlencode 'object_end=13'
ΠΡΠ²Π΅Ρ (ΠΏΡΠΈΠΌΠ΅Ρ)
{
"object_start": 1,
"object_end": 13,
"objects": [
{
"time_moment": 63860867118442,
"ref": "ref-tags-92a2881f-ba51-11e7-8306-20cf306b6976",
"code": null,
"name": "ΠΠΈΡΠ°Ρ ΠΏΠ°ΡΠ°",
"delete_mark": false,
"representation": "ΠΠΈΡΠ°Ρ ΠΏΠ°ΡΠ°",
"color_background": "#E00A2A",
"color_text": "#FFFFFF"
},
{
"time_moment": 63860867118447,
"ref": "ref-tags-92a28820-ba51-11e7-8306-20cf306b6976",
"code": null,
"name": "Π·Π°ΡΠΏΠ»Π°ΡΠ°",
"delete_mark": false,
"representation": "Π·Π°ΡΠΏΠ»Π°ΡΠ°",
"color_background": "#6FF241",
"color_text": "#000000"
},
{
"time_moment": 63860867118452,
"ref": "ref-tags-92a28821-ba51-11e7-8306-20cf306b6976",
"code": null,
"name": "ΠΠ£Π",
"delete_mark": false,
"representation": "ΠΠ£Π",
"color_background": "#704647",
"color_text": "#FFFFFF"
}
// ...ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅
]
}