Nimble Framework v6.1
My Frameworks | создано: 11.05.2022 | опубликовано: 15.05.2022 | обновлено: 13.01.2024 | просмотров: 4122
На платформе NET6 (В папке AspNetCore v6.1) можно найти новую версию Nimble Framework, который предназначен для быстрого создания микросервисной архитектуры. Nimble Framework содержит IdentityModule (AuthServer) и Module (microservice).
Nimble Framework v6.1
Это фреймворк для создания микросервисов и/или backend API на базе платформы ASP.NET Core (NET6). Новая версия построена на базе Minimal API. В этой статье речь пойдет о новой версии Nimble Framework. Новая версия 6.1 претерпела множество изменений и о них надо поговорить подробнее.
Новое в версии
Удален IdentityServer4 как основа для аутентификации и авторизации на базе OAuth2.0. Теперь Nimble Framework использует для шаблона с сервером авторизации OpenIddict, который также реализует спецификации OAuth2.0. Замена IdentityServer4 произведена потому, что скоро IdentityServer4 станет платным и потеряет поддержку разработчика. Новый фреймворк OpenIddict дает новые возможности для реализации очень полезных "фишичек". Перечислю некоторые:
- Обновлен механизм авторизации на странице swagger. Теперь используется Authorization Code Flow, который реализует форму входа. Это позволит использовать шаблон "из коробки".
- Обновлен механизм авторизации для второстепенных сервисов (механизм передачи ролей в токен)
- Обновлены почти все сборки (переведены на NET6), которые использованы в шаблонах
- Реализована система Definitions
Что такое Nimble Framework?
- Nimble Framework – это набор из двух шаблонов: шаблон для сервера авторизации и шаблон для микросервиса.
- Работа с базами данных присутствует в обоих шаблонах через EntityFramework в режиме IN MEMORY, но легко трансформируется для работы с реальной базой данных, путем подключения нужного провайдера для EntityFramework.
- Есть несколько вариантов реализации: minimal API, full API, controllers, endpoints, etc.
Для чего Nimble Framework?
- Nimble Framework нужен для облегчения жизни разработчика, вернее сказать – для быстрого страта процесса разработки.
- Nimble Framework – это быстрый старт разработки, а значит можно использовать как основу для экспериментов, например, для тестирования технологий, способов коммуникации, среды развертывания CI/CD и т.д. и .т.п.
- В шаблонах показан широкий набор возможностей как для начинающих разработчиков, так и для профессионалов.
Какие шаблоны есть и что в них?
- Шаблон с OpenIddict (IdentityModule) - сервер авторизации. Это микросервис, который может еще и управлять доступами в вашей системе микросервисов.
- Шаблон без OpenIddict (Module) – это рядовой микросервис, который может состоять из одного метода или даже двух.
- Каждый из этих шаблонов может быть использован для создания backend (API) для вашего приложения. Например, UI на Blazor.
- Шаблоны настроены таким образом, что модули (Modules) могут получать роли (авторизовываться) на сервер авторизации (Identity Modules).
Демонстрация Nimble Framework?
На видео показаны основные и расказаны про базовые принципы использования шаблонов фреймворка.
- Создание сервера OAuth2.0 из шаблона IdentityModule.
- Создание сервиса из шаблона Module.
- Авторизация пользователя на обоих сервисах на базе ролей созданных на сервере OAuth2.0.
- Создание нового пользователя.
- Запуск GetRoles на обоих сервисах.
- Подключение к серверу OAuth2.0 из Thunder Client (Visual Studio Code).
- Получение токенов в запросах.
- Прогон тестов на Thunder Client (Visual Studio Code)
Система определений для приложения (Definitions system)
Как использовать Nimble Framework?
- Позволяет быстро построить безопасную микросервисную архитектуру, защищенную стандартами OAuth2.0. Это значит, что можно использовать разные варианты Authorization Flow. OAuth2.0 реализован OpenIddict (пришёл на замену IdentityServer4)
- Позволяет быстро получить среду для тестирования межсервисных коммуникаций. (Изначально для этого и создавался Nimble Framework) Представляет базовый набор реализованного функционала для обособленных сервисов (backend, API). То есть можно создать backend для вашего SPA из любого шаблона.
- Nimble Framework предоставляет примеры реализаций разных механизмов, паттернов, принципов.
- Nimble Framework предоставляет примеры инфраструктуры проектов и зависимости между ними.