当前位置: 首页 > article >正文

goframe开发一个企业网站 统一返回响应码 18

响应码的logic
package returncode

import (
	"context"
	"gf_new_web/internal/service"

	"github.com/gogf/gf/v2/errors/gcode"
	"github.com/gogf/gf/v2/frame/g"
)

type sReturncode struct {
}

var (
	insReturncode         = sReturncode{}
	codeSuccessDefault    = gcode.CodeOK.Code()
	MessageSuccessDefault = "操作成功"
)

func init() {
	service.RegisterReturncode(New())
}

func New() *sReturncode {
	return &sReturncode{}
}

func Returncode() *sReturncode {
	return &insReturncode
}

// SuccessJson 返回成功json
func (s *sReturncode) SuccessJson(ctx context.Context, code int, message string, data interface{}) {
	g.RequestFromCtx(ctx).Response.WriteJson(g.Map{
		"code":    code,
		"message": message,
		"data":    data,
	})
}

// SuccessJsonDefault 返回默认成功json
func (s *sReturncode) SuccessJsonDefault(ctx context.Context) {
	service.Returncode().SuccessJson(ctx, service.Returncode().SuccessCodeDefault(), service.Returncode().SuccessMessageDefault(), g.Map{})
}

// SuccessJsonDefaultMessage 返回自定义提示语的成功json
func (s *sReturncode) SuccessJsonDefaultMessage(ctx context.Context, message string) {
	service.Returncode().SuccessJson(ctx, service.Returncode().SuccessCodeDefault(), message, g.Map{})
}

// SuccessCodeDefault 获取默认成功code码
func (s *sReturncode) SuccessCodeDefault() int {
	return codeSuccessDefault
}

// SuccessMessageDefault 获取默认成功提示语
func (s *sReturncode) SuccessMessageDefault() string {
	return MessageSuccessDefault
}

// Status404 状态码404
func (s *sReturncode) Status404(ctx context.Context) {
	g.RequestFromCtx(ctx).Response.WriteStatusExit(404, " ")
	return
}

// Status500 http状态码500
func (s *sReturncode) Status500(ctx context.Context) {
	g.RequestFromCtx(ctx).Response.WriteStatusExit(500, "")
	return
}

service.go

// ================================================================================
// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT.
// You can delete these comments if you wish manually maintain this interface file.
// ================================================================================

package service

import (
	"context"
)

type (
	IReturncode interface {
		// SuccessJson 返回成功json
		SuccessJson(ctx context.Context, code int, message string, data interface{})
		// SuccessJsonDefault 返回默认成功json
		SuccessJsonDefault(ctx context.Context)
		// SuccessJsonDefaultMessage 返回自定义提示语的成功json
		SuccessJsonDefaultMessage(ctx context.Context, message string)
		// SuccessCodeDefault 获取默认成功code码
		SuccessCodeDefault() int
		// SuccessMessageDefault 获取默认成功提示语
		SuccessMessageDefault() string
		// Status404 状态码404
		Status404(ctx context.Context)
		// Status500 http状态码500
		Status500(ctx context.Context)
	}
)

var (
	localReturncode IReturncode
)

func Returncode() IReturncode {
	if localReturncode == nil {
		panic("implement not found for interface IReturncode, forgot register?")
	}
	return localReturncode
}

func RegisterReturncode(i IReturncode) {
	localReturncode = i
}

view的处理

logic

package returnview

import (
	"context"
	"gf_new_web/internal/service"

	"github.com/gogf/gf/v2/frame/g"
)

type sReturnview struct {
}

var (
	insReturnview = sReturnview{}
)

func init() {
	service.RegisterReturnview(New())
}

func New() *sReturnview {
	return &sReturnview{}
}

func Returnview() *sReturnview {
	return &insReturnview
}

// WebView 网站页面渲染
func (s *sReturnview) WebView(ctx context.Context, template string, data map[string]interface{}) (err error) {
	err = g.RequestFromCtx(ctx).Response.WriteTpl(template, data)
	if err != nil {
		return err
	}
	return
}

// ErrorView 错误页面渲染
func (s *sReturnview) ErrorView(ctx context.Context, code int, message string) (err error) {
	template := "backend/error.html"
	data := g.Map{
		"code":    code,
		"message": message,
	}
	err = g.RequestFromCtx(ctx).Response.WriteTpl(template, data)
	if err != nil {
		return err
	}
	return
}

这里的Webview还要再修改,将一前端一些重启的代码写入。


http://www.kler.cn/a/393169.html

相关文章:

  • 马斯克万卡集群AI数据中心引发的科技涟漪:智算数据中心挑战与机遇的全景洞察
  • jmeter介绍、使用方法、性能测试、现参数化和数据驱动、分布式测试、压力测试、接口测试
  • Vector Optimization – Stride
  • 【图像压缩感知】论文阅读:Self-supervised Scalable Deep Compressed Sensing
  • Electron 项目启动外部可执行文件的几种方式
  • 不对称信息
  • 2024-11-13 Unity Addressables2——寻址资源设置
  • 【vue2.0入门】vue基本语法
  • 【论文笔记】Prefix-Tuning: Optimizing Continuous Prompts for Generation
  • Spring框架之策略模式 (Strategy Pattern)
  • NoETL
  • 【网络安全】OSI网络安全体系结构
  • 接口自动化分支管理规范
  • Android音频架构
  • <websocket><PLC>使用js和html实现webscoket,与PLC进行socket通讯的实例
  • SPSS频率统计计算公式示例
  • 电子电气架构 ---车载以太网络环境下的安全威胁
  • 1. ShardingJDBC实际使用01
  • 详解机器学习经典模型(原理及应用)——DBSCAN
  • C++网络编程之SSL/TLS加密通信
  • turtlesim修改窗口大小;添加自己的小乌龟;
  • React Native 全栈开发实战班 - 列表与滚动视图
  • 【无线传感器网络】数据集合集!
  • 云服务器搭建及Docker使用---清风
  • 贪心算法理论
  • 集群聊天服务器(2)Json介绍