POST / api / team

{
    "name": "",
    "leagueId": 1
}

Правила:

  1. необходимо указать имя
  2. требуется leagueId
  3. аутентифицированный пользователь должен быть владельцем лиги, к которой будет привязана созданная команда.

Допустим, аутентифицированный пользователь не имеет доступа к leagueId, потому что пользователь не является владельцем, лучше ли вернуть ответ 403 (обратите внимание, что правило для поля имени также не выполняется)? Или лучше вернуть код состояния 422 и эту полезную нагрузку:

{
    "errors": [
        {
            "field": "name",
            "message": "Name is required."
        },
        {
            "field": "leagueId",
            "message": "User is not the owner of the league."
        }
    ],
    "message": "Validation Failed"
}

John Kenn

Ответы (1)

I would return a 400 bad request when a required field is not present as the request did not satisfy the implicit contract.

And I would return 403 Forbidden in the case the authenticated user is not the owner of the league, as it indicates that the user is not allowed to do this because of who he/she is.

2022 WebDevInsider