Хочу организовать роутинг например такого запроса:
www.myname.ru/services/{dbId}/api/data/get?id=...
Понятно, что после api идет пачка контроллеров и надо бы реализовать централизованную обработку параметра "dbId". По сути это идентификатор схемы данных с которой будут работать контроллеры. С API могут работать разные компании и у каждой данные хранятся в собственной схеме.
[ApiController]
[Route("services/{dbId}/api/[controller]")]
public class DataController : ControllerBase
{
protected MyDbContext Dbx { get; private set; }
public DataController(MyDbContext dbx)
{
Dbx = dbx;
// здесь ничего не известно о структуре запроса, а хочется инициализировать dbx
}
[HttpGet]
[Route("get")]
public async Task<IActionResult> Get([FromRoute]string dbId, string id)
{
...
Как получить dbId в методах контроллера мне понятно, все работает. Но как я могу получить dbId в конструкторе, чтобы прописать его в DbContext.
Может кто даст общий совет, как лучше организовать API, которое работает в подобном изолированном друг от друга контексте (/services/{dbId}/...).