Gin框架操作指南12:完结篇

devtools/2024/10/20 18:19:47/

Gin框架的功能确实非常丰富,使用postman软件确实很方便,省去了自己写前端代码的过程。本文回顾2-11章的内容以及使用postman软件需要注意的细节。

指南2:JSON渲染。演示AsciiJSON JSONP PureJSON SecureJSON XML-JSON-YAML-ProtoBuf渲染。

指南3:HTML渲染。演示简单渲染,使用不同目录下名称相同的模板,自定义模板渲染器,自定义模板函数。

指南4:GET绑定。演示绑定表单数据至自定义结构体,绑定查询字符串或表单数据,只绑定url查询字符串,查询字符串参数,设置和获取Cookie 从reader读取数据。
postman如果要实现浏览器访问http://localhost:8085/testing?name=John&address=New York,即在GET请求中绑定查询字符串,需在body中设置内容为raw,类型为json,然后输入json格式的字符串:

{"name": "John","address":"New York"
}

指南5:POST绑定(上)。演示POST绑定,包括模型绑定和验证;Multipart-Urlencoded绑定;Multipart-Urlencoded表单;绑定HTML复选框;绑定 Uri。
在POST请求中绑定数据和GET差不多,需在body中设置内容为raw,类型为JSON或XML。如果是绑定表单,则内容为x-www-form-urlencoded。至于为什么不用form-data,因为form-data支持的功能更多,具体来说是:
x-www-form-urlencoded主要用于提交表单数据,只能发送文本。数据会被编码为一个 URL 查询字符串,格式如 key1=value1&key2=value2。
form-data允许发送文本、文件及其他复杂数据类型。数据会以多部分格式(multipart)发送,支持文本和文件同时上传。

指南6:POST绑定(下)。演示将request-body绑定到不同的结构体中;映射查询字符串或表单参数;上传文件 Query和post-form。

指南7:路由与中间件。演示路由与中间件,包括路由参数;路由组;使用中间件;在中间件中使用Goroutine;自定义中间件。

指南8:日志与安全。演示定义路由日志的格式;如何记录日志;安全页眉;使用BasicAuth中间件;使用HTTP方法。
使用安全标头保护网络应用程序免受常见安全漏洞的攻击非常重要,假设我在程序中对请求头中的host检测,那么在postman的GET请求下的Headers中,随意设置key和value,只要key不是host(不区分大小写),均能正常输出。但如果在headers中设置了key为host(不区分大小写),那么value就必须是代码中设置好的值,否则出错。
路由组使用 gin.BasicAuth() 中间件能保护 /admin 路径,在postman中,选择GET请求-Auth-Basic Auth,输入代码中设置好的用户名和密码即可访问网址成功。

指南9:静态文件与资源管理。演示静态文件服务,静态资源嵌入。

指南10:服务器与高级功能。演示运行多个服务;优雅地重启或停止;重定向;支持Let’s-Encrypt;HTTP2-server推送。

指南11:自定义与配置。演示自定义HTTP配置;自定义日志文件;自定义验证器。


http://www.ppmy.cn/devtools/127347.html

相关文章

《YOLO1》论文精读:第一次实现端到端的目标检测

You Only Look Once: Unified, Real-Time Object Detection论文地址Paperwithcode在目标检测的排名Github参考代码,100k个star 该论文最新由Facebook AI发表于2016年5月,截止现在2024年10月,引用数是52854次 文章目录 论文核心内容&#xff…

【Hive】4-HiveSQL 数据操控语言(DML)

HiveSQL 数据操控语言(DML) load加载数据 语法 -- 语法规则 LOAD DATA [LOCAL] INPATH filepath [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1val1, partcol2val2...)] -- 语法规则(Hive 3.0及以后) LOAD DATA [LOC…

Vue的响应式原理

Vue.js 是一个流行的前端框架,它的响应式系统是其核心特性之一,能够有效地处理数据变化并自动更新视图。在这篇文章中,我们将探讨 Vue 的响应式原理,包括其实现方式、关键概念以及性能优化。 1. 响应式原理概述 Vue 的响应式原理…

ubuntu 安装haproxy

####安装##### sudo apt update sudo apt install haproxy sudo haproxy -v sudo systemctl status haproxy sudo cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg-org####配置站点##### nano /etc/haproxy/haproxy.cfgfrontend www-httpbind *:5001mode httpdefault_ba…

即使是编程新手,也能利用ChatGPT编写高质量的EA

在外汇交易领域,MetaTrader是一款备受欢迎的交易软件,包括MT5和MT4,提供了众多强大的分析工具和自动化交易功能。对于没有编程经验的新手而言,编写专家顾问(EA)可能显得既复杂又令人望而却步。幸运的是&…

神经网络量化基础

1,模型量化概述 1.1,模型量化优点1.2,模型量化的方案 1.2.1,PTQ 理解 1.3,量化的分类 1.3.1,线性量化概述 2,量化算术 2.1,定点和浮点2.2,量化浮点2.2,量化算…

如何通过 Service Mesh 构建高效、安全的微服务系统

1. 引言 1.1.什么是 Service Mesh? Service Mesh 是一种基础架构层,负责处理微服务之间的通信,它通过在每个服务旁边部署代理(通常称为 Sidecar)来捕获和管理服务间的网络流量。这种方式解耦了微服务的业务逻辑和基础…

数据结构(二)顺序表应用:通讯录

功能要求 能够保存联系人信息:名字、性别、年龄、电话、地址等 增加联系人信息 删除指定联系人 查找制定联系人 修改指定联系人 显示联系人信息 代码实现 头文件 seqlist.h 要包含上“contact.h”,否则不能使用contact.h里定义的好的结构 #inc…