W tej sekcji wyjaśniono, jak utworzyć prosty requester, który jest obiektem żądającym informacji zewnętrznych (w tym przypadku z interfejsu API przez Internet). Będziemy również rozwijać naszą infrastrukturę wymiany i portfela.
Utworzenie bardzo prostego requestera do izolowania wywołań API
Teraz skupimy się na tym, jak faktycznie pobieramy dane na żywo. Ta funkcjonalność zostanie również zaimplementowana przy użyciu klas R6, ponieważ interakcje mogą być złożone. Przede wszystkim tworzymy prostą klasę Requester, która zawiera logikę do pobierania danych z API JSON znalezionych w innym miejscu w Internecie i która będzie używana do pobierania naszych danych o kryptowalutach na żywo dla portfeli i rynków. Nie chcemy, aby logika, która współdziała z zewnętrznymi interfejsami API, była rozproszona po wszystkich naszych klasach, więc scentralizujemy ją tutaj, aby nią zarządzać, ponieważ później pojawią się bardziej wyspecjalizowane potrzeby. Jak widać, wszystko, co robi ten obiekt, to publiczna metoda request(), a wszystko, co robi, to użycie funkcji formJSON() z pakietu jsonlite, aby wywołać URL, który jest do niego przekazywany i wysłać otrzymane dane z powrotem do użytkownika. W szczególności wysyła go jako ramkę danych, gdy dane otrzymane z zewnętrznego interfejsu API mogą zostać przekształcone w postać ramki danych.
library(jsonlite)
Requester <- R6Class (
„Requester”,
public – list (
request = function(URL) {
return(fromJSON(URL))
}
)
)