Golang api obtenir

J'étudie Golang.

Choses à faire

Paquet utilisé cette fois

api Nous utiliserons l 'API pour obtenir l'indice FearAndGreed fourni par Rakuten RapidApi.

Il n'y a pas de requête et il n'y a qu'un seul type de réponse.

config.ini config.go Créez config.ini dans le répertoire racine et placez api_key.

//config.ini
[fgi]
api_key = XXXXXXXXXXXXXXXXXXXXXX
api_host = XXXXXXXXXXXXXXXXXXXXXX
//config.go
package config

import (
	"log"
	"os"

	"gopkg.in/ini.v1"
)

type ConfigList struct {
	FgiAPIKey  string
	FgiAPIHost string
}

//Définition globale de la configuration
var Config ConfigList

func init() {
	cfg, err := ini.Load("config.ini")
	if err != nil {
		log.Printf("Failed to read file: %v", err)
		os.Exit(1)
	}

	Config = ConfigList{
		FgiAPIKey:  cfg.Section("fgi").Key("api_key").String(),
		FgiAPIHost: cfg.Section("fgi").Key("api_host").String(),
	}
}

Créez une structure et définissez la clé et l'hôte du fichier config.ini défini précédemment dans ConfigList. Stocker sous forme de chaîne avec .String ().

main.go

package main

import (
	"fmt"
	"io/ioutil"
	"net/http"

	"index-indicator-apis/config"
)

func main() {

	url := "https://fear-and-greed-index.p.rapidapi.com/v1/fgi"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("x-rapidapi-host", config.Config.FgiAPIHost)
	req.Header.Add("x-rapidapi-key", config.Config.FgiAPIKey)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(string(body))

}

Obtenez-le avec http.NewRequest de "net / http" et appelez la clé et l'hôte de Config (ConfigList) créés précédemment avec Header.Add.

Exécuter dans le terminal

$ go run main.go

{"fgi":{"now":{"value":63,"valueText":"Greed"},"previousClose":{"value":56,"valueText":"Greed"},"oneWeekAgo":{"value":40,"valueText":"Fear"},"oneMonthAgo":{"value":56,"valueText":"Greed"},"oneYearAgo":{"value":83,"valueText":"Extreme Greed"}}}

J'ai pu obtenir une réponse.

Séparez les fonctions dans des fichiers séparés

Il semble que le concept de conception de GO soit de décrire uniquement les méthodes et les fonctions qui sont exécutées plus simplement dans le fichier main.go. J'ai donc créé un fichier fgi.go et séparé les fonctions.

// fgi.go
package fgi

import (
	"fmt"
	"io/ioutil"
	"net/http"

	"index-indicator-apis/config"
)

func DoRequest() {

	url := "https://fear-and-greed-index.p.rapidapi.com/v1/fgi"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("x-rapidapi-host", config.Config.FgiAPIHost)
	req.Header.Add("x-rapidapi-key", config.Config.FgiAPIKey)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(string(body))

}

//main.go
package main

import "index-indicator-apis/fgi"

func main() {
	fgi.DoRequest()
}

c'est tout! Ensuite, je voudrais convertir davantage la fonction en une méthode et passer les arguments pour la voir!

Recommended Posts

Golang api obtenir
Obtenir des informations avec l'API Zabbix
Obtenez un classement avec l'API Rakuten
Obtenir des données Salesforce à l'aide de l'API REST
Obtenez des avis avec l'API googlemap de python
Obtenez des données Amazon à l'aide de Keep API # 1 Obtenez des données
python Obtenez la météo à venir de l'API météo
Recevoir des e-mails à l'aide de l'API Gmail en Java
Obtenez les débats parlementaires via l'API
Obtenez les données de l'API Google Fit en Python
profilage de Golang
Obtenez des données Youtube en Python à l'aide de l'API Youtube Data
Obtenez des vacances avec l'API Google Agenda
[Python] Obtenez des informations sur le package Python avec l'API PyPI
Obtenez des informations sur la monnaie virtuelle Coincheck avec l'API ♪
[Python] Obtenez tous les commentaires à l'aide de Youtube Data Api
Obtenons les informations Wiki en utilisant l'API MediaWiki
Obtenir l'URL de l'image à l'aide de l'API Flickr en Python
Obtenez des données sur le cours de l'action avec l'API Quandl [Python]
Comment obtenir des données d'article à l'aide de l'API Qiita
Obtenez un jeton d'accès pour l'API Pocket
Exemple de serveur d'API qui reçoit JSON dans Golang
Obtenez l'objet et le corps de Gmail avec Python et l'API Gmail