Projekt z tematów 1-4
Zadanie:
Napisz program, który wczyta dane na temat stacji pomiarowych dostępne na stronie: https://powietrze.gios.gov.pl/pjp/content/api
Program powinien wyświetlać listę stacji pomiarowych dostępnych na
oraz pozwolić użytkownikowi (w menu tekstowym) wybrać stację i na podstawie jej ID wybrać informacje szczeółowe na temat pomiarów kierując zapytanie na
Wyniki pomiarowe mamy mieć możliwość zapisania w pliku PDF, JSON lub XML. Wykorzystaj dowolną bibliotekę Javy do tworzenia plików PDF. Postać pliku jest dowolna, ma on zawierać podane wyżej informacje, może zawierać też dodatkowe elementy.
Napisz testy do wyrzystywanych metod, skorzystaj obowiązkowo z zamockowania danych dla danych pobieranych z endpointów serwisów.
W programie wykorzystaj strumienie oraz co najmniej dwie struktury danych (set, map, list, stack, etc.).
Możemy wykonywać żądania HTTP z kodu, najprościej użyć biblioteki Apache.httpclient.
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.10</version>
</dependency>
Wykonanie zapytania GET:
CloseableHttpClient httpclient = HttpClients.createDefault();
HttpGet request = new HttpGet("https://api.gios.gov.pl/pjp-api/rest/station/findAll");
// add request headers
request.addHeader("custom-key", "programming");
try (CloseableHttpResponse response = httpclient.execute(request)) {
// Get HttpResponse Status
System.out.println(response.getStatusLine().toString());
HttpEntity entity = response.getEntity();
Header headers = entity.getContentType();
System.out.println(headers);
if (entity != null) {
// return it as a String
String result = EntityUtils.toString(entity);
System.out.println(result);
}
} catch (ClientProtocolException e) {
throw new RuntimeException(e);
} catch (IOException e) {
throw new RuntimeException(e);
}
Testy 20%
Strumienie 20%
Serializacja i Deserializacja JSON 20%
Biblioteka PDF 20%
Działanie zgodne ze specyfikacją 20%