绑定请求方式POST

我在绑定请求时遇到问题,因为参数很多,所以我使用了包含参数的结构。


package api

import (

    "github.com/labstack/echo/v4"

    "net/http"

    "trains-api/domain/models"

    "trains-api/domain/services"

)


type reqCreate struct {

    RequestNotifi  models.ResquestCreateNotifi  

}

func CreateNotification (c echo.Context) error {

    req := reqCreate{}


    if err := c.Bind(req); err != nil {

        return c.JSON(http.StatusNotFound, err)

    }

}

package models


type RequestCreateNotifi struct {

    Name_param1     string    `db:"Name_param1"`

    Name_param2     string    `db:"Name_param2"`

    ....

    Name_param_n    string    `db:"Name_paramN"`

}

错误于if err := c.Bind(req); err != nil


r = {interface {} | string } "reflect: Elem of invalid type"


哈士奇WWW
浏览 137回答 3
3回答

阿波罗的战车

您需要添加指针req := reqCreate{}if err := c.Bind(&req); err != nil {    return c.JSON(http.StatusNotFound, err)}

有只小跳蛙

您需要设置模型中每个字段的 JSON 等效项,如下所示:package modelstype RequestCreateNotifi struct {    Name_param1     string    `json:"name_param1" db:"Name_param1"`    Name_param2     string    `json:"name_param2" db:"Name_param2"`    ....    Name_param_n    string    `json:"name_param_n" db:"Name_param n"`}此 json 字段指定该字段在请求中的表示方式,以便将其绑定到正确的值。

红糖糍粑

不幸的是,出于安全原因,根据问题#1670 ,您无法使用 Post 方法自动绑定查询参数,方法是使用 echo.QueryParamsBindertype Query struct {Param1 string `query:"param1"`Param2 string `query:"param2"`}...query := new(Query)err := echo.QueryParamsBinder(ctx).String("param1", &query.Param1).String("param2", &query.Param2).BindError()...
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go