“Żądanie API Golang” Kod odpowiedzi

Żądanie API Golang

package main

import (
	"encoding/json"
	"io/ioutil"
	"log"
	"net/http"
)

type Login struct {
	Username string `json:"username"`
	Password string `json:"password"`
}

type APIResponse struct {
	Stat_Code uint32 `json:"stat_code"`
	Stat_Msg  string `json:"stat_msg"`
}

func ApiResponse(rw http.ResponseWriter, v *APIResponse) {
	result, err := json.Marshal(v)
	if err != nil {
		log.Fatal(err)
	}
	rw.Write(result)
}

func main() {
	server := http.Server{
		Addr: ":3000",
	}

	http.HandleFunc("/", func(rw http.ResponseWriter, r *http.Request) {
		rw.Header().Set("Content-Type", "application/json")

		payload := Login{}

		body, err := ioutil.ReadAll(r.Body)
		if err != nil {
			log.Fatal(err)
		}

		err = json.Unmarshal(body, &payload)
		if err != nil {
			log.Fatal(err)
		}

		if payload.Username != "johndoe13" || payload.Password != "qwerty12" {
			ApiResponse(rw, &APIResponse{Stat_Code: http.StatusBadRequest, Stat_Msg: "Username or password mismatch"})
			defer log.Print("http request error")
			return
		}

		ApiResponse(rw, &APIResponse{Stat_Code: http.StatusOK, Stat_Msg: "Login success"})
		defer log.Print("http request success")
	})

	server.ListenAndServe()
}
Restu Wahyu Saputra

Korzystanie z Golang do wykonywania połączeń API

package main

import (
    "fmt"
    "io/ioutil"
    "log"
    "net/http"
    "os"
)

func main() {
    response, err := http.Get("http://pokeapi.co/api/v2/pokedex/kanto/")

    if err != nil {
        fmt.Print(err.Error())
        os.Exit(1)
    }

    responseData, err := ioutil.ReadAll(response.Body)
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println(string(responseData))

}
Zealous Zebra

Odpowiedzi podobne do “Żądanie API Golang”

Pytania podobne do “Żądanie API Golang”

Więcej pokrewnych odpowiedzi na “Żądanie API Golang” w Go

Przeglądaj popularne odpowiedzi na kod według języka

Przeglądaj inne języki kodu