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

Passo a passo de como criar seu Pokedex com Весенний поток веб-страниц

Олаааа, не нужно артистизма, чтобы рекламировать и создавать приложения для создания, чтения, обновления и удаления usando Sp… Помечены java, heroku, spring, mongodb.

Ola neste artigo você ira aprender a criar uma aplicação для создания, чтения, обновления и удаления usando Spring Webflux с данными сохраняются в базу MongoDB и наконец, размещенного на Heroku!

Репозиторий проекта создан: https://bit.ly/pokedex-reativo

К концу этого учебника вы будете иметь свой собственный pokedex, и вы можете обновлять, удалять и создавать свои покемоны в своем собственном хранилище, с понятия реактивности с помощью Events Streams и Конечные Функциональные просто и обычно, проект очень довольна, как я есть, как портфель! Понравилось? Итак, начнем… (ɔ っ っ‿) ɔ

У вас должен быть установлен перед тем, как начать:

  • JDK 8 или 9
  • IDE для разработки, я буду использовать IntelliJ
  • O Интерфейс Heroku CLI
  • Владеть Maven 3 с его переменные среды, настроенные
  • Почтальон

Очень важно, что у вас Maven 3, так как Heroku CLI работает только в этой версии… Если вы не имеющей Нажмите здесь, и установить maven на правильную версию, чтобы сделать его применение расти правильно 😉

Теперь вы должны получить доступ к веб-сайт Spring Initialzr , и выбрать следующие зависимости:

  • Пружинное Реактивное полотно
  • Spring Data Reactive MongoDB
  • Встроенная база данных MongoDB

Нет группы usaremos: com.pokedex Нет артефакта: реактивный веб

Пакет-это имя генерируется автоматически!

После выполнение всех переменных в вашем Spring Initializr должен выглядеть примерно так:

Prontinho, теперь просто нажмите кнопку GENERATE CRTL+ , и spring initializr будет генерировать файл в ZIP, и вы должны извлечь этот файл в каталогов, которые вы можете найти после .

После извлечения файла вы должны открыть свой IDE, в случае, если я открою IntelliJ и cliar в import project

Cliccando в import project вы увидите всех своих каталогов, просто найдите, где проект, который вы загрузили Spring Initialzr, и импортировать его, нажав кнопку ok

Появится окно с двумя пунктами, нужно выбрать: Maven , потому что наш проект будет импорт через шаблон, который уже существует Теперь вы можете нажать кнопку finish будет загружен весь свой проект с помощью переменных среды!:p

Для нашего приложения расти правильно, нужно положить в order прицеп зависимость воскресенье embbeded, он должен остаться до org.springframework.boot spring-boot-starter-webflux , ваш pom.xml будет выглядеть следующим образом:

баста exlcuir o <область применения> тест применения> e colocar зависимость от встроенного логотипа mongo em seguida. применения>

Isso fará com que nossa aplicação suba na ordem correta, se essa dependency estiver depoisual estava, nossa aplicação não iria subir no servidor, pois a mesma não iria encontrar, sua depedendy deverá ficar da seguinte forma: <зависимость> <Идентификатор группы>de.flapdoodle.embedded группы> de.flapdoodle.embedded.mongo группы>

Давайте посмотрим, senossa приложение растет, на канале youtube womakerscode у нас есть видео, где объясняем на сервер Netty, если у вас возникнут сомнения, только дать заглянули на там . Поднявшись приложения мы видим наш сервер в действие на порт 8080.

Буду ставить “hello world womakerscode” по умолчанию в классе main()

Você tera que que no console nosso System.out.println покажет сообщение, а также будет помечен, дверь, что наше приложение находиться

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

Для создания package щелкните правой кнопкой мыши, в com.pokedex.reactive web > Создать > Пакет > com.pokedex.reactiveweb. модель > введите

Внутри него создайте новый класс с имя Pokemon , внутри этого класса будут размещены сведения, что покемоны будут, такие как Id, Имя, Силы etc… Внутри этого класса поместите:

Теперь только нужно gear геттеры и сеттеры, , boolean equals , хэш-код и toString , você pode fazer tudo isso apertando ALT + INSERT > средство получения/установки > equals() хэш-код() > toString() > Переопределение методов > Конструктор

Вы также можете делать один и затем другой, IntelliJ или IDE, который вы используете будет генерировать все эти методы для вас!

В хранилище, где находится сохранение данных, чтобы создать его, щелкните правой кнопкой мыши, в com.pokedex.reactive web > Создать > Пакет > com.pokedex.reactiveweb. репозиторий > входить

В течение этого пакет будет создан интерфейс имя PokemonRepository

Интерфейс является тип абстракции, которые мы используем, чтобы указать тип поведения, что классы должны реализовать

В этом интерфейсе поместите следующий код:

Spring Data уже значительно облегчает нашу жизнь, поэтому единственное, что мы должны поставить в этом интерфейсе-это спецификация, что она будет работать с объектом, Pokemon String.

Если вы нажмете на ReactiveMongoRepository

Да теперь мы можем Инициализировать нашей базы данных (≖ ʖ≖) 👌

Мы используем Mongo Embeded, таким образом, не требуется создавать учетную запись или т, это все место на нашей машине.

В классе Main() мы создаем разговора из нашей базы данных, с помощью CommandLiner, что это функциональный интерфейс, который получает аргументов в цепи.. то же самое должно быть отмечено с @Bean для spring boot понять, что это должен быть обработан, в любом случае, результат должен быть следующий код:

Здесь мы видим что-то другое, мы не принося стандартные методы (findAll, findById etc) почему мы работаем с встроенной базой данных, но если вы хотите использовать Mongo Atlas например, ReactiveMongoOperations создает это ряд методов для тебя.

В этом коде .flatMap запрос findAll и печатает данные, и thenMany делает это слишком просто, что асинхронно, и то, subscribe печатает на экране также

Теперь, если выполним то мы увидим, что база данных вырос, и все введенные данные будут показаны на экране, вы будете иметь что-то вроде:

Контроллер-это наш класс controller, на ней будут наши методы создания, обновления, удаления и чтения наших покемонах.

Чтобы создать его, щелкните правой кнопкой мыши, в com.pokedex.reactive web > Создать > Пакет > com.pokedex.reactiveweb. контроллер > ввод И повторить этот же процесс, чтобы создать класс,

Теперь bora создать методы, которые мы уже прибыв на конечный результат (•◡•)/

Ищу все покемоны

Теперь вы должны создать экземпляр, и внутри него будет иметь метод, чтобы привести все покемоны, будет выглядеть следующим образом:

Bucando Pokémon id

Искать по id, colocaque метод в экземпляре, равно предыдущую:

Вы, что этот способ является Mono тип покемонов? Это означает, что мы хотим только, что 1 id не называется, и если этот идентификатор не найден, приносим ответ HTTP.

В defaultIfEmpty используется, когда Код вызывается в сущности, пуст, он вернет статус NOTFOUND

Помните, что .map () должна возвращать функция синхронного и результат будет захвачен в редакторе Моно, так как findById возвращает Mono

Создание и сохранение нового Покемона

Чтобы создать новый и сохранить покемонов просто ввести код ниже

Возвращает Mono, это то, что возвращается в хранилище.

Обновление Pokémon

Теперь мы будем объединять все, что вы видели здесь, чтобы обновить Покемонов. Чтобы обновляем покемонов, то мы получим идентификатор экземпляра покемонов и новые значения, которые будут обновлены.

Давайте начнем поиск по id, и если он найден будет обновлен в отличие встретят состояние NOTFOUND

Вторая часть кода оператора map для этого преобразования, и поэтому, если Моно-пустой возвращается с defaultEmpty он вернет статус NOTOFUND, этот блок кода также может быть сделано с помощью if/else, но так что мы сделали режима объявление

Удаление Покемонов

Метод exlcuir похож на предыдущие, также, чтобы удалить, когда создать метод, который удаляет покемонов, по id:

И другой метод, чтобы удалить ВСЕ Покемоны

Prontinho, теперь у нас полный CRUD, где мы создали так, реактивной и функциональной, теперь нам нужно создать наш Event Stream (часть прохладно/)

Поток событий Criando um ᕙ(`▿)ᕗ

Для создания нашего метода событий в контроллер, нам нужно создать класс, где находятся атрибуты, события, для этого внутри package model создайте класс PokemonEvent , с следующий код:

`

public class PokemonEvent {
    private Long eventId;
    private String eventType;
}

`

Da mesma forma que foi feito com o classe Pokémon dentro do package Model logo asima, só vai precisar gears getter e setters , логические значения , хэш-код , e o toString , você pode fazer tudo isso apertando ALT + INSERT > средство получения/установки > equals() хэш-код() > toString() > Переопределение методов > Конструктор

showww, сейчас мы вернемся в класс PokemonController , и создать наш метод событий, который будет выглядеть следующим образом:

`

 @GetMapping(value = "/events", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
    public Flux getPokemonEvents() {
        return Flux.interval(Duration.ofSeconds(5))
                .map(val ->
                        new PokemonEvent(val, "Product Event")
                );
    }

`

The interval приносит столько секунд, что мое событие будет показано, в этом случае 5 на 5 секунд, событие генерируется новый!

Конечные точки Эстамос-квазе-акабандо, агора-со-фальта-тестар-носсос ( ~ ʖ °)

Чтобы протестировать наше приложение, давайте посмотрим, если все будет расти правильно, для этого перейдите в метод main() и взялись ним, и следить в консоли, чтобы увидеть, если не возникает никаких ошибок, ответ должен вернуться, более или менее так:

Конечные точки Agora bora pro postman testar os

Ищу все Покемоны

Первый метод, который мы будем тестировать GET, которая будет приносить все покемоны, которые были сохранены в почтальон гнев принести следующие результаты:

Посмотрите, что в поиске мы решили GET, потому что мы “собирание” всех покемонами, чтобы проверить, слишком как: “PUT”, “POST” … etc, просто мы изменим эту опцию, то там bora

Поиск Покемонов по id

Искать по id, а просто скопировать и вставить код, который был создан в ответ действительно ПОЛУЧИТЬ

Вставив новый Покемон

В родном postamn изменить запрос для POST и в Body выбрать raw > JSON потому что мы хотим сохранить в формате json, а затем введите:

`

   {
        "nome": "IbySaur",
        "categoria": "Semente",
        "habilidades": "OverGrow",
        "peso": 13.0
    }

`

После этого, нажмите кнопку SEND и ваш покемон будет сохранен! Должно вернуть STATUS 201 * что показывает, что он был успешно создан, чтобы в этом убедиться, давайте вернемся узел GET , чтобы скопировать и вставить код, сгенерированный, что он покажет наш покемонов создана..

Id, не нужно размещать, поскольку он генерируется автоматически с помощью MongoDB

Удаление Покемонов

Сейчас мы будем удалять методы deleteALL deleted , так в почтальон будем изменить запрос для DELETE

Посмотрите, что я помещаю код в некоторых покемонов, которые я хочу удалить

Могу ли я взять этот код, он будет exlcuir ВСЕ ПОКЕМОНЫ

Мы видели, что наш CRUD в схеме уже, то есть, работает хорошо lindão… С нашей запущенное приложение еще проверим events stream, для этого перейдите браузер, если его предпочтения и введите:

http://localhost:8080/pokemons/events

И вы увидите, как волшебство происходит каждые 5 секунд будет на возвращение событие покемонами

Если открыть эту же запрос в другом окне, вы увидите, что в events stream позволит другой запрос вызова не дожидаясь, пока предыдущий закончит, это вызывает не-сжимать, типичные Spring Webflux.

Shoooow теперь у вас уже есть приложение, topzera, bora подняться она в облаке?

Para subir nasa aplicação, precisamos colocar o plugin do heroku no nosso pom.xml:

`


  ...
  
    ...
    
      
        com.heroku.sdk
        heroku-maven-plugin
        3.0.2
      
    
  


`

Теперь перейдите в папку приложения, с помощью терминала (я буду использовать gitbash) , и ввести heroku login , чтобы получить доступ к своей учетной записи в heroku

Появится окно, так чтобы вы:

Нажмите кнопку Войти, и вы можете закрыть это окно и что вы будете с логином активным в Heroku!

Теперь только ждать, терминал обработки

Депо для терминала каррегара, иремос создает карту для госпиталя носа апликас, фаремос иссо ком о командо heroku create

И мы почти там, app был создан, в терминале он будет тебя получить ссылку это сообщение:

Мы готовы pro Deploy

Se seu aplicativo é um standalone (e, portanto, requer um tipo de processo), você pode implantar com este comando: mvn clean heroku:развернуть Только ждать segundinhos и проверить журналы…

Если сообщение BUILD SUCESS появляться, значит, что все получилось, можете вздохнуть с облегчением!

PARABÉNSSS его применение subiuuu

Пара асессар баста диджитар Открытый чемпионат heroku

Spring Webflux-это модуль очень здорово в SpringBoot, он, кроме того, мы создаем CRUD мы можем создать последовательность событий, но это не означает, что мы должны всегда использовать приложения, реагирующие, все зависит от вашего сценария и жизнеспособность

И если вы достигли здесь, поздравляем, вы победитель , я считаю, что нет ничего более recopensador, что смотрите наше приложение и работает, не так ли? Тогда поделитесь тоже, и разместите на github для все больше и больше людей могли узнать так же, как вы! ʕ•ᴥ•ʔっ

O código desta aplicação está no meu Github -> O código desta aplicação está no meu Github ->

Ссылки: Heroku DevCenter Канал Youtube Michelli Brito

Увидимся в следующем, дайте likesss и делить, и просматривать другие детали womakerscode тех, кто хочет следовать за мной в сетях socías @anabneri #tamojunto

Оригинал: “https://dev.to/womakerscode/criando-seu-pokedex-com-spring-webflux-mongodb-deploy-no-heroku-21f5”