Как отправить в пустом параметре URL с запросом http? - PullRequest
0 голосов
/ 25 марта 2020

я делаю навык Алексы, чтобы дать информацию о еде. С этим навыком пользователи смогут запрашивать меню. Они могут запросить только меню, или они могут запросить конкретное меню c, такое как меню завтрака. Но я хочу, чтобы параметр завтрака и параметр для типа меню, такого как десертное меню, были необязательными. Теперь я отправляю запрос GET на URL: ... / День / (день) / Слот / (слот) / Тип / (тип). В этом URL я хочу, чтобы слот и параметр типа были пустыми.

Мой код сейчас: Контроллер:

[HttpGet]
        [Route("something/Day/{day:datetime}/Slot/{slotId:long?}/Type/{typeId:long?}")]
        public async Task<List<something>> GetMeals(LocalDate day, long slotId = 1, long? typeId = null)

Запрос находит контроллер, когда оба параметра не равны NULL или только параметр typeId равен NULL. Но когда оба или null или когда только параметр slotId равен null, запрос не находит контроллер. Когда оба параметра равны нулю, запрос выглядит так: «что-то / день / 2020-02-20 / слот // тип /»

Я не могу изменить маршрут, потому что конечная точка используется другими приложениями.

Что я делаю не так? Спасибо за помощь.

1 Ответ

1 голос
/ 25 марта 2020

Вы можете изменить маршрут

[HttpGet]
[Route("something/Day/{day:datetime}")]
public async Task<List<something>> GetMeals(LocalDate day, long? slotId = 1, long? typeId = null)

Пример использования:

something/Day/2020-03-25/?slotId=1&typeId=2

Попытка создать маршрут с двумя слешами не работает. Символ-разделитель шаблона маршрута '/' не может появляться последовательно. Он должен быть разделен либо параметром, либо литеральным значением.

[Route("/test/something/Day/{day:datetime}/Slot//Type/{typeId:long?}")] // does not work
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...