2 回答

TA贡献1773条经验 获得超3个赞
您可以定义一个只有您需要的键的类型,并将来自 GitHub API 的响应解码为该类型的变量,以便只保留您需要的键,然后将该变量写入响应。
例如:
package main
import (
"encoding/json"
"log"
"net/http"
"github.com/gorilla/mux"
)
type RelevantRepoData struct {
Id int `json:"id"`
Name string `json:"name"`
Url string `json:"url"`
Language string `json:"language"`
Description string `json:"description"`
}
func GetAllReposStars(w http.ResponseWriter, r *http.Request) {
enableCors(&w)
params := mux.Vars(r)
username := params["username"]
res, err := http.Get("https://api.github.com/users/" + username + "/starred")
var repoData RelevantRepoData
err = json.NewDecoder(res.Body).Decode(&repoData)
if err != nil {
log.Fatal(err)
}
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(repoData)
}

TA贡献1921条经验 获得超9个赞
如果您想将一些特定字段发送到前端但将来想在后端处理它们,您可以json:"-"在您的结构中使用
例如:
type RelevantRepoData struct {
Irrelevant string `json:"-"`
Id int `json:"id"`
Name string `json:"name"`
Url string `json:"url"`
Language string `json:"language"`
Description string `json:"description"`
}
当您返回此对象时,带有的字段json:"-"将被忽略,但您仍然可以在后端使用它们。
- 2 回答
- 0 关注
- 179 浏览
添加回答
举报