Използване на RESTful API с Go

Използване на RESTful API с Go

RESTful API са популярни архитектури за пренос на данни в мрежата. RESTful API обикновено използват HTTP, което ги прави подходящи за случаи, когато липсата на гражданство е важна.





Като всеки сървърен език, можете да взаимодействате с HTTP протокола и да правите HTTP заявки в Go.





Първи стъпки с използването на RESTful API в Go

The http предоставя повечето от функционалностите, от които ще се нуждаете за взаимодействие с HTTP протокола в Go. Това включва отправяне на HTTP заявки и не е задължително да имате нужда външни зависимости, като Gin или база данни .





MAKEUSEOF ВИДЕО НА ДЕНЯ

Можете да използвате http пакет за използване на API и извличане на страници уеб скрапинг в Go .

какво оборудване ви е необходимо, за да стартирате канал в youtube

Импортирайте тези пакети, за да започнете да правите HTTP заявки в Go.



import ( 
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)

Ще използвате байтове пакет за манипулиране на байтови срезове, the json пакет за форматиране на данни за заявка, the fmt пакет за запис на стандартен изход, the ioutil пакет за вход и изход и http пакет за изпращане на заявки.

Проста GET заявка в Go

Типично ВЗЕМЕТЕ заявките четат данни от сървър и могат да предоставят параметри за данните в зависимост от естеството и спецификацията на API.





В този урок ще научите как да използвате RESTful API с помощта на простата услуга за заявка и отговор на httpbin.

Ето пример за правене на HTTP заявка с Go:





url := "https://httpbin.org/get" 
response, err := http.Get(url)

if err != nil {
fmt.Printf("There was an error from the API request %s", err.Error())
} else {
// continues [1] ...
}

The URL адрес променливата е крайната точка, към която изпращате заявката. The Вземете методът приема URL адреса, изпълнява Вземете заявка и връща отговора, включително неговите заглавки и тяло.

Можете да обработвате всякакви грешки от заявката в зависимост от вашите изисквания. Ако няма грешки, можете да продължите да извличате необходимата ви информация от Вземете искане.

} else { 
// ... [1] continued
responseData, err := ioutil.ReadAll(response.Body)

if err != nil {
fmt.Printf("There was an error from parsing the request body %s", err.Error())
} else {
// continues [2] ...
}
}

Отговорът е Тяло полето съдържа тялото на отговора. Използвайки ReadAll метод на ioutil пакет, можете да прочетете тялото на отговора и да се справите с възможни грешки.

} else { 
// ... [2] continued
fmt.Println(string(responseData))
}

The друго операторът отпечатва тялото на отговора на вашата конзола, ако няма грешки от операцията за четене.

не виждам иконата на батерията windows 10

Ето резултата от ВЗЕМЕТЕ заявка до крайната точка на httpbin.

  резултат от GET заявката

Проста POST заявка в Go

Типичните POST заявки предоставят полезни данни на сървъра и сървърът връща отговор в зависимост от операцията.

Ето една проста структура за кодиране на JSON полезен товар към сървъра като част от POST заявката.

type JSON struct { 
info string
message string
}

The JSON struct има инфо и съобщение низови полета и ще инициализирате екземпляр на структура за заявката.

url := "https://httpbin.org/post" 

jsonInstance := JSON {
info: "expecting success",
message: "the request should return ",
}

The URL адрес променлива съхранява крайната точка на POST заявка от уебсайта httpbin. The jsonInstance променливата е екземпляр на структурата JSON, която можете да използвате за съхраняване и изпращане на структурирани данни.

mac os удължено журналиране на компютър

Можете да използвате маршал метод от json пакет за форматиране на JSON за заявката.

jsonData, err := json.Marshal(jsonInstance) 
if err != nil {
fmt.Println("there was an error with the JSON", err.Error())
} else {
// continues [1] ...
}

The маршал метод също връща грешка, която можете да обработите. Ако няма грешки с операцията за маршалиране на JSON, можете да продължите да правите POST заявката.

Можете да използвате Публикувай метод за правене на POST заявки. The Публикувай методът приема крайната точка на URL адреса, типа съдържание на заявката и буфер на полезния товар. Връща отговор и грешка.

} else { 
// ... continued [1]
response, err := http.Post(url, "application/json", bytes.NewBuffer(jsonData))

if err != nil {
fmt.Println("there was an error with the request", err.Error())
} else {
// continues [2] ...
}
}

Отново можете да прочетете тялото на отговора, като използвате ReadAll метод на ioutil пакет:

} else { 
// ... continued [2]
data, err := ioutil.ReadAll(response.Body)

if err != nil {
fmt.Println("there was an error reading the request body", err.Error())
} else {
fmt.Println(string(data))
}
}

The Println извежда резултата от HTTP заявката към вашата конзола.

Като httpbin документация указва, тази крайна точка на POST връща данните за заявката, които сте й изпратили.

  резултат от POST заявката

Създаването на уеб приложения в Go е лесно

Можете да създавате уеб приложения с различни функции в Go без зависимости.

The http пакетът има функциите, от които ще се нуждаете за повечето си операции. Можете да използвате този пакет с други като json пакет за JSON операции, the контекст пакет за сигнализиране и шаблонен пакет за шаблониране. В стандартната библиотека има много други пакети.