电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

61396-Go语言程序设计项目化教程(微课版)7.1 初识GinVIP免费

61396-Go语言程序设计项目化教程(微课版)7.1 初识Gin_第1页
61396-Go语言程序设计项目化教程(微课版)7.1 初识Gin_第2页
61396-Go语言程序设计项目化教程(微课版)7.1 初识Gin_第3页
初识GinHTTP基础知识Gin基础路由RESTfulAPI资源设计Gin参数处理01.03.02.04.目录01HTTP基础知识•完整的上网流程•HTTP协议请求/响应•常见状态码•Go原生net/http标准库1HTTP基础知识•1、输入域名(例如:www.baidu.com)•2、返回域名对应的IP地址•3、依据IP地址进行访问(发送HTTP请求包)•4、Web服务器返回页面(发送HTTP响应包)•5、客户机(浏览器)解释HTML文档,在屏幕渲染图形化结果完整的上网流程•1.客户端连接到Web服务器,与Web服务器的端口建立一个TCP套接字连接•2.客户端向Web服务器发送一个HTTP文本的请求报文•3.Web服务器处理请求并返回HTTP响应•4.释放TCP套接字连接•5.客户端浏览器解析HTML文本内容HTTP协议的请求——响应1HTTP基础知识1HTTP基础知识状态码解释200OK客户端请求成功204NoContent请求处理成功,但没有任何资源可以返回给客户端400BadRequest请求报文有语法错误401Unauthorized未授权403Forbidden服务器拒绝服务404NotFound请求的资源不存在500InternalServerError服务器内部错误503ServerUnavailable服务器临时不能处理客户端请求1HTTP基础知识Go语言中内置了原生的net/http标准库,通过它我们可以快速搭建一个简单的Web服务器。funcmain(){http.HandleFunc("/",func)http.ListenAndServe(":port",nil)}•http.HandleFunc()设置路由路径调用func()函数•http.ListenAndServe()指定监听地址,启动一个HTTP服务端。语法packagemainimport("fmt""net/http")//服务端编写的业务逻辑处理程序funcmyHandler(whttp.ResponseWriter,r*http.Request){fmt.Fprintln(w,"HelloGoWeb!")}funcmain(){http.HandleFunc("/",myHandler)//在指定的地址进行监听,开启一个HTTPhttp.ListenAndServe(":8080",nil)}02RESTfulAPI资源设计•RESTfulAPI作用•RESTfulAPI资源动作设计2RESTfulAPI资源设计时间发展,需求增加转为HTML+JavaScript(Ajax)互联网初期:页面请求和并发量不高HTML+JSP(动态页面)能满足需求安卓、IOS、小程序等形式客户端层出不穷客户端和服务端就需要通过接口进行通信•具有REST风格的API(接口)•结构清晰、符合标准、易于理解、扩展方便•是目前最流行的接口设计规范•主题站点:https://restfulapi.cn/•一种软件架构风格、设计风格•不是标准,是提供了一组设计原则和约束条件•主要用于客户端和服务器交互类的软件•基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制REST(RepresentationalStateTransfer)RESTfulAPI2RESTfulAPI资源设计请求方法含义GET获取资源POST创建资源PUT更新资源PATCH更新资源属性DELETE删除资源HEAD获取资源元数据OPTIONS获取信息Gin框架支持RESTful风格的API,RESTfulAPI资源动作设计有以下内容:03Gin基础路由•HTTP路由•原生net/http与Gin对比•gin.Default()HTTP路由•HTTP请求/响应路由是用于决定在当前请求下,由哪一个句柄去接收和响应•句柄可以是一个函数、过程或者方法,只要能够接收特定类型的请求并做出反应即可Go语言内置的net/http原生标准库•DefaultServeMux()函数提供了基础的路由功能•但在请求响应过程中,常常会伴随着一系列问题•即:内置的http原生标准库无法满足Web服务的灵活多变性•弥补了原生net/http的不足,并提供了动态路由•基于httprouter实现了高性能和低内存消耗3Gin基础路由GinWeb框架3Gin基础路由原生net/http不足之处•不能单独对请求方法注册特定的处理函数•不支持路由变量参数•无法自动校准路径•性能不高•扩展性不足•支持精确匹配•不需要关注URL结尾斜杠•路径自动归一化与矫正•高性能同时内存消耗较低•低内存消耗Gin框架路由便利之处3Gin基础路由Gin初始化语法r:=gin.Default()•r为基础路由赋值变量•gin为导入的第三方模块•语法目的:调用gin模块中的Default函数去创建路由packagemainimport("github.com/gin-gonic/gin""net/http")//服务端编写的业务逻辑处理程序funcmyHandler(c*gin.Context){c.String(http.StatusOK,"HelloGoWeb!")}funcmain(){//创建基础路由,赋值变量rr:=gin.Default()//绑定路由规则,执行IndexHandler函数...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部