Skip to content

Commit

Permalink
quick doc updates
Browse files Browse the repository at this point in the history
  • Loading branch information
gqcn committed Feb 14, 2025
1 parent 0849f8a commit 1b39510
Show file tree
Hide file tree
Showing 5 changed files with 14 additions and 15 deletions.
2 changes: 1 addition & 1 deletion docs/quick/快速开始/中间件初试用.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ func main() {

![img.png](img.png)

我们尝试一下错误的参数请求 http://127.0.0.1:8000/ 可以看到,页面输出结果也符合预期
我们尝试一下错误的参数请求 http://127.0.0.1:8000/ 可以看到,页面也输出了错误的提示信息

![img_4.png](img_4.png)

Expand Down
6 changes: 3 additions & 3 deletions docs/quick/快速开始/生成接口文档.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ func (Hello) Say(ctx context.Context, req *HelloReq) (res *HelloRes, err error)
return
}

func Middleware(r *ghttp.Request) {
func ResponseMiddleware(r *ghttp.Request) {
r.Middleware.Next()

var (
Expand All @@ -94,7 +94,7 @@ func Middleware(r *ghttp.Request) {
func main() {
s := g.Server()
s.Group("/", func(group *ghttp.RouterGroup) {
group.Middleware(Middleware)
group.Middleware(ResponseMiddleware)
group.Bind(
new(Hello),
)
Expand All @@ -111,7 +111,7 @@ func main() {

### 关于`OpenAPIv3`

`OpenAPIv3`是目前业内的接口文档标准协议,用于接口文档的定义,通常使用`json`格式生成。该接口文档`json`文件可以用许多接口`UI`展示工具打开,例如`Swagger UI/PostMan/ApiFox`等等。
`OpenAPIv3`是目前业内的接口文档标准协议,用于接口文档的定义,通常使用`json`格式生成。该接口文档`json`文件可以用许多接口管理工具打开,例如`Swagger UI/PostMan/APIFox`等等。

### 关于`Swagger`

Expand Down
6 changes: 3 additions & 3 deletions docs/quick/快速开始/统一返回结构.md
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ func (Hello) Say(ctx context.Context, req *HelloReq) (res *HelloRes, err error)
return
}

func Middleware(r *ghttp.Request) {
func ResponseMiddleware(r *ghttp.Request) {
r.Middleware.Next()

var (
Expand All @@ -142,7 +142,7 @@ func Middleware(r *ghttp.Request) {
func main() {
s := g.Server()
s.Group("/", func(group *ghttp.RouterGroup) {
group.Middleware(Middleware)
group.Middleware(ResponseMiddleware)
group.Bind(
new(Hello),
)
Expand All @@ -159,7 +159,7 @@ func main() {

![img_3.png](img_3.png)

我们尝试一下错误的参数请求 http://127.0.0.1:8000/ 可以看到,页面输出结果也同样符合预期
我们尝试一下错误的参数请求 http://127.0.0.1:8000/ 可以看到,页面输出了错误的结果信息,返回数据类型也是`json`格式

![img_5.png](img_5.png)

Expand Down
6 changes: 2 additions & 4 deletions docs/quick/快速开始/获取请求参数.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,10 +58,8 @@ func (r *Request) Get(key string, def ...interface{}) *gvar.Var
在本章节中,我们学会了如何在HTTP路由函数中获取客户端提交的参数。

但大家可以看到,在本示例的代码中,存在一些显而易见的问题:
- 参数的接收使用了硬编码的参数名称,
如果在真实的项目开发中,很容易由于参数拼写错误引发异常。
- 硬编码的参数名称不能确定业务含义和数据类型,很难进行长期管理维护,
例如难以对参数进行描述说明、类型校验等基本操作。
- 参数的接收使用了**硬编码的参数名称**,如果在真实的项目开发中,很容易由于名称拼写错误引发异常。
- 硬编码的参数名称不能确定业务含义和数据类型,很难进行长期管理维护,例如难以对参数进行描述说明、类型校验等基本操作。

在下一章节中,我们尝试通过结构化的参数对象来规避这一问题。

9 changes: 5 additions & 4 deletions docs/quick/快速开始/请求数据结构.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ keywords: [GoFrame,GoFrame框架,请求数据结构,结构化请求,参数映射
description: '通过数据结构化解决参数名称硬编码问题,介绍了如何定义请求对象以接收客户端参数,通过GoFrame框架实现参数映射与校验,提高代码可维护性。同时,示例程序展示了避免冗余校验逻辑的方法,探讨了更简洁的解决方案。'
---

在本示例,我们尝试通过数据结构化的方式,解决上一章节的参数名称硬编码问题
在本示例,我们尝试通过数据结构化的方式,解决上一章节的**参数名称硬编码**问题

## 请求对象

Expand Down Expand Up @@ -81,10 +81,11 @@ func main() {

在本章节中,我们学会了通过结构化请求对象的方式来规避参数名称硬编码的问题,
也能很好地维护参数的名称、描述和类型定义。
同时,我们也对参数增加了必要的校验逻辑,以保障参数的完整性。

但在该示例代码中,同样有值得改进的地方:
- 其中的`r.Parse`是属于业务无关的操作,理应当独立于业务逻辑之外处理。
- 如果接口比较多的情况下,所有的接口中都要重复进行`r.Parse`操作,比较繁琐
- 关于数据校验,如果接口的参数比较多,进行大量的`if`数据校验操作太过于繁琐。
- 如果接口比较多,所有的接口中都要重复进行`r.Parse`操作,操作比较冗余
- 针对数据校验,如果接口的参数比较多,进行大量的`if`数据校验操作太过于繁琐。

是否有更好的方式来简化并解决这些问题呢?答案是肯定的,我们下一个章节尝试解决这一问题
是否有更好的方式来简化并解决这些问题呢?答案是肯定的,我们下一个章节解决这一问题

0 comments on commit 1b39510

Please sign in to comment.