Der Beginn des Schreibens eines Webapi-Frameworks

零下一度
Freigeben: 2018-05-22 10:40:57
Original
3904 Leute haben es durchsucht

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!

Verwandte Etiketten:
Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!