小编Adr*_*ien的帖子

如何解析mysql错误golang

我试图解析mySQL错误,以便从我的golang API向用户返回干净的错误消息.我读了一篇像这样的文章,展示了我想做的事情,但看起来我正在使用的模块go-mysql-driver不支持parseError.

为了给出我尝试实现的具体示例,错误如下:

Error 1062: Duplicate entry 'John' for key 'name_UNIQUE'
Run Code Online (Sandbox Code Playgroud)

我希望能够构建一个数据结构,允许我组织信息,以返回用户友好的消息,如

Error with the field 'name': 'John' already exist"
Run Code Online (Sandbox Code Playgroud)

所以我也可以用不同的语言翻译它并直接打印到客户端.

谢谢!

mysql error-handling go

8
推荐指数
1
解决办法
5374
查看次数

golang gin gonic 内容类型未使用 c.JSON 设置为 application/json

根据官方文档gin-gonic的 c.JSON应该将响应头设置为application/json,但是当我从Postman调用我的 API 时,响应头设置为text/plain; charset=utf-8

我不明白我错过了什么,有什么想法吗?

文件:

函数 JSON

JSON 将给定结构序列化为 JSON 到响应正文中。它还将 Content-Type 设置为“application/json”。

这是我的代码示例:

func postLogin(c *gin.Context) {
    var credentials DTO.Credentials
    if err := c.BindJSON(&credentials); err == nil {
        c.JSON(buildResponse(services.CheckUserCredentials(credentials)))
    } else {
        var apiErrors = DTO.ApiErrors{}
        for _, v := range err.(validator.ValidationErrors) {
            apiErrors.Errors = append(apiErrors.Errors, DTO.ApiError{Field: v.Field, Message: v.Field + " is " + v.Tag})
        }
        c.JSON(http.StatusBadRequest, apiErrors)
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑

经过调查, log.Println(c.Writer.Header().Get("Content-Type")) 不打印任何内容,显示 content-type 应该是空的。

func …
Run Code Online (Sandbox Code Playgroud)

json go

5
推荐指数
3
解决办法
2万
查看次数

Bean验证不起作用

我目前正在学习spring,但我仍然坚持使用不适用于我的bean的验证注释.我真的不明白什么失踪,我需要一只手:)

我有一个控制器:

@Controller
public class CirclesController {

    @RequestMapping(value = "/createCircle", method = RequestMethod.POST)
    public ModelAndView createCircle(@Valid Circle circle, BindingResult res) {

        if (res.hasErrors()) {
            System.out.println("Can't validate this form..");
        else
            System.out.println("Created new circle : " + circle);
    }
}
Run Code Online (Sandbox Code Playgroud)

还有一个豆子:

public class Circle {

    @Size(min = 5)                 // This is what I try to validate
    private String      name;

public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
Run Code Online (Sandbox Code Playgroud)

我配置了web.xml

<listener>
    <listener-class>
    org.springframework.web.context.ContextLoaderListener
    </listener-class>
</listener> …
Run Code Online (Sandbox Code Playgroud)

java spring hibernate spring-mvc bean-validation

2
推荐指数
1
解决办法
5341
查看次数