Документація API
REST API + webhooks. Все, що потрібно, щоб приєднати ваші системи до MiEspacio за день.
Початок роботи
Базова URL-адреса
Усі запити до API виконуються на наступну базову URL-адресу:
/api//v1Публічні ендпоінти доступні без автентифікаціі. Автентифіковані ендпоінти потребують Bearer-токен, отриманий через ендпоінт входу.
Ендпоінти
Публічні ендпоінти
Ці ендпоінти доступні без автентифікаціі.
| Метод | URL | Опис | Авт. |
|---|---|---|---|
| GET | /companies | Список компаній | Ні |
| GET | /companies/{slug} | Деталі компаніі | Ні |
| GET | /companies/{slug}/services | Послуги компаніі | Ні |
| GET | /companies/{slug}/reviews | Відгуки про компанію | Ні |
| GET | /companies/{uuid}/booking/availability | Доступність бронювання | Ні |
| POST | /companies/{uuid}/bookings | Створити бронювання | Ні |
| GET | /restaurants | Список ресторанів | Ні |
| GET | /events | Список подій | Ні |
| GET | /vacancies | Список вакансій | Ні |
| GET | /blog/posts | Публікаціі блогу | Ні |
| GET | /business-types | Типи бізнесу | Ні |
| GET | /platform-stats | Статистика платформи | Ні |
Ендпоінти автентифікаціі
Використовуються для отримання та управління токенами доступу.
| Метод | URL | Опис | Авт. |
|---|---|---|---|
| POST | /auth/login | Увійти | Ні |
| POST | /auth/register | Зареєструватися | Ні |
| POST | /auth/refresh | Оновити токен | Так |
| GET | /auth/me | Поточний користувач | Так |
Автентифікація
MiEspacio використовує Bearer-токен автентифікацію на базі Laravel Sanctum. Для доступу до автентифікованих ендпоінтів:
- Надішліть POST-запит на /auth/login з вашими обліковими даними.
- Додайте отриманий токен у заголовок Authorization наступних запитів.
- Оновіть токен до закінчення терміну діі через ендпоінт оновлення.
Приклад заголовку:
Authorization: Bearer your-token-hereЛіміти запитів
Запити до API обмежені за IP-адресою для забезпечення справедливого використання.
| Область | Ліміт |
|---|---|
| Публічні ендпоінти | 2 000 запитів/хв |
| Ендпоінти бронювання | 300 запитів/хв |
| Ендпоінти автентифікаціі | 25 запитів/хв |
При перевищенні ліміту ви отримаєте відповідь 429 Too Many Requests. Заголовок Retry-After вказує скільки секунд чекати.
Формат відповіді
Усі відповіді повертаються у форматі JSON. Успішні відповіді зазвичай мають таку структуру:
{
"data": [
{
"id": 1,
"name": "La Maison Barcelona",
"slug": "la-maison-barcelona"
}
],
"meta": {
"current_page": 1,
"last_page": 4,
"per_page": 20,
"total": 78
}
}Пагіновані відповіді містять стандартні метадані пагінаціі Laravel (current_page, last_page, per_page, total).
Коди помилок
API використовує стандартні HTTP-коди стану для позначення результату запиту.
| Код | Значення |
|---|---|
200 | OK — Запит виконано успішно |
201 | Created — Ресурс створено успішно |
400 | Bad Request — Некоректні параметри запиту |
401 | Unauthorized — Відсутня або недійсна автентифікація |
403 | Forbidden — Недостатньо прав доступу |
404 | Not Found — Ресурс не існує |
422 | Unprocessable Entity — Помилки валідаціі |
429 | Too Many Requests — Ліміт запитів перевищено |
500 | Internal Server Error — Щось пішло не так на сервері |
Відповіді з помилками містять повідомлення та, де це застосовно, структурований код помилки:
{
"message": "The selected time slot is no longer available.",
"errors": {
"slot": [
"Please choose another available time."
]
}
}Потрібен ключ API?
Зверніться до нашоі команди для запиту доступу до API для вашого додатку.
Зв'язатися