Статическое веб-приложение защищает маршруты с помощью ролей, когда в маршрутах есть параметры

Я создал реагирующее приложение (Azure SWA), мой API связан с моим веб-приложением, и я защищаю маршруты с помощью ролей (все работает хорошо):

       {
   "route": "/api/product",
   "allowedRoles": ["admin", "nonadmin"]
 },
 {
   "route": "/api/product/*/delete",
   "allowedRoles": ["admin"]
 },

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

Подстановочные знаки Майкрософт

Наверняка есть способ сделать это? поскольку параметры URL очень распространены, я могу найти какой-либо материал о том, как это достигается.

1 ответ

Вместо /delete я бы приписал этому методу глагол DELETE, который вы можете сделать

          {
      "route": "/api/profile*",
      "methods": ["DELETE"],
      "allowedRoles": ["admin"]
    },

Кроме того, использование команды HTTP больше соответствует принципам RESTful.


РЕДАКТИРОВАТЬ 13 ноября 2023 г.

Я только что подтвердил группе продуктов, что это не поддерживается. Шаблоны подстановочных знаков работают только в конце пути.