Golang api bekommen

Ich studiere Golang.

Dinge die zu tun sind

Paket diesmal verwendet

api Wir werden die API verwenden, um den von Rakuten RapidApi bereitgestellten FearAndGreed-Index zu erhalten.

Es gibt keine Abfrage und nur einen Antworttyp.

config.ini config.go Erstellen Sie die Datei config.ini im Stammverzeichnis und platzieren Sie 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
}

//Globale Definition konfigurieren
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(),
	}
}

Erstellen Sie eine Struktur und legen Sie den Schlüssel und den Host der Datei config.ini fest, die zuvor in ConfigList festgelegt wurde. Mit .String () als String speichern.

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))

}

Holen Sie es sich mit http.NewRequest von "net / http" und rufen Sie den zuvor mit Header.Add erstellten Key and Host of Config (ConfigList) auf.

Im Terminal ausführen

$ 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"}}}

Ich konnte eine Antwort bekommen.

Separate Funktionen in separate Dateien

Es scheint, dass das Entwurfskonzept von GO darin besteht, nur die Methoden und Funktionen zu beschreiben, die einfacher in der Datei main.go ausgeführt werden. Also habe ich eine fgi.go-Datei erstellt und die Funktionen getrennt.

// 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()
}

das ist alles! Als nächstes möchte ich die Funktion weiter in eine Methode konvertieren und die Argumente übergeben, um sie zu sehen!

Recommended Posts

Golang api bekommen
Informationen erhalten Sie mit zabbix api
Holen Sie sich ein Ranking mit Rakuten API
Abrufen von Salesforce-Daten mithilfe der REST-API
Holen Sie sich Bewertungen mit Python Googlemap API
Abrufen von Amazon-Daten mit Keep API # 1 Abrufen von Daten
Python Holen Sie sich das kommende Wetter von der Wetter-API
Erhalten Sie E-Mails mithilfe der Google Mail-API in Java
Erhalten Sie Parlamentsprotokolle über API
Holen Sie sich Google Fit API-Daten in Python
Golang-Profilerstellung
Holen Sie sich Youtube-Daten in Python mithilfe der Youtube-Daten-API
Holen Sie sich Urlaub mit der Google Kalender-API
[Python] Python-Paketinformationen mit der PyPI-API abrufen
Erhalten Sie Informationen zur virtuellen Währung mit der API coin
[Python] Holen Sie sich alle Kommentare mit Youtube Data Api
Lassen Sie uns Wiki-Informationen mithilfe der MediaWiki-API abrufen
Holen Sie sich die Bild-URL mithilfe der Flickr-API in Python
Holen Sie sich Aktienkursdaten mit Quandl API [Python]
So erhalten Sie Artikeldaten mithilfe der Qiita-API
Holen Sie sich ein Zugriffstoken für die Pocket-API
Beispiel-API-Server, der JSON in Golang empfängt
Holen Sie sich den Betreff und den Text von Google Mail mit der Python- und Google Mail-API