美文网首页
Beego 公共方法返回JSON

Beego 公共方法返回JSON

作者: Mr_dreamer | 来源:发表于2020-02-11 23:25 被阅读0次

容我废话一会,懒得看直接看正文

最近没事想写个blog学习一下go,发现了beego这个框架真的非常像PHP中的thinkphp框架,上手很简单的样子,于是简单看了看文档介绍什么的就开始写了,后台用vue-admin-template,然后beego写api,平时写原生PHP习惯了,都会封装公共方法Error()/Success() 什么的返回json,突然发现beego文档里只写了控制器返回json,而且比较麻烦

this.Data["json"] = json
this.ServeJSON()

于是,像往常一样,想做个公共文件,用来存放公共方法,开始还写了一个common包,然后发现不知道该怎么引controller中的方法进行输出,后来就想到了公共控制器这种,于是实现了下面的这种方法。

以下是正文

首先创建一个基类BaseController ,基类继承beego.Controller

package controllers

import (
    "github.com/astaxie/beego"
)

type BaseController struct {
    beego.Controller
}

type ReturnMsg struct {
    Code int
    Msg  string
    Data interface{}
}

func (this *BaseController) SuccessJson(data interface{}) {

    res := ReturnMsg{
        200, "success", data,
    }
    this.Data["json"] = res
    this.ServeJSON() //对json进行序列化输出
    this.StopRun()
}

func (this *BaseController) ErrorJson(code int, msg string, data interface{}) {

    res := ReturnMsg{
        code, msg, data,
    }

    this.Data["json"] = res
    this.ServeJSON() //对json进行序列化输出
    this.StopRun()
}

然后需要的地方继承这个基类

package admin

import (
        //如果不是同一个包需要引入一下
    //"blog/controllers"
    "blog/models"
)

type CategoryController struct {
        //不是同一个需要这样
    //controllers.BaseController
        BaseController
}

func (this *CategoryController) List() {
    data, err := models.List()
    if err != nil {
        this.ErrorJson(500, err.Error(), nil)
    }

    this.SuccessJson(data)

}

func (this *CategoryController) Create() {
    title := this.GetString("title")

    if title == "" {
        this.ErrorJson(503, "缺少必要参数", nil)
    }

        //省略代码

    id := 1
    this.SuccessJson(id)
}

本人刚接触golang,水平有限,希望能对您有所帮助

相关文章

  • Beego 公共方法返回JSON

    容我废话一会,懒得看直接看正文 最近没事想写个blog学习一下go,发现了beego这个框架真的非常像PHP中的t...

  • beego 时间类型json格式问题

    beego 时间类型json格式化问题再使用beego的orm框架时,如果希望重新定义time.Time转json...

  • Beego Config

    Beego提供了ini、yaml、xml、json、env等方式的参数配置,并提供不同配置方式的接口。 Beego...

  • jquery 将表单序列化成json对象 以便post提交参数

    以下方法写到js中,然后表单对象调用该方法,即可返回json对象 JSON对象转化json字符串,可以alert(...

  • 概述

    公共接口定义## 接口协议:所有接口的请求与应答均基于HTTP+JSON进行交换; 返回状态定义## 接口返回信息...

  • Beego踩坑

    问题1: 问题描述 按照官方实例返回的json结果始终为 {},官方实例如下: 解决方法: 返回json可以按如下...

  • golang json编码

    数据的json编码主要涉及两个方法调用: 1.Marshal方法 该方法返回参数v的json编码 该方法可以接受任...

  • SpringMVC学习笔记 | 返回JSON数据 、HttpMe

    处理JSON的步骤 加入jar包 编写目标方法,使其返回JSON对应的对象或集合 在方法上添加@ResponseB...

  • go 自定义log日志

    日志方法 安装beego

  • Flask返回图片

    Flask响应请求有以下几种方法: render_template 返回模板文件 jsonify 返回json格式...

网友评论

      本文标题:Beego 公共方法返回JSON

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