asp.net-web-api2Aan de slag met asp.net-web-api2


Opmerkingen

Deze sectie geeft een overzicht van wat asp.net-web-api2 is en waarom een ontwikkelaar het misschien wil gebruiken.

Het moet ook alle grote onderwerpen binnen asp.net-web-api2 vermelden en een link naar de gerelateerde onderwerpen bevatten. Aangezien de documentatie voor asp.net-web-api2 nieuw is, moet u mogelijk eerste versies van die gerelateerde onderwerpen maken.

Hallo web api

Web Api 2 - Hallo wereld voorbeeld

We gaan een nieuwe eenvoudige Web Api-applicatie maken die ons Json teruggeeft met bericht en gebruikersnaam.
Laten we beginnen! Maak eerst een nieuw Web Api-project met Visual Studio en selecteer Lege sjabloon. Controleer de map "Web Api":

voer hier de afbeeldingsbeschrijving in

OPMERKING Ik heb de "Web Api" -sjabloon niet gekozen omdat deze een verwijzing naar ASP.NET MVC toevoegt om de API-helppagina te bieden. En in zo'n basistoepassing hebben we het niet echt nodig.

Een model toevoegen

Een model is een C # -klasse die enkele gegevens in onze app weergeeft. ASP.NET Web API kan het model automatisch serialiseren naar JSON, XML of een ander formaat (afhankelijk van de configuratie).

In onze applicatie zullen we slechts één model maken, maar real-world apps hebben er meestal veel van.

Klik in Solution Explorer met de rechtermuisknop op de map Modellen . Selecteer vervolgens Toevoegen en selecteer vervolgens Klasse . Noem de klasse "HelloMessage". Ons model heeft twee eigenschappen nodig: MessageText en Gebruikersnaam :

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

Een controller toevoegen

Een controller verwerkt HTTP-aanvragen. Onze app heeft slechts één controller nodig die Json met Hello-bericht en gebruikersnaam retourneert (die we zullen doorgeven in de URL).
Klik in Solution Explorer met de rechtermuisknop op de map Controllers . Selecteer vervolgens Toevoegen en selecteer vervolgens Controller . Selecteer Web API Controller - Leeg in het geopende venster en klik op Toevoegen .

voer hier de afbeeldingsbeschrijving in

Stel de controller-naam in op "HelloController". Bewerk vervolgens de code van de gemaakte controller. We moeten een methode toevoegen die Hallo bericht retourneert.

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;
        }
    }
}
 

OPMERKING Voeg toe using WebApiHelloWorld.Models . Zonder dit zal uw controller de HelloMessage-klasse niet vinden.

Af hebben

Dat is alles! Nu hoeft u alleen maar uw applicatie te bouwen en te starten. Druk gewoon op Ctrl + F5 of alleen F5 (om te starten zonder foutopsporing). Visual Studio start de webbrowser. U moet uw controller bellen. Voeg daarvoor aan het einde van de URL "/ api / hello? Name = John" toe. Het resultaat moet zijn:

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

Installatie of instellingen

Gedetailleerde instructies voor het instellen of installeren van asp.net-web-api 2.

Wat en waarom Asp.Net Web API2?

Wat en waarom ?

Asp.Net's Web API2 is de nieuwste versie van Web API. Het is een gemakkelijke manier om een RESTful-webservice te implementeren met alle goede eigenschappen die het Asp.Net-framework biedt. Zodra u de basisprincipes van REST begrijpt, is een Asp.net Web API2 zeer eenvoudig te implementeren. Web API2 is gebaseerd op het modulaire, inplugbare pijplijnmodel van Asp.Net. Dit betekent dat wanneer een server die een web-API2 host, een aanvraag ontvangt, deze eerst de aanvraagpijplijn van Asp.Nets doorloopt. Hiermee kunt u eenvoudig uw eigen modules toevoegen als u vindt dat de standaardmogelijkheden niet voldoende zijn voor uw behoeften. Met de recente aankondigingen op ASP.net vNext betekent dit ook dat u uw Web API2 mogelijk buiten Windows Server kunt hosten, wat een hele reeks gebruiksgevallen opent. Zie hier voor meer informatie.

Hoe werkt

Web API2 gebruikt de controller- en actieconcepten van MVC. Bronnen worden rechtstreeks toegewezen aan controllers; u zou doorgaans een verschillende controller hebben voor elk van uw belangrijkste gegevensentiteiten (Product, Persoon, Bestelling, enz.). Web API2 gebruikt de Asp.Net-routing-engine om URL's toe te wijzen aan controllers. Doorgaans worden API's bewaard binnen een /api/ route die helpt API-controllers te onderscheiden van andere niet-API op dezelfde website.

Acties worden gebruikt om specifieke HTTP-werkwoorden toe te wijzen. U hebt bijvoorbeeld meestal een GET-actie die alle entiteiten retourneert. Deze actie zou reageren op /api/Products (waarbij 'products' uw controller is) en zou er ongeveer zo uitzien:

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

Mogelijk hebt u ook een GET actie die een specifieke ID accepteert en een specifieke entiteit retourneert. Het zou reageren op /api/Products/81 en zou er ongeveer zo uitzien:

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

Er zijn veel grote verborgen voordelen aan het gebruik van Web API die u zich misschien niet realiseert maar u veel werk bespaart.

Web API2 is onderdeel van de 'One Asp.Net'

Web API2 maakt deel uit van de 'One Asp.Net' familie, wat betekent dat het native alle geweldige gedeelde functies ondersteunt die u momenteel mogelijk gebruikt met MVC of webformulieren, dit omvat (dit zijn slechts enkele voorbeelden):

  • Entiteitskader
  • Autorisatie en identiteit
  • Stellingen
  • routing

Serialisatie en modelbinding

Web API2 is standaard ingesteld om antwoorden te bieden in XML of JSON (JSON is standaard). Als ontwikkelaar hoeft u echter geen conversie of parsering uit te voeren - u retourneert gewoon een sterk getypt object en Web API2 converteert het naar XML of JSON en stuurt het terug naar de aanroepende client, dit is een proces dat Content Negotiation wordt genoemd. Dit is een voorbeeld van een GET actie die een sterk getypt productobject retourneert.

 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);
 }
 

Dit werkt ook voor inkomende aanvragen met behulp van een functie genaamd Model Validation. Met Model Validation is Web API2 in staat binnenkomende responslichaamgegevens te valideren en te parseren naar een sterk getypt object waarmee u in uw code kunt werken. Dit is een voorbeeld van modelbinding:

 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);
     }
 }