1. Описание
2. Сборка и старт
3. Взаимодействие с приложением
4. Автор
Приложение является REST сервисом для получения пословного перевода текстовой строки с помощью Yandex API.
Реализация написана на JAVA + Spring Boot. Взаимодействие с базой данных осуществляется с помощью низкоуровневого JDBC API. Hibernate не используется.
Во время работы происходит запись в базу следующих данных:
- ID запроса (PRIMARY KEY AUTO_INCREMENT)
- Входную строку
- Строку с переводом
- Язык, с которого осуществляется перевод
- Языка, на который осуществляется перевод
- Время запроса
- IP клиента, который выполняет запрос
В дополнительную таблицу записываются пары слово-перевод, которые связаны с индификатором запроса посредством FOREIGN KEY к основной таблице.
-
Клонируйте репозиторий:
git clone https://github.com/grishuchkov/RestTranslatorService.git
-
Введите свои настройки в:
application.yml
Необходимо ввести свойToken
для Yandex Cloud API.
Внести изменения в настройки БД, если необходимо. -
Для сборки проекта используйте:
./mvnw clean package
.
Это создаетRestTranslatorService-0.0.1-SNAPSHOT.jar
файл в каталоге./targer
Приложение теперь доступно для запуска с использованиемjava -jar target/RestTranslatorService-0.0.1-SNAPSHOT.jar
-
В проекте присутствует Dockerfile, благодаря которому можно создать Docker Image.
Для этого используйте команду:docker build -t rest-yandex-translator:0.0.1 .
Если у вас MacOS в этот момент в обязательном порядке должен быть запущен Docker Desktop
-
Чтобы запустить контейнер, необходимо прописать:
docker run -p 8500:9000 rest-yandex-translator:0.0.1
Обратите внимание на порты. Вapplication.yml
порт по умолчанию стоит как:9000
-
Все должно работать.
Взаимодействие с приложением осуществляется путём HTTP запроса. На данный момент реализован один POST запрос, в тело которого нужно передать JSON c необходимыми данными (строка для перевода, язык строки, язык, на который нужно перевести). В ответе приходит JSON с пословно переведенной строкой.
Тип запроса | Путь | Примечание |
---|---|---|
POST |
./translate |
На вход JSON, на выход JSON |
В тело передаем:
{
"text" : "Тестовый перевод для README, спасибо, что читаете это",
"languageFrom" : "ru",
"languageTo" : "en"
}
В ответ получаем:
{
"translatedText": "Test translation for README thanks what reading this"
}
Для проверки корректной записи в базу можно воспользоваться встроенной консолью, доступ к которой огранизуется по адресу: ./h2-console
Для входа нужно прописать значения из конфиг-файла application.yml
. По умолчанию поля следующие:
Поле | Значение |
---|---|
URL |
jdbc:h2:mem:maindb |
username |
root |
password |
root |
Автор: Grishuchkov Danila
Проект создан при поддержке зеленого чая, Яндекс.Музыки и мотивации что-то сделать.
Срок выполнения: 4 дня.
Тинькофф, 💛💛💛❗