Получить параметр Route из HttpRequestMessage - PullRequest
0 голосов
/ 04 апреля 2019

Можно ли получить параметры маршрута функции Azure непосредственно из объекта HttpRequestMessage?

Я знаю, что могу указать их в определении функции, например

public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Function, "get", Route = "v1/inspectionOrders/{inspectionOrderId}")]HttpRequestMessage req, 
   string inspectionOrderId, TraceWriter log)

НоМне нужно получить их из HttpRequestMessage возможных.Я посмотрел на объект запроса, и он удерживает их в словаре Properties с ключом "MS_AzureWebJobs_HttpRouteData", но доступ к нему прямо мне кажется плохой идеей.

Если я позвоню

protected override async Task<HttpResponseMessage> RetrieveData(HttpRequestMessage req, string customerId)
{
   string objectId = req.GetRouteData()?.Values["objectId"] as string;

   ...
}

Я получу исключение, потому что коллекция IHttpRouteData не содержит параметризованные фрагменты.

1 Ответ

0 голосов
/ 05 апреля 2019

Вы можете использовать var route=req.GetRouteData().Values.ToList()[0].Value;, чтобы получить параметр Route. Также, если вы хотите удалить api из маршрута , вы можете добавить следующий код в файл host.json.

{
  "http": {
    "routePrefix": ""
  }
}

Рабочий снимок:

enter image description here

...