Code de retour

Documentation

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;