Доступ к API в том же решении

#c# #asp.net #asp.net-mvc #azure #asp.net-core

#c# #asp.net #asp.net-mvc #azure #asp.net-core

Вопрос:

Я разрабатываю решение, в котором есть три проекта webapi. Каждый из них защищен механизмом токенов JWT. До сих пор webapis не нуждался в общении. Наконец, они будут развернуты в Azure отдельно и будут использовать одну и ту же базу данных.

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

Любая помощь будет оценена.

Вопрос: Как разрешить им обмениваться данными другим способом, кроме генерации токена с бесконечным сроком службы?

Комментарии:

1. Каков ваш актуальный вопрос?

2. «До сих пор webapis не нуждался в общении. Наконец, они будут развернуты в Azure отдельно и будут использовать одну и ту же базу данных «. так они все еще не обмениваются данными друг с другом? В чем именно заключается ваш вопрос?

3. Теперь им нужно взаимодействовать между собой.

4. И как они будут взаимодействовать друг с другом?

5. С использованием http-запросов, но если есть лучшие способы, я могу внести изменения.

Ответ №1:

Звучит как вариант использования для зависимостей SQL. Зависимость SQL позволяет вам подписаться на событие, которое запускается, когда результат выполнения команды отличается. Что-то вроде этого:

 // I'll assume that a connection is already open
using (var command = new SqlCommand("SQL Command goes here")
{
    var dependency = new SqlDependency(command);
    dependency.OnChange  = (object sender, SqlNotificationEventArgs e) => 
    {
        // Handle OnChange here
        Console.WriteLine(e.Info);
    }

    // You can do all the things with the SQL Command here as you normally could
    // for example execute it if it's a SELECT and read data
}
  

Будьте осторожны при использовании зависимостей SQL, поскольку они немного более трудоемкие / дорогие, чем можно было бы подумать, поэтому постарайтесь свести их к минимуму