Transkripte
1. 1. EINFÜHRUNG: Hallo zusammen. Dies ist ein Tutorial über die
minimale API in Dotnet Six. Bevor ich mit
diesem Tutorial beginne, werde
ich ein
wenig erklären, was Sie in diesem Tutorial
erwarten können und was nicht. Was Sie also erwarten können,
ist, dass ich
Ihnen zeige , wie wir
APIs in dotnet erstellen. Gut, es ist dein Weg. Nach dem Tod zeige ich
Ihnen, wie Sie eine minimale
API in Dotnet Six erstellen
können. Dafür werde ich ein neues Projekt
erstellen, also fangen wir
bei Null an. Sie können also
alles sehen, was
benötigt wird , um eine minimale API zu erstellen, was nicht viel ist,
daher das Namensminimum. Ich werde Ihnen
ein wenig über
die Dependency Injection
und die Minimal-API zeigen . Außerdem zeige ich Ihnen, wie
Sie eine asynchrone Minimal-API
erstellen können . Was Sie also nicht erwarten können, ist eine eingehende Erklärung zu
API und APIs im Allgemeinen. Ich hoffe, Sie
wissen etwas darüber , denn ich
werde es Ihnen nicht sagen. Dies ist auch kein Tutorial
für C Sharp für Anfänger. Wenn Sie nicht genügend
Kenntnisse über C-Sharp haben, empfehle
ich Ihnen dringend,
zuerst einen Grundkurs zu
absolvieren , bevor Sie mit
diesem Tutorial beginnen. Lassen Sie uns damit beginnen.
2. 2. Anforderungen: Bevor ich mit dem
Tutorial oder Kurs
anfange, sage ich den
Leuten normalerweise, welche Anforderungen sie erfüllen müssen, um dem Tutorial oder Kurs zu
folgen. In diesem Fall verwende ich die
Community-Version von
Visual Studio 2022,
die kostenlos und einfach aus dem Internet
heruntergeladen werden Community-Version von
Visual Studio 2022, kann. Eine weitere Voraussetzung sind
Grundkenntnisse von C Sharp. Wenn Sie
Anfänger oder C-Sharp sind oder noch nie
in C-Sharp programmiert haben, ist
es nicht ratsam, deren Ergebnisse zu
verfolgen. Eine weitere Sache, auf die Sie achten
sollten ist
die Abhängigkeitsinjektion. Sie sollten die Grundidee
der Dependency Injection kennen ,
wie sie funktioniert, wie Sie sie
in Ihren Programmen konfigurieren wie Sie sie verwenden. Und die letzte
Anforderung ist asynchron. Zumindest hat es dem Begriff nicht
geschadet. Und Sie wissen ein bisschen darüber was es tut und
wofür es verwendet wird. Also, wenn Sie diese
Anforderungen erfüllen, fängt das an.
3. 3. . NET 5 API: Wie ich bereits sagte,
schauen wir uns
diese fünf APIs an , bevor wir mit der
Netflix-Minimal-API für Erwachsene
beginnen. Also habe ich auf meinem Bildschirm die
Adult Net Five API geöffnet. Das ist das Projekt.
Es hat eine Lösung. Es hat ein Projekt wie jede
Dotnet-Anwendung, die Sie erstellen. Das meiste, was auffällt,
sind die Ordner-Controller. Innerhalb der Controller
gibt es Klassen, in diesem Fall eine, die der eigentliche Controller
ist. Wenn wir einen Controller öffnen, können
Sie bestimmte Methoden,
Attribute und Eigenschaften sehen. Wenn Sie einen Controller öffnen, sehen
Sie die öffentliche Klasse, den Namen des
Controllers, der den Controller
erbt. Dies ist Gerüstcode, also das
gibt Ihnen Microsoft, wenn Sie eine neue API
erstellen,
und das ist in Ordnung. Ich werde keine ganz neue
Dotnet-Suchanwendung für
kleine Informationen erstellen . Es gibt keinen
Konstruktor und es gibt auch eine Methode, die als Aktion bezeichnet
wird. Nun, das ist normalerweise die
Dotnet Five API. Es hat einen Ordner Controller, der
die Klassen enthält, die die Controller
innerhalb der Aktionen des Controllers sind . Und jede Aktion hat bestimmte
Rückgabetypen oder nicht. Außerdem müssen wir Dinge über
den Haufen werfen, program.cs und dann Startups. Ja. Die Epstein-Dinge dienen der Konfiguration
Ihres Programms,
das ebenfalls in Dotnet Six enthalten ist. Das ist also nicht etwas, von dem
wir uns verabschieden werden. Wovon wir uns verabschieden
, ist das Start-up to Startup Punkt cs ist im Grunde die Konfiguration
Ihres Projekts. Hier können Sie konfigurieren, ob
Sie Swagger
oder Dependency Injection oder
irgendeine Art von Logging
oder was auch immer verwenden möchten oder Dependency Injection oder .
Sie können Ihren
DB-Kontext konfigurieren, falls Sie einen mit
Entity Framework und vielem mehr haben , dieser wird in
die program.cs verschoben. Und die program.cs
ist wie, wissen Sie, jede Dotnet-Anwendung
hat eine Programm-Punkt-CS-Datei. Hier beginnt die
Anwendung tatsächlich. Wenn ich das ausführen sollte, funktioniert
es einfach wie eine normale API. Es wurde gebaut, es startet Ihren
Standardbrowser und Sie haben eine API und Sie können es
ausprobieren, wenn Sie möchten. Nun, das ist alles cool und so. Aber das ist nicht das, was
wir schaffen werden. Wir werden eine CICS-API
für Erwachsene erstellen. Das ist der alte Weg. Vielleicht kommt mir das bekannt vor. Ich wollte es
dir nur für alle Fälle zeigen. Jetzt werden wir die Netflix-API
für Erwachsene erstellen.
4. 4. Erstelle die neue API: Jetzt wissen wir, wie die alte Methode von Dotnet
Five funktioniert. Lassen Sie uns eine neue
API in Dotnet Six erstellen. Das erste, was Sie tun
müssen,
ist natürlich Visual Studio zu starten. Normalerweise haben Sie einige aktuelle Projekte oder entfernen sie alle für
diese Demonstration. Um die API zu erstellen,
müssen Sie jedoch ein neues Projekt erstellen. Wenn Sie
darauf klicken, werden
alle Vorlagen geladen und Sie können die gewünschte
Vorlage auswählen. Auf der linken Seite habe ich
einige aktuelle
Projektvorlagen, die bereits den
Projekttyp
enthalten, den ich erstellen möchte. Aber zum Spaß suchen
wir danach. Ich möchte eine API erstellen. Also gebe ich in das
Suchfeld API ein. Es werden einige
Ergebnisse angezeigt. Die ersten beiden sind die
asp.net Core Web API und die dritte ebenfalls. Es gibt einfach einen wirklich
großen Unterschied. Der große Unterschied
sind die Sprachen. Der erste ist cisp, der zweite ist fish und der dritte ist
eigentlich nicht die API. Es ist die asp.net Core Web App. Ich möchte eine API erstellen, also wähle ich die erste
aus, weil ich sie in C-Sharp
und nicht in Fis erstellen möchte . Außerdem
sehen Sie im Text Linux, macOS, Windows, Cloud,
Server, Web, Web-API. Das
bedeutet also im Grunde, dass Sie
diese API auch unter Linux
und macOS ausführen können, wenn Sie möchten. Klicken Sie auf Weiter. Jetzt muss ich
ihm einen Projektnamen geben. Ich werde nur einen Demo-Namen verwenden, aber denke immer über den Namen
nach, den du geben möchtest
, weil er dich an
das erinnern soll ,
was du kreierst. Ich werde das die
minimale API-Demo nennen. Ich werde den Speicherort beibehalten, der
nicht die Standardeinstellung Welches ist das
Repository irgendwo? Nun, Fisher Studio speichert
Ihre Projekte standardmäßig. Und der Lösungsname
wird auch dem Projektnamen entsprechen. Ich klicke auf Weiter. Jedes Projekt hat seine eigenen zusätzlichen
Informationen. In diesem Fall
benötigt die API einige Extras. Wenn Sie eine
Konsolenanwendung erstellen, müssen
Sie nur das Framework
auswählen. In diesem Fall muss ich einige weitere Optionen
auswählen. In diesem Fall werde ich
das Doughnut Six Framework verwenden. Wenn ich es öffne, kann ich Dotnet Five
auswählen, was auch besagt, dass die Unterstützung nicht Wenn ich auf das Hundenetz Five klicke, wird.
Wenn ich auf das Hundenetz Five klicke,
werden einige Optionen unten verschwinden. Bei diesen Optionen dreht sich alles
um die minimale API. Let Five
unterstützt also keine minimale API, und daher muss ich Dotnet Six oder höher
auswählen. Ich möchte es für HTPS konfigurieren, natürlich dunkler aktiviert. Ich habe Docker
auf diesem Computer installiert, aber ich werde
es derzeit nicht aktivieren. Dann gibt es ein
Kontrollkästchen mit der Aufschrift „Controller
verwenden“ und „
Aktivieren, minimale APIs verwenden“. Wenn Sie
das erste Mal damit beginnen, wird
dies überprüft. Wenn du das Häkchen
lässt, bekommst du den
Breitenunterschied, um das zu kontrollieren, was
wir dieses
Mal nicht wollten , weil wir eine minimale API
erstellen wollen. Also wollen wir die Controller
loswerden. Also lasse ich dieses Häkchen bei
Enable OpenAPI support deaktivieren. Das ist ein schicker Name für Prahlerei. Halte es auf aktiviert. Denn auf diese Weise können wir
unsere API testen, wenn wir sie ausführen. Verwenden Sie nicht die Aussagen der
obersten Ebene. Das ist auch etwas für
Dotnet Six und höher. Sie können es auswählen oder nicht. Ich lasse es
für dieses Tutorial einfach unaktiviert. Wenn Sie mit Ihren
Einstellungen zufrieden sind, wählen Sie Erstellen aus.
5. 5. Dateien und Ordner: Jetzt müssen
wir die
erstellte CICS-API ablegen und wir haben
Visual Studio geöffnet. Und
schauen wir uns
die Ordnerstruktur
dieser neuen Projekte genauer an . Schauen wir uns diesen
Lösungs-Explorer genauer an. Auch hier haben wir unsere
Lösung und unsere Projekte, und das sind die
Gerüstdateien und -ordner. Ich werde nicht ausführlich
über sie alle sprechen. Ich möchte dir nur zeigen, dass die Dinge, die Jason noch verfügbar sind und es
nur eine Klassendatei gibt, die program.cs, die
Ordnercontroller sind weg und die startup.js ist auch
nicht verfügbar. Wenn Sie also die Datei program.cs öffnen, werden
Sie sehen, dass in dieser Datei alles konfiguriert
ist. Sie haben jetzt einen
Builder, in dem die Webanwendung
und die Methode zum Erstellen
erstellt werden, oder Sie können Ihrer Anwendung Dienste
hinzufügen. Dies gilt auch für das
Rentenarbeitsblatt und Ihren Datenbankkontext sowie Protokollierung und andere Dinge, die Sie beim
Aufbau Ihrer API
benötigen. Sie werden auch sehen, dass das
gesamte Gerüst über die Wettervorhersage ebenfalls
in diesem
Programm enthalten ist . Punkt c. Ja. Alles, was in
verschiedenen Klassen und in
einem Controller war , ist jetzt
in dieser speziellen Datei abgelegt. Hier können Sie die Zusammenfassung der Art
der Wettertypen sehen. Unten. Es handelt sich um eine Map Gets , bei der es sich eigentlich um eine Zuordnung zu einem bestimmten Endpunkt
Ihrer API handelt. Dieser Code befand sich tatsächlich im
Controller in Dotnet Five. Das ist jetzt in einer Datei. Es hat einen
Lambda-Ausdruckstext, der
eigentlich die
Funktion ist , die die Prognose zurückgibt, was einfach nicht
die tatsächliche Prognose ist. Dies ist also Ihr erstes Beispiel für die minimale API, bei der sich
alles in einer Datei befindet. Und mit Mappings können
Sie
die verschiedenen
Endpunkte Ihrer API erstellen . Starten Sie diese Anwendung. Wir können sehen, was es macht. Starten Sie den Standardbrowser
und Sie werden Swinger sehen. Und das sieht genauso aus wie bei der
Dotnet-Anwendung denn hier habe ich
meinen Endpunkt für die Wettervorhersage.
Ich kann es ausprobieren. Ich kann hinrichten. Draußen.
Nichts hat sich geändert, aber im Inneren hat
sich viel geändert, weil ich jetzt keine Controller mehr
habe. Ich habe nur eine
Dateibank und konfiguriere, erstelle und verwalte meine gesamte API.
6. 6. Mappings – Vorbereitungen: Das ist also das
Grundgerüst für Informationen und Code für die
API in Dotnet Six. Der nächste Schritt besteht darin, weitere Mappings zu
erstellen. Wir haben ein Mapping für verschiedene
HTTP-Anforderungsmethoden. In diesem Fall
möchte ich Get
the Post verwenden, um
dies für das Update zu löschen. Bevor ich das mache, werde
ich einige
zusätzliche Schichten und Präparationen auftragen, bevor ich zu den anderen Metriken
übergehe. Also werde ich zuerst eine
neue Klasse für einen Film erstellen. Dish erstellt eine
ID, die ein Int ist. Ich möchte einen Titel erstellen. Also kann ich den Film tatsächlich
benennen. Und ich möchte ihm eine Bewertung geben, die ebenfalls eine
Ganzzahl ist, mit einer Bewertung von 1-5. Als Nächstes möchte ich eine Liste
mit dem dunklen Film erstellen , den
ich gerade erstellt habe. Und ich möchte den Film benutzen. Id ist eins. Die Bewertung ist, geben wir eine Fünf. Und der Titel ist Trek. Kein Film. Id2-Bewertung. Eins. Titel ist Täuschung. Neu. Idee. Drei. Die Bewertung ist drei. Titel ist, fragst du nur
, weil er wirklich alt ist. Und wieder ist die neue ID für Rating 1 und der Titel
lautet The Green Lantern. Und nicht
zuletzt ist die ID fünf. Die Bewertung ist fünf. Der Titel ist die Matrix. Jetzt gibt es mir eine rote Linie und es heißt, dass die
Stellungnahmen auf höchster Ebene bearbeitet werden müssen. Namespace-Deklarationen. Lass uns das verschieben. Verschieben wir
das ein wenig nach oben und der Fehler ist weg. Ordnung, also löschen
wir jetzt auch die
Map-Gets und die internen Datensätze. Lass den App-Punkt laufen. Wenn Sie dieses entfernen, wird
die Anwendung nicht ausgeführt. Und es ist wirklich wichtig, ich werde wirklich nicht
breiter, abduct John ist nicht zu spät mit den Integralen der letzten
Zeile, sondern hat auch die Zusammenfassungen entfernt weil wir sie nicht
mehr verwenden werden und wir haben eine
wirklich klare Anwendung. Das ist also die Vorbereitung. Und jetzt erstellen wir
die Mappings, indem wir bei get
beginnen, was die einfachste ist.
7. 7. Map GET: Ordnung, das
erste Mapping, das wir erstellen
werden, ist das Get, das auch die
Anforderungsmethoden ist, HTTP GET. Dies ist die einfachste
, da die API eine Anfrage von
außen
erhält , um einige Daten zurückzugeben. Und diese Daten sind genau das,
was wir zurückgeben wollen. Das erste, was wir tun müssen,
ist App Dot Map Gets zu erstellen. Das bedeutet, dass wir eine HTTP-Get-Anfrage
erstellen möchten. In Dotnet Five mussten wir einige Attribute hinzufügen,
um der API mitzuteilen
, dass es sich um ein
GET oder einen Post oder was auch immer handelt. Wir müssen das nicht mehr tun. Wir können einfach eine
App-Punktmap erstellen, hol. Stellen Sie sicher, dass Sie
die neuen Zuordnungen und
alle anderen Zuordnungstypen
über dem App-Punkt Run erstellen . Erstelle sie nicht unter ihnen. Landkarte. Holen Sie sich. Der erste Parameter
ist das Muster. Das Muster ist eigentlich
der Endpunkt der API, auf andere Anwendungen
verweisen können, um die Daten abzurufen. In diesem Fall möchte ich
es Filme nennen, aber es ist eine API. Also werde ich die API in den Vordergrund stellen,
damit wir wissen, dass es sich um Daten handelt. Wir beziehen von einer API. Fügen wir einen weiteren
Schrägstrich davor hinzu. Der zweite Parameter
ist der Delegate Learn, oder in diesem Fall der
Lambda-Ausdruckskörper
, der ausgeführt wird, um in diesem Fall Filme
zurückzugeben. Ich beginne also mit
einer anonymen Funktion, erstelle Datensätze und
sage, dass Ergebnisse zurückgegeben werden. Okay, der Anrufer
weiß also, dass er
den Statuscode 200 erhalten wird, was bedeutet, dass es okay ist. Entschuldigung. 204 bedeutet, dass es okay ist. Es wurde ausgeführt, aber
Sie haben keine Daten zurückgegeben. In diesem Fall werden es 200 sein, weil ich die Filme
zurückgebe. Und vergiss das
Semikolon am Ende nicht. Dies ist im Grunde das
einfachste API-Mapping. Du wirst bekommen. Dot Map Gets, das sind die Slash-Filme der
Endpunkt-API. Der Körper gibt Ergebnisse zurück, okay? Und der Umkreis besteht aus Filmen,
was die Liste der Filme ist. I can start ist jetzt
die API und wir bauen und starten den
Standardbrowser. Die Wettervorhersage ist weg. Wir sehen jetzt die API-Slash-Filme. Ich kann es anklicken, öffnen,
ausprobieren, ausführen. Und ich habe es. Das sind meine Filme. Das ist also die Karte. Holen Sie sich das einfachste. Und lassen Sie uns zu
etwas anderem übergehen. Lassen Sie uns einen Film anhand der ID abrufen, was auch eine GET-Anfrage ist. Übrigens ein
Parameter in der URL.
8. 8. Map GET mit Parameter: Das nächste ist also die Map, die
sich mit einem Perimeter fortbewegt, in diesem Fall der ID eines Films. Was ich erstellen möchte, ist der, Sie können einen einzelnen
Film von der API abrufen ,
indem Sie eine ID im Endpunkt angeben Er ist ziemlich ähnlich als in
der vorherigen Map. Also kann ich das tatsächlich
kopieren und einfügen. Und das einzige, was ich
ändern werde , ist das Hinzufügen
einer
ID in geschweiften Klammern am Endpunkt
der Filme, und davor muss ein
Schrägstrich stehen. Ich erstelle jetzt einen
Endpunkt, auf API-Filme und die
ID eines Films stehen. Und der nächste Teil ist, dass
ich
in einer anonymen Funktion den Perimeter
in diese Fall-ID einfüge. Die API bemerkt, dass es einen zusätzlichen Parameter gibt ,
und dann zeigt sie, sie wird versuchen, diesen
Perimeter zu einer Ganzzahl zu analysieren, und dann kann ich
ihn in meinen Methoden verwenden. In diesem Fall geben Sie die
Ergebnisse zurück, okay? Filme verbrannt, eine einzige ID
entspricht einer ID. Das ist im Grunde alles. Ich kann die API jetzt starten. Ich sehe eine zweite Endpunkt-API, Filme, geschweifte
Klammer-ID und geschweifte Klammern. Ich kann es öffnen, es für die ID ausprobieren
, ich entscheide mich für die Ausführung. Und da haben wir unseren
Film mit Ausweis dazu. Ich kann die ID
auf vier ändern, ausführen und ich sehe mir den Film
mit einer ID für diesen Fall an, normalerweise The Green Lantern.
9. 9. Map: Im nächsten Teil geht es also
um das Posting. In einigen Fällen möchten Sie
Daten von den
Clients an die API senden. Und um die API
für eine Post-Anfrage vorzubereiten, werden
wir den Beitrag zuordnen. Um dies zu erstellen, erstellen wir einfach eine neue Punktkarte, Map Boast. Und es hat den gleichen Endpunkt. Oder um Filme zu starten. Und das war's, weil
ich
einen Film an die
Endpoint-API-Filme senden wollte . Kurz gesagt, indem wir nur die ID
zuordnen, mussten
wir einen
Parameter in der URL erstellen. In diesem Fall wurde
der Endpunkt als S entlastet, in diesem Fall als API-Filme. Aber ich werde
den Klassen-Typ Movie mit einem Namen in die
Parameterliste meines Körpers aufnehmen. In diesem Fall weiß die
API, dass beim Aufruf des API-Movies-Endpunkts mit den
Post-Request-Methoden ein Objekt im
Body
vorhanden sein sollte , das
die Movie-Klasse darstellt. Ich bin zu Dots gegangen. In diesem Fall kann ich weitermachen, ich kann Filme,
Printmedien, Werbefilme sagen. Und das war's. Normalerweise gibt
man bei einem Boss keine Daten zurück und
vielleicht nur ein erstelltes Objekt. Zu Demozwecken verwende ich
eine Return-Funktion und gebe
alle Filme zurück. Sie können also sehen, dass der Film zur Liste
der Filme hinzugefügt
wurde. Also gib die Ergebnisse zurück. Okay. Vergiss das Semikolon
am Ende der Zeile nicht. Und lass es uns starten. Jetzt muss ich mir also drei
Endpunkte besorgen. Ein Beitrag und der Posttest,
den wir gerade erstellt haben. Ich kann es öffnen. Ich kann sagen, probier es aus. Und der Anfragetext grenzt
im Grunde genommen an. Nun, IDs werden normalerweise eigenständig
erstellt. In meinem Fall nicht. Also füge ich meine eigene ID hinzu
und verwende ICD-9. Der Titel lautet The Muppets
und die Bewertung ist fünf. Das war's. Dies wird an meiner API
veröffentlicht. Ich führe aus. Und
der Code ist 200, was das Ergebnis ist, aber okay. Und am Ende steht ICD-9, die Muppets bewerten fünf. Also habe ich jetzt
Daten an die API gepostet. Wenn ich zum Endpunkt
API-Filme zurückkehre, aber für die
GET-Anforderungsmethoden, führe ich diese aus. Ich werde die Muppets wiedersehen , weil ich meine API nicht herunterfahren
wollte. Es ist also immer noch im Speicher in
der Liste, wenn ich
die API heruntergefahren habe und sie ICD-9
neu gestartet haben, werden
die Muppets weg sein.
10. 10. Map: Jetzt haben wir drei
Endpunkte für ein Gas erstellt, holen uns meine ID und prahlen. Der nächste Moment
wird das Löschen sein. Dieser sendet
eine Löschanfrage an die API, damit die API weiß, dass
etwas gelöscht wird. Der Map-Löschvorgang, bei
dem es sich um das Mapping für den zu löschenden
Endpunkt
handelt, ist
dem vorherigen ziemlich ähnlich. Ich werde eine
App-Map erstellen, löschen. Und der Endpunkt wird derselbe
sein wie der Beitrag und das erste GET,
das wir erstellt haben. Und dahinter erstelle ich
den Perimeter für ID und lasse
ihn zu einer Ganzzahl werden , die dem Gate nach ID entspricht
. Es gibt keinen Konflikt zwischen diesen beiden
Endpunkten, da sie durch die Methoden get und
delete requests getrennt
sind. Wenn ich also eine
GET-Anforderungsmethode mit einer ID im Endpunkt sende, erhalte
ich den
Film mit einer bestimmten ID und sehe ihn mir an. Wenn ich dieselbe URL oder dieselben
Endpunkte verwende und sie
mit einer
Löschanforderungsmethode an die API sende , wird dieser bestimmte Film gelöscht. Ich füge die ID auch in die
Parameterliste ein. Damit ich es in meinem Körper verwenden kann. Und das ist im Grunde
allgemein bekannt. Wenn Sie
mit C-Sharp arbeiten, Filme, Filme
entfernen, Single,
und suchen Sie die ID. Und das war's. Dies ist normale Methode, um
ein Element über eine API zu löschen. Du gibst nichts zurück. Der Kunde erhält
200 Mädchen, was okay ist oder 204 oder Fehler wie 400, 500.
Das ist alles, was Sie auf der Kundenseite
wissen müssen. Aber in unserem Fall
wollen wir sehen, ob es wirklich funktioniert. Also werde ich
die Ergebnisse zurückgeben. Okay. Filme. In Ordnung. Das war's. Lass es uns testen. Ich starte die API. Der Standardbrowser
wird erneut geöffnet. Und Sie werden jetzt nach
Endpunkten suchen, um die zu erhalten, den Beitrag zu
erhalten und zu löschen. Um das zu bekommen, erweitere ich die
Leads, ich probiere es aus. Und lassen Sie uns den
Film mit ID zwei löschen. Ich habe keine Ahnung, welcher Film
das ist, aber okay, läuft. Und in diesem Fall sehe
ich, dass der erste Shrek mit der ID eins ist
und der zweite
Jaws mit der ID drei ist, und die ID zwei wurde gelöscht. So lösche ich Arbeit.
11. 11. 11.: Das letzte Mapping, das wir
erstellen werden, ist das Update. Oder besser gesagt, der Fuß
wird verwendet, um
anzuzeigen, dass Sie
ein vorhandenes Objekt oder einen vorhandenen Wert ändern möchten. Die Ausgabe ist eigentlich das Gleiche wie Prahlerei, außer dass du meine Posterkarte
änderst. Ordnen Sie in diesem Fall also beide Endpunkte zu. Einfach API-Filme und ich
füge der Parameterliste einen Film hinzu. Wenn Sie
ein vorhandenes Objekt aktualisieren möchten, müssen
Sie wissen,
wo es zu finden ist. Ich gehe also davon aus, dass der Ausweis aus dem Film ausgefüllt
wurde. In diesem Fall muss ich
das vorhandene Objekt
aus der Liste abrufen . gefunden. Film ist eine Einzelpunkt-ID für
Filme. Und jetzt kann ich
den Inhalt der
Datei ändern , wenn ich sie verschiebe. So entspricht z. B. die
Bewegungsbewertung
der Filmbewertung , die im
Durchlauf an die API übermittelt wird. Und das war's. Normalerweise
haben Sie Entity Framework, um die Änderungen und das Personal zu
verwalten, aber in diesem Fall, Justin List, kann
ich jetzt sagen, dass Ergebnisse zurückgegeben werden. Okay, Filme. In Ordnung, und lass uns damit anfangen. Mal sehen, ob es funktioniert. Ich höre meine Stiefel
und einen ausgestreckten. Probiere es aus. Lass uns
den zweiten Filmtitel ändern. Ich kann ein Feld leer lassen, weil
ich das nicht aktualisiere. Und die Bewertung ist auf fünf gesetzt. Lass es uns ausführen. Ich gebe alle
Filme zurück. Und los geht's. Id2 ist der Titel, Inception. Ich habe das auf eine zufällige
Eins gesetzt und jetzt sind es fünf. Und damit ist
die Aktualisierungsreihenfolge abgeschlossen.
12. 12. Hinzufügen von dependency: Jetzt haben wir
die grundlegenden Bedürfnisse der
API in Dotnet Six besprochen . Wir müssen über
das allgemeine Setup sprechen und darüber, wie wir
Endpunkte durch Mappings erstellen können. nächste Punkt auf der Liste ist die
Dependency Injection,
etwas, das wir als Entwickler häufig in unserem Code
verwenden. Und eine Amino-API
akzeptiert auch das
Abhängigkeitsinjektionsmuster. Und wie wir das machen können, ist fast dasselbe wie in Dotnet. Fein. Mach es einfach nicht in einem Startup, weil
es nicht da ist. Wir müssen
es jetzt in der program.cs konfigurieren. Also habe ich zunächst
einige Änderungen an meiner Bewerbung vorgenommen. Lassen Sie uns das
zuerst durchgehen, bevor ich
erkläre, wie Sie die
Dependency Injection verwenden können. Das ist also meine Anwendung und ich erstelle eine neue Ordnerlogik. Und in dem Ordner
befinden sich zwei Dateien, Movie Dossier und
Movie Surface Dot. Da ist also der
Film, der ja sagt. Eigentlich Objektfilm, vorher in
der program.cs
war, aber ich habe ihn in diese Datei verschoben. Und die Filmserver
sind eine Klasse, die sich um alles rund um Filme kümmert. Als ich das geöffnet habe,
gibt es eine private Liste von Filmen, die dieselben
Filme und die program.cs enthält. Und in diesem Fall gibt es ein paar
Methoden:
löschen, alle abrufen,
nach ID abrufen und einfügen. Ich habe das Update entfernt , weil ich es einfach und kurz
halten möchte. Die Datei program.cs
wurde bereinigt. Hier initialisiere ich den
Filmservice in eine Variable. Lassen Sie uns das aus
offensichtlichen Gründen umbenennen. es in movie
service when a small m umbenannt. Und ich habe alle Endpunkte mit Movie Service
anstelle einer Liste von Filmen geändert Endpunkte mit Movie Service anstelle einer Liste von Filmen ,
weil das hier nicht mehr ist. Also habe ich die
Filmklasse und die Liste der
Filme aus dieser Datei entfernt und
sie in die Ordnerlogik verschoben. Okay, cool. Um die Bußspritze zu erstellen, benötigen
wir eine Schnittstelle. In diesem Fall möchte ich
eine Schnittstelle
des Filmdienstes erstellen . Es gibt weniger öffentliche Methoden , die in der
Schnittstelle sein müssen. Zuerst erstelle
ich ein neues Interface
in der Dateilogik und nenne es Movie Service. Und ich kopiere, lösche und
verschiebe dann zumindest. Und dann beweg es. Gute, schlechte Idee und Beilagen. In Ordnung, und das sind Lücken. In Ordnung? Sie haben eine Schnittstelle. Jetzt verbinde ich
das Interface mit der Klasse Movie Service.
Und sie haben es hinzugefügt. Jetzt habe ich also eine
Schnittstelle,
die mit der Movie Service-Klasse verbunden ist. Ich gehe zurück zur Datei program.cs und fange an, nach dem Builder-Dot-Service zu
suchen,
vor allem, weil
wir dort unsere
Abhängigkeitsinjektion konfigurieren. Normalerweise suche
ich also dem Ad-Swagger-Gin
und darunter gebe ich Filler
Services Scoped ein. Ordnung, Umzugsdienst und verbinde ihn mit der
Filmservice-Klasse. Das war's. Jetzt haben wir
unsere Dependency Injection
für den Filmservice konfiguriert . Aber wie werden wir es in unseren Endpunkten
verwenden? Sie fügen es im Grunde in die Parameterliste
der Funktion ein. Fangen wir mit
dem einfachsten an, map.get oder map
get rich hat einen
Endpunkt von API-Filmen, eine leere Parameterliste
und return, die ebenfalls übernommen wurden. Soldaten, hol alles, Kumpel. Diese werden sehr einfach sein
, da ich
die Schnittstelle in die
Parameterliste des Körpers einfügen werde . Also in diesem Fall,
I Movie Service, gebe
ich ihm einen Namen,
Movie Service. Es gibt einen Fehler. Jetzt kann ich das
gleich lassen, weil sie eins zu eins
sind. Ich habe den
iMovie-Dienst in meine Methode eingefügt. Wie funktioniert das
mit dem zweiten Film, dem Middarm, und ich kann einen Film
per ID bekommen, ganz einfach, int id comma i movie
service. Und es funktioniert. Sie können
die Bußinjektion einfach hinter die Parameterliste
der Endpunktabfragen oder
andere Teile der Aktion stellen. Das Gleiche gilt für die Post. Ich habe hier einen Film
, der
von einem Kunden auf den API
Coma Movie Service,
Movie Service und Delete gepostet wird von einem Kunden auf den API
Coma Movie Service,
Movie Service . Das Gleiche wie das Gate per ID. Es gibt schon den Hinweis, vielleicht willst du ja den
iMovie servieren. Ich will. Und jetzt ist es fertig. Ich kann die Realisierung
des Filmservices entfernen. Und es funktioniert immer noch, wenn
ich jetzt nur F5 drücke, wird die API gestartet. Und du kannst sehen, ob
es tatsächlich funktioniert hat. Ich sehe immer noch
meinen gesamten Endpunkt hier. Und lass uns versuchen, dass es
austrocknet, exekutiert. Und ich sehe immer noch alle meine Filme. Versuchen wir uns zu rühmen, probieren wir es aus. Ich habe neun Muppets und
die Bewertung ist fünf. Führt aus. Wie Sie sehen können, wurden
die Muppets zu dieser Liste
hinzugefügt. Natürlich ist dies
nicht das beste Beispiel
für die Dependency Injection,
da ich die
Dependency Injection verwende ,
konfiguriere und sie direkt verwende. Normalerweise ist es
überall und das ist okay. Aber kurz gesagt als
Abhängigkeitsinjektion.
13. 13. Es ASYNC machen: Im letzten Kapitel dieses Kurses
geht es darum, die API zu
einer Senke zu machen, sodass die API mehrere Anfragen
gleichzeitig
verarbeiten kann . Und das macht die API ein
bisschen schneller, um
Ihre Aktionen und Methoden asynchron zu machen , um
Ihre Aktionen und Methoden asynchron .
Wir müssen
die Ziele
ein wenig ändern und es ist wirklich einfach. Es ist nicht
wirklich viel Arbeit. Als erstes möchte ich
zum Interface gehen und alles für ein Singen
vorbereiten. Also werde ich allen Methoden
eine Aufgabe hinzufügen. In diesem Fall verschiebt sich die Aufgabenliste. Ich ziehe um. Und ändere die Stimme auf Abenddämmerung. In Ordnung, das ist einfach. Gehen Sie nun zur Oberfläche und
Sie werden feststellen, dass es kaputt geht weil
die Implementierung des Dienstes nicht mehr mit der Schnittstelle übereinstimmt. Also lasst uns auch diesen
schnell ändern. Auch dies sollten
Sie
wissen, bevor Sie
mit diesem Kurs beginnen, und ich muss alles asynchron machen, sonst funktioniert es nicht. Das ist also nur eine Aktion zum
Kopieren und Einfügen. Weil dies eine Demo ist, in der es
darum geht, etwas Asynchron zu machen. Normalerweise sollte etwas innerhalb der
Methode verfügbar sein. Nun, das ist nicht der Fall, aber ich sorge dafür, dass alle Methoden
asynchron in der API auf sie warten, was
der Sinn dieser Demonstration ist. In Ordnung, also ist jetzt alles für asynchrone Aufgaben
vorbereitet. Ich gehe zurück zur program.cs. Hier kann man sehen, dass sich
nichts geändert hat. Es gibt keine
Warnungen, keine Fehler. Aber wenn ich den Mauszeiger darüber bewege, hole ich mir
einfach alles und du wirst
sehen, dass es verfügbar ist. Also kann ich einfach
hier tippen und warten. About Debt
funktioniert nicht, weil es in gewisser Weise immer
innerhalb einer asynchronen Methode verwendet werden muss und diese Methode oder der
Hauptteil nicht asynchron ist. Um es asynchron zu machen, geben Sie hier
einfach async ein
und dann funktioniert es. Jetzt sehe ich, dass der Movie Service Dot Insert ebenfalls verfügbar
ist. Also haben wir das auch gemacht. Ich kann also alles
asynchron machen, indem ich einfach Async zu
allen Lambda-Ausdrücken hinzufüge allen Lambda-Ausdrücken und die
Movie-Service-Methoden erstelle. Ich warte. Das war's. Also starte ich jetzt die API
und es ist immer noch dasselbe. Es hat sich nichts geändert. Lassen Sie uns das
Get ausführen, um es auszuprobieren, wird ausgeführt. Und ich habe es. Ich kann das auch für
den anderen Endpunkt tun. Aber ich denke, du verstehst, worum es geht. So machen Sie
die minimale API asynchron.
14. 14. Fazit: Nun, damit ist unsere
minimale API in Dotnet Six abgeschlossen. Es ist eine großartige Möglichkeit,
kleinere APIs mit weniger Mädchen zu erstellen. Und ist er nicht auseinandergefallen? Ich mag weniger Code. Der Nachteil ist,
dass Sie, wenn Sie eine wirklich große API haben, eine große Datei
mit allen Endpunkten haben. Was also passiert, ist, dass die
Leute die verschiedenen Endpunkte
auf verschiedene Dateien
verteilen . Und dann im Grunde wieder
Controller zu erstellen ,
funktioniert nicht wirklich. Ich denke schon, wenn Sie kleine
APIs und Microservices haben, aber nicht für größere
Projekte, bei denen Sie
eine wirklich große API haben , die viele Anfragen
verarbeitet. Danke fürs Zuschauen. Ich hoffe du hast etwas
gelernt. Wenn Sie
Fragen haben, lassen Sie es mich einfach in den Kommentaren
wissen
oder senden Sie mir eine Nachricht. Vergiss nicht, mir zu folgen, um in naher Zukunft
weitere Tutorials zu erhalten. Danke und auf Wiedersehen.