Kurzy a certifikace Dev & Test

API

REST API Design

19.900 CZK
Days2
13. 12.14. 12. 2018
Praha
CZ
8. 1. 9. 1. 2019
Praha
CZ

Pohybujeteli se v dnešním světě mobilních aplikací, internetových služeb, cloudových řešení, microservices a tak podobně, nemohli jste nenarazit na pojem REST APIs. Všichni je používají, všichni je milují, všichni mají silný názor na to, co je a co není REST. Tento kurz se vám pokusí přiblížit, v čem spočívá jejich kouzlo. 

Nejdříve se seznámíme s teorii co jsou REST APIs, odkud se vzaly, na jakých principech jsou postaveny. Pak se zaměříme především na praktické aspekty návrhu a vývoje.  Začneme od samotných základů a postupně se propracujeme až ke komplikovanějším problémům jako je autentizace, verzování nebo bezpečnost. Navrhneme spolu jednoduché API a na něm si ukážeme jak i takové jednoduché API může skýtat nečekané problémy a komplikace. Projdeme si i další fáze vývojového cyklu testování, deployment a provoz. Nakonec si ukážeme, proč je důležité pohlížet na APIs, jako na "first class" produkt.

Cílová skupina

  • Backend vývojáři
  • Fullstack vývojáři
  • Software architekti
  • IT profesionálové
  • Kurz je vhodný jak pro začátečníky, tak i pro pokročilé.

Cíle kurzu

Účastníci se mimo jiné naučí:

  • Principy návrhu webových služeb.
  • Teoretické základy REST architektury.
  • Co je to API kontrakt, "specification first" přístup.
  • Návrh REST APIs praktický přístup, "best practices".
  • Autentizace, bezpečnost, verzování, zpracování chyb u REST API.
  • Řešení praktických problémů kolem návrhu a vývoje webových služeb.
  • Celistvý pohled na API jako produkt od návrhu až po provoz.

Garant kurzu

IVAN NOVAKOV

Ivan se věnuje software engineeringu už více než 18 let. V posledních letech se specializuje na webová API, microservices a všechno kolem nich návrh, vývoj, testování a provoz. V současné době pracuje na pozici Tech Lead pro Web API Platformu ve společnosti MSD, která je jedna z největších farmaceutických společností na světě.

Osnova

Úvod

  • Historie webových služeb CORBA
  • XMLRPC
  • SOAP, ...

Obecne principy pro návrh webových služeb

  • API Kontrakt
  • Znovu použitelnost, DX ("developer experience")
  • Abstrakce, zapouzdření, "loose coupling"
  • Konzistence, konvence
  • Stateful vs. stateless

Úvod do REST

  • Co to je?
  • Definice podle Roye Fieldinga
  • Richardson Maturity Model
  • Amundsen Maturity Model
  • Na co se hodí REST a na co ne

REST základy

  • Terminologie
  • Resource model
  • Reprezentace dat
  • HTTP jako nosný protokol
  • Hypermedia (HATEOAS)

 Zpracování chyb

  • Základní principy
  • Standardy a formáty chybových odpovědí
  • Zpracování chyb z pohledu klienta

Verzování

  • Verzování není "RESFful"
  • Tři "špatné" způsoby verzování
  • Evoluce jako alternativa k verzování

Autentizace a autorizace

  • Klientská vs. uživatelská autentizace
  • Tradiční přístup sessions
  • "Basic auth" autentizace
  • OAuth2
  • OpenID Connect

Bezpečnost

  • Přenos dat
  • Ošetření vstupu
  • Zpracování citlivých údajů
  • Síťová bezpečnost

Cachování

  • Možnosti HTTP
  • Strategie cachování
  • Základní problémy

API kontrakt a "specificationfirst" princip

  • Co je API kontrakt?
  • Výhody použití API specifikace
  • Formáty pro API specifikace OAS
  • API Blueprint

Základy vývoje

  • Vývojářské prostředí IDE
  • VCS, produkční/neprodukční prostředí
  • Konfigurace
  • Code style
  • Standardy a konvence

Testování

  • Druhy testování
  • Funkcionální "black box" testování
  • Generované testy
  • "Performance" testování
  • Bezpečnostní testy

Continuous integration / delivery

  • Předpoklady
  • Automatizace vývoje
  • Deployment

API infrastruktura

  • Hosting
  • API gateway
  • Monitoring a logování
  • Bezpečnost

API jako produkt

  • Životní cyklus"
  • agile" a Dev(Sec)Ops
  • Orientace na klienta prototypy,feedback
  • Developer experience (DX) API dokumentace, Sandbox, komunita
  • Analytics

 

Předpoklady účastníka

  • Základní zkušenosti s návrhem a vývojem aplikací
  • Základy HTTP
  • Znalost programovacích jazyků výhodou
  • Předchozí zkušenosti s návrhem a vývojem webových služeb výhodou

Poptejte kurz u nás

Kurzy
Submit
* Povinné pole