Просто используйте библиотеку классов.Общие функциональные возможности и даже базовые контроллеры и тому подобное могут быть использованы в реальных проектах API.Ваш общий конфиг может быть добавлен в библиотеку классов как IServiceCollection
extensions:
public static class IServiceCollectionExtensions
{
public static IServiceCollection AddMyCors(this IServiceCollection services)
{
services.AddCors(...);
return services;
}
...
}
Затем любое изменение этой библиотеки автоматически распространяется на ваши API из-за прямой ссылки.
ОднакоИмейте в виду, что в целом весь смысл микросервисов является слабосвязанным.На самом деле вы должны использовать этот вид функциональности только для тех вещей, которые относительно статичны и не изменятся.Внесение изменений, требующих обновления каждого из 50 сервисов, в значительной степени сводит на нет весь смысл.
Если существует слишком много общих, общих функций, вам нужно спросить себя, действительно ли вы разложили сервисы насубдомены.Таким образом, очень распространенной ошибкой является отсутствие понимания того, что фактические данные также должны быть разделены.В идеале каждый микросервис должен иметь свое собственное хранилище данных (например, базу данных).Если вы пытаетесь заставить микросервисы совместно использовать одно и то же хранилище данных, вы неизбежно столкнетесь со значительным переходом, и будет трудно, если не невозможно, разделить их домены.Это означает, что вы иногда теряете тонкости, такие как внешние ключи, и вам может даже потребоваться некоторое дублирование данных.Вот где CQRS, источник событий и другие связанные с ними шаблоны начинают вступать в игру.