Uvod
Službena Vultr Go biblioteka može se koristiti za interakciju s Vultr API-jem . Vultr API vam omogućuje kontrolu resursa povezanih s vašim računom, uključujući poslužitelje, DNS, vatrozid, snimke, mrežu i još mnogo toga. Ovaj vodič će vam dati uvod u korištenje službenog Go API klijenta stvaranjem jednostavne aplikacije za dobivanje informacija o vašim poslužiteljima.
Preduvjeti
- Računalo sa sustavom Windows, Linux ili macOS s instaliranim Go 1.12+.
- Osnovno znanje programiranja.
- Izborno: IDE koji podržava Go (na primjer Visual Studio Code, emacs ili Atom).
Ciljevi
- Da naučite kako koristiti službenu Vultr API biblioteku.
- Za pisanje programa za pregled informacija o poslužitelju.
Korak 1: Izrada projekta
Prvo ćemo započeti stvaranjem novog modula (projekta). Obično biste koristili URL do spremišta za svoj kod kao naziv modula, ali to je izvan dosega ovog vodiča. Za sada ćemo koristiti serverinfo kao naziv modula.
Za kreiranje projekta pokrenite sljedeće naredbe:
# Create the folder in the current directory. mkdir serverinfo # Enter the new folder. cd serverinfo # Initialize the module. go mod init serverinfo
Korak 2: Preuzimanje biblioteke
Zatim ćemo preuzeti API biblioteku s GitHuba (mjesta za hosting kodova). Za preuzimanje knjižnica morate koristiti go getnaredbu. Time će se automatski preuzeti knjižnica i njezine ovisnosti dok se dodaje u go.mod datoteku. U istom terminalu koji ste ranije otvorili unesite sljedeću naredbu:
go get github.com/vultr/govultr
Korak 3: Dobivanje vašeg API ključa
Za korištenje API klijenta trebat će vam vaš API ključ. Svoj API ključ možete dohvatiti s kartice API u odjeljku Račun na vašoj Nadzornoj ploči . Također ćete morati autorizirati svoju IP adresu za korištenje API ključa. Svoju IP adresu možete pronaći ako odete na ifconfig.me . Imajte na umu da tražite svoj javni IP, a ne privatni. Vaš privatni IP je ono što biste pronašli u mrežnim postavkama na računalu i nalazi se u jednom od sljedećih CIDR raspona: 10.0.0.0/8 , 172.16.0.0/12 ili 192.168.0.0/16 .
Nakon što dobijete svoju IP adresu, dodajte je u odjeljku Kontrola pristupa . U okvir iza / upišite 32. /32je mrežna maska značenje 255.255.255.255. To znači da je samo vaš IP uključen u raspon.
Upozorenje: Zaštitite svoj API ključ kao što biste zaštitili svoju lozinku. API ključ ima pristup cijelom vašem računu, uključujući naplatu, poslužitelje i pohranu.
Korak 4: Izrada programske datoteke
Sada krećemo s radom na programu. Otvorite mapu koju smo stvorili u uređivaču po vašem izboru i stvorite datoteku pod nazivom main.go.
Unutar datoteke upišite ili kopirajte i zalijepite sljedeći kod:
package main import ( "context" "fmt" "os" "github.com/vultr/govultr" ) func main() { }
package mainGovori Go da smo stvaranje naredbu, a ne knjižnica. Izjava uvoza deklarira ovisnosti koje ćemo koristiti. func main()je funkcija pozvana kada pokrenemo naš program.
Korak 5: Inicijalizacija API klijenta
Sljedeći korak je inicijalizacija API klijenta. Da bismo to učinili, trebamo koristiti funkciju govultr.NewClient(http.Client, string) . Dodajte sljedeći kod unutar funkcije main() :
client := govultr.NewClient(nil, "YOURAPIKEY")
Zamijenite YOURAPIKEYs API ključem koji ste ranije dohvatili.
Pogledajmo ovaj kod malo bliže. Na lijevoj strani :=imamo client. To je naziv varijable . Varijabla pohranjuje vrijednosti. Na desnoj strani imamo poziv funkcije govultr.NewClient . Prvi parametar je nula, jer ne moramo mijenjati zadani HTTP klijent. Drugi parametar je API ključ koji koristimo za autentifikaciju. :=Operater dodjeljuje na pravu stranu na lijevu stranu, u ovom slučaju, rezultat funkcije poziva client.
Korak 6: Korištenje API-ja
Naš program još uvijek ništa ne radi. Kako bismo to učinili korisnim, dohvatit ćemo informacije o našim poslužiteljima od Vultra. Koristit ćemo funkciju govultr.Client.Server.List(context.Context) ([]govultr.Server, pogreška) . Dodajte sljedeći kod na kraj funkcije main() :
servers, err := client.Server.List(context.Background()) if err != nil { fmt.Fprintf(os.Stderr, "Error: %v\n", err) os.Exit(1) }
U ovom kodu pozivamo API funkciju za dohvaćanje informacija o poslužitelju. Ne brinite još o značenju konteksta , jer je to naprednija tema. Za sada, sve što trebamo znati je da kontekst kontrolira kako se API klijent izvodi. context.Background() vraća prazan kontekst . Nakon što dohvatimo informacije o poslužitelju u dvije varijable, servere i err , provjeravamo je li došlo do greške. Ako je tako, obavještavamo korisnika o pogrešci i izlazimo s kodom 1 (pogreška).
Korak 7: Prikaz informacija
Sada kada imamo niz poslužitelja u varijabli poslužitelja ( []govultr.Server ), zapravo ga možemo prikazati. Dodajte sljedeći kod na kraj funkcije main() :
fmt.Println("Servers:") for _, server := range servers { fmt.Printf(" %s (%s) - %s - $%s pending charges - %.2f/%s GB bandwidth\n", server.Label, server.MainIP, server.Location, server.PendingCharges, server.CurrentBandwidth, server.AllowedBandwidth, ) }
Prvo ispisujemo (prikazujemo) zaglavlje, Servers:. Zatim prelazimo preko niza poslužitelja , zanemarujući indeks dodjeljujući ga na _, i dodjeljujući trenutni poslužitelj varijabli poslužitelja . Unutar petlje prikazujemo oznaku poslužitelja, IP adresu, lokaciju, troškove na čekanju, trenutnu propusnost i dopuštenu propusnost. Da bismo to učinili učinkovito, koristimo nizove formata , string koji izgleda kao " %s (%s) - %s - $%s pending charges - %.2f/%s GB bandwidth\n". Na %snačin da zamijeni sljedeći niz, dok su %.2fsredstva za ispis pored float (decimalni broj) zaokruženo na 2 decimalna mjesta. Ostatak niza formata ispisuje se doslovno (kako jest).
Korak 8: Trčanje
U ovom trenutku vaš bi kod trebao izgledati ovako:
package main import ( "context" "fmt" "os" "github.com/vultr/govultr" ) func main() { client := govultr.NewClient(nil, "YOURAPIKEY") servers, err := client.Server.List(context.Background()) if err != nil { fmt.Fprintf(os.Stderr, "Error: %v\n", err) os.Exit(1) } fmt.Println("Servers:") for _, server := range servers { fmt.Printf(" %s (%s) - %s - $%s pending charges - %.2f/%s GB bandwidth\n", server.Label, server.MainIP, server.Location, server.PendingCharges, server.CurrentBandwidth, server.AllowedBandwidth, ) } }
Sada možemo pokrenuti kod. Vratite se na terminal koji smo ranije otvorili i unesite naredbu go run. Izlaz će izgledati sljedeće:
Servers: server1 (198.51.100.4) - New Jersey - $3.70 pending charges - 17.64/1000 GB bandwidth server2 (198.51.100.9) - Toronto - $1.70 pending charges - 3.24/500 GB bandwidth
Ako dobijete pogrešku, provjerite jesu li vaš API ključ i IP adresa ispravni.
Zaključak
U ovom trenutku ćete uspješno naučiti osnove korištenja službenog API klijenta i napisati program koji će prikazati informacije o poslužiteljima na vašem računu.
Daljnji koraci
Odavde možete učiniti mnogo više. Na primjer, možete napisati program za postavljanje novog poslužitelja kada vam nedostaje memorije. Mogli biste napisati aplikaciju za automatsku nadogradnju vašeg poslužitelja kada vam nedostaje propusnosti ili prostora za pohranu. Možete čak napisati alat za automatsko ažuriranje DNS zapisa na temelju vašeg trenutnog IP-a.
Za više informacija o knjižnici govultr, dokumentaciju knjižnice govultr možete pronaći na godoc .
govultr je projekt otvorenog koda . Ako pronađete bilo kakve greške u govultru, možete ih prijaviti na GitHubu . Također možete izravno pridonijeti kodu slanjem zahtjeva za povlačenjem .