I am a newbie and trying to create a Golang script that reads from one endpoint then updates some of the fields and posts to a different endpoint. The PUT request to the endpoint has this as a curl command.
curl -v \
-X PUT -H 'X-Api-Key:{Key}' \
-H 'Content-Type: application/json' url/{id} \
-d '{ "name" : "Somename", "type": "Sometype", "status" : "enabled"}'
I want to keep the same name and same type from the endpoint that I send the GET request, but I want to change status from enabled to disabled when posting to the other endpoint. So basically whatever results I get from the one endpoint will stay the same except the status that I need to change to disabled. Any example code will assist.
This is the code I have so far but it is just for reading the endpoint. So not sure how to join the two.
func main() {
req, _ := http.NewRequest("GET", "URL", nil)
req.Header.Set("X-Api-Key", <Key>)
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
var obj struct {
Library []struct {
Name string `json:"name"`
Type string `json:”type”`
Status string `json:”status"`
} `json:”library"`
}
if err := json.Unmarshal(body, &obj); err != nil {
panic(err)
}
for _, app := range obj.Library {
fmt.Println(app.Name, app.Type, app.Status)
}
}