我正在使用 GoLang 迈出第一步,目前正在设置一个 API 服务器,它能够从 POST 请求读取 JSON 文件并将其保存到内存中。
我有一个 JSON 文件如下:
[
{
"id": 0,
"name": "kubernetes",
"uri": "https://github.com/kubernetes/kubernetes"
},
{
"id": 1,
"name": "jenkins",
"uri": "https://github.com/jenkinsci/jenkins"
}
]
我正在 POST:ing 到在本地端口上运行的 API 服务器。
这是我的 setupRoutes() - 功能:
func setupRoutes() {
// Initialize Router
router := gin.Default()
// Initialize Routes
router.GET("/api/projects", getProjects)
router.GET("/api/projects/:id", getProjectByIdentifier)
router.POST("/api/projects", uploadProjects)
// Start the Router
router.Run("localhost:8080")
}
这是我的 uploadProjects() - 功能:
// Reads file from POST request, and saves that to Memory.
func uploadProjects(c *gin.Context) {
// Initialize Object
var obj []Project
// Bind JSON Data to Object
c.BindJSON(&obj)
fmt.Println(obj) // For Testing: What is binded.
// Save Data to Memory
proj = obj
}
这是项目结构:
type Project struct {
Identifier int64 `json: id`
Name string `json: name`
Uri string `json: uri`
}
执行此操作后 - 我可以立即打印出该数据,绑定的内容或者我可以使用我的 GET /api/projects - 调用获取该数据,结果始终是:
[{0 kubernetes https://github.com/kubernetes/kubernetes} {0 jenkins https://github.com/jenkinsci/jenkins}]
我试过的:
我试图在我的结构中交换字符串、整数和 int64 类型的标识符字段。
用谷歌搜索一堆
这可能是非常简单的事情,但我真的不知道在这一点上看哪里,所以任何帮助表示赞赏。
繁星coding
相关分类