WebApi устанавливает значения по умолчанию для всех параметров

Я в процессе миграции нашего сервера с SOAP на REST. Я использую swashbuckle для генерации документации API и авторест для создания клиентов.

У меня есть много методов с подписями, которые позволяют:

1) Обнуляемые значения

2) Строки, которые могут разрешать нулевые значения

Например, такой метод:

public void SetGlobalDataForSite(string wsKey, int? siteId, string title,
 string keywords, string homepagetitle, bool isValidValue)

Не нужно иметь значение для siteId, ключевых слов или homepagetitle.

Насколько я знаю, чтобы эти значения были нулевыми, я должен преобразовать метод во что-то вроде этого:

public void SetGlobalDataForSite(string wsKey, string title, bool isValidValue,
 int? siteId = null, string keywords = null, string homepagetitle = null)

Теперь это вызывает много проблем:

1) Так как я меняю подпись, это очень подвержено ошибкам

2) Это много работы, у меня есть около 300 способов изменить

3) Мне также нужно изменить код клиента, который может вызвать еще больше ошибок

Есть ли способ пометить эти свойства как обнуляемые без изменения сигнатуры? Может быть, я что-то упустил. Создание класса запроса для большинства методов может сработать, но опять же я создаю много бесполезного кода.

Любые идеи были бы хорошы:)

1 ответ

Решение

Вам придется потратить одно время на преобразование - обычно безопасными параметрами может быть либо принятие параметра в форме объекта (это может быть JObject или класс, либо даже Tuple в последней версии C#)

Другие вопросы по тегам