Источник: Nuances of Programming
Я много раз пытался спроектировать API для своих приложений, и это всякий раз заканчивалось разочарованием по одной из этих причин:
- Недостаточное понимание языка или фреймворка.
- Неготовность платить за хостинг до запуска проекта.
- Платформа без поддержки масштабирования.
Так что, столкнувшись со всеми этими проблемами, я решил написать REST API на Kotlin, используя фреймворк Spring Boot, а также Gradle в качестве поставщика зависимостей (вместо Maven). Как Android-разработчик, я уже знаком с Kotlin и Gradle. Spring Boot же, с другой стороны, предоставляет способ быстрой настройки API, а также содержит встроенный Tomcat. Еще одна сильная сторона Spring Boot — активное сообщество пользователей, которое уже имеет опыт в решении проблем масштабирования.
1. Создаем проект Spring Boot через генератор проектов Spring Boot со следующими параметрами.
На картинке видны параметры, которые использовал я. Пока что не нужно добавлять никаких зависимостей — этим займемся позже. Нажимаем на “Сгенерировать” (Generate) и получаем zip-файл с пустым проектом.
2. Открываем сгенерированный проект в IntelliJ Idea
На всякий случай: вот содержимое моего файла build.gradle.kts — просто чтобы убедиться, что все мы видим одно и то же. Благодаря знакомству с Gradle, мы можем распознать здесь такие элементы, как плагин Kotlin и зависимости, а также Java 1.8, благодаря которому в нашем проекте доступны функции языка Java 8.
3. Создаем первый контроллер
Контроллер — то, что обрабатывает запрос от клиента и возвращает ответ с требуемой информацией. Здесь вы найдете больше подробностей о контроллерах Spring.
Начнем с того, что добавим зависимости для всех веб-ресурсов Spring Boot (включая контроллеры) в наш build.gradle.kts:
implementation("org.springframework.boot:spring-boot-starter-web" )
После синхронизации Gradle перейдем к нашему классу HelloController. В демонстрационных целях я включил сюда несколько примеров того, как добавлять параметры, отправлять ответы со статусом 200 с объектами JSON, а также ошибки с пользовательскими сообщениями.
Чтобы убедиться, что наш первый веб-сервис работает, нам сначала нужно развернуть его на своей локальной машине. Это мы можем сделать, запустив команду gradle bootRun. После этого проверяем, что всё работает ожидаемым образом, используя curl.
curl --location --request GET 'http://localhost:8080/mobileApi/helloWorld'
Если вы предпочитаете графический интерфейс, а также хотите, чтобы ваши API оставались организованными и синхронизированными, рекомендую тестировать API с помощью бесплатной программы Postman. На картинке ниже вы можете увидеть, как протестировать контроллер, который мы только что создали.
Вот и всё!
Читайте также:
Перевод статьи Cristian Villaseca: How to create a REST API for your App with Spring Boot, Kotlin & Gradle (Part 1: Initial setup & Controller)