Переход с freedictionaryapi.com
Если приложение использует freedictionaryapi.com, замените
базовый URL на адрес экземпляра Vocab Bloom Hub и сохраните путь поиска английского слова.
Адаптер возвращает привычный ответ { word, entries, source } и добавляет поле vocabBloom
со сведениями об источниках. Данные берутся из активного датасета вашего экземпляра.
Внешний сервис по умолчанию использует Wiktionary, а экземпляр проекта — собственный датасет.
Замените базовый URL
| Базовый URL | Путь поиска | |
|---|---|---|
| Раньше | https://freedictionaryapi.com/api/v1 | /entries/en/hello?translations=true |
| Теперь | https://<ваш-экземпляр>/api/compat/freedictionaryapi/v1 | /entries/en/hello?translations=true |
Например:
curl -fsS 'https://vocab-bloom-hub.com/api/compat/freedictionaryapi/v1/entries/en/hello?translations=true'
curl -fsS 'https://vocab-bloom-hub.com/api/compat/freedictionaryapi/v1/languages?pretty=true'
Запросы анонимные и доступны только для чтения. Адаптер не обращается к
freedictionaryapi.com. Параметры translations и pretty принимают строчные true и
false; по умолчанию переводы не включаются. Регистр слова учитывается. Для отсутствующего
слова возвращается 200 с пустым entries. en и all читают английскую базу; для других
языковых кодов возвращаются пустые записи. /languages перечисляет только английский язык,
хотя внутри английских записей могут быть переводы на другие языки.
Адаптер не принимает ?dataset=.... Чтобы получать ответ в этом формате из другого
датасета, установите его на экземпляр с PostgreSQL и активируйте в админке. Это изменит
датасет всех публичных запросов к экземпляру. В SQLite есть только default.
Чтение всех датасетов в этом формате
Добавьте /datasets к пути адаптера. Параметры translations и pretty тоже поддерживаются:
curl -fsS 'http://localhost:3240/api/compat/freedictionaryapi/v1/entries/en/hello/datasets?translations=true&pretty=true'
Это расширение Vocab Bloom Hub читает все установленные датасеты без переключения активного.
Общий ответ — { data, meta }. Каждая группа в data[] содержит условия своего датасета
(включая dataset, title, active, source и лицензии), status: 200 и полный объект
адаптера { word, entries, source, vocabBloom } в поле response.
В каждом датасете учитывается регистр. Если слово отсутствует или язык не поддерживается,
response.entries будет пустым, как у обычного адаптера. HTTP-статус всего запроса — 200,
даже если пусты все группы. meta содержит запрошенные word и language, число datasets
и found — сколько датасетов вернули непустые записи.
Например, получите ответ OpenGloss:
curl -fsS 'http://localhost:3240/api/compat/freedictionaryapi/v1/entries/en/hello/datasets?translations=true' \
| jq '.data[] | select(.dataset == "opengloss") | .response'
В ответ входят только установленные датасеты. На SQLite доступен только default.
Условия указывают именно прочитанный датасет; пустой результат ссылается на этот маршрут
по всем датасетам, поскольку /api/v1/meta описывает только активный. Обычный путь адаптера
сохраняет свой формат и читает активный датасет. Полный контракт — в
описании API.
Проверьте клиент перед переходом
- Адаптер сохраняет
word,entries,source,senses, формы и поддерживаемыеtranslations, но содержание и число значений, форм и тегов зависят от датасета. - При хранении и распространении результатов сохраняйте
vocabBloomсо сведениями о лицензиях и происхождении. Одно полеsource.licenseне выражает все условия источников. - Внешний сервис поддерживает больше языков поиска. Здесь хранятся английские заголовочные слова; переводы внутри их записей не являются отдельными словарями других языков.
- У экземпляра свои лимит запросов и правила кэша. Проверьте важные слова, регистр,
отсутствие слова и
translations=trueдо переключения рабочего трафика.
Подробности полей и HTTP-поведения — в разделе совместимости с freedictionaryapi.com. Установка и активация описаны на странице «Датасеты».
Снимки ответов в сравнении на сайте
Сайт использует сохранённые ответы оригиналов для девяти готовых слов и поддерживаемых
вариантов версии и переводов. JSON входят в репозиторий и обновляются вручную командой
yarn workspace site comparisons:generate (--missing-only повторяет загрузку отсутствующих
или неудачных снимков). Сборка, запуск и просмотр сайта не обращаются к оригиналам.
Показана дата получения. При неудачном обновлении сохраняется предыдущий успешный снимок
с предупреждением, а при его отсутствии — ошибка. Датасеты экземпляра запрашиваются в реальном времени.