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
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
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.