Heim Backend-Entwicklung C#.Net-Tutorial Der Beginn des Schreibens eines Webapi-Frameworks

Der Beginn des Schreibens eines Webapi-Frameworks

May 22, 2018 am 10:40 AM
api web webapi Kann Eigen

Wenn wir bis zu einem gewissen Grad lernen, möchten wir die zugrunde liegenden Dinge des Codes gründlich verstehen und auch über ein eigenes Framework verfügen. Dies gilt natürlich auch für Blogger. Dieser Artikel könnte der Beginn des Schreibens eines Webapi-Frameworks sein. Freunde, die das MVC-Framework studiert haben, werden feststellen, dass der Routing-MvcRouteHandler des MVC-Frameworks IRouteHandler implementiert, um unser Routing zu implementieren, und IRouteHandler nur ein Objekt zurückgeben muss, nämlich IHttpHandler, und IHttphandler verarbeitet http-Anfragen. Mit Freude stellten wir fest, dass wir bereits über die Kernelemente für das Schreiben eines Webapi, das Routing und die Bearbeitung von Anfragen verfügen. Vielleicht wird diese Artikelserie nicht im Detail erklären, was diese beiden Dinge sind, sondern sich auf ihre Verwendung konzentrieren. Interessierte Freunde können sich selbst darüber informieren, was für das Verständnis der Netzwerkanfrageverarbeitung unter .net von großem Nutzen sein wird.

Ohne weitere Umschweife fangen wir direkt an

Wir erstellen direkt ein komplett leeres asp.net-Webprojekt

Deaktivieren Sie alles.

Dann fügen wir einen BaseRouteHandler hinzu, der von (Implementierung) IRouteHandler geerbt wurde. Der Code lautet wie folgt:

 public class BaseRouteHandler:IRouteHandler
    {
        public IHttpHandler GetHttpHandler(RequestContext requestContext)
        {
            return new BaseHttpHandler();
        }
    }
Nach dem Login kopieren

Wir sehen, dass a BaseHttphandler, der von uns selbst geschrieben wurde

Erstellen Sie einen neuen BaseHttpHandler, um IHttpHandler zu implementieren. Beachten Sie, dass Sie nur IRequiresSessionState erben müssen erfordert keine Implementierung

public class BaseHttpHandler:IHttpHandler
    {
        public bool IsReusable
        {
            get { return false; }
        }
        public void ProcessRequest(HttpContext context)
        {
            var request = context.Request;
            var response = context.Response;
            var method = request.HttpMethod.ToLower();
            var result = string.Empty;
            
            result = string.Format("您正在请求BaseHttpHandler,请求方式是{0},queryStr={1}", method,request.QueryString);
            response.ContentType = "application/json";
            response.Write(result);
            response.End();
        }
    }
Nach dem Login kopieren

IHttpHander hat nur zwei Dinge, eines ist IsResuable, IsReusable-Attribut, MSDN erklärt es so: Rufen Sie einen Wert ab, der angibt, ob andere Anforderungen den IHttpHandler verwenden können Instanz. Mit anderen Worten: Nachfolgende HTTP-Anfragen können weiterhin Instanzen von Klassen verwenden, die diese Schnittstelle implementieren. Hier setzen wir sie auf false, da wir diesen Handler nicht mehr erben müssen.

Der andere ist ProcessRequest, das ist To Um spezifische Anfragen zu verarbeiten, enthält HttpContext verschiedene Parameter unserer http-Anfrage. Wir müssen nur die Kontextdaten verarbeiten.

Vor dem Zugriff müssen wir die Route registrieren

Wir fügen dem Programm eine globale globale Anwendungsklasse hinzu, löschen alle Methoden außer der Application_Start-Methode und schreiben dann den folgenden Code

 public class Global : System.Web.HttpApplication
    {
        protected void Application_Start(object sender, EventArgs e)
        {
            RouteTable.Routes.Add(new Route("api", new BaseRouteHandler()));
        }
    }
Nach dem Login kopieren

Zu diesem Zeitpunkt kann das Projekt normal ausgeführt werden, daher kompilieren und führen wir es ängstlich aus und geben die Adresse ein

Hinweis Oh, da unsere Route bei der API registriert ist, kann das Hinzufügen der /api-Route nach der Adressleiste unseres Projekts normalerweise eine Anfrage an unseren benutzerdefinierten HttpRouteHandler stellen.

Wir haben also gelernt, dass es drei grundlegendste Punkte gibt:

1. IRouterHandler implementieren,

2. IHttpHandler implementieren,

3. Route registrieren

Wenn es Sie juckt, dann setzen Sie Ihr eigenes Framework um!

Fortsetzung folgt. . .

Das obige ist der detaillierte Inhalt vonDer Beginn des Schreibens eines Webapi-Frameworks. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Kann ich den Download-Ordner löschen? Kann ich den Download-Ordner löschen? Feb 19, 2024 pm 03:38 PM

Können Downloads gelöscht werden? Mit dem Aufkommen des digitalen Zeitalters sind in den letzten Jahren immer mehr digitale Produkte und Dienstleistungen in unserem Leben aufgetaucht. Daraus folgt, dass unsere Nachfrage nach digitalen Inhalten von Tag zu Tag steigt. In unserem täglichen Leben und bei unserer Arbeit müssen wir häufig verschiedene Dateien herunterladen, z. B. Dokumente, Bilder, Audios, Videos usw. Diese heruntergeladenen Dateien werden normalerweise in einem Ordner namens „Downloads“ gespeichert. Mit der Zeit stellen wir jedoch oft fest, dass"

Welche Spiele eignen sich zum Spielen mit i34150 und 1G-unabhängiger Grafik (welche Spiele sind für i34150 geeignet) Welche Spiele eignen sich zum Spielen mit i34150 und 1G-unabhängiger Grafik (welche Spiele sind für i34150 geeignet) Jan 05, 2024 pm 08:24 PM

Welche Spiele können mit dem i34150 mit 1G-unabhängiger Grafik gespielt werden? Kann er kleine Spiele wie LoL spielen? GTX750 und GTX750TI sind sehr geeignete Grafikkarten. Wenn Sie nur ein paar kleine Spiele spielen oder keine Spiele spielen, empfiehlt sich die Verwendung der integrierten i34150-Grafikkarte. Im Allgemeinen ist der Preisunterschied zwischen Grafikkarten und Prozessoren nicht sehr groß, daher ist es wichtig, eine vernünftige Kombination zu wählen. Wenn Sie 2 GB Videospeicher benötigen, wird empfohlen, GTX750TI zu wählen. Wenn Sie nur 1 GB Videospeicher benötigen, wählen Sie einfach GTX750. Die GTX750TI kann als verbesserte Version der GTX750 mit Übertaktungsfunktionen angesehen werden. Welche Grafikkarte mit dem i34150 gekoppelt werden kann, hängt von Ihren Anforderungen ab. Wenn Sie eigenständige Spiele spielen möchten, empfiehlt es sich, einen Wechsel der Grafikkarte in Betracht zu ziehen. du kannst wählen

So gehen Sie mit Laravel-API-Fehlerproblemen um So gehen Sie mit Laravel-API-Fehlerproblemen um Mar 06, 2024 pm 05:18 PM

Titel: Wie man mit Laravel-API-Fehlerproblemen umgeht, sind spezifische Codebeispiele erforderlich. Bei der Entwicklung von Laravel treten häufig API-Fehler auf. Diese Fehler können verschiedene Ursachen haben, z. B. Logikfehler im Programmcode, Probleme bei Datenbankabfragen oder Fehler bei externen API-Anfragen. Der Umgang mit diesen Fehlerberichten ist ein zentrales Thema. In diesem Artikel wird anhand spezifischer Codebeispiele gezeigt, wie Laravel-API-Fehlerberichte effektiv verarbeitet werden. 1. Fehlerbehandlung in Laravel

Was sind Webstandards? Was sind Webstandards? Oct 18, 2023 pm 05:24 PM

Webstandards sind eine Reihe von Spezifikationen und Richtlinien, die vom W3C und anderen verwandten Organisationen entwickelt wurden. Sie umfassen die Standardisierung von HTML, CSS, JavaScript, DOM, Web-Zugänglichkeit und Leistungsoptimierung , Wartbarkeit und Leistung. Das Ziel von Webstandards besteht darin, die konsistente Anzeige und Interaktion von Webinhalten auf verschiedenen Plattformen, Browsern und Geräten zu ermöglichen und so ein besseres Benutzererlebnis und eine bessere Entwicklungseffizienz zu gewährleisten.

So aktivieren Sie den administrativen Zugriff über die Cockpit-Web-Benutzeroberfläche So aktivieren Sie den administrativen Zugriff über die Cockpit-Web-Benutzeroberfläche Mar 20, 2024 pm 06:56 PM

Cockpit ist eine webbasierte grafische Oberfläche für Linux-Server. Es soll vor allem neuen/erfahrenen Benutzern die Verwaltung von Linux-Servern erleichtern. In diesem Artikel besprechen wir die Cockpit-Zugriffsmodi und wie Sie den Administratorzugriff von CockpitWebUI auf das Cockpit umstellen. Inhaltsthemen: Cockpit-Eingabemodi Ermitteln des aktuellen Cockpit-Zugriffsmodus Aktivieren des Verwaltungszugriffs für das Cockpit über CockpitWebUI Deaktivieren des Verwaltungszugriffs für das Cockpit über CockpitWebUI Fazit Cockpit-Eingabemodi Das Cockpit verfügt über zwei Zugriffsmodi: Eingeschränkter Zugriff: Dies ist die Standardeinstellung für den Cockpit-Zugriffsmodus. In diesem Zugriffsmodus können Sie vom Cockpit aus nicht auf den Webbenutzer zugreifen

React API Call Guide: So interagieren und übertragen Sie Daten mit der Backend-API React API Call Guide: So interagieren und übertragen Sie Daten mit der Backend-API Sep 26, 2023 am 10:19 AM

ReactAPI-Aufrufanleitung: So interagieren Sie mit der Backend-API und übertragen Daten an diese. Übersicht: In der modernen Webentwicklung ist die Interaktion mit und die Übertragung von Daten an die Backend-API eine häufige Anforderung. React bietet als beliebtes Front-End-Framework einige leistungsstarke Tools und Funktionen, um diesen Prozess zu vereinfachen. In diesem Artikel wird erläutert, wie Sie mit React die Backend-API aufrufen, einschließlich grundlegender GET- und POST-Anfragen, und es werden spezifische Codebeispiele bereitgestellt. Installieren Sie die erforderlichen Abhängigkeiten: Stellen Sie zunächst sicher, dass Axi im Projekt installiert ist

Analyse der Oracle API-Integrationsstrategie: Erreichen einer nahtlosen Kommunikation zwischen Systemen Analyse der Oracle API-Integrationsstrategie: Erreichen einer nahtlosen Kommunikation zwischen Systemen Mar 07, 2024 pm 10:09 PM

Analyse der Oracle API-Integrationsstrategie: Um eine nahtlose Kommunikation zwischen Systemen zu erreichen, sind spezifische Codebeispiele erforderlich. Im heutigen digitalen Zeitalter müssen interne Unternehmenssysteme miteinander kommunizieren und Daten austauschen, und Oracle API ist eines der wichtigen Tools, um eine nahtlose Kommunikation zu erreichen Kommunikation zwischen Systemen. Dieser Artikel beginnt mit den grundlegenden Konzepten und Prinzipien von OracleAPI, untersucht API-Integrationsstrategien und gibt schließlich spezifische Codebeispiele, um den Lesern zu helfen, OracleAPI besser zu verstehen und anzuwenden. 1. Grundlegende Oracle-API

So entwickeln Sie eine einfache CRUD-API mit MongoDB So entwickeln Sie eine einfache CRUD-API mit MongoDB Sep 19, 2023 pm 12:32 PM

So verwenden Sie MongoDB zum Entwickeln einer einfachen CRUDAPI. In der modernen Webanwendungsentwicklung sind CRUD-Operationen (Hinzufügen, Löschen, Ändern, Abfragen) eine der häufigsten und wichtigsten Funktionen. In diesem Artikel stellen wir die Entwicklung einer einfachen CRUD-API mithilfe der MongoDB-Datenbank vor und stellen spezifische Codebeispiele bereit. MongoDB ist eine Open-Source-NoSQL-Datenbank, die Daten in Form von Dokumenten speichert. Im Gegensatz zu herkömmlichen relationalen Datenbanken verfügt MongoDB nicht über ein vordefiniertes Schema

See all articles