Code de retour
Une réponse HTTP contient un code de retour. Ce code permet de savoir si la requête a été traité correctement ou non.
Vous connaissez très probablement le 404 - Not Found.
IActionResult
En ASP.Net le type de retour s'exprime avec une classe ActionResult
qui implémente l'interface IActionResult
.
Il en existe plusieurs qui hérite de ActionResult
.
En voici quelques unes :
return Ok(value); // 200 - OK tout s'est bien passé, on renvoi la valeur a l'appelant
return CreatedAtAction(nameof(Getter), new { id = value.Id }, value); // 201 - Le résultat a bien été crée
return NoContent("J'ai rien"); // 204
return BadRequest("C'est pas valide"); // 400
return NotFound("Erreur: j'ai pas trouvé"); // 404
return StatusCode(500, "Erreur interne"); // 500
La dernière méthode StatusCode
permet de renvoyer un code HTTP personnalisé.
Exemple d'usage
Une méthode qui renvoi un objet Confiture
si elle existe dans la base de donnée.
On peux voir que le type de retour est ActionResult<Confiture>
ce qui signifie que l'on renvoi un objet de type Confiture
avec un code 200 ou un code d'erreur.
Ici on renvoi un code 404 si la confiture n'existe pas dans la base.
[HttpGet("{id}")]
public async ActionResult<Confiture> GetConfiture(int id)
{
// TODO enleveer db
var confiture = _context.Confitures.Find(id);
if (confiture == null)
{
return NotFound(); // 404
}
return Ok(confiture); // 200
}
Par défaut le code de retour est 200 - OK si on ne spécifie pas de code de retour.
Les deux lignes suivantes sont équivalentes.
return Ok(confiture);
return confiture;