以下是需要了解的有關(guān) REST 客戶端的關(guān)鍵事項:

配置示例項目

如果您想使用實時數(shù)據(jù)來遵循這些示例,我們建議配置示例應(yīng)用程序。如果您尚未在 DreamFactory 實例中安裝此應(yīng)用程序,請單擊選項卡。在屏幕左側(cè),單擊 Address Book For JavaScript 項目旁邊的 。滾動到屏幕底部并單擊 按鈕。這足以確保將應(yīng)用程序示例數(shù)據(jù)集加載到您的 DreamFactory 實例中,但是,如果您想嘗試其他功能,您還需要完成上述項目中的其他一些配置步驟。

Address Book for JavaScriptAppsImportSelectImportREADME

無論哪種情況,都可以前往 API 文檔,選擇服務(wù),然后向下滾動到以下終端節(jié)點:db

GET /db/_schema

您應(yīng)該會看到以下屏幕截圖中描述的輸出:

如果 GET 請求成功執(zhí)行,您應(yīng)該會收到指示成功的響應(yīng) Code,以及架構(gòu)中表的 JSON 表示形式。現(xiàn)在,一些示例數(shù)據(jù)可用,讓我們試驗一些 GET 請求。在我們的示例中,我們將使用以下 API 終端節(jié)點查詢表:200contact_info

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

NodeJS REST API 示例

對于我們的第一個示例,我們將查看兩個簡單的 NodeJS 腳本。下面是本機(jī) NodeJS HTTP GET 請求的示例。在您最喜歡的文本編輯器中,創(chuàng)建一個名為 并輸入以下代碼的新文件: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 實例關(guān)聯(lián)的位置和分配的應(yīng)用程序 API 密鑰后,保存更改并通過終端運行腳本:hostnamex-dreamfactory-api-key

$ node rest.js

現(xiàn)在應(yīng)該返回了一大塊 JSON 數(shù)據(jù)。如果您想對其進(jìn)行清理并更仔細(xì)地查看數(shù)據(jù),可以將響應(yīng)復(fù)制并粘貼到 JSONLint 中。)將數(shù)據(jù)粘貼到文本區(qū)域后,單擊 。這將完成兩項重要任務(wù):Validate JSON

  1. 將 JSON 格式化為更易讀的內(nèi)容。
  2. 驗證 JSON 的格式是否正確,如 JSON 規(guī)范所述。如果 JSON 由于任何原因無效,您將收到有關(guān)采取哪些步驟來正確設(shè)置 JSON 格式的提示。

對于一個簡單的 GET 調(diào)用來說,這個腳本感覺有點沉重。讓我們再次嘗試相同的調(diào)用,但這次我們將使用 ‘unirest’ 模塊。NPM 附帶 NodeJS,允許用戶安裝所謂的 Node 模塊。如果您打算在 DreamFactory 中運行任何自定義腳本服務(wù)或事件腳本,這個功能也會非常有用。讓我們使用 NPM 安裝 ‘unirest’ 模塊,打開一個 shell 并鍵入:

$ npm install -g unirest

該選項將全局安裝模塊。我們建議全局安裝 NodeJS 模塊,特別是如果您打算在服務(wù)器端腳本中使用它們。現(xiàn)在您已經(jīng)安裝了該模塊,請打開文本編輯器并粘貼以下代碼:-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

和之前一樣,您會收到一個詳細(xì)的 JSON 響應(yīng)作為回報。但這一次,它用更簡潔的代碼就實現(xiàn)了,并且還帶來了格式化 JSON 的好處!

Python REST API 示例

也許NodeJS并不符合你的偏好,而python更符合。Python 使用該模塊使 REST 變得輕而易舉。讓我們使用 Python 包管理器 pip 安裝模塊。打開您的終端并執(zhí)行:requestsrequests

$ pip install requests

現(xiàn)在模塊已安裝完畢,讓我們再次打開文本編輯器并輸入以下代碼: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)

確認(rèn)一切正確后,將文件另存為,然后再次導(dǎo)航到保存腳本的目錄并輸入: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"},...]}

與其他示例一樣,如果所有內(nèi)容都已正確配置,您將在腳本輸出中看到返回的 JSON。

DreamFactory 平臺還支持使用 Python(版本 2 和 3)將業(yè)務(wù)邏輯添加到現(xiàn)有 API 端點,并創(chuàng)建新的獨立 API。您可以在 DreamFactory 入門指南中了解有關(guān) DreamFactory 腳本功能的更多信息。

PHP REST API 示例

其他讀者可能希望使用 PHP 發(fā)送 HTTP API 請求。沒關(guān)系!可以返回到編輯器并輸入以下代碼:

<?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 客戶端庫,我可以為您介紹幾個。在本節(jié)中,我們將介紹兩個。讓我們首先使用 Ruby 標(biāo)準(zhǔn)庫中內(nèi)置的 which 進(jìn)行調(diào)用。打開文本編輯器并粘貼以下代碼: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

保存這些更改并執(zhí)行腳本,如下所示:

$ ruby rest.rb

現(xiàn)在讓我們再試一次,不過這次我們將使用 Ruby gem。這個非常有用的 Ruby gem 聲稱“讓 http 再次變得有趣”,可以在命令行中交互式使用,也可以在 Ruby、Sinatra 和 Ruby on Rails 應(yīng)用程序中使用。讓我們使用 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

保存文件并執(zhí)行它,如下所示:

$ ruby rest2.rb

Perl REST API 示例

讓我們來看一個 Perl 示例。首先使用 Perl 的 CPAN 包管理器來安裝 Perl 模塊。打開您的終端并輸入以下命令:REST::Client

$ cpan

進(jìn)入 cpan shell 后,執(zhí)行以下命令:

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 團(tuán)隊每天都會使用它來演示各種平臺功能。它可以通過 Insomnia 網(wǎng)站免費下載,付費版本(我們使用)允許團(tuán)隊共享 API 調(diào)用庫。如下面的屏幕截圖所示,它非常易于使用。您將確定請求方法(GET、POST 等)、所需的 URL,并傳遞 API 密鑰。配置呼叫后,只需按下 Send 按鈕,請求結(jié)果就會出現(xiàn)在右側(cè)面板中。

失眠

Postman

與 Insomnia 一樣,Postman 也是一種非常流行的 API 測試工具,具有大量對 API 開發(fā)有用的附加功能。它的界面雖然不如 Somnia 那樣簡潔,但仍然十分易用。如下面的屏幕截圖所示。您將確定請求方法,設(shè)置 URL 和任何標(biāo)頭,然后按 Send。結(jié)果將在底部窗格中輸出。

郵差

REST API 生成

DreamFactory 擅長為您的數(shù)據(jù)庫和服務(wù)自動生成 REST API 客戶端,從而顯著簡化開發(fā)過程。以下是它的工作原理:

連接到數(shù)據(jù)源

自動生成 API

自定義生成的 API

結(jié)論

太棒了!因此,您有 7 個快速簡單的示例,用于從 DreamFactory REST API 獲取和解析數(shù)據(jù)。您可能已經(jīng)注意到的另一件事是,API 端點在每次客戶端調(diào)用中都被重復(fù)使用,而且無需編寫任何服務(wù)器端代碼,這真是太棒了!

“檢索 API 數(shù)據(jù)的 7 個簡單 REST 客戶端示例”的常見問題 (FAQ)
1. 什么是 REST 客戶端?

REST(表述性狀態(tài)傳輸)客戶端是用于發(fā)出 HTTP 請求并與 RESTful Web 服務(wù)交互的工具或庫。這些客戶端使開發(fā)人員能夠輕松執(zhí)行 CRUD(創(chuàng)建、讀取、更新和刪除)操作、檢索 API 數(shù)據(jù)并根據(jù)需要對其進(jìn)行操作。

2. 為什么在使用 API 時使用 REST 客戶端很重要?

使用 REST 客戶端可以屏蔽掉 HTTP 請求和響應(yīng)的低級細(xì)節(jié),讓我們能夠更輕松地與 API 進(jìn)行交互。它們提供了一種更高效、用戶友好的方法來測試、調(diào)試 API 并將其集成到應(yīng)用程序中,從而為開發(fā)人員節(jié)省時間和精力。

3. 有哪些流行的 REST 客戶端工具和庫?

一些流行的 REST 客戶端工具和庫包括:

4. 如何使用 REST 客戶端檢索 API 數(shù)據(jù)?

要使用 REST 客戶端檢索 API 數(shù)據(jù),請執(zhí)行以下步驟:

  1. 選擇適合您項目要求和語言的 REST 客戶端工具或庫。
  2. 設(shè)置 HTTP 方法(通常為 GET 用于檢索數(shù)據(jù))并提供 API 端點 URL。
  3. 配置任何必需的標(biāo)頭,例如 API 密鑰或身份驗證令牌。
  4. 發(fā)送請求并接收 API 響應(yīng)。
  5. 根據(jù)需要解析和操作返回的數(shù)據(jù)。

5. REST 客戶端是否僅用于從 API 檢索數(shù)據(jù)?

不可以,REST 客戶端可用于各種 CRUD 操作,包括創(chuàng)建、更新和刪除數(shù)據(jù)。根據(jù)使用的 HTTP 方法(POST、PUT、PATCH 或 DELETE),REST 客戶端可以對 API 資源執(zhí)行不同的操作。

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

雖然 REST 客戶端主要用于與 RESTful API 交互,但 Postman 和 Insomnia 等一些客戶端也可用于測試和調(diào)試非 RESTful API,例如 GraphQL 或基于 SOAP 的 Web 服務(wù)。

7. 如何確保我的 REST 客戶端代碼安全高效?

要確保您的 REST 客戶端代碼安全高效:

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

冪簡集成是國內(nèi)領(lǐng)先的API集成管理平臺,專注于為開發(fā)者提供全面、高效、易用的API集成解決方案。冪簡API平臺可以通過以下兩種方式找到所需API:通過關(guān)鍵詞搜索API、或者從API Hub分類頁進(jìn)入尋找。

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

上一篇:

通過API優(yōu)化谷歌搜索:Serper使用指南

下一篇:

微博熱搜榜數(shù)據(jù)采集全攻略
#你可能也喜歡這些API文章!

我們有何不同?

API服務(wù)商零注冊

多API并行試用

數(shù)據(jù)驅(qū)動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準(zhǔn)確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費