Рубрики
Без рубрики

Как я реализовал генератор случайных слов на java?

Я создавал приложение для отображения случайных видео на YouTube. Для приложения мне нужен был простой способ получить ra… С тегами java, дизайн, показать разработчика.

Я создавал приложение для отображения случайных видео на 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);

Построенный С

Лицензия

Этот проект…

Оригинал: “https://dev.to/dhiraj072/why-i-wrote-my-own-random-word-generator-1nb9”