Реализация 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
Профили сопоставления моделей