Gin框架渲染

作者: TZX_0710 | 来源:发表于2021-08-13 17:34 被阅读0次

JSON数据解析和绑定 ShouldBindJSON

客户端传参,后端解析绑定

package main

import (
  "github.com/gin-gonic/gin"
  "net/http"
)

type Login struct {
  UserName string `form:"username" json:"username" uri:"username" xml:"username" binding:"required"`
  Password string `form:"password" json:"password" uri:"password"  xml:"password" binding:"required"`
}

func main() {
   //创建路由
  r := gin.Default()
   //创建POST请求
  r.POST("/login", func(context *gin.Context) {
      var login Login
       //把body映射到结构体里面取
      if err := context.ShouldBindJSON(&login); err != nil {
          context.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
          return
      }
      if login.UserName != "root" || login.Password != "admin" {
          context.JSON(http.StatusBadRequest, gin.H{"status": "304"})
          return
      }
       //返回json格式
      context.JSON(http.StatusOK, gin.H{"status": 200})
  })
  r.Run(":8088")
}

postman进行测试

//request
{
"username":"root",
"password":"admin"
}
//result
{
   "status": 200
}

表单数据解析和绑定 Bind()

package main

import (
  "github.com/gin-gonic/gin"
  "net/http"
)

type Login struct {
  UserName string `form:"username" json:"username" uri:"username" xml:"username" binding:"required"`
  Password string `form:"password" json:"password" uri:"password"  xml:"password" binding:"required"`
}

func main() {
    //创建路由
  r := gin.Default()
    //创建POST请求
  r.POST("/login", func(context *gin.Context) {
      var form Login
        //Bind默认解析并绑定form格式
      if err := context.Bind(&login); err != nil {
          context.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
          return
      }
      if form.UserName != "root" || form.Password != "admin" {
          context.JSON(http.StatusBadRequest, gin.H{"status": "304"})
          return
      }
        //返回json格式
      context.JSON(http.StatusOK, gin.H{"status": 200})
  })
  r.Run(":8088")
}

URL数据解析和绑定

package main

import (
  "github.com/gin-gonic/gin"
  "net/http"
)

type Login struct {
  UserName string `form:"username" json:"username" uri:"username" xml:"username" binding:"required"`
  Password string `form:"password" json:"password" uri:"password"  xml:"password" binding:"required"`
}

func main() {
    //创建路由
  r := gin.Default()
    //创建POST请求
  r.POST("/login", func(context *gin.Context) {
      var form Login
        //ShouldBindUri绑定URL格式
      if err := context.ShouldBindUri(&login); err != nil {
          context.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
          return
      }
      if form.UserName != "root" || form.Password != "admin" {
          context.JSON(http.StatusBadRequest, gin.H{"status": "304"})
          return
      }
        //返回json格式
      context.JSON(http.StatusOK, gin.H{"status": 200})
  })
  r.Run(":8088")
}

响应格式

c.JSON()//json格式响应
c.XML()//XML格式响应
c.YAML()//YAML格式响应
c.ProtoBuf()//ProtoBuf 谷歌开发的高效存储读取工具

同步异步

goroutine 机制可以方便的实现异步处理。

相关文章

  • Gin框架渲染

    JSON数据解析和绑定 ShouldBindJSON 客户端传参,后端解析绑定package mainimport...

  • gin框架总结

    gin框架总结 一 gin框架初识 1.1 helloworld gin框架中的路由是基于httprouter[h...

  • golang文档资料收集

    gin框架文档 https://learnku.com/docs/gin-gonic/2018/gin-readm...

  • GoLang实现Gin框架

    1、下载安装Gin包 2、Gin基本框架

  • 【语言学习】Go语言之API开发Gin框架

    1 gin框架介绍 gin框架是Go语言进行web开发(api开发,微服务开发)框架中,功能和Martini框架类...

  • Gin: implementation of route

    Gin 框架路由实现

  • go 使用 gin 框架

    gin 框架官方文档[https://gin-gonic.com/zh-cn/docs/introduction/...

  • go gin框架脚手架(gapp)

    go gin框架脚手架(gapp) go gin框架应用脚手架, 帮助你快速搭建golang项目, 采用流行的go...

  • gin快速入门

    gin框架快速入门 gin golang的一个微框架,对api友好,灵活,没有orm等, 其没有工具,需要手工创建...

  • gin框架

    Gin是一个用Go语言编写的web框架。它是一个类似于martini但拥有更好性能的API框架, 由于使用了htt...

网友评论

    本文标题:Gin框架渲染

    本文链接:https://www.haomeiwen.com/subject/bezdbltx.html