dotnet-api-boilerplate
Проект .Net 5.0 WebAPI / шаблон. Репозитории, Swagger, Mapper, Serilog и более реализованы.
Цель этого проекта состоит в том, чтобы стать Kickstart для вашего .NET WebAPI, внедряя наиболее распространенные использованные шаблоны и технологии для Restful API в .NET, что облегчает вашу работу.
Как бежать
- Используйте этот шаблон (GitHub) или клон/загрузите на местное рабочее место.
- Загрузите новейшие .NET SDK и Visual Studio/Code.
Автономный
- Вам может потребоваться управляющий экземпляр MSSQL, с инициализированными соответствующими миграциями.
- Вы можете запустить только БД на Docker. Для этого вы должны изменить свою строку подключения на «Server = 127.0.0.1; Database = Master; user = sa; password = yourpassword123» и запустите следующую команду:
docker-compose up -d db-server . Делая это, приложение сможет достичь контейнера DE сервера DB. - Если вы хотите, вы можете изменить DatabaseExtension, чтобы использовать usingInmemoryDatabase, вместо MSSQL.
- Перейдите в папку src/boilerplate.api и запустите
dotnet run , или в Visual Studio Установите проект API в качестве запуска и запустите в качестве консоли или докера (не IIS). - Посетите http: // localhost: 5000/api-docs или https: // localhost: 5001/api-docs для доступа к чванству приложения.
Докер
- Запустите
docker-compose up -d в корневом каталоге, или, в Visual Studio, установите проект Docker-Compose в качестве запуска и запуска. Это должно запустить приложение и DB.
- Для Docker-Compose вы должны запустить эту команду в корневой папке:
dotnet dev-certs https -ep https/aspnetapp.pfx -p yourpassword заменить «yourpassword» с чем-то другим в этой команде и файл docker-compose.override.yml. Это создает сертификат HTTPS.
- Посетите http: // localhost: 5000/api-docs или https: // localhost: 5001/api-docs для доступа к чванству приложения.
Заводящие тесты
В корневой папке запустите dotnet test . Эта команда попытается найти все тестовые проекты, связанные с файлом SLN.
Этот проект содержит:
- Swaggerui
- EntityFrameWork
- Automapper
- Общий репозиторий (чтобы легко начать репозиторий CRUD)
- Serilog с регистрацией запросов и легко настраиваемыми раковинами
- .NET -зависимость
- Фильтрация ресурсов
- Сжатие ответа
- CI (github actions)
- Модульные тесты
- Интеграционные тесты
- Поддержка контейнера с Docker и Docker-Compose
Структура проекта
- Услуги
- В этой папке хранится ваши API и любой проект, который отправляет данные вашим пользователям.
- Coalerplate.api
- Это главный проект API. Вот все контроллеры и инициализация для API, который будет использоваться.
- докер-состав
- Этот проект существует, чтобы позволить вам запустить Docker-Compose с Visual Studio. Он содержит ссылку на файл докера, и будет создавать все зависимости проектов и запустить его.
- Приложение
- В этой папке хранится все преобразования данных между вашим API и вашим доменным слоем. Он также содержит вашу бизнес -логику.
- Домен
- Эта папка содержит ваши бизнес -модели, перечисления и общие интерфейсы.
- Coalerplate.domain.core
- Содержит базовую сущность для всех других доменных сущностей, а также интерфейс для реализации репозитория.
- Coalerplate.domain
- Содержит бизнес -модели и перечисления.
- Непрерывно
- Эта папка содержит все репозитории доступа к данным, контексты базы данных, все, что достигает внешних данных.
- Coalerplate.infrastructure
- Этот проект содержит DBContext, общую реализацию шаблона репозитория и репозиторий героя (класс домена).
Принятие в ваш проект
- Удалите/переименование всех вещей, связанных с героями в ваши потребности.
- Переименовать решение, проекты, пространства имен и набор правил использования.
- Измените DockerFile и Docker-Compose.yml на свои новые имена CSProj/папки.
- Дайте этому репо звезду!
Миграции
Чтобы запустить миграции в этом проекте, запустите следующую команду в корневой папке:
-
dotnet ef migrations add InitialCreate --startup-project .srcBoilerplate.Api --project .srcBoilerplate.Infrastructure
Эта команда установит точку записи для миграции (ответственность за выбор DBProvider {SQLServer, MySQL и т. Д.} и строки подключения), и сам проект будет инфраструктурой, где находится DBContext.
Если вам это нравится, дайте ему звезду
Если этот шаблон был полезен для вас, или если вы что -то узнали, пожалуйста, дайте ему звезду!
Спасибо
Этот проект оказывает большое влияние https://github.com/lkurzyniec/netcore-boilerplate и https://github.com/eduardopires/equinoxproject. Если у вас есть время, пожалуйста, посетите эти репо и дайте им звезду тоже!
О
Этот шаблон/шаблон был разработан Ян Питанги по лицензии MIT.