Как обработать необязательный ENUM в параметре запроса в C# Rest API - Неверное и нулевое значение, а также скрыть указанное значение c в Swagger - PullRequest
0 голосов
/ 15 января 2020

Я работаю над одним веб-API (. NET Framewrok) - где я хотел использовать ENUM в параметре запроса.

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

Но проблема в том, что я сохранил определение следующим образом:

public HttpResponseMessage Application(UserType? user = null)

Таким образом, это - необязательный параметр, но всякий раз, когда я не передавайте ничего и не передавайте недопустимое значение, оно всегда принимает значение NULL, и если я оставлю это как publi c, например:

public HttpResponseMessage Application(UserType? user = UserType.INVALID)

, тогда оно всегда принимает INVALID (если значение предоставлено как недействительное или нулевое).

Все вышеперечисленное прекрасно из-за поведения по умолчанию.

Но я хочу, чтобы всякий раз, когда указывается недопустимое значение, оно принимало INVALID, и я хочу скрыть это значение из Swagger Drop down. А если ничего не предоставлено, то оно должно быть нулевым. Но, насколько я знаю, возможен только один сценарий. Так что, если есть какая-то хитрость для обработки обоих сценариев ios, тогда, пожалуйста, предложите, а также предложите, как скрыть значение INVALID - ENUM из интерфейса Swagger.

1 Ответ

0 голосов
/ 15 января 2020

Вы можете просто использовать HttpResponseMessage Application(UserType? user). Тогда случай неверного значения enum будет обработан как BadRequest, а передача ничего не будет считаться нулевой.

...