REST-API in asp. net Teil ONE (Server-Seite) | Ruslan Bokov | Skillshare

Playback-Geschwindigkeit


1.0x


  • 0.5x
  • 0.75x
  • 1x (normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

REST-API in asp. net Teil ONE (Server-Seite)

teacher avatar Ruslan Bokov, Front-end developer, Video and Sound edi

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Einheiten dieses Kurses

    • 1.

      Einführung

      1:58

    • 2.

      Erstelle dein Projekt

      5:00

    • 3.

      Controller

      5:38

    • 4.

      Abfragedaten lesen

      7:37

    • 5.

      Formulardaten lesen und senden

      6:26

    • 6.

      Formularkörper lesen

      12:41

    • 7.

      Überschriften und Cookies

      7:39

    • 8.

      Datenbank

      11:02

    • 9.

      Nutzercontroller

      20:57

    • 10.

      Bestell- und Artikelmodelle

      4:00

    • 11.

      Auftragscontroller

      14:08

    • 12.

      Gegenstands-Controller

      13:27

    • 13.

      Benutzerdefinierte Attribute

      15:54

    • 14.

      Server-Upload und -Download

      6:31

    • 15.

      Injektion von Abhängigkeiten

      11:12

    • 16.

      Landstreicher

      11:20

  • --
  • Anfänger-Niveau
  • Fortgeschrittenes Niveau
  • Fortgeschrittenes Niveau
  • Jedes Niveau

Von der Community generiert

Das Niveau wird anhand der mehrheitlichen Meinung der Teilnehmer:innen bestimmt, die diesen Kurs bewertet haben. Bis das Feedback von mindestens 5 Teilnehmer:innen eingegangen ist, wird die Empfehlung der Kursleiter:innen angezeigt.

72

Teilnehmer:innen

--

Projekte

Über diesen Kurs

Hallo Leute!

Und willkommen zum ersten Teil, unserem kompletten Leitfaden zu RESTful API in ASP.NET Core.

Wir haben diesen Kurs mit Visual Studio 2019 erstellt und alles mit POSTMAN getestet (alle Links sind im ersten Abschnitt des Kurses verfügbar).

Der erste Teil des Kurses ist ''Server-Seite'''. Hier lernen wir, wie du dein erstes API-Projekt erstellst und auch Controller, Routs und Action erstellst. Wie du Formulardaten liest und sendest, den Formularkörper liest, benutzerdefinierte Attribute erstellst usw. Wir erklären dir auch, wie du eine Datenbank für dieses Projekt erstellen kannst.

Der zweite Teil ist ''Kundenseite'''. Hier erkläre ich alle Methoden, die du verwenden kannst, um eine bestehende API aufzurufen. Wir werden Anrufe mit Anfrage, Formulardaten, Formularkörper tätigen und auch Cookies und Header senden und erhalten.

Dieser Kurs soll dir einen großen Überblick über die Funktionsweise einer RESTful-API geben.

Wir freuen uns sehr, unser Wissen und Können mit euch zu teilen. Und das Beste am Teilen ist, dass wir uns und die Menschen um uns herum besser fühlen und mehr lernen, sodass wir immer eine Win-Win-Situation haben.

Triff deine:n Kursleiter:in

Teacher Profile Image

Ruslan Bokov

Front-end developer, Video and Sound edi

Kursleiter:in

Hello there,

We are a three person team. Our specializations are: computer networking, API's, mobile development, robotics, Adobe, business and entrepreneurship.

Dimitri is a .Net developer & network engineer. He has worked seven years for Intel as .net developer. Now he's working for Syntra & is responsible for creating and updating APIs.

Ruslan is an aspiring Video and Sound editor, software engineer and front-end developer. He has worked for NIKO as an embedded software developer.

Emily is a startup qualification manager. She mainly focuses on helping people with great concepts but who lack the right support.

But we also work with a number of interesting people who are experts in different kinds of fields such as: Entrepreneurship, Finance and Inves... Vollständiges Profil ansehen

Level: Intermediate

Kursbewertung

Erwartungen erfüllt?
    Voll und ganz!
  • 0%
  • Ja
  • 0%
  • Teils teils
  • 0%
  • Eher nicht
  • 0%

Warum lohnt sich eine Mitgliedschaft bei Skillshare?

Nimm an prämierten Skillshare Original-Kursen teil

Jeder Kurs setzt sich aus kurzen Einheiten und praktischen Übungsprojekten zusammen

Mit deiner Mitgliedschaft unterstützt du die Kursleiter:innen auf Skillshare

Lerne von überall aus

Ob auf dem Weg zur Arbeit, zur Uni oder im Flieger - streame oder lade Kurse herunter mit der Skillshare-App und lerne, wo auch immer du möchtest.

Transkripte

1. Einführung: Hallo und herzlich willkommen zu unserem Kurs. Und M ist das Militär, endet nicht Entwickler, ein Netzwerk-Ingenieur. Und in diesem Kurs geht es um RESTful API. Und es ist in Abschnitte unterteilt. Im ersten Abschnitt werden wir die RESTful API mit ASP.Net Core erstellen. Wir werden einen Blick auf die besten und die üblichen Möglichkeiten, wie eine RESTful API zu erstellen. Wir werden sehen, was eine Aktion ist, wie man den Controller erstellt. Wo ist anderer Fremdkörper gebildet. Und es gibt Cookies, Uploads und Downloads und so weiter. Im zweiten Abschnitt werden wir die Client-Anwendung erstellen und wir werden die API aufrufen, die wir im ersten Abschnitt erstellt haben. Am Ende dieses Kurses sollten Sie sich ein großes Bild davon machen, was eine RESTful API ist. Sie werden sehen, wie Sie Anrufe von der Client-Anwendung mit dem Web-Client, HTTP-Webanforderungen oder HTTP-Client als Tools mobile verwenden Visual Studio 2019 und Postman, um unsere API zu testen. Sie benötigen jedoch Grundkenntnisse in C-Sharp, um diesem Kurs folgen zu können. Wenn Sie irgendwelche Probleme oder Fragen in diesem Kurs haben, kontaktieren Sie mich bitte und ich werde Sie so schnell wie möglich kontaktieren oder eine Nachricht in der Warteschlange ist Abschnitt. Vielen Dank, dass Sie Interesse gezeigt haben. Ich freue mich sehr, mein Wissen mit Ihnen zu teilen. 2. So erstellst du dein Projekt: Hallo und willkommen zu diesem Video-Tutorial. In diesem Video-Tutorial werden wir unser Projekt erstellen und wir werden einen Blick auf die Struktur unseres Projekts werfen. Und wir werden einfach auf Play klicken und sehen, was es tut, ist zum File New Project zu gehen. Und genau hier möchten wir ASP.Net Gore, eine Web-Anwendung, auswählen. Wenn Sie es nicht in Ihrer Liste sehen, wenn Sie es finden können. Nun, das bedeutet wahrscheinlich, dass Sie es über den Visual Studio-Installer installieren müssen . Sobald Sie es haben oder wenn Sie diese breite Art von Projekt ausgewählt haben und klicken Sie auf Weiter. In diesem Fenster müssen Sie einen brillanten Namen angeben, in meinem Fall wird EBI-Beispiele sein. Ich werde den Standort gleich verlassen und die Lösung scheint nämlich radikal verbindet schafft. In diesem Fenster müssen Sie sicherstellen, dass Sie das latest.net Core-Framework auswählen. In meinem Fall ist es 3.1, also werde ich diesen auswählen. Sie können auch sehen, dass Sie aus vielen verschiedenen Vorlagen wählen können. Sie können natürlich mit den leeren Vorlagen gehen. Epi, Web-Anwendung, Web-Anwendung Modell View-Controller. In einigen Frameworks. Wir werden mit der API-Vorlage beginnen. Klicken Sie auf Erstellen. Und das wird ein neues Projekt für Sie erstellen. Ganzheitlicher Blick auf die Struktur unseres Projekts. Wir haben, wir haben unsere Abhängigkeiten genau dort ist es in.net oder Projekt. Und wir haben den Eigenschaftenordner, die Starteinstellungen, den JSON darin, der die JSON-Datei ist. Konfigurieren des Startvorgangs. Ich sitze drinnen. Nächste Woche, haben Sie einen Controller-Ordner. Und innerhalb dieses Ordners werden wir alle unsere Controller speichern und speichern. Im Moment haben wir eine, die vom Visual Studio erstellt und generiert wurde. Wohingegen und dieser ist die Wettervorhersage controller.js Datei. Diese Datei Ziele zusammen mit der Wettervorhersage Punkt cs Datei, die im Grunde das Modell ist. Jetzt wird dieser Controller einige zufällige Daten für Sie generieren, essen wird, wie Sie sehen können, Daten zufällige Engineering einige Daten, Temperatur und Zusammenfassung. Verwenden des Wetterprognosemodells. Wir werden beide Gläser löschen. Aber bevor wir das tun, werden wir fertig werden. Dadurch wird der Web-Browser für Sie gestartet. Und Sie werden sehen, dass der URI etwas wie HTTP oder vielleicht HTTPS sein wird, gefolgt von lokalem Host, Portnummer und dem Controller-Namen. Und wenn Sie zu dieser URL navigieren, werden Sie am Ende mit diesen zufällig generierten Daten für Sie. Das ist alles, was dieser Controller tut. Es ist nur eine Art Hallo Weltbeispiel. Also lass mich anfangen, damit es nicht läuft. Und als nächstes werden wir zur Datei program.cs springen. Und diese Datei wird, Sie normalerweise nicht haben, keinen Code hinzufügen müssen. Was Sie wissen müssen, ist, dass diese Klasse schließlich diese.tab Startup dot cs Datei gestartet wird , die im Grunde die Middleware ist. Wenn wir einen Blick auf diese Punkt-Punkt-CS-Datei werfen, werden Sie sehen, dass diese Datei die Startmethoden enthält. Und es erfordert in der Mikrofinanzkonfiguration. Das Konfigurationsobjekt, das Sie hier sehen. Neben dieser Datei gibt es zwei weitere Methoden, konfigurierten Dienst und die Konfiguration. In dieser Klasse werden wir unsere API konfigurieren und wir werden einige Abhängigkeitsinjektion durchführen oder vielleicht einige andere Frameworks hinzufügen. Dies ist der Ort, an dem all diese Konfiguration stattfinden wird. Das ist es also für die Struktur, die wir unser neues Projekt erstellt haben. Führen Sie mich einfach geglaubt, diese Wettervorhersagen controller.js Datei zusammen mit den Wettervorhersagen und CS. Wir brauchen sie nicht. Diese beiden Arbeiten, die für uns generiert wurden, haben Beispiele. Also brauchen wir sie nicht. Lassen Sie uns einfach beide löschen. Okay, das war's für dieses Video. Und im nächsten Video werden wir mit der Erstellung unserer Controller beginnen. 3. Controller: Hallo, in diesem Vortrag werden wir unseren ersten Controller in Aktion bringen. Um dies zu tun, sollten Sie Controller für Controller-Ordner auswählen. Rechtsklicken Sie darauf. Wählen Sie „Controller hinzufügen“. Und dieses Fenster wählt API-Controller leer die M21. Lassen Sie es uns einfach halten. Klicken Sie auf Hinzufügen. Und hier, wie Sie sehen können, ist der Standard bereits ausgewählt. Der Controllerteil nicht dies ist, weil jeder Controller mit dem Controller enden sollte. Dieses Suffix ist erforderlich, daher werden wir es dort belassen. Sonst wird es nicht funktionieren. Wählen Sie also Ihren Namen für Ihre Klasse, für Ihren Controller. In meinem Fall, Beispiel, Controller, klicken Sie auf Hinzufügen. Dies wird unseren ersten Controller erstellen. Genau hier sind wir. Wie Sie sehen können, ist nur ein einfaches Glas mit dem Namen, der von erbt, in diesem Fall Steuerung oder Basisklasse. Wenn Sie also Seiten machen, erben wir von der Controller-Klasse und nicht von der Controller-Basis. Aber da wir keine Seiten tun, um mit der Controller-Basis zu bleiben. In Ordnung, also hier haben wir zwei Attribute. Die erste ist die Route API Schrägstrich eckigen Klammern Controller. Dieser Teil bezieht sich auf den Klassennamen, der in meinem Fall Beispiel ist. Die vollständige Route wird also api Schrägstrich Beispiel sein, weil sie alle sind. Als nächstes erstellen wir eine Aktion. Aktion ist nur eine einfache Methode. Es muss öffentlich sein, weil wir es nicht öffentlich enthüllen werden. Lassen Sie uns String, String zurückgeben und ihm einen Namen geben. Nennen wir es Aktion kann Aktion eins sein. Und wir werden einfach nur den Test zurückgeben. Richtig? Also jetzt müssen wir auch eine weitere Route hinzufügen, um auf diese Aktion zu zeigen. Weil dies, diese Route, die wir auf das Glas zeigen. Beachten Sie, dass die Aktion. Also lasst uns das machen. Wir fügen eine weitere Route darüber hinzu. Route. Und wie Sie sehen können, benötigt es die Zeichenfolge. Also die URI-Teile, es wird vollständig an Ihnen liegen. Sie können wählen, was Sie wollen. Und lasst uns eine gute Aktion ergreifen. Richtig? Also hier haben wir unseren ersten Controller mit einer einfachen Aktion es. Jetzt bauen wir es und testen Sie es. Es wird das Projekt erstellen und den Web-Browser starten. Und es wird zu der Wettervorhersagen Klasse navigieren, die wir nicht haben, seit wir gelöscht. Wir werden es reparieren. Für jetzt. Alles, was wir tun müssen, ist nur eins hinzuzufügen und wie Sie sehen können, bekommen wir unsere Schnur zurück. Okay, also lass uns aufhören. Hier ist ein Beispiel eine grundlegende Controller-Klasse innerhalb einer einfachen Aktion, die wir eine Zeichenfolge zurückgeben sollten. Nun, bevor wir fortfahren, lassen Sie uns beheben die Startseite erreicht in Starteinstellungen die JSON-Datei, starten URL. Wie Sie sehen können, Wettervorhersagen, werden wir es durch Aktion eins ersetzen. Api Beispielteile, Mittagessen URL, Aktion eins. Wenn wir also jetzt ein Projekt erstellen und das wieder starten, wird es auf diese Aktion verweisen. Das war's also für dieses Video. Lasst uns zusammenfassen. Gehen wir zurück zum Stundenglas. Also haben wir einen neuen Controller erstellt. Controller sollte immer Controller-Station haben. Sie enden, das Suffix ist erforderlich. Wir müssen von der Controller-Basis oder Controller-Klasse erben. Die Controller-Klasse wird Ihnen geben, wird mir mit den Ansichten helfen. Wenn Sie Seiten tun. Diese beiden Attribute, sie sind eigentlich nicht erforderlich, aber es ist immer gut, sie zu haben. Sie können sie sogar auskommentieren. Es wird immer noch funktionieren. Aber es ist immer gut, seine haben, Zum Beispiel, diese Attribute. Es sagt, dass sein API-Controller. Und das ist wahr. Das ist, was wir tun, also ist es gut, es in ihrem Maximum zu haben. Wir haben unsere erste Aktion, die, wie Sie sehen können, nur die einfachen Methoden, die mit dem Route-Attribut dekoriert sind, das zurückgibt, ist eine einfache Zeichenfolge. In der nächsten Vorlesung werden wir weiterhin unsere Controller-Controller bauen und wir werden unsere Aktionen dekorieren, neue Aktionen erstellen und sie mit verschiedenen Attributen dekorieren , um eine bessere API zu machen. Okay, wir sehen uns dort. 4. Abfragedaten lesen: In diesem Video werden wir an unseren Aktionen arbeiten. Und da wir an der RESTful API arbeiten, die für Representational State Transfer steht. Dies bedeutet, dass wir uns mit HTTP-Protokoll beschäftigen müssen. Und HTTP-Protokoll bedeutet, dass wir mit der Anfrage und Antwort oder Anfrage Antwort umgehen müssen. So zahlen sie, dass die Verbraucher bei etwas bleiben. Die Quellen von jemandem aus unserer API, in unserer API müssen antworten. Richtig? Also zurück zu Visual Studio und sehen Sie diese Aktion. Also hier zurück im Visual Studio habe ich bereits die wenigen Methoden vorbereitet. Stellen Sie sich diese Situation vor, wenn Sie nicht nur eine einfache Aktion wie visuelle Literatur auf nur einer Zeichenfolge erstellen müssen, sondern eine Aktion, die Parameter von Ihrem Client erhält. Und dann müssen Sie vielleicht etwas mit diesen Parametern tun, vielleicht einige Berechnungen machen oder Ihr Ding tun. Die Frage ist also, wie erstellen Sie eine solche Aktion und wie lesen Sie diese Parameter? Nun, es gibt verschiedene Möglichkeiten, dies zu tun, und eine von ihnen ist die Verwendung der Abfrage. Also lassen Sie mich Ihnen den ersten Weg zeigen. Lassen Sie uns also eine neue Route erstellen. Nennen Sie es Aktion zu. Dies wird das einfache Publics Metal sein, an das wir die Saite zurückgeben werden. Und um Zugriff auf die Parameter zu erhalten, müssen Sie auf das Anforderungsobjekt zugreifen, das die Augenbinde in der Anfrage sendet. Sie greifen also auf die Anforderungsobjektpunktabfrage zu, und dann müssen Sie den Schlüssel angeben. Um Ihnen also eine Idee zu geben, muss der Kunde zu dieser Aktion navigieren. Es wird so etwas wie Aktion sein, um den Parameter eins in Frage zu stellen, v wird gleich einem Wert sein und der Parameter zwei wird wieder einem Wert gleich sein. Und den Parameternamen. Nun, sie sollten übereinstimmen. Die Abfrage ist im Grunde I Query Sammlung und die erwartet, dass der Schlüssel, der Schlüsselname und der Skiname übereinstimmen müssen. Diese müssen also damit übereinstimmen. Also lasst uns einen Haltepunkt dort setzen und ihn in Aktion sehen. Er hat den Knopf nicht gespielt. Dies wird ein Projekt Plüsch Web-Browser erstellen. Hoffentlich. Hier sind wir auf Aktion eins, unsere Standardaktion. Lassen Sie mich zu der Aktion zwei navigieren und ein Fragezeichen hinzufügen. Und wie Sie sehen können, ist der Umfang eins gleich abc und der Parameter zwei gleich eins bis drei. Geben Sie ein. Und hier werden wir gebeten, zu handeln, lassen Sie uns einfach weiter. Also haben wir zwei Variablen, Wasserschale B1 gleich ABC, und die zweite ist gleich 123. Und wir werden diese Parameter einfach an unseren Kunden, ABC123, zurückgeben. Dies ist also eine Möglichkeit, wie Sie die Parameter aus der Abfrage lesen können. Werfen wir einen Blick auf einen anderen Weg. Hier ist es. Lassen Sie mich das auskommentieren. Wieder haben wir einen Route Action-Baum, der dieses Getränk Aktion drei zurückgeben wird. Und hier werden wir explizit angeben, dass wir eine Zeichenfolge erwarten. Und der zweite Parameter sollte in IIT sein. Und wir müssen beide Parameter mit diesem Attribut von Query dekorieren, da wir diese Parameter aus der Abfrage lesen. Also müssen wir diese Attribute hinzufügen. Lassen Sie uns wieder einen Haltepunkt an seine Anfänge setzen, die Projekte, und sehen Sie es in Aktion. Das wird also Aktion drei sein. Also lassen Sie uns zu der Aktion drei navigieren. Fügen Sie ein Fragezeichen hinzu und vielleicht lassen Sie mich ABC aber X-Y-Z es 4-5-6, und drücken Sie Enter. Und hier sind wir. Wenn auf Aktionsbaum, lassen Sie uns einfach fortfahren. Unsere beiden Variablen p1 entspricht XYZ und B2, 4-5-6. Lasst uns einfach weitermachen. Und wie Sie sehen können, ja, ich kehre hier p zweimal P1 zurück. Also lass mich aufhören und es ändern, um es zu sein, um es wieder zu laufen. Der Unterschied zwischen diesen beiden Methoden besteht also darin, dass Sie hier explizit angeben, dass Sie String und ein int erwarten. Aber in diesem Fall ist es eine Art geriatrischer generischer Methoden , bei denen Sie nicht angeben, dass Sie eine Zeichenfolge eines int erwarten. Lassen Sie mich zurück zu Aktion drei, ABC123. Es ist nur weiter zurückgekehrt. Und hier sind wir. So funktioniert es. Was ist, wenn, lasst uns das brechen, richtig? Also Untätigkeit Baum, wir erwarten String und eine int-Liste bietet erste Ints und dichte Vielleicht String und sehen, was passieren wird. Also anstelle von a, B, C, werde ich 1-2-3 und Schritt auf Platz 123 wird gleich sein. Vielleicht DCG, Keton betreten. Und wie Sie sehen können, wenn nicht einmal die Erwärmung Brot Haltepunkt und Empfang des Fehlers, der Devalue DCG sagt, ist nicht das, was es scheint. Wir erwarten eine ganze Zahl auf dem Parameter zwei, aber wir stellen eine Zeichenfolge zur Verfügung. Also, aber wenn wir versuchen werden, dasselbe auf Aktion zu tun , um alle erreichten Aktionen zu beenden. Es wird gut funktionieren. Wie Sie sehen können, ist Parameter eins gleich 123 und B2 ist gleich V, C, G. Also hier gibt es zwei verschiedene Möglichkeiten, wie Sie Parameter aus der Abfrage lesen können. Welches du bevorzugst, liegt an dir. Grundsätzlich sind sie fast gleich, außer hier geben Sie explizit an, dass Sie string und int oder etwas anderes erwarten. Und das ist genetischer. In der nächsten Vorlesung werden wir unser Handeln wieder aufbauen. Und ich werde Ihnen zeigen, wie Sie Daten aus dem Formular abrufen können. 5. Formulardaten lesen und senden: Hallo. In diesem Video werden wir lernen, wie man Daten aus dem Forum abruft. Und bevor wir weitermachen, lassen Sie mich Ihnen die Bootsanmeldung vorstellen. Und der Postbote ist eine nette Anwendung, die Ihnen bei der Entwicklung Ihrer API helfen kann. Wir werden diese Anwendung von nun an verwenden. So gehen Sie einfach zu www.Postman.com Schrägstrich Downloads und Sie können es herunterladen. Ich glaube nicht, dass Sie sich registrieren müssen oder so. Installieren Sie es einfach und sobald Sie es haben, wird es ungefähr so aussehen. Im Grunde, lassen Sie mich schließen, ist im Grunde sehen Sie einen Willkommensbildschirm direkt hier. Vielleicht ein paar Tipps oder so etwas. Sie können es lesen, wenn Sie wollen. Aber alles, was Sie wissen müssen, ist, dass Dichtung an der Spitze, Sie können eine andere Schritte haben. Dann haben Sie diese Dropdown-Schaltfläche, wo Sie angeben können, welche emittiert Sie verwenden werden. Im Moment verwenden wir GetMethod. Sie können aber auch zwischen Booten, Löschen und so weiter wählen . Dann müssen Sie hier Ihre URL angeben. Dann hier auf Perimeter-Zeug, hier geben Sie Ihre Parameter an, wenn Sie die Abfrage verwenden möchten. Das ist im Grunde das, was wir in unserem letzten Video gemacht haben. Also hier ist Autorisierungs-Header Körper, und das ist, was wir heute tun werden. Wir werden Formulardaten verwenden. Sie können auch alle Daten zentrieren ist gut, wir werden dies in den nächsten Videos tun. Aber für jetzt bleiben wir bei den Formulardaten. Dies ist, was wir wieder in Visual Studio tun werden. Ich habe zwei Methoden zu Aktionen, und im Grunde sind sie fast identisch mit den Abfrageaktionen. So zum Beispiel, Aktion, wo wir Zugriff auf die Anfrage Punkt Abfrage und dann Bereitstellung des Schlüssels. Jetzt werden wir Anfragen Punkt Forum zugreifen und dann den Schlüssel zur Verfügung stellen. Das ist also der einzige Unterschied. Und bei den Aktionen fünf ist es wieder fast das gleiche wie Aktionsbaum, in dem wir angeben, dass wir string und int erwarten, und wir verwenden dieses Attribut aus der Abfrage. Nun, in diesem Fall werden wir verwenden, verwenden Sie ein anderes Attribut aus dem Formular. Macht Sinn, nicht wahr? Okay, also lass mich die Haltepunkte auf Metalle und Hitze auf Play setzen. Dadurch wird der Web-Browser trotzdem gestartet. Lassen Sie mich einfach diese URL kopieren. Dann gehen wir zum Postboten. Stellen Sie sicher, dass Sie die gewählt haben. Navigieren Sie dann zu der Aktion für und hier oben. Und hier müssen wir unsere Parameter zur Verfügung stellen. Also sollte Parameter eins String sein, ich glaube also lasst uns XYZ setzen. Und Parameter zwei muss Bedürfnisse sein. Also 789, zum Beispiel. Klicken Sie auf Sinn und wechseln Sie zurück zu Visual Studio und wir heizen den Haltepunkt. Also nichts Besonderes hier. Auch hier lesen wir die Parameter aus dem Forum durch Zugriff und greifen auf das Anforderungsobjekt-Punkt-Forum zu. Und b1 ist gleich XYZ und b2 ist 789. Hitze auf weiter und zurück auf dem Bozeman. Hier haben wir unsere Ergebnisse. Richtig? Lassen Sie mich einfach eine schnelle Diskette mit der Aktion fünf machen. Vielleicht ändere ich es in die BBC. Und diese beiden 1-2-3 sind auf zwei Eins-Zwei-Baum-Einwilligung durch Leitung beschränkt . Fünf auf Visual Studio, wieder nichts Besonderes, außer dass in diesem Fall lesen wir aus dem Forum-Attribut. In p1 ist gleich ABC, B2, A123, und wo es beide zurück an den Postmann. So können Sie die Informationen aus dem, aus dem Forum und nicht aus der Abfrage lesen . Wann die Abfrage zu verwenden und wann Forum verwendet werden soll. Nun, stellen Sie sich eine Situation vor, in der der Benutzer vielleicht einige sensible Daten, eine ID oder vielleicht ein Passwort angeben muss . Nun, in diesem Fall möchten Sie es nicht über den URI verfügbar machen, richtig? Das wirst du nicht, du hörst nicht auf Informationen, die versteckt werden. Also in diesem Fall werden Sie keine Abfrage verwenden. Nun, es ist eine verrückte Idee, dreckig zu benutzen. Sie müssen stattdessen für die Form gehen, die irgendwie versteckt ist, aus dem Eis versteckt. Ordnung, also wieder, diese Methoden, die im Grunde gibt es keinen großen Unterschied, außer dass wir hier verwenden, erstellen Sie wieder, Forum oder außer diesen Attributen aus der Abfrage, aus der Form. Und im nächsten Video werden wir sehen, wie man Daten aus Körper, Header und Cookies abruft . Wir sehen uns dort. 6. form: Hallo. In diesem Video-Tutorial wird eine weitere Aktion erstellen, Aktion, die Daten aus dem Körper liest. Also lassen Sie mich in anderen Aktionen Estrich, das wird Aktion sucht sein. Und wir fangen mit der Route an. Die Route wird also Schrägstrich Aktion sechs sein. Dies wird wieder sein, die Öffentlichkeit wird die asynchrone Methoden Task-Stream sein. Und wir geben ihm einen Namen. Aktion sucht. Und innerhalb dieser Methoden oder Aktion eher das erste, was Sie tun müssen, um Daten aus dem Körper abzurufen. Is erstellt oder bereitet etwas Wearable oder etwas vor, um die Daten darin zu speichern. Lassen Sie mich also beginnen, indem Sie ein Byte-Array erstellen. Das wird also das Byte-Array sein, und ich werde es einfach Byte-Array nennen. Und um ein neues Byte-Array zu erstellen, muss ich die Länge angeben oder entscheidet, wie groß a, wenig b und die Größe dieses Bytes sein sollte, die Größe des Inhalts, den wir erhalten werden. Und wir können diese Informationen von der Länge des Anforderungsinhalts erhalten. Und wir müssen diese Informationen auch in den int kosten. Und so bekommen Sie Ihre Akte. Sie können ein Byte-Array mit der Größe Ihrer Anforderungsinhaltslänge erstellen. Nun, da wir diese Byte-Array haben, können wir es mit den Informationen füllen. Oder tanzen. Ich muss auf die Anfragen zugreifen. Wieder. Nicht Body Dot lesen, mindestens wie async. Und diese Methode, werfen wir einen Blick auf den Konstruktor. Es wird, es erwartet einen Puffer von Dipol-Byte. Wir können auch den Stornierungshund zur Verfügung stellen, und im Grunde haben Sie drei verschiedene Möglichkeiten. Sie können den Puffer und dann die Offsets und die Anzahl angeben. Sie können die gleichen Dinge tun, aber auch das Sternbild. Dann können Sie die Pufferversatz-Kleider im Sternbild Dogen angeben. Und das sind die drei Optionen, die Sie dort gelesen haben. Meine Anfrage Punkt, Körper, Körperpunkte liest asynchron. Und diese Methoden, diese Methoden Gültigkeit und abrufen. Werfen wir einen Blick. Wenn wir einen Blick auf die Konstruktoren werfen. Konstruktoren, also haben wir drei verschiedene Optionen direkt dort. Und die, die wir benutzen werden, die zweite. Also werden wir ihnen binär und den Offset und die Gant zur Verfügung stellen. Und diese Informationen können wir aus dieser Batterie extrahieren. Aber das lesen asynchrone Methoden. Wie Sie sehen können, ist e3 speziell eine Sequenz von Bytes aus dem aktuellen Stream. Das bedeutet also, dass der Körper ein tatsächlicher S3 ist. Sie sollten sich also dessen bewusst sein und die Zeichenfolge innerhalb der Bitrate setzen. Oder Sie können Sie auch zum Stream-Leser bringen. Ich werde Ihnen in einer Minute zeigen, wie es geht. Machen wir es zuerst mit dem Byte-Array. Also lesen Sie async, und dann müssen wir die Binärdatei zur Verfügung stellen. Der zweite Parameter wird nur die 0 sein und der letzte, den sie zählen, wird eine Anforderungspunktinhaltslänge sein. Und wieder müssen wir es in den int werfen. Also würden Sie es an der Vorderseite hinzufügen. Jetzt seit drei ist async eine asynchrone Methode, deshalb ist unsere Aktion tatsächlich auch in asynchron eingebettet. Aber wir werden darauf warten müssen. Und dann müssen wir einfach etwas zurückgeben und irgendeine Art von Getränkefeststoffen kehren zurück. Systempunkt, Punkte und ruft die Schüsse. Und dann können Sie mit der DFA oder ASCII gehen. Ich werde beim ETF acht bleiben und dann String bekommen. Und dafür müssen wir die Bytes bereitstellen und Bites ist eigentlich unser Byte-Array. Und diese Gültigkeit oder eine String-Tasche. Jetzt also ein Weg, wie Sie es tun können. Eine andere Möglichkeit besteht darin, den Stream-Leser zu verwenden. Also lassen Sie mich Ihnen einfach schnell zeigen, dass dies wahrscheinlich von System.Out Eingang, Ausgabe, auch nicht gestreamt sein wird. Lassen Sie mich es einfach nennen Daten gleich neuen Stream-Leser. Hier drin. Ich muss die zur Verfügung stellen, so haben wir 11 verschiedene Optionen. Wir können einen Teil zur Verfügung stellen, wir können die eigentliche Zeichenfolge bereitstellen, und genau das werden wir tun. Da wir bereits wissen, dass ein Anforderungskörper ein tatsächlicher Stream ist, können wir diesen Objektanforderungskörper bereitstellen. Dies ist eine andere Möglichkeit, wie Sie Ihre Daten innerhalb des Datenstroms aus dem Anforderungstext erhalten können. Und dann, wenn Sie wollen, wollen Sie zurück zum Client, sagen Sie einfach zurück. Warten Sie führt zum Ende der asynchronen Daten. In dieser Gültigkeit auf der Schnur zurück, Ich werde diese Linie von Gott kommentieren. Und lassen Sie uns zuerst mit diesem Byte und sehen, was es tut. Also der Haltepunkt genau dort, nur um sicherzustellen, dass wir diese Aktion treffen werden. Klicken Sie auf „Play“. Richtig? Also jetzt unser BI-Sub-Genre, Englands Get to the Boltzmann und wir werden Aufruf zu dieser Aktion suchen. Dies wird also eine Get-Methode Aktion sechs sein. Und dann müssen wir auf den Körper wechseln, der Peak auf roh. Da wir gehen, um eine Rohdaten mit einigen Daten, einige Daten zu senden , und klicken Sie auf Senden. Wie Sie sehen können, in der Tat Beachtung der Haltepunkte, wenn wir fortfahren. Und wir werden sehen, dass es während der Ergebnisse zurück in unserem Postboten. Dies ist also eine Möglichkeit, wie Sie Daten aus dem Körper abrufen können. Wieder, das ist die Stange. Sei nicht verwirrt. Es ist keine Art von Forumsdaten. Oder lassen Sie mich Ihnen jetzt eine andere Möglichkeit zeigen, wie Sie Daten aus dem Körper abrufen können. Denn im Moment war dies ein Beispiel für die Rolle, Rolle nur in einem einfachen Text. Es ist also nicht JSON, nicht XML, dh nur Rohdaten. Und so können Sie es abrufen, obwohl Sie die Bitrate verwenden oder diesen Stream-Leser auch verwenden können, ist in Ordnung. Und lassen Sie mich Ihnen eine andere Möglichkeit zeigen, wie Sie Daten aus dem Körper abrufen können. Und das wird spannender, besserer Weg, es zu tun. Und aus diesen Gründen müssen wir ein Modal erstellen. Wir werden einfach Objekte aus dem Bozeman senden, zum Beispiel würde in JSON-Formaten an unsere API und dann Gadgets Kosten Fälligkeitsdatum Objekt mit dem Modell in. Rufen Sie es zurück an den Benutzer. Lassen Sie mich also eine andere Aktion erstellen. Und ich werde mit der Route beginnen. Und es gibt diese werden Schrägstriche Aktionen sieben sein. Dies wird eine öffentliche Zeichenfolge sein. Aktion Sieben. In als Parameter möchte ich ein anderes Attribut bereitstellen, das vom Körper stammt. Von body-Attribut. Und hier muss ich den Typ eines Objekts angeben, das ich haben möchte. Und wir haben dieses Objekt momentan nicht. Wir werden es in einer Minute schaffen. Aber nehmen wir an, dass wir einige Objekte Art von Benutzer haben. Und lassen Sie uns einfach einen Namen geben. Ich werde es nur Objekt behalten. In Ordnung, also zuerst, was wir tun wollen, lassen Sie uns dieses Objekt erstellen, dieses Modell, und aus diesen Gründen werde ich einen anderen Ordner für unsere Projekte erstellen. Also mit der rechten Maustaste darauf geklickt, fügt einen neuen Ordner hinzu und ich werde es Modelle nennen. Und innerhalb dieses Ordners werde ich eine andere nur reguläre Klausel erstellen. Und ich werde es Benutzer nennen. Dies ist also das Benutzermodell. Und das wird ganz einfach sein. Erstens, wir werden nur zwei Eigenschaften Typ der Zeichenfolge haben und wir sind der Vorname und ein weiterer Stream mit dem Nachnamen. Das ist also unser Modell. Lassen Sie uns es speichern und schließen Sie es schlecht zurück auf unsere Aktion und wir müssen die using-Anweisungen hinzufügen. Also gehen Sie voran und fügen Sie es Punktmodelle hinzu. Und jetzt, wenn diese Aktionen dieses Attribut, Attribut genannt werden, werden wir die Daten aus dem Körper suchen und versucht, Gosset innerhalb dieser Benutzerobjekte. So können wir die Informationen dieses Objekts zurück an den Client zurückgeben, indem wir sagen, zum Beispiel, Rückkehr und dann Vorname. Es wird Objekt dot first_name sein. Und dann wird der Nachname Objekte nicht verloren Namen sein. Okay, wir werden den Vornamen und den Nachnamen dieses Objekts an unseren Klienten zurückgeben . Lassen Sie mich noch einmal einen Haltepunkt auf diese Aktionen setzen. Sieben, klicken Sie auf Play, und gehen wir zurück zu den Postboten. Unser API-Headlock, der gestartet hat, ist zurück zur Postboten Rede zum Handeln von sucht zu Aktion sieben. Dies wird immer noch eine Get-Methode sein. Auf dem Körper, wird immer noch eine Rohdaten senden wollen. Aber hier müssen wir von b6 jason wechseln , weil wir ein JSON-Formular Daten zur Verfügung stellen werden. Und die Daten, die ich bereitstellen werde, sind nur eine einfache JSON-Objekte. Aber machen Sie Parameter. Vorname entspricht Personen, Personenname und Nachname mit einem Wert dieser Informationen und sehen, was passiert. In der Tat heizen wir die Breakpoint-Aktion sieben auf. Wenn wir uns diese Objekte direkt hier ansehen und sie untersuchen, können Sie sehen, dass diese beiden Parameter, der FirstName, Nachname, gefüllt werden und der Wert zugewiesen wird. Also gehen wir einfach wieder auf den Postboten zurück. Wir sehen unsere Ergebnisse. Und dies ist eine andere Möglichkeit, wie Sie Daten aus dem Körper abrufen können , indem Sie Ihr Modell in diesem Attribut aus dem Körper verwenden. Das war's also für die Leiche. Wir werden unsere Modelle in unseren Controllern weiter ausbauen. Und im nächsten Abschnitt werden wir einen Blick auf die Header und Cookies CLR werfen. 7. Kopf-und Kekse: Also habe ich eine neue Aktionen vorbereitet, Aktionen, Aktion Nummer acht und Nummer neun, um Ihnen zu zeigen, wie Cookies aus der Anfrage zu lesen. Und wie man die Header liest. Im Grunde ist das Gleiche. Sie müssen auf Anfrage Punkt-Cookies zugreifen und dann den Schlüssel zur Verfügung stellen. In meinem Fall wird Großmutter Cookie Schlüssel sein. Und im Grunde gilt das gleiche für die Header, Anfrage Header, und stellen Sie einen Schlüssel bereit, in meinem Fall wird Benutzer-ID oder so etwas sein. Und schließlich werde ich beide zurückgeben. Also lasst uns einen Haltepunkt setzen, startet die Anwendung und zurück zum Boltzmann. Jetzt haben wir, was haben wir hier, jede Aktion acht. Lassen Sie uns also die Header zur Verfügung stellen. Erster. Im Grunde erhält der gleiche Dean Parameter oder etwas anderes. Geld muss einen Schlüssel erstellen. Und meine Vermutung wird für LED und dann etwas Wert verwendet. So erstellen Sie eine Kopfzeileninformation. Und für den Cookie müssen Sie auf die Cookies auf der rechten Seite klicken. Zuerst müssen Sie eine Domäne und lokale Hosts erstellen. Klicken Sie in unserem Fall auf Hinzufügen. Auf diese Weise können Sie ein neues Cookie erstellen. Beim Cookie. Und hier müssen wir einen Cookie-Namen angeben. Mein Blick wird Großmutter-Plätzchen sein. Und der Wert wird einige, einige Schlüsselwert sein. Jetzt können Cookies kompliziert sein. Es kann eine Menge Dinge, die abgelaufene Datum und Dinge wie das tun. Aber jetzt bleiben wir bei dem einfachen Wert im Namen. Klicken Sie auf Safe. Jetzt können wir es schließen. Also an dieser Stelle haben wir ein Cookie in einem Parameter in den Headern. Klicken wir auf die Zustimmung. Arbeitet. Zurück zu Visual Studio heizen die Breakpoint-Aktion acht. Lasst uns einfach weitermachen. Und werfen wir einen Blick auf unseren Cookie, der jetzt ist, ich weiß, warum es passiert. Ich werde Ihnen sofort zeigen, wie Sie es beheben können. Aber Heather sollte definieren und wie Sie sehen können, ist der Header-Wert genau hier, Header-Wert 123. Und dann schließlich, beide zurückgeben. Jetzt zurück auf den Mann und in einem Körper, sollten wir sehen, dass wir im Moment keinen Cookie haben, aber wir haben Informationen aus dem Header. Nun, um den Keks zu reparieren, ich glaube, ich habe einen Fehler gemacht. Genau hier, lokaler Gastgeber. Also, um das zu beheben. Problem. Lassen Sie mich zuerst die API erneut starten. Manchmal passiert das mit dem Postboten. Geh zurück zu den Keksen. Und lassen Sie mich einfach löschen all diese Domain und erstellen Sie eine neue, lokale Löcher, manchmal tun Sie tippen oder hier. Sie können auch die IP-Adresse angeben. Lokale IP-Adresse. Bei der Erstellung neuer Cookie wird der Großmutter Cookie-Wert sein. Sagen wir, abc, spielt keine Rolle. Lass es uns speichern und ihm eine Sekunde geben, um zu sinken. Und jetzt versuchen wir es noch einmal. Seien Sie Einwilligung. Und wie Sie sehen können, unsere Cookies ABC. Und der Header-Header funktioniert normalerweise gut, Header-Werte 123. Und schließlich werden wir diese Daten an den Postboten zurückgeben. Also hat er das gelesen. Wieder, wie Sie Daten aus dem Cookie in den Headern lesen können. Ziemlich ähnliches Zeug. Und schließlich ist die Aktion neun, wie man ein neues Cookie oder diesen Header erstellt. Also, um ein neues Cookie zu erstellen, müssen Sie eine Antwort Punkt Cookies zugreifen und anhängen. Um append verwenden zu wollen. Dann geben Sie den Cookie-Namen an, gefolgt von einem Wert. In hier hat ein Wert Geschütze geben einige andere Cookie-Optionen. Aber wenn es etwas ist, dass Microsoft ich mit.NET Core HTTP-Cookie-Optionen aufgeteilt , Dies wird Ihnen helfen. Auf diese Weise erstellen Sie in Ihren neuen Cookie-Optionen, wenn Sie sie benötigen. Lassen Sie es uns vorerst einfach halten. Und für die Header, wieder, nichts Besonderes. Sie müssen Antwortpunkt-Header, Punkt-Anzeigen tun, und dann erstellen Sie Ihre Kopfzeilenbreite gegen einen Wert E zwei ist, und in diesem Fall müssen wir etwas zurückgeben. Deshalb gebe ich nur die leere Zeichenfolge zurück. Und ja, lassen Sie uns einen Haltepunkt setzen. Starten Sie den Webbrowser. Und diese Aktionslinie in beiden Mom. Klicken wir auf „Senden“. Und jetzt heizen wir die Haltepunkt-Aktionslinie. Lasst uns weitermachen. Wir erstellen jedes Cookie, Großvater Cookie und fügen einen neuen Header hinzu. Gibt eine leere Zeichenfolge zurück. Und gehen wir zurück zu den Keksen. Und wie Sie sehen können, hatten wir Großmutter Cookie jetzt Großvater Cookie mit etwas Wert in sie haben. Und in Headern haben wir hier eine Anmeldeinformationen mit einem Wert darin. Also lassen Sie uns zusammenfassen, dass Mr. es aufhört. Also haben wir ein paar verschiedene Aktionen. Wie man Stream aus dem Körper erhält, wie man benutzerdefinierte Objekte abruft, die es in das JSON-Format serialisiert. Aktion acht 0s, wie Cookies oder Header zu lesen. Und Aktion neun ist, wie man einen neuen Cookie anfügt oder etwas zu den Headern hinzufügt. Ordnung, also im nächsten Video werden wir einen neuen Controller erstellen. 8. Datenbank: Hallo. Bevor wir mit unseren Controllern fortfahren, müssen wir eine Art von Daten erstellen, Daten generieren, mit denen wir arbeiten können. Wir brauchen einige Daten, um hin und her zu übergeben. Also, was ich getan habe, habe ich eine einfache SQL Lite-Datenbank erstellt, die ich bereits zum Wurzel meines Projekts hinzugefügt habe. Diese Datenbank und alle endgültigen Version dieses Projekts, wird es als Ressource zu dieser Vorlesung angehängt werden. Also lassen Sie mich Ihnen einfach zeigen, was diese Datenbank eine Entitätsbeziehung hier gebunden ist. Also haben wir im Grunde drei Tabellen darin. Der Tabellenbenutzer, der die ID, den Vornamen, den Nachnamen und den Bereich enthält . Bestellen Sie mit einer ID oder der Nummer und dem Titel. Und schließlich die Artikeltabelle mit einem ID-Beschreibungspreis in Bestell-ID. Und das ist eins zu viele Beziehung. So sehr einfach. Datenbank, nichts Ausgefallenes. Lassen Sie mich Ihnen schnell die tatsächlichen Daten zeigen. Wenn wir für die Benutzertabelle gehen, haben wir drei verschiedene Benutzerbedürfnisse. Ich, Julia Roberts und Omalu. In der Reihenfolge Tabelle werden zwei verschiedene Aufträge haben. Und schließlich, Artikel, haben wir mehrere Artikel in ihren Zuweisungen zu einigen der Bestellungen. Also, wie ich schon sagte, nichts Schickes. Gehen wir zurück zum Visual Studio. Also habe ich bereits MySQL Lite Datenbank zum Wurzel meiner Projekte hinzugefügt. Und das erste, was ich tun möchte, ist, das neue Get-Paket herunterzuladen, das mir hilft, mit dieser Datenbank zu kommunizieren. Und es gibt viele verschiedene Pakete, die Sie für diesen Zweck verwenden können. Aber die, die ich mag, ist SQLite Dashnets, bcl, vj kommt aus tatsächlich dem Monolog und Zusammenfassung in Anwendungen. Im Grunde wird die mobile Entwicklung dieses Pakets in unserem Beispiel gut funktionieren. Also werde ich dieses Paket installieren, wenn Sie ein anderes bevorzugen, Sie können ein anderes installieren. Vielleicht machst du interdependent Welt entsprechende Lead-Athleten komplett bis zu dir. Ich möchte mich nicht sehr darauf konzentrieren, da es sich bei diesem Kurs um API handelt. Es ist eine andere Balldatenbank, richtig? Also, jetzt haben wir unser Paket hinzugefügt, so haben wir unsere Datenbank und als erstes, was wir tun wollen, ist, einen neuen Ordner an einem neuen Ordner in der Projektstruktur zu erstellen . Und nennen wir es, dass die Zugriffsebene. Dies wird also eine Art Schicht sein, die mit der Datenbank kommuniziert. Und innerhalb dieses Ordners werden wir einfach eine neue Klasse erstellen. Und das wird sein, lassen Sie uns seine Datenbank-Datenbankdienste nennen. Okay, das wird natürlich der öffentliche Verlust sein. Und genau hier, lassen Sie uns die erste Aktion erstellen, die öffentlich, statisch sein wird. Diese Aktion wird schließlich die Benutzerobjekte zurückgeben und nennen wir es GetUser. Und um einen Benutzer in der Datenbank zu finden, werden wir diese ID zur Verfügung stellen. Also lasst uns diese Bindung bereitstellen. Und genau hier werden wir, bevor wir fortfahren, eigentlich braucht auch die Verbindungszeichenfolgen. Also lassen Sie uns das von Anfang an erstellen. Privat gegen statisch. Dies wird String sein und lassen Sie uns seine Sammlung nennen. Saite Und da meine Datenbank im Wurzel meines Projekts ist, werde ich darauf zugreifen, indem ich zu Fledermäusen gehe, kombiniere, und dann werde ich auf die Verzeichnisklasse zugreifen und das aktuelle Verzeichnis abrufen. Und schließlich muss ich den Namen des tatsächlichen Dateispeichers DB Punkte SQLite angeben. Ordnung, das ist also die Verbindungszeichenfolge. Zurück zu den Methoden. Lassen Sie uns die using-Anweisungen verwenden und erstellt die Verbindung. Dies wird also SQLite-Verbindung sein. Nennen wir es Kong ist eine neue Verbindung. Und genau hier müssen wir eine Verbindungszeichenfolge bereitstellen. Lassen Sie uns also die Verbindungszeichenfolge bereitstellen. Und schließlich werden wir einfach Verbindungspunkte zurückgeben. Sie möchten auf die Benutzertabelle zugreifen. Und wir werden den Lambda-Ausdruck verwenden, um die tatsächlichen Daten zu finden. Also lassen Sie uns Sie von Benutzer gleich zwei etablieren, oder? Wir haben keine AD. Jetzt kommen wir zurück zum Model. Das Benutzermodell. Wie Sie sich in unserer Datenbank erinnern können, hat der Benutzer entweder ID, Nachname, Vorname, Nachname im Bereich. Also haben wir es jetzt nicht in unserem Modell. Also lassen Sie uns hinzufügen, hinzugefügt. Beginnen wir mit einer ID, Vorname und Nachname, die wir bereits haben. Und schließlich werden wir auch den Geltungsbereich brauchen. Ordnung? Wir sollten diese Parameter auch mit zusätzlichen SQL-Lead-Attributen dekorieren, nicht mit API-Attributen, nicht verwirrt sein. Dies sind SQL-Datenattribute. Und ID wird der Primärschlüssel sein, ist auch automatisch inkrementiert, oder? Also haben wir den Vor- und Nachnamen. Sie sollten die maximale Länge haben und lassen Sie uns es vielleicht zu 250, was ziemlich viel ist, aber das Spiel. Beide werden also die maximale Fastenzeit haben. Und schließlich wird der Umfang etwa 50 haben. Nun, im Moment haben wir unser Modell bereit. Kommen wir zurück zu den Datenbankdiensten. Und wieder hier können wir jetzt auf seine ID zugreifen und einfach die Methode gleich aufrufen, in der die eigentliche Amy zur Verfügung stellt. Und schließlich wollen wir zurückkehren. Standardwert für die erste Bestellung. Okay, also lasst uns zusammenfassen. Genau hier bekommen wir eine Verbindung zur Datenbank. Wir greifen auf die Benutzertabelle macht die, wir verwenden den Lambda-Ausdruck, um die Objekte jeder ID gleich zwei zur Verfügung gestellten idzu finden jeder ID gleich zwei zur Verfügung gestellten id , und schließlich werden wir die ersten oder Standard von seinem Ende wählen, einfach das gesamte Objekt zurück. Und so wird diese Klasse, diese Datenbankdienstklasse, diese Art von Methoden enthalten. Auch hier geht es in diesem Kurs nicht um Datenbanken, über API, also werde ich einfach den Paste Organismus hier kopieren und wir werden sie schnell anschauen. Okay, also habe ich schon Meter hier. Lassen Sie uns schnell einen Blick werfen. Wieder. Vergessen Sie nicht noch einmal, laden Sie dieses Glas einfach im ganzen Projekt herunter. Also haben wir Benutzer bekommen. Wir haben auch eine andere Methode, die die mehrere Benutzer zurückgibt, im Grunde die ganze Tabelle aus der Datenbank. So können Sie es tun, den Zugriff, die Verwendung der Tabelle und dann wird dies auf dem ganzen Tisch sein. Und die nächste Methode, diese fügen Benutzer hinzu, der die tatsächlichen Objekte erfordert. Dadurch wird die Verbindung zur Datenbank hergestellt und versucht, das Objekt einzufügen. Wenn eine Zeile betroffen ist, wird sie true zurückgegeben. Wenn nichts davon betroffen ist, wird false zurückgegeben. Und im Falle einer Ausnahme es bis wieder falsch zurückgeben. Und schließlich wird die letzte Methode die Updates sein. Auch diese Methode erhalten Sie die Benutzerobjekte-Verbindung mit der Datenbank, die Update-Methoden genannt wird. Und wieder werden betroffene Rollen, falls vorhanden, true zurückgeben, wenn nichts, wird false zurückgegeben und im Falle einer Ausnahme wird false zurückgegeben. Und schließlich die löschen-Methode, die eine Verbindung mit der Datenbank herstellen und löschen, um Objekte zu löschen. Betroffene Würfe geben true zurück, wenn irgendwelche betroffen sind, wenn nichts betroffen ist, Gültigkeit und falsch und Ausnahme falsch. Ordnung, also haben wir jetzt in unserer Datenbank Dienste, die nur wenige verschiedene Methoden haben. Auch hier erweitert vivo diese Klasse weiter. Grundsätzlich müssen wir erstellen oder Methoden für jede Tabelle. Also haben wir noch die oder die Tabelle zu arbeiten, und wir haben auch Item-Tabelle. Diese Aktionen müssen also das gut schaffen, aber im Moment haben wir alles für die Benutzer, damit wir fortfahren können. Okay, der nächste Denker, den Sie machen möchten, sind unsere Modelle. Moment haben wir nur ein Objekt darin, der Benutzer, der die Benutzertabellenkarte dort darstellt, hat auch seine Reihenfolge. Lassen Sie uns also eine andere Klasse für die geordnete Tabelle erstellen. Rufen wir die Reihenfolge an. Und schließlich haben wir auch den Artikel. Also lasst uns ein anderes erstellen und es Item nennen. Und für jetzt werden wir diese beiden Gläser einfach leer lassen. Suchen Sie sie auf dem Fluss. Moment haben wir das Benutzermodell bereit, damit wir damit arbeiten können. Wieder in Datenbankdiensten haben wir alles bereit für den Benutzer. Und in der nächsten Vorlesung werden wir unseren ersten Controller erstellen, den Controller und geben zurück und erhalten Daten aus der Datenbank und aktualisieren Daten und so weiter. Wir sehen uns dort. 9. User: Also, im letzten Video haben wir alles aus der Datenbank erstellt und vorbereitet. Wir haben einfach einen weiteren Mr. die Wurzel des Projektordners hinzugefügt und lassen Sie mich Pakete erstellen basierte Dienste, die mit der Datenbank kommunizieren und unsere Modelle erweitert. Also im Moment haben wir das Benutzerobjekt, das vollständig RAD ist. Und die anderen beiden, sie sind noch nicht bereit. Aber das ist genug, um zu schaffen. Unser erster Controller. In unserem ersten Controller wird die Benutzersteuerung sein, die in dieser Klasse den User Gloss und DB-Dienste nutzen wird . Um den Indexcontroller zu erstellen, klicken Sie mit der rechten Maustaste auf den Controller-Ordner, klicken Sie auf Anzeigen, wählen Sie den Controller aus. Wählen Sie die leere API, Coupon-Anzeigen, und wir werden es nennen, nennen wir es Benutzer. Benutzer controller.js. Und das wird den tatsächlichen Controller erstellen. Genau hier haben wir unsere Routenbasis, URI, URL. Und lassen Sie uns unsere ersten Metalle herstellen. Und die erste Methode, die wir einfach den Benutzer aus der Datenbank bekommen. Es wird also sein, da wir wissen, dass dies die get-Methode sein wird, können wir bereits mit der Deklaration dieser Methoden beginnen, HTTP GET-Attribute. Hier drin. Wir können den Teil des URI zur Verfügung stellen, der Benutzer Schrägstrich gefolgt von id bekommen wird. Es wird natürlich öffentlich sein, weil wir es aufdecken wollen. Und der Rückgabetyp wird etwas Besonderes sein wird. Ich habe tatsächlich Ergebnisse. diesem Rückgabetyp können Sie nicht nur einfache Daten oder einfache Datentypen, sondern auch komplexe Datentypen zusammen mit diesem Statuscode zurückgeben . So werden Sie eine Aktion sehen. Lass uns einfach weitermachen. Lassen Sie uns diese Methode aufrufen Benutzer. Und um Benutzer in der Datenbank zu finden, müssen wir diese ID angeben. Also lassen Sie es uns als Parameter direkt hier übergeben. Und um den Benutzer aus der Datenbank zu bekommen, können wir auf die Dienste zugreifen. Stellen Sie sicher, dass Sie die using-Anweisung direkt dort haben. In meinem Fall ist es Datenzugriffsschicht. Und wir werden einfach get user Methoden aufrufen und seine ID angeben. Dies wird also das tatsächliche Benutzerobjekt zurückgeben. Also lassen Sie es in eine Variable setzen, nennen wir es Benutzer. Und als nächstes, was ich tun will, weevil, machen Sie eine Validierung, indem Sie die if-Anweisung verwenden. Und sagen wir, Benutzer ist gleich null. Es ist also nichts drin. Wir konnten keine Objekte finden. Wir werden einfach den NOT_FOUND Status zurückgeben oder sie sind nicht falsch. Ordnung, also ändert dieser Wähler den Schriftartenstatus. Und wenn das eigentliche Objekt gefunden wurde, wir wieder, Ich zurück oder Homosexuell Status zusammen mit dem tatsächlichen Objekt. Euser. Return Deb, Aktion Ergebnis ermöglicht es Ihnen, den Status namens Ricci zurückgeben wird, zum Beispiel, in diesem Fall 200. Das bedeutet, okay, zusammen mit dem tatsächlichen Benutzer wird bereitgestellt, serialisieren Sie es und stellen Sie es dem Client im JSON-Format zur Verfügung. Also, bevor wir weitermachen, lasst uns, da ist diese Aktion. Lassen Sie uns die API starten und zurück zum Boltzmann. Lassen Sie uns eine neue Registerkarte erstellen und stellen Sie sicher, dass Sie mit der.get-Methode aufrufen und den richtigen URI bereitstellen , der der gute Benutzer sein wird, gefolgt von id und einfach gesendet. Und wie Sie sehen können, wo eine Drehung sie ihre Antwort haben, dass tatsächliche Objekte, seine ID Nummer eins, Vorname, Nachname, und der Bereich im JSON-Format. Okay, also das, diese Aktion verzieht sich. Lassen Sie uns einfach mit den nächsten Aktionen fortfahren. Weil wir in unseren DB-Diensten haben, dass der Get-Benutzer derjenige tut, den wir gerade verwendet haben. Und der nächste ist die Verwendung von Git-Benutzern. Also wieder, dies wird Zeuge Aktionen sein. Also wieder, dekoriert mit HTTP, GET und etablieren Sie die URL, die gut sein wird. Und holen Sie sich Benutzer. Wir müssen keine ID angeben. Und die eigentlichen Methoden werden natürlich öffentlich sein. Wieder, ich Aktion Ergebnisse. Und nennen wir diese Methoden bekommen Benutzer. Und das ist einfach zurückkehren. Lassen Sie uns einfach den Status zurückgeben könnte, dass die Abfalldienste Punkte Benutzer bekommen. Also diese Gültigkeit auf die alten Benutzer aus der Datenbank. Alles klar, lassen Sie uns einfach weiter mit dem Willen nicht das ist jetzt. Es gibt nur die Umschlag-Schreibtische, alle auf einmal. Die nächste Aktion, die wir verwenden möchten, der Benutzer hinzufügen. Das wird also nicht mehr zugelassen und das wird HTTP-Post sein. Und wieder, genau hier können wir den Teil der URL etablieren. Nennen wir es. Bei Benutzer wird die Familie sein. Ich habe tatsächlich Ergebnis. Wieder. Lassen Sie uns diese Aktion auf Benutzer aufrufen. Und um Benutzer vom Client zu bekommen wird es aus dem Körper selbst und der Art der Benutzer zu bekommen. Und nennen wir es einfach Benutzer. Genau hier werden wir die if-Anweisungen verwenden, und wir werden diese Achse sehen, die die Basisdienste beim Benutzer in genau hier behandelt werden. Wir müssen das eigentliche Objekt zur Verfügung stellen, oder? Dies wird also hinzufügen, dann widersprechen Sie der Datenbank und geben true zurück, wenn alles in Ordnung war. Also, wenn alles in Ordnung ist, werden wir einfach zurückkehren, okay? Und bietet eine Art von Nachricht kann, sagen wir, Benutzer, Benutzer Vorname als hinzugefügt werden. Und wenn Benutzer nicht zur Datenbank hinzugefügt werden, verwenden if else Anweisungen. Und wir werden einfach schlechte Anfrage zurückgeben. Also ist etwas schief gelaufen. In Ordnung, also wird die nächste Aktion Aktualisierungsbenutzer sein. Also lassen Sie uns eine weitere Prahlaktion erstellen. Und das wird sein, sie werden aktualisiert Benutzer werden. Auch hier bewirkt ich tatsächlich, dass die Methode selbst Benutzer aktualisiert. Und wir werden diesen Benutzer vom Kumpel von den Körperanalysten machen bekommen. Hier, lassen Sie uns einige Validierung machen. Nehmen wir an, 0V Benutzer ist ID, ist, wenn es nicht während es ist, lassen Sie uns sehen, ob es kleiner als eins ist, was 0 ist. Was nicht wahr sein kann, werden wir einfach schlechte Anfragen zurückgeben. Und als nächstes werden wir die try-catch-Aussagen verwenden. Und versuchen wir, den Benutzer zu aktualisieren. Verkauft. Um dies zu tun, müssen wir in Datenbankdiensten zugreifen, Erwachsene aktualisieren Benutzer und stellt das eigentliche Objekt, das Benutzer ist. Und wenn alles gut funktioniert, werden wir einfach wieder zurückkehren, okay, Status zusammen mit einer Nachricht. Nehmen wir an, Benutzer Vorname. Ja, schlank, aktualisiert. Alles klar, und wenn irgendetwas schief geht mit dem Modell oder so, können wir auch etwas anderes zurückgeben. Zum Beispiel bedeutet Rückgabe Status Gerichte. Und lassen Sie uns 500s bereitstellen, was internen Serverfehler bedeutet. Also hier in diesem Beispiel haben wir wieder eine schlechte Anfrage, wenn die ID nicht Wallet ist. Und wenn alles gut läuft, werden wir einfach in Ordnung zurückkehren, zusammen mit einer Nachricht. Und wenn eine Ausnahme, werden wir einen Status namens 500th zurückgeben, was internen Serverfehler bedeutet. In Ordnung, also haben wir unsere 834 Methoden hier und die nächste und letzte wird den Benutzer aus der Datenbank löschen. Also wieder, dies wird die Post-Aktion sein. Also lassen Sie uns mit HTTP-Posts dekorieren. Genau hier können wir die URL löschen Benutzer etablieren. Und um Benutzer zu löschen, lassen Sie uns sehen, was wir brauchen. Wir brauchen ein wirkliches Objekt. Eigentlich ändert sich wieder die ID. Okay, lassen Sie es uns überspringen. Sie WA, und Methode selbst wird sein und dies wird veröffentlicht werden. Ich resultiere tatsächlich löschen Benutzer. Genau hier. Wir müssen unser sagen, dass wir diese Benutzer von der Körperart der Benutzer einfach im Grunde das gleiche tun lassen. Also lassen Sie mich einfach kopieren und einfügen. Und sagen wir, wenn Benutzer-ID nicht volatil ist, dass es eine schlechte Anfrage geworden ist. Genau hier wollen wir die Lead-Benutzermethoden nutzen und den Status zurückgeben, okay, wenn der Benutzer gelöscht wurde und wenn etwas schief geht, wird einfach den Status 500 zurückgeben, was einen internen Fehler bedeutet. Richtig? Also sind wir noch nicht fertig mit unseren Aktionen. Schlitze, weniger Schreibtisch. Einige von ihnen waren schon tot. Eigentlich Nummer eins, holen Sie Benutzer. Also lasst uns versuchen, Benutzer zu bekommen. Sehen Sie, ob wir alle Benutzer aus der Datenbank, aus der Tabelle des Benutzers, erhalten Sie zum Postboten, um die Aktion get users zu testen. Das wird also gut sein. Die Nutzer haben ihre Zustimmung erteilt. Und wie Sie sehen können, wo es eine Liste gibt, von denen drei verschiedene Objekte enthält. Sie stammen aus der Datenbank im JSON-Format. Okay, nächste Aktion zum Schreibtisch. Benutzer. Dafür müssen wir eigentlich das Benutzerobjekt zur Verfügung stellen. So wird dies ein get, aber eine prahlende Aktion am Benutzer sein. Und genau hier auf dem Körper, sauer zeichnen und stellt die Objekte im JSON-Format bereit. Also im Moment habe ich keine ID, weil ID von der Datenbank generiert wurde, aber der Vorname, Nachname und der Bereich, den ich hier schreibe. Stellen Sie auch sicher, dass Sie, aber das JSON-Format haben . In Ordnung, lasst uns auf Sinn klicken. Und dies wird Getränke-Benutzer Testbenutzer abrufen wurde hinzugefügt. Werfen wir einen Blick auf das ist wirklich wahr. Aktualisieren, und da gehst du. Kann unser Objekt in unserer Datenbank haben. Die nächste Aktion ist also das Update. Und wieder müssen wir das Benutzerobjekt bereitstellen, um Körperaktualisierungsbenutzer zu verformen. Also gehen wir zurück zum Boltzmann. Lassen Sie uns Update-Benutzer aufrufen, und aktualisieren Sie den gleichen Benutzer. Und lasst uns einfach die Blätter ändern, die auf ein einziges, klares Einverständnis abzielen. Und der Grund, warum wir eine schlechte Anfrage bekommen, ist, weil wir kein AD haben, also müssen wir nationale ID angeben. Und ich glaube, die ID oder das Subjekt Dezember Frau. Also lasst uns auf Senden klicken. Und wie Sie sehen können, wurde der Benutzer auf den Bereich A1 aktualisiert. Werfen wir einen Blick, ob das stimmt. Und diese Kopie wurde aktualisiert. Und die letzte Unglaube, letzte Aktion, die wir testen müssen, ist der Elite-Benutzer. Und dazu müssen wir wieder das Benutzerobjekt zur Verfügung stellen. Also lasst uns zurück zum Postboten und einfach zu den gleichen Objekten. Lassen Sie uns löschen Benutzer aufrufen. Klicken Sie auf Sinn. Und ich glaube, ich habe eine Schnur. Falsch, Rückgabetyp. Lassen Sie mich einfach nachsehen. Ja, das ist es. Es heißt aktualisiert, dies sollte gelöscht werden. Und jetzt stellen wir sicher, dass das wirklich wahr ist. Und der Benutzer ist von der Tabelle weg. Richtig? Also funktionieren alle unsere Handlungen tatsächlich. Nun ist das letzte, was Sie wissen sollten, dass es einen Produkt-Antwort-Typ gibt. Lassen Sie mich Ihnen ein Beispiel für einen Produkt-Antwort-Typ geben. Es ist eine tatsächliche Attribute, die Sie Rate über Ihrer Methode deklarieren können. Und um dies zu tun, sollten Sie einfach produzieren Antworttyp nennen. Und das wird ein Argument nehmen, das Status genannt Statusgerichte ist. Und genau hier hast du viele Ziele. Wie Sie sehen können, gibt es viele von ihnen. Es hängt also davon ab, welche Sie brauchen. Wenn Sie zum Beispiel mit dem Aki zu tun haben, sollten Sie es deklarieren. Statusstatus 200. Ok. Da dies derjenige ist, den wir hier verwenden, verwenden wir auch nicht gefunden. Also sollten wir auch diesen Spaß erklären. Also lasst uns das für alle für Naught Font tun. Und warum würdest du das benutzen? Produzieren Sie Antwort-Typ von, na ja, sie sind tatsächlich notwendig für einige andere Werkzeuge wie Swagger. Wenn Sie böse waren, die Verwendung von Türen, um Ihre API am besten zu machen oder die Empfehlung zu machen, werden diese Attribute Ihnen viel helfen. Sie sind also nicht erforderlich, aber es ist immer gut, sie zu haben. Und wieder, welche Sie über Ihre Aktionen setzen sollten hängt von den tatsächlichen Anweisungen ab. So im Moment haben wir nicht gefunden, und das ist, warum wir beide Preise hier haben. Werfen wir einen Blick auf vielleicht aktualisieren, wo wir auch Status Gerichte Feuerwehrmann haben. Also haben wir tatsächlich zwei Hunderte, was genau hier ist, und sie haben auch schlechte Wünsche. Also wieder spezifiziert, dass man auch. 400, aber schlechte Anfrage. Und wir haben auch einen 500 internen Serverfehler. Also gibt es drei, die wir hier benutzen. Also wieder, das hängt davon ab. Was machst du hier großartig? Sie müssen in beiden Ihrer Aktion entsprechende Attribute hinzufügen. Sie sind nicht erforderlich, aber sie werden Ihnen mit der Destin Sie sind API in Empfehlung helfen. Ich glaube, dass dieselben Attribute auch für die Löschmethoden gelten können. Wir haben 500's OK, und schlechte Bitte. Und schließlich haben wir einen Glauben an den Benutzer. In diesen, in diesem Fall, müssen wir sie zu Hunderten und schlechten Anfragen anbieten. Und schließlich erhalten sie User Action. Genau hier haben wir, wir verwenden sind sehr tödlichen Status auf eine 100. Okay? So können wir hinzufügen, produzieren Antworttyp mit dem Statuscode 200 Spiel, da dies die einzige ist, die wir zurückkehren. Auch wenn Sie etwas anderes haben, wenn Sie die Daten gelesen oder Ihr Modell überprüft haben, möchten Sie wahrscheinlich etwas anderes logistisch zurückgeben. Vergessen Sie nicht, Reaktionstypen zu produzieren. Türen werden Ihnen helfen, aber Destin, Sie sind API und Dokumentation. Oder ich sah, dass dies unser erster Controller ist, entsprechender Controller. Besser eines als nur ein Beispiel, wo wir neue Attribute verwenden und einen Antworttyp und neue Aktionsergebnisse erzeugen. Im nächsten Video werden wir überspringen erstellen unsere Controller noch ihre Bestellung in der ICU dort im nächsten Video zu tun haben . 10. Bestell- und Item: Hi. In diesem Video bereiten wir Modelle, Modelle für den Artikel in der Bestellung vor. Und fügt auch auf die Datenzugriffsebene, die übrigens, sofern die Ressource, so können wir leicht kopieren eingefügt. Beginnen wir also mit den Modellen. Mit dem Artikel. Item-Klasse wird die Elementtabelle aus der Datenbank darstellen. Und dass sie eine Eigenschaft von int id enthält. Es enthält auch einen Stream, der die Beschreibung darstellt, und auch einen Bryce typeof float. Und schließlich die int, die die Bestell-ID darstellen wird. Und lassen Sie uns diese Eigenschaften auch mit SQL-Light-Attributen dekorieren. Die ID wird also Primärschlüssel sein. Wir müssen die using-Anweisungen hinzufügen. Und es wird auch automatisch inkrementiert werden. Und für die Beschreibungsliste fügt nur maximale Länge von 250 hinzu. Das war's für dieses Modell. Speichern wir es und gehen zur Bestellung über. Order glass stellt die Order-Tabelle aus der Datenbank dar. Und dieses Glas enthält wieder wenige Eigenschaften und eine davon ist natürlich die int-Typ-ID. Es enthält auch eine andere int Bestellnummer. Und schließlich wird der letzte String sein, und das wird Titel sein. Und lassen Sie uns auch SQL-Light-Attribute hinzufügen. Also Primärschlüssel, Anzeige mit Anweisungen. Ich werde inkrementiert. Und nur für den Titel, lassen Sie uns die maxlength hinzufügen als, sagen wir 50. Speichern Sie es. Also an dieser Stelle sollten wir alle unsere Modelle haben. Radius wird das Ordermodellradien Element haben. Die RAD AND Benutzer sind ebenfalls bereit. Jetzt zurück zur Datenzugriffsschicht, Datenbankdienste haben bereits HU-Methoden für den Benutzer, Benutzer-Tabelle, aber wir müssen noch weitere Metalle für die Tabelle und den Artikel oder die Tabelle Item-Tabelle hinzufügen . Dieses Gericht wurde als Ressource zur Verfügung gestellt, so dass Sie einfach kopieren können eingefügt. Siehst du, ich werde es jetzt tun. Also, dieser Samen, ich habe alle diese Methoden hier. Jetzt haben wir sie alle. Der Artikel, erhalten Artikel, erhalten Sie Artikel und erhalten Bestellung, erhalten Bestellungen und so weiter und so weiter. Also, das ist es für dieses Video, wir haben ein paar Modelle Artikel in der Reihenfolge erstellt und fügen einige Götter zu den DB-Diensten. In der nächsten Vorlesung erstellen wir die eigentlichen Controller, den Item-Controller im Order-Controller. Wir sehen uns dort. 11. Order: Hallo und willkommen. In diesem Video-Tutorial wird noch einen anderen Controller erstellen. Und das wird ein Order Controller sein. Klicken Sie also mit der rechten Maustaste auf den Controller-Ordner, klicken Sie auf Anzeigen, isolieren Sie Controller. Entweder wie üblich, werden wir sagen, wählen Sie einen PI-Controller, leer, fügt hinzu, geben Sie ihm einen Namen. Dies wird bestellt Controller werden. Und klicken Sie auf Hinzufügen. Dieser Controller wird dem Benutzercontroller ähnlich sein, so dass wir verschiedene Aktionen in ihm erstellen, um die Bestellung zu erhalten , Aufträge hinzuzufügen oder zu löschen, usw. Also lasst uns den ersten erstellen. In der ersten wird eine gute Ordnung sein. Dies wird öffentliche Aktionsergebnisse sein. Du bekommst Ordnung. Und um eine Bestellung zu erhalten, müssen wir eine ID angeben. Dies wird Typ int id sein. Also das erste, was wir tun wollen, wollen wir die Reihenfolge aus der Datenbank abrufen. Aus diesen Gründen werde ich einen Variablenaufruf in seiner Reihenfolge erstellen. Und das wird gleich den DB-Diensten sein. Und ich muss eine using-Anweisung hinzufügen und Aufruf erhält Bestellmethoden, stellen Sie das AD bereit und das wird die Bestellung für mich abrufen. Als nächstes werde ich überprüfen, ob die tatsächliche Bestellung nicht bekannt ist. Also entweder Ordnung gleich N-U-L-L tot ist, ich muss einfach NOT_FOUND zurückgeben. Und wenn ich eine Bestellung bekomme, werde ich einfach den Status zurückgeben, okay, zusammen mit dem Auftragsobjekt. Jetzt wollen wir diese Aktionen mit allen verpassen drei Attribute dekorieren. Der erste wird natürlich das HTTP GET-Attribut sein . Und hier können wir den Teil des URI etablieren. Das wird in gutem Zustand sein. Und wir müssen die ID zur Verfügung stellen. Das nächste Attribut wird Antworttyp erzeugt werden. Und die Statuscodes werden Status sein, Status 200s. Und wir müssen auch diesen Antworttyp hinzufügen. Dies wird Antwortart mit dem Status quo von 400 produziert werden. Als nächstes lassen Sie uns eine weitere Aktion erstellen, Aktion, die alle Aufträge erhalten wird. Also wieder, dies wird öffentlich sein, ich Aktion Ergebnisse, und wir werden es gute Befehle nennen. Für diese Zwecke benötigen wir keine Parameter. Wir werden einfach zurückkehren oder gab ein und erhält alle Bestellungen aus der Datenbank durch den Zugriff auf Datenzugriff-Datenbankdienste Punkt erhalten Sie Bestellungen. Jetzt dekorieren wir diese Aktionen. Aktion wäre Attribute, HTTP, GET. Und das wird in gutem Zustand sein. Und fügt ein weiteres Attribut, Hersteller Teiche Typ. Zusammen mit diesen Statuscodes. Und wir müssen den Status 200 zur Verfügung stellen. Ok. nächste Aktion wird wieder in Ordnung sein, öffentlich. Ich resultiere tatsächlich bei der Bestellung. Und die eigentliche Ordnung wird vom Körper kommen. Deshalb werden wir diese Attributrechte hier nutzen , bietet das Objekt, das wir für den Typ davon suchen. Das ist also in Ordnung und wir müssen die using-Anweisungen hinzufügen , die modellieren und ihm den Namen geben. Jetzt werden alle Bestellungen aus der Datenbank abrufen. Wir können dies tun, indem wir auf DB-Dienste dot zugreifen, sorry, dot add order n bietet die tatsächliche Bestellung. Jetzt wird diese Methode true oder false zurückgeben. So können wir es in eine if-Anweisung setzen. Und wenn diese Methoden true zurückgeben, werden wir einfach den Statuscode 201 zurückgeben, was bedeutet, und wenn diese Add-Order-Methode false zurückgibt. Else Statuscodes oder 500s, was internen Serverfehler bedeutet. Nun lassen Sie uns diese Aktion wieder schmücken, notwendige Attribute. Dieser wird HTTP-Post sein. Und der Euro wird in Ordnung sein und die tatsächliche Bestellung wird dem Körper zur Verfügung gestellt. Nun lassen Sie uns produzieren Antworttypen hinzufügen. Wir haben zwei von ihnen. Also haben wir 201. Und wir haben auch einen 500s Internals Fehler. Das ist es für diese Aktion in Ordnung. Jetzt lassen Sie uns Aktualisierungen Reihenfolge Aktion erstellen. Und wieder, das wird öffentlich sein. Ich tatsächlich Ergebnisse Aktualisierungen Reihenfolge. Und dafür müssen wir die tatsächlichen Ordnungsobjekte zur Verfügung stellen , die wieder aus dem Körper kommen werden. Der Typ dieses Objekts wird in der Reihenfolge sein. Nennen Sie es Ordnung. Fügt dies nun wieder der Datenbank hinzu. Oder aktualisieren Sie diese Reihenfolge in der Datenbank mithilfe von DB-Diensten. Dot aktualisiert die Reihenfolge und liefert die tatsächliche Reihenfolge. Auch hier wird diese Methode true oder false zurückgeben. Das bedeutet also, dass wir es innerhalb einer if-Anweisung setzen können. Wenn alles gut gelaufen ist, gibt eine Aktualisierungsreihenfolge wahr zurück. Wir können den Statuscode 201 zurückgeben. Und auch werden wir wieder einen Statuscode von 500 zurückgeben, was internen Serverfehler bedeutet. Jetzt können wir auch eine andere Art von Validierung hinzufügen, um zu essen, indem wir sehen, ob Bestell-ID, Bestellpunkt-ID kleiner als eins ist, dann haben wir ein Programm. Das kann wahr sein. Wir werden einfach eine schlechte Anfrage zurückgeben. Nun, Sie, das ist natürlich, schlechte Validierung. Sie werden wahrscheinlich etwas Besseres tun. Ich denke, ich mache das nur, um verschiedene Arten von Rückgabetypen zu generieren. Also in diesem Fall werde ich Bedrich Abfall in diesem Fall zurückgeben den Statuscode 201 umkippen, was bedeutet, erstellt. In diesem Fall werde ich 500 zurückgeben. Und auch, ich werde diese Aktion mit Ganzheit dekorieren müssen drei Attribute in der ersten wird HTTP-Post sein. Im Teil des URI wird Aktualisierungsreihenfolge sein, und das tatsächliche Auftragsobjekt wird dem Körper zur Verfügung gestellt. Nun lassen Sie uns hinzufügen, alle produzieren die Schritte, die wir brauchen. Und genau hier haben wir 201, was bedeutet geschaffen. Wir haben auch eine schlechte Anfrage, so können wir diese auch hinzufügen. Diese Anfrage für Hunderte, und wir haben auch 500. Ordnung, dies ist also für die Aktion Aktualisierungsreihenfolge. Hier generieren wir drei verschiedene Arten von Antwortantworten. Und der letzte wird die Löschreihenfolge sein. Auch hier wird dies ein öffentliches Aktionsergebnis sein. Löscht die Reihenfolge. Und aus diesen Gründen brauchen wir nur eine ID dieses bestimmten Auftragstyps von int. In. Auch hier können wir diese Reihenfolge löschen, indem wir DB Services Punkt löschen Reihenfolge sagen und die ID zur Verfügung stellen. in. Auch hier werden diese Methoden true oder false zurückgeben, was bedeutet, dass wir es innerhalb der if-Anweisung ziehen können. Und wenn es wahr ist, werden wir einfach zurückkehren, okay, zusammen mit einer Art von Nachricht, indem wir sehen. Bestellung mit dieser ID wurde gelöscht. Oder ELL werden wir etwas anderes zurückgeben. Zum Beispiel, wieder, ich habe nachgedacht, das ist nicht wirklich wichtig. Dies ist nur für unterschiedliche Zwecke. Und jetzt müssen wir unsere Aktion mit allen notwendigen Attributen dekorieren. Und das sind HDTP in diesem Fall geglaubt, da wir löschen. Und der Teil des URI wird Überzeugungen, Befehle sein. Und in diesem Fall erwarten wir in ID. Also müssen wir diese auch hinzufügen. Jetzt für die Antworttypen, die wir generieren und 500s. So 500s, wieder, leicht kochen basierend bereits, sie haben es. Und wir müssen auch Hunderte. Also, das ist es für, für den Order-Controller. Nun, lassen Sie uns diesen Controller testen. Nun lassen Sie uns am besten, unser Order Controller kann an den Postboten spielen. Und der erste Abschnitt, den wir testen werden, wird in gutem Zustand sein, wird eine GetMethod bietet das AD als auch. Eine d Nummer eins, klicken Sie auf Zustimmung. Und wir bekommen unseren Orbiter wieder im JSON-Format. Versuchen wir nun, alle Bestellungen abzurufen. Klicken Sie auf Sinn, und wir erhalten alle Bestellungen wieder im JSON-Format. Lassen Sie uns nun in der Reihenfolge aktualisieren. Und das wird Updates Reihenfolge sein. Und wir müssen die tatsächliche Ordnung durch den Körper liefern. Und wechseln Sie von Texten zu JSON. Geben Sie die Bestellung im JSON-Format an. Hier werde ich nur den Test ändern, seinen Namen ändern. Und wie Sie sehen können, Methode nicht erlaubt. Das liegt daran, dass wir nicht von gut zu rühmen gewechselt haben. Also lasst uns es wieder wechseln geschickt. Und wie Sie sehen können, 201 erstellt. Werfen wir einen Blick auf die Datenbank. Aktualisieren Sie es in, wie Sie sehen können, wurde der Bestelltitel aktualisiert. Lassen Sie uns nun versuchen, eine Bestellung hinzuzufügen. Nun fügen wir eine Bestellung zur Datenbank in der Reihenfolge hinzu. Und wieder, geben Sie die Befehle an die Leiche und wir brauchen keinen Ausweis. Die ID wird für uns generiert. Die Bestellnummer wird 12 in der Titel wird Test gesendet werden. Und wie Sie sehen können, 201 erstellt. Werfen wir einen Blick auf die Datenbank, die ich aktualisiere. Und in der Tat haben wir unseren Kern innerhalb der Tabelle Order. Lassen Sie uns nun die Bestellung löschen. Löscht die gleiche Reihenfolge. Die Reihenfolge, die wir gerade erstellt haben. Die ID ist für. Lassen Sie uns von Post zur Löschschlüsseleinwilligung wechseln. Und wie Sie sehen können, wurde die Bestellung gelöscht. Status 200. Ok. Das ist es also für die Order-Controller. Und im nächsten Video-Tutorial, erstellen Sie unsere Artikelsteuerung. Wir sehen uns dort. 12. Item: Okay, in diesem Video zu dodo, erstellen Sie unseren Item-Controller. Fügen wir also den Controller zum Ordner unseres Controllers hinzu. Wählen Sie den API-Controller aus. Und wir werden diesen Controller Item Controller Controller nennen. Im ersten Abschnitt, in dem wir diese Steuerung für IES erstellen, erhalten Element Aktion. Dies wird öffentliche Aktion Ergebnis sein, erhalten Aktionspunkt. Und wir müssen die ID zur Verfügung stellen. Jetzt erhalte ich zuerst die Objekte, das Item-Objekt. Verwenden der Datenbankdienste, DB-Dienste. Für diese müssen wir die using-Anweisungen bei Verwendung von Anweisungen hinzufügen. Und dann dot get item level, müssen die ID zur Verfügung stellen. Dann werden wir sehen, ob Artikel gleich N-U-L-L ist. Und wenn das der Fall ist, werden wir einfach NOT_FOUND zurückgeben. Sonst. Wir werden zurückkehren, okay. Und stellt die tatsächlichen Objekte, das Element Objekt. Lassen Sie uns nun diese Aktion mit allen notwendigen Attributen dekorieren. Dies wird HTTP sein, Get in den Teil der URL wird Element und die ID erhalten. Nun lassen Sie uns produzieren Antworttypen hinzufügen. Die erste wird diese Schildkröte gefangen sein. Nun lassen Sie uns einige Antwort produzierte Typen hinzufügen. Der erste wird dieser Statuscode von 200 sein, was ok bedeutet. Und die zweite wird die Antwort produziert Typ mit der Stato Scott 404 nicht gefunden. Okay, das ist es für die gute Aktion. Lassen Sie uns nun eine weitere Aktion erstellen. Das wird öffentlich sein. Ich handle die Ergebnisse und bekomme Elemente. Und wir müssen keine Parameter für diese Aktion angeben. Und wir werden einfach zurückkehren, okay, in bekommt alle Elemente von den DB-Diensten, Punkte. Holen Sie sich Artikel. Jetzt wie üblich, lassen Sie uns diese Aktion mit allen notwendigen Attributen dekorieren. Dies wird HTTP sein. Holen Sie sich. Der Teil des URI wird gute Elemente sein. Und wir haben nur einen Hersteller-Antwortschritt mit diesem Statuscode von 200. Die nächsten Abschnitte Aktion wird bei Punkt sein. So öffentlich, ich führe wirklich am Artikel ihn für diese Handlung, die vom Körper zur Verfügung stellen muss. Der Artikel wird vom Körper kommen. Und nennen wir es nur Artikel. Und wir können unseren Artikel erhalten, indem wir auf DB Services Punkte zugreifen. Bei Punkt drei können wir Element hinzufügen, indem Sie auf der Registerkarte DB Services Element zugreifen und das eigentliche Element zur Verfügung stellt. Legen Sie es in die if-Anweisung. Und jetzt können wir den Statuscode 201 zurückgeben. Wenn diese AddItem Methode buchstäblich wahr ist, entweder falsch zurückzugeben, werden wir einfach den Status Zitat oder 500 zurückgeben. Jetzt dekorieren wir diese Aktion mit diesen drei Attributen. Dies wird HTTP sein. Prahlen in der URI wird bei item sein. In der tatsächlichen Gegenstand Objekt wird durch den Fremdkörper kommen. Lassen Sie uns nun diese Aktion mit produzieren Antworttyp dekorieren. Und wir haben zwei davon. Der erste ist der Statuscode 201, was bedeutet, erstellt. Und der zweite wird Dipol-Status sein, der 500s heißt. Richtig? Der nächste Abschnitt wird also Aktualisierungselement sein. Auch hier wird dies öffentliche Reaktionsergebnisse sein. Wir werden es Update-Artikel nennen. Und das Element selbst wird vom Körpertyp des Artikels kommen, und ich werde es einfach Element nennen. So können wir unseren Artikel aktualisieren, indem wir auf die B Dienste Punkt Update-Element zugreifen und stellt das eigentliche Objekt zur Verfügung. Und diese Methoden werden wahr oder falsch zurückgeben. Also bekommen wir Buddhisten in der if-Anweisung. Und wenn diese Aktualisierungselement Gültigkeit erfüllt, true, dann zurück. Zusammen mit einer Beschreibung. Wir werden sehen, dass der Artikel, Artikelpunktbeschreibung aktualisiert wurde. Sonst werden wir einfach das Status-Zitat oder fünfhundertfünfhundert und eins zurückgeben. Jetzt können wir diese if-Anweisungen auch innerhalb einer try-catch-Anweisungen setzen , nur um eine weitere Ausnahme zu simulieren. Also lassen Sie es in die if-Anweisung einfügen. Der Fang wird zurückkehren. Lass uns etwas anderes zurückgeben. Sagen wir, Status-Score von 500. Jetzt können wir auch nach seiner ID suchen. Also, wenn item dot id kleiner als eins ist, dann die Gültigkeit. Etwas wie schlechte Wünsche. Ich hoffe, Sie werden eine bessere Validierung tun, die ich tue. Dies dient nur dazu, einige verschiedene Antworttypen zu generieren. Lassen Sie uns nun diese Aktion mit entsprechenden Attributen dekorieren. Dies wird HTTP-Post sein. Der Euro wird Aktualisierungspunkt sein. Und mal sehen, welche Art von Antworttypen haben wir? Wir haben den Statuscode 200. Ok. Dann haben wir auch Nummer eins, produzieren Antwortart mit dem Status 400 genannt, was Badanfragen bedeutet. Und dann haben wir noch eine 1501, was bedeutet, nicht umgesetzt. Und wir haben auch die vierte, Status gefangen oder 500, was Interner Serverfehler bedeutet. In Ordnung, das ist es für diese Aktion Update Element. Und der letzte wird der Gegenstand sein. Also lassen Sie uns mit öffentlichen Reaktionsergebnis beginnen , Element löschen. Und um Artikel zu löschen, werden wir, wir brauchen seine ID. Und hier werde ich zuerst die if-Anweisung deklarieren, und es wird DB Services dot delete item sagen und die tatsächliche ID bereitstellen. wenn dies true zurückgibt, dann zurück. Zusammen mit einer Nachricht. Wir werden sagen, dass Artikel mit ID gelöscht wurde. Schmerz, sonst im anderen Teil wird einfach zurückkehren und Status gefangen oder 500s. Nun wieder, lassen Sie uns diese Aktion mit alten drei Attributen dekorieren. Dies wird die Löschungen sein, HTTP-Löschungen in der URI wird löschende Element gefolgt von id und wir müssen auch Antworttypen. Einer von ihnen ist Status 200 oder schwul. Der zweite wird das Status-Zitat oder 500 sein. So Statuscodes Punkt Status 500 Interner Serverfehler. Also, das ist es für alle unsere Item-Controller. Speichern wir es und lassen Sie uns einige Tests machen. Also lasst uns auf Play it back to the postman. Und der erste Abschnitt, den wir testen werden, wird Element unsichtbar sein, muss seine ID, ID Nummer eins zur Verfügung stellen. Sie sollten die gleichen Datensätze zurückgeben. Die Zustimmung in D2, um unsere Ergebnisse wieder im JSON-Format Statuscodes 200 zu erhalten. Jetzt versuchen wir, Artikel abzurufen, zu bekommen. Klicken Sie auf Senden, und in der Tat bekommen wir ältere Adams wieder im JSON-Format. Als nächstes versuchen wir, ein Element in hinzuzufügen. Wir müssen von gets zu prahlen im Körperbereich wechseln, wir müssen die rohe Sprache von Text zu JSON auswählen und die Objekte im JSON-Format bereitstellen. Und wir müssen die ID nicht angeben. Aber wir müssen etwas ändern. Lassen Sie uns die Beschreibung ändern, testen. Die Einwilligung. Und wie Sie sehen können, zwei statt einer erstellt. Werfen wir einen Blick auf die Datenbank. Und in der Tat bekommen wir eine neue Rekorde innerhalb seiner Art von besten. Als nächstes aktualisieren wir ein Element. Also update item in für diesen, müssen wir, hier müssen wir einige JSON-Objekte zur Verfügung stellen. Lassen Sie uns diese Objektkriterien aktualisieren, diese Datensätze mit der ID neun, Preis 750. Wir müssen die ID hinzufügen. Es wird neun sein. Ändert die Beschreibung in etwa so. Ändern Sie den Preis. 2 Tausend. Klicken Sie auf Sinn in wir bekommen unsere Ergebnisse. Artikelbasiert wurde Statuscode 200 aktualisiert. Wenn Sie in der Datenbank einchecken, sehen wir, dass der Datensatz neun aktualisiert wurde. Versuchen wir nun, ein Element zu löschen. Dies wird gelöscht Schrägstrich, Schrägstrich neun. Also jeder von beiden zu löschen. Klicken Sie auf Sinn. Und wir bekommen unseren Status zu oaky Artikel neun wurde gelöscht. Lassen Sie uns aktualisieren und aufzeichnen diese kommen aus der Datenbank. Also das ist es für den Item-Controller. Jetzt haben wir drei verschiedene Controller innerhalb unserer Projekte. Lass es uns retten. Das war's für dieses Video und wir sehen uns im nächsten. 13. Benutzerdefinierte Attribute: Hallo. In diesem Video-Tutorial würde führen, um Ihnen zu zeigen, wie Sie Ihr eigenes benutzerdefiniertes Attribut erstellen. Bisher haben wir viele verschiedene Attribute verwendet. Diejenigen mögen die Routen, HTTP-Gates und so weiter. Aber es wird viele Szenarien geben, in denen Sie Ihre eigenen benutzerdefinierten Attribute erstellen möchten , um Ihre Operationen auszuführen. Und so werden wir in diesem Video ein benutzerdefiniertes Attribut erstellen, zeigen Ihnen, wie es geht. Und derjenige, den ich erstellen werde, wird einfach überprüfen, ob der Benutzer Zugriff auf diesen bestimmten Controller hat oder nicht. Also habe ich vier verschiedene Controller in unserem Controller-Ordner. Einer von ihnen ist Beispiel-Controller, der gerade lebt, es ist Matt berührt, dann wird Item-Controller oder den Controller und den Benutzercontroller haben . Und wir haben auch wieder in unserer Datenbank, wir haben drei verschiedene Benutzer. Derjenige von ihnen, der Umfang A1 hat. Das bedeutet also im Grunde, dass dieser Benutzer muss, sagen wir, Item-Controller. Der Benutzer mit dem Scope a2 hat auch Zugriff auf den Item-Controller im Orbiter-Controller. Und schließlich, der letzte, Boom unten. Lass es uns in einen Baum verwandeln. Das wird mehr Sinn ergeben. Dieser Benutzer hat Zugriff auf alle drei Controller. Richtig? Also werde ich diese Art von Attributen erstellen, die den Benutzer validieren, im Grunde die Autorisierung des Benutzers durchführen und der Benutzer kann Operationen auf diesem Controller ausführen oder nicht. Lassen Sie uns zunächst einen neuen Ordner erstellen, einen neuen Ordner hinzufügen. Es gibt ein Projekt. Also lassen Sie uns einen Ordner erstellen und wir werden es einfach nennen vielleicht Dienste. Und wir werden eine einfache Klasse hinzufügen. Und ich werde es so bevollmächtigt nennen. Richtig? Das ist also nur eine einfache Klasse. Jetzt lassen Sie mich es für eine Minute speichern. Und wenn ich den Namen dieser Klausel greifen werde, heizen Sie zum Beispiel auf den Item-Controller zurück und versuchte, ihn als Attribute zu verwenden. Und lasst uns versuchen, das zu tun. Quadratische Klammern sind autorisiert, dann wird das einfach nicht funktionieren, weil dies kein Attribut ist, ist es eine Klasse. Was ist das erste, was wir tun müssen? Wir müssen diese Klasse konvertieren, indem wir Attribute tun, ist dies sehr einfach. Wir können dies tun, indem wir von den Attributen Glanz erben. Dies wird unser Glas in das Attribut umwandeln. Versuchen wir es noch einmal. Klicken wir auf sichere Rückmeldung an den Item-Controller. Und im Moment glaube ich, dass wir die Verwendung von Statement Dot Services und ihr Ego hinzufügen müssen. Und jetzt funktioniert es schon. Wir haben unser erstes Attribut. Ich stelle diese zurechenbar, meine Klasse, was bedeutet, dass diese auf alle Aktionen angewendet werden blasen die ganze Klasse im Grunde. Aber es kann auch Ihre Attribute auf bestimmte Aktionen anwenden. Wenn Sie es beispielsweise nur für die Gate-Elementaktion verwenden möchten, können Sie es direkt dort hinzufügen. Und dann werden diese nur auf diese Aktion angewendet. Und wenn Sie sich erbrechen, überprüfen Sie. Wenn Sie es auf die ganze Klasse anwenden möchten, haben Sie einfach eine Schüssel erklärt, diesen Glanz. Halten Sie es also die Boulder-Klasse, dies wird auf die gesamte Klasse in Zurück zu den Attributen angewendet. Und das nächste, was wir tun müssen, ist Werbung und andere Schnittstelle zu ihm zu erben, was ich eigentlich filtere Schnittstelle. Und lassen Sie mich diese Schnittstelle sofort implementieren. Und wie Sie sehen können, hat diese Schnittstelle zwei Methoden. Einer von ihnen ist auf Aktion ausgeführt und der andere ist auf einer ausgeführten Aktion. Also im Grunde werden diese zuerst feuern, lass mich es sie nennen, basierend auf dem Ball, so. Diese Methode wird also zuerst ausgeführt. Die nächsten Dinge, die getan werden, werden passieren, ist tatsächliche Aktion. Zum Beispiel GetItems. Und wenn diese Aktion abgeschlossen wird, die Operation etwas zurück. Dann schließlich wird EINE ausgeführte Aktion ausgelöst. Dies wird also die Pipeline im Grunde für die Aktion, die Aktion ausführt, und nach unten bei ausgeführter Aktion. In Ordnung, also was ich Aktion mischen möchte, ist das Ausführen von Kontext ziemlich wichtig. Objekt direkt hier, die Namenskontexte. Und im Grunde enthält dieses Objekt viele Informationen über die Anfrage und die Antwort und all diese Dinge. Lassen Sie mich es Ihnen zeigen. Lassen Sie uns Kontexte, Punkte, HTTP, Kontexte, Knoten schreiben , und dort haben Sie die halbe Anforderungsantwort. Werfen wir einen Blick auf die Anfragen zum Beispiel, am Ende haben wir die Abfrage-Header, Körper und so weiter, so weiter. Also, wenn Sie auf Informationen von den Handlern zugreifen möchten, dann können Sie es tun, indem Sie einfach Handler dazu hatten und den Namen angeben. Und der Name wird sein, nennen wir es Umfang. In Ordnung, das wird also im Grunde aus dem Header zurückkehren. Und es ist auch eine gute Idee zu überprüfen, ob diese Schlüssel null oder leer sind. Also lassen Sie uns eine weitere elif-Anweisung hinzufügen. Und wir werden eine Schnur sehen. Ein Schnee ist leer. In diesem Fall werden wir in diesem Fall einfach ein Ergebnis zurückgeben. Wir werden einfach Kontexte zurückgeben. Punktergebnisse gleich neu, gleich zwei neue entstehen. Es ist ein Ergebnis, oder? Und wenn die Warteschlange nicht leer ist, werden wir einfach fortfahren. Und dann werden wir versuchen, diesen Polizisten zu validieren versucht zu sehen, ob der Benutzer mit dem bereitgestellten Bereich Zugriff auf diese Klasse hat oder nicht. Und dazu habe ich bereits eine Funktion vorbereitet. Dies wird also die validierten Bereichsmethoden sein. Zwei Parameter, einer von ihnen ist Bereich und der andere ist der Controller. Und wir werden einfach überprüfen, ob der Bereich gleich eins ist, dann ist der Controller der Item-Controller. Dann bedeutet dies, dass der Benutzer auf diesen Controller zugreifen darf. Also werden wir wahr zurückkehren, und so weiter, so weiter. Also, wenn der Bereich a2 ist und der Controller Element ist, oder die Reihenfolge wird wieder true zurückgegeben. Und für die A3, werden wir einfach die UserID Scope a3 Achse, jeder dieser Controller. So wahr, in jedem anderen Fall werden wir falsch zurückgeben. Dies ist also die Gültigkeitsbereichsfunktion und lassen Sie uns davon Gebrauch machen. Also lassen Sie uns sagen, wenn validiert Umfang, und dann müssen wir zwei Parameter, um es zur Verfügung zu stellen. Der erste Parameter ist der eigentliche Schlüssel aus den Headern mit dem Namensbereich. Im nächsten wird sein, sollte der Name des Controllers sein. Und um den Namen des Controllers zu erhalten, können wir es aus dem bekommen, wieder aus dem Kontext, der Daten weiterleitet. Und hier müssen wir den Schlüssel zur Verfügung stellen , der einfach der Controller ist. Und schließlich werden wir in String setzen, oder? Diese erhalten also den Controller-Namen und dies wird den Schlüssel aus dem Header erhalten. Richtig? Also, wenn diese Methoden validieren Gültigkeitsbereich falsch zurückgeben, dann einfach wieder, werden wir auf Outdoor entstehen als Ergebnis zurückkehren, wie so. Und wenn dies wahr ist, dann werden wir einfach mit einer tatsächlichen Aktion fortfahren. Okay, Sie lassen also diese Attribute für einen dieser Controller blenden , die bewirken, dass es bereits da ist. Und jetzt versuchen wir es in Aktion, und lasst uns auf Spiel zum Postboten klicken. Fügen Sie eine weitere Registerkarte hinzu, werden die Methoden des Gets ausgeführt. Und die Aktion, auf die ich zugreifen möchte, ist, lasst uns etwas Einfaches versuchen. Zum Beispiel. Na gut, so gute Gegenstände. Und schließlich in den Kopfzeilen hier müssen wir die tatsächliche Punktzahl angeben. Also a1, a2 oder a3. Aber bevor wir das tun, lassen Sie uns einfach sehen, was passiert ist, indem Sie diese Anfragen senden und wir sollten 404 autorisieren, weil wir keinen Umfang zur Verfügung gestellt haben. Jetzt lassen Sie uns einen Schlüssel erstellen. Der Schlüssel wird sein, dass der Umfang sein wird, und wir werden einen bereitstellen. Also diese aber diese Bereiche sollten in der Lage sein, Elemente zu erhalten. Mal sehen. Und wir heizen zurück auf Visual Studio, direkt bei der Aktion, die zurückgezogen, nicht implementierte Ausnahme ausgeführt wird. Das liegt daran, dass ich diese Codezeile nicht entfernt habe. Also lassen Sie mich anfangen, es vom Laufen zu gehen. Und im Grunde bedeutet das, dass diese Aktion auf der ausgeführten Aktion erfolgreich ausgeführt wurde, dann die eigentliche Aktion vom Controller. Also diese Telefone erfolgreich ausgeführt. Aber schließlich auf ausgeführt, wurde als die letzte ausgeführt und diese nicht implementierte Ausnahme. Lassen Sie mich diese Linie von Gerichten entfernen. Und in der Tat, diese Methode ist tatsächlich da. Machen Sie eine Art von Protokollierung, vielleicht, um die Daten oder die Zeit zu sperren , die dieser Benutzer Zugriff Plattencontroller an diesem Datum hat, zum Beispiel eine Art von Protokollierung. Und versuchen wir es noch einmal im Vektor, dem Boltzmann. Und hier haben wir unseren Umfang bereits da drin, bekommen Gegenstände, mal sehen. Und in der Tat, alle Gegenstände zu bekommen, Mac. Also, selbst wenn wir, wenn wir a2 zur Verfügung stellen, wird dies auch funktionieren, weil Benutzer mit dem Umfang Alter, Zugriff auf diesen Controller hat als auch, ein und eine drei. Und er säte meinen, er hat sich zu diesem Ziel erhoben, auch dieser Kontrolleur. Richtig? Also zurück zum Visual Studio jetzt haben wir unser Attribut im Grunde Rayleigh. Lassen Sie mich nur gilt für alte drei Klassen. Also im Item-Controller haben wir es bereits. Lässt es dem Order-Controller hinzufügen. Und wir werden diese Attribute direkt dort über die Klasse hinzufügen. Und ich muss einfach die using-Anweisungen hinzufügen. Und schließlich der Benutzercontroller. Auch hier ist dasselbe bei der Verwendung von Anweisungen autorisiert. Da gehen wir. Alles klar, jetzt haben wir alle notwendigen Controller zugeschrieben. Mal sehen, ob das funktioniert. Ghetto spielen und zurück zum Postboten. Und so sollte der Benutzer mit dem Scope A1 zum Beispiel keine Bestellungen erhalten können. Richtig? Mal sehen, ob das wahr ist. Klicken Sie auf Sinn. Und in der Tat bekommen wir 404 auf andere Verhaftung durch den Benutzer mit diesem Cop a2 sollte in der Lage sein, diese Informationen zu erhalten, und in der Tat, es funktioniert wie erwartet. Dies ist also ein Beispiel für Ihren benutzerdefinierten Code, um Ihre benutzerdefinierten Attribute zu erstellen. Lasst uns schnell zusammenfassen. Das erste, was Sie tun müssen, ist, erstellen Sie einfach eine neue Klasse. Und dann müssen Sie vom Attributglanz erben , um Ihr Glas in das Attribut zu konvertieren. Dies ermöglicht es Ihnen, es als tatsächlich auf Ihren Controllern zurückgeschrieben zu verwenden. Und wir müssen auch AI-Aktionsfilter implementieren, wenn Sie möchten, wenn Sie diese Methoden bei der Ausführung der Aktion verwenden möchten, eine ausgeführte Aktion. Und dann machst du einfach dein eigenes Ding. Dies kann eine Autorisierung oder vielleicht einige sein, unter einer Validierung oder einer anderen Art von Operation. Es liegt ganz an dir. Und schließlich enthält die Aktion, die Kontextobjekt zu jedem ausführt, eine Menge Informationen im Grunde über die gesamten Anfragen und sogar die Antwortglocke. So können Sie dieses Objekt verwenden, um die Informationen über den Benutzer, über den Controller, auf den der Benutzer zugreifen möchte, abzurufen. Und der Kopf, da sind die Kekse und so weiter, so weiter. Also, da gehst du hin. Das ist ein schnelles und einfaches Beispiel für Ihre benutzerdefinierten Attribute. Wir sehen uns im nächsten Jahr. 14. Server Upload und -Download: Hi. In diesem Video zeige ich Ihnen, wie Sie eine Datei hochladen und herunterladen. Ich bereits, Ich werde ein Bild hochladen und herunterladen, aber es könnte alles andere sein. Also bereits zu einem Bild zu meinen Projekten im Stammverzeichnis hinzugefügt , um einfach einfachen Zugriff darauf zu erhalten. Lassen Sie mich nun diese beiden Beispiele zum Beispielsteuerelement hinzufügen. Und genau hier werden wir zwei neue Handlungen schaffen. Und die erste Aktion wird die Upload-Datei sein. Und dieses mentale Werkzeug wird die asynchrone Methode sein. Die Route wird einfach Schrägstrich Upload-Datei sein. Und diese Datei wird vom Forum kommen. Und um, Dies wird I-Form-Datei in der Lage sein, es zu verwenden, muss ein neues Paket hinzufügen, Microsoft I Spin auf Kernpunkt Punkt HTTP-Funktionen. Also lasst es uns installieren. Hier sind wir im Schlüssel. Es wird ein Bild sein. Dann müssen wir den Speicherstrom nutzen. So erstellen wir ein neues Objekt der Speicherzeichenfolge. Und dann werden wir von try-catch-Aussagen Gebrauch machen. Und im Grunde werden wir diese Datei zum Stream hinzufügen. Und sobald Sie es in Ihrem Dampf haben, können Sie damit tun, wo immer Sie wollen. Ich werde diese Datei nirgendwo auf meinem Dateisystem speichern. Einfach wegen der Berechtigungen. Diese API hat keine Berechtigungen für mein Dateisystem, so dass sie keine Datei speichern kann. Wenn dann etwas schief geht, werden wir einfach die Ausnahmemeldung zurückgeben. Und wenn alles gut läuft, wird die Länge der tatsächlichen Datei zurückgegeben. Na gut, also versuchen wir es mal. Lasst uns auf Play klicken und zum Postboten kommen. Jetzt wird die Aktion, auf die wir zugreifen möchten, Datei hochladen sein. Dann müssen wir die eigentliche Datei zur Verfügung stellen. Wir können dies tun, indem wir zum Körper gehen, neue Schlüssel erstellen. Und das wird ein Bild sein. Stellen Sie sicher, dass Sie die Datei haben, nicht den Text oder so etwas. Sie müssen die Datei auswählen und die Sorption ermöglicht es Ihnen nach einem Bild oder einer Fotodatei zu suchen. Also habe ich es hier. Sie sehen, wenn Sie einen Schlüssel erstellen, sehen Text. Also müssen Sie zu der Datei wechseln und dann Sie, lassen Sie mich einfach zeigen Sie so Datei. Und dann können Sie einfach die Datei auswählen. Richtig? Also habe ich bereits einen Schlüssel in einer Datei. Lassen Sie uns nur Zustimmung sein und sehen. Wenn wir die Antwort bekommen und diese hören, erhalten wir die tatsächliche Größe dieser Datei. So können Sie die Datei in die Dateien, in Ihre API hochladen. Und sobald Sie es in Ihrem Stream haben, können Sie diese Datei mit dem Stream machen, was immer Sie wollen. Sie können es vielleicht von JPEG in G konvertieren, oder wenn es Text ist, können Sie es schreiben oder angehängt oder irgendetwas anderes. Als nächstes werfen wir einen Blick, wie man die Datei herunterladen kann. Die Aktion sollte also etwa so aussehen. So werden wir n wieder um Schrägstrich herunterladen. Dies wird wieder die Async-Methoden sein und es wird das Aktionsergebnis zurückgeben und die Methode selbst wird es einfach Donald-Bild nennen. Als nächstes müssen Sie einen Puffer erstellen und die eigentliche Datei ist, wie ich bereits sagte, Maya-Datei 0s im aktuellen Verzeichnis. Deshalb bin ich maxing, greife auf das aktuelle Verzeichnis zu und gebe den Dateinamen an. Wieder kommen diese gal aus, aus der Abfrage oder aus dem Körper des Forums oder so etwas. Oder vielleicht ist auch eine ID möglich. Aber der Einfachheit halber werden wir das tun. Dann müssen wir den Speicherstrom erstellen. Und an diesem Puffer, um es. Als nächstes müssen wir angeben, welcher Typ es ist. Das wird also in der JPEG sein. Und schließlich werden wir Datei-Stream-Ergebnisse mit Speicherzeichenfolge und dem Typ zurückgeben. Und die Datei wird mit diesem Namen heruntergeladen. Also lassen Sie es uns in Aktion sehen. Klicken wir auf beschweren. Im Stiel. Wir gehen nicht zum Boss Mann, wir werden einfach tun, es ist direkt im Browser. Wir können einfach zu den Schrägstrich Downloads navigieren. Und die Schule lädt das Bild mit dem Ordner herunter. Und wenn, tut mir leid, der zweite ist mein Bild. Hier haben wir zwei zusätzliche Beispiele, wie Sie eine Datei hochladen können, wie Sie eine Datei mit Ihrer API herunterladen können. Das war's für diesen Vortrag in Ticker. 15. Dependency Injection: Hallo, in diesem Video werden wir einen Blick auf die Abhängigkeitsinjektion in.net Core-Anwendung werfen. Also passiert die Abhängigkeitsinjektion in dieser dunklen zweifellos cs-Datei schreibt in den Konfigurationsdiensten mental. Und in der Tat, es passiert bereits hier. So Dienste dot add Controller ist ein Beispiel für die Independency Injection. Diese Codezeile fügt also einfach alle Controller hinzu, die Sammlung aller Dienste. So wird hier die Abhängigkeitsinjektion passieren. Nun als nächstes, warum brauchen wir tatsächlich, wie man es benutzt? Lassen Sie mich Ihnen ein Beispiel geben. Wenn Sie einen Blick auf unsere datenbasierten Dienste werfen, sind alle unsere Methoden statisch, richtig? Das sind alle statischen Metalle. Was bedeutet, dass wir keine Instanz dieser Klasse erstellen mussten. Sie können einfach auf alle diese Methoden zugreifen, indem Sie DB-Dienste angeben, und Benutzer erhalten, Benutzer hinzufügen und so weiter. Aber in dem Fall, wenn Sie ein Objekt der Klasse Ihres Dienstes erstellen müssen, dann haben Sie möglicherweise ein Problem für. Lassen Sie uns also dieser Klasse eine weitere Methode hinzufügen , die nicht statisch ist. Das bedeutet, dass ich ein Objekt und eine Instanz dieser Klasse erstellen muss, um es zu verwenden. Also lassen Sie mich eine weitere Aktion hinzufügen. Diese Aktion wird einfach den Bereich nach Benutzer-ID erhalten, oder? Also in diesem Abschnitt werden wir einfach String zurückgeben, wird einen E Ideenparameter nehmen, der in Kontakt mit der Datenbank ist und wählen Sie die, im Grunde den Bereich des Benutzers. Also, wenn ich diese Methode wieder in unserem Controller verwenden möchte. Also lassen Sie uns eine andere Aktion erstellen. Aktion dann, ob aus Schrägstrich Aktion dann und im folgenden nach ID. Und sagen wir, wenn ich auf diese Methode hier zugreifen möchte, kommen Tore zurecht , na ja, das bedeutet, dass ich zuerst das Objekt bei den using-Anweisungen erstellen Objekt bei den using-Anweisungen erstellen und ihm einen Namen geben muss, sagen wir w0. Dies wird gleich sein, wird eine neue Instanz davon erstellen. Und dann werde ich in der Lage, auf diese bestimmte Methode von ihren Punkten zugreifen. Guter Umfang, lesen Sie sie. Und ich werde es einfach zurück an den Client zurückgeben, indem sage, dass DB services.js CORP zurückgibt . Nun, das wird gut funktionieren. Lassen Sie mich Ihnen nur zeigen, dass das Schlimme an diesem Ansatz ist, dass dies eine eng gekoppelte Abhängigkeit ist. Jedes Mal, wenn Sie dieses neue Schlüsselwort verwenden, ist Mackey seine neuen DB-Dienste genau hier. Nun, es ist eine schlechte Wissenschaft. Sie sollten versuchen, diese Instanzen zu vermeiden. Werfen wir einen Blick, ob es tatsächlich funktioniert. Hallo, geben Sie die ID Nummer zwei an. Und ich bekomme den Umfang a2 zurück, was richtig ist, richtig? Was ist, wenn ich diese Art eines Objekts nicht erstellen möchte, nun, was, wenn ich dieses Objekt in allen anderen Aktionen verwenden möchte? Nun, ein anderer Ansatz wird sein, den Konstruktor dieser Klasse zu verwenden und auch eine private Variable in der Boarding-Klasse zu deklarieren, die typof dv-Dienste sein wird. Nennen wir es unterstreichen DB-Dienste. Und in der Konstruktorregel, tun Sie im Grunde dasselbe. Ev Dienste und dann werden wir es einfach dieser lokalen Variablen zuweisen. Richtig? In diesem Beispiel können wir in diesem Fall dieses Objekt verwenden und immer wieder verwendet werden , da der Konstruktor als erstes ausgeführt wird. Die Klassenlast für den Konstruktor wird ausgeführt und wir werden dieses Objekt sowieso haben, damit wir es verwenden können. Es ist bereits hier, ohne ein neues Objekt zu erstellen. Richtig? Mal sehen, ob das funktioniert. Wenn es auf dem Spiel. Also wir normale Anwendung, sagen wir.net Framework-Anwendung, das sollte funktionieren. Das wird funktionieren. Aber in.NET-Kernanwendungen, insbesondere in der API, erhalten Sie bei der Integration von API eine Ausnahme, die besagt, dass die Oberfläche nicht aufgelöst werden kann, insbesondere die DB-Dienste. Das bedeutet also, dass, wenn diese konstruiert, versuchte, diese Objekte auszuführen, nicht da war, es wurde nicht einmal zugewiesen, so dass es nirgends registriert wurde. Also, um dieses Label zu verwenden, um dieses Objekt zu verwenden, müssen wir es registrieren und wir können dies in startup.js Datei tun , indem wir einfach Dienste Punkte bei sagen. Und für jetzt werden wir bei einzelnen Dome verwenden. Als nächstes müssen wir den Typ des Objekts zur Verfügung stellen, das wir registrieren möchten. Und das ist, das war's. Versuchen wir es noch einmal. Hitze auf dem Spiel und mal sehen, ob das funktioniert. Und wir husten unsere Ergebnisse. So starteten Anwendungen erfolgreich. Also, jetzt funktioniert es, seit wir unsere Dienste registriert haben, und deshalb war unser Controller zurück in unserem Beispielcontroller, unserem Konstruktor, in der Lage, ein auszuführen und dieses Objekt diesem privaten Objekt zuzuweisen. Richtig? Und als nächstes denkt, dass Sie über Abhängigkeitsinjektion wissen sollten. Neben aufgefüllten Dossiers Datei ist, wie Sie tatsächlich können, gibt es einen anderen Ansatz, wie Sie Ihre Dienste erhalten können. In deiner Aktion. Also im Moment verwende ich diese private Variable, aber es gibt einen anderen Weg. Werfen wir einen Blick. Lassen Sie uns dann Aktion erstellen. 11, tut mir leid. Also jetzt haben wir genau hier Aktion 11. Die Route wird eigentlich 11 gefolgt von id sein. Und das Besondere an dieser Aktion ist, dass ich diese Dienste bekomme , indem ich diese Attribute von Diensten verwende. Und am nächsten Tag werden wir die Art der Dienste angeben, die ich gerne haben würde. Du gibst ihm einen Namen. Und natürlich die Idee, ich brauche den Ausweis dafür. Und dann wieder können wir das Gleiche wie eine Aktion zurückgeben. Aber in diesem Fall müssen wir Dienste sehen, anstatt DB-Dienste zu unterstreichen. Also werden wir von diesem Objekt Gebrauch machen. Sehen wir uns jetzt an, lassen Sie uns sehen, ob es funktioniert. Und bevor wir das tun, lassen Sie mich dann den Konstruktor und die Aktion kommentieren. Kommentiert für die zweite. Wir werden gerne Aktion 11 testen, diese Attribute jetzt. Mal sehen, ob es funktioniert. Aktion 11 und geben Sie die ID Nummer drei und wir bekommen unseren Umfang zurück. Okay, im Moment habe ich hier einen kleinen Fehler. Es sollte eigentlich 11 sein. Geh. Lassen Sie uns also zurück zu dieser Punkt-Punkt-CS-Datei und werfen einen Blick auf eine andere Art der Abhängigkeitsinjektion. Und im Grunde gibt es drei verschiedene Möglichkeiten, wie Sie Ihre Dienste zur Sammlung von Diensten hinzufügen können. Und einer von ihnen ist der einzelne Ton. Und der einzelne Ton wird einfach eine Instanz für die gesamte Anwendung erstellen. wird also nur eine Instanz verwendet. Aber es gibt andere Möglichkeiten, dies zu tun, indem Sie zum Beispiel das Transiente verwenden. Also Dinge zu sehen, Dienste dot add, transient und dann geben Sie ihnen den Typ Ihrer Objekte. In diesem Fall wird eine Instanz der HTTP-Anforderungen des Dienstes erstellt. Jedes Mal, wenn Sie einen HTTP-Grad erhalten, wird das neue Objekt die neue Instanz erstellt. Und schließlich ist die letzte Möglichkeit, dies zu tun, indem Sie diesen Bereich verwenden, Dienste dot add scope. Und wieder, wenn Sie den Typ bereitstellen müssen, und dies wird in einer Instanz für einen Client erstellt, also eine Instanz pro Client. Auch hier ist eine Instanz für die gesamte Anwendung Singleton. Transient erstellt eine Instanz für HTTP-Anforderung, und dies wird eine Instanz pro Client erstellen. Das ist also die Macht der Abhängigkeitsinjektion. Es wird Ihnen erlauben, nicht nur diese Art des Objekts Chlorid zu nutzen, also keine statischen Methoden, aber es wird Ihnen im Grunde erlauben, ein Heilsubjekt zu erstellen und sie dann wiederzuverwenden oder immer wieder, es ermöglicht es Ihnen, Ihren Konstruktor zu verwenden und diesen Tauchgang an Ihren Konstruktor in so weiter und so weiter zu übergeben. Dies ist die Grundidee der Abhängigkeitsinjektion, und es ist ziemlich einfach. Alles, was Sie sich im Grunde erinnern müssen, ist angehalten Dossiers Datei und Sie müssen diese drei Zeilen von allen erinnern. Lassen Sie mich die letzten aussagen. Und das war's für dieses Video. Ich hoffe, es hat dir gefallen. Und das wird das letzte Video für die Serverseite sein. Und in den nächsten Videos werden wir auf ihren Kundenseiten arbeiten. So Client-API. 16. Landstreicher: Entweder in diesem Video-Tutorial werden wir Mehrwert zu unserer API hinzufügen. Wenn Sie nicht wissen, was Launen sind, werden Sie es in einer Minute sehen. Zunächst einmal möchte ich Ihnen eine kleine Beschreibung unseres Wassers geben. Dies ist eine Art Framework, das die Analyse Ihrer Struktur Ihrer API, der Controller, der Aktionen, die Sie dort haben, die Antworttypen in der Operation und so weiter. Und es wird eine Dokumentation erstellen. Es wird hinzugefügt, diese Dokumentation wird automatisch für Sie aktualisiert. Empfehlung wird in Form einer Webseite dargestellt. Sie müssen also zu einem bestimmten URI navigieren, und dort haben Sie ihn. Sie erhalten die Beschreibung Ihrer API. Diese Webseite ist auch anpassbar, so dass Sie bearbeiten können, sie ist an Ihre Bedürfnisse angepasst. Wenn Sie Ihre Logo-Ursprünge hinzufügen möchten, die Farben, es ist alles in Ordnung, Sie können dies tun. Dies wird im Grunde diese Fakultät ist sehr schön Feature zu haben. Außerdem werden wir in den nächsten Videos unsere Client-API erstellen. Wenn Sie also all diese Situation vom Standpunkt des Verbrauchers betrachten, müssen Sie verstehen, dass sie keinen Zugriff auf Ihren Quellcode haben, oder? Also werfen sie einfach einen Blick in Ihre Aktion und sehen, was los ist. Sie müssen sich auf einige Dokumentation beziehen und von dort alle notwendigen Informationen erhalten. Auch deshalb ist es wichtig. Oder jede Art von Dokumentation ist wichtig, wenn Sie eine API erstellen. Also lassen Sie uns, fügen Sie uns wichtig zu unserem Projekt und wir können dies tun , indem Sie die neuen Fenster, neue get Paket. Wir werden also mit der rechten Maustaste auf meine Projektmanagement-Pakete klicken. Das Paket, das wir suchen werden, Abwasser zu durchsuchen ist swash Schnalle Punkt ASP Netzkern-Paket tut die eine, die wir installieren müssen. Also gehen Sie vor und installieren Sie es in. Sobald Sie es haben, können Sie dieses Fenster schließen. Und dann müssen wir zur Middleware navigieren, im Grunde zur Startup-Docx-Datei, um diesen Vaguer zu konfigurieren. Und wir werden es an zwei Orten tun müssen. Konfigurieren Sie die Dienste und die Konfiguration. Die Konfiguration ist der Ort, wo wir Swagger aktivieren müssen. Und in den Konfigurationsdiensten werden wir im Grunde sagen, Watt Vagus sollte für uns tun. Lassen Sie uns also mit konfigurierten Diensten beginnen und alles, was wir tun müssen, ist Dienste zu sagen, Punkte bei Swagger Jin. Und wir müssen auch eine Aktion erstellen, wie Sie hier in den Parametern sehen können, können Sie eine Aktion erstellen. Also werden wir das tun. Ich werde es nur c nennen und dann werde ich die eigentliche Aktion erstellen. Und innerhalb dieser Aktion werden wir das Dokument generieren. Also, indem Sie c dot swagger doc sagen. Und dann für die Parameter geben Sie die Version Ihres Dokuments und macht. Sie müssen verwenden, Sie müssen nicht verwenden, aber es ist schön, ein offenes API E4-Objekt verwenden zu müssen. Und für diesen müssen Sie die using-Anweisungen Microsoft dot open API-Modelle hinzufügen. Und diese Objekte können viele Informationen wie Titel enthalten, zum Beispiel die Version, und schauen wir uns an. Sie haben auch den Kontaktbeschreibungsanalysator. Aber wir müssen dem Swagger Docker einige Informationen zur Verfügung stellen. Sie können dies also tun, indem Sie dieses offene API-Objekt verwenden. Der einfachste Weg zu tun. Jetzt das nächste, was wir tun müssen, um die Methode zu konfigurieren , müssen wir sagen, dass wir den Swagger verwenden möchten. Das wird also ab Dot sein. Benutze Swagger. Lasst uns zuerst einen und den zweiten. Wir möchten auch app.use wagon UI verwenden. Für diese Benutzeroberfläche müssen wir eine weitere Aktion erstellen. Also lassen Sie mich das tun. C entspricht einer neuen Aktion, und diese Aktion erstellt den Swagger-Endpunkt. Dies ist im Grunde der URI. Der URI ist unterschiedlich. Sie haben Ihre Kunden oder Kunden. Zeilen müssen navigieren, um diese Webseite zu sehen. Nun, in meinem Fall wird Swagger sein. Es wird eigentlich ein Schwindel sein. Und es wird mich auf die richtige Seite umleiten. Und dann daneben können Sie einige zusätzliche Informationen hinzufügen, die Sie in einer Minute sehen werden. Warum gibt es da? Also, das ist es im Grunde. Das ist alles, was Sie für diese Wagner's tun müssen, fügen Sie es einfach zuerst in das Paket, und dann in Ihren konfigurierten Diensten, erstellen Sie Ihre Dokumente Wagen, Dock. Und in den Metadaten konfigurieren müssen Sie sagen, dass Sie Swagger verwenden möchten und dass Sie Swagger UI verwenden möchten. Jetzt lassen Sie es mich testen. Lassen Sie mich Ihnen zeigen, wie es aussieht. Wenn wir also unsere API starten, wird es uns natürlich zur Aktion umleiten. Aber wenn wir diesen Teil des URI zu Wagar ändern, ein Schrägstrich index.html. Es sollte Sie in die index.html umleiten. Wie auch immer, selbst wenn Sie Ihren Swagger setzen, werden Sie diese Art von einer Webseite sehen, wo Sie Ihr Logo haben. Wie ich bereits sagte, können Sie die ganze Seite anpassen. Und wie Sie sehen können, funktioniert Spaghetti. Hat das Dropdown-Menü, worüber ich gesprochen habe, Beispiele API Version eins, Dropdown-Menü. Sie können verschiedene Definitionen haben und deshalb haben Sie es dort. Und jetzt bekommen wir einen Fehler. Wir werden es in einer Minute reparieren. Aber im Moment sollten Sie wissen, dass Swagger funktioniert, läuft. Jetzt gehen wir weiter und beheben diesen Fehler. Ball. Ich werde es davon abhalten, zu laufen. Und der eigentliche Fehler kommt von der Beispiel-Controller-Klasse. Und der Grund, warum ist, weil Bibel, um die Dokumentation zu generieren, isst es wird Ihren Controller analysieren und versuchen, die Struktur und die Informationen zu extrahieren und dann erstellt die tatsächlichen Empfehlungen aus diesen Gründen. Es braucht ein Extra, Nun, nicht wirklich extra, aber es muss das Verb kennen. Diese Aktion zum Beispiel ist die get Aktion, ist die post Aktion, ist es eine Löschaktion, und so weiter und so weiter. Wir sagen es uns jetzt nicht in keiner von ihnen. Das ist also das Problem. Deshalb stürzt es ab. Absturz. Also, was ich jetzt tun werde, werde ich oben auf meiner Klasse einfach sagen, fügen Sie weitere Attribute hinzu, indem Sie sagen , dass API-Explorer-Einstellungen API zu true ignorieren. Diese Attribute werden Swagger sagen, dass Swagger den gesamten Controller ignorieren muss und sich einfach nicht darum kümmern muss. Jetzt füge ich dieses Attribut hinzu. Lass es mich noch mal laufen. Und wir werden zur Swagger-Seite navigieren. Ich frage mich. Und wir werden die ganze Beschreibung über unsere API sehen. Der Item-Controller, der Order-Controller im Benutzersteuerelement, auch in den Schemas. Wenn Sie voran gehen und werfen Sie einen Blick auf eine bestimmte Aktion, zum Beispiel die gute Item-Aktion. Wir sehen, dass diese Aktion eine ID erfordert. Dies ist auch eine Ganzzahl erforderlich. Und wir werden auch einige Antworttypen oder einige zusätzliche Informationen sehen. Dies ist der Text einfach, und so weiter, so weiter. Und das wurde von Ihnen automatisch generiert. Und für jeden Controller, außer den Beispiel-Controller, weil ich Ignorier-API auf wahr gesetzt habe. Deshalb ist es nicht hier. Also, was Swagger 0s, so sieht es aus. Und schließlich, lasst uns weiter gehen und unseren Beispiel-Controller reparieren. Also werde ich diesen Teil auskommentieren. Wir wollen dieses Beispiel Controller in unserer Spinne sehen, aber wir müssen zusätzliche Attribute zu all diesen hinzufügen. Also werde ich tun, ist jetzt werde ich sie auch neu angeordnet, weil ich sehe, wir haben Aktion dann hier 11 und dann Aktion eins. Also werde ich diese beiden Knopf und diesen Abstieg oben setzen und die Attribute, Attribute hinzufügen. Also habe ich alle notwendigen Attribute zum Beispielcontroller hinzugefügt. Und ich habe alle Aktionen angewiesen, beginnend mit einer Aktion. Und ich habe HTTP GET FOR-Aktion 123 hinzugefügt. Aktion für eine Aktion 56 sind HTTP-Post, deshalb haben sie HTTP-Post-Attribut zugewiesen. Und dann auch sieben ist eigentlich auch ein gepulstes. Dann Aktion 89 Aktion erhalten, dann sollte auch HTTP erhalten eine Aktion L11. Auch HTTP GET. Jetzt Upload wird rühmen und herunterladen. Es ist wieder gut. Also, jetzt, da wir alle diese Attribute hinzugefügt haben, Attribute, so dass alle unsere Aktionen in Beispiel Controller, lassen Sie uns auf Spiel klicken und werfen Sie einen Blick auf Swagger, Seele navigieren diese breiter. Und mal sehen. Wir sehen unser Beispiel. Controller direkt dort oben vor dem Element in Reihenfolge und Benutzercontroller. Und wir haben alle unsere Handlungen sind genau da. Obwohl dies waren, deshalb diese Verben, wenn Sie HTTP GET beide löschen möchten. Stiefel sind wichtige Kräfte für Swagger. Also ja, das ist es für diese Vibration oder eine Sache, die Sie vielleicht auch wissen sollten , ist, dass, wenn Sie zum Startup Vj und u für den Endpunkt gehen, und Sie eine weitere Präfix-Routen zu Ihrer CIF-Aktion hatten. So um Präfix gleich leere Zeichenfolge. Wenn Sie diese hinzufügen, müssen Sie nur zum Stammverzeichnis navigieren, um Sie zu zeigen. Und es wird Sie auch auf die Swagger-Seite umleiten. Du musst also nicht mal mehr schreiben. Also, wenn wir mit den Ziffern gehen, diese Aktion ein und wir navigieren zu der lokalen Host-Port-Nummer. Dadurch wird automatisch ein Regisseur zur Swagger-Seite hinzugefügt. Nun, das ist es für diesen Wagner und ich hoffe, Sie lernen etwas Neues und bleiben sehr viel und ich werde Sie im nächsten Video sehen.