Projekts - Laikapstākļu API
Atjaunots: 2023-11-21
Praktiskais projekts, lai pielietotu pamata API zināšanas.
Saturs
- Uzdevuma apraksts
- Darba gaita
- Nepieciešamie resursi
- Nepieciešamās zināšanas
- Ieteikumi
- Programmēšana II SR
- HTML, CSS, JS paraugs
Uzdevuma apraksts
Izstrādāt lietotni, kas atgriež pašreizējos laikapstākļus jebkurā pasaules pilsētā.

Laikapstākļu iegūšanai var izmantot OpenWeather API.
Darba gaita
Paredzamais izpildes laiks: 160 min.
Izstrāde
Pamata līmenis
- Sastādīt blokshēmu, kas apraksta plānoto risinājumu.
- sagatavot HTML, JS, CSS datņu struktūru, izmantojot HTML, CSS, JS paraugs;
- Izpētīt OpenWeather API dokumentāciju un izplānot test API pieprasījumu;
- Izveidot pieprasījuma saiti, lai iegūtu laikapstākļu datus ar ievadi;
- Apstrādāt atbildi, lai nolasītu datus;
- Nolasīt atbildes statusa kodu;
- Nolasīt informāciju par temperatūru un laikapstākļiem;
- Attēlot temperatūru un aprakstu HTML;
- Blokshēmā sakopēt koda rindiņas, kas raksturo risinājumu;
Padziļināti
- Izveidot pieprasījumu, lai iegūtu aprakstu latviešu valodā;
- Izveidot pieprasījumu, lai iegūtu ikonu;
- Pievienot nākamo 5 dienu laika prognozi;
Koda pārskats
Prezentēt savu kodu klasei, skaidrot savu risinājumu, atbildēt uz jautājumiem.
Nepieciešamie resursi
Nepieciešamās zināšanas
Var izmantot API Zinašanu krātuvi, kur ir apkopotas pamata zināšanas par programmsaskarnes (API) jēgu, nepieciešamību, lietošanu, izveidošanu un drošību.
Ieteikumi
- regulāri pārbaudīt un atkļūdot risinājumu;
- ievērot labas prakses principus.
Programmēšana II SR
Aktivitāte vērsta uz šādām Programmēšana II sasniedzamajiem rezultātiem (SR):
- Zināšanas: Skaidro API pielietojumu un nepieciešamību.
- Prasmes: Lieto API (programmsaskarni) specializētu funkciju veikšanai.
HTML, CSS, JS paraugs
Iespējamā failu struktūra
-index.html;-script.js;-styles.css;
HTML
<!DOCTYPE html><html lang="lv"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Laikapstākļi</title> <!-- bootstrap --> <link rel="stylesheet" integrity="sha384-gH2yIJqKdNHPEq0n4Mqa/HGKIhSkIHeL5AyhkYV8i59U5AR6csBvApHHNl/vI1Bx" crossorigin="anonymous" /> <!-- icons --> <link rel="stylesheet" /> <link rel="stylesheet" href="styles.css" /> </head> <body> <div class="container" id="main-container"> <!-- input form --> <div class="d-flex justify-content-center"> <div class="col-12 col-lg-5"> <div class="input-group"> <span class="input-group-text" id="basic-addon1"> <i class="bi bi-search"></i> </span> <input type="text" class="form-control" placeholder="Ievadīt pilsētu" id="inp-city" /> <button class="btn btn-outline-secondary" type="button" id="btn-search" > Meklēt </button> </div> </div> </div> </div> <div id="div-results"></div> <!-- javascript --> <script src="script.js"></script> <script integrity="sha384-A3rJD856KowSb7dwlZdYEkO39Gagi7vIsF0jrRAoQmDKKtQBHUuLZ9AsSv4jD4Xa" crossorigin="anonymous" ></script> </body></html>
CSS
body { margin: 0; font-family: "Poppins", sans-serif; background-color: #d8e6e9; display: flex; justify-content: center; align-items: center; min-height: 100vh; flex-direction: column;}.weather { text-align: center; font-size: 2rem;}.weather h2 { margin-bottom: 0; display: flex; align-items: center;}
JS
const apiKey = "31162c4bf8ba2d80600ac912c2b5446e";const divResults = document.getElementById("div-results");const btnSearch = document.getElementById("btn-search");const inpCity = document.getElementById("inp-city");btnSearch.addEventListener("click", () => { const city = inpCity.value; if (city) { //TODO: definēt funkciju getWeatherByLocation(city); }});