Я создавал приложение для отображения случайных видео на YouTube. Для приложения мне нужен был простой способ получить случайное английское слово. Удивительно, но найти API, соответствующий моим требованиям, оказалось сложнее, чем я ожидал. Наконец, я закончил тем, что написал свой собственный генератор случайных слов с использованием API базы данных .
Я проанализировал кучу API-интерфейсов, и ни один из них не соответствовал моим требованиям
- Wordnik – Богатый API с большим количеством документации, но им потребовалось более 7 дней, чтобы отправить мне ключ API, если я не пожертвовал деньги.
- WordsAPI – Изящный веб-сайт с простым API случайных слов, но бесплатный тарифный план допускал только 2500 запросов в день, что, на мой взгляд, слишком мало.
- случайное слово-api – Довольно хорошо, за исключением того, что он генерирует “случайное” слово, выбирая из статического списка слов, что может привести к частому повторению слов.
- API базы данных – Это было наиболее многообещающим с 100 000 бесплатных запросов в день, хотя у них не было простого api случайных слов.
Наконец, я решил написать свою собственную генератор случайных слов библиотеку java, используя API поиска слов в лабиринте данных.
Как объяснялось ранее, API базы данных был моим лучшим вариантом. К сожалению, вместо API для случайных слов у них был только поиск по словам API. Вы вызываете REST API для них с параметром темы
, и они отправляют вам список слов по этим темам
. Библиотека генератор случайных слов , которая является просто оболочкой вокруг API базы данных. Библиотека позволяет вам получить случайное слово с помощью простого вызова статического метода, как показано ниже
// Import the class import com.github.dhiraj072.randomwordgenerator.RandomWordGenerator; // A simple static method call to get the random word String randomWord = RandomWordGenerator.getRandomWord()
За кулисами происходит несколько вещей:
- У нас есть
Генератор случайных слов
класс, который содержит список слов (случайные слова
) в памятиТемы
класс, который содержит статический список различных тем, например, актерское мастерство, шахматы и т.д.
- Во время инициализации
Генератор случайных слов
делает HTTP-запрос к API базы данных со случайнымТема
и обновления|/случайные слова
значение со списком слов, возвращаемых API Когда пользователь делает вызов
RandomWordGenerator.getrandomword()
- инициируется HTTP-запрос к API базы данных для получения следующего списка слов в отдельном потоке
- возвращается случайно выбранное слово из списка
случайные слова
- В случае сбоя HTTP-запроса, сделанного выше, система по умолчанию получает случайное слово из самого класса
Темы
. Что-то лучше, чем ничего.
Обратите внимание, что в отдельном потоке часть довольно важна выше. Создание экземпляра HTTP-запроса к API базы данных в отдельном потоке позволяет Генератору случайных слов.getrandomword()
вызывать мгновенно, так как ему не нужно ждать возвращения HTTP-ответа.
Описанный выше дизайн позволяет достичь нескольких целей:
- Каждый вызов
Генератора случайных слов.getrandomword()
выполняется мгновенно , так как мы возвращаем слово изсписка случайных слов
, уже присутствующего в памяти. Я считаю, что это лучше, чем большинство/все API REST, так как нет накладных расходов на HTTP-запрос. - Случайность слов обеспечивается с течением времени так как каждый вызов
Генератора случайных слов.getrandomword()
имеет побочный эффект обновления текущегоСлучайных слов
списка слов для нового случайногоТема
- Случайность слов обеспечивается для быстрого многократного вызова в
Генератор случайных слов.getrandomword()
, потому что для каждого вызова выбирается случайное слово из спискаСлучайные слова
- Он надежный. Если по какой-либо причине вызов API базы данных завершится неудачно, мы вернемся к автономному
Темы
класс, чтобы получить случайное слово.
Если вы хотите ознакомиться с исходным кодом или использовать эту библиотеку в своем собственном проекте, ссылка приведена ниже. Пожалуйста, не стесняйтесь оставлять свои предложения/вопросы в комментариях!
Dhiraj 072/генератор случайных слов
Библиотека java для генерации случайных слов
Библиотека java для генерации случайных слов. Это использует API базы данных в качестве механизма поиска слов.
Использование
Импорт из Maven Central
Использование Maven
com.github.dhiraj072random-word-generator1.1.0
Использование Gradle
compile 'com.github.dhiraj072:random-word-generator:1.1.0'
Получите случайное слово
// Import the class import com.github.dhiraj072.randomwordgenerator.RandomWordGenerator; // Get a random word with a simple static method call String randomWord = RandomWordGenerator.getRandomWord();
Получите случайное слово, искаженное в сторону различных параметров, поддерживаемых запросом DataMuse
import com.github.dhiraj072.randomwordgenerator.datamuse.WordsRequest; import com.github.dhiraj072.randomwordgenerator.datamuse.DataMuseRequest; // Get a random word skewed towards topics "Car" and "Road" WordsRequest customRequest = new DataMuseRequest().topics("Car", "Road"); String randomWord = RandomWordGenerator.getRandomWord(customRequest);
Построенный С
- Gradle – Инструмент для сборки
- API базы данных – Для получения списка слов
- Модуль – Платформа тестирования
Лицензия
Этот проект…
Оригинал: “https://dev.to/dhiraj072/why-i-wrote-my-own-random-word-generator-1nb9”