Создайте REST API .NET 7 для анализа данных из файла CSV или JSON.C#

Место общения программистов C#
Ответить
Гость
 Создайте REST API .NET 7 для анализа данных из файла CSV или JSON.

Сообщение Гость »


В настоящее время я работаю с базой кода, которая жестко запрограммирована для загрузки данных из файла CSV.

Теперь приложению требуется возможность поддерживать загрузку данных из дополнительных форматов файлов, например Файлы XML или JSON.

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

Может ли кто-нибудь порекомендовать чистый шаблон для достижения этой цели?

Моя первоначальная идея заключалась в том, чтобы моя конечная точка API работала со службой, которая будет проверять, какой желаемый формат данных установлен в appsettings.json. Служба будет использовать IConfiguration для доступа к значению и, в зависимости от того, какое это значение, затем будет использовать соответствующий репозиторий для взаимодействия с данными.

Например, если для поля в appsettings.json установлено значение XML, моя служба вызовет XMLDataRepository. Альтернативно, если для него установлено значение csv, я вызову CSVDataRepository.

Мой конструктор сервиса будет выглядеть так:

публичный класс MyService { частная IConfiguration _config только для чтения; частный только для чтения IXMLDataRepository _xmlDataRepository; частный только для чтения ICSVDataRepository _csvDataRepository; публичный MyService( IКонфигурация конфигурации, IXMLDataRepository xmlDataRepository, ICSVDataRepository csvDataRepository) { _config = конфигурация; _xmlDataRepository = xmlDataRepository; _csvDataRepository = csvDataRepository; } общедоступная MyResponseModel GetAllX() { // запускаем проверку в `appsettings.json` на нужный формат данных // в зависимости от значения, используйте соответствующий репозиторий вернуть _xmlDataRepository.GetAllX(); } } Вероятно, я мог бы наследовать все мои репозитории от одного базового класса, что может добавить гибкости.

Я открыт для идей. Есть мысли?
Ответить

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

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

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

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

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