所有文章 > API使用场景 > 7个用于检索API数据的简单REST客户端示例
7个用于检索API数据的简单REST客户端示例

7个用于检索API数据的简单REST客户端示例

REST 客户端或具象状态传输客户端是 Web 开发和 API 集成领域中必不可少的工具。这些客户端通过采用 REST 架构原则,实现了应用程序与 Web 服务之间的无缝通信。

REST 客户端是一种软件工具、库或框架,它让开发人员能够通过发出 HTTP 请求并处理响应,与 RESTful Web 服务进行交互。这些客户端简化了连接到 API 的过程,使开发人员能够轻松执行 CRUD(创建、读取、更新和删除)操作、检索数据并根据需要进行操作。

REST 客户端不可或缺的主要原因是它们能够抽象 HTTP 请求和响应的低级细节,从而提供了一种更加用户友好和高效的 API 使用方式。通过使用 REST 客户端,开发人员可以节省时间和精力,使他们能够专注于核心应用程序逻辑和功能。

REST 客户端是极为宝贵的工具,它能让您更简便、更高效地与 RESTful Web 服务进行交互。借助这些客户端,开发人员可以专注于制作卓越的应用程序,同时确保 API 和 Web 服务的无缝集成。

但是,究竟什么是 REST 客户端,为什么它在现代软件开发中如此重要?

以下是需要了解的有关 REST 客户端的关键事项:

  • 最初介绍了示例项目的配置,例如 DreamFactory 中的 Address Book for JavaScript 应用程序。
  • 提供了有关访问 API 文档以探索特定终端节点的指导,重点介绍检查是否成功生成架构表的 JSON 表示形式的 GET 请求。
  • 本文演示了如何使用各种编程语言(包括 NodeJS、Python、PHP、Ruby 和 Perl)发出 GET 请求,并提供了代码片段和配置提示。
  • 每个语言示例都着重指出了正确配置对于有效从API端点检索数据的重要性。
  • 此外,流行的 REST API 客户端测试工具(如 Insomnia 和 Postman)被认为是测试 API 和与 API 交互的宝贵资源。

配置示例项目

如果您想使用实时数据来遵循这些示例,我们建议配置示例应用程序。如果您尚未在 DreamFactory 实例中安装此应用程序,请单击选项卡。在屏幕左侧,单击 Address Book For JavaScript 项目旁边的 。滚动到屏幕底部并单击 按钮。这足以确保将应用程序示例数据集加载到您的 DreamFactory 实例中,但是,如果您想尝试其他功能,您还需要完成上述项目中的其他一些配置步骤。

Address Book for JavaScriptAppsImportSelectImportREADME

无论哪种情况,都可以前往 API 文档,选择服务,然后向下滚动到以下终端节点:db

GET /db/_schema

您应该会看到以下屏幕截图中描述的输出:

如果 GET 请求成功执行,您应该会收到指示成功的响应 Code,以及架构中表的 JSON 表示形式。现在,一些示例数据可用,让我们试验一些 GET 请求。在我们的示例中,我们将使用以下 API 终端节点查询表:200contact_info

GET https://localhost/api/v2/db/_table/contact_info

NodeJS REST API 示例

对于我们的第一个示例,我们将查看两个简单的 NodeJS 脚本。下面是本机 NodeJS HTTP GET 请求的示例。在您最喜欢的文本编辑器中,创建一个名为 并输入以下代码的新文件:rest.js

const https = require("https");
const options = {
"method": "GET",
"hostname": "example.com",
"port": 443,
"path": "/api/v2/db/_table/contact_info",
"headers": {
"x-dreamfactory-api-key": "YOUR_API_KEY",
"cache-control": "no-cache"
}
}const req = https.request(options, function(res) { var chunks = []; res.on("data", function (chunk) {
chunks.push(chunk);
}); res.on("end", function() {
var body = Buffer.concat(chunks);
console.log(body.toString());
});});
req.end()

更新 and 字段以反映与您的 DreamFactory 实例关联的位置和分配的应用程序 API 密钥后,保存更改并通过终端运行脚本:hostnamex-dreamfactory-api-key

$ node rest.js

现在应该返回了一大块 JSON 数据。如果您想对其进行清理并更仔细地查看数据,可以将响应复制并粘贴到 JSONLint 中。)将数据粘贴到文本区域后,单击 。这将完成两项重要任务:Validate JSON

  1. 将 JSON 格式化为更易读的内容。
  2. 验证 JSON 的格式是否正确,如 JSON 规范所述。如果 JSON 由于任何原因无效,您将收到有关采取哪些步骤来正确设置 JSON 格式的提示。

对于一个简单的 GET 调用来说,这个脚本感觉有点沉重。让我们再次尝试相同的调用,但这次我们将使用 ‘unirest’ 模块。NPM 附带 NodeJS,允许用户安装所谓的 Node 模块。如果您打算在 DreamFactory 中运行任何自定义脚本服务或事件脚本,这个功能也会非常有用。让我们使用 NPM 安装 ‘unirest’ 模块,打开一个 shell 并键入:

$ npm install -g unirest

该选项将全局安装模块。我们建议全局安装 NodeJS 模块,特别是如果您打算在服务器端脚本中使用它们。现在您已经安装了该模块,请打开文本编辑器并粘贴以下代码:-gunirest

var unirest = require("unirest")
var req = unirest("GET", "https://example.com/api/v2/db/_table/contact_info")req.headers({
"cache-control": "no-cache",
"x-dreamfactory-api-key": "YOUR_API_KEY"
})
req.end(function (res) {
if (res.error) throw new Error(res.error)
console.log(res.body)
})

将脚本另存为并运行它,如下所示:resty.js

$ node resty.js

和之前一样,您会收到一个详细的 JSON 响应作为回报。但这一次,它用更简洁的代码就实现了,并且还带来了格式化 JSON 的好处!

Python REST API 示例

也许NodeJS并不符合你的偏好,而python更符合。Python 使用该模块使 REST 变得轻而易举。让我们使用 Python 包管理器 pip 安装模块。打开您的终端并执行:requestsrequests

$ pip install requests

现在模块已安装完毕,让我们再次打开文本编辑器并输入以下代码:requests

import requests
url = "https://example.com/api/v2/db/_table/contact_info?limit=5"
headers = {
"cache-control": "no-cache",
"x-dreamfactory-api-key": "YOUR_API_KEY"
}
response = requests.request("GET", url, headers=headers)
print(response.text)

确认一切正确后,将文件另存为,然后再次导航到保存脚本的目录并输入:rest.py

$ python rest.py
{"resource":[{"id":1,"ordinal":0,"contact_id":1,"info_type":"home","phone":"500 555-
0162","email":"jon24@example.com","address":"3761 N. 14th
St","city":"MEDINA","state":"ND","zip":"58467","country":"USA"},
{"id":2,"ordinal":0,"contact_id":1,"info_type":"work","phone":"500 555-0110","email":"jon24@example.net",
"address":"2243 W St.","city":"MEDINA","state":"ND","zip":"58467","country":"USA"},...]}

与其他示例一样,如果所有内容都已正确配置,您将在脚本输出中看到返回的 JSON。

DreamFactory 平台还支持使用 Python(版本 2 和 3)将业务逻辑添加到现有 API 端点,并创建新的独立 API。您可以在 DreamFactory 入门指南中了解有关 DreamFactory 脚本功能的更多信息。

PHP REST API 示例

其他读者可能希望使用 PHP 发送 HTTP API 请求。没关系!可以返回到编辑器并输入以下代码:

<?php
$curl = curl_init();curl_setopt_array($curl, [
CURLOPT_URL => "https://example.com/api/v2/db/_table/contact_info?limit=5",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET"
]);
curl_setopt($curl, CURLOPT_HTTPHEADER, [
"cache-control: no-cache",
"X-DreamFactory-API-Key: YOUR_API_KEY"
]);
$response = curl_exec($curl);
$error = curl_error($curl);
curl_close($curl);
if ($error) {
echo "cURL error #:" . $error;
} else {
echo $response;
}

将文件另存为 并运行脚本,如下所示:rest.php

$ php rest.php
You can learn more about DreamFactory's scripting abilities in the Getting Started With DreamFactory guide.

Ruby REST API 示例

Ruby 拥有众多的 HTTP 客户端库,我可以为您介绍几个。在本节中,我们将介绍两个。让我们首先使用 Ruby 标准库中内置的 which 进行调用。打开文本编辑器并粘贴以下代码:net/http

require 'uri'
require 'net/http'
url = URI('https://example.com/api/v2/db/_table/contact_info?limit=5')
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request['X-DreamFactory-API-Key'] = 'YOUR_API_KEY'
request['cache-control'] = 'no-cache'response = http.request(request)
puts response.read_body

保存这些更改并执行脚本,如下所示:

$ ruby rest.rb

现在让我们再试一次,不过这次我们将使用 Ruby gem。这个非常有用的 Ruby gem 声称“让 http 再次变得有趣”,可以在命令行中交互式使用,也可以在 Ruby、Sinatra 和 Ruby on Rails 应用程序中使用。让我们使用 Ruby 的包管理器来安装 gem:httpartyhttparty

$ gem install httparty

安装 Gem 后,打开编辑器并将以下代码粘贴到名为 :httpartyrest2.rb

require 'httparty'
require 'json'

url = 'https://example.com/api/v2/db/_table/contact_info?limit=5'

headers = {
"X-DreamFactory-API-Key" => "YOUR_API_KEY",
"cache-control" => "no-cache"
}

response = HTTParty.get(url, :headers => headers)

json = JSON.parse(response.body)

puts response.body
puts response.message.to_json

保存文件并执行它,如下所示:

$ ruby rest2.rb

Perl REST API 示例

让我们来看一个 Perl 示例。首先使用 Perl 的 CPAN 包管理器来安装 Perl 模块。打开您的终端并输入以下命令:REST::Client

$ cpan

进入 cpan shell 后,执行以下命令:

install REST::Client

安装完成后,退出shell,打开编辑器,并粘贴以下代码:REST::Clientcpan

use REST::Client;

my $client = REST::Client->new();

$client->getUseragent()->ssl_opts(verify_hostname => 0);

$client->getUseragent()->ssl_opts(SSL_verify_mode => SSL_VERIFY_NONE);

$client->addHeader('X-DreamFactory-API-Key', 'YOUR_API_KEY');

$client->addHeader('cache-control', 'no-cache');

$client->GET("https://example.com/api/v2/db/_table/contact_info?limit=56");

print $client->responseContent();

保存文件并使用以下命令运行它:

<code>$ perl rest.pl</code>

REST API 客户端测试工具

Insomnia

Insomnia 是一个出色的 API 测试工具,DreamFactory 团队每天都会使用它来演示各种平台功能。它可以通过 Insomnia 网站免费下载,付费版本(我们使用)允许团队共享 API 调用库。如下面的屏幕截图所示,它非常易于使用。您将确定请求方法(GET、POST 等)、所需的 URL,并传递 API 密钥。配置呼叫后,只需按下 Send 按钮,请求结果就会出现在右侧面板中。

失眠

Postman

与 Insomnia 一样,Postman 也是一种非常流行的 API 测试工具,具有大量对 API 开发有用的附加功能。它的界面虽然不如 Somnia 那样简洁,但仍然十分易用。如下面的屏幕截图所示。您将确定请求方法,设置 URL 和任何标头,然后按 Send。结果将在底部窗格中输出。

邮差

REST API 生成

DreamFactory 擅长为您的数据库和服务自动生成 REST API 客户端,从而显著简化开发过程。以下是它的工作原理:

连接到数据源

  • DreamFactory 支持广泛的数据源,包括 SQL 数据库(如 MySQLPostgreSQL)、NoSQL 数据库(如 MongoDB),甚至文件存储系统。连接后,DreamFactory 可以自动为这些数据源生成 REST API。
  • 示例:连接到 MySQL 数据库涉及在 DreamFactory 界面中提供连接详细信息(主机名、用户名、密码、数据库名称)。

自动生成 API

  • 连接数据源后,DreamFactory 会扫描架构并为 CRUD(创建、读取、更新、删除)操作生成一组全面的 RESTful 终端节点。这意味着您可以立即拥有随时可用的终端节点。/api/v2/mysql/_table/{table_name}
  • 这样就无需手动 API 编码,让您可以专注于构建应用程序,而不是后端基础设施。

自定义生成的 API

  • DreamFactory 允许您自定义生成的 API 以满足您的需要。您可以在终端节点添加服务器端脚本以实施业务逻辑,应用基于角色的访问控制(RBAC)来保护您的API,并设置API速率限制。
  • 示例:在 JavaScript 中添加预处理脚本,以便在将数据写入数据库之前对其进行验证。

结论

太棒了!因此,您有 7 个快速简单的示例,用于从 DreamFactory REST API 获取和解析数据。您可能已经注意到的另一件事是,API 端点在每次客户端调用中都被重复使用,而且无需编写任何服务器端代码,这真是太棒了!

“检索 API 数据的 7 个简单 REST 客户端示例”的常见问题 (FAQ)
1. 什么是 REST 客户端?

REST(表述性状态传输)客户端是用于发出 HTTP 请求并与 RESTful Web 服务交互的工具或库。这些客户端使开发人员能够轻松执行 CRUD(创建、读取、更新和删除)操作、检索 API 数据并根据需要对其进行操作。

2. 为什么在使用 API 时使用 REST 客户端很重要?

使用 REST 客户端可以屏蔽掉 HTTP 请求和响应的低级细节,让我们能够更轻松地与 API 进行交互。它们提供了一种更高效、用户友好的方法来测试、调试 API 并将其集成到应用程序中,从而为开发人员节省时间和精力。

3. 有哪些流行的 REST 客户端工具和库?

一些流行的 REST 客户端工具和库包括:

  • Postman:一个全面的 API 测试和开发工具,具有用户友好的界面。
  • Insomnia:一个功能强大的 REST 客户端,具有用于 API 调试和测试的现代界面。
  • cURL:用于发出 HTTP 请求的多功能命令行工具。
  • axios:一种流行的基于 Promise 的 JavaScript 库,用于在 Node.js 和浏览器环境中发出 HTTP 请求。
  • fetch:一个内置的 JavaScript API,用于在现代 Web 浏览器中发出 HTTP 请求。
  • requests:一个广泛使用的 Python 库,用于发出 HTTP 请求。
  • RestClient:用于发出 RESTful API 请求的 Ruby gem。

4. 如何使用 REST 客户端检索 API 数据?

要使用 REST 客户端检索 API 数据,请执行以下步骤:

  1. 选择适合您项目要求和语言的 REST 客户端工具或库。
  2. 设置 HTTP 方法(通常为 GET 用于检索数据)并提供 API 端点 URL。
  3. 配置任何必需的标头,例如 API 密钥或身份验证令牌。
  4. 发送请求并接收 API 响应。
  5. 根据需要解析和操作返回的数据。

5. REST 客户端是否仅用于从 API 检索数据?

不可以,REST 客户端可用于各种 CRUD 操作,包括创建、更新和删除数据。根据使用的 HTTP 方法(POST、PUT、PATCH 或 DELETE),REST 客户端可以对 API 资源执行不同的操作。

6. 是否可以将 REST 客户端用于非 RESTful 的 API?

虽然 REST 客户端主要用于与 RESTful API 交互,但 Postman 和 Insomnia 等一些客户端也可用于测试和调试非 RESTful API,例如 GraphQL 或基于 SOAP 的 Web 服务。

7. 如何确保我的 REST 客户端代码安全高效?

要确保您的 REST 客户端代码安全高效:

  • 对所有 API 请求使用 HTTPS 来加密传输中的数据。
  • 验证和清理用户输入,以防止 SQL 注入或跨站点脚本 (XSS) 等安全漏洞。
  • 使用适当的身份验证和授权方法,例如 API 密钥或 OAuth 2.0。
  • 为失败的请求实施错误处理和重试机制。
  • 通过缓存数据并尽可能使用分页或筛选来优化 API 调用的数量。

8.如何找到更多同类API?

幂简集成是国内领先的API集成管理平台,专注于为开发者提供全面、高效、易用的API集成解决方案。幂简API平台可以通过以下两种方式找到所需API:通过关键词搜索API、或者从API Hub分类页进入寻找。

原文链接:https://blog.dreamfactory.com/7-simple-rest-client-examples-for-retrieving-api-data

#你可能也喜欢这些API文章!