On branch golang-http-package

Changes to be committed:
	new file:   curl_droplets-by-tag
		dumb bash script to test API query
	new file:   do_2-node-cluster.tkn
		Add a token file - THIS SHOULD BE REGENERATED IN PRODUCTION
	modified:   main.go
golang-http-package
Mike Holloway 4 years ago
parent e91a444354
commit d13370f89e
  1. 1
      curl_droplets-by-tag
  2. 1
      do_2-node-cluster.tkn
  3. 17
      main.go

@ -0,0 +1 @@
curl -X GET -H "Content-Type: application/json" -H "Authorization: Bearer 72a0ec632d0834dd3e1b72ec096f4644f527853a747875ca387a0269a625597a" "https://api.digitalocean.com/v2/droplets?tag_name=pacemaker-project"

@ -0,0 +1 @@
72a0ec632d0834dd3e1b72ec096f4644f527853a747875ca387a0269a625597a

@ -17,15 +17,30 @@ func main() {
url_slice := []string{"https://api.digitalocean.com/v2/droplets/", get_droplet_id("foo"), "/actions"} url_slice := []string{"https://api.digitalocean.com/v2/droplets/", get_droplet_id("foo"), "/actions"}
// Construct the string from the slice // Construct the string from the slice
droplet_actions_url := strings.Join(url_slice, "") droplet_actions_url := strings.Join(url_slice, "")
/* ---- Old ------ Using http.Get
// Create the json object to be posted // Create the json object to be posted
post_body, _ := json.Marshal(map[string]string{"type": "power_off"}) post_body, _ := json.Marshal(map[string]string{"type": "power_off"})
// Open a buffer for the post response body // Open a buffer for the post response body
response_body := bytes.NewBuffer(post_body) response_body := bytes.NewBuffer(post_body)
// instantiate the POST object // instantiate the POST object
http_response, err := http.Post(droplet_actions_url, "application/json", response_body) http_response, err := http.Post(droplet_actions_url, "application/json", response_body)
*/
do_client := &http.Client{
CheckRedirect: redirectPolicyFunc,
}
http_response, err := do_client.Get(droplet_actions_url))
if err != nil { if err != nil {
log.Fatalf("Respones Error: %v", err) log.Fatalf("Responese Error: %v", err)
} }
// Create an http.Request object to store the request data
// Is 'nil' the correct parameter? Check the docs
// How is the response body cached? Is the 'nil' parameter the actual POST body?
// Is the post_body to be fashioned with json.Marshal as above? Where is it
// used as a parameter?
http_request, err := http.Request("POST", droplet_actions_url, nil)
// Add the Authorization header with the OAuth token to the request data
http_request.Header.Add("Authorization", "Bearer 72a0ec632d0834dd3e1b72ec096f4644f527853a747875ca387a0269a625597a")
http_response, err := client.Post(droplet_actions_url, "application/json", response_body)
// Pause thread until response is read and http connection closes (I think?) // Pause thread until response is read and http connection closes (I think?)
defer http_response.Body.Close() defer http_response.Body.Close()
body, err := ioutil.ReadAll(response_body) body, err := ioutil.ReadAll(response_body)

Loading…
Cancel
Save