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

Я официально начал работу над RuntDeale! Из моего поста в Твиттере. Я только что начал реальную разработку RuntDeale. Пожелай мне удачи! – Выгодная сделка… С пометкой java, game dev, watercooler. Я официально начал с || моего поста в Твиттере || . буду работать над RuntDeale! || Я только начал настоящее развитие, Пожелайте мне удачи! на РантДейле. – Выгодная сделка с Тоби Фоксом. ( ;p ) || #gamegetting начал сборку с фауной и Java с использованием Spring Boot #fanart #фанатская игра || || #undertale || || dev || ||

Я официально начал работу над RuntDeale! Из моего поста в Твиттере. Я только что начал реальную разработку RuntDeale. Пожелай мне удачи! – Выгодная сделка… С пометкой java, game dev, watercooler. Я официально начал с || моего поста в Твиттере || . буду работать над RuntDeale! || Я только начал настоящее развитие, Пожелайте мне удачи! на РантДейле. – Выгодная сделка с Тоби Фоксом. ( ;p ) || #gamegetting начал сборку с использованием Fauna и Java с использованием Spring, написанного в связи с программой Write With Fauna. оот #фанарт #фанатская игра |||/ #undertale || || dev || || Я официально начал работу над RuntDeale! Из моего поста в Твиттере. Я только что начал реальную разработку RuntDeale. Пожелай мне удачи! – Выгодная сделка… С пометкой java, game dev, watercooler. Я официально начал с || моего поста в Твиттере || . буду работать над RuntDeale! || Я только начал настоящее развитие, Пожелайте мне удачи! на РантДейле. – Выгодная сделка с Тоби Фоксом. ( ;p ) || #gamegetting начал сборку с использованием

Я официально начал работу над RuntDeale! Из моего поста в Твиттере. Я только что начал реальную разработку RuntDeale. Пожелай мне удачи! – Выгодная сделка… С пометкой java, game dev, watercooler. Я официально начал с моего поста в Твиттере . буду работать над RuntDeale!

Я официально начал работу над RuntDeale! Из моего поста в Твиттере. Я только что начал реальную разработку RuntDeale. Пожелай мне удачи! – Выгодная сделка… С пометкой java, game dev, watercooler. Я официально начал с моего поста в Твиттере . буду работать над RuntDeale!

Я официально начал работу над RuntDeale! Из моего поста в Твиттере. Я только что начал реальную разработку RuntDeale. Пожелай мне удачи! – Выгодная сделка… С пометкой java, game dev, watercooler. Я официально начал с || моего поста в Твиттере || . буду работать над RuntDeale! || Я только начал настоящее развитие, Пожелайте мне удачи! на РантДейле. – Выгодная сделка с Тоби Фоксом. ( ;p ) || #gamegetting начал сборку с использованием Fauna и Java с использованием Spring, написанного в связи с программой Write With Fauna. oot #fa “Программное обеспечение пожирает мир” – Марк… Помеченный фауной, Написанный в связи с программой || Запись с фауной || . Облачному приложению требуется облачная база данных. Разработка облачных приложений использует контейнерные технологии, архитектуру микросервисов, гибридное облако и т.д. При разработке программного обеспечения. Потребность в большем количестве программного обеспечения привела к разработке облачных приложений для ускорения создания и обновления программного обеспечения при одновременном повышении качества и снижении рисков. ” || Программное обеспечение пожирает мир” – Марк Андреессен. приступаем к сборке с помощью Fauna и Java с использованием Spring Boot ava, бессерверного, облачного нативного. нарт #фанатская игра |||| #undertale |||| dev |||| Я официально начал работу над RuntDeale! Из моего поста в Твиттере. Я только что начал реальную разработку RuntDeale. Пожелай мне удачи! – Выгодная сделка… С пометкой java, game dev, watercooler. Я официально начал с || моего поста в Твиттере || . буду работать над RuntDeale! || Я только начал настоящее развитие, Пожелайте мне удачи! на РантДейле. – Выгодная сделка с Тоби Фоксом. ( ;p ) || #gamegetting начал сборку с использованием Fauna и Java с использованием Spring, написанного в связи с программой Write With Fauna. oot #fa “Программное обеспечение пожирает мир” – Марк… Помеченный фауной, Написанный в связи с программой || Запись с фауной || . Fauna, API для современных приложений, предоставляет вам доступ к транзакционным базам данных через бессерверный API данных. Облачному приложению требуется облачная база данных. Разработка облачных приложений использует контейнерные технологии, архитектуру микросервисов, гибридное облако и т.д. При разработке программного обеспечения. Потребность в большем количестве программного обеспечения привела к разработке облачных приложений для ускорения создания и обновления программного обеспечения при одновременном повышении качества и снижении рисков. ” || Программное обеспечение пожирает мир” – Марк Андреессен. приступаем к сборке с помощью Fauna и Java с использованием Spring Boot ava, бессерверного, облачного нативного. нарт #фанатская игра |||| #undertale |||| dev |||| Я официально начал работу над RuntDeale! Из моего поста в Твиттере. Я только что начал реальную разработку RuntDeale. Пожелай мне удачи! – Выгодная сделка… С пометкой java, game dev, watercooler. Я официально начал с || моего поста в Твиттере || . буду работать над RuntDeale! || Я только начал настоящее развитие, Пожелайте мне удачи! на РантДейле. – Выгодная сделка с Тоби Фоксом. ( ;p ) || #gamegetting начал сборку с использованием Fauna и Java с использованием Spring, написанного в связи с программой Write With Fauna. oot #fa “Программное обеспечение пожирает мир” – Марк… Помеченный фауной, Написанный в связи с программой || Запись с фауной || . Фауна может выполнять транзакции ACID, создавать гибкие модели данных, выполнять мощные запросы к документам и реляционным запросам, а также обходы графиков. Fauna, API для современных приложений, предоставляет вам доступ к транзакционным базам данных через бессерверный API данных. Облачному приложению требуется облачная база данных. Разработка облачных приложений использует контейнерные технологии, архитектуру микросервисов, гибридное облако и т.д. При разработке программного обеспечения. Потребность в большем количестве программного обеспечения привела к разработке облачных приложений для ускорения создания и обновления программного обеспечения при одновременном повышении качества и снижении рисков. ” || Программное обеспечение пожирает мир” – Марк Андреессен. приступаем к сборке с помощью Fauna и Java с использованием Spring Boot ava, бессерверного, облачного нативного. нарт #фанатская игра |||| #undertale |||| dev ||||

Я официально начал работу над RuntDeale! Из моего поста в Твиттере. Я только что начал реальную разработку RuntDeale. Пожелай мне удачи! – Выгодная сделка… С пометкой java, game dev, watercooler. Я официально начал с || моего поста в Твиттере || . буду работать над RuntDeale! || Я только начал настоящее развитие, Пожелайте мне удачи! на РантДейле. – Выгодная сделка с Тоби Фоксом. ( ;p ) || #gamegetting начал сборку с использованием Fauna и Java с использованием Spring, написанного в связи с программой Write With Fauna. oot #fa “Программное обеспечение пожирает мир” – Марк… Помеченный фауной, Написанный в связи с программой || Запись с фауной || . В этом руководстве вы познакомитесь с процессом создания простого RESTful Todo List API. Фауна может выполнять транзакции ACID, создавать гибкие модели данных, выполнять мощные запросы к документам и реляционным запросам, а также обходы графиков. Fauna, API для современных приложений, предоставляет вам доступ к транзакционным базам данных через бессерверный API данных. Облачному приложению требуется облачная база данных. Разработка облачных приложений использует контейнерные технологии, архитектуру микросервисов, гибридное облако и т.д. При разработке программного обеспечения. Потребность в большем количестве программного обеспечения привела к разработке облачных приложений для ускорения создания и обновления программного обеспечения при одновременном повышении качества и снижении рисков. ” || Программное обеспечение пожирает мир” – Марк Андреессен. приступаем к сборке с помощью Fauna и Java с использованием Spring Boot ava, бессерверного, облачного нативного. нарт #фанатская игра |||| #undertale |||| dev |||| Я официально начал работу над RuntDeale! Из моего поста в Твиттере. Я только что начал реальную разработку RuntDeale. Пожелай мне удачи! – Выгодная сделка… С пометкой java, game dev, watercooler. Я официально начал с || моего поста в Твиттере || . буду работать над RuntDeale! || Я только начал настоящее развитие, Пожелайте мне удачи! на РантДейле. – Выгодная сделка с Тоби Фоксом. ( ;p ) || #gamegetting начал сборку с использованием Fauna и Java с использованием Spring, написанного в связи с программой Write With Fauna. oot #fa “Программное обеспечение пожирает мир” – Марк… Помеченный фауной, Написанный в связи с программой || Запись с фауной || . В конце этого урока вы узнаете, как работает Fauna, настроите проект Spring Boot с помощью Fauna и внедрили CRUD Todo List API. В этом руководстве вы познакомитесь с процессом создания простого RESTful Todo List API. Фауна может выполнять транзакции ACID, создавать гибкие модели данных, выполнять мощные запросы к документам и реляционным запросам, а также обходы графиков. Fauna, API для современных приложений, предоставляет вам доступ к транзакционным базам данных через бессерверный API данных. Облачному приложению требуется облачная база данных. Разработка облачных приложений использует контейнерные технологии, архитектуру микросервисов, гибридное облако и т.д. При разработке программного обеспечения. Потребность в большем количестве программного обеспечения привела к разработке облачных приложений для ускорения создания и обновления программного обеспечения при одновременном повышении качества и снижении рисков. ” || Программное обеспечение пожирает мир” – Марк Андреессен. приступаем к сборке с помощью Fauna и Java с использованием Spring Boot ava, бессерверного, облачного нативного. нарт #фанатская игра |||| #undertale |||| dev ||||

Я официально начал работу над RuntDeale! Из моего поста в Твиттере. Я только что начал реальную разработку RuntDeale. Пожелай мне удачи! – Выгодная сделка… С пометкой java, game dev, watercooler. Я официально начал с || моего поста в Твиттере || . буду работать над RuntDeale! || Я только начал настоящее развитие, Пожелайте мне удачи! на РантДейле. – Выгодная сделка с Тоби Фоксом. ( ;p ) || #gamegetting начал сборку с использованием Fauna и Java с использованием Spring, написанного в связи с программой Write With Fauna. oot #fa “Программное обеспечение пожирает мир” – Марк… Помеченный фауной, Написанный в связи с программой || Запись с фауной || . В этом руководстве будет рассказано: В конце этого руководства вы узнаете, как работает Fauna, настроите проект Spring Boot с помощью Fauna и внедрили CRUD Todo List API. В этом руководстве вы познакомитесь с процессом создания простого RESTful Todo List API. Фауна может выполнять транзакции ACID, создавать гибкие модели данных, выполнять мощные запросы к документам и реляционным запросам, а также обходы графиков. Fauna, API для современных приложений, предоставляет вам доступ к транзакционным базам данных через бессерверный API данных. Облачному приложению требуется облачная база данных. Разработка облачных приложений использует контейнерные технологии, архитектуру микросервисов, гибридное облако и т.д. При разработке программного обеспечения. Потребность в большем количестве программного обеспечения привела к разработке облачных приложений для ускорения создания и обновления программного обеспечения при одновременном повышении качества и снижении рисков. ” || Программное обеспечение пожирает мир” – Марк Андреессен. приступаем к сборке с помощью Fauna и Java с использованием Spring Boot ava, бессерверного, облачного нативного. нарт #фанатская игра |||| #undertale |||| dev ||||

  • Я официально начал работу над RuntDeale! Из моего поста в Твиттере. Я только что начал реальную разработку RuntDeale. Пожелай мне удачи! – Выгодная сделка… С пометкой java, game dev, watercooler. Я официально начал с
  • моего поста в Твиттере
    • . буду работать над RuntDeale!
    • Я только начал настоящее развитие, Пожелайте мне удачи! на РантДейле. – Выгодная сделка с Тоби Фоксом. ( ;p )
    • #gamegetting начал сборку с использованием Fauna и Java с использованием Spring, написанного в связи с программой Write With Fauna. oot #fa “Программное обеспечение пожирает мир” – Марк… Помеченный фауной, Написанный в связи с программой
    • Запись с фауной
  • . Как работает Fauna В этом руководстве будет рассказано: В конце этого руководства вы узнаете, как работает Fauna, настроите проект Spring Boot с помощью Fauna и внедрили CRUD Todo List API. В этом руководстве вы познакомитесь с процессом создания простого RESTful Todo List API. Фауна может выполнять транзакции ACID, создавать гибкие модели данных, выполнять мощные запросы к документам и реляционным запросам, а также обходы графиков. Fauna, API для современных приложений, предоставляет вам доступ к транзакционным базам данных через бессерверный API данных. Облачному приложению требуется облачная база данных. Разработка облачных приложений использует контейнерные технологии, архитектуру микросервисов, гибридное облако и т.д. При разработке программного обеспечения. Потребность в большем количестве программного обеспечения привела к разработке облачных приложений для ускорения создания и обновления программного обеспечения при одновременном повышении качества и снижении рисков. “
  • Программное обеспечение пожирает мир” – Марк Андреессен. приступаем к сборке с помощью Fauna и Java с использованием Spring Boot ava, бессерверного, облачного нативного. нарт #фанатская игра

Я официально начал работу над RuntDeale! Из моего поста в Твиттере. Я только что начал реальную разработку RuntDeale. Пожелай мне удачи! – Выгодная сделка… С пометкой java, game dev, watercooler. Я официально начал с моего поста в Твиттере . буду работать над RuntDeale!

Я официально начал работу над RuntDeale! Из моего поста в Твиттере. Я только что начал реальную разработку RuntDeale. Пожелай мне удачи! – Выгодная сделка… С пометкой java, game dev, watercooler. Я официально начал с || моего поста в Твиттере || . буду работать над RuntDeale! || Я только начал настоящее развитие, Пожелайте мне удачи! на РантДейле. – Выгодная сделка с Тоби Фоксом. ( ;p ) || #gamegetting начал сборку с использованием Fauna и Java с использованием Spring, написанного в связи с программой Write With Fauna. oot #fa “Программное обеспечение пожирает мир” – Марк… Помеченный фауной, Написанный в связи с программой || Запись с фауной || . Предварительные требования Для справки, вот репозиторий Github готового проекта, который вы можете использовать для продолжения: || https://github.com/Kikiodazie/Getting-started-with-Fauna-and-Java || . Заключение Тестирование API списка задач Реализация API списка задач Подготовка данных задачи Инициализация Фауны на панели мониторинга Фауны Настройка проекта Spring Boot с Фауной Создание API с Фауной и Spring Boot Как работает Фауна В этом руководстве будет рассказано: В конце этого руководства вы узнаете, как работает Фауна, настройте проект Spring Boot с фауной и реализовал CRUD Todo List API. В этом руководстве вы познакомитесь с процессом создания простого RESTful Todo List API. Фауна может выполнять транзакции ACID, создавать гибкие модели данных, выполнять мощные запросы к документам и реляционным запросам, а также обходы графиков. Fauna, API для современных приложений, предоставляет вам доступ к транзакционным базам данных через бессерверный API данных. Облачному приложению требуется облачная база данных. Разработка облачных приложений использует контейнерные технологии, архитектуру микросервисов, гибридное облако и т.д. При разработке программного обеспечения. Потребность в большем количестве программного обеспечения привела к разработке облачных приложений для ускорения создания и обновления программного обеспечения при одновременном повышении качества и снижении рисков. ” || Программное обеспечение пожирает мир” – Марк Андреессен. приступаем к сборке с помощью Fauna и Java с использованием Spring Boot ava, бессерверного, облачного нативного. нарт #фанатская игра |||| #undertale |||| dev ||||

Я официально начал работу над RuntDeale! Из моего поста в Твиттере. Я только что начал реальную разработку RuntDeale. Пожелай мне удачи! – Выгодная сделка… С пометкой java, game dev, watercooler. Я официально начал с || моего поста в Твиттере || . буду работать над RuntDeale! || Я только начал настоящее развитие, Пожелайте мне удачи! на РантДейле. – Выгодная сделка с Тоби Фоксом. ( ;p ) || #gamegetting начал сборку с использованием Fauna и Java с использованием Spring, написанного в связи с программой Write With Fauna. oot #fa “Программное обеспечение пожирает мир” – Марк… Помеченный фауной, Написанный в связи с программой || Запись с фауной || . Как работает Postman – скачайте его || здесь || В этом уроке мы будем использовать IntelliJ Idea, но вы можете использовать любую IDE по вашему выбору Java IDE – Java 8 или выше (в этом уроке используется Java 11) Базовое понимание предпосылок проектирования RESTful API Для справки, вот Github репозиторий готового проекта, который вы можете использовать для продолжения: || https://github.com/Kikiodazie/Getting-started-with-Fauna-and-Java || . Заключение Тестирование API списка задач Реализация API списка задач Подготовка данных задачи Инициализация Фауны на панели мониторинга Фауны Настройка проекта Spring Boot с Фауной Создание API с Фауной и Spring Boot Как работает Фауна В этом руководстве будет рассказано: В конце этого руководства вы узнаете, как работает Фауна, настройте проект Spring Boot с фауной и реализовал CRUD Todo List API. В этом руководстве вы познакомитесь с процессом создания простого RESTful Todo List API. Фауна может выполнять транзакции ACID, создавать гибкие модели данных, выполнять мощные запросы к документам и реляционным запросам, а также обходы графиков. Fauna, API для современных приложений, предоставляет вам доступ к транзакционным базам данных через бессерверный API данных. Облачному приложению требуется облачная база данных. Разработка облачных приложений использует контейнерные технологии, архитектуру микросервисов, гибридное облако и т.д. При разработке программного обеспечения. Потребность в большем количестве программного обеспечения привела к разработке облачных приложений для ускорения создания и обновления программного обеспечения при одновременном повышении качества и снижении рисков. ” || Программное обеспечение пожирает мир” – Марк Андреессен. приступаем к сборке с помощью Fauna и Java с использованием Spring Boot ava, бессерверного, облачного нативного. нарт #фанатская игра |||| #undertale |||| dev ||||

Я официально начал работу над RuntDeale! Из моего поста в Твиттере. Я только что начал реальную разработку RuntDeale. Пожелай мне удачи! – Выгодная сделка… С пометкой java, game dev, watercooler. Я официально начал с || моего поста в Твиттере || . буду работать над RuntDeale! || Я только начал настоящее развитие, Пожелайте мне удачи! на РантДейле. – Выгодная сделка с Тоби Фоксом. ( ;p ) || #gamegetting начал сборку с использованием Fauna и Java с использованием Spring, написанного в связи с программой Write With Fauna. oot #fa “Программное обеспечение пожирает мир” – Марк… Помеченный фауной, Написанный в связи с программой || Запись с фауной || . Это позволяет вам сосредоточиться на ваших данных. Как работает Postman – скачайте его || здесь || В этом уроке мы будем использовать IntelliJ Idea, но вы можете использовать любую IDE по вашему выбору Java IDE – Java 8 или выше (в этом уроке используется Java 11) Базовое понимание предпосылок проектирования RESTful API Для справки, вот Github репозиторий готового проекта, который вы можете использовать для продолжения: || https://github.com/Kikiodazie/Getting-started-with-Fauna-and-Java || . Заключение Тестирование API списка задач Реализация API списка задач Подготовка данных задачи Инициализация Фауны на панели мониторинга Фауны Настройка проекта Spring Boot с Фауной Создание API с Фауной и Spring Boot Как работает Фауна В этом руководстве будет рассказано: В конце этого руководства вы узнаете, как работает Фауна, настройте проект Spring Boot с фауной и реализовал CRUD Todo List API. В этом руководстве вы познакомитесь с процессом создания простого RESTful Todo List API. Фауна может выполнять транзакции ACID, создавать гибкие модели данных, выполнять мощные запросы к документам и реляционным запросам, а также обходы графиков. Fauna, API для современных приложений, предоставляет вам доступ к транзакционным базам данных через бессерверный API данных. Облачному приложению требуется облачная база данных. Разработка облачных приложений использует контейнерные технологии, архитектуру микросервисов, гибридное облако и т.д. При разработке программного обеспечения. Потребность в большем количестве программного обеспечения привела к разработке облачных приложений для ускорения создания и обновления программного обеспечения при одновременном повышении качества и снижении рисков. ” || Программное обеспечение пожирает мир” – Марк Андреессен. приступаем к сборке с помощью Fauna и Java с использованием Spring Boot ava, бессерверного, облачного нативного. нарт #фанатская игра |||| #undertale |||| dev |||| Я официально начал работу над RuntDeale! Из моего поста в Твиттере. Я только что начал реальную разработку RuntDeale. Пожелай мне удачи! – Выгодная сделка… С пометкой java, game dev, watercooler. Я официально начал с || моего поста в Твиттере || . буду работать над RuntDeale! || Я только начал настоящее развитие, Пожелайте мне удачи! на РантДейле. – Выгодная сделка с Тоби Фоксом. ( ;p ) || #gamegetting начал сборку с использованием Fauna и Java с использованием Spring, написанного в связи с программой Write With Fauna. oot #fa “Программное обеспечение пожирает мир” – Марк… Помеченный фауной, Написанный в связи с программой || Запись с фауной || . Это уменьшает операционные трудности, связанные с управлением базами данных, с помощью запросов разработчика. Это позволяет вам сосредоточиться на ваших данных. Как работает Postman – скачайте его || здесь || В этом уроке мы будем использовать IntelliJ Idea, но вы можете использовать любую IDE по вашему выбору Java IDE – Java 8 или выше (в этом уроке используется Java 11) Базовое понимание предпосылок проектирования RESTful API Для справки, вот Github репозиторий готового проекта, который вы можете использовать для продолжения: || https://github.com/Kikiodazie/Getting-started-with-Fauna-and-Java || . Заключение Тестирование API списка задач Реализация API списка задач Подготовка данных задачи Инициализация Фауны на панели мониторинга Фауны Настройка проекта Spring Boot с Фауной Создание API с Фауной и Spring Boot Как работает Фауна В этом руководстве будет рассказано: В конце этого руководства вы узнаете, как работает Фауна, настройте проект Spring Boot с фауной и реализовал CRUD Todo List API. В этом руководстве вы познакомитесь с процессом создания простого RESTful Todo List API. Фауна может выполнять транзакции ACID, создавать гибкие модели данных, выполнять мощные запросы к документам и реляционным запросам, а также обходы графиков. Fauna, API для современных приложений, предоставляет вам доступ к транзакционным базам данных через бессерверный API данных. Облачному приложению требуется облачная база данных. Разработка облачных приложений использует контейнерные технологии, архитектуру микросервисов, гибридное облако и т.д. При разработке программного обеспечения. Потребность в большем количестве программного обеспечения привела к разработке облачных приложений для ускорения создания и обновления программного обеспечения при одновременном повышении качества и снижении рисков. ” || Программное обеспечение пожирает мир” – Марк Андреессен. приступаем к сборке с помощью Fauna и Java с использованием Spring Boot ava, бессерверного, облачного нативного. нарт #фанатская игра |||| #undertale |||| dev |||| Я официально начал работу над RuntDeale! Из моего поста в Твиттере. Я только что начал реальную разработку RuntDeale. Пожелай мне удачи! – Выгодная сделка… С пометкой java, game dev, watercooler. Я официально начал с || моего поста в Твиттере || . буду работать над RuntDeale! || Я только начал настоящее развитие, Пожелайте мне удачи! на РантДейле. – Выгодная сделка с Тоби Фоксом. ( ;p ) || #gamegetting начал сборку с использованием Fauna и Java с использованием Spring, написанного в связи с программой Write With Fauna. oot #fa “Программное обеспечение пожирает мир” – Марк… Помеченный фауной, Написанный в связи с программой || Запись с фауной || . Fauna обеспечивает вам необходимую безопасность и надежность данных без особых усилий с вашей стороны. Это уменьшает операционные трудности, связанные с управлением базами данных, с помощью запросов разработчика. Это позволяет вам сосредоточиться на ваших данных. Как работает Postman – скачайте его || здесь || В этом уроке мы будем использовать IntelliJ Idea, но вы можете использовать любую IDE по вашему выбору Java IDE – Java 8 или выше (в этом уроке используется Java 11) Базовое понимание предпосылок проектирования RESTful API Для справки, вот Github репозиторий готового проекта, который вы можете использовать для продолжения: || https://github.com/Kikiodazie/Getting-started-with-Fauna-and-Java || . Заключение Тестирование API списка задач Реализация API списка задач Подготовка данных задачи Инициализация Фауны на панели мониторинга Фауны Настройка проекта Spring Boot с Фауной Создание API с Фауной и Spring Boot Как работает Фауна В этом руководстве будет рассказано: В конце этого руководства вы узнаете, как работает Фауна, настройте проект Spring Boot с фауной и реализовал CRUD Todo List API. В этом руководстве вы познакомитесь с процессом создания простого RESTful Todo List API. Фауна может выполнять транзакции ACID, создавать гибкие модели данных, выполнять мощные запросы к документам и реляционным запросам, а также обходы графиков. Fauna, API для современных приложений, предоставляет вам доступ к транзакционным базам данных через бессерверный API данных. Облачному приложению требуется облачная база данных. Разработка облачных приложений использует контейнерные технологии, архитектуру микросервисов, гибридное облако и т.д. При разработке программного обеспечения. Потребность в большем количестве программного обеспечения привела к разработке облачных приложений для ускорения создания и обновления программного обеспечения при одновременном повышении качества и снижении рисков. ” || Программное обеспечение пожирает мир” – Марк Андреессен. приступаем к сборке с помощью Fauna и Java с использованием Spring Boot ava, бессерверного, облачного нативного. нарт #фанатская игра |||| #undertale |||| dev ||||

Я официально начал работу над RuntDeale! Из моего поста в Твиттере. Я только что начал реальную разработку RuntDeale. Пожелай мне удачи! – Выгодная сделка… С пометкой java, game dev, watercooler. Я официально начал с моего поста в Твиттере . буду работать над RuntDeale! Я только начал настоящее развитие, Пожелайте мне удачи! на РантДейле. – Выгодная сделка с Тоби Фоксом. ( ;p ) #gamegetting начал сборку с использованием Fauna и Java с использованием Spring, написанного в связи с программой Write With Fauna. oot #fa “Программное обеспечение пожирает мир” – Марк… Помеченный фауной, Написанный в связи с программой

Я официально начал работу над RuntDeale! Из моего поста в Твиттере. Я только что начал реальную разработку RuntDeale. Пожелай мне удачи! – Выгодная сделка… С пометкой java, game dev, watercooler. Я официально начал с моего поста в Твиттере . буду работать над RuntDeale!

Я официально начал работу над RuntDeale! Из моего поста в Твиттере. Я только что начал реальную разработку RuntDeale. Пожелай мне удачи! – Выгодная сделка… С пометкой java, game dev, watercooler. Я официально начал с || моего поста в Твиттере || . буду работать над RuntDeale! || Я только начал настоящее развитие, Пожелайте мне удачи! на РантДейле. – Выгодная сделка с Тоби Фоксом. ( ;p ) || #gamegetting начал сборку с использованием Fauna и Java с использованием Spring, написанного в связи с программой Write With Fauna. oot #fa “Программное обеспечение пожирает мир” – Марк… Помеченный фауной, Написанный в связи с программой || Запись с фауной || . Создание API с фауной и функциями фауны Spring Boot || . Для получения более подробной информации о том, что такое Фауна и как она работает, см. || В этом руководстве вы будете использовать панель мониторинга фауны. Вы можете писать запросы FQL через оболочку Fauna на вашем терминале или через оболочку на панели инструментов Fauna. (или || FQL || для краткости) для выполнения запросов внутри Фауны. Для взаимодействия с любой базой данных разработчики пишут запросы на языке запросов; с Фауной вы можете использовать || Язык запросов фауны || Фауна обеспечивает вам необходимую безопасность и надежность данных без особых усилий с вашей стороны. Это уменьшает операционные трудности, связанные с управлением базами данных, с помощью запросов разработчика. Это позволяет вам сосредоточиться на ваших данных. Как работает Postman – скачайте его || здесь || В этом уроке мы будем использовать IntelliJ Idea, но вы можете использовать любую IDE по вашему выбору Java IDE – Java 8 или выше (в этом уроке используется Java 11) Базовое понимание предпосылок проектирования RESTful API Для справки, вот Github репозиторий готового проекта, который вы можете использовать для продолжения: || https://github.com/Kikiodazie/Getting-started-with-Fauna-and-Java || . Заключение Тестирование API списка задач Реализация API списка задач Подготовка данных задачи Инициализация Фауны на панели мониторинга Фауны Настройка проекта Spring Boot с Фауной Создание API с Фауной и Spring Boot Как работает Фауна В этом руководстве будет рассказано: В конце этого руководства вы узнаете, как работает Фауна, настройте проект Spring Boot с фауной и реализовал CRUD Todo List API. В этом руководстве вы познакомитесь с процессом создания простого RESTful Todo List API. Фауна может выполнять транзакции ACID, создавать гибкие модели данных, выполнять мощные запросы к документам и реляционным запросам, а также обходы графиков. Fauna, API для современных приложений, предоставляет вам доступ к транзакционным базам данных через бессерверный API данных. Облачному приложению требуется облачная база данных. Разработка облачных приложений использует контейнерные технологии, архитектуру микросервисов, гибридное облако и т.д. При разработке программного обеспечения. Потребность в большем количестве программного обеспечения привела к разработке облачных приложений для ускорения создания и обновления программного обеспечения при одновременном повышении качества и снижении рисков. ” || Программное обеспечение пожирает мир” – Марк Андреессен. приступаем к сборке с помощью Fauna и Java с использованием Spring Boot ava, бессерверного, облачного нативного. нарт #фанатская игра |||| #undertale |||| dev ||||

Я официально начал работу над RuntDeale! Из моего поста в Твиттере. Я только что начал реальную разработку RuntDeale. Пожелай мне удачи! – Выгодная сделка… С пометкой java, game dev, watercooler. Я официально начал с || моего поста в Твиттере || . буду работать над RuntDeale! || Я только начал настоящее развитие, Пожелайте мне удачи! на РантДейле. – Выгодная сделка с Тоби Фоксом. ( ;p ) || #gamegetting начал сборку с использованием Fauna и Java с использованием Spring, написанного в связи с программой Write With Fauna. oot #fa “Программное обеспечение пожирает мир” – Марк… Помеченный фауной, Написанный в связи с программой || Запись с фауной || . Настройте проект Spring Boot с Фауной, создав API с фауной и функциями фауны Spring Boot || . Для получения более подробной информации о том, что такое Фауна и как она работает, см. || В этом руководстве вы будете использовать панель мониторинга фауны. Вы можете писать запросы FQL через оболочку Fauna на вашем терминале или через оболочку на панели инструментов Fauna. (или || FQL || для краткости) для выполнения запросов внутри Фауны. Для взаимодействия с любой базой данных разработчики пишут запросы на языке запросов; с Фауной вы можете использовать || Язык запросов фауны || Фауна обеспечивает вам необходимую безопасность и надежность данных без особых усилий с вашей стороны. Это уменьшает операционные трудности, связанные с управлением базами данных, с помощью запросов разработчика. Это позволяет вам сосредоточиться на ваших данных. Как работает Postman – скачайте его || здесь || В этом уроке мы будем использовать IntelliJ Idea, но вы можете использовать любую IDE по вашему выбору Java IDE – Java 8 или выше (в этом уроке используется Java 11) Базовое понимание предпосылок проектирования RESTful API Для справки, вот Github репозиторий готового проекта, который вы можете использовать для продолжения: || https://github.com/Kikiodazie/Getting-started-with-Fauna-and-Java || . Заключение Тестирование API списка задач Реализация API списка задач Подготовка данных задачи Инициализация Фауны на панели мониторинга Фауны Настройка проекта Spring Boot с Фауной Создание API с Фауной и Spring Boot Как работает Фауна В этом руководстве будет рассказано: В конце этого руководства вы узнаете, как работает Фауна, настройте проект Spring Boot с фауной и реализовал CRUD Todo List API. В этом руководстве вы познакомитесь с процессом создания простого RESTful Todo List API. Фауна может выполнять транзакции ACID, создавать гибкие модели данных, выполнять мощные запросы к документам и реляционным запросам, а также обходы графиков. Fauna, API для современных приложений, предоставляет вам доступ к транзакционным базам данных через бессерверный API данных. Облачному приложению требуется облачная база данных. Разработка облачных приложений использует контейнерные технологии, архитектуру микросервисов, гибридное облако и т.д. При разработке программного обеспечения. Потребность в большем количестве программного обеспечения привела к разработке облачных приложений для ускорения создания и обновления программного обеспечения при одновременном повышении качества и снижении рисков. ” || Программное обеспечение пожирает мир” – Марк Андреессен. приступаем к сборке с помощью Fauna и Java с использованием Spring Boot ava, бессерверного, облачного нативного. нарт #фанатская игра |||| #undertale |||| dev ||||

Я официально начал работу над RuntDeale! Из моего поста в Твиттере. Я только что начал реальную разработку RuntDeale. Пожелай мне удачи! – Выгодная сделка… С пометкой java, game dev, watercooler. Я официально начал с моего поста в Твиттере . буду работать над RuntDeale! Я только начал настоящее развитие, Пожелайте мне удачи! на РантДейле. – Выгодная сделка с Тоби Фоксом. ( ;p ) #gamegetting начал сборку с использованием Fauna и Java с использованием Spring, написанного в связи с программой Write With Fauna. oot #fa “Программное обеспечение пожирает мир” – Марк… Помеченный фауной, Написанный в связи с программой

Я официально начал работу над RuntDeale! Из моего поста в Твиттере. Я только что начал реальную разработку RuntDeale. Пожелай мне удачи! – Выгодная сделка… С пометкой java, game dev, watercooler. Я официально начал с || моего поста в Твиттере || . буду работать над RuntDeale! || Я только начал настоящее развитие, Пожелайте мне удачи! на РантДейле. – Выгодная сделка с Тоби Фоксом. ( ;p ) || #gamegetting начал сборку с использованием Fauna и Java с использованием Spring, написанного в связи с программой Write With Fauna. oot #fa “Программное обеспечение пожирает мир” – Марк… Помеченный фауной, Написанный в связи с программой || Запись с фауной || . Нажмите “Сгенерировать”, а затем импортируйте проект в IDE. Вы можете использовать || Spring Initializr || для настройки вашего проекта Spring Boot, нажав на эту || ссылку || , которая заполнит для вас детали базовой конфигурации. Настройте проект Spring Boot с Фауной, создав API с фауной и функциями фауны Spring Boot || . Для получения более подробной информации о том, что такое Фауна и как она работает, см. || В этом руководстве вы будете использовать панель мониторинга фауны. Вы можете писать запросы FQL через оболочку Fauna на вашем терминале или через оболочку на панели инструментов Fauna. (или || FQL || для краткости) для выполнения запросов внутри Фауны. Для взаимодействия с любой базой данных разработчики пишут запросы на языке запросов; с Фауной вы можете использовать || Язык запросов фауны || Фауна обеспечивает необходимую безопасность и надежность данных без особых усилий с вашей стороны. Это уменьшает операционные трудности, связанные с управлением базами данных, с помощью запросов разработчика. Это позволяет вам сосредоточиться на ваших данных. Как работает Postman – скачайте его || здесь || В этом уроке мы будем использовать IntelliJ Idea, но вы можете использовать любую IDE по вашему выбору Java IDE – Java 8 или выше (в этом уроке используется Java 11) Базовое понимание предпосылок проектирования RESTful API Для справки, вот Github репозиторий готового проекта, который вы можете использовать для продолжения: || https://github.com/Kikiodazie/Getting-started-with-Fauna-and-Java || . Заключение Тестирование API списка задач Реализация API списка задач Подготовка данных задачи Инициализация Фауны на панели мониторинга Фауны Настройка проекта Spring Boot с Фауной Создание API с Фауной и Spring Boot Как работает Фауна В этом руководстве будет рассказано: В конце этого руководства вы узнаете, как работает Фауна, настройте проект Spring Boot с фауной и реализовал CRUD Todo List API. В этом руководстве вы познакомитесь с процессом создания простого RESTful Todo List API. Фауна может выполнять транзакции ACID, создавать гибкие модели данных, выполнять мощные запросы к документам и реляционным запросам, а также обходы графиков. Fauna, API для современных приложений, предоставляет вам доступ к транзакционным базам данных через бессерверный API данных. Облачному приложению требуется облачная база данных. Разработка облачных приложений использует контейнерные технологии, архитектуру микросервисов, гибридное облако и т.д. При разработке программного обеспечения. Потребность в большем количестве программного обеспечения привела к разработке облачных приложений для ускорения создания и обновления программного обеспечения при одновременном повышении качества и снижении рисков. ” || Программное обеспечение пожирает мир” – Марк Андреессен. приступаем к сборке с помощью Fauna и Java с использованием Spring Boot ava, бессерверного, облачного нативного. нарт #фанатская игра |||| #undertale |||| dev |||| Я официально начал работу над RuntDeale! Из моего поста в Твиттере. Я только что начал реальную разработку RuntDeale. Пожелай мне удачи! – Выгодная сделка… С пометкой java, game dev, watercooler. Я официально начал с || моего поста в Твиттере || . буду работать над RuntDeale! || Я только начал настоящее развитие, Пожелайте мне удачи! на РантДейле. – Выгодная сделка с Тоби Фоксом. ( ;p ) || #gamegetting начал сборку с использованием Fauna и Java с использованием Spring, написанного в связи с программой Write With Fauna. oot #fa “Программное обеспечение пожирает мир” – Марк… Помеченный фауной, Написанный в связи с программой || Запись с фауной || . После импорта проекта структура каталогов должна выглядеть следующим образом: нажмите “Создать”, а затем импортируйте проект в IDE. Вы можете использовать || Spring Initializr || для настройки вашего проекта Spring Boot, нажав на эту || ссылку || , которая заполнит для вас детали базовой конфигурации. Настройте проект Spring Boot с Фауной, создав API с фауной и функциями фауны Spring Boot || . Для получения более подробной информации о том, что такое Фауна и как она работает, см. || В этом руководстве вы будете использовать панель мониторинга фауны. Вы можете писать запросы FQL через оболочку Fauna на вашем терминале или через оболочку на панели инструментов Fauna. (или || FQL || для краткости) для выполнения запросов внутри Фауны. Для взаимодействия с любой базой данных разработчики пишут запросы на языке запросов; с Фауной вы можете использовать || Язык запросов фауны || Фауна обеспечивает необходимую безопасность и надежность данных без особых усилий с вашей стороны. Это уменьшает операционные трудности, связанные с управлением базами данных, с помощью запросов разработчика. Это позволяет вам сосредоточиться на ваших данных. Как работает Postman – скачайте его || здесь || В этом уроке мы будем использовать IntelliJ Idea, но вы можете использовать любую IDE по вашему выбору Java IDE – Java 8 или выше (в этом уроке используется Java 11) Базовое понимание предпосылок проектирования RESTful API Для справки, вот Github репозиторий готового проекта, который вы можете использовать для продолжения: || https://github.com/Kikiodazie/Getting-started-with-Fauna-and-Java || . Заключение Тестирование API списка задач Реализация API списка задач Подготовка данных задачи Инициализация Фауны на панели мониторинга Фауны Настройка проекта Spring Boot с Фауной Создание API с Фауной и Spring Boot Как работает Фауна В этом руководстве будет рассказано: В конце этого руководства вы узнаете, как работает Фауна, настройте проект Spring Boot с фауной и реализовал CRUD Todo List API. В этом руководстве вы познакомитесь с процессом создания простого RESTful Todo List API. Фауна может выполнять транзакции ACID, создавать гибкие модели данных, выполнять мощные запросы к документам и реляционным запросам, а также обходы графиков. Fauna, API для современных приложений, предоставляет вам доступ к транзакционным базам данных через бессерверный API данных. Облачному приложению требуется облачная база данных. Разработка облачных приложений использует контейнерные технологии, архитектуру микросервисов, гибридное облако и т.д. При разработке программного обеспечения. Потребность в большем количестве программного обеспечения привела к разработке облачных приложений для ускорения создания и обновления программного обеспечения при одновременном повышении качества и снижении рисков. ” || Программное обеспечение пожирает мир” – Марк Андреессен. приступаем к сборке с помощью Fauna и Java с использованием Spring Boot ava, бессерверного, облачного нативного. нарт #фанатская игра |||| #undertale |||| dev ||||

todolist-api-with-faunadb
├── mvnw
├── mvnw.cmd
├── pom.xml
└── src
    ├── main
    │   ├── java
    │   │   └── com
    │   │       └── demo
    │   │           └── todolistapiwithfaunadb
    │   │               └── TodolistApiWithFaunadbApplication.java
    │   └── resources
    │       ├── application.properties
    │       ├── static
    │       └── templates
    └── test
        └── java
            └── com
                └── demo
                    └── todolistapiwithfaunadb
                        └── TodolistApiWithFaunadbApplicationTests.java

Я официально начал работу над RuntDeale! Из моего поста в Твиттере. Я только что начал реальную разработку RuntDeale. Пожелай мне удачи! – Выгодная сделка… С пометкой java, game dev, watercooler. Я официально начал с моего поста в Твиттере . буду работать над RuntDeale! Я только начал настоящее развитие, Пожелайте мне удачи! на РантДейле. - Выгодная сделка с Тоби Фоксом. ( ;p ) #gamegetting начал сборку с использованием Fauna и Java с использованием Spring, написанного в связи с программой Write With Fauna. oot #fa “Программное обеспечение пожирает мир” – Марк… Помеченный фауной, Написанный в связи с программой

// Fauna Maven dependency

  com.faunadb
  faunadb-java
  4.0.1
  compile

Я официально начал работу над RuntDeale! Из моего поста в Твиттере. Я только что начал реальную разработку RuntDeale. Пожелай мне удачи! – Выгодная сделка… С пометкой java, game dev, watercooler. Я официально начал с моего поста в Твиттере . буду работать над RuntDeale!

Я официально начал работу над RuntDeale! Из моего поста в Твиттере. Я только что начал реальную разработку RuntDeale. Пожелай мне удачи! – Выгодная сделка… С пометкой java, game dev, watercooler. Я официально начал с моего поста в Твиттере . буду работать над RuntDeale!

Я официально начал работу над RuntDeale! Из моего поста в Твиттере. Я только что начал реальную разработку RuntDeale. Пожелай мне удачи! – Выгодная сделка… С пометкой java, game dev, watercooler. Я официально начал с || моего поста в Твиттере || . буду работать над RuntDeale! || Я только начал настоящее развитие, Пожелайте мне удачи! на РантДейле. – Выгодная сделка с Тоби Фоксом. ( ;p ) || #gamegetting начал сборку с использованием Fauna и Java с использованием Spring, написанного в связи с программой Write With Fauna. oot #fa “Программное обеспечение пожирает мир” – Марк… Помеченный фауной, Написанный в связи с программой || Запись с фауной || . Инициализация фауны Далее вы создадите базу данных на панели мониторинга Фауны, сгенерируете ключ сервера и настроите || FaunaClient || в проекте Spring Boot. (Собственный клиент Java для Фауны) для использования в вашем проекте для запроса облачной базы данных. FaunaClient || Теперь вы можете настроить || Обновить свой проект || pom.xml || файл, в котором присутствует приведенная ниже зависимость: Чтобы выполнять запросы к облачной базе данных Fauna через ваш проект Spring Boot, вам нужно будет добавить зависимость Fauna Maven в свой проект || pom.xml || . После импорта проекта структура каталогов должна выглядеть следующим образом: нажмите “Создать”, а затем импортируйте проект в IDE. Вы можете использовать || Spring Initializr || для настройки вашего проекта Spring Boot, нажав на эту || ссылку || , которая заполнит для вас детали базовой конфигурации. Настройте проект Spring Boot с Фауной, создав API с фауной и функциями фауны Spring Boot || . Для получения более подробной информации о том, что такое Фауна и как она работает, см. || В этом руководстве вы будете использовать панель мониторинга фауны. Вы можете писать запросы FQL через оболочку Fauna на вашем терминале или через оболочку на панели инструментов Fauna. (или || FQL || для краткости) для выполнения запросов внутри Фауны. Для взаимодействия с любой базой данных разработчики пишут запросы на языке запросов; с Фауной вы можете использовать || Язык запросов фауны || Фауна обеспечивает вам необходимую безопасность и надежность данных без особых усилий с вашей стороны. Это уменьшает операционные трудности, связанные с управлением базами данных, с помощью запросов разработчика. Это позволяет вам сосредоточиться на ваших данных. Как работает Postman – скачайте его || здесь || В этом уроке мы будем использовать IntelliJ Idea, но вы можете использовать любую IDE по вашему выбору Java IDE – Java 8 или выше (в этом уроке используется Java 11) Базовое понимание предпосылок проектирования RESTful API Для справки, вот Github репозиторий готового проекта, который вы можете использовать для продолжения: || https://github.com/Kikiodazie/Getting-started-with-Fauna-and-Java || . Заключение Тестирование API списка задач Реализация API списка задач Подготовка данных задачи Инициализация Фауны на панели мониторинга Фауны Настройка проекта Spring Boot с Фауной Создание API с Фауной и Spring Boot Как работает Фауна В этом руководстве будет рассказано: В конце этого руководства вы узнаете, как работает Фауна, настройте проект Spring Boot с фауной и реализовал CRUD Todo List API. В этом руководстве вы познакомитесь с процессом создания простого RESTful Todo List API. Фауна может выполнять транзакции ACID, создавать гибкие модели данных, выполнять мощные запросы к документам и реляционным запросам, а также обходы графиков. Fauna, API для современных приложений, предоставляет вам доступ к транзакционным базам данных через бессерверный API данных. Облачному приложению требуется облачная база данных. Разработка облачных приложений использует контейнерные технологии, архитектуру микросервисов, гибридное облако и т.д. При разработке программного обеспечения. Потребность в большем количестве программного обеспечения привела к разработке облачных приложений для ускорения создания и обновления программного обеспечения при одновременном повышении качества и снижении рисков. ” || Программное обеспечение пожирает мир” – Марк Андреессен. приступаем к сборке с помощью Fauna и Java с использованием Spring Boot ava, бессерверного, облачного нативного. нарт #фанатская игра |||| #undertale |||| dev ||||

Я официально начал работу над RuntDeale! Из моего поста в Твиттере. Я только что начал реальную разработку RuntDeale. Пожелай мне удачи! – Выгодная сделка… С пометкой java, game dev, watercooler. Я официально начал с моего поста в Твиттере . буду работать над RuntDeale! Я только начал настоящее развитие, Пожелайте мне удачи! на РантДейле. – Выгодная сделка с Тоби Фоксом. ( ;p ) #gamegetting начал сборку с использованием Fauna и Java с использованием Spring, написанного в связи с программой Write With Fauna. oot #fa “Программное обеспечение пожирает мир” – Марк… Помеченный фауной, Написанный в связи с программой

Я официально начал работу над RuntDeale! Из моего поста в Твиттере. Я только что начал реальную разработку RuntDeale. Пожелай мне удачи! – Выгодная сделка… С пометкой java, game dev, watercooler. Я официально начал с моего поста в Твиттере . буду работать над RuntDeale!

Я официально начал работу над RuntDeale! Из моего поста в Твиттере. Я только что начал реальную разработку RuntDeale. Пожелай мне удачи! – Выгодная сделка… С пометкой java, game dev, watercooler. Я официально начал с моего поста в Твиттере . буду работать над RuntDeale!

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

В вашем проекте, чтобы настроить FaunaClient в Spring Boot Java, найдите основной класс приложения todolistapiwithfaunadbприложение.java в src/main/java/com/demo/todolistapiwithfaunadb путь, который аннотируется с помощью @SpringBootApplication аннотации.

В вашем файле application.properties добавьте переменную окружения fauna-db.secret для защиты вашего секрета. Вы будете использовать переменную private для хранения вашего секретного ключа для настройки/ клиента |/в основном классе приложения.

fauna-db.secret=fnAELIH5_EACBbjxHugMSRxZ0yZxemDWU2Q-ynkE

Создайте закрытую переменную ключ сервера :

@Value("${fauna-db.secret}")
private String serverKey;

Аннотация @Value вводит значение faunadb.secret из application.properties в поле переменной serverKey .

Как настроить Для клиента создайте bean , используя аннотацию |/@bean на уровне метода. Затем создайте компонент single scope, используя аннотацию @Scope . Параметр @Scope создает единственный экземпляр конфигурации компонента; все запросы к компоненту будут возвращать один и тот же объект, который кэшируется.

@Bean
@Scope(value = ConfigurableBeanFactory.SCOPE_SINGLETON)
public FaunaClient faunaConfiguration() {
    FaunaClient faunaClient = FaunaClient.builder()
            .withSecret(serverKey)
            .build();

    return faunaClient;
}

Создание экземпляра Клиента фауны подключается к Фауне с помощью ключ сервера предоставлен.

Теперь вы можете использовать Клиент фауны в любом месте вашего проекта Spring Boot и убедитесь, что он запрашивает вашу облачную базу данных.

Чтобы узнать больше о клиенте Fauna , ознакомьтесь с Документация по фауне Java .

Подготовка данных Todo

Теперь вы готовы выполнить свои первые запросы FQL для создания вашей первой коллекции, индекса, документа и т.д. Чтобы сделать это, вы собираетесь использовать оболочку прямо из панели управления фауной:

Если вы никогда раньше не использовали запросы FQL, быстро ознакомьтесь с этой вводной статьей .

Чтобы начать выполнение CRUD-запросов к вашей базе данных, создайте collection для хранения Todo documents . Чтобы создать коллекцию todos, выполните этот запрос в командной оболочке:

CreateCollection(
  { name: "todos" }
);

Приведенный выше запрос FQL возвращает JSON-подобные данные, аналогичные этому:

{
  ref: Collection("todos"),
  ts: 1623105286880000,
  history_days: 30,
  name: "todos"
}

Далее вам нужно создать индекс для извлечения всех задач из коллекции todos :

CreateIndex(
  {
    name: "all_todos",
    source: Class("todos")
  }
);

До сих пор вы настроили проект Spring Boot с зависимостью Maven, создали базу данных и ключ сервера. Кроме того, вы настроили Fauna Client в вашем проекте Spring Boot и узнал, как писать запросы FQL через оболочку на панели инструментов Fauna. Далее вы реализуете API списка задач с помощью Fauna и протестируете его.

Реализация API списка задач

API списка задач предоставит следующие конечные точки RESTful:

СООБЩЕНИЕ /задачи Создайте новую задачу
GET /todos/{id} Нужно что-то сделать
PUT /todos/{идентификатор} Обновление задачи
УДАЛИТЬ /задачи/{идентификатор} Удалить задачу
ПОЛУЧИТЬ /todos Перечислите все задачи

Теперь структурируйте свой проект по разным слоям. Для этой демонстрации вы можете использовать эту структуру:

├── src
    ├── main
        ├── java
            └── com
                └── demo
                    └── todolistapiwithfaunadb
                        ├── data
                        │   ├── dataModel
                        ├── persistence
                        ├── rest
                        ├── service
                        └── TodolistApiWithFaunadbApplication.java  

Вышеуказанные пакеты:

  • Уровень данных для определения сущностей и других структур модели данных
  • Уровень сохраняемости для доступа и управления вашей базой данных фауны
  • Уровень обслуживания для бизнес-логики API и
  • Уровень Rest (web) для ваших контроллеров REST

При реализации API списка задач мы собираемся реализовать каждый уровень в следующем порядке

Уровень данных = Уровень сохраняемости = Уровень обслуживания = Rest (веб) проигрыватель

Уровень данных

Для начала создайте модели данных для API списка задач.

В src/main/java/com/demo/todolistapiwithfaunadb/data/DataModel путь к каталогу создайте абстрактный Объект класс:

package com.demo.todolistapiwithfaunadb.data.dataModel;

public abstract class Entity {
    protected  String id;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }
}
  • Этот класс будет служить базовым классом для реализации объектов домена
  • Данные объекта (задачи), сохраненные (сохраненные) в базе данных, определяются его уникальным идентификатором

Для /todos GET endpoint, в котором перечислены все задачи в базе данных, разбиение результатов запроса на несколько страниц делает запрос более эффективным и быстрым. Этот процесс называется разбиением на страницы. Для достижения этой цели создайте классы Page и Параметры разбивки на страницы .

Все еще в модели данных пакете, Странице классе:

package com.demo.todolistapiwithfaunadb.data.dataModel;

import java.util.List;
import java.util.Optional;

public class Page  {

    private List data;
    private Optional before;
    private Optional after;


    public Page(List data, Optional before, Optional after) {
        this.data = data;
        this.before = before;
        this.after = after;
    }

    public List getData() {
        return data;
    }

    public void setData(List data) {
        this.data = data;
    }

    public Optional getBefore() {
        return before;
    }

    public void setBefore(Optional before) {
        this.before = before;
    }

    public Optional getAfter() {
        return after;
    }

    public void setAfter(Optional after) {
        this.after = after;
    }
}

Класс Page создает новую страницу со следующими заданными параметрами:

  • Данные: В параметре data перечислены данные текущей последовательности страниц.
  • До: Необязательный параметр before служит курсором, который содержит идентификатор предыдущей записи перед текущей последовательностью данных.
  • После: Необязательный параметр after служит курсором, который содержит идентификатор следующей записи после текущей последовательности данных.

Параметры разбивки на страницы класс:

package com.demo.todolistapiwithfaunadb.data.dataModel;

import java.util.Optional;

public class PaginationOptions {
    private Optional size;
    private Optional before;
    private Optional after;


    public PaginationOptions(Optional size, Optional before, Optional after) {
        this.size = size;
        this.before = before;
        this.after = after;
    }

    public Optional getSize() {
        return size;
    }

    public void setSize(Optional size) {
        this.size = size;
    }

    public Optional getBefore() {
        return before;
    }

    public void setBefore(Optional before) {
        this.before = before;
    }

    public Optional getAfter() {
        return after;
    }

    public void setAfter(Optional after) {
        this.after = after;
    }
}

Класс Параметры разбивки на страницы создает новый объект Параметры разбивки на страницы со следующими заданными параметрами:

  • Размер: Параметр size определяет максимальное количество элементов, возвращаемых на запрашиваемой странице.
  • Before: Необязательный параметр before указывает на возврат предыдущей страницы результатов перед идентификатором (эксклюзивно).
  • After: Необязательный параметр after указывает на возврат следующей страницы результатов после идентификатора (включительно).

Затем в пакете data создайте объект To do из базового класса Entity , который будет представлять собой простое действие для API списка задач:

package com.demo.todolistapiwithfaunadb.data;

import com.demo.todolistapiwithfaunadb.data.dataModel.Entity;
import com.faunadb.client.types.FaunaConstructor;
import com.faunadb.client.types.FaunaField;

public class TodoEntity extends Entity {

    @FaunaField
    private String title;

    @FaunaField
    private String description;

    @FaunaConstructor
    public TodoEntity(@FaunaField("id") String id,
                      @FaunaField("title") String title,
                      @FaunaField("description") String description) {
        this.id = id;
        this.title = title;
        this.description = description;

    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getTitle() {
        return title;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }
}
  • Поля TodoEntity аннотируются аннотацией Fauna @FaunaField , которая сопоставляет поле с полем объекта в FaunaDB при кодировании или декодировании объекта.
  • @FaunaConstructor указывает To do Entity конструктор, который будет использоваться при декодировании объектов с помощью Декодер .

В этом демонстрационном API, когда задача сохраняется в вашей базе данных, Fauna генерирует уникальный идентификатор с помощью функции NewId() , которая создает уникальный номер для всего кластера Fauna . В связи с этим вам нужно будет создать реплику TodoEntity , содержащую все необходимые данные, кроме идентификатора, который будет использоваться для запросов POST (Создание) и PUT (Обновление).

В data package создайте Create Или Обновите, чтобы выполнить Data class:

package com.demo.todolistapiwithfaunadb.data;

public class CreateOrUpdateTodoData {

    private String title;
    private String description;

    public CreateOrUpdateTodoData(String title, String description) {
        this.title = title;
        this.description = description;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }
}

Далее вы будете внедрять уровень Persistence вашего API.

Уровень сохраняемости

Уровень сохраняемости также известен как уровень хранилища. На этом уровне вы реализуете класс Fauna Repository , который будет служить базовым репозиторием для репозиториев сущностей.

Класс Репозиторий фауны будет реализовывать Репозиторий и Фабрика удостоверений интерфейсы.

На уровне сохраняемости создайте интерфейс Repository . Этот интерфейс определяет базовую характеристику для реализации всех других репозиториев и устанавливает базовые методы для имитации API коллекции:

package com.odazie.faunadataapiandjava.persistence;

import com.odazie.faunadataapiandjava.data.model.Entity;
import com.odazie.faunadataapiandjava.data.model.Page;
import com.odazie.faunadataapiandjava.data.model.PaginationOptions;

import java.util.Optional;
import java.util.concurrent.CompletableFuture;

public interface Repository {

    // This method saves the given Entity into the Repository.
    CompletableFuture save(T entity);

    // This method finds an Entity for the given Id
    CompletableFuture> find(String id);

    // This method retrieves a Page of TodoEntity entities for the given PaginationOptions
    CompletableFuture> findAll(PaginationOptions po);

    // This method finds the Entity for the given Id and removes it. If no Entity can be found for the given Id an empty result is returned.
    CompletableFuture> remove(String id);
}
  • *<* T расширяет сущность *>* говорит что ожидаемый T может содержать объекты класса, представляющие любой класс, который реализует базовый класс Entity .
  • Вышеуказанные методы имеют тип CompletableFuture , используемый в асинхронном программировании. Вы используете CompletableFuture поскольку запросы FQL Фауны выполняются одновременно.

Затем, чтобы поддерживать раннюю генерацию и назначение идентификатора (Id) перед сохранением объекта Todo в базе данных, создайте IdentityFactory интерфейс:

package com.demo.todolistapiwithfaunadb.persistence;

import java.util.concurrent.CompletableFuture;

public interface IdentityFactory {

    CompletableFuture nextId();
}

Теперь вы реализуете класс Fauna Repository . Тем не менее, в пакете persistence создайте класс Fauna Repository :

package com.demo.todolistapiwithfaunadb.persistence;

import com.demo.todolistapiwithfaunadb.data.dataModel.Entity;
import com.demo.todolistapiwithfaunadb.data.dataModel.Page;
import com.demo.todolistapiwithfaunadb.data.dataModel.PaginationOptions;
import com.faunadb.client.FaunaClient;
import com.faunadb.client.errors.NotFoundException;
import com.faunadb.client.query.Expr;
import com.faunadb.client.query.Pagination;
import com.faunadb.client.types.Value;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.List;
import java.util.Optional;
import java.util.concurrent.CompletableFuture;
import java.util.function.Function;
import java.util.stream.Collectors;

import static com.faunadb.client.query.Language.*;

public abstract class FaunaRepository implements Repository, IdentityFactory {

    @Autowired
    protected FaunaClient faunaClient;

    protected final Class entityType;
    protected final String collectionName;
    protected final String collectionIndexName;


    protected FaunaRepository(Class entityType, String collectionName, String collectionIndexName) {
        this.entityType = entityType;
        this.collectionName = collectionName;
        this.collectionIndexName = collectionIndexName;
    }

    // This method returns a unique valid Id leveraging Fauna's NewId function.
    @Override
    public CompletableFuture nextId() {

        CompletableFuture result =
                faunaClient.query(
                        NewId()
                )
                        .thenApply(value -> value.to(String.class).get());

        return result;
    }

    // This method saves an entity to the database using the saveQuery method below. It also returns the result of the saved entity.
    @Override
    public CompletableFuture save(T entity) {
        CompletableFuture result =
                faunaClient.query(
                        saveQuery(Value(entity.getId()), Value(entity))
                )
                        .thenApply(this::toEntity);

        return result;
    }

    // This method deletes from the data an entity(document) with the specified Id. 
    @Override
    public CompletableFuture> remove(String id) {
        CompletableFuture result =
                faunaClient.query(
                        Select(
                                Value("data"),
                                Delete(Ref(Collection(collectionName), Value(id)))
                        )
                )
                        .thenApply(this::toEntity);

        CompletableFuture> optionalResult = toOptionalResult(result);

        return optionalResult;
    }

    // This method finds an entity by its Id and returns the entity result.
    @Override
    public CompletableFuture> find(String id) {
        CompletableFuture result =
                faunaClient.query(
                        Select(
                                Value("data"),
                                Get(Ref(Collection(collectionName), Value(id)))
                        )
                )
                        .thenApply(this::toEntity);

        CompletableFuture> optionalResult = toOptionalResult(result);

        return optionalResult;
    }

    // This method returns all entities(documents) in the database collection using the paginationOptions parameters.
    @Override
    public CompletableFuture> findAll(PaginationOptions po) {
        Pagination paginationQuery = Paginate(Match(Index(Value(collectionIndexName))));
        po.getSize().ifPresent(size -> paginationQuery.size(size));
        po.getAfter().ifPresent(after -> paginationQuery.after(Ref(Collection(collectionName), Value(after))));
        po.getBefore().ifPresent(before -> paginationQuery.before(Ref(Collection(collectionName), Value(before))));

        CompletableFuture> result =
                faunaClient.query(
                        Map(
                                paginationQuery,
                                Lambda(Value("nextRef"), Select(Value("data"), Get(Var("nextRef"))))
                        )
                ).thenApply(this::toPage);

        return result;
    }


    // This is the saveQuery expression method used by the save method to persist the database.
    protected Expr saveQuery(Expr id, Expr data) {
        Expr query =
                Select(
                        Value("data"),
                        If(
                                Exists(Ref(Collection(collectionName), id)),
                                Replace(Ref(Collection(collectionName), id), Obj("data", data)),
                                Create(Ref(Collection(collectionName), id), Obj("data", data))
                        )
                );

        return query;
    }

    // This method converts a FaunaDB Value into an Entity.
    protected T toEntity(Value value) {
        return value.to(entityType).get();
    }

    // This method returns an optionalResult from a CompletableFuture result.
    protected CompletableFuture> toOptionalResult(CompletableFuture result) {
        CompletableFuture> optionalResult =
                result.handle((v, t) -> {
                    CompletableFuture> r = new CompletableFuture<>();
                    if(v != null) r.complete(Optional.of(v));
                    else if(t != null && t.getCause() instanceof NotFoundException) r.complete(Optional.empty());
                    else r.completeExceptionally(t);
                    return r;
                }).thenCompose(Function.identity());

        return optionalResult;
    }

    // This method converts a FaunaDB Value into a Page with the Entity type.
    protected Page toPage(Value value) {

        Optional after = value.at("after").asCollectionOf(Value.RefV.class).map(c -> c.iterator().next().getId()).getOptional();
        Optional before = value.at("before").asCollectionOf(Value.RefV.class).map(c -> c.iterator().next().getId()).getOptional();

        List data = value.at("data").collect(entityType).stream().collect(Collectors.toList());

        Page page = new Page(data, before, after);

        return page;
    }

}
  • Клиент Fauna находится/| @Autowired внутри FaunaRespository для выполнения CRUD-запросов к вашей облачной базе данных фауны. Результат, выполненный для метода

  • NextID() , уникален для всего кластера, как вы уже видели ранее. Для получения более подробной информации ознакомьтесь с документацией Fauna по встроенной функции NewId .

  • Выберите и Функции Value присутствуют в большинстве запросов Репозитория фауны . Функция Select извлекает значение по заданному пути. Напротив, функция Value определяет строковое значение выполняемой ею операции. Метод

  • save() использует транзакционный save Query() метод для выполнения допустимой операции сохранения базы данных. Для получения более подробной информации о транзакционном запросе ознакомьтесь со ссылкой на документацию Faunas на Создать , Заменить , Если , Существует встроенные функции. Метод

  • remove() использует встроенную функцию Delete для удаления/удаления определенного объекта по идентификатору. Метод

  • find() использует Get функция для извлечения отдельного объекта (документа) по идентификатору. Метод

  • findAll() , использующий Параметры разбивки на страницы , разбивает на страницы все объекты(документы) в коллекции. Карта применяет заданный Лямбда для каждого элемента предоставленной коллекции. Он возвращает результаты каждого приложения в новой коллекции того же типа. Углубленный метод

  • для необязательного результата() : восстанавливается после исключения

    • NotFoundException с необязательным результатом и Предположим, что данный
    • CompletableFuture |/содержит успешный результат. В этом случае он возвращает новый CompletableFuture содержащий результат, заключенный в необязательный экземпляр. Если данный CompletableFuture
    • содержит неудачный результат, вызванный NotFoundException , он возвращает новый Завершаемое будущее . Предположим, что данный CompletableFuture
    • содержит неудачный результат, вызванный NotFoundException . В этом случае он возвращает новый CompletableFuture содержащий необязательный пустой экземпляр. Предположим, что данный CompletableFuture
    • содержит неудачный результат, вызванный любым другим Throwable . В этом случае он возвращает новый CompletableFuture с тем же неудачным результатом. И, наконец, метод возвращает необязательный результат, полученный из исходного результата.

Наконец, чтобы создать Репозиторий фауны реализация для TodoEntity , создайте класс TodoRepository :

package com.demo.todolistapiwithfaunadb.persistence;

import com.demo.todolistapiwithfaunadb.data.TodoEntity;
import org.springframework.stereotype.Repository;

@Repository
public class TodoRepository extends FaunaRepository {

    public TodoRepository(){
        super(TodoEntity.class, "todos", "all_todos");
    }

    //-- Custom repository operations specific to the TodoEntity will go below --//

}
  • Аннотация @Repository указывает, что класс TodoRepository предоставляет механизм для хранения, извлечения, поиска, обновления и удаления объектов.

  • super() вызывает конструктор репозитория фауны для задания имени коллекции и имя индекса для TodoEntity .

  • В этом классе репозитория вы можете добавлять пользовательские операции, такие как findByTitle() , специфичные для TodoEntity .

Уровень обслуживания

В пакете service создайте класс Для выполнения Service :

package com.demo.todolistapiwithfaunadb.service;

import com.demo.todolistapiwithfaunadb.data.CreateOrUpdateTodoData;
import com.demo.todolistapiwithfaunadb.data.TodoEntity;
import com.demo.todolistapiwithfaunadb.data.dataModel.Page;
import com.demo.todolistapiwithfaunadb.data.dataModel.PaginationOptions;
import com.demo.todolistapiwithfaunadb.persistence.TodoRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Optional;
import java.util.concurrent.CompletableFuture;

@Service
public class TodoService {

    @Autowired
    private TodoRepository todoRepository;

    public CompletableFuture createTodo(CreateOrUpdateTodoData data) {
        CompletableFuture result =
                todoRepository.nextId()
                        .thenApply(id -> new TodoEntity(id, data.getTitle(), data.getDescription()))
                        .thenCompose(todoEntity -> todoRepository.save(todoEntity));

        return result;
    }

    public CompletableFuture> getTodo(String id) {
        return todoRepository.find(id);
    }

    public CompletableFuture> updateTodo(String id, CreateOrUpdateTodoData data) {
        CompletableFuture> result =
                todoRepository.find(id)
                        .thenCompose(optionalTodoEntity ->
                                optionalTodoEntity
                                        .map(todoEntity -> todoRepository.save(new TodoEntity(id, data.getTitle(), data.getDescription())).thenApply(Optional::of))
                                        .orElseGet(() -> CompletableFuture.completedFuture(Optional.empty())));

        return result;
    }

    public CompletableFuture> deleteTodo(String id) {
        return todoRepository.remove(id);
    }

    public CompletableFuture> getAllTodos(PaginationOptions po) {
        return todoRepository.findAll(po);
    }
}
  • @Service указывает, что класс To do Service предоставляет некоторые бизнес-функции, а TodoRepository находится @Autowired в службе.

  • Метод createTodo создает новый TodoEntity с заданным Создание Обновление Данных Задачи и сгенерированный действительный идентификатор. Затем он сохраняет новую сущность в базе данных. get To do()

  • находит и извлекает задачу по ее идентификатору из базы данных. update To do()

  • ищет задачу для заданного идентификатора и заменяет ее заданным |/*CreateUpdateTodoData* , если таковые имеются. deleteTodo() удаляет задачу из базы данных для данного идентификатора.

  • getAllTodos() извлекает страницу задач из базы данных для данного

  • Варианты разбивки на страницы .

Наконец, чтобы завершить работу с вашим API, реализуйте конечные точки REST в слое rest .

Слой отдыха

В пакете rest создайте класс Для выполнения RestController :

package com.demo.todolistapiwithfaunadb.rest;

import com.demo.todolistapiwithfaunadb.data.CreateOrUpdateTodoData;
import com.demo.todolistapiwithfaunadb.data.TodoEntity;
import com.demo.todolistapiwithfaunadb.data.dataModel.Page;
import com.demo.todolistapiwithfaunadb.data.dataModel.PaginationOptions;
import com.demo.todolistapiwithfaunadb.service.TodoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.util.Optional;
import java.util.concurrent.CompletableFuture;

@RestController
public class TodoRestController {

    @Autowired
    private TodoService todoService;


    @PostMapping("/todos")
    public CompletableFuture createTodo(@RequestBody CreateOrUpdateTodoData data) {

        return todoService.createTodo(data)
                .thenApply(todoEntity -> new ResponseEntity(todoEntity, HttpStatus.CREATED));
    }


    @GetMapping("/todos/{id}")
    public CompletableFuture getTodo(@PathVariable("id") String id) {
        CompletableFuture result =
                todoService.getTodo(id)
                        .thenApply(optionalTodoEntity ->
                                optionalTodoEntity
                                        .map(todoEntity -> new ResponseEntity(todoEntity, HttpStatus.OK))
                                        .orElseGet(() -> new ResponseEntity(HttpStatus.NOT_FOUND))
                        );
        return result;
    }


    @PutMapping("/todos/{id}")
    public CompletableFuture updateTodo(@PathVariable("id") String id, @RequestBody CreateOrUpdateTodoData data) {
        CompletableFuture result =
                todoService.updateTodo(id, data)
                        .thenApply(optionalTodoEntity ->
                                optionalTodoEntity
                                        .map(todoEntity -> new ResponseEntity(todoEntity, HttpStatus.OK))
                                        .orElseGet(() -> new ResponseEntity(HttpStatus.NOT_FOUND)
                                        )
                        );
        return result;
    }

    @DeleteMapping(value = "/todos/{id}")
    public CompletableFuture deletePost(@PathVariable("id")String id) {
        CompletableFuture result =
                todoService.deleteTodo(id)
                        .thenApply(optionalTodoEntity ->
                                optionalTodoEntity
                                        .map(todo -> new ResponseEntity(todo, HttpStatus.OK))
                                        .orElseGet(() -> new ResponseEntity(HttpStatus.NOT_FOUND)
                                        )
                        );
        return result;
    }

    @GetMapping("/todos")
    public CompletableFuture> getAllTodos(
            @RequestParam("size") Optional size,
            @RequestParam("before") Optional before,
            @RequestParam("after") Optional after) {
        PaginationOptions po = new PaginationOptions(size, before, after);
        CompletableFuture> result = todoService.getAllTodos(po);
        return result;
    }
}
  • Метод контроллера rest с помощью @PostMapping( "/todos" ) сопоставления создает новую задачу с заданным @RequestBody Создайте Или Обновите, Чтобы сделать Данные

  • данные. Остальные методы контроллера с помощью @GetMapping( "/todos/{id}" ) и @DeleteMapping( value ) сопоставления извлекают и удаляют соответственно задачу с идентификатором , привязанным к @PathVariable( " id " )

  • . Метод контроллера rest с помощью @PutMapping( "/todos/{id}" ) сопоставление обновляет данные Todo с идентификатором, привязанным к @PathVariable(“id”)

  • . Метод контроллера rest с @GetMapping(“/todos”) сопоставлением принимает три @RequestParam (size, before, after), которые создают PaginationOptions

И вы закончили реализацию API списка задач с Фауной и Java с помощью Spring Boot. Смотрите окончательную структуру каталогов проекта API:

Тестирование API списка задач

Чтобы протестировать конечные точки вашего API, запустите проект Spring Boot, и API запустится по умолчанию с порта 8080 . Открытый Почтальон:

Создайте новую задачу

СООБЩЕНИЕ/задачи:

Вы можете проверить на своей панели управления Fauna, чтобы увидеть созданный документ Todo:

Получить задание по идентификатору

GET/todos/{id}:

Обновите задачу по идентификатору

PUT/todos/{идентификатор}:

Вы можете проверить на своей панели мониторинга Фауны, чтобы увидеть обновленный документ Todo:

Удалить задачу по идентификатору

УДАЛИТЬ/задачи/{идентификатор}:

Вы можете проверить на своей панели мониторинга Фауны, чтобы увидеть пустую коллекцию Todos:

Получить все задачи

Создайте еще два todos, чтобы проверить это.

ПОЛУЧИТЬ/todos:

Вывод

В этом руководстве вы увидели, почему вы должны использовать базу данных Fauna cloud при создании приложения Spring Boot и как работает Fauna. Кроме того, вы настроили Spring Boot с помощью Fauna, внедрили API списка задач с помощью Fauna и протестировали API списка задач с помощью Postman.

Вы можете увидеть больше ресурсов по созданию с помощью фауны и Java:

Оригинал: “https://dev.to/kikiodazie/getting-started-building-with-fauna-and-java-using-spring-boot-15on”