RESTful API - правильное поведение, когда в запросе передаются ложные / незапрошенные параметры

Мы разрабатываем API-интерфейс RESTful, который принимает параметры запроса в виде данных в формате JSON.

Нам было интересно, что такое правильное поведение, когданезапрошенные / не ожидаемые параметры передаются вместе с необходимыми.

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

{
    "name": "Jeff",
    "surname": "Atwood"
}

Что делать, если ложный ключ тоже передается, какцвет в приведенном ниже примере?

{
    "name": "Jeff",
    "surname": "Atwood",

    "color": "red"
}

Значение дляцвет не ожидается и не задокументировано.

Должны ли мы его игнорировать или отклонить запрос с ошибкой состояния BAD_REQUEST 400?

Мы можем утверждать, что запрос плохой, потому что он нене соответствуют документации. И, вероятно, пользователь API должен быть предупрежден об этом (она передала значение, она 'Я ожидаю чего-то для этого.)

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

Ответы на вопрос(6)

Ваш ответ на вопрос