Контекст: ASP.NET Web API v2Как отличить пустую переменную с нулевым значением или недействительный в цепочке?
Дано URL похож на этот:
http://localhost/something?id=cbc66d32-ece8-400f-a574-e36b911e1369
Когда веб-метод определяет "идентификатор" строк запроса параметров, как это:
[FromUri] Guid? id = null
Затем вызывается веб-метод, является ли Guid неправильной вещью, такой как «asdf» или полностью исключена, переменная id заполняется нулем.
Нам нужно бросить HTTP 400 клиента на инвалидной Guid, но сделать некоторую действительную родовую обработку на нуле один. Это очень разные результаты. Таким образом, нам нужно их дифференцировать, но получить тот же вход в вызове метода.
Есть ли эффективный способ настройки веб-API ASP.NET, чтобы он выдавал HTTP 400 на недействительных гидах по всей доске? Мы часто используем обнуляющие гиды и каждый раз ожидаем такого поведения.
Что о взятии на 'ID parameter' как строку вместо' Guid? ', И если он пуст это ваш нулевой случай. И если это не так, попробуйте разобрать и можете проверить, был ли это действительный Guid или нет. – Hypnobrew
Это действительно сработает, но мы должны будем написать этот код при каждом вызове метода с помощью nullable guid в качестве запроса. Кроме того, у нас есть инструмент автоматической документации, который не знал бы, что этот параметр должен быть Руководством, в частности. – RooSoft
Можете ли вы перегрузить свойство id и обрабатывать «asdf» как строку, сохраняя при этом правильное отображение? http://stackoverflow.com/questions/14353466/overload-web-api-action-method-based-on-parameter-type –