Semaine 1

Initialisation

Créer une solution dotnet (sln) avec le nom MonTrackerDeFavoris (vous pouvez choisir un autre nom).

dotnet new sln -n MonTrackerDeFavoris

Créer un projet (vous pouvez choisir un autre nom que TrackerDeFavorisApi)

dotnet new webapi --use-controllers --use-program-main --no-https -n TrackerDeFavorisApi

Ajouter le projet au sln

dotnet sln add TrackerDeFavorisApi

Si cela a fonctionné vous devriez vous retrouver avec les fichiers suivants dans le dossier TrackerDeFavorisApi:

appsettings.Development.json
appsettings.json
bin/
Controllers/
| WeatherForecastController.cs
obj/
Program.cs
projet.csproj
projet.http
Properties/
WeatherForecast.cs

Dotnet CLI

Voici quelques commandes qui vous seront très utiles

Compiler le projet :

dotnet build

Executer le projet :

dotnet run

Executer le projet et recharger lors des modifications :

dotnet watch

Structure

Une fois le projet créé je vous invite a créer un dossier Models dans lequel seront stocké les classes de notre projet.

Vous pouvez dès a présent y déplacer WeatherForecast.cs

Vous pouvez supprimer le controller WeatherForecast ainsi que sa classe dès que vous le souhaitez. Vous pouvez les garder quelques temps en exemple si vous le désirez.

Création d'un Controller

Vous allez désormais pouvoir créer votre propre Controller.

Pour cela c'est assez simple il existe une commande dotnet.

Il s'agit de dotnet new apicontroller Elle prend plusieurs paramètres dont:

  • -n : Le nom du controller
  • -p:n : Le namespace du controller
  • -ac : Si vous voulez ajouter des actions CRUD (Create, Read, Update, Delete)
  • -o : Le dossier dans lequel vous voulez créer le controller

Pour créer un controller User dans le dossier Controllers avec des actions CRUD:

dotnet new apicontroller -n UserController -p:n TrackerDeFavorisApi.Controllers -ac true -o Controllers
Remplacez `TrackerDeFavorisApi` par le nom de votre projet. Celui-ci est le nom que vous avez donné dans la commande `dotnet new webapi`

Si vous connaissez la structure du controller, vous pouvez très bien créer le fichier à la main. Il est aussi possible de copier un controller existant et de le modifier.

Utilisateur

Voud devrez créer une classe Utilisateur dans le dossier Models (Models/User.cs).

Un utilisateur sera caractérisé par :

  • Son pseudo
  • Son mot de passe
  • Son rôle (User, Admin)

Pour le rôle, utilisez une énumération.

User Controller

Un endpoint ou une route est une adresse web qui permet d'accéder à une ressource.

Votre premier controller aura pour rôle de gérer les utilisateurs.

Il devra fournir les endpoints suivants:

GET /api/user/{id} // Renvoi l'utilisateur correspondant à l'id
POST /api/user/register // Renvoi l'utilisateur dont on demande la création
POST /api/user/login // Renvoi l'utilisateur

Pour les endpoints register et login, ils prendront en paramètre une classe UserInfo qui contiendra le pseudo et le mot de passe.

Ce controller renverra des données codé en dur dans un premier temps. On appelle cela un stub.