Мы разрабатываем RESTful api, который принимает параметры запроса в запросе в виде закодированных JSON-данных.
Нам было интересно, что такое правильное поведение, когда не запрошенные/ожидаемые параметры передаются вместе с требуемыми.
Например, нам может потребоваться, чтобы запрос PUT на заданной конечной точке должен был предоставить ровно два значения соответственно для ключей имя и фамилия:
{
"name": "Jeff",
"surname": "Atwood"
}
Что делать, если в приведенном ниже примере передан ложный ключ, например цвет?
{
"name": "Jeff",
"surname": "Atwood",
"color": "red"
}
Значение цвет не ожидается, не задокументировано.
Следует ли игнорировать его или отклонять запрос с ошибкой состояния BAD_REQUEST 400?
Мы можем утверждать, что запрос плохой, потому что он не соответствует документации. И, вероятно, пользователь API должен быть предупрежден об этом (она передала значение, она будет ожидать чего-то для этого.)
Но мы также можем утверждать, что запрос может быть принят, поскольку, поскольку все необходимые параметры предоставляются, он может быть выполнен.