Реализация API DaData
Структура решения
В проекте присутствуют два проекта
- Api (ASP .NET Core)
- Models (Библиотека классов)
Описание проектов
Api
Общая информация
В данном проекте реализуется работа с API DaData, работа с конфигурационным файлом/переменными окружения среды, настройка политики кросс-доменных запросов, настройка HttpClient
Подключенные библиотеки
- Newtonsoft.Json (работа с JSON)
- NReco.Logging.File (логгирование в файл)
- Swashbuckle.AspNetCore (реализация Swagger для платформы .NET)
- FluentResults (Обеспечивает наличие объекта-обертки, отображающего результат работы функции)
- Automapper (Сопоставление моделей)
-
EntityFrameworkCore (Взаимодействие с БД)
Конфигурация
Конфигурация выполняется через файл
appsettings.jsonи/или через переменные окружения среды (используемый префикс -API_) в секцииOptions. В конфигурации возможно указать следующие параметры: - Файл для хранения лога.
BaseAddressи список заголовков дляHttpClient-
Параметры CORS
Контроллеры
AddressController
Предоставляет endpoint для обращения к API (метод GET), принимает нестандартизированный адрес на вход
Службы
CleanApiService
Реализует обращение к API DaData с использование
IHttpClientFactory. Так же в данном классе указаны настройки для преобразования данных API изsnake_caseвPascalCaseмодель используяJsonSerializerSettingsиContractResolverиз библиотекиNewtonsoft.Json
Models
Представляет описание классов для сопоставления с секцями конфигурационного файла, а также модели для Http запросов (AddressRequestModel) и ответов(AddressResponseModel).
Database
Контекст базы данных EntityFrameworkCore и сущности
Mappings
Профили сопоставления моделей