go fiber: controller返回json格式

一,代码:

1,controller/articleController.go

package controller

import (
	"github.com/gofiber/fiber/v2"
	"industry/config"
)

type ArticleController struct{}

func NewArticleController() *ArticleController {
	return &ArticleController{}
}

type Article struct {
	//定义文章的struct
	Id int `json:"id"`
	Title string `json:"title"`
	Author string  `json:"author"`
}

func (dc *ArticleController) GetArticle(c *fiber.Ctx) error {
	// 处理获取文章的逻辑
	artilce := new(Article)
	artilce.Id = 1
	artilce.Title = "三国演义金圣叹批本"
	artilce.Author = "罗贯中"
	return c.Status(200).JSON(config.Success(artilce))
}

func (dc *ArticleController) CreateArticle(c *fiber.Ctx) error {
	// 处理创建文章的逻辑
	return c.Status(200).JSON(config.Error("已存在同名文章,创建失败!"))
}

2,config/result.go

package config


// 统一的返回参数格式
type Result struct {
	Status string  `json:"status"`  // 统一的返回状态,‘success’ 成功 'failed' 失败
	Code    int    `json:"code"`    // 统一的返回码,0 成功 -1 失败  600 未登录 700 需身份验证
	Message string `json:"message"` // 统一的返回信息
	Data    any    `json:"data"`    // 统一的返回数据
}

// 请求成功的默认返回
func Success(obj any) Result {
	return Result{"success",0, "ok", obj}
}

// 请求失败的默认返回,code默认为-1
func Error(message string) Result {
	return ErrorCode(-1, message)
}

//请求失败的默认返回
func ErrorCode(code int, message string) Result {
	return Result{"failed",code, message, nil}
}

 

二,测试效果:

成功

报错

posted @ 2024-11-16 12:39  刘宏缔的架构森林  阅读(7)  评论(0编辑  收藏  举报