ASP.NET WWW-ohjelmointirajapinnan ohjauskoneista
- 4 minuuttia
Loit edellisessä harjoituksessa verkkosovelluksen, joka tarjoaa mallisääennustetietoja ja jota käytit sitten HTTP Read-Eval-Print Loopissa (REPL).
Ennen kuin aloitat oman PizzaController luokan kirjoittamisen, katsotaanpa WeatherController koodiesimerkistä, miten se toimii. Tässä osiossa opit, miten WeatherController käyttää ControllerBase-perusluokkaa ja muutamia .NET-määritteitä toiminnallisen verkko-ohjelmointirajapinnan luomiseen muutamalla kymmenellä koodirivillä. Kun ymmärrät nämä käsitteet, olet valmis kirjoittamaan oman PizzaController luokan.
Tässä on koko WeatherController luokan koodi. Älä huolestu, jos siinä ei ole vielä järkeä. Käydään tämä läpi vaihe vaiheittain.
using Microsoft.AspNetCore.Mvc;
namespace ContosoPizza.Controllers;
[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
{
private static readonly string[] Summaries = new[]
{
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
};
private readonly ILogger<WeatherForecastController> _logger;
public WeatherForecastController(ILogger<WeatherForecastController> logger)
{
_logger = logger;
}
[HttpGet(Name = "GetWeatherForecast")]
public IEnumerable<WeatherForecast> Get()
{
return Enumerable.Range(1, 5).Select(index => new WeatherForecast
{
Date = DateTime.Now.AddDays(index),
TemperatureC = Random.Shared.Next(-20, 55),
Summary = Summaries[Random.Shared.Next(Summaries.Length)]
})
.ToArray();
}
}
Perusluokka: ControllerBase
Rekisterinpitäjä on julkinen luokka, jolla on vähintään yksi julkinen menetelmä eli toimintoja. Käytännön mukaan rekisterinpitäjä sijoitetaan projektijuuren Controllers -hakemistoon. Toiminnot näytetään HTTP-päätepisteinä reitityksen kautta. HTTPGET pyyntö https://localhost:{PORT}/weatherforecast suorittaa Get()-luokan WeatherForecastController-menetelmän.
Ensimmäiseksi on huomattava, että tämä luokka perii ControllerBase perusluokasta. Tämä perusluokka tarjoaa paljon vakiotoimintoja HTTP-pyyntöjen käsittelyyn, joten voit keskittyä sovelluksesi tiettyyn liiketoimintalogiikkaan.
Muistiinpano
Jos sinulla on kokemusta Razor Pages - tai model-view-controller (MVC) -arkkitehtuurikehityksestä ASP.NET Coressa, olet käyttänyt Controller -luokkaa. Älä luo WWW-ohjelmointirajapinnan ohjainta Controller.
Controller perustuu ControllerBase ja lisää näkymien tuen, joten se on verkkosivujen käsittelyyn, ei verkon ohjelmointirajapintapyyntöihin.
Ohjelmointirajapinnan ohjauskoneen luokan määritteet
WeatherForecastControllerkäytetään kahta tärkeää määritettä seuraavassa koodissa esitetyllä tavalla:
[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
[ApiController] mahdollistaa mielipiteen toimintatavan, jotka helpottavat verkon ohjelmointirajapintojen muodostamista. Toimintamalleja ovat esimerkiksi parametrilähteen tunnistus, määritteiden reititys vaatimuksena, sekä mallin vahvistuksen virheenkäsittelynparannukset*.
[Route] määrittää reititysmallin [controller].
-tunnus korvataan rekisterinpitäjän nimellä (kirjainkoko ei ole merkitsevä ilman [controller] -liitettä). Tämä rekisterinpitäjä käsittelee https://localhost:{PORT}/weatherforecastkoskevat pyynnöt.
Muistiinpano
Reitti voi sisältää staattisia merkkijonoja, kuten kohdassa api/[controller]. Tässä esimerkissä tämä rekisterinpitäjä käsittelisi pyynnön https://localhost:{PORT}/api/weatherforecast.
Säätulosten tarjoaminen Get()-menetelmällä
WeatherForecastController sisältää yhden ohjauskoneen toiminnon, jonka [HttpGet(Name = "GetWeatherForecast")] määrite määrittää. Tämä määrite reitittää HTTP-GET-pyynnöt public IEnumerable<WeatherForecast> Get()-menetelmään. Kuten edellisessä harjoituksessa näit, https://localhost:{PORT}/weatherforecast pyynnöt ovat aiheuttaneet säätulosten palauttamisen.
Kuten jäljempänä tässä moduulissa kerrotaan, muita yleisiä toimintoja liittyy WWW-ohjelmointirajapintaan, joka suorittaa CRUD-toimintoja (GET, PUT, POST, DELETE). Ohjelmointirajapinnan ohjauskoneen on kuitenkin otettava käyttöön vain yksi rekisterinpitäjän toiminto.
Tässä tapauksessa saat palautettavien WeatherForecast kohteiden täydellisen luettelon.
GET-toiminnon avulla voidaan myös noutaa yksittäinen kohde välittämällä tunniste. ASP.NET voit noutaa yksittäisen kohteen käyttämällä [HttpGet("{id}")]-määritettä. Otat tämän määritteen käyttöön seuraavassa harjoituksessa.
Nyt kun tunnet www-ohjelmointirajapinnan ohjauskoneen perusosat, voit luoda oman PizzaController luokan.