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

这篇具有很好参考价值的文章主要介绍了【Go Web开发】Web初识、RESTful架构和RESTful API详解、Gin框架的安装和简单使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

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

一、什么是Web

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

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

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

  • 原理(重要):
    【Go Web开发】Web初识、RESTful架构和RESTful API详解、Gin框架的安装和简单使用

  • 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设计和开发和规范

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

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

    • GET:获取资源
    • POST:创建资源
    • PUT:更新资源
    • DELETE:删除资源
  3. 数据格式:RESTful API使用标准的数据格式来表示请求和响应数据,如:JSON、XML等。且请求和响应的数据格式应该统一,方便客户端的处理和解析‘

  4. 状态码: RESTful API使用标准的HTTP状态码来表示请求和处理结果。常用的状态码包括200 OK201 Created400 Bad Request401 Unauthorized403 Forbidden404 Not Found500 Internal Server Error等。客户端可以根据状态码来判断请求是否成功,并根据不同的状态码进行相应的处理。

  5. 超媒体: 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请求转发到相应的处理函数中。


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

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

【Go Web开发】Web初识、RESTful架构和RESTful API详解、Gin框架的安装和简单使用文章来源地址https://www.toymoban.com/news/detail-439119.html

  • Java岛冒险记【从小白到大佬之路】
  • LeetCode每日一题–进击大厂
  • 算法
  • C/C++
  • Go语言核心编程
  • 数据结构

到了这里,关于【Go Web开发】Web初识、RESTful架构和RESTful API详解、Gin框架的安装和简单使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于go语言gin框架的web项目骨架

    节省时间与精力,更高效地打造稳定可靠的Web项目:基于Go语言和Gin框架的完善Web项目骨架。无需从零开始,直接利用这个骨架,快速搭建一个功能齐全、性能优异的Web应用。充分发挥Go语言和Gin框架的优势,轻松处理高并发、大流量的请求。构建可扩展性强、易于维护的代码

    2024年02月08日
    浏览(32)
  • 初始化一个Gin框架的Go-Web项目

    使用到的第三方库 gin Gin 框架 viper 配置文件管理 cors 跨域资源请求配置 gorm ORM 库 zap 日志记录 Go 语言程序的入口点 main.go 文件 使用 flag 读取配置文件路径参数,默认当前目录下 使用 viper 读取 config.ini 配置文件初始化初始数据 初始化随机数种子 初始化数据库 声明启动程序

    2024年02月09日
    浏览(40)
  • go web框架 gin-gonic源码解读01————Engine

    gin-gonic是go语言开发的轻量级web框架,性能优异,代码简洁,功能强大。有很多值得学习的地方,最近准备把这段时间学习gin的知识点,通过engine,context,router,middleware几篇博客文章总结总结。 而Engine是gin框架最核心的结构体。 为什么gin需要设计一个 Engine 结构体? 因为gi

    2024年02月14日
    浏览(27)
  • go web框架 gin-gonic源码解读02————router

    本来想先写context,但是发现context能简单讲讲的东西不多,就准备直接和router合在一起讲好了 router是web服务的路由,是指讲来自客户端的http请求与服务器端的处理逻辑或者资源相映射的机制。(这里简单说说,详细的定义网上都可以查到) 那一个优秀的web router应该提供以下

    2024年02月12日
    浏览(24)
  • go web框架 gin-gonic源码解读03————middleware

    今天打完游戏有空整理整理之前看的gin的中间件设计,go的中间件设计相较于前两站还是蛮简单,蛮容易看懂的,所以顺便把context也一起写一下。 中间件是现在web服务里统一化拓展最常用的功能,,他是为了在我们的web服务中实现一些可重复使用,可组合的功能方法、可以让

    2024年02月11日
    浏览(23)
  • Python web实战之Django 的 RESTful API 设计详解

      : Python, Web 开发, Django, RESTful API 1.1 什么是API? API是应用程序编程接口(Application Programming Interface)的缩写。它是一种定义了不同软件组件之间交互方式的规范。API允许不同的应用程序之间进行通信和数据交换,使得开发者能够利用其他应用程序提供的功能和数据,

    2024年02月14日
    浏览(28)
  • 一个月学通Python(二十三):RESTful架构和DRF入门(Web开发)

    结合自身经验和内部资料总结的Python教程,每天3-5章,最短1个月就能全方位的完成Python的学习并进行实战开发,学完了定能成为大佬!加油吧!卷起来! 全部文章请访问专栏:《Python全栈教程(0基础)》

    2024年02月14日
    浏览(34)
  • GO 的 Web 开发系列(八)—— Gin 自定义 Html 渲染实现多租户的模板设计

    本文主要解决在多租户场景下的模板渲染问题。 正常情况下 Gin 配置的所有模板都属于同一个模板组合,相同名称的模板将相互覆盖。在未通过 define 指定模板名称时,同名模板文件也将相互覆盖。自定义函数中也无法区分租户,这将非常不方便我们进行多租户的模板渲染处

    2024年04月22日
    浏览(27)
  • Vue系列第五篇:Vue2(Element UI) + Go(gin框架) + nginx开发登录页面及其校验登录功能

       本篇使用Vue2开发前端,Go语言开发服务端,使用nginx代理部署实现登录页面及其校验功能。 目录 1.部署结构 2.Vue2前端 2.1代码结构 2.1源码 3.Go后台服务 3.2代码结构 3.2 源码 3.3单测效果 4.nginx 5.运行效果 6.问题总结   index.html !DOCTYPE html html   head     meta charset=\\\"utf-8\\\"     m

    2024年02月15日
    浏览(40)
  • 使用Go编写RESTful API

    RESTful API是一种流行的Web服务设计风格,它基于HTTP协议,通过不同的HTTP方法(如GET、POST、PUT、DELETE等)来定义不同的操作。使用Go语言编写RESTful API可以让你充分利用Go语言的强大特性和性能优势。 下面是一个简单的示例,演示如何使用Go编写一个基本的RESTful API: go 复制代

    2024年01月24日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包