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

goframe结构体标签和命令行标签

元数据gmeta

基础标签

更多了解:https://swagger.io/specification/

g.Meta `path:"/profile" method:"get" summary:"展示个人资料页面" tags:"个人"`
g.Meta `mime:"text/html" type:"string" example:"<html/>"`
常见 OpenAPIv3 标签说明备注
path结合注册时的前缀共同构成接口 URI 路径用于 g.Meta 标识接口元数据
tags接口所属的标签,用于接口分类用于 g.Meta 标识接口元数据
method接口的请求方式:GET/PUT/POST/DELETE…(不区分大小写)用于 g.Meta 标识接口元数据
deprecated标记该接口废弃用于 g.Meta 标识接口元数据
summary接口/参数概要描述缩写 sm
description接口/参数详细描述缩写 dc
in参数的提交方式:header/path/query/cookie
default参数的默认值缩写 d
mime接口的 MIME 类型,例如 multipart/form-data,默认为 application/json。用于 g.Meta 标识接口元数据
type参数的类型,特殊参数需要手动设置,例如 file仅用于参数属性

扩展标签

在OpenAPI规范里面,所有名称以x-开头的标签是开发者可自定义的扩展标签。扩展标签可以在任意的接口、属性中以Golang struct tag的形式定义,在接口文档生成时,将会作为独立的字段返回。例如:

type GetListReq struct {g.Meta `path:"/user" tags:"User" method:"get" x-group:"User/Info" summary:"Get user list with basic info."`Page   int `dc:"Page number" d:"1" x-sort:"1"`Size   int `dc:"Size for per page." d:"10" x-sort:"2"`
}

struct tag标签

Tag(简写)全称描述相关文档
vvalid数据校验标签。Struct 校验 - 基本使用
pparam自定义请求参数匹配。请求输入 - 对象处理
ddefault请求参数默认值绑定。请求输入 - 默认值绑定
ormormORM 标签,用于指定表名、关联关系。数据规范 - gen dao / 模型关联 - 静态关联 - With 特性
dcdescription通用结构体属性描述,ORM 和接口都用到。属于框架默认的属性描述标签。

参数映射:p/param/params

使用了p标签来指定该属性绑定的参数名称。password1参数将会映射到Pass1属性,password2将会映射到Pass2属性上。其他属性采用默认的转换规则即可,无需设置tag。

type User struct{Id    intName  stringPass1 string `p:"password1"`Pass2 string `p:"password2"`
}

转换:json

如果对象没有绑定json标签,因此返回的JSON字段将会为其属性名称。

type RegisterRes struct {Code  int          Age int    `json:"age"`Pwd *struct{} `json:"pwd,omitempty"`// 这里的字段json名需要和嵌套的字段json名一致,否则无效
}

默认值绑定: default/d

从v1.15版本开始,Request请求对象支持通过struct tag的方式为输入对象的属性绑定默认值。默认值的struct tag名称为d(也可以使用default)。

type GetListReq struct {g.Meta `path:"/" method:"get"`Type   string `v:"required#请选择内容模型" dc:"内容模型"`Page   int    `v:"min:0#分页号码错误"      dc:"分页号码" d:"1"`
}

描述:description/dc

type SellSpec struct {Id        uint        `description:"主键"`CreatedAt *gtime.Time `description:"创建时间"`UpdatedAt *gtime.Time `description:"更新时间"`
} 

校验tag规则:valid/v

文档链接:https://goframe.org/pages/viewpage.action?pageId=1114367

格式:[属性别名@]校验规则[#错误提示]

  • 属性别名 和 错误提示 为非必需字段,校验规则 是必需字段。
  • 属性别名 非必需字段,指定在校验中使用的对应struct属性的别名,同时校验后返回的error对象中的也将使用该别名返回。例如在处理请求表单时比较有用,因为表单的字段名称往往和struct的属性名称不一致。大部分场景下不需要设置属性别名,默认直接使用属性名称即可。
  • 校验规则则为当前属性的校验规则,多个校验规则请使用|符号组合,例如:required|between:1,100。
  • 错误提示 非必需字段,表示自定义的错误提示信息,当规则校验时对默认的错误提示信息进行覆盖。
type User struct {Uid   int    `v:"uid      @integer|min:1#|请输入用户ID"`Name  string `v:"name     @required|length:6,30#请输入用户名称|用户名称长度非法"`Pass2 string `v:"password2@required|password3|same:Pass1#|密码格式不合法|两次密码不一致,请重新输入"`
}

参数的提交方式: in

header/path/query/cookie

命令管理:预定义的标签

在结构化设计中,我们使用了一些结构体标签,大部分来源于Command命令的属性,这里我们来介绍一下:

标签缩写说明注意事项
name-命名名称如果是输入参数结构体,在未指定 name 时将会自动读取方法名称作为 name
short-命令缩写
usage-命令使用
brief-命令描述
arg-表示该输入参数来源于参数而不是选项仅用于属性标签
orphan-表示该选项不带参数属性通常为 bool 类型
descriptiondc命令的详细介绍
additionalad命令的额外描述信息
exampleseg命令的使用示例
root-指定子级命令名称是父级命令仅用于主命令对象结构体 Meta 标签
strict-表示该命令严格解析参数/选项当输入不支持的参数/选项时,返回错误
config-表示该命令的选项数据支持从指定的配置读取配置来源于默认的全局单例配置对象

相关文章:

goframe结构体标签和命令行标签

元数据gmeta 基础标签 更多了解&#xff1a;https://swagger.io/specification/ g.Meta path:"/profile" method:"get" summary:"展示个人资料页面" tags:"个人" g.Meta mime:"text/html" type:"string" example…...

pytest压力测试:不断发送数据,直到发现数据丢失

示例场景 假设有一个 send_data 函数接受数据并返回成功或失败的状态。 创建一个测试用例&#xff0c;通过逐步增加数据量来测试这个函数&#xff0c;直到返回失败为止。 步骤 定义压力测试函数 定义一个函数。不断发送数据&#xff0c;直到发现数据丢失。 创建 pytest 测试…...

自选择问题和处理效应模型

自选择问题和处理效应模型 DGP 注意&#xff1a; 这里的概率密度超过了1&#xff0c;这是正常的。概率密度的三原则&#xff0c;1是大于等于0&#xff1b;2是积分等于1&#xff1b;对于连续型随机变量&#xff0c;给定一个具体的x值&#xff0c;f(x)并不是该事件发生的概率。而…...

[数据集][目标检测]水面垃圾检测数据集VOC+YOLO格式2027张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;2027 标注数量(xml文件个数)&#xff1a;2027 标注数量(txt文件个数)&#xff1a;2027 标注…...

OpenCV 之 模版匹配多个对象、图片旋转 综合应用

引言 在图像处理和计算机视觉中&#xff0c;模板匹配是一种常用的技术&#xff0c;用于在一幅较大的图像中查找与给定模板图像相似的部分。然而&#xff0c;在实际应用中&#xff0c;目标物体可能会出现在不同的角度&#xff0c;这就需要我们在匹配之前对模板进行旋转处理。本…...

ZooKeeper 中的 Curator 框架解析

Apache ZooKeeper 是一个为分布式应用提供一致性服务的软件。它提供了诸如配置管理、分布式同步、组服务等功能。在使用 ZooKeeper 时&#xff0c;Curator 是一个非常流行的客户端库&#xff0c;它简化了 ZooKeeper 的使用&#xff0c;提供了高级的抽象和丰富的工具。本文将详细…...

机械学习—零基础学习日志(Python做数据分析02)

现在开始使用Python尝试做数据分析。具体参考的网址链接放在了文章末尾。 引言 我通过学习《利用Python进行数据分析》这本书来尝试使用Python做数据分析。书里让下载&#xff0c;anaconda&#xff0c;使用Jupyter来写代码&#xff0c;只是下载一个anaconda的确有点费时间&am…...

BRAM IP Native模式使用

简介 BRAM&#xff08;‌Block RAM&#xff09;是‌FPGA&#xff08;Field-Programmable Gate Array&#xff09;中的一种专用RAM资源&#xff0c;固定分布在FPGA内部的特定位置。该内容主要对BRAM&#xff08;Block RAM”的缩写&#xff09;Native模式下IP界面做详细描述和使用…...

react的useRef用什么作用

useRef 是 React 提供的一个钩子&#xff0c;用于在函数组件中创建和管理对 DOM 元素或组件实例的引用。它返回一个包含 current 属性的对象&#xff0c;可以用来存储对某个值的引用&#xff0c;而这个引用在组件的整个生命周期内保持不变。 useRef 的主要用途 1.访问 DOM 元素…...

10.2 TCP IP模型、IP协议、IPv4、子网掩码

TCP / IP 协议族 IP协议 IPv4地址 IPv4地址分类 子网掩码 子网掩码用来区分 网络地址 和 主机地址 真题 1...

工业相机飞拍的原理及工作原理

工业相机飞拍&#xff08;或称为工业高速相机飞行拍摄&#xff09;是一种利用高速图像捕捉技术和精密运动控制系统进行高效图像采集的先进技术。它广泛应用于工业检测、质量控制和自动化生产等领域。本文将详细探讨工业相机飞拍的原理及其工作方式。 一、工业相机飞拍的基本概…...

通过AI来创建一个_____html css网页制作成品 例子演示

使用AI 输入创建一个 html css网页制作成品 例 然后出来 好的&#xff0c;我将为您创建一个简单的HTML和CSS网页制作的示例。这个示例将包括基本的布局、文本样式和一些内联的CSS样式。 { "name": "dalle", "description": "A simple exa…...

C ++ 从单链表到创建二叉树到二叉树的遍历(结构体)

首先我们要了解二叉树的数据结构是什么&#xff0c;本质上二叉树是一个有两个节点的链表&#xff0c;我们先了解的单链表的相关定义 单链表 创建一个朴素的单链表 #include <iostream>using namespace std;struct Node{int val;Node* next;Node(int x) : val(x), next(…...

Python 编程:如何巧妙运用 `abc` 模块解锁面向对象设计的新维度?

引言 在软件开发的世界里&#xff0c;面向对象编程&#xff08;OOP&#xff09;作为一门艺术&#xff0c;其精髓在于通过封装、继承与多态来构建可维护性高、易于扩展的系统。而在 Python 这门语言中&#xff0c;abc 模块则为我们提供了一种优雅的方式来定义抽象基类&#xff…...

Jenkins 执行 shell 时报错 Host key verification failed.

1. 问题描述 在 jenkins 中执行下面的 shell 语句时 sshpass -p "123456" scp -r * dep192.168.1.100:/home/dep/Desktop/报错 Host key verification failed.可能原因是由于首次登录时需要输入 yes 导致无法连接成功。 The authenticity of host 192.168.1.100…...

MyBatis-Plus&Druid数据源

MyBatis-Plus&#xff08;简称MP&#xff09;和Druid数据源在Java开发中各自扮演着重要的角色&#xff0c;它们分别增强了MyBatis的数据库操作能力和提供了高效的数据库连接池管理。以下是对MyBatis-Plus和Druid数据源的总结&#xff1a; MyBatis-Plus 定义与特性&#xff1a…...

MTPA控制分析与推导

目录 MTPA (Maximum torque per ampere) 一. 控制目的 二. 设计思路 三. 推导过程 MTPA (Maximum torque per ampere) 一. 控制目的 忽略电机中的铁耗只考虑铜耗的背景下&#xff0c;希望实现铜耗最小化。 二. 设计思路 通过给出电机在d-q坐标系下的等效电路模型&…...

Spring Boot 的Web项目如何直接显示html

前言 实际的开发中,在Spring Boot的Web项目中直接使用html文件的场景已经比较少了, 或者是只需要很简单的页面显示,或者是演示的需要, 大部分的状况都是Spring Boot作为后端提供REST 的服务,结合其他的一些前端Framework进行开发,比如VUE,Ext JS等。 Spring Boot项目中…...

【回收站选址】

题目 代码 #include <bits/stdc.h> using namespace std; const int R 2e91; typedef long long LL; unordered_set<LL> s; int piles[5]; int dx[4] {-1, 0, 1, 0}, dy[4] {0, 1, 0, -1}; int dx1[4] {-1, -1, 1, 1}, dy1[4] {-1, 1, -1, 1};bool check(LL …...

Springboot整合websocket(附详细案例代码)

文章目录 WebSocket简述WebSocket是什么&#xff1f;WebSocket 的特点WebSocket 的工作流程WebSocket的消息(帧)格式WebSocket 与 HTTP springboot中整合WebSocketpom依赖实体类配置类握手配置类WebSocket配置类 自定义异常类webSocket服务类websocket中Session的 getBasicRemo…...

OpenLayers 可视化之热力图

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 热力图&#xff08;Heatmap&#xff09;又叫热点图&#xff0c;是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

进程地址空间(比特课总结)

一、进程地址空间 1. 环境变量 1 &#xff09;⽤户级环境变量与系统级环境变量 全局属性&#xff1a;环境变量具有全局属性&#xff0c;会被⼦进程继承。例如当bash启动⼦进程时&#xff0c;环 境变量会⾃动传递给⼦进程。 本地变量限制&#xff1a;本地变量只在当前进程(ba…...

3.3.1_1 检错编码(奇偶校验码)

从这节课开始&#xff0c;我们会探讨数据链路层的差错控制功能&#xff0c;差错控制功能的主要目标是要发现并且解决一个帧内部的位错误&#xff0c;我们需要使用特殊的编码技术去发现帧内部的位错误&#xff0c;当我们发现位错误之后&#xff0c;通常来说有两种解决方案。第一…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂

蛋白质结合剂&#xff08;如抗体、抑制肽&#xff09;在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上&#xff0c;高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术&#xff0c;但这类方法普遍面临资源消耗巨大、研发周期冗长…...

FastAPI 教程:从入门到实践

FastAPI 是一个现代、快速&#xff08;高性能&#xff09;的 Web 框架&#xff0c;用于构建 API&#xff0c;支持 Python 3.6。它基于标准 Python 类型提示&#xff0c;易于学习且功能强大。以下是一个完整的 FastAPI 入门教程&#xff0c;涵盖从环境搭建到创建并运行一个简单的…...

JVM垃圾回收机制全解析

Java虚拟机&#xff08;JVM&#xff09;中的垃圾收集器&#xff08;Garbage Collector&#xff0c;简称GC&#xff09;是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象&#xff0c;从而释放内存空间&#xff0c;避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

页面渲染流程与性能优化

页面渲染流程与性能优化详解&#xff08;完整版&#xff09; 一、现代浏览器渲染流程&#xff08;详细说明&#xff09; 1. 构建DOM树 浏览器接收到HTML文档后&#xff0c;会逐步解析并构建DOM&#xff08;Document Object Model&#xff09;树。具体过程如下&#xff1a; (…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互

引擎版本&#xff1a; 3.8.1 语言&#xff1a; JavaScript/TypeScript、C、Java 环境&#xff1a;Window 参考&#xff1a;Java原生反射机制 您好&#xff0c;我是鹤九日&#xff01; 回顾 在上篇文章中&#xff1a;CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日&#xff0c;2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席&#xff0c;并作《智能体在安全领域的应用实践》主题演讲&#xff0c;分享了在智能体在安全领域的突破性实践。他指出&#xff0c;百度通过将安全能力…...

css3笔记 (1) 自用

outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size&#xff1a;0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格&#xff…...