首页 >数据库 >mysql教程 >如何通过简单的步骤创建 MySQL REST API

如何通过简单的步骤创建 MySQL REST API

王林
王林原创
2024-07-25 11:40:21910浏览

How to Create a MySQL REST API in asy Steps

根据 StackOverflow 2022 年的调查,46% 的专业开发人员将 MySQL 评为工作区中最流行的数据库。作为程序员,我们不应该为重复编写代码而烦恼,否则这些代码是容易获得的、健壮的和经过充分测试的。

然而,这个问题在 REST API 领域仍然持续存在,尽管实现过程到目前为止是死记硬背、重复性的、容易出错和疏忽的。由于以下几个原因,这种疏忽代价高昂:

  • 最终用户只是“不关心”API 是如何实现的,这意味着为每个项目手工制作新的 API 不会带来竞争优势。
  • 由于安全漏洞和性能问题,API 实现和部署阶段的错误和监督可能会付出非常高昂的代价。
  • 重复构建一次性API意味着它们无法通过单一平台进行管理;除非团队决定投入更多时间和精力来构建自定义管理解决方案。

幸运的是,对于我们程序员来说,DreamFactory 平台可以通过为 API 文档、生成和安全性提供集中式解决方案,轻松为您的团队免除所有这些麻烦以及更多麻烦。在本教程中,您将了解到为 MySQL 数据库构建、保护和部署 REST API 是多么容易。

目录

  • 什么是 MySQL REST API?
  • 为什么 MySQL REST API 很重要?
    • 1.使用 DreamFactory
    • 2.生成 MySQL REST API
    • 3.查看 Swagger 文档
    • 4.创建角色和 API 密钥
    • 5.为您的 MySQL API 配置 CORS
    • 6.测试 MySQL REST API
  • 创建 MySQL API 的替代方法
  • 从这里到哪里

什么是 MySQL REST API?

MySQL API 是一组函数、协议和工具,允许开发人员通过其应用程序或脚本以编程方式与 MySQL 数据库进行交互。

该 API 为应用程序提供了一种向 MySQL 数据库发送查询、检索数据、修改数据以及执行各种数据库操作的方法。它充当应用程序代码和数据库服务器之间的中间层,促进无缝通信和数据操作。

常见的 MySQL API 包括 MySQL Connector/ODBC、MySQL Connector/J(用于 Java)、MySQLi(用于 PHP)以及许多其他 API,每个 API 都针对特定的编程语言或框架量身定制。

为什么 MySQL REST API 很重要?

MySQL API 通过促进应用程序和 MySQL 数据库之间的交互,在软件开发中发挥着关键作用。

这些API充当“中间人”,抽象数据库操作的复杂性并为开发人员提供标准化接口。它们的意义在于使应用程序能够有效地存储、检索、修改和管理数据。

MySQL API 提供与各种编程语言和框架的兼容性,允许开发人员使用他们喜欢的工具使用 MySQL。它们通过提供准备好的语句和输入验证等功能来增强安全性,以防止 SQL 注入等常见安全漏洞。

连接池、缓存等性能优化功能有助于提高数据库交互效率。 MySQL API 提供的可移植性意味着应用程序可以转换到不同的数据库系统,而无需进行重大代码修改,而它们的可扩展性功能使它们适合处理增加的工作负载。

MySQL API 受益于 MySQL 开发者社区的广泛支持,确保为开发者提供丰富的资源、库和工具。

如何创建 MySQL REST API

DreamFactory 可以为多种数据库生成 REST API,其中包括 MySQL、Microsoft SQL Server、Oracle、PostgreSQL 和 MongoDB。

1.使用DreamFactory

为此,您需要登录 DreamFactory 管理界面,导航至 Services,然后单击位于左侧的 Create 按钮进入服务创建界面屏幕。从那里,您将通过导航到 API Generation > 选择 MySQL 服务类型。数据库,然后从我们的数据库选项中选择 MySQL(参见下面的屏幕截图)。

How to Create a MySQL REST API in asy Steps

接下来,系统将提示您提供名称、标签和描述(如下屏幕截图)。后两者仅用于管理界面中的参考目的,但是名称值特别重要,因为您很快就会看到它将包含 API URL 的一部分。

How to Create a MySQL REST API in asy Steps

最后,单击配置选项卡。在这里,系统将提示您提供数据库连接凭据(请参见下面的屏幕截图)。这应该不是什么新鲜事;您将提供主机名、用户名、密码和数据库。此外,您还可以选择指定其他配置特征,例如驱动程序选项、时区和缓存首选项。出于本教程的目的,我将坚持使用必填字段,并保留可选功能不变。

How to Create a MySQL REST API in asy Steps

凭据就位后,只需按屏幕底部的“保存”按钮,不管你相信与否,REST API 已生成!

2.查看Swagger文档

除了 API 之外,DreamFactory 还将为您的 API 自动生成一组广泛的交互式 Swagger 文档。您可以通过单击管理界面顶部的“API 文档”选项卡,然后按名称选择新生成的服务来访问它。您将看到 44 个端点,可用于执行存储过程、执行 CRUD 操作、查询视图等等。例如,下面的屏幕截图仅显示了新生成的 MySQL REST API 端点的一小部分!

How to Create a MySQL REST API in asy Steps

3. 创建角色和 API 密钥

所有 DreamFactory 生成的 API 都会自动受到(至少)API 密钥的保护。您可以选择使用基本身份验证、SSO 或目录服务(LDAP 和 Active Directory)对用户进行身份验证。此外,您可以将每个 API 密钥和/或用户与一个“角色”相关联,该角色准确确定允许用户访问哪些服务。不仅如此,您还可以限制与特定数据库表或一组表、特定端点的交互,甚至限制允许哪些 HTTP 方法。

保护负责代表 API 与 MySQL 数据库交互的用户的安全是 API 开发和集成过程中极其重要的一部分。请参阅我们关于使用 MySQL 权限和 DreamFactory 改进数据安全性的其他建议

作为示例,让我们创建一个新角色,将关联的 API 密钥限制为在新创建的 MySQL API 中以只读方式与单个表进行交互。为此,请导航至“角色”选项卡,然后单击“创建”按钮。您将看到以下屏幕截图中的界面。

接下来,单击“访问”选项卡。您可以在此处定义角色可以执行的操作。在下面的屏幕截图中,您将看到我已将角色限制为与 MySQL 服务交互,并且在该服务中,角色只能通过 GET 方法与 _table/employees* 端点进行交互。宝贝,我们处于封锁状态!

How to Create a MySQL REST API in asy Steps

单击保存按钮保存角色。现在我们将创建一个新的 API 密钥并将该密钥与该角色相关联。为此,请单击 API 类型下拉列表下的 API 密钥选项卡并选择 API 密钥,然后单击“+”按钮。为您的新应用程序分配名称和描述,确保将其设置为 Active,然后将其分配为 MySQL 的默认角色,就像我在下面的屏幕截图中所做的那样。关于应用程序位置设置,假设您计划通过网络或移动应用程序或其他网络服务与 API 进行交互,那么您需要选择“无需存储”。

How to Create a MySQL REST API in asy Steps

按保存按钮,您将返回到应用程序索引屏幕,可以在其中复制新的 API 密钥!将密钥复制到文本文件中以供以后参考。

4. 为 MySQL API 配置 CORS

在能够从 DreamFactory 管理界面外部测试 API 之前,我们还有最后一个配置步骤。您需要为新 API 启用 CORS(跨源资源共享)。您可以在“配置”下拉列表中找到它并选择“CORS”。出于演示目的,您可以设置默认的 CORS 设置,就像我在下面的屏幕截图中所做的那样,这将允许来自所有网络地址的 API 限制流量:

How to Create a MySQL REST API in asy Steps

5.测试MySQL REST API

生成 API、创建 API 密钥和关联角色并配置 CORS 后,您就可以开始通过客户端与 API 进行交互了!我喜欢在 MacOS 上使用 Insomnia 进行 HTTP 测试,但另一个流行的解决方案是 Postman。

在下面的屏幕截图中,我使用 Insomnia 通过 GET 请求联系 /api/v2/_table/employees 端点。

How to Create a MySQL REST API in asy Steps

回想一下,我们已锁定此 API 密钥,使其仅使用 GET 方法与 /api/v2/_table/employees/* 端点进行交互。那么如果我们尝试 POST 到这个表会发生什么?返回 401(未经授权)状态码,如下图所示:

How to Create a MySQL REST API in asy Steps

How to Create a MySQL REST API in asy Steps

创建 MySQL API 的替代方法

显然,DreamFactory 并不是唯一可用的解决方案。创建 MySQL REST API 的另一种方法是手动编码,但它需要更长的时间并且更困难。手工制作 API 时还需要担心其他问题,例如 API 安全性。以下是一些关于如何开始手动编码下一个 API 的简短提示。

1.安装并设置一个Web服务器,如Apache或Nginx,并在服务器上安装PHP和MySQL

构建 MySQL REST API 的第一步是设置一个 Web 服务器,例如 Apache 或 Nginx,它将处理来自客户端的传入 HTTP 请求并以适当的内容进行响应。您还需要在服务器上安装 PHP,它是一种服务器端脚本语言,可以与 MySQL 交互以检索或存储数据。最后,您需要安装 MySQL,它是一个关系数据库管理系统,可以存储和管理表中的数据。设置完所有这些组件后,您就可以开始构建 REST API。

2. 创建 MySQL 数据库和表来存储要通过 API 公开的数据。

数据库是以结构化方式组织的相关数据的集合,例如具有列和行的表。 MySQL 是一种流行的关系数据库管理系统,允许您创建和管理数据库和表。

要在 MySQL 中创建数据库,您可以使用 MySQL 命令行界面中的 CREATE DATABASE 命令或 phpMyAdmin 等工具。

3. 创建连接到数据库并使用 SQL 查询检索数据的 PHP 脚本。

要从 PHP 连接到 MySQL 数据库,您可以使用多种扩展之一,例如 MySQLi 或 PDO。建立连接后,您可以执行 SQL 查询以从数据库检索数据。 SQL 查询应该设计为检索您想要通过 API 公开的数据,并且应该参数化以防止 SQL 注入攻击。

从数据库检索数据后,您可以使用 PHP 的内置函数将其格式化为 JSON。 JSON 是一种轻量级的数据格式,易于解析,并且受到多种编程语言的支持。

4. 使用 PHP 数据对象 (PDO) 扩展以安全的方式准备和执行 SQL 语句,并获取结果。

PDO 是一个强大而灵活的扩展,它为访问 PHP 中的数据库提供了一致的接口。 PDO可以与包括MySQL在内的多种数据库驱动程序一起使用,并提供预准备语句和参数绑定等功能,有助于防止SQL注入攻击。

要将 PDO 与 MySQL 结合使用,您需要创建一个新的 PDO 对象并传入数据库的连接详细信息。然后,您可以使用prepare()方法准备SQL语句,使用bindParam()或bindValue()方法绑定任何参数,并使用execute()方法执行该语句。最后,您可以使用 fetch()、fetchAll() 或 fetchColumn() 等方法获取查询结果。

5. 使用 json_encode() 函数将数据转换为 JSON 格式,并使用适当的 HTTP 标头(例如 Content-Type: application/json)将其输出到客户端。

json_encode() 函数是一个内置的 PHP 函数,可用于将数据转换为 JSON 格式的字符串。您可以将任何数据类型传递给函数,例如数组或对象,它将转换为客户端应用程序可以轻松使用的 JSON 字符串。

获得 JSON 格式的字符串后,您需要使用适当的 HTTP 标头将其输出到客户端。在 PHP 中,您可以使用 header() 函数设置标头,该函数允许您指定有关响应的内容类型和其他元数据。例如,要输出 JSON 数据,可以将 Content-Type header 设置为“application/json”。

通过以 JSON 格式输出数据并设置适当的 HTTP 标头,您可以确保客户端应用程序可以轻松使用您的 REST API 并遵守标准 Web 约定。

6. 处理来自客户端的 HTTP 请求

HTTP 请求是客户端(例如网络浏览器或移动应用程序)与 API 通信以请求数据或执行其他操作的方式。要处理这些请求,您需要编写可以处理请求并返回适当响应的 PHP 代码。

PHP 提供了几个可用于访问有关当前请求的信息的函数,例如 $_SERVER、$_GET、$_POST 和 $_REQUEST。这些变量包含 HTTP 方法(例如 GET 或 POST)、URL 路径以及任何查询参数或请求正文数据等信息。

为了处理不同类型的请求,您需要编写 PHP 代码来分析传入的数据并确定要采取的操作。例如,如果客户端发出 GET 请求以从 API 检索数据,您的代码可能会执行 SQL 查询来检索数据并将其作为 JSON 响应返回。如果客户端发出 POST 请求来创建新记录,您的代码可能会将新数据插入 MySQL 数据库并返回成功消息。

7. 实施错误处理和验证,以确保 API 稳健且安全。

要在 API 中实现错误处理和验证,您需要编写可以检测和响应错误并验证用户输入的 PHP 代码。 PHP 提供了几个可用于错误处理的内置函数,例如trigger_error() 或set_error_handler()。对于验证,您可能需要使用正则表达式、PHP 过滤器或自定义验证函数。

8. 将 API 部署到您的 Web 服务器并使用 cURL 或 Postman 等工具对其进行测试。

要部署 API,您需要将 PHP 文件和任何其他所需文件(例如 CSS、JavaScript 或图像)上传到您的 Web 服务器。根据您的 Web 服务器配置,您可能需要修改 .htaccess 文件以确保 API 正确路由。

部署 API 后,您可以使用 cURL 或 Postman 等工具对其进行测试。这些工具允许您向 API 发送 HTTP 请求并检查响应数据。您可以使用这些工具来测试不同类型的请求(例如 GET、POST、PUT 或 DELETE),测试错误处理和验证,并确保 API 以正确的格式(例如 JSON 或 XML)返回正确的数据).

测试 API 时,注意性能、安全性和可用性非常重要。您应该在不同的条件下(例如高流量或慢速网络连接)测试您的 API,以确保其性能良好并保持稳定。您还应该测试您的 API 是否存在安全漏洞(例如 SQL 注入或跨站点脚本),并确保它易于客户使用和理解。

下面是一个简单的 REST API 的示例 PHP 代码,用于从 MySQL 数据库检索数据:

How to Create a MySQL REST API in asy Steps

从这里到哪里?

无论你相信与否,我们只是触及了 DreamFactory 可以为您做的事情的表面。如果您想了解我们的 SQL Server、Oracle 或 MongoDB 连接器的实际运行情况,或者想了解在不编写任何代码的情况下将 SOAP 服务转换为 REST 是多么容易,为什么不与我们的工程团队一起安排演示呢!立即访问 https://www.dreamfactory.com/products 并安排演示!

DreamFactory 支持的其他数据库:

  • MongoDB
  • SQL Server
  • IBM DB2

如何通过 6 个简单步骤创建 MySQL REST API 的帖子首次出现在 DreamFactory Software- 博客上。

以上是如何通过简单的步骤创建 MySQL REST API的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn