Переход с dictionaryapi.dev
Если приложение ищет английские слова через Free Dictionary API, направьте тот же путь запроса на экземпляр Vocab Bloom Hub. Адаптер совместимости возвращает привычный JSON-массив для v2 и старого v1. Сами определения берутся из активного датасета вашего экземпляра: замена URL не копирует словарь внешнего сервиса.
Замените базовый URL
| Базовый URL | Путь поиска | |
|---|---|---|
| Раньше | https://api.dictionaryapi.dev/api | /v2/entries/en/hello |
| Теперь | https://<ваш-экземпляр>/api/compat/dictionaryapi | /v2/entries/en/hello |
Например, публичный экземпляр проекта отвечает по адресу
https://vocab-bloom-hub.com/api/compat/dictionaryapi/v2/entries/en/hello. Если клиент хранит
полный URL, замените только префикс; оставьте язык и закодированное слово в пути.
Старый путь /v1/entries/en/{word} тоже поддерживается. Запросы анонимные и доступны только
для чтения; ключ API не нужен. Адаптер не обращается к dictionaryapi.dev.
const baseUrl = 'https://vocab-bloom-hub.com/api/compat/dictionaryapi';
const word = 'hello';
const entries = await fetch(`${baseUrl}/v2/entries/en/${encodeURIComponent(word)}`).then((r) => r.json());
Поддерживаются en и исторические псевдонимы en_US / en_GB. Другие языки адаптер не
обслуживает. Он не принимает параметры запроса, в том числе dataset. Установите нужный
датасет в экземпляр с PostgreSQL и активируйте его через карточку в админке. Активация
изменит ответы всех публичных запросов к этому экземпляру. В SQLite доступен только
датасет default.
Чтение всех датасетов в этом формате
Добавьте /datasets к пути адаптера:
curl -fsS 'http://localhost:3240/api/compat/dictionaryapi/v2/entries/en/hello/datasets'
# Доступен и старый формат v1:
curl -fsS 'http://localhost:3240/api/compat/dictionaryapi/v1/entries/en/hello/datasets'
Эти расширения Vocab Bloom Hub читают все установленные датасеты без переключения активного.
Общий ответ — { data, meta }. Каждая группа в data[] содержит условия своего датасета
(включая dataset, title, active, source и лицензии), status и response:
status: 200: вresponseтот же массив v1 или v2, который обычный адаптер вернул бы из этого датасета, со сведениями о происхождении вvocabBloom.status: 404: вresponseобъект отсутствующего слова{ title, message, resolution }в формате адаптера.
HTTP-статус всего запроса — 200, даже если слова нет ни в одном датасете. meta содержит
запрошенные word и language, число datasets и found — сколько датасетов нашли записи.
Неподдерживаемый язык по-прежнему завершает запрос с 404; параметры query не принимаются.
Например, получите результат WordNet, не меняя активный датасет:
curl -fsS 'http://localhost:3240/api/compat/dictionaryapi/v2/entries/en/hello/datasets' \
| jq '.data[] | select(.dataset == "wordnet") | {status, response}'
В ответ входят только установленные датасеты: у неустановленного WordNet группы нет.
На SQLite будет одна группа default. Обычный путь адаптера по-прежнему возвращает массив
из активного датасета; обёртка /datasets предназначена для инструментов, которым нужны все
датасеты. Полный контракт — в описании API.
Проверьте клиент перед переходом
- Адаптер возвращает один элемент массива на запись/часть речи. Количество элементов
и определений может отличаться от внешнего сервиса. В v2 есть
meanings[], в v1 —meaning. vocabBloomиsourceUrlsописывают настоящий источник. Не называйте датасет проекта или OpenGloss данными Wiktionary. Клиент со строгой проверкой полей должен допускатьvocabBloom; при распространении данных сохраняйте применимые лицензии и атрибуцию.- Отсутствующее слово и неподдерживаемый язык дают 404 в формате внешнего API. Поиск по словоформе может вернуть базовое слово. У экземпляра свои лимит запросов и правила кэша.
- Произношения, примеры, группировка синонимов и охват слов зависят от установленного датасета. Сравните важные вашему приложению слова до переключения рабочего трафика.
Подробности полей и HTTP-поведения — в разделе совместимости с dictionaryapi.dev. Установка и активация описаны на странице «Датасеты».
Снимки ответов в сравнении на сайте
Сайт использует сохранённые ответы оригиналов для девяти готовых слов и поддерживаемых
вариантов версии и переводов. JSON входят в репозиторий и обновляются вручную командой
yarn workspace site comparisons:generate (--missing-only повторяет загрузку отсутствующих
или неудачных снимков). Сборка, запуск и просмотр сайта не обращаются к оригиналам.
Показана дата получения. При неудачном обновлении сохраняется предыдущий успешный снимок
с предупреждением, а при его отсутствии — ошибка. Датасеты экземпляра запрашиваются в реальном времени.
Недоступные примеры v1 восстановлены из сохранённых v2 по опубликованной функции
transformV2toV1 сервиса. Они помечены в сравнении как восстановленные, без даты получения
ответа v1 и без утверждения об HTTP-ответе. Ручное обновление может заменить их настоящими
ответами v1; при сбое восстановленный пример сохраняется.