Comment retourner un fichier JSON via HTTP status code en ASP.Net ?

ASP.Net Core est le kit de développement proposé par Microsoft pour créer son API utilisant le protocole REST à l'aide du langage ASP. On peut ainsi coder des services avec lesquels une autre application peut se mettre en relation. Il est possible d'utiliser du JSON comme format de retour pour votre API en faisant directement appel à certaines fonctionnalités de l'API.

La première étape pour pouvoir utiliser du JSON consiste à configurer le service. Le fichier "Startup.cs" contient la classe "Startup" qui permet de configurer le fonctionnement général de son service. Dans la méthode "ConfigureServices()", appelez la méthode "AddMvc()". En plus d'apporter les éléments permettant de développer un modèle MVC, cette méthode permet d'utiliser le JSON comme format d'entrée/sortie pour son application.

public void ConfigureServices(IServiceCollection services)
{
    ...
    services.AddMvc();
}

Si vous souhaitez uniquement utiliser les fonctionnalités liées au format JSON, alors vous pouvez simplement appeler la méthode "AddJsonFormatters()" de l'objet "services".

C'est dans votre contrôleur que va se situer ensuite l'essentiel de votre code. Pour indiquer que le format est du JSON, vous pouvez utiliser la directive "Produces". Cette directive va forcer le contrôleur à n'utiliser que le type demandé (ici le JSON) même si d'autres formats ont été implémentés

[Produces("application/json")]

Il ne vous reste plus qu'à développer vos méthodes. Pour gérer les codes de retours, ASP.NET Core fournit ses propres méthodes qui acceptent en paramètres des objets qui seront transformés dans le format paramétré et émet le code de statut HTTP correspondant. La méthode "Ok()" indique le code de retour 200, pour signaler une requête réussie. Pour une requête non trouvée, on utilise la méthode "NotFound()" qui émet le code 404. Pour une erreur dans une requête, on utilise "BadRequest()" afin d'indiquer le code HTTP 400. Si vous souhaitez utiliser un code de retour personnalisé, alors faites appel à la fonction "StatusCode()".

// GET: api/chats/search?espece=europeen
[HttpGet("Search")]
public IActionResult Search(string espece)
{
    var resultat = _chat.getByEspece(espece);
    if (!result.Any())
    {
        return NotFound(espece);
    }
    return Ok(resultat);
}

JavaScript