Бекенд на C# Web Api

To Kaiten

Структура приложения

Для создания проекта в Visual Studio выбираем шаблон ASP.NET Core Web API и выставляем галочки как на картинке ниже.

В результате будет создан шаблон проекта с тестовым контроллером, Dockerfile'ом, а также базовой конфигурацией в Program.

Создание проекта

Структура

Хорошей практикой считается разбиение решения на разные проекты.

В данном примере основной проект — DemoWebApi, который является ASP.NET Core Web API. Остальные проекты - обычные Class Library.

  • DemoWebApi — содержит в себе все контроллеры и описывает весь API сервиса.

  • Service — содержит в себе классы, которые описывают основную бизнес логику.

  • Entities — описывает структуру базы данных.

  • Contracts и Repository — изолирует базу данных.

Основной проект

Рассмотрим структуру проекта DemoWebApi. Класс Program содержит код для запуска и конфигурации приложения. Помимо этого тут добавляются различные сервисы, используемые приложением, а также регистрируются зависимости для внедрения с помощью DI.

В Program будет очень много специфичного кода для конфигурации, однако этот код должен быть максимально чистым и читабельным. Хорошей практикой считается вынесение всех деталей конфигурации в отдельный класс с методами расширения. В таком случае, Program будет состоять из однострочных вызовов методов конфигураций, которые легко читать и понимать. Картинка ниже демонстрирует этот подход.

Также в проекте присутствует папка Controllers и файл конфигурации appsettings.json.

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

  • Класс Program

  • Файл appsettings.json

  • Папка Controllers

  • Папка Extentions

  • Папка Filters

Все остальные классы, не относящиеся к контроллерам, должны быть вынесены в другие проекты.

Демо проект

Пример структуры проекта можно посмотреть в демо-проекте.


Ссылки

Microsoft — Tutorial: Create a web API with ASP.NET Core

Code Maze — ASP.NET Core Web API Best Practices


Автор документа: Артём Ветик