Пошаговое руководство с примером проекта

REST - это аббревиатура от REpresentational State Transfer. Rest следует некоторым рекомендациям для облегчения связи между системами. В этом посте мы узнаем, как создать REST API с Java и MongoDB в качестве базы данных. Сначала мы увидим, как мы начнем с инициализатора Spring, создадим структуру, а затем увидим, как начать работу с MongoDB Atlas, создать базу данных и, наконец, настроить приложение Java для чтения данных из MongoDB.

  • Предварительные требования
  • Пример проекта
  • Начать с инициализатора Spring
  • Настройка кластера MongoDB Atlas
  • Создать базу данных
  • Подключитесь к Mongo Compass
  • Настроить Mongo при загрузке Spring
  • Операции CRUD
  • Чванство
  • Резюме
  • Заключение

Предварительные требования

Вот предварительные условия для этой статьи. Если у вас их нет в системе, установите их, если хотите попрактиковаться на своем компьютере.

Среда выполнения Java и SDK: нам нужна среда выполнения Java и SDK для запуска приложений Java. Это основной компонент для запуска приложений Java.

Eclipse IDE: нам нужна IDE для разработки этого приложения. Существуют и другие IDE, такие как NetBeans, IntelliJ IDE и т. Д. Eclipse - это IDE с открытым исходным кодом, пользующаяся очень хорошей поддержкой сообщества.

Spring Boot: Spring - это фреймворк, который упрощает нашу жизнь при разработке этих приложений на основе Java. Spring Boot упрощает создание автономных приложений на основе Spring производственного уровня, которые можно «просто запустить».

Maven: Maven нужен для установки зависимостей, упаковки и сборки проекта.

Project Lombok: это java-библиотека , которая автоматически подключается к вашему редактору и создает инструменты, улучшая вашу java. Вы бы никогда больше не написали другой метод получения или равенства, с одной аннотацией, в вашем классе есть полнофункциональный конструктор, автоматизация переменных ведения журнала и многое другое.

Swagger: документация по API

Почтальон: ручное тестирование ваших API

Пример проекта

Вот ссылка на Github для примера проекта, который вы можете просто клонировать и запустить на своем компьютере.

// clone the project
git clone https://github.com/bbachi/java-restapi-mongo.git

Вот основные классы и классы контроллера.

Вы можете просто щелкнуть правой кнопкой мыши по основному классу и запустить его, как показано ниже.

Начать с инициализатора Spring

Spring Initializer позволяет легко сгенерировать шаблонный код и структуру проекта maven со всеми необходимыми зависимостями. Вот ссылка на инициализатор пружины.

Перейдя на страницу инициализатора Spring, вы можете выбрать все необходимые пакеты и сгенерировать проект maven, как показано ниже. Вам понадобятся как минимум эти пружинный-загрузочный-стартовый-исполнительный механизм, пружинный-загрузочный-стартовый-исполнительный механизм, пружинный-загрузочный-стартер-данные-jpa, h2database, пружинный-загрузочный-стартовый-данные-отдых, пружина -boot-starter-hateoas, spring-boot-starter-web, spring-data-rest-hal-browser, spring-boot-devtools

После загрузки сгенерированного проекта в IntelliJ IDEA перейдите в pom.xml и просмотрите там все зависимости. Вот pom.xml полного проекта, если вы увидите что-то новое, не волнуйтесь, вы узнаете об этом к концу этой статьи.

Настройка кластера MongoDB Atlas

Ядром MongoDB Cloud является MongoDB Atlas, полностью управляемая облачная база данных для современных приложений. Атлас - лучший способ запустить MongoDB, ведущую современную базу данных.

Давайте создадим здесь вашу учетную запись MongoDB. Вы можете войти в систему с любой из своих учетных записей Gmail или указать любой другой адрес электронной почты для создания учетной записи.

После того, как вы войдете в свою учетную запись, вы увидите панель управления ниже, где вы можете создавать кластеры.

Давайте создадим кластер под названием todo-cluster, нажав на построение кластера и выбрав все детали ниже.

Вот кластер, который мы создали ниже.

Вы можете нажать кнопку подключения, чтобы просмотреть подробную информацию о подключении к кластеру. На данный момент вам нужно создать пользователя и разрешить доступ из любого места.

На следующем экране вы увидите три способа подключения к кластеру.

Мы увидим все эти три способа подключения к кластеру в следующих разделах.

Создать базу данных

Мы создали кластер, пора создать базу данных. Щелкните коллекции, чтобы создать новую базу данных, как показано ниже.

Нажмите кнопку «Добавить мои данные», чтобы создать новую базу данных.

Я дал имя базы данных как задачи, а имя коллекции - todos.

После создания базы данных вы увидите панель управления ниже. У нас есть база данных с пустыми коллекциями.

Вставим первый документ в коллекцию, нажав кнопку insert document

Подключитесь к Mongo Compass

Мы видели три способа подключения к этому кластеру и чтения коллекций. Давайте подключимся к базе данных с помощью Mongo Compass. Первое, что нам нужно сделать, это загрузить и установить Mongo Compass по этой ссылке.

Давайте возьмем строку подключения из панели управления Atlas, как показано ниже.

Замените пароль своим паролем, который вы создали выше.

Давайте подключимся к базе данных с помощью строки подключения

Фактически вы можете увидеть ту же коллекцию в MongoDB Compass.

Настроить Mongo при загрузке Spring

Давайте настроим клиент Mongo из нашего приложения. Первое, что нам нужно сделать, это получить строку подключения.

Убедитесь, что вы выбрали правильный язык и версию драйвера MongoDB.

Поместим строку подключения и имя базы данных в файл свойств приложения, как показано ниже. Вы должны URL-кодировать пароль, если у вас есть какие-либо специальные символы в пароле.

Вам необходимо добавить эти две зависимости для репозитория Mongo DB в pom.xml.

Давайте определим класс конфигурации, в котором он создает соединение со строкой подключения, которую мы только что скопировали из панели инструментов Atlas. Нам нужно аннотировать класс аннотацией configuration и EnableMongoRepositories. Нам нужно предоставить базовый пакет, в котором размещаются наши репозитории. Мы создаем клиент Mongo, считывая свойства среды с помощью класса Environment из фреймворка Spring.

Мы создаем MongoClient с считыванием строки подключения и имени базы данных из файла свойств.

У вас может возникнуть проблема, указанная ниже, из-за некоторой ошибки в JDK при запуске приложения.

Если вы получили указанное выше исключение, вам необходимо добавить эту опцию JVM в вашу среду IDE. Нажмите на редактирование конфигурации и добавьте этот аргумент JVM - Djdk.tls.client.protocols = TLSv1.2

Теперь нам нужно создать класс сущности, который отражает коллекции в базе данных MongoDB. Обратите внимание, что мы сопоставляем коллекцию MongoDB с аннотацией Документ.

Нам нужно создать интерфейс, который расширяет MongoRepository всем, что мы создали выше.

Поскольку TaskRepository расширяет MongoRepository, в нем есть все методы по умолчанию, такие как save, findAll и т. Д. Вот классы службы и контроллера.

Со всеми указанными выше файлами мы можем перейти по следующему URL-адресу.

http://localhost:8081/todos/tasks

Операции CRUD

Давайте проделаем несколько CRUD-операций.

Создать задачу

Создание задачи - это пост-вызов, который принимает тело запроса и сохраняет его в коллекцию задач.

URL: http://localhost:8081/todo/task
Request Body:
{
 "name": "sdfsdfs",
 "description": "sdfsdfsdfsd i sdescription!!",
 "createdBy" : "system"
}

Обновить задачу

Задача обновления - это вызов put, который принимает тело запроса и обновляет его в коллекцию задач с тем же идентификатором.

URL: http://localhost:8081/todo/task
Request Body:
{ 
 "id" : "5fe5188c79a9282585329549",
 "name": "sdfsdfs",
 "description": "sdfsdfsdfsd i sdescription!!",
 "createdBy" : "system"
}

Удалить задачу

Удалить задачу - это вызов удаления, который принимает идентификатор в качестве переменной пути и удаляет его из коллекции задач.

URL: http://localhost:8081/todo/task

Получить задачи

Получить задачи - это простой URL-адрес GET, который извлекает все задачи из коллекции задач.

URL: http://localhost:8081/todo/tasks

Чванство

Swagger - это инструмент, который упрощает документацию API для сервисов. С Swagger вы можете легко разработать свой API и поделиться им между командами.

Вам понадобится этот файл конфигурации после добавления следующих зависимостей в файл pom.xml.

Этот файл должен находиться в папке конфигурации проекта. По сути, он берет все пути в контроллере в пакете com.bachinalabs.mongodemo.

Давайте нажмем этот URL-адрес http: // localhost: 8081 / api / swagger-ui.html, чтобы получить доступ к документации swagger для этого проекта. Вы можете увидеть, как Swagger показывает три URL-адреса приложения.

Резюме

  • REST - это аббревиатура от REpresentational State Transfer. Rest следует некоторым рекомендациям для облегчения связи между системами.
  • Spring Initializer позволяет легко сгенерировать шаблонный код и структуру проекта maven со всеми необходимыми зависимостями. Вот ссылка на инициализатор пружины.
  • Ядром MongoDB Cloud является MongoDB Atlas, полностью управляемая облачная база данных для современных приложений. Атлас - лучший способ запустить MongoDB, ведущую современную базу данных.
  • Вы можете войти в систему со своей учетной записью Google, и вы можете создавать кластеры и базы данных.
  • Вы можете подключиться к кластеру тремя способами: Mongo Shell, MongoDB Compass и через приложение.
  • Вы можете получить строку подключения и настроить приложение Java для взаимодействия с MongoDB с помощью Spring Data Rest и т. Д.
  • Swagger - это инструмент, который упрощает документацию API для сервисов. С Swagger вы можете легко разработать свой API и поделиться им между командами.

Заключение

Мы видели, как настроить MongoDatabase и настроить ее в Java API. В будущих публикациях мы увидим, как Dockerize и разместить этот API в облаке и многое другое.