8. týždeň

Úloha 6 - Webové služby

Ciele

  1. Implementujte REST webové služby pre servisné komponenty.

Úvod

Vašou úlohou na dnešnom cvičení je implementovať REST webové služby prostredníctvom technológie ASP.NET Core Web API vďaka ktorej môžeme pristupovať ku komponentom cez web.

Postup

Krok 1

Pridajte do Vášho riešenia nový webový projekt.

Obr. 1

Obr. 2

Pridajte do vytvoreného projektu závislosť na projekte, kde je implementovaná logika hry (v mojom projekte to je NPuzzleCore ). Vo vytvorenom projekte si vytvorte adresár s názvom APIControllers. Pridaje do projektu nový Controller pre skóre. Použite pravé tlačidlo nad adresárom APIControllers v Solution Exloreri, zvoľte v menu Add a následne Controler... Vyberte zo zoznamu API Controller Empty a nazvite ho ScoreController.

Obr. 3

Implementujte triedu nasledovne:

[Produces("application/json")]
[Route("api/Score")]
public class ScoreController : Controller
{
    private IScoreService scoreService = new ScoreServiceDatabase();
 
    // GET: api/Score
    [HttpGet]
    public IEnumerable<Score> Get()
    {
        return scoreService.GetTopScores();
    }
 
    // POST: api/Score
    [HttpPost]
    public void Post([FromBody]Score score)
    {
        scoreService.AddScore(score);
    }
}

Otestujte vytvorené webové služby prostredníctvom rozšírenia Postman pre Chrome, resp. aplikácie Postman. Najprv otestujeme získanie skóre - GET metóda na cestu api/Score. Spustite Potmana. Zvoľte metódu GET a vyplňte adresu REST služby. Port môže byť iný ako na obrázku - podľa konfigurácie v projekte. Preto najprv spustite webovú aplikácie a port si skopírujte z otvoreného browsra. Stlačte SEND.

Obr. 4

V prípade úspechu bude návratová hodnota 200 OK a v časti BODY by ste mali vidieť skóre vo formáte JSON (ak nejaké máte v databáze uložené). Teraz vyskúšame ukladanie skóre. Zmeňte metódu na POST, v časti Headers pridajte hlavičku s kľúčom Content-Type a s hodnotou application/json. Stlačte SEND.

Obr. 5

Obr. 6

Úloha 1.1

Implementujte webové rozhrania REST pre všetky servisné komponenty.

Pri implementácii servisných komponentov sa inšpirujte verziou hry NPuzzle z gitu: https://git.kpi.fei.tuke.sk/jaroslav.poruban/NPuzzle2020

Zdroje

  1. Web APIs in ASP.NET Core https://docs.microsoft.com/en-us/aspnet/core/web-api/