Transcription
1. 1. Introduction: Bonjour à tous Il s'agit d'un tutoriel sur l'API
minimale dans Dotnet Six. Maintenant, avant de commencer
ce tutoriel, je vais expliquer un
peu ce à quoi vous pouvez vous attendre et ce à quoi ils ne
s'attendent pas dans ce tutoriel. Vous pouvez donc vous attendre à
ce que je
vous montre comment nous créons
des API dans Dotnet. Très bien, c'est ta façon de faire. Après la mort, je vais
vous montrer comment créer créer une
API minimale dans Dotnet Six. Pour cela, je vais
créer un nouveau projet, donc nous allons
partir de zéro. Vous pouvez donc voir
tout ce qui est nécessaire pour créer une API minimale, ce qui n'est pas grand-chose,
d'où le nom minimum. Je vais vous en montrer
un peu plus sur l'injection de dépendances
et l'API minimale. Je vais également
vous montrer comment créer une API minimale asynchrone. ne faut donc pas s'attendre à une explication approfondie sur les
API et les API en général. J'espère que vous en
savez quelque chose, car je ne
vais pas vous le dire. De plus, ce n'est pas un tutoriel
pour C Sharp pour les débutants. Si vous n'avez pas suffisamment de
connaissances sur C-Sharp, je vous recommande vivement de
suivre un cours de base avant de commencer
ce tutoriel. Alors avec ça, commençons.
2. 2. Exigences: Avant de commencer un
didacticiel ou un cours, j'indique généralement aux
gens le type d' exigences à
respecter pour suivre le didacticiel ou le cours. Dans ce cas, j'utiliserai version
communautaire de
Visual Studio 2022, qui est
téléchargeable gratuitement et facilement sur Internet. Une autre exigence est une connaissance de
base de C Sharp. Si vous êtes
débutant ou en do dièse, ou si vous n'avez jamais programmé
en do dièse auparavant, il n'est pas conseillé de
suivre leurs scores. Une autre chose dont vous
devez être conscient est
l'injection de dépendance. Vous devez connaître l'idée
de base de l'injection de dépendance,
comment elle fonctionne, comment la configurer
dans vos programmes, comment l'utiliser. Et la dernière
exigence est l'asynchrone. Au moins, cela n'a pas
nui au terme. Et vous en savez un peu plus sur ce qu'il fait et
pourquoi il est utilisé. Donc, si vous répondez à ces
exigences, cela commence.
3. 3. . API NET 5: Comme je l'ai déjà dit,
examinons
ces cinq API avant commencer avec l'API minimale
Netflix pour adultes. Donc, sur mon écran, l'API
Adult Net Five s'ouvre. C'est le projet.
Il a une solution. Il possède un projet comme chaque
application Dotnet que vous créez. Ce qui ressort le plus, ce
sont les contrôleurs de dossiers. Au sein des contrôleurs,
il existe des classes, en l'occurrence une, qui
est le contrôleur réel. Lorsque nous ouvrons un contrôleur, vous pouvez voir certaines méthodes, certains
attributs et certaines propriétés. Lorsque vous ouvrez un contrôleur, vous verrez la classe publique, le nom du
contrôleur, qui hérite du contrôleur. Il s'agit d'un code échafaudé, c'est
donc ce que Microsoft vous
donne lorsque vous créez une nouvelle API
et que tout va bien. Je ne vais pas créer
une toute nouvelle
application Dotnet Find pour
de petites informations. Il n'y a pas de
constructeur et il existe également une méthode appelée
action. Maintenant, il s'agit généralement de l'API
Dotnet Five. Il possède un dossier contrôleurs, qui contient les classes, qui sont les contrôleurs au sein des actions du contrôleur. Et chaque action a certains types de
retour ou non. De plus, nous
devons bouleverser les choses, program.cs puis démarrer. Oui Les fonctionnalités d'Epstein concernent la configuration
de votre programme, qui se trouve également dans Dotnet Six. Ce n'est donc pas quelque chose à quoi
nous allons dire adieu. à quoi nous disons adieu, c'est que le point cs du
démarrage au démarrage est essentiellement la configuration
de votre projet. Ici, vous pouvez configurer si
vous souhaitez utiliser le swagger injection de dépendances ,
une sorte de journalisation
ou autre Vous pouvez configurer votre
contexte de base de données si vous en avez un avec Entity Framework et bien plus encore, il sera déplacé
vers le fichier program.cs. Et le fichier program.cs
est comme, vous savez, chaque application Dotnet
possède un fichier Program Dot CS. C'est là que l'
application démarre réellement. Si je dois l'exécuter,
cela fonctionne comme une API normale. Il est construit, démarre votre navigateur
par défaut et vous avez une API et vous pouvez l'
essayer si vous le souhaitez. Eh bien, tout ça est cool et tout ça. Mais ce n'est pas ce que
nous allons créer. Nous allons créer une API
Web CICS pour adultes. C'est l'ancienne méthode. Cela vous est peut-être familier. Je voulais juste
te le montrer au cas où. Nous allons maintenant créer une API Netflix
pour adultes.
4. 4. Créer la nouvelle API: Nous savons maintenant comment fonctionne l'ancienne méthode Dotnet
Five. Créons une nouvelle
API dans Dotnet Six. Bien entendu, la première chose
à faire
est de démarrer Visual Studio. En général, vous aurez des projets récents ou les
supprimerez tous pour
cette démonstration. Mais pour créer l'API, vous devez créer un nouveau projet. Lorsque vous cliquez dessus
,
tous les modèles sont chargés et vous pouvez sélectionner le
modèle de votre choix. Sur le côté gauche, j'ai quelques
modèles de projet récents qui
contiennent déjà le
type de projet que je souhaite créer. Mais pour le plaisir,
partons à sa recherche. Je souhaite créer une API. Donc, dans le
champ de recherche, je tape API. Quelques
résultats s'affichent. Les deux premiers sont l'API Web
asp.net Core, et le troisième également. Il y a juste une très
grande différence. La grande différence réside dans
les langues. Le premier est en do dièse, le second en fa dièse et le troisième n'est
en fait pas l'API. Il s'agit de l'application Web asp.net Core. Je veux créer une API, donc je vais sélectionner la
première car je veux créer en C-Sharp
et non en F dièse. De plus, dans le texte, vous
voyez Linux, macOS ,
Windows, cloud,
serveurs, Web, API Web. Cela
signifie donc que vous pouvez également exécuter cette API sur Linux
et macOS si vous le souhaitez. Cliquez sur Suivant. Maintenant, je dois
lui donner un nom de projet. Je vais juste utiliser un nom de démo, mais pensez toujours au nom que vous
voulez donner, car
il doit vous rappeler
ce
que vous êtes en train de créer. Je vais l'appeler la démo
minimale de l'API. Je garderai l'emplacement qui
n'est pas l'emplacement par défaut, quel est le
référentiel quelque part ? Eh bien, Fisher Studio stocke
vos projets par défaut. Et le nom de la solution
sera également le même que le nom du projet. Je clique sur Suivant. Chaque projet possède ses propres
informations supplémentaires. Dans ce cas, l'API a
besoin de quelques extras. Si vous créez une application
console, vous suffira de
sélectionner le framework. Dans ce cas, je dois
sélectionner d'autres options. Dans ce cas, j'utiliserai
le framework Donut Six. Si je l'ouvre, je peux
sélectionner Dotnet Five, ce qui indique également que « hors support », si je clique sur le Dog Net Five, vous verrez que certaines options
disparaîtront ci-dessous. Ces options
concernent toutes l'API minimale. Let Five ne prend donc pas en
charge l'API minimale, et je dois donc
sélectionner dotnet six ou supérieur. Je souhaite le configurer pour HTPS, bien
sûr, activé plus sombre. Docker est installé
sur cette machine,
mais je ne l'activerai
pas pour le moment. Ensuite, il y a une case à
cocher qui dit utiliser des contrôleurs et
vérifier, utiliser un minimum d'API. Si vous commencez par
cela pour la première fois, cela sera vérifié. Si vous maintenez cette case cochée, vous aurez la possibilité de
contrôler cela, ce qui n'est pas quelque chose que
nous voulions cette fois-ci, car nous voulons
créer une API minimale. Nous voulons donc nous débarrasser
des manettes. Je vais donc désactiver la case
Activer le support OpenAPI. C'est un nom fantaisiste pour fanfaronnade. Gardez-le activé. Parce que de cette façon, nous pouvons tester
notre API lorsque nous l'exécutons. N'utilisez pas les déclarations
de haut niveau. C'est également quelque chose pour
Dotnet Six et versions supérieures. Vous pouvez le sélectionner ou non. Je vais juste le laisser décoché
pour ce tutoriel. Si vous êtes satisfait de vos
paramètres, sélectionnez Créer.
5. 5. Fichiers et dossiers: Nous devons maintenant
vider l'API CICS créée et
Visual Studio est ouvert. Et
examinons de près structure
des dossiers
de ces nouveaux projets. Zoomons sur cet explorateur de
solutions. Encore une fois, nous avons notre
solution et nos projets, savoir les
fichiers
et dossiers de l'échafaudage. Je ne vais pas les
aborder tous en profondeur. Je veux juste vous montrer que Jason est toujours
disponible et qu' il n'y a
qu'un seul fichier de classe, le program.cs, les
contrôleurs de dossiers ont disparu et que le startup.js
n'est pas non plus disponible. Donc, si vous ouvrez le fichier program.cs, vous verrez que tout
est configuré dans ce fichier. Vous disposez désormais d'un
générateur
qui crée l' application Web et la méthode de génération, ou vous pouvez ajouter des services à
votre application. Cela concerne également la feuille de travail sur la
pension contexte de
votre base de données, la
journalisation et d'autres éléments dont vous aurez besoin lors de la
création de votre API. Vous verrez également que l'
ensemble de l'échafaudage concernant les prévisions météorologiques est également placé dans ce
programme point c. Oui. Tout ce qui se trouvait dans
différentes classes et dans un contrôleur est maintenant placé
dans ce fichier particulier. Vous pouvez voir ici le résumé
des types de conditions météorologiques. Ci-dessous. Il s'agit d'une carte obtenue, qui est en fait un mappage vers un point
de terminaison particulier de votre API. Ce code était en fait dans le
contrôleur de Dotnet Five. Cela se trouve désormais dans un seul fichier. Il possède un corps
d'expression lambda qui est en fait la fonction qui
renverra la prévision, qui n'est tout simplement pas
la prévision réelle. Il s'agit donc de votre premier exemple d' API minimale selon laquelle
tout se trouve dans un seul fichier. Et grâce aux mappages,
vous pouvez créer les différents
points de terminaison de votre API. Démarrez cette application. Nous pouvons voir ce qu'il fait. Démarrez le navigateur par défaut
et vous verrez Swinger. Et cela ressemble exactement à l' application
Dotnet car j'ai ici
mon point de terminaison pour les prévisions météorologiques.
Je peux l'essayer. Je peux exécuter. À l'extérieur.
Rien n'a changé, mais à l'intérieur, beaucoup de choses
ont changé parce que maintenant je n'
ai plus de manettes. Je n'ai qu'une seule
banque de fichiers et je configure, crée et gère l'ensemble de mon API.
6. 6. Cartographie - Préparations: Il s'agit donc de l'
échafaudage de base contenant
les informations et le code de l'
API dans Dotnet Six. L'étape suivante consiste à
créer d'autres mappages. Nous avons un mappage pour différentes méthodes de requêtes
HTTP. Dans ce cas, je
souhaite utiliser le get the post pour
le supprimer et
le mettre à jour. Avant de le faire, je vais créer quelques couches et
préparations
supplémentaires avant de
passer aux autres paramètres. Je vais donc d'abord créer une
nouvelle classe pour un film. Dish créera un
identifiant, qui est un int. Je souhaite créer un titre. Je peux donc vraiment
nommer le film. Et je veux lui donner une note, qui est également un
entier, de 1 à 5. Ensuite, je veux créer une liste partir du film sombre
que je viens de créer. Et je veux utiliser le film. L'identifiant en est un. La note est, donnons-lui un cinq. Et le titre est Trek. Ce n'est pas un film. Évaluation Id2. Un. Le titre est une tromperie. Nouveau. Idée. Trois. La note est de trois. Le titre est, demandez-vous, simplement
parce que c'est vraiment vieux. Et encore une fois, le nouvel identifiant est pour notation est un et le titre
est The Green Lantern. Enfin et
surtout, l'identifiant est cinq. La note est de cinq. Le titre est la matrice. Maintenant, cela me donne une ligne rouge et cela indique que les
déclarations de haut niveau doivent être poursuivies. Déclarations d'espaces de noms. Déplaçons ça. Déplaçons
cela un peu vers le haut, et l'erreur disparaîtra. Très bien, maintenant,
supprimons également les cartes et les enregistrements internes. Maintenez l'application Dot en cours d'exécution. Si vous supprimez celui-ci,
l' application ne s'exécutera pas. Et c'est vraiment important, je ne vais vraiment pas m'étendre
. Abduct John
n'est pas en retard sur les intégrales de dernière
ligne, mais j'ai également supprimé les résumés parce que nous ne les utiliserons plus et que nous avons une application
très claire. Voilà donc la préparation. Et maintenant, nous allons créer les mappages en
commençant par to get, qui est le plus simple.
7. 7. Carte GET: Très bien, le
premier mappage que nous allons créer est le Get, qui contient également les
méthodes de requête, HTTP GET. C'est la plus simple car
l'API
recevra une demande
extérieure pour renvoyer certaines données. Et ces données sont exactement
ce que nous voulons renvoyer. La première chose à faire
est de créer une carte à points de l'application. Cela signifie que nous voulons
créer une requête HTTP get. Dans Dotnet Five, nous avons dû
ajouter quelques attributs pour indiquer à l'API qu'il s'agissait d'un
GET ou d'un post ou autre. Nous n'avons plus besoin de le faire. Nous pouvons simplement créer une carte à points de
l'application, etc. Assurez-vous de créer
les nouveaux mappages et tous les autres types de mappages
au-dessus de l'application Dot Run. Ne les créez pas en dessous d'eux. Carte. Obtenir. Le premier paramètre
est le motif. Le modèle est en fait
le point de terminaison de l'API vers lequel
d'autres applications peuvent
pointer pour obtenir les données. Dans ce cas, je voudrais l'appeler
films, mais c'est une API. Je vais donc placer l'API au premier plan
pour que nous sachions qu'il s'agit de données. Nous obtenons à partir d'une API. Ajoutons une autre
barre oblique devant. Le deuxième paramètre
est l'apprentissage délégué, ou dans ce cas le corps de l'expression
lambda, qui s'exécute car dans ce cas, des films sont
renvoyés. Je vais donc commencer par
une fonction anonyme, créer des enregistrements et
dire renvoyer des résultats. OK, donc l'appelant sait qu'il recevra un code de
statut de 200, ce qui signifie que tout va bien. Excusez-moi. 204 signifie que c'est bon. Il a été exécuté mais
vous n'avez pas renvoyé de données. Dans ce cas, ce sera 200 parce que je vais
rendre les films. Et n'oubliez pas le
point-virgule à la fin. Il s'agit essentiellement du mappage d'API
le plus simple. Tu vas obtenir. La carte à points obtient, c'est la barre oblique de
l'API Endpoint. Le corps donne des résultats, d'accord ? Et le périmètre, ce sont les films, c'
est-à-dire la liste des films. Je peux commencer est maintenant
l'API et nous allons créer et démarrer le navigateur
par défaut. Les prévisions météorologiques ont disparu. Nous voyons maintenant les barres obliques de l'API. Je peux cliquer dessus pour l'ouvrir, l'
essayer, l'exécuter. Et je l'ai. Ce sont mes films. Voici donc la carte. Optez pour le plus simple. Et passons à autre
chose. Obtenons un film par identifiant, qui est également une requête GET. Au fait, un
paramètre dans l'URL.
8. 8. Carte GET avec le paramètre: La prochaine est donc la carte à
parcourir avec un périmètre, en l'occurrence l'identifiant d'un film. Ce que je veux créer, c'est vous pouvez obtenir un seul
film à partir de l'API en indiquant un identifiant au point final,
c'est assez similaire à ce que
l'on obtient sur la carte précédente. Je peux donc réellement
copier-coller ceci. Et la seule chose que je vais changer, c'est
d'ajouter un
identifiant entre crochets à la fin
des films, et il doit y avoir une
barre oblique devant. Je crée maintenant un
point de terminaison qui indique films d'
API et l'
identifiant d'un film. Ensuite,
dans une fonction anonyme, je vais inclure le périmètre
dans cet identifiant de cas. L'API remarquera qu'il
y a un paramètre supplémentaire,
puis
pointera, il essaiera de transformer ce
périmètre en un entier, puis je pourrai l'
utiliser dans mes méthodes. Dans ce cas, renvoyez
les résultats, d'accord ? Films gravés, un seul identifiant
équivaut à donner un identifiant. En gros, c'est ça. Je peux démarrer l'API maintenant. Je vois une deuxième API de point de terminaison, des films, un
identifiant de crochets et des crochets bouclés. Je peux l'ouvrir, l'
essayer pour m'identifier, je vais choisir de l'exécuter. Et voici notre
film avec carte d'identité. Je peux changer l'identifiant
en quatre, exécuter, et je verrai le film
avec un identifiant pour cette affaire, généralement Green Lantern.
9. 9. POST de carte: La partie suivante
concerne donc la publication. Dans certains cas, vous souhaitez publier les données des
clients vers l'API. Et pour préparer l'API
pour une demande de publication, nous allons cartographier la publication. Pour créer cela, nous créons simplement une nouvelle carte à points, la carte vantait. Et il a le même point final. Ou pour démarrer des films. Et c'est tout parce que
je voulais envoyer un film à l'API
Endpoint Movies. Dans un bref
mappage de l'ID, nous avons dû créer un
paramètre dans l'URL. Dans ce cas,
le point de terminaison a été remplacé par S, dans ce cas, des films d'API. Mais je vais ajouter le type de classe Movie avec un nom dans la
liste des paramètres de mon corps. Dans ce cas, l'
API sait que lorsque le point de terminaison des films de
l'API avec les méthodes de post-requête est appelé, doit contenir un objet le corps doit contenir un objet représentant
la classe Movie. Je suis passé à Dots. Je peux continuer dans ce cas, je peux dire films,
imprimés, films publicitaires. Et c'est tout. Normalement, avec un boss, vous ne renvoyez pas de données et
peut-être simplement un objet créé. À des fins de démonstration, j'utiliserai un retour et je retournerai
tous les films. Vous pouvez donc voir que le film a été ajouté à
la liste des films. Renvoie donc les résultats. D'accord. N'oubliez pas le point-virgule
à la fin de la ligne. Et allons-y. Maintenant, j'ai trois
points de terminaison à atteindre. Un post et un post-test,
celui que nous venons de créer. Je peux l'ouvrir. Je peux vous dire de l'essayer. Et le corps de la requête est
essentiellement adjacent. Eh bien, les identifiants sont généralement
créés seuls. Dans mon cas, ce n'est pas le cas. Je vais donc ajouter mon propre identifiant
et j'utiliserai l'ICD-9. Le titre est The Muppets
et la note est de cinq. C'est ça. C'est ce qui sera
publié sur mon API. J'exécute. Et
le code est 200, ce qui correspond au résultat, mais bon. Et à la fin se trouve la CIM-9, les Muppets en évaluent cinq. Maintenant, j'ai publié
des données dans l'API. Si je reviens au point de terminaison de l'
API movies, mais pour les
méthodes de requêtes GET, j'exécute celle-ci. Je vais revoir les Muppets car je n'ai pas
voulu fermer mon API. C'est donc toujours en mémoire dans
la liste quand j'ai fermé l'API et qu'ils ont commencé à
redémarrer ICD-9, les Muppets auront disparu.
10. 10. Carte SUPPRIMER: Nous avons maintenant créé trois
points de terminaison pour un gaz, carte d'identité et une vantardise. Le moment suivant
sera la suppression. Celui-ci enverra
une demande de suppression à l'API afin que l'API sache que
quelque chose sera supprimé. La suppression de la carte, qui correspond au mappage du
point de terminaison à supprimer, est assez similaire à
la précédente. Je vais créer une carte de
l'application, la supprimer. Et le point final
sera le même que le post et
le premier GET que nous avons créés. Et derrière, je vais créer
le périmètre de l'ID, et je vais
le transformer en un entier qui est le même
que la porte par ID. n'y a aucun conflit entre ces deux
points de terminaison car ils sont séparés par les méthodes de requêtes get et
delete. Donc, si j'envoie une méthode de
requête GET avec un identifiant au final, je recevrai et verrai le
film avec un identifiant donné. Si j'utilise la même URL ou les mêmes points de terminaison et que je l'envoie aide d'une
méthode de demande de suppression à l'API, ce film en particulier
sera supprimé. J'ajouterai également l'identifiant dans la liste des
paramètres. Je peux donc l'utiliser dans mon corps. Et c'est fondamentalement de
notoriété publique. Si vous travaillez
avec C-Sharp, des films, supprimez des films, des célibataires
et trouvez l'identifiant. Et c'est tout. Il s'agit méthode
normale de suppression
d'un élément via une API. Vous ne retournez rien. Le client recevra
200 filles, ce qui est bien, ou 204, ou des erreurs comme 400, 500. C' est tout
ce que vous devez
savoir du côté client. Mais dans notre cas, nous
voulons voir si cela fonctionne vraiment. Je vais donc vous renvoyer
les résultats. D'accord. Des films. C'est bon. C'est ça. Nous allons le tester. Je vais démarrer l'API. Le navigateur par défaut
s'ouvre à nouveau. Et vous verrez maintenant
quels points de terminaison peuvent
obtenir, publier et supprimer. Pour l'obtenir, je vais élargir le
nombre de pistes, je vais l'essayer. Et supprimons le
film avec l'identifiant 2. Je n'ai aucune idée de quel film il
s'agit, mais bon, il s'exécute. Et dans ce cas, je vois que le premier
est Shrek avec l'identifiant un, et le second est
Jaws avec l'identifiant trois, et l'identifiant deux a été supprimé. C'est comme ça que je supprime le travail.
11. 11. Carte PUT: Le dernier mappage que nous allons
créer est la mise à jour. Ou plutôt, le pied
est utilisé pour indiquer que vous souhaitez modifier
un objet ou une valeur existants. Le résultat est en fait le même que la vantardise, sauf que vous
modifiez mon poster map. Dans ce cas,
cartographiez les deux points de terminaison. Juste des films d'API et j'
ajouterai un film dans
la liste des paramètres. Si vous souhaitez mettre à jour
un objet existant, vous devez savoir
où le trouver. Je suppose donc que la carte d'identité a
été renseignée dans le film. Dans ce cas, je dois récupérer l'objet existant dans
la liste. Trouvé. Le
film est l'identifiant à point unique d'un film. Et maintenant, je peux modifier
le contenu
du fichier en cours de déplacement. Ainsi, par exemple la classification des
mouvements est égale à la classification des
films qui est transmise à l'API. Et c'est tout. Habituellement, vous
avez Entity Framework pour gérer les modifications et le personnel, mais dans ce cas, Justin list, je peux maintenant dire renvoyer des résultats. OK, des films. Très bien, et allons-y. Voyons si cela fonctionne. J'entends mes bottes
et une autre étendue. Essayez-le. Changeons
le titre du deuxième film. Je peux laisser un champ vide car
je ne le mets pas à jour. Et la note est fixée à cinq. Exécutons-le. Je retourne tous les
films. Et nous y voilà. Id2 est le titre, Inception. Je l'ai réglé au hasard
et maintenant c'est cinq. Et cela conclut
la commande de mise à jour.
12. 12. Ajouter l'injection de dépendance: Nous avons donc maintenant discuté des besoins de base de l'
API dans Dotnet Six. Nous devons parler de la configuration générale
et de
la manière dont nous pouvons créer des
points de terminaison grâce à des mappages. L'élément suivant de la liste est l'injection de
dépendances, quelque chose que nous
utilisons beaucoup en tant que développeurs dans notre code. Et une API amino
accepte également le modèle
d'injection de dépendance. Et la façon dont nous pouvons le faire est presque la même que dans Dotnet. Amende. Ne le faites simplement pas dans une start-up parce que
ce n'est pas le cas. Nous devons maintenant le configurer dans
le fichier program.cs. Donc, tout d'abord, j'ai apporté
quelques modifications à mon application. Passons d'
abord en revue cela avant d'
expliquer comment vous pouvez utiliser l'injection de
dépendance. Voici donc mon application et je crée une nouvelle logique de dossiers. Et dans le dossier,
il y a deux fichiers, un dossier vidéo et
un film Surface Dot. Voilà le
film qui dit oui. En fait, un film d'objets qui trouvait auparavant dans
le fichier program.cs, mais je l'ai déplacé vers ce fichier. Et les serveurs de films
sont une classe qui gère tout ce qui concerne les films. Quand je l'ai ouvert, il
y a une liste privée de films contenant les mêmes
films et le fichier program.cs. Et il existe quelques
méthodes dans ce cas :
supprimer, tout récupérer, récupérer
par identifiant et insérer. J'ai supprimé la mise à jour parce que je voulais juste
qu'elle soit courte et simple. Le fichier program.cs a
été nettoyé. Ici, j'initialise le
service de films dans une variable. Renommons-le pour des raisons
évidentes. renommé Movie
Service alors qu'il s'agissait d'un petit m. Et j'ai changé
le corps de tous les endpoints avec Movie Service au lieu d'une liste de films parce que ce n'est plus là. J'ai donc supprimé la
classe Movie et la liste des films de ce fichier et
les ai déplacées vers la logique des dossiers. OK, cool. Pour créer l'injection de pénitence, nous avons besoin d'une interface. Dans ce cas, je souhaite créer une interface
du service de films. Il y a moins de méthodes publiques qui doivent figurer dans l'
interface. Tout d'abord, je vais créer une nouvelle interface
dans la logique des fichiers, et je l'appellerai service vidéo. Et je vais juste copier, supprimer, puis
au moins déplacer. Et puis déplacez-le. Bonne, mauvaise idée et encarts. Très bien, et ce sont des vides. Ça va ? Ils ont une interface. Je vais maintenant connecter
l'interface à la classe Movie Service.
Et ils l'ont ajouté. Maintenant, j'ai une
interface connectée à la classe Movie Service. Je reviens au fichier program.cs et je vais commencer à
chercher le service Builder point, notamment parce que c'est là que nous configurons notre injection de
dépendances. Donc, ce que je
fais habituellement, c'est de chercher le gin publicitaire
et en dessous, je vais taper Filler
Services Spled. Très bien, service de déménagement et connectez-le à la classe de service de
cinéma. C'est ça Nous avons maintenant configuré notre injection de dépendance
pour le service de films. Mais comment allons-nous l'
utiliser dans nos terminaux ? En gros, vous le mettez dans la liste des paramètres
de la fonction. Commençons par
la plus simple : map.get ou map
get rich possède un
point de terminaison de films d'API, une liste de paramètres vide et un retour qui est également arrivé. Militaires, emmenez tout le monde, mon pote. Elles seront très simples
car je vais injecter l'interface dans la liste des
paramètres du corps. Donc, dans ce cas,
I Movie Service, je vais lui donner un nom,
Movie Service. Cela donne une erreur. Maintenant, je peux m'en tenir à cela parce qu'ils
sont en tête-à-tête. J'ai intégré le
service iMovie à ma méthode. Comment fonctionne-t-il
avec le second, qui est le midgut, et je peux obtenir un film
par identifiant, très simple, int id comma i movie
service. Et ça marche. Vous pouvez simplement placer l'injection de pénitence derrière
la liste des
paramètres des requêtes de fin ou
d'autres parties de l'action. Il en va de même pour le post. J'ai ici un film
qui est publié
par un client sur le service API
Coma Movie, Movie Service et Delete. Identique à la porte d'identité. Cela donne déjà un indice, peut-être que vous voulez que
iMovie serve. Je veux Et maintenant c'est fait. Je peux supprimer la réalisation
du service de cinéma. Et cela fonctionne toujours si
j'appuie simplement sur F5 maintenant, cela démarrera l'API. Et vous pouvez voir si
cela a réellement fonctionné. Je vois toujours tous
mes points de terminaison ici. Et essayons de le
sécher, de l'exécuter. Et je regarde toujours tous mes films. Essayons de nous vanter, essayons-le. J'ai neuf Muppets, et
la note est de cinq. Exécute. Comme vous pouvez le constater, les Muppets ont été
ajoutés à cette liste. Bien sûr, ce
n'est pas le meilleur
exemple d'injection de dépendance
car j'utilise, je configure l'injection de
dépendance et je l'utilise directement. D'habitude, c'est
partout et ce n'est pas grave. Mais en tant qu'
injection de dépendance en un mot.
13. 13. Fabriquer ASYNC: Le dernier chapitre de
ce cours explique comment faire de l'API un récepteur lui permettant traiter plusieurs demandes
en même temps. Cela rend l'API un
peu plus rapide pour rendre vos actions et vos méthodes asynchrones Nous devons modifier
un peu les objectifs et c'est vraiment simple. Ce n'est pas
vraiment beaucoup de travail. La première chose que je veux faire
est d'accéder à l'interface et de tout
préparer pour une chanson. Je vais donc ajouter une tâche
à toutes les méthodes. Dans ce cas, la liste des tâches se déplace. Je déménage. Et changez la voix au crépuscule. Très bien, c'est facile. Maintenant, remontez à la surface et
vous verrez qu'il se casse car
l'implémentation du service n'est plus la même
que l'interface. Changeons donc rapidement
celui-ci également. Encore une fois, c'est
quelque chose que vous devez savoir avant de
commencer ce cours, et je dois faire en sorte que tout soit asynchrone, sinon cela ne fonctionnera pas. Il s'agit donc simplement d'une action de
copier-coller. Parce qu'il s'agit d'une démo sur la
création de quelque chose d'asynchrone. Habituellement, quelque chose dans la
méthode devrait être disponible. Eh bien, ce n'est pas le cas, mais je fais en sorte que toutes les méthodes
asynchrones les attendent dans l'API, qui est tout l'intérêt
de cette démonstration. Très bien, tout est maintenant
prêt pour les tâches asynchrones. Je reviens au fichier program.cs. Ici, vous pouvez voir que
rien n'a changé. n'y a aucun
avertissement, aucune erreur. Mais si je passe la souris dessus, suffit de tout comprendre, vous
verrez qu'il est disponible. Je peux donc simplement taper
ici et attendre. La question de la dette ne
fonctionne pas car d'une certaine manière, elle doit toujours être utilisée dans le cadre d'une méthode asynchrone et cette méthode ou le
corps ne sont pas asynchrones. Donc, pour le rendre asynchrone, tapez
simplement async ici,
et cela fonctionne. Maintenant, je vois que l'insert Movie Service Dot
est également disponible. Nous avons donc fait celui-ci aussi. Je peux donc tout rendre
asynchrone en ajoutant simplement de l'async à toutes les expressions lambda et en créant les méthodes du
service Movie. Je vais attendre. C'est ça. Alors maintenant, je lance l'API
et c'est toujours pareil. Rien n'a changé. Exécutons le
get pour l'essayer, exécutons. Et je l'ai. Je peux également faire de même pour
l'autre point de terminaison. Mais je pense que tu comprends. C'est ainsi que vous pouvez rendre
l'API minimale asynchrone.
14. 14. Conclusion: Eh bien, cela conclut notre API
minimale dans Dotnet Six. C'est un excellent moyen de créer des API
plus petites avec moins de filles. Et ne s'est-il pas effondré ? J'aime moins de code. L'inconvénient est que si vous
avez une très grosse API, vous avez un gros fichier
avec tous les points de terminaison. Ce qui se passe, c'est que les
utilisateurs vont
répartir les différents points de
terminaison dans différents fichiers. Et puis, en gros, créer à nouveau des
contrôleurs
ne fonctionne pas vraiment. Je pense que oui si vous avez de petites
API et des microservices, mais pas pour les
projets plus importants où vous avez une très grande API qui
gère de nombreuses demandes. Merci d'avoir regardé. J'espère que tu as
appris quelque chose. Si vous avez
des questions, faites-le moi savoir dans les commentaires
ou envoyez-moi un message. N'oubliez pas de me suivre pour d'autres tutoriels
à venir prochainement. Merci et au revoir.