У меня нет вашего полного кода, но я реорганизовал его и применил ваше исправление об идентификаторе, а не int
func GetCharactersID(c *gin.Context) {
characters, err := services.GetCharactersID(c.Param("id"))
if err != nil {
response := domain.Response{Mensaje: err.Error()}
c.JSON(http.StatusInternalServerError, response)
return
}
c.JSON(http.StatusOK, characters)
}
func GetCharactersID(sID string) (domain.Characters, error) {
base := "https://gateway.marvel.com:443/v1/public"
ts := "my_hashjavi"
id, err := strconv.Atoi(sID)
if err != nil {
return characterss, errors.New("xxx...")
}
characterss, err := GetCharactersID(sID)
if err != nil {
return characterss, errors.New("xxx...")
}
hash := GetHashString(ts + private_key + public_key)
url := fmt.Sprint("%s/characters/%d?ts=%s&apikey=%s&hash=%s",
base, sID, ts, public_key, hash)
resp, err := http.Get(url)
if err != nil
return characterss, errors.New("xxx...")
}
data, err := ioutil.ReadAll(resp.Body)
if err != nil {
return characterss, errors.New("xxx...")
}
err = json.Unmarshal(data, &characterss)
if err != nil {
return characterss, err
}
return characterss, errors.New("xxx...")
}