Увод
Званична Вултр Го библиотека може да се користи за интеракцију са Вултр АПИ-јем . Вултр АПИ вам омогућава да контролишете ресурсе повезане са вашим налогом, укључујући сервере, ДНС, заштитни зид, снимке, мрежу и још много тога. Овај водич ће вам дати увод у коришћење званичног Го АПИ клијента креирањем једноставне апликације за добијање информација о вашим серверима.
Предуслови
- Рачунар који користи Виндовс, Линук или мацОС са инсталираним Го 1.12+.
- Основно знање програмирања.
- Опционо: ИДЕ који подржава Го (на пример Висуал Студио Цоде, емацс или Атом).
Голови
- Да научите како да користите званичну Вултр АПИ библиотеку.
- Да напишете програм за преглед информација о серверу.
Корак 1: Креирање пројекта
Прво ћемо почети креирањем новог модула (пројекта). Обично бисте користили УРЛ до спремишта за ваш код као име модула, али то је ван оквира овог упутства. За сада ћемо користити серверинфо као име модула.
Да бисте креирали пројекат, покрените следеће команде:
# Create the folder in the current directory. mkdir serverinfo # Enter the new folder. cd serverinfo # Initialize the module. go mod init serverinfo
Корак 2: Преузимање библиотеке
Затим ћемо преузети АПИ библиотеку са ГитХуб-а (сајт за хостовање кодова). Да бисте преузели библиотеке, потребно је да користите go getкоманду. Ово ће аутоматски преузети библиотеку и њене зависности док је додајете у го.мод датотеку. У истом терминалу који сте раније отворили унесите следећу команду:
go get github.com/vultr/govultr
Корак 3: Добијање вашег АПИ кључа
Да бисте користили АПИ клијент, биће вам потребан ваш АПИ кључ. Можете да преузмете свој АПИ кључ са картице АПИ у одељку Налог на контролној табли . Такође ћете морати да овластите своју ИП адресу за коришћење АПИ кључа. Своју ИП адресу можете пронаћи ако одете на ифцонфиг.ме . Имајте на уму да тражите своју јавну ИП адресу, а не своју приватну. Ваш приватни ИП је оно што бисте пронашли у мрежним поставкама на рачунару и налази се у једном од следећих ЦИДР опсега: 10.0.0.0/8 , 172.16.0.0/12 или 192.168.0.0/16 .
Када добијете своју ИП адресу, додајте је у одељак Контрола приступа . У пољу после / укуцајте 32. /32је мрежна маска значење 255.255.255.255. То значи да је само ваша ИП адреса укључена у опсег.
Упозорење: Заштитите свој АПИ кључ као што бисте заштитили своју лозинку. АПИ кључ има приступ целом налогу, укључујући обрачун, сервере и складиште.
Корак 4: Креирање програмске датотеке
Сада почињемо да радимо на програму. Отворите фасциклу коју смо направили у уређивачу по вашем избору и креирајте датотеку под називом main.go.
Унутар датотеке откуцајте или копирајте-налепите следећи код:
package main import ( "context" "fmt" "os" "github.com/vultr/govultr" ) func main() { }
package mainГовори Иди да стварамо команду, а не библиотека. Изјава о увозу декларише зависности које ћемо користити. func main()је функција позвана када покренемо наш програм.
Корак 5: Иницијализација АПИ клијента
Следећи корак је иницијализација АПИ клијента. Да бисмо то урадили, треба да користимо функцију говултр.НевЦлиент(хттп.Цлиент, стринг) . Додајте следећи код унутар функције маин() :
client := govultr.NewClient(nil, "YOURAPIKEY")
Замените YOURAPIKEYса АПИ кључем који сте раније преузели.
Погледајмо овај код мало ближе. На левој страни :=имамо client. То је име променљиве . Променљива чува вредности. На десној страни имамо позив функције говултр.НевЦлиент . Први параметар је нула, јер не морамо да мењамо подразумевани ХТТП клијент. Други параметар је АПИ кључ који користимо за аутентификацију. :=Оператер додељује десном страном на левој страни, у овом случају, резултат функције позива client.
Корак 6: Коришћење АПИ-ја
Наш програм још увек ништа не ради. Да бисмо били корисни, ми ћемо преузети информације о нашим серверима од Вултр-а. Користићемо функцију говултр.Цлиент.Сервер.Лист(цонтект.Цонтект) ([]говултр.Сервер, грешка) . Додајте следећи код на крај функције маин() :
servers, err := client.Server.List(context.Background()) if err != nil { fmt.Fprintf(os.Stderr, "Error: %v\n", err) os.Exit(1) }
У овом коду позивамо АПИ функцију да преузмемо информације о серверу. Не брините још о значењу контекста , јер је то напреднија тема. За сада, све што треба да знамо је да контекст контролише како ради АПИ клијент. цонтект.Бацкгроунд() враћа празан контекст . Након што преузмемо информације о серверу у две променљиве, сервере и ерр , проверавамо да ли је дошло до грешке. Ако јесте, обавештавамо корисника о грешци и излазимо са кодом 1 (грешка).
Корак 7: Приказ информација
Сада када имамо низ сервера у променљивој сервера ( []говултр.Сервер ), заправо можемо да га прикажемо. Додајте следећи код на крај функције маин() :
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, ) }
Прво, штампамо (приказујемо) заглавље, Servers:. Затим прелазимо преко низа сервера , игноришући индекс тако што ћемо га доделити _, и додељивати тренутни сервер променљивој сервера . Унутар петље приказујемо ознаку сервера, ИП адресу, локацију, трошкове на чекању, тренутни пропусни опсег и дозвољени пропусни опсег. Да бисмо то учинили ефикасно, користимо стрингове формата , стринг који изгледа као " %s (%s) - %s - $%s pending charges - %.2f/%s GB bandwidth\n". На %sначин да замене следећи низ, док су %.2fсредства за штампање поред флоат (децимални број) заокружени на 2 децимале. Остатак стринга формата се штампа дословно (као што јесте).
Корак 8: Трчање
У овом тренутку, ваш код би требао изгледати овако:
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, ) } }
Сада можемо да покренемо код. Вратите се на терминал који смо раније отворили и унесите команду go run. Излаз ће личити на следеће:
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
Ако добијете грешку, уверите се да су ваш АПИ кључ и ИП адреса тачни.
Закључак
У овом тренутку ћете успешно научити основе коришћења званичног АПИ клијента и написати програм који ће приказати информације о серверима на вашем налогу.
Даљи кораци
Одавде можете учинити много више. На пример, можете написати програм који ће обезбедити нови сервер када вам недостаје меморије. Можете написати апликацију за аутоматску надоградњу вашег сервера када вам је мало пропусног опсега или простора за складиштење. Можете чак написати алатку за аутоматско ажурирање ДНС записа на основу вашег тренутног ИП-а.
За више информација о говултр библиотеци, можете пронаћи документацију говултр библиотеке на годоц .
говултр је пројекат отвореног кода . Ако пронађете било какве грешке у говултр-у, можете их пријавити на ГитХуб-у . Такође можете директно допринети коду слањем захтева за повлачење .