Opis programu
Usługa API realizuje operacje CRUD na tabelach bazy danych przedstawionej na diagramie.

W założeniu, baza danych jest przeznaczona do rejestracji serii pomiarów.
Tabela Measurement zawiera opis przeprowadzonych pomiarów, kto je wykonał (Author), jakim przyrządem (Gage) i kiedy (Date). Po wprowadzeniu danych pomiaru (Autor, Gage i opcjonalnie Date) system nadaje pomiarowi identyfikator MeasurementId.
Tabela Result zawiera 3 serie wyników (x, y, z) wykonane w ramach pomiaru o identyfikatorze MeasurementId.
Operacje CRUD na tabeli Measurement wykonuje API Measurements, a na tabeli Result API Results. Wprowadzone dane można zobaczyć na stronie Wyniki. Dane pomiarów z tabeli Measurement są prezentowane na stronie w tabeli, a serie pomiarów z tabeli Result na wykresach.
Instrukcja
- Zapoznać się z opisem usługi.
- Wykonać testy usługi, do testowania usługi można użyć
- przeglądarki internetowej, tylko do metoda GET,
- programu Postmen, wszystkie metody,
- programu Node-RED, wszystkie metody,
- programu SendHttpRequest lub
- własnego narzędzia.
- Pobrać istniejące dane metodą GET, pobrane dane mogą posłużyć jako wzorzec do wykonania dalszych punktów.
- pobrać dane pomiarów (API Measurements),
- pobrać dane wyników pomiarów (API Results),
- porównać dane z danymi przedstawionych na stronie Wyniki,
- format odpowiedzi określa nagłówek Accept, np. = application/xml albo = application/json.
- Wprowadzić dane nowego pomiaru - API Measurements metoda POST
- Wprowadzając dane można pominąć MeasurementId i Date, identyfikator jest nadawany automatycznie a data ma wartość domyślną - bieżąca data i czas,
- w danych umieścić swoje dane rozpoznawcze (Author) i opis przyrządu lub pomiarów (Gage),
- zapisać identyfikator MeasurementId nadany przez serwer,
- zobaczyć swoje dane w tabeli na stronie Wyniki.
W środowisku Node-RED do wykonania zadania można wykorzystać bloczki
wysyła wiadomość po kliknięciu lub okresowo, w zależności od konfiguracji,
wyświetla wiadomości w celach kontrolnych,
zawiera kod JavaScript, przy jego pomocy można zakodować wysyłaną wiadomość obiekt msg.payload,
wysyła żądanie, msg.payload na wejściu zawiera przesyłaną treść żądania, na wyjściu odpowiedź.
Bloczki można konfigurować za pomocą okien dialogowych, które pojawiają się po dwukrotnym kliknięciu na bloczek. Przykładowy graf realizujący zadanie przedstawiono na rysunku

Żeby graf działał bloczki należy właściwie skonfigurować.
- Wprowadzić przykładowe serie wyników pomiarów - API MResults metoda POST
- wykorzystać identyfikator MeasurementId uzyskany w punkcie 4,
- zobaczyć wprowadzone serie danych na wykresach na stronie Wyniki,
- można wprowadzać dane losowe, np w środowisku Node-RED można posłużyć się bloczkiem z następującym kodem
msg.payload = {
"MeasurementId": 1,
"x": Math.random(),
"y": Math.random(),
"z": Math.random() }
return msg;
- Przy pomocy API dokonać zmian we wprowadzonych danych.
- Opisać zastosowaną metodę wprowadzania danych.
- Napisać aplikację konsolową lub Windows Forms wprowadzającą przykładowe serie danych za pomocą API, można wzorować się na programie SendHttpRequest. Zastosowane w programie metody wymagają platformy .NET 4.5 lub wyższej.
Przykładowy kod dodający nowy pomiar (bez wyników) program.pdf
public class Measurements
{
public int MeasurementId { get; set; }
public string Author { get; set; }
public string Gage { get; set; }
}
static async Task Main(string[] args)
{
Measurements measurements = new Measurements
{
Author = "Jakiś student",
Gage = "Jakiś miernik V1"
};
string jsonText = JsonSerializer.Serialize(measurements);
HttpContent content = new StringContent(jsonText, Encoding.UTF8, "application/json");
HttpRequestMessage requestMessage = new HttpRequestMessage
{
RequestUri = new Uri("http://argo.umg.edu.pl/www/RestWebApi/Api/Measurements"),
Method = HttpMethod.Post,
Content = content
};
requestMessage.Headers.Add("Accept", "application/json");
HttpClient clientHttp = new HttpClient();
var response = await clientHttp.SendAsync(requestMessage);
var kontekst = await response.Content.ReadAsStringAsync();
var measurementsOutput = JsonSerializer.Deserialize<Measurements>(kontekst.ToString());
Console.WriteLine("Identyfikator pomiaru = " + measurementsOutput.MeasurementId.ToString());
}
W przykładowym programie serializacji obiektu do kodu JSON dokonano wykorzystując pakiet System.Text.Json, który wymaga platformy .NET 4.6.1 lub wyższej albo .NET Core.
Zamiast System.Text.Json można stosować Newtonsoft.Json jak w przykładzie Program2.pdf.
Program należy uruchomić, następnie rozszerzyć o dodawanie serii przykładowych wyników pomiarów, mogą to być dane losowe lub wykresy funkcji.
Wysoko ocenione będzie przerobienie programu tak, aby komunikował się z usługą przesyłając dane w formacie XML. Nagłówki powinny mieć wartość = application/xml.
Informacje jak zainstalować i przygotować Visual Studio Code znajdują się na stronie.