如何使用go语言的Gin包生成一个接口,该接口的url为/eshield/addAclRule,接收到json格式的数据,该接口将json格式的数据解析并打印出来
时间: 2024-02-21 22:00:28 浏览: 83
javascript将url解析为json格式的两种方法
可以参考以下代码实现:
```go
package main
import (
"fmt"
"github.com/gin-gonic/gin"
)
type AclRule struct {
SourceIP string `json:"source_ip"`
DestIP string `json:"dest_ip"`
Action string `json:"action"`
}
func main() {
router := gin.Default()
router.POST("/eshield/addAclRule", func(c *gin.Context) {
var aclRule AclRule
if err := c.BindJSON(&aclRule); err != nil {
fmt.Println("Failed to parse JSON: ", err)
c.JSON(400, gin.H{"error": "Failed to parse JSON"})
return
}
fmt.Printf("Received ACL rule: %+v\n", aclRule)
c.JSON(200, gin.H{"message": "ACL rule added successfully"})
})
router.Run(":8080")
}
```
这段代码中,我们首先定义了一个结构体`AclRule`,表示ACL规则。然后,在路由处理函数中,我们使用`BindJSON`方法将请求的JSON数据绑定到`AclRule`结构体中,如果解析失败,则返回400错误响应。如果解析成功,则将解析出来的ACL规则打印出来,并返回200成功响应。最后,我们启动了一个监听8080端口的Gin服务器。
阅读全文