.NET 云原生架构师训练营(模块二 基础巩固 REST && RESTful)--学习笔记

简介: - 什么是 REST,什么是 RESTful- RESTful API 设计- RESTful 成熟度模型

2.3.1 Web API -- REST && RESTful

  • 什么是 REST,什么是 RESTful
  • RESTful API 设计
  • RESTful 成熟度模型

什么是 REST,什么是 RESTful

理解RESTful架构:https://www.ruanyifeng.com/blog/2011/09/restful.html

REST(Representational State Transfer):表现层状态转化

RESTful:面向资源的架构

如果一个架构符合REST原则,就称它为RESTful架构。

"表现层"其实指的是"资源"(Resources)的"表现层"。

所谓"资源",就是网络上的一个实体,或者说是网络上的一个具体信息。它可以是一段文本、一张图片、一首歌曲、一种服务,总之就是一个具体的实在。

你可以用一个URI(统一资源定位符)指向它,每种资源对应一个特定的URI。

URI:资源的地址,至于资源的形式 URI 是不管的,但是会通过 http 请求的一些参数来做具体的返回

baseUri: https://www.dotnetlives.com

资源 Resource URI
问题 Question https://www.dotnetlives.com/question
计划 Plan https://www.dotnetlives.com/plan
项目 Project https://www.dotnetlives.com/project
奖励 Award https://www.dotnetlives.com/award

"资源"是一种信息实体,它可以有多种外在表现形式。我们把"资源"具体呈现出来的形式,叫做它的"表现层"(Representation)。

表现形式:JSON/XML

比如,文本可以用txt格式表现,也可以用HTML格式、XML格式、JSON格式表现,甚至可以采用二进制格式;图片可以用JPG格式表现,也可以用PNG格式表现。

互联网通信协议HTTP协议,是一个无状态协议。这意味着,所有的状态都保存在服务器端。

因此,如果客户端想要操作服务器,必须通过某种手段,让服务器端发生"状态转化"(State Transfer)。而这种转化是建立在表现层之上的,所以就是"表现层状态转化"。

状态转化

  • Get
  • Post
  • Put
  • Delete

ASP .NET Core Web Api 是一个 RESTful Web 应用框架

RESTful API 设计

RESTful API 设计指南:http://www.ruanyifeng.com/blog/2014/05/restful_api.html

基本概念

  • 版本 versioning
  • 路径 endpoint
  • 动词 verb
  • 过滤信息 filtering
  • status code
  • error handling
内容 URI 状态码 结果 HTTP动词
获取问题列表 /api/v1/question 200 返回具体的资源结果 GET
创建问题 /api/v1/question 201 返回创建的资源 POST
获取单个问题 /api/v1/question/1001 200/404 返回资源/不存在 GET
修改问题 /api/v1/question/1001 201 返回修改的数据 PUT
修改问题 /api/v1/question/1001 201 返回修改的数据 PATCH
删除问题 /api/v1/question/1001 204 删除成功 DELETE

RESTful 成熟度模型

Level 0:

本层级的 Web 服务只是使用 HTTP 作为传输方式,实际上只是远程方法调用(RPC)的一种具体形式。SOAP 和 XML-RPC 都属于此类。

Level 1:

Level 1 层级的 API 引入了资源的概念。要执行对资源的操作,客户端发出指定要执行的操作和任何参数的 POST 请求。

Level 2:

Level 2 层级的 API 使用 HTTP 语法来执行操作,譬如 GET 表示获取、POST 表示创建、PUT 表示更新。如有必要,请求参数和主体指定操作的参数。这能够让服务影响 web 基础设施服务,如缓存 GET 请求。

Level 3:

Level 3 层级的 API 基于 HATEOAS(Hypertext As The Engine Of Application State)原则设计,基本思想是在由 GET请求返回的资源信息中包含链接,这些链接能够执行该资源允许的操作。例如,客户端通过订单资源中包含的链接取消某一订单,GET 请求被发送去获取该订单。HATEOAS 的优点包括无需在客户端代码中写入硬链接的 URL。此外,由于资源信息中包含可允许操作的链接,客户端无需猜测在资源的当前状态下执行何种操作。

目录
相关文章
|
22天前
|
Kubernetes Cloud Native Docker
云原生之旅:从容器到微服务的架构演变
【8月更文挑战第29天】在数字化时代的浪潮下,云原生技术以其灵活性、可扩展性和弹性管理成为企业数字化转型的关键。本文将通过浅显易懂的语言和生动的比喻,带领读者了解云原生的基本概念,探索容器化技术的奥秘,并深入微服务架构的世界。我们将一起见证代码如何转化为现实中的服务,实现快速迭代和高效部署。无论你是初学者还是有经验的开发者,这篇文章都会为你打开一扇通往云原生世界的大门。
|
21天前
|
运维 监控 Cloud Native
自动化运维的魔法书云原生之旅:从容器化到微服务架构的演变
【8月更文挑战第29天】本文将带你领略自动化运维的魅力,从脚本编写到工具应用,我们将一起探索如何通过技术提升效率和稳定性。你将学会如何让服务器自主完成更新、监控和故障修复,仿佛拥有了一本能够自动翻页的魔法书。
|
2天前
|
运维 Cloud Native Devops
云原生技术:重塑现代IT架构的新引擎
在当今数字化转型的浪潮中,云原生技术以其敏捷、高效和可扩展的特性,正引领着一场IT架构的革命。本文旨在深入探讨云原生的概念、核心组件及其在现代企业中的应用价值,揭示其如何助力企业实现更快的创新速度、更高的资源利用率以及更优的用户体验。不同于传统的云计算模式,云原生从一开始就为云环境量身打造,通过容器化、微服务、DevOps等关键技术,解锁了软件开发和运维的新范式。
|
4天前
|
运维 Cloud Native 持续交付
探索云原生架构:企业转型的未来之路
在当今这个数据驱动的时代,企业面临着前所未有的挑战与机遇。随着云计算技术的日益成熟,云原生作为一种新兴的架构理念,正逐步成为推动企业数字化转型的关键力量。本文旨在深入探讨云原生的概念、特点及其对企业转型的重要意义,并通过实例分析展示其在实际应用中的巨大潜力和价值。
|
7天前
|
运维 Cloud Native Devops
探索云原生架构:企业数字化转型的新引擎
在当今数字化浪潮中,云原生架构以其敏捷性、弹性和高可用性成为企业实现高效上云和加速创新的关键。本文将深入探讨云原生的核心理念、关键技术如容器化、微服务和DevOps实践,以及这些技术如何共同推动企业在云平台上的灵活部署和快速迭代。同时,文章还将分析成功案例,展示云原生如何帮助企业构建现代化应用,提高资源利用率,并确保系统稳定运行。通过综合运用这些先进技术策略,企业能够有效应对市场变化,缩短产品上市时间,从而在激烈的市场竞争中脱颖而出。
|
7天前
|
Cloud Native Devops 持续交付
探索云原生架构:构建高效、灵活和可扩展的系统
本文将深入探讨云原生架构的核心概念、主要技术以及其带来的优势。我们将从云原生的定义开始,了解其设计理念和技术原则;接着分析容器化、微服务等关键技术在云原生中的应用;最后总结云原生架构如何助力企业实现数字化转型,提升业务敏捷性和创新能力。通过这篇文章,读者可以全面了解云原生架构的价值和应用前景。
|
6天前
|
Kubernetes Cloud Native 持续交付
探秘云原生架构:企业数字化转型的新引擎
在当今数字化浪潮中,云原生架构正成为推动企业创新与灵活性的关键因素。本文将深入探讨云原生的核心理念、关键技术以及它如何助力企业实现高效运营和快速响应市场变化,为读者揭示这一现代技术趋势背后的深刻内涵与实践价值。
15 2
|
7天前
|
运维 Cloud Native Devops
云原生架构的崛起与实践云原生架构是一种通过容器化、微服务和DevOps等技术手段,帮助应用系统实现敏捷部署、弹性扩展和高效运维的技术理念。本文将探讨云原生的概念、核心技术以及其在企业中的应用实践,揭示云原生如何成为现代软件开发和运营的主流方式。##
云原生架构是现代IT领域的一场革命,它依托于容器化、微服务和DevOps等核心技术,旨在解决传统架构在应对复杂业务需求时的不足。通过采用云原生方法,企业可以实现敏捷部署、弹性扩展和高效运维,从而大幅提升开发效率和系统可靠性。本文详细阐述了云原生的核心概念、主要技术和实际应用案例,并探讨了企业在实施云原生过程中的挑战与解决方案。无论是正在转型的传统企业,还是寻求创新的互联网企业,云原生都提供了一条实现高效能、高灵活性和高可靠性的技术路径。 ##
18 3
|
11天前
|
Cloud Native 持续交付 云计算
云原生技术在现代IT架构中的革新角色
随着数字化转型的浪潮席卷全球,企业对信息技术的需求日益增长。本文将探讨云原生技术如何推动现代IT架构的创新和优化,包括容器化、微服务架构、持续集成与持续部署(CI/CD)等核心概念。通过实际案例分析,我们将了解这些技术是如何帮助企业提升灵活性、加速产品上市时间并降低运营成本的。文章旨在为读者提供云原生技术的全面视角,揭示其在现代IT战略中不可或缺的地位。
|
14天前
|
监控 Cloud Native 持续交付
云原生时代的微服务架构实践
【9月更文挑战第5天】随着云计算技术的飞速发展,云原生已成为现代软件开发的重要趋势。本文将深入探讨在云原生环境下,如何有效实施微服务架构,包括服务拆分、容器化部署、持续集成与交付等关键环节。通过具体案例,我们将展示如何在云平台上构建弹性、可扩展的微服务应用,并讨论在此过程中可能遇到的挑战及解决策略。