Динамічний пошук
Динамічний пошук завантажує варіанти вибору з віддаленого API в реальному часі по мірі того, як анкетер вводить текст, забезпечуючи роботу з великими або часто оновлюваними наборами даних.
Динамічний пошук (також відомий як Search API) дозволяє полям select_one, select_multiple або text завантажувати варіанти вибору з віддаленого веб-сервісу під час виконання по мірі введення анкетером. Це правильний підхід, коли ваш список варіантів занадто великий для включення у CSV-файл, часто оновлюється або надходить з живої бази даних.
Appearance search-api()
Динамічний пошук налаштовується через стовпець appearance за допомогою функції search-api():
search-api(method, url, post_body, value_column, display, data_path, save_path)
Параметри
| Параметр | Опис |
|---|---|
method | Завжди використовуйте 'POST' |
url | Кінцева точка API для запиту |
post_body | Тіло JSON, що надсилається до API. Використовуйте %__input__% як заповнювач для поточного тексту пошуку анкетера |
value_column | Ключ у об’єкті відповіді для використання як збережене значення |
display | Ключ (або шаблон) для використання як мітка у випадаючому списку. Підтримує заповнювачі ##key## та вирази @{func} |
data_path | JSONPath до масиву об’єктів результатів у відповіді (наприклад, $.data, $.hits.hits.*._source) |
save_path | Назва, під якою зберігається необроблена відповідь для використання іншими полями |
Базовий приклад
Пошук медичного закладу, де анкетер вводить частину назви:
| type | name | label | appearance |
|---|---|---|---|
| select_one | facility | Select health facility | search-api('POST', 'https://api.example.com/facilities/search', '{"query": "%__input__%"}', 'id', 'name', '$.results', 'facility_data') |
Розширене форматування відображення
Використання шаблонів ##key##
Показуйте кілька полів у мітці:
search-api('POST', 'https://api.example.com/search', '{"q": "%__input__%"}', 'id', '##name## (##district##)', '$.data', 'res')
Використання виразів @{func}
Застосовуйте умовну логіку в мітці відображення.
Встановлення значення за замовчуванням: search-default-api()
Використовуйте search-default-api() після search-api() для попереднього заповнення поля варіантом за замовчуванням, завантаженим з окремого API-виклику.
Підтримувані типи питань
| Тип питання | Варіант використання |
|---|---|
select_one | Одиночний вибір з результатів пошуку |
select_multiple | Множинний вибір з результатів пошуку |
text | Автодоповнення — анкетер вводить вільно, але може вибрати підказку |
Найкращі практики
- Переконайтеся, що ваша кінцева точка API відповідає протягом 1–2 секунд.
- Використовуйте
%__input__%уpost_body, щоб API повертав лише відповідні результати. - Індексуйте поле пошуку на стороні сервера для швидких відповідей.
- Обмежте результати до 20–50 елементів на запит.
- Включіть вимогу до мінімальної довжини введення в API.
Обмеження
- Потребує підключення до мережі — не працює офлайн.
- Заповнювач
%__input__%підставляється як є; очищайте введення на стороні сервера.