REST API
REST API
Документація:
Відео-огляд:
Модуль допомагає організувати програмний інтерфейс для зовнішніх та внутрішніх програм.
З 01.01.2020 запускаємо програму підтримки громадських організацій, некомерційних фондів, співтовариств волонтерів, тобто всіх тих компаній, які працюють на благо суспільства. У рамках цієї програми вже підтримали проект Автоволонтерів Росії: Докладніше про програму ви можете дізнатися у наших операторів за будь-якими доступними каналами зв'язку. |
Один із фактів про модуль: на основі даного модуля студенти вивчають роботу REST API, а також реалізують власні інтерфейси, які пізніше здають у вигляді курсових і навіть дипломних робіт. |
Одне з найпоширеніших питань: чи може модуль завантажувати на сайт залишки по товарах з сайту постачальника? Ні, модуль не може імпортувати залишки товарів з сайту постачальника. Модуль допомагає реалізувати API на вашому сайті, щоб сторонні клієнти (інші сайти, мобільні програми тощо) могли віддавати або забирати дані з вашого сайту. |
Раніше нами вже було розроблено та опубліковано на безкоштовній основі модуль REST API. Даний модуль добре себе зарекомендував для вирішення завдань міжплатформних обмінів, показниками цього факту є відгуки та кількість завантажень. Згодом стало з'являтися безліч запитів щодо доопрацювання модуля, і як наслідок, ми прийняли рішення про написання нової, вдосконаленої версії модуля, що вже полюбився.
[P]
У даній версії ми врахували всі недоліки та побажання з минулої версії, дуже добре оптимізували ядро модуля, тепер воно працює набагато швидше, і на цьому ми робимо свій основний наголос.
Крім переробки ядра важливим чинником є і додавання карти роутів. За рахунок карти з'явилася можливість дуже гнучко налаштовувати параметри для будь-якого окремого роуту.
[P]
Що отримаєте від придбання модуля:
- Зменшення вартості розробки API за рахунок скорочення часу на програмування інтерфейсу.
[P] - Підтримка від професіоналів, які мають великий досвід створення API.
[p]- Готовий RESTful API інтерфейс, з бібліотекою вбудованих методів, а також з можливістю створювати власні, кастомні методи, що реалізують будь-яку, необхідну логіку. І звісно, з автогенерируемой документацією, що можна надати стороннім разработчикам.
Можливості:
- Використання API 1С-Бітрікс через нативний рест-провайдер.
[p] - Завантаження інтерфейсу до запуску публічної частини сайту.
[P]- Відсутність необхідності додаткового налаштування платформи.
- Віртуальний шлях до інтерфейсу, у тому числі і від кореня домену (
- Настроювання доступу в адміністративній частині сайту до розділів модуля на рівні груп користувачів.
[P] - Автогенерована документація в адміністративному розділі. [/ P] - Автогенерована документація для клієнта в JSON-форматі. [P] - Підтримка карт роутів.
[P]- Створення довільних роутів ([URL=/{api}/user/]/{api}/user/,
- Встановлення власних контролерів для роутів (класи, зовнішні класи, php-файли).
[P]- Налаштування рівня доступу до роутів.
- Валідація параметрів вхідного запиту.
- Авторизація по логіну та паролю для конкретного роуту. [/ P] - Авторизація по токену для конкретного роуту.
- генерація токенів для користувачів.
[P] - Підтримка списку "білих" логінів/токенів для конкретного роуту.
[P] - Перевірка груп користувача при авторизації для конкретного роуту.
[P]- Можливість обмеження кількості запитів в одиницю часу на рівні груп користувачів.
- Можливість передачі додаткових заголовків при відповіді.
- Можливість деактивувати конкретний роут.
[P] - Кешування вхідних запитів та відповідей засобами платформи.
[P] - Журналування запитів та відповідей.
[p]- Налаштування CORS з адміністративної частини сайту.
- Наявність функцій, що спрощують розробку інтерфейсу. [/ P] - Наявність бібліотеки вбудованих роутів, що прискорюють розробку інтерфейсу.
[P] - Наявність прикладів та посібників для розробника.
[P]
Докладніше всі можливості, функції та приклади описані в документації, яка є в модулі.
Чим цей модуль відрізняється від REST API Бітрікса?
1.1. У REST API Бітрікса мало гнучкості, є необхідність використовувати саме надані роути. Даний модуль дозволяє формувати свої роути, писати свою логіку при обробці запиту, тобто надає більше гнучкості;
[P] 1.2. REST API Бітрікса реалізовано не зовсім згідно з архітектурним стилем REST;
[P] 1.3. У REST API Бітрікса, при обробці запиту часом відбуваються «зайві» дії, які можуть створювати додаткову затримку при відповіді клієнту, може це не дуже критично, але API має бути настільки швидким, наскільки це можливо;
1.4. API не завжди має бути доступним всім, іноді воно має бути унікальним (роути, параметри, ... ) для проекту, але за рахунок загального стилю REST API Бітрікса, документація якого в загальному доступі, ця унікальність порушується і створює додаткову лайзеку для атак на сайт. Використовуючи цей модуль, можна вказувати власне ім'я роуту, де працюватиме API. Наприклад:
1.5. У REST API Бітрікса немає можливості якось керувати інтерфейсом з адміністративної частини сайту;
[P] 1.6. У REST API Бітрікса немає можливості регулювати доступи до роутів, обмежувати доступ за кількістю запитів від клієнта, журналювати запити та відповіді та деякі інші функції.
1.7. На даний момент, у REST API Бітрікса, наприклад, немає можливості створити замовлення через API. Використовуючи цей модуль, ви можете реалізувати цей функціонал.
1.8 В цілому, даний модуль пишеться і розвивається на основі запитів користувачів, але REST API Бітрікс пишеться на розсуд Бітрікс. Плюс це чи мінус - вирішувати вам.
[P]
Примітка:
- Мінімальна версія PHP >= 8.0 (відповідно до
[p]- Обов'язково наявність файлу для обробки 404 помилки (зазвичай є в корені сайту - 404.php) з усіма "директивами" 1С-Бітрікса.
- Якщо використовується веб-сервер Apache: обов'язково прописати ErrorDocument 404 /404.php в .htaccess, розташований у корені сайту, або прямо в конфігураційному файлі Apache.[ /P]
[P]- Якщо використовується веб-сервер Nginx: обов'язково прописати error_page 404 = /404.php?$query_string; до секції server конфігураційного файлу (Зазвичай nginx.conf).
- Для роботи CORS-запитів необхідно, щоб на веб-сервері були дозволені запити типу OPTIONS.
Дякую Вам за ознайомлення з нашим модулем. Якщо у Вас є питання/пропозиції, то ми завжди готові обговорити їх через контакти, зазначені в розділі підтримки.
Для тестування роботи модуля ви можете використовувати офіційну віртуальну лабораторію 1С-Бітрікс. |