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