MySQL REST 服务

MySQL 9.4正式推出了 REST 服务,希望能够通过这篇文章让广大读者了解什么是REST,及MySQL的REST服务有哪些内容。
什么是REST?
REST API 是REpresentationalState Transfer Application Programming Interface的简写,用于设计网络应用程序的体系结构。可以为如何构建web服务定义一组约束,以确保可伸缩性、无状态性和基于资源的交互。
REST使用标准的HTTP (Web) 方法 (例如,GET, POST, PUT, DELETE) 与URL标识的资源进行交互。

REST中客户端和服务器独立部署,无需知道它们的内部工作方式。客户端代码的更改不会影响服务器的操作,服务器端代码的更改也不会影响客户端的操作。REST的通讯可以做到统一,只要双方同意消息格式,就可以进行通信,因此,REST架构可以促进模块化和分离操作。
客户端和服务器的分离可以带来如下好处:
•改善灵活性:用户界面关注点与数据存储关注点分离。
•更好的跨平台界面灵活性。
•增强可扩展性:服务器组件简单化。
•独立进化:每个组件可以独立进化。
•客户端语言中立——适用于任何语言一致的交互
•不同的客户端与相同的REST端点交互。
•执行相同的行为。
•接收相同的应答。

REST 无状态:
•服务器不跟踪客户端状态。
•客户端不跟踪服务器状态。
•每条信息都是自包含的,可以独立理解。
•强制无状态:通过使用资源而不是命令来实现。对象、文档、或者是发送/存储的“东西”都属于资源。

无状态更适用于:
•水平扩展
•无状态系统本质上是可伸缩的,因为每个请求都是独立的
•简化负载平衡
•负载平衡变得简单得多,因为任何服务器都可以处理任何请求
•灵活性
•轻松适应波动的流量模式,根据需求扩大或缩小规模
•容错性
•易于管理
对于开发人员、DBA和架构师而言可以不依赖于接口的特定实现。(特定语言驱动程序和API)以实现可靠性、快速的性能和可扩展性。并且灵活的组件可以在不影响整个系统的情况下进行管理、更新和重用。

REST通常是由后端Web服务器和REST应用程序提供的REST API。

MySQL 的 REST服务

MySQL原生使用REST。Web应用程序,移动应用程序,甚至物联网设备都可以使用标准HTTP安全地与MySQL交互,不需要定制中间件,降低开发和服务操作过程中的复杂性 ,为客户节省大量成本。

MySQL的REST服务具有如下优势:
•开箱即用的REST
•简化和支持现代App/PWA(渐进式web应用程序)/移动开发
•取消所需的中间层
•提升生产力
•开发人员能够使用单一语言和平台
•改善性能
•将应用程序后端与数据库集成
•简化维护
•管理更少,技术的复杂性更低
•不需要客户端(连接器/驱动程序)库
•开发人员可以集中精力构建他们的应用程序
•无需先前的底层基础架构开发者无需SQL 知识

MySQL的REST服务通过MySQL Shell for Visual Studio extension 或MySQL Shell创建、配置和部署端点。MySQL Router内置Rest 服务,作为Router的功能实现。
下面的示例创建了一个名为/city的REST数据映射视图,该视图公开了sakila模式中城市和国家表中的数据,并将输出结构化为表示城市及其相应国家的嵌套JSON对象。

Router定义REST API和JSON视图之间的连接,
JSON视图——位于服务器内部并返回JSON,它可以从SQL调用,可以映射到REST API。相反,RouterREST映射不能从SQL中调用。

如何部署?
1.按照用户所需,从部署MySQL服务器实例,innoDBCluster/ReplicaSet,ClusterSet开始。
2.使用MySQL Shell 9.4 或最新的MySQL Shell for VS Code extension 以配置 MRS,并设置一个专用的元数据模式来存储MRS的配置细节。

为了方便开发者进行调试,MRS提供了开发者模式。
•启动并运行MySQLRouter(开发模式):
•出于开发目的,在开发模式下部署一个本地MySQL Router实例。

•该操作允许用户在本地测试REST服务,而无需将它们发布到生产系统。
•用户可以使用MySQL Shell for VS Code扩展来引导和启动路由器。

定义端点:
•用户可以使用VS Code MySQL Shell中的图形界面或REST SQL扩展来定义REST服务和端点。
•创建REST服务:为用户的服务定义基本路径和名称(例如,/myService)。
•添加REST模式:将数据库模式映射到REST服务。允许用户公开数据库对象,如表、视图和过程。
•添加REST对象:将特定的数据库对象(表、视图、过程、函数)公开为REST端点。

目前MRS支持在下列方案中部署:
•MySQLHeatWave
•MySQLInnoDB Cluster
•MySQLInnoDBClusterSet
•MySQLInnoDB ReplicaSet
•MySQL Operator
版本要求如下:
9.4 或更高
•MySQL Shell
•部分SQL DDL COMMANDs 在SHELL内部处理
•MySQL Router
9.4 或更高用于JSON VIEW DDL
•MySQL Server
8.4.X
•无SQL JSON 视图 –但是可以提Router供相同的功能

一旦用户的REST服务进行了开发和测试,将相应的标志设置为Published,使其能够被生产环境中经过身份验证的客户端访问。

此外,MySQL为企业版及HeatWave增加了专属功能,
•CREATE/ALTER …. JSON Views
原因在于企业和DBA可能更喜欢在数据库映射中使用REST对象,而不是在Router中使用。
数据映射可以提供以下选项:
行级别安全性
•用户只能访问表中自己的行
•提供行所有权的概念
限制列访问
•定义哪一列数据可以公开

小结
•MySQL Rest Service 提供
•简单化编程
•无需开发人员具有SQL知识
•简化架构
•增加安全性
•高速
•支持InnoDBCluster, Replica Set, Cluster Set的HA和DR
•GA
•跨本地部署、企业版和云

以上内容是关于MySQL REST服务的简介,更多内容请访问官网手册。
https://dev.mysql.com/doc/dev/mysql-rest-service/latest/#introduction-to-the-mysql-rest-service
感谢您关注MySQL解决方案工程师!

声明:来自MySQL解决方案工程师,仅代表创作者观点。链接:https://eyangzhen.com/2072.html

MySQL解决方案工程师的头像MySQL解决方案工程师

相关推荐

关注我们
关注我们
购买服务
购买服务
返回顶部