ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ основному содСрТимому

πŸ“˜ ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ докумСнтация ΠΏΠΎ 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"
}
// ...ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅
]
}

Conditions (Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ)​

conditions β€” это ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ для Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ запросов ΠΊ API.
Бинтаксис Π±Π»ΠΈΠ·ΠΎΠΊ ΠΊ SQL WHERE.

Ѐормат​

  • ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‘Ρ‚ΡΡ Π² query-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… URL.
  • Π‘Ρ‚Ρ€ΠΎΠΊΠ° условий, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ нСсколько условий Ρ‡Π΅Ρ€Π΅Π· AND / OR.
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ скобки для ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°.

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ возмоТности​

  • БравнСния: =, <>, >, <, >=, <=, LIKE
  • ЛогичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹: AND, OR
  • Π“Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ°: ( ... )
  • Π’ΠΈΠΏΡ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ: строки "...", числа, Π±ΡƒΠ»Π΅Π²ΠΎ true/false, ссылки ref-*

Π“ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ примСры​

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ conditionsОписаниС
status = "active"Π’Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ записи со статусом Β«activeΒ»
amount > 1000Π’Π΅Ρ€Π½ΡƒΡ‚ΡŒ записи, Π³Π΄Π΅ amount > 1000
delete_mark = falseΠ˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ с ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠΎΠΉ удалСния
name LIKE "Test%"НазваниС начинаСтся с Β«TestΒ»
project = "ref-projects-123"ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈΠ· ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Π Π°Π±ΠΎΡ‡ΠΈΠ΅ кСйсы​

1. По ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ ΠΈ ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠ΅ удалСния

"conditions": "space = \"ref-projects-da99eac1-7641-4e6a-873e-aa714592ea6f\" AND delete_mark = false"

2. БообщСния ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ‡Π°Ρ‚Π°

"conditions": "context = \"ref-assistant_context-90a88daa-511d-44aa-b43f-3a93391532ce\""

ΠŸΡ€ΠΈ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΌ синтаксисС возвращаСтся ошибка (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ 500).


ΠŸΠ°Π³ΠΈΠ½Π°Ρ†ΠΈΡβ€‹

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹β€‹

  • object_start β€” ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ (нумСрация с 1);
  • object_end β€” послСдний Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ (Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ).

ΠŸΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅β€‹

  • Если Π·Π°Π΄Π°Π½Ρ‹ ΠΎΠ±Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° β€” возвращаСтся срСз [object_start…object_end].
  • Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ совмСстно с conditions ΠΈ order.

Π€ΠΎΡ€ΠΌΠ°Ρ‚ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π° отвСта​

{
"object_start": 1,
"object_end": 3,
"objects": [ /* элСмСнты */ ]
}

ΠžΡˆΠΈΠ±ΠΊΠΈβ€‹

  • ΠžΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ значСния, object_start > object_end β€” ошибка (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ 400; ΠΏΡ€ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… β€” 500).

РСкомСндации​

  • Для «бСсконСчного скролла»: фиксируйтС сортировку ΠΈ шаг, Π½Π°ΠΏΡ€. 1–50, Π·Π°Ρ‚Π΅ΠΌ 51–100.
  • На Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π²Ρ‹Π±ΠΎΡ€ΠΊΠ°Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ сТатиС (gzip).

Бортировка​

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹β€‹

  • order β€” имя поля сортировки. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ β€” time_moment (Ссли Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ).
  • sort_direction β€” asc | desc.

БовСты​

  • Для ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ ΠΏΠ°Π³ΠΈΠ½Π°Ρ†ΠΈΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΠΉΡ‚Π΅ Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‰Π΅Π΅ ΠΏΠΎΠ»Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, time_moment + ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ref, Ссли доступно).
  • Π―Π²Π½ΠΎ Π·Π°Π΄Π°Π²Π°ΠΉΡ‚Π΅ sort_direction.

Π¨Π°Π±Π»ΠΎΠ½ запроса

curl -G 'http://<HOST>/<BASE_PATH>/hs/api/v2/<endpoint>'   -H 'Authorization: Basic <BASIC_TOKEN>'   --data-urlencode 'conditions=<условия>'   --data-urlencode 'order=<ΠΏΠΎΠ»Π΅>'   --data-urlencode 'sort_direction=<asc|desc>'   --data-urlencode 'object_start=1'   --data-urlencode 'object_end=30'

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ CRUD Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ справочника «ВСги»​

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ тСг​

curl -X POST 'http://localhost/hs/api/v2/tags'   -H 'Authorization: Basic <TOKEN>'   -H 'Content-Type: application/json'   -d '{
"НаимСнованиС": "Новый Ρ‚Π΅Π³",
"Π¦Π²Π΅Ρ‚Π€ΠΎΠ½Π°": "#FFFFFF",
"ЦвСтВСкста": "#000000"
}'

ΠžΡ‚Π²Π΅Ρ‚ (ΠΏΡ€ΠΈΠΌΠ΅Ρ€)

{
"ref": "ref-tags-123456",
"НаимСнованиС": "Новый Ρ‚Π΅Π³",
"Π¦Π²Π΅Ρ‚Π€ΠΎΠ½Π°": "#FFFFFF",
"ЦвСтВСкста": "#000000",
"ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅": "Новый Ρ‚Π΅Π³"
}

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ список Ρ‚Π΅Π³ΠΎΠ² (с ΠΏΠ°Π³ΠΈΠ½Π°Ρ†ΠΈΠ΅ΠΉ ΠΈ сортировкой)​

curl -G 'http://localhost/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=50'

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚Π΅Π³ ΠΏΠΎ ссылкС​

curl -G 'http://localhost/hs/api/v2/tags/ref-tags-123456'   -H 'Authorization: Basic <TOKEN>'

Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ тСг​

curl -X PUT 'http://localhost/hs/api/v2/tags/ref-tags-123456'   -H 'Authorization: Basic <TOKEN>'   -H 'Content-Type: application/json'   -d '{
"НаимСнованиС": "Π’Π΅Π³ ΠΎΠ±Π½ΠΎΠ²Π»Ρ‘Π½",
"Π¦Π²Π΅Ρ‚Π€ΠΎΠ½Π°": "#EEEEEE",
"ЦвСтВСкста": "#111111"
}'

Π£Π΄Π°Π»ΠΈΡ‚ΡŒ Ρ‚Π΅Π³ (ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠ° удалСния)​

curl -X DELETE 'http://localhost/hs/api/v2/tags/ref-tags-123456'   -H 'Authorization: Basic <TOKEN>'   --data-urlencode 'delete_mark=true'

ИспользованиС Π²Π½ΡƒΡ‚Ρ€ΠΈ 1Π‘ (Π±Π΅Π· HTTP)​

МоТно Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ API Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈΠ· ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ 1Π‘.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ = Новый Массив();
ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("ΠŸΡ€ΠΈΠ²Π΅Ρ‚");
Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(API.Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒΠœΠ΅Ρ‚ΠΎΠ΄("Π­Ρ…ΠΎ", ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹)); // β†’ ΠŸΡ€ΠΈΠ²Π΅Ρ‚

ИспользованиС Π² React-фронтСндС​

  • React Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅ эндпоинтами ΠΈ JSON-ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Π°ΠΌΠΈ.
  • Доступны ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π½Π΅Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ 1Π‘ (Π²ΠΈΠ΄Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· React-Ρ„ΠΎΡ€ΠΌ).
  • Для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Swagger-ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡŽ клиСнтского ΠΊΠΎΠ΄Π°.

Swagger / OpenAPI​

Π‘Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ описаниС API Π² 1Π‘:

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = APIΠ“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ.ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠ‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽOpenAPI()

ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ сайт https://editor.swagger.io ΠΈ Π²ΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ JSON.

ΠŸΡƒΠ±Π»ΠΈΡ‡Π½Π°Ρ спСцификация: https://softonit.ru/api/docs/uit_openapi_specification.json

ПослС Π²Ρ‹Ρ…ΠΎΠ΄Π° УИВ4 β€” ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ JSON-ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Π½Π° сайтС ΠΈΠ· свСТСй Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ.


ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ Ρ€Π΅Π·ΡŽΠΌΠ΅β€‹

  • API ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚/Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ JSON, авторизация β€” Basic Auth.
  • Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹: conditions, order, sort_direction, object_start, object_end, get_view_references, fields.
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ пагинация ΠΈ сортировка; для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π²Ρ‹Π±ΠΎΡ€ΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ gzip.
  • МоТно Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ снаруТи (curl/Postman/React) ΠΈ ΠΈΠ·Π½ΡƒΡ‚Ρ€ΠΈ 1Π‘ (Π±Π΅Π· HTTP).
  • ΠΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Π΄Π΅Ρ€ΠΆΠΈΡ‚Π΅ Π² Swagger (OpenAPI).

Подсказка: запрос curl ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² Postman β€” ΠΎΠ½ автоматичСски Ρ€Π°Π·Π»ΠΎΠΆΠΈΡ‚ Π΅Π³ΠΎ ΠΏΠΎ полям запроса.