Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Go中的Rest API(消费和主机)_Api_Rest_Go - Fatal编程技术网

Go中的Rest API(消费和主机)

Go中的Rest API(消费和主机),api,rest,go,Api,Rest,Go,我试图请求一些东西,比如一本书的id,然后在本地托管它,这样如果我写本地URL,比如http://localhost:8080​/books?books=它将向我显示具体结果 要想具体一点,我需要把两者联系起来。从那个URL获取信息,所以“消费”并在本地托管它,特别是通过ID。我不知道如何同时做到这两个 为了创建路径,我一直在使用gorilla mux 所以,我单独使用了这个,它会一次给我所有的书(URL不是真实的) func main(){ 响应,错误:=http.Get(“https://b

我试图请求一些东西,比如一本书的id,然后在本地托管它,这样如果我写本地URL,比如
http://localhost:8080​/books?books=
它将向我显示具体结果

要想具体一点,我需要把两者联系起来。从那个URL获取信息,所以“消费”并在本地托管它,特别是通过ID。我不知道如何同时做到这两个

为了创建路径,我一直在使用gorilla mux

所以,我单独使用了这个,它会一次给我所有的书(URL不是真实的)

func main(){
响应,错误:=http.Get(“https://bookibook.herokuapp.com/books/")
如果错误!=零{
fmt.Printf(“没有具有此ID%s\n”的书籍,错误)
}否则{
数据,Util:=ioutil.ReadAll(response.Body)
fmt.Println(字符串(数据))
}
}
然后,这将为http://localhost:8080/books/ID

导入(
“fmt”
“github.com/gorilla/mux”
“日志”
“net/http”
)
func getID(w http.ResponseWriter,r*http.Request){
变量:=mux.vars(r)
fmt.Fprintf(w,“获取id%s\n”,变量[“id”])
}
func main(){
//配置路由。
路由器:=mux.NewRouter()
router.HandleFunc(“/books/{id}/”,getID).Methods(http.MethodGet)
//启动HTTP服务器。
如果错误:=http.ListenAndServe(“:8080”,路由器);错误!=nil{
log.Fatal(错误)
}
}

注意:
如果出错!=nil{fmt.Printf(“没有ID为%s\n”的书),err)}
可能是个谎言。这意味着出现了网络错误,而不是您得到了404响应。要检查“没有具有此ID的书籍”,您需要检查HTTP响应代码。