API с необязательной строкой запроса теряет значение маршрута - PullRequest
0 голосов
/ 14 октября 2018

Я хочу иметь путь к WebAPI, который принимает Id, но также и необязательный запрос.

Таким образом, обычно клиент отправляет:

http://localhost:49487/api/template/5b31b31c-ecd9-4e7a-bcdb-1c263399c86f

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

http://localhost:49487/api/template/5b31b31c-ecd9-4e7a-bcdb-1c263399c86f?IncludePreview=true

Моя точка доступа .Net Web API Controller определяется следующим образом и обрабатывает первый случай.

[Route("{Id}"), HttpGet]
public IActionResult GetTemplate(Guid Id, bool IncludePreview = false)

Но как только я отправилвторая версия, со строкой запроса, запускается контроллер api (у меня есть точка останова), но Id всегда равен Guid.Empty.

Как можно, чтобы мой метод API принимал обе версии?Или мне нужно создать отдельную конечную точку для обеих версий?

1 Ответ

0 голосов
/ 15 октября 2018

Вы назначаете логическое значение Включить предварительный просмотр как фиксированное значение.Таким образом, если ваш вызов перехватывает IncludePreview = true в методе GetTemplate, он переназначается.Пожалуйста, попробуйте использовать обнуляемое логическое значение с 'null' в качестве назначенного значения.

public IActionResult GetTemplate(Guid Id, bool? IncludePreview=null)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...