У меня есть проект RESTful Web API, и у меня есть 2 разных сценария Enum, которые я не уверен в лучшей практике.
Сценарий 1: Простой параметр Enum Param
Для моего метода API требуется параметр, называемый ruleType
, при этом допустимыми значениями являются EmailAddress
и IPAddress
. Мое перечисление в проекте веб-API выглядит следующим образом:
public enum RuleType
{
None = 0,
EmailAddress = 1,
IPAddress = 2
}
Мой вопрос для этого сценария: должен ли я использовать ?ruleType=EmailAddress
в моем запросе API (который автоматически связывает это значение с моим свойством RuleType
в методе API)? Если да, то как лучше всего проверить, что параметр RuleType
отправлен, является допустимым значением Enule RuleType?
Сценарий 2: множественные значения перечисления для одного параметра
Мой API-метод имеет необязательный параметр fields
, который позволяет указать любые дополнительные данные, которые должны быть возвращены. Eg &fields=ruleOwner,rule
. Это вернет эти 2 дополнительных бита данных в ответ.
У меня есть перечисление в проекте веб-API, которое относится к каждому возможному field
которое может быть запрошено, и в настоящее время я разделяю запятые поля param, затем перебираю каждое строковое представление этого перечисления, анализируя его на эквивалентное перечисление, в результате получится список значений Enum, которые я могу затем использовать в моем API для получения соответствующих данных.
Это Enum:
public enum OptionalField
{
None = 0,
RuleOwner = 1,
Rule = 2,
etc.
}
Что было бы лучше всего здесь? Я искал побитовые перечисления, поэтому в запросе API отправляется одно значение, которое приводило к любой комбинации fields
но не знало, будет ли это хорошо работать с веб-API, или если в целом есть лучший способ сделать это?