“Permintaan API Golang” Kode Jawaban

Permintaan 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

Menggunakan Golang untuk melakukan panggilan 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

Jawaban yang mirip dengan “Permintaan API Golang”

Pertanyaan yang mirip dengan “Permintaan API Golang”

Lebih banyak jawaban terkait untuk “Permintaan API Golang” di Go

Jelajahi jawaban kode populer menurut bahasa

Jelajahi bahasa kode lainnya