Типы ответов контроллеров netcore

  • Михаил
  • 8 мин. на прочтение
  • 21
  • 25 Nov 2024
  • 25 Nov 2024

В ASP.NET Core контроллеры могут возвращать различные типы ответов, каждый из которых соответствует определенному HTTP-коду состояния. Вот список наиболее часто используемых методов возврата и соответствующих им HTTP-кодов состояния:

Ok():

  • HTTP-код: 200 OK
  • Описание: Успешный запрос. Обычно используется для возврата данных.
  • Пример: return Ok(user);

Created():

  • HTTP-код: 201 Created
  • Описание: Ресурс успешно создан. Обычно используется с заголовком Location, указывающим на URL нового ресурса.
  • Пример: return CreatedAtAction(nameof(GetUser), new { id = newUser.Id }, newUser);

CreatedAtAction():

  • HTTP-код: 201 Created
  • Описание: Ресурс успешно создан. Указывает на действие контроллера, которое возвращает новый ресурс.
  • Пример: return CreatedAtAction(nameof(GetUser), new { id = newUser.Id }, newUser);

CreatedAtRoute():

  • HTTP-код: 201 Created
  • Описание: Ресурс успешно создан. Указывает на маршрут, который возвращает новый ресурс.
  • Пример: return CreatedAtRoute("GetUserRoute", new { id = newUser.Id }, newUser);

Accepted():

  • HTTP-код: 202 Accepted
  • Описание: Запрос принят для обработки, но обработка еще не завершена.
  • Пример: return Accepted();

NoContent():

  • HTTP-код: 204 No Content
  • Описание: Запрос успешно обработан, но нет контента для возврата.
  • Пример: return NoContent();

BadRequest():

  • HTTP-код: 400 Bad Request
  • Описание: Запрос не может быть обработан из-за ошибки клиента.
  • Пример: return BadRequest("Invalid input");

Unauthorized():

  • HTTP-код: 401 Unauthorized
  • Описание: Запрос требует аутентификации пользователя.
  • Пример: return Unauthorized();

Forbid():

  • HTTP-код: 403 Forbidden
  • Описание: Запрос запрещен из-за отсутствия прав доступа.
  • Пример: return Forbid();

NotFound():

  • HTTP-код: 404 Not Found
  • Описание: Запрашиваемый ресурс не найден.
  • Пример: return NotFound();

Conflict():

  • HTTP-код: 409 Conflict
  • Описание: Запрос не может быть выполнен из-за конфликта с текущим состоянием ресурса.
  • Пример: return Conflict("Resource already exists");

UnsupportedMediaType():

  • HTTP-код: 415 Unsupported Media Type
  • Описание: Запрос содержит неподдерживаемый тип медиа.
  • Пример: return UnsupportedMediaType();

UnprocessableEntity():

  • HTTP-код: 422 Unprocessable Entity
  • Описание: Запрос не может быть обработан из-за семантических ошибок.
  • Пример: return UnprocessableEntity(ModelState);

InternalServerError():

  • HTTP-код: 500 Internal Server Error
  • Описание: Внутренняя ошибка сервера.
  • Пример: return StatusCode(500, "Internal server error");

NotFoundObjectResult():

  • HTTP-код: 404 Not Found
  • Описание: Запрашиваемый ресурс не найден. Возвращает объект с сообщением об ошибке.
  • Пример: return NotFound(new { message = "User not found" });

StatusCode():

  • HTTP-код: Любой указанный код состояния.
  • Описание: Возвращает указанный HTTP-код состояния.
  • Пример: return StatusCode(418, "I'm a teapot");

Эти методы позволяют вам гибко управлять ответами вашего API и обеспечивать корректную обработку различных сценариев на стороне клиента.