首页IT科技go webapi框架(【Go Web开发】Web初识、RESTful架构和RESTful API详解、Gin框架的安装和简单使用)

go webapi框架(【Go Web开发】Web初识、RESTful架构和RESTful API详解、Gin框架的安装和简单使用)

时间2025-07-04 20:10:25分类IT科技浏览4849
导读:博主简介:努力学习的大一在校计算机专业学生,热爱学习和创作。目前在学习和分享:数据结构、Go,Java等相关知识。 博主主页: @是瑶瑶子啦 所属专栏: Go语言核心编程 近期目标:写好专栏的每一篇文章...

博主简介:努力学习的大一在校计算机专业学生             ,热爱学习和创作             。目前在学习和分享:数据结构             、Go                     ,Java等相关知识                     。 博主主页: @是瑶瑶子啦 所属专栏: Go语言核心编程 近期目标:写好专栏的每一篇文章

一                     、什么是Web

全称:“万维网             ”(World Wide Web)

本质:系统(基于互联网).由一系列的超文本文档Hypertext Documents)组成

作用:用户可以通过浏览器/APP      ,在Web上访问各种网站      、资源

原理(重要):

Web的核心技术:

超文本标记语言(HTML等):用于组织和创建Web页面 超文本传输协议(HTTP):Web客户端和服务器之间传输数据的协议 网页浏览器(Web Browser):用于显示Web页面的软件 统一资源定位符(URL):表示Web资源的地址

发展历程

静态Web:由静态页面组成         ,该系统的内容是静态的         、固定的                     ,无法根据用户需求进行更新 动态Web:使用服务器端脚本语言(PHP                     、ASP         、JSP)和数据库用于处理用户请求         ,动态生成页面内容 Web2.0:强调用户参与      、互动                     、分享社交 用户生成内容(User-generated content):比如瑶瑶子现在在CSDN上写博客      ,就是让我这个用户                     ,也成为了Web内容的创造者和分享者 社交互动(Social interaction)你在评论区给瑶瑶子评论            、或者加入瑶瑶子的社区            ,我们分享信息   、建立联系   ,这就是用户之间的互动 富媒体应用(Rich media applications):在线视频                     、游戏等

二                、RESTful架构

💁🏻‍♂️推荐阅读:阮一峰 理解RESTful架构

2.1:RESTful介绍

RESTful(Representational State Transfer                     ,表述性状态转移)是一种软件架构风格                ,它基于HTTP协议,用于设计和开发网络应用程序      。RESTful架构风格强调资源的标识状态的转移                 ,使得客户端和服务器之间的交互变得简单和可扩展         。

资源(Resource):

在RESTful框架中                    ,任何可以被标识和访问的对象都是资源(如网页、图片                 、视频                    、数据库记录等)

每一个URI(Uniform Resource Identifier:统一资源定位符)对应一个资源实体

URL(Uniform Resource Locator:统一资源定位器)和 URN(Uniform Resource Name:统一资源名称)都是URI的子集                     。作用是在互联网上唯一标识资源   ,便于资源的访问和管理         。 URL:由协议名   、主机名             、路径                     、查询参数组成      。作用:定位资源的具体位置和信息                     。当我们在浏览器输入一个URL时             ,浏览器会根据URL信息向服务器发送请求                     ,获取对应资源(网页      、图片         、视频等)            。 URN:由命名空间和资源名称组成      ,和URL不同的是它不包含用于定位资源的具体信息   。作用:指定持久性资源的名称         ,比如数字对象标识符(DOI)                     、国际标准书号(ISBN)         、国际标准音像制品编号(ISRC)等                     ,便于资源的唯一标识和长期管理                     。

HTTP方法:

RESTful架构使用http协议定义了一组方法:来对服务器的资源进行操作 GET:获取资源 POST:创建资源 PUT:更新资源 DELETE:删除资源

表示(Representation)

是客户端(用户)和服务器之间交换数据的一种格式

         ,通常由客户端发送给服务器或者由服务器发送给客户端                。Representation可以是任何格式的数据      ,如:XML      、JSON                     、HTML等

客户端和服务器可以使用不同的表示格式进行交互                     ,只要它们都能够解析和处理这个表示即可

。因此            ,表示的灵活性和可扩展性是RESTful架构的重要特点之一

 🏄🏻‍♀️举例:瑶瑶子把她博客的链接(本质就是URL:这篇文章的资源标识符)分享给你   ,你在浏览器输入这个链接                     ,按回车                ,就是从客户端向CSDN的服务器发送了一个请求,CSDN的服务器可以将这篇文章的内容以某种格式的表示(HTML)返回给你(客户端)                 ,你的浏览器可以解析这个Representation                    ,提取文章内容并进行显示和处理~

状态转移(State Transfer)

是客户端和服务器之间通过http方法和表示   ,来实现状态的转移

                 。这个状态             ,指的是资源的状态                     ,可以是任何属性或者信息                    。

 🏄🏻‍♀️举例:瑶瑶子又要肝博客啦!于是瑶瑶子在CSDN的客户端给CSDN的服务器发送了一个http的post请求      ,请求的URI指向博客文章资源的集合   。请求中包含新文章的表示(representation),表示中包含:文章标题            、内容等信息             。这个适合服务器根据我的请求         ,创建了一个新的文章                     ,并且返回了http响应         ,响应中包含了新文章的URI和状态码                     。这个过程      ,客户端和服务器就实现了状态转移的过程                     ,从原来:没有新文章的状态            ,通过Http 的post请求和表示   ,客户端和服务器之间转移到了新的状态:瑶瑶子的主页内多了一篇新博客!

2.2:RESTful API

2.2.1:什么是API?

 API的全称是:Application Programming Interface,是一种软件接口(注意                     ,Web本质其实也是一个软件)                ,用于定义软件组件(或者叫作软件模块)之间的通信协议      。

 当不同的软件模块进行相互通信时,它们之间需要一种规范化的方式来传递数据和指令                 ,也就是需要一个双方都认同的通信协议(这样                    ,双方才知道你说了啥   ,给了我啥             ,我要做出上面反应)         。

 API就是定义这种规范的方式                     ,它来规定不同软件组件之间如何进行通信   、传递数据                     。且客户端和服务端都需要遵守API的定义的规范      ,才能正确地进行数据和指令的传递         。

 通过使用API         ,开发人员可以根据API的规范                     ,使用API         ,轻松的访问和使用不同软件组件的功能      ,无需了解其内部实现细节      。

分类

Web API:通过网络进行通信的API                     ,使用http协议+表示(representation)进行数据交换            ,包括:RESTful API和SOAP API等 程序库API:访问和使用特定编程语言的或框架中的函数和类 操作系统API:访问和使用操作系统中的函数和类 第三方API:由第三方开发者提供的API   ,用于访问和使用其服务或者平台

2.2.2:RESTful API

RESTful API是基于RESTful架构风格(上面已讲)的Web API                     。是通过http协议和表示来实现的API设计模式            。

RESTful API的核心就是客户端和Web服务器进行交互的适合                     ,使用http协议中的四个请求方法                ,代表对资源的不同操作

GET:获取资源 POST:创建资源 PUT:更新资源 DELETE:删除资源

只要API程序都遵循了REST风格,那么就将其称为RESTful API.

RESRful API设计和开发和规范

资源和URL:资源是指应用程序中的实体或者对象                 ,每一个资源有唯一的URL地址                    ,可以通过http方法对其进行操作   。客户端可以通过URL地址   ,对资源进行CRUD                     。URL需要简洁                     、有意义             ,使用名词进行资源描述(因为动作已经由get\ post等这些方法确定了

http方法:RESTful API使用http协议中不同的方法来表示不同的操作,实现对资源的CRUD

GET:获取资源 POST:创建资源 PUT:更新资源 DELETE:删除资源

数据格式:RESTful API使用标准的数据格式来表示请求和响应数据                     ,如:JSON                、XML等                。且请求和响应的数据格式应该统一      ,方便客户端的处理和解析‘

状态码: RESTful API使用标准的HTTP状态码来表示请求和处理结果。常用的状态码包括200 OK、201 Created                 、400 Bad Request                    、401 Unauthorized   、403 Forbidden             、404 Not Found                     、500 Internal Server Error等                 。客户端可以根据状态码来判断请求是否成功         ,并根据不同的状态码进行相应的处理                    。

超媒体: RESTful API应该使用超媒体(Hypermedia)来表示资源之间的关系和链接   。客户端可以通过超媒体链接轻松地导航和访问不同的资源                     ,从而实现应用程序的动态性和可扩展性             。

三      、 初始Gin框架

Gin 是一个用 Go (Golang) 编写的 HTTP Web 框架

Gin框架支持开发RESTful API

3.1:安装和使用

下载安装 go get -u github.com/gin-gonic/gin 将gin引入到当前包         ,以使用gin框架 import "github.com/gin-gonic/gin" gin使用快速入门 package main import "github.com/gin-gonic/gin" func main() { //创建一个默认的路由引擎(引导别人访问什么地址                     。执行什么函数) r := gin.Default() //指定用户使用GET请求访问/hello时      ,执行sayHello这个函数 r.GET("/hello", func(c *gin.Context) { //c.JSON                     ,返回JSON格式数据 c.JSON(200, gin.H{ "message": "yyz", }) }) //启动http服务            ,默认在0.0.0.0:8080 r.Run() }

路由(Routing)是指根据URL请求路径(或者请求参数)来确定应用程序中相应的代码执行路径的过程      。在Web开发中   ,路由通常指将HTTP请求的URL路径与应用程序中的相应处理函数进行绑定                     ,以便在收到请求时能够正确地路由请求到相应的处理函数中         。

Web应用程序中的路由通常由路由引擎来管理                ,路由引擎根据URL路径(或者请求参数)来匹配相应的处理函数,并将HTTP请求转发到相应的处理函数中                     。

欢迎在评论区交流和留下你的想法和建议

如果对你有用                 ,还请:💭评论+👍🏻点赞+⭐收藏+➕关注

Java岛冒险记【从小白到大佬之路】 LeetCode每日一题–进击大厂 算法 C/C++ Go语言核心编程 数据结构
声明:本站所有文章                    ,如无特殊说明或标注   ,均为本站原创发布         。任何个人或组织             ,在未征得本站同意时                     ,禁止复制         、盗用                     、采集         、发布本站内容到任何网站      、书籍等各类媒体平台      。如若本站内容侵犯了原著者的合法权益      ,可联系我们进行处理                     。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
大名官方网站(大名专区) 如何设置的SEO(提高网站排名的技巧和方法)