Структурирование архитектуры API API .NET 9 для микросервисов и безопасных лучших практик управления учетными записями [C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Структурирование архитектуры API API .NET 9 для микросервисов и безопасных лучших практик управления учетными записями [

Сообщение Anonymous »

Structuring a .NET Core 9 Blazor API Architecture for Microservices and Secure Account Management Best Practices
Hello everyone,
I’m working on a content management application (wiki-style) developed in .NET Core 9, designed to be microservices-ready and modular достаточно, чтобы развиваться без тяжелого рефакторинга. Приложение будет работать на azure без контейнеров.
🏗 текущая архитектура (упрощенная представление)
blazor (режим для определения: Auto, wasm или сервер) → Debilts → Shareed
📂 Layer Detail /> [*] shared
содержит все абстракции и интерфейсные контракты .
→ цель: уважение dry и solid и избегание дупликации в доменах. /> Каждый домен организован в несколько проектов: < /p>
В настоящее время у меня есть домен Content/Contentmanagement . Я планирую добавить домен пользователей . Blazor Project с идентичностью, включенным с самого начала). < /li>
[*] безопасность API через jwt < /strong>. Выдержки < /h2>

Код: Выделить всё

EncyclOniria.Shared/Contracts/IRepository.cs

Код: Выделить всё

namespace EncyclOniria.Shared.Contracts
{
public interface IRepository where TEntity : class
{
Task GetByIdAsync(Guid id);
Task GetAllAsync();
Task AddAsync(TEntity entity);
void Update(TEntity entity);
void Remove(TEntity entity);
Task SaveChangesAsync();
}
}
< /code>
EncyclOniria.Shared/Data/BaseDbContext.cs

Код: Выделить всё

using Microsoft.EntityFrameworkCore;

namespace EncyclOniria.Shared.Data
{
public abstract class BaseDbContext : DbContext
{
public BaseDbContext(DbContextOptions options) : base(options) { }
}
}
< /code>
EncyclOniria.Content.Data/DesignTimeContentDbContextFactory.cs

Код: Выделить всё

using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Design;

namespace EncyclOniria.Content.Data
{
public class DesignTimeContentDbContextFactory : IDesignTimeDbContextFactory
{
public ContentDbContext CreateDbContext(string[] args)
{
var optionsBuilder = new DbContextOptionsBuilder();
optionsBuilder.UseSqlServer("Data Source=:memory:"); // placeholder
return new ContentDbContext(optionsBuilder.Options);
}
}
}
< /code>
EncyclOniria.Content.Seeders/ISeeder.cs

Код: Выделить всё

namespace EncyclOniria.Content.Seeders
{
public interface ISeeder
{
Task SeedAsync(CancellationToken cancellationToken = default);
string Name { get; }
}
}
< /code>
EncyclOniria.SeederRunner/Program.cs
(консольный бегнер)
using EncyclOniria.Content.Seeders;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;

var host = Host.CreateDefaultBuilder(args)
.ConfigureServices((context, services) =>
{
services.AddTransient();
services.AddTransient();
})
.Build();

using var scope = host.Services.CreateScope();
var seeders = scope.ServiceProvider.GetServices();
foreach (var seeder in seeders)
await seeder.SeedAsync();
< /code>

❓ Вопросы < /h2>

проверка архитектуры и микросервисы < /strong>
это звук архитектуры < /p>
  • at ap at arty> at arty ap at yt arty> at arty> at arty>


    . к лучшим практикам микросервисов? />
    Я думал о создании выделенного домена счетов < /strong> и API для управления бэкэнд. Могу ли я по -прежнему:

    Сохраняйте каркасы идентификации в Blazor и
  • Защитные API с JWT?
Как обычно обрабатываете аутентификацию/авторилизацию этого типа? /> Должен быть интерфейс администратора [/b] для управления пользователями и ролями - это оправдывает выделенный микросервис? />
server < /strong>, wasm < /strong> или Auto < /strong>? /> Это суть этого - любое руководство, лучшие практики или опыт, которым вы могли бы поделиться, будет очень оценен. < /p>

Подробнее здесь: https://stackoverflow.com/questions/797 ... d-secure-a
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»