Skip to content
Tällä sivulla

Luentomateriaali

Luento 1

Luento 2

Luento 3

Web-ohjelmointirajapintojen suunnittelu ja testaus

  • Katsotaan Insomnian tarjoamia työkaluja
  • Tutustutaan Apidog palveluun, kirjautuminen mahdollista koulun tunnuksilla (Google)
  • Miten OpenAPI liittyy rajapintojen suunnitteluun ja testaamiseen?
  • Mihin ohjelmistokehityksen vaiheeseen rajapintasuunnittelu sijoittuu?

RESTful web API design

Luento 4

Edistyneet rajapintateknologiat - GraphQL

  • GraphQL perusteet
  • GraphQL vs REST
  • GraphQL rajapinnan käyttö

Tuntitehtävä, tehdään javaScript client GraphQL rajapinnan hyödyntämiseen

  1. Toteuta funktio jossa haet kaikki maat, sisällytä dataan mukaan maakoodi sekä maan nimi
  2. Toteuta funktio jossa haet yksittäisen maan tiedot maakoodilla
  3. Toteuta funktio jossa haet kaikki maanosat. Listaa samalla queryllä myös kaikki maat maanosittain. Sisällytä vähintään maakoodi mukaan maakohtaiseen dataan.

Tehtävä katsotaan läpi yhdessä luennolla. Kirjaa tekemäsi asiat ja havainnot oppimispäiväkirjaan.

Linkit:

Luento 5

Tietoturva - autentikaatio ja autorisointi

Harjoitus luennolla:

  • Kloonaa (tai forkkaa ja kloonaa) seuraava repo koneellesi ja toimi README:n ohjeiden mukaan:

https://peke.plab.fi/matias.hiltunen/fastapi-auth-example

Linkit:

https://cheatsheetseries.owasp.org/index.html

https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP

https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication

https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies

https://www.kyberturvallisuuskeskus.fi/fi

https://auth0.com/

Luento 6

JavaScript - web-ohjelmointirajapintojen hyödyntäminen verkkoselaimella.

  • JavaScript ohjelmointielen kertaamista.
  • ToDo sovelluksen kokonaisarkkitehtuuri
  • Tutustutaan Reactiin
  • Client tehtävän aloitus (Tehtävä 2).

Linkit:

https://stackblitz.com/?starters=frontend

https://playcode.io/react

Luento 7

  • JavaScript ja asynkronisuus
  • Node.js
  • API Quizzes avataan

Luento 8

WebSocket

Tätä on mahdollista hyödyntää Client tehtävässä (tehtävä 2) soveltavana osana!

Linkit:

https://blog.logrocket.com/websocket-tutorial-real-time-node-react/

NiceToKnow:

  • Edistynyt rajapintateknologia P2P yhteyksien hyödyntämiseen webissä, esim. videopuheluissa: WebRTC

Luento 9

gRPC ja Protocol Buffers

  • gRPC perusteet
  • Kokeillaan käytännössä luennolla

Linkkejä:

Python esimerkki: https://peke.plab.fi/matias.hiltunen/grpc-python-example

Node.js gRPC client esimerkki: https://peke.plab.fi/matias.hiltunen/grpc-node-example

https://nilsmagnus.github.io/post/proto-json-sizes/

https://grpc.io/blog/mobile-benchmarks/

https://sakshichahal53.medium.com/json-vs-protocol-buffer-simplified-dbd6b69ca528

Lapin AMK:n Web-ohjelmointirajapinnat opintojakson nettisivu.