Bevezetés
A hivatalos Vultr Go könyvtár használható a Vultr API-val való interakcióhoz . A Vultr API lehetővé teszi a fiókjához társított erőforrások vezérlését, beleértve a kiszolgálókat, a DNS-t, a tűzfalat, a pillanatképeket, a hálózatot és egyebeket. Ez az oktatóanyag bemutatja a hivatalos Go API kliens használatát egy egyszerű alkalmazás létrehozásával, amellyel információkat szerezhet a szervereiről.
Előfeltételek
- Windowst, Linuxot vagy macOS-t futtató számítógép, amelyen Go 1.12+ telepítve van.
- Alapvető programozási ismeretek.
- Opcionális: Go-t támogató IDE (például Visual Studio Code, emacs vagy Atom).
Gólok
- A hivatalos Vultr API-könyvtár használatának megismeréséhez.
- Program írása a szerver információinak megtekintéséhez.
1. lépés: A projekt létrehozása
Először egy új modul (projekt) létrehozásával kezdjük. Általában a kód tárhelyének URL-címét használja modulnévként, de ez meghaladja ennek az oktatóanyagnak a hatókörét. Egyelőre a serverinfo- t fogjuk használni modulnévként.
A projekt létrehozásához futtassa a következő parancsokat:
# Create the folder in the current directory. mkdir serverinfo # Enter the new folder. cd serverinfo # Initialize the module. go mod init serverinfo
2. lépés: A könyvtár letöltése
Ezután letöltjük az API-könyvtárat a GitHubról (egy kódtárhelyről). A könyvtárak letöltéséhez a go getparancsot kell használnia . Ez automatikusan letölti a könyvtárat és függőségeit, miközben hozzáadja a go.mod fájlhoz. Ugyanabban a terminálban, amelyet korábban megnyitott, írja be a következő parancsot:
go get github.com/vultr/govultr
3. lépés: Az API-kulcs beszerzése
Az API-kliens használatához szüksége lesz az API-kulcsra. Az API-kulcsot lekérheti az irányítópult Fiók szakaszának API lapjáról . Az API-kulcs használatához az IP-címét is engedélyeznie kell. Az IP-címét az ifconfig.me webhelyen találhatja meg . Ne feledje, hogy a nyilvános IP-címét keresi , nem a sajátját. Az Ön privát IP-címe a számítógép hálózati beállításaiban található, és a következő CIDR-tartományok egyikébe esik: 10.0.0.0/8 , 172.16.0.0/12 vagy 192.168.0.0/16 .
Miután megvan az IP-címe, adja hozzá a Hozzáférés-vezérlés szakaszhoz. A doboz után / írja 32. /32egy hálózati maszk jelentése 255.255.255.255. Ez azt jelenti, hogy csak az Ön IP-címe szerepel a tartományban.
Figyelmeztetés: Óvja API-kulcsát, mintha jelszavát védené. Az API-kulcs hozzáfér a teljes fiókjához, beleértve a számlázást, a szervereket és a tárhelyet.
4. lépés: A programfájl létrehozása
Most elkezdjük a munkát a programon. Nyissa meg az általunk kiválasztott szerkesztőben létrehozott mappát, és hozzon létre egy fájlt main.go.
A fájlba írja be vagy másolja be a következő kódot:
package main import ( "context" "fmt" "os" "github.com/vultr/govultr" ) func main() { }
A package mainGo azt mondja, hogy parancsot hozunk létre, nem könyvtárat. Az import utasítás deklarálja az általunk használt függőségeket. func main()az a függvény, amelyet programunk futtatásakor hívunk meg.
5. lépés: Az API-kliens inicializálása
A következő lépés az API kliens inicializálása. Ehhez a govultr.NewClient(http.Client, string) függvényt kell használnunk. Adja hozzá a következő kódot a main() függvényhez:
client := govultr.NewClient(nil, "YOURAPIKEY")
Cserélje YOURAPIKEYki a korábban letöltött API-kulcsot.
Nézzük meg kicsit közelebbről ezt a kódot. A bal oldalon :=van client. Ez egy változó neve . A változó értékeket tárol. A jobb oldalon található a govultr.NewClient függvényhívása . Az első paraméter nulla, mert nem kell módosítanunk az alapértelmezett HTTP-klienst. A második paraméter az API-kulcs, amelyet önmagunk hitelesítésére használunk. Az :=operátor a jobb oldalt a bal oldalhoz rendeli, ebben az esetben a függvényhívás eredményét client.
6. lépés: Az API használata
A programunk még mindig nem csinál semmit. A hasznosság érdekében a szervereinkre vonatkozó információkat fogunk lekérni a Vultr-tól. A govultr.Client.Server.List(context.Context) ([]govultr.Server, error) függvényt fogjuk használni . Adja hozzá a következő kódot a main() függvény végéhez :
servers, err := client.Server.List(context.Background()) if err != nil { fmt.Fprintf(os.Stderr, "Error: %v\n", err) os.Exit(1) }
Ebben a kódban az API függvényt hívjuk meg a szerver információinak lekéréséhez. Ne törődj még a szövegkörnyezet jelentésével , mivel ez egy fejlettebb téma. Egyelőre csak annyit kell tudnunk, hogy a környezet szabályozza az API-kliens futását. kontekst.A Background() üres kontextust ad vissza . Miután lekértük a szerverinformációkat a két változóban, a servers és az errben , ellenőrizzük, hogy történt-e hiba. Ha igen, értesítjük a felhasználót a hibáról, és kilépünk az 1-es kóddal (hiba).
7. lépés: Az információk megjelenítése
Most, hogy a szerverek változójában ( []govultr.Server ) van egy kiszolgálótömbünk , meg tudjuk jeleníteni. Adja hozzá a következő kódot a main() függvény végéhez :
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, ) }
Először kinyomtatunk (megjelenítünk) egy fejlécet, Servers:. Ezután áthurkoljuk a szerverek tömbjét, figyelmen kívül hagyva az indexet azáltal, hogy _hozzárendeljük a -hoz, és hozzárendeljük az aktuális szervert a szerverváltozóhoz . A hurkon belül megjelenítjük a szerver címkéjét, IP-címét, helyét, a függőben lévő díjakat, az aktuális sávszélességet és a megengedett sávszélességet. Ennek hatékony végrehajtásához formátum stringeket használunk , a karakterlánc, amely így néz ki " %s (%s) - %s - $%s pending charges - %.2f/%s GB bandwidth\n". A %skövetkező karakterlánc helyettesítésének eszköze, míg %.2fa következő float (tizedes szám) kinyomtatásának eszköze 2 tizedesjegyre kerekítve. A formátum karakterlánc többi része szó szerint (ahogy van) nyomtatva.
8. lépés: Futás
Ezen a ponton a kódnak így kell kinéznie:
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, ) } }
Most már futtathatjuk a kódot. Térjen vissza a korábban megnyitott terminálhoz, és írja be a parancsot go run. A kimenet a következőhöz fog hasonlítani:
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
Ha hibaüzenetet kap, győződjön meg arról, hogy az API-kulcs és az IP-cím helyes.
Következtetés
Ezen a ponton sikeresen megtanulta a hivatalos API-kliens használatának alapjait, és írt egy programot, amely információkat jelenít meg a fiókjában lévő szerverekről.
További lépések
Innentől sokkal többet tehet. Például írhat egy programot egy új kiszolgáló létrehozásához, amikor kevés a memóriája. Írhat egy alkalmazást, amely automatikusan frissíti a szervert, ha kevés a sávszélessége vagy a tárhelye. Akár olyan eszközt is írhat, amely automatikusan frissíti a DNS-rekordokat az aktuális IP-címe alapján.
A govultr könyvtárral kapcsolatos további információkért megtalálja a govultr könyvtár dokumentációját a godocon .
A govultr egy nyílt forráskódú projekt . Ha bármilyen hibát talál a govultr, akkor jelentse őket GitHub . A kódhoz közvetlenül is hozzájárulhat egy lehívási kérelem elküldésével .