Looking for asp.net-web-api2 Keywords? Try Ask4Keywords

asp.net-web-api2Erste Schritte mit asp.net-web-api2


Bemerkungen

Dieser Abschnitt bietet einen Überblick über das, was asp.net-web-api2 ist und warum ein Entwickler es verwenden möchte.

Es sollte auch alle großen Themen in asp.net-web-api2 erwähnen und auf die verwandten Themen verweisen. Da die Dokumentation für asp.net-web-api2 neu ist, müssen Sie möglicherweise erste Versionen dieser verwandten Themen erstellen.

Hallo Web Api

Web Api 2 - Hello World-Beispiel

Wir werden eine neue einfache Webapi-Anwendung erstellen, die Json mit Nachricht und Benutzername zurückgibt.
Lasst uns beginnen! Erstellen Sie zunächst ein neues Web Api-Projekt mit Visual Studio und wählen Sie Leere Vorlage. Achten Sie darauf, den Ordner "Web Api" zu überprüfen:

Geben Sie hier die Bildbeschreibung ein

ANMERKUNG Ich habe die Vorlage "Web Api" nicht ausgewählt, da sie zur Bereitstellung der API-Hilfeseite einen Verweis auf ASP.NET MVC hinzufügt. Und in einer solchen Basisanwendung brauchen wir sie nicht wirklich.

Modell hinzufügen

Ein Modell ist eine C # -Klasse, die einige Daten in unserer App darstellt. Die ASP.NET-Web-API kann das Modell automatisch in JSON, XML oder ein anderes Format serialisieren (abhängig von der Konfiguration).

In unserer Anwendung werden wir nur ein Modell erstellen, aber in der Praxis gibt es viele Apps.

Klicken Sie im Projektmappen- Explorer mit der rechten Maustaste auf den Ordner Models . Als nächstes wählen Sie Hinzufügen und dann Klasse . Benennen Sie die Klasse "HelloMessage". Unser Modell benötigt zwei Eigenschaften: MessageText und UserName :

namespace WebApiHelloWorld.Models
{
    public class HelloMessage
    {
        public string MessageText { get; set; }
        public string UserName { get; set; }
    }
}
 

Controller hinzufügen

Ein Controller verarbeitet HTTP-Anforderungen. Unsere App benötigt nur einen Controller, der Json mit Hello-Nachricht und Benutzername (den wir als URL übergeben) zurückgibt.
Klicken Sie im Projektmappen- Explorer mit der rechten Maustaste auf den Ordner "Controller" . Als nächstes wählen Sie Hinzufügen und dann Controller . Wählen Sie im geöffneten Fenster Web API Controller - Empty aus und klicken Sie auf Hinzufügen .

Geben Sie hier die Bildbeschreibung ein

Setzen Sie den Controller-Namen als "HelloController". Als nächstes bearbeiten Sie den Code des erstellten Controllers. Wir müssen eine Methode hinzufügen, die eine Hello-Nachricht zurückgibt.

using System.Web.Http;
using WebApiHelloWorld.Models;

namespace WebApiHelloWorld.Controllers
{
    public class HelloController : ApiController
    {
        public HelloMessage GetMessage(string name)
        {
            HelloMessage message = new HelloMessage
            {
                MessageText = "Hello my Dear!",
                UserName = name
            };

            return message;
        }
    }
}
 

HINWEIS Achten Sie darauf, fügen Sie using WebApiHelloWorld.Models . Ohne sie findet Ihr Controller keine HelloMessage-Klasse.

Fertig

Das ist alles! Jetzt müssen Sie nur noch Ihre Anwendung erstellen und starten. Drücken Sie einfach Strg + F5 oder nur F5 (ohne Debugging zu starten). Visual Studio startet den Webbrowser. Sie müssen Ihren Controller anrufen. Fügen Sie dazu am Ende der URL "/ api / hello? Name = John" hinzu. Das Ergebnis sollte sein:

{
    "MessageText": "Hello my Dear!",
    "UserName": "John"
}
 

Installation oder Setup

Detaillierte Anweisungen zum Einrichten oder Installieren von asp.net-web-api 2.

Was und warum Asp.Net Web API2?

Was und warum ?

Die Web API2 von Asp.Net ist die neueste Version der Web API. Es ist eine einfache Möglichkeit, einen RESTful-Webdienst zu implementieren, der alle Vorteile des Asp.Net-Frameworks nutzt. Wenn Sie die grundlegenden Prinzipien von REST verstanden haben, ist die Implementierung einer Asp.net Web API2 sehr einfach. Web API2 basiert auf dem modularen, steckbaren Pipeline-Modell von Asp.Net. Dies bedeutet, dass ein Server, der eine Web-API2 hostet, eine Anforderung empfängt, zuerst die Asp.Nets-Anforderungspipeline durchläuft. Auf diese Weise können Sie problemlos eigene Module hinzufügen, wenn die Standardfunktionen für Ihre Anforderungen nicht ausreichen. Mit den letzten Ankündigungen zu ASP.net vNext bedeutet dies auch, dass Sie Ihre Web-API2 möglicherweise außerhalb von Windows Server hosten können, was eine Reihe von Anwendungsfällen ermöglicht. Siehe hier für Details.

Wie funktioniert

Web API2 verwendet die Controller- und Action-Konzepte von MVC. Ressourcen werden direkt Controller zugewiesen. Sie haben normalerweise einen anderen Controller für jede Ihrer Hauptdatenentitäten (Produkt, Person, Auftrag usw.). Web API2 verwendet das Asp.Net-Routingmodul, um URLs Controller zuzuordnen. Normalerweise werden APIs in einer /api/ gespeichert, wodurch API-Controller von anderen Nicht-APIs auf derselben Website unterschieden werden.

Aktionen werden für die Zuordnung zu bestimmten HTTP-Verben verwendet. Beispielsweise haben Sie normalerweise eine GET-Aktion, die alle Entitäten zurückgibt. Diese Aktion würde auf /api/Products reagieren (wobei "Produkte" Ihr Controller ist) und etwa so aussehen würde:

 public IEnumerable<string> Get()
 {
     return new string[] { "value1", "value2" };
 }
 

Möglicherweise haben Sie auch eine GET Aktion, die eine bestimmte ID akzeptiert und eine bestimmte Entität zurückgibt. Es würde auf /api/Products/81 antworten und würde ungefähr so ​​aussehen:

public string Get(int id)
 {
    return "value";
 }
 

Die Verwendung der Web-API birgt viele versteckte Vorteile, die Sie möglicherweise nicht erkennen, aber tatsächlich viel Arbeit sparen.

Web API2 ist Teil des "One Asp.Net"

Web API2 ist Teil der "One Asp.Net" -Familie, was bedeutet, dass alle nativ genutzten Funktionen, die Sie derzeit mit MVC oder Webformularen verwenden, nativ unterstützt werden. Dazu gehören (dies sind nur einige Beispiele):

  • Entity Framework
  • Autorisierung und Identität
  • Gerüst
  • Routing

Serialisierung und Modellbindung

Web API2 ist standardmäßig so eingerichtet, dass Antworten in XML oder JSON bereitgestellt werden (JSON ist Standard). Als Entwickler müssen Sie jedoch keine Konvertierung oder Analyse durchführen - Sie geben einfach ein stark typisiertes Objekt zurück, und Web API2 konvertiert es in XML oder JSON und gibt es an den aufrufenden Client zurück. Dieser Vorgang wird als Inhaltsaushandlung bezeichnet. Dies ist ein Beispiel für eine GET Aktion, die ein stark typisiertes Product-Objekt zurückgibt.

 public Product GetProduct(int id)
 {
    var product = _products.FirstOrDefault(p => p.ID == id);
    if (product == null)
    {
       throw new HttpResponseException(HttpStatusCode.NotFound);
    }
    return Request.CreateResponse(HttpStatusCode.OK, product);
 }
 

Dies funktioniert auch für eingehende Anfragen mit einer Funktion namens Modellvalidierung. Mit der Modellvalidierung kann Web API2 eingehende Antworttextdaten in einem stark typisierten Objekt prüfen und analysieren, damit Sie es in Ihrem Code bearbeiten können. Dies ist ein Beispiel für die Modellbindung:

 public HttpResponseMessage Post(Product product)
 {
     if (ModelState.IsValid)
     {
         // Do something with the product (not shown).
 
         return new HttpResponseMessage(HttpStatusCode.OK);
     }
     else
     {
         return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
     }
 }