diff --git "a/docs/quick/\345\277\253\351\200\237\345\274\200\345\247\213/\344\270\255\351\227\264\344\273\266\345\210\235\350\257\225\347\224\250.md" "b/docs/quick/\345\277\253\351\200\237\345\274\200\345\247\213/\344\270\255\351\227\264\344\273\266\345\210\235\350\257\225\347\224\250.md" index 4192f07f853..a5114e0dc0f 100644 --- "a/docs/quick/\345\277\253\351\200\237\345\274\200\345\247\213/\344\270\255\351\227\264\344\273\266\345\210\235\350\257\225\347\224\250.md" +++ "b/docs/quick/\345\277\253\351\200\237\345\274\200\345\247\213/\344\270\255\351\227\264\344\273\266\345\210\235\350\257\225\347\224\250.md" @@ -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) diff --git "a/docs/quick/\345\277\253\351\200\237\345\274\200\345\247\213/\347\224\237\346\210\220\346\216\245\345\217\243\346\226\207\346\241\243.md" "b/docs/quick/\345\277\253\351\200\237\345\274\200\345\247\213/\347\224\237\346\210\220\346\216\245\345\217\243\346\226\207\346\241\243.md" index 18cec2973fe..08d7f2d8413 100644 --- "a/docs/quick/\345\277\253\351\200\237\345\274\200\345\247\213/\347\224\237\346\210\220\346\216\245\345\217\243\346\226\207\346\241\243.md" +++ "b/docs/quick/\345\277\253\351\200\237\345\274\200\345\247\213/\347\224\237\346\210\220\346\216\245\345\217\243\346\226\207\346\241\243.md" @@ -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 ( @@ -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), ) @@ -111,7 +111,7 @@ func main() { ### 关于`OpenAPIv3` -`OpenAPIv3`是目前业内的接口文档标准协议,用于接口文档的定义,通常使用`json`格式生成。该接口文档`json`文件可以用许多接口`UI`展示工具打开,例如`Swagger UI/PostMan/ApiFox`等等。 +`OpenAPIv3`是目前业内的接口文档标准协议,用于接口文档的定义,通常使用`json`格式生成。该接口文档`json`文件可以用许多接口管理工具打开,例如`Swagger UI/PostMan/APIFox`等等。 ### 关于`Swagger` diff --git "a/docs/quick/\345\277\253\351\200\237\345\274\200\345\247\213/\347\273\237\344\270\200\350\277\224\345\233\236\347\273\223\346\236\204.md" "b/docs/quick/\345\277\253\351\200\237\345\274\200\345\247\213/\347\273\237\344\270\200\350\277\224\345\233\236\347\273\223\346\236\204.md" index 9bfef131302..7de1af0cc26 100644 --- "a/docs/quick/\345\277\253\351\200\237\345\274\200\345\247\213/\347\273\237\344\270\200\350\277\224\345\233\236\347\273\223\346\236\204.md" +++ "b/docs/quick/\345\277\253\351\200\237\345\274\200\345\247\213/\347\273\237\344\270\200\350\277\224\345\233\236\347\273\223\346\236\204.md" @@ -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 ( @@ -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), ) @@ -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) diff --git "a/docs/quick/\345\277\253\351\200\237\345\274\200\345\247\213/\350\216\267\345\217\226\350\257\267\346\261\202\345\217\202\346\225\260.md" "b/docs/quick/\345\277\253\351\200\237\345\274\200\345\247\213/\350\216\267\345\217\226\350\257\267\346\261\202\345\217\202\346\225\260.md" index d4c4738b609..1c9e192b194 100644 --- "a/docs/quick/\345\277\253\351\200\237\345\274\200\345\247\213/\350\216\267\345\217\226\350\257\267\346\261\202\345\217\202\346\225\260.md" +++ "b/docs/quick/\345\277\253\351\200\237\345\274\200\345\247\213/\350\216\267\345\217\226\350\257\267\346\261\202\345\217\202\346\225\260.md" @@ -58,10 +58,8 @@ func (r *Request) Get(key string, def ...interface{}) *gvar.Var 在本章节中,我们学会了如何在HTTP路由函数中获取客户端提交的参数。 但大家可以看到,在本示例的代码中,存在一些显而易见的问题: -- 参数的接收使用了硬编码的参数名称, -如果在真实的项目开发中,很容易由于参数拼写错误引发异常。 -- 硬编码的参数名称不能确定业务含义和数据类型,很难进行长期管理维护, -例如难以对参数进行描述说明、类型校验等基本操作。 +- 参数的接收使用了**硬编码的参数名称**,如果在真实的项目开发中,很容易由于名称拼写错误引发异常。 +- 硬编码的参数名称不能确定业务含义和数据类型,很难进行长期管理维护,例如难以对参数进行描述说明、类型校验等基本操作。 在下一章节中,我们尝试通过结构化的参数对象来规避这一问题。 diff --git "a/docs/quick/\345\277\253\351\200\237\345\274\200\345\247\213/\350\257\267\346\261\202\346\225\260\346\215\256\347\273\223\346\236\204.md" "b/docs/quick/\345\277\253\351\200\237\345\274\200\345\247\213/\350\257\267\346\261\202\346\225\260\346\215\256\347\273\223\346\236\204.md" index 0c9eaa3d5df..1de8856a4ce 100644 --- "a/docs/quick/\345\277\253\351\200\237\345\274\200\345\247\213/\350\257\267\346\261\202\346\225\260\346\215\256\347\273\223\346\236\204.md" +++ "b/docs/quick/\345\277\253\351\200\237\345\274\200\345\247\213/\350\257\267\346\261\202\346\225\260\346\215\256\347\273\223\346\236\204.md" @@ -7,7 +7,7 @@ keywords: [GoFrame,GoFrame框架,请求数据结构,结构化请求,参数映射 description: '通过数据结构化解决参数名称硬编码问题,介绍了如何定义请求对象以接收客户端参数,通过GoFrame框架实现参数映射与校验,提高代码可维护性。同时,示例程序展示了避免冗余校验逻辑的方法,探讨了更简洁的解决方案。' --- -在本示例,我们尝试通过数据结构化的方式,解决上一章节的参数名称硬编码问题。 +在本示例,我们尝试通过数据结构化的方式,解决上一章节的**参数名称硬编码**问题。 ## 请求对象 @@ -81,10 +81,11 @@ func main() { 在本章节中,我们学会了通过结构化请求对象的方式来规避参数名称硬编码的问题, 也能很好地维护参数的名称、描述和类型定义。 +同时,我们也对参数增加了必要的校验逻辑,以保障参数的完整性。 但在该示例代码中,同样有值得改进的地方: - 其中的`r.Parse`是属于业务无关的操作,理应当独立于业务逻辑之外处理。 -- 如果接口比较多的情况下,所有的接口中都要重复进行`r.Parse`操作,比较繁琐。 -- 关于数据校验,如果接口的参数比较多,进行大量的`if`数据校验操作太过于繁琐。 +- 如果接口比较多,所有的接口中都要重复进行`r.Parse`操作,操作比较冗余。 +- 针对数据校验,如果接口的参数比较多,进行大量的`if`数据校验操作太过于繁琐。 -是否有更好的方式来简化并解决这些问题呢?答案是肯定的,我们下一个章节尝试解决这一问题。 +是否有更好的方式来简化并解决这些问题呢?答案是肯定的,我们下一个章节解决这一问题。