区块链 API 快速入门与 API Key
快速入门指南
Section titled “快速入门指南”本指南帮助你迈出使用 Chaingateway 的第一步。它介绍了如何阅读 API 文档、创建 API key,并获得使用我们 API 的授权。
开始使用 Chaingateway API
Section titled “开始使用 Chaingateway API”Chaingateway API 为开发者提供了一个简单的接口,用于与 Tron、Binance Smart Chain(BNB Chain)、Ethereum、Polygon 和 Bitcoin 等多条区块链交互。我们的 API 端点为你提供多种功能,例如创建交易、发送同质化和非同质化代币,以及查询有用的区块链数据,如账户余额和区块高度。
开始使用 Chaingateway API
Section titled “开始使用 Chaingateway API”Chaingateway API 为开发者提供了一个简单的接口,用于与 Tron、Binance Smart Chain(BNB Chain)、Ethereum、Polygon 和 Bitcoin 等多条区块链交互。我们的 API 端点提供多种功能,例如创建交易、发送同质化和非同质化代币,以及查询有用的区块链数据,如账户余额和区块高度。
- 如何设置你的账户
- 如何创建你的 API key
- 我们 API 背后的基本概念
- 如何发送你的第一个 API 请求
首先,创建一个 Chaingateway 账户,或 登录。然后前往 API key 页面 创建一个新令牌。为你的令牌输入一个名称,并点击”+ Create Token”。你的新令牌现在应该会显示在界面中。请将其保存在安全的地方,不要将该令牌提供给他人!
快速入门语言
Section titled “快速入门语言”在接下来的章节中,你可以在 curl、PHP、Node.js 和 Python 之间选择你的编程语言。如果你需要其他语言的代码示例,我们的 API 参考文档 支持许多其他语言。
设置你的开发环境
Section titled “设置你的开发环境”- 用于 bash 或 shell 等命令行界面的 CURL
- 用于 Python 的 Requests
- 用于 JavaScript 和 Node.js 的 Axios
- 用于 PHP 的 Guzzle
- 用于 Laravel 的 HTTP 客户端
我们建议为你的 API key 使用集中存储的方式,对于 curl 和 Python 可以是 环境变量,对于 Node.js 和 PHP/Laravel 可以是 .env 文件。
基本 API 概念
Section titled “基本 API 概念”Chaingateway 的 REST API 遵循 REST 原则,使用 HTTP 请求进行通信。它提供代表资源的端点,例如 /addresses,并支持 GET、POST、PUT、DELETE 等标准方法,用于获取、创建、更新和删除资源等操作。响应通常为 JSON 格式。身份验证确保对资源的安全访问。
我们以 address 资源为例:
-
GET:通过向
/addresses发送 GET 请求获取地址列表数据,或向/addresses/{id}发送 GET 请求获取特定地址的数据。 -
POST:通过向
/addresses发送 POST 请求并在请求体中包含地址详情来创建新地址。 -
PUT:通过向
/addresses/{id}发送 PUT 请求,并在请求体中包含完整的更新后地址信息来更新现有地址。由于区块链上不允许更新任何地址信息,因此该方法不存在。 -
DELETE:通过向
/addresses/{id}发送 DELETE 请求来移除地址。 -
PATCH:通过向
/addresses/{id}发送 PATCH 请求,仅包含特定的更改内容,对地址进行部分更新。由于区块链上不允许更新任何地址信息,因此该方法不存在。
这些方法使客户端能够以可预测和一致的方式对各种资源执行 CRUD 操作,符合 REST 原则。你需要确保所用方法始终符合你所需的功能。
Header
Section titled “Header”HTTP header 提供有关请求或响应的附加信息。以下是一些常用的 header:
-
Authorization Header:Authorization header 用于在请求中随附凭据(例如令牌或用户名/密码),以访问受保护的资源。例如,
Authorization: <token>表示该请求使用令牌进行了授权。 -
Accept Header:Accept header 指定客户端愿意在响应中接收的媒体类型。它帮助服务器了解客户端偏好的内容类型。例如,
Accept: application/json告诉服务器客户端偏好 JSON 格式的响应。可以指定多个以逗号分隔的媒体类型,服务器将根据其能力和客户端表达的偏好选择最合适的一种。 -
Content-Type Header:Content-Type header 表示发送到服务器的请求体的媒体类型。它告诉服务器如何解析请求中的数据。例如,
Content-Type: application/json表示请求体的格式为 JSON。此 header 对于 POST 和 PUT 请求尤为重要,因为客户端会向服务器发送数据。
发起你的第一个 API 请求
Section titled “发起你的第一个 API 请求”在配置好你的 HTTP 客户端并理解 API 的工作原理后,我们就可以在项目中开始使用它了。为了向你展示我们的 API 如何工作,我们将首先创建一个以太坊地址。
让我们拆解一下这个 API 调用的各个组成部分:
我们使用 POST 方法,因为我们想向 API 提交数据。
我们发送的数据在请求体 {"password": "architecto"} 中定义。这是一个包含键值对的 JSON 对象,键是”password”,值是”architecto”。服务器将根据 API 的规范处理这些数据。
Authorization Header 添加了一个值为”YOUR_SECRET_TOKEN”的 Authorization header(请将其替换为你自己的令牌!)。Content-Type 和 Accept 都设置为 application/json,确保两个系统都以 application/json 文件类型进行通信。
curl --request POST \ --url http://api.chaingateway.io/api/v2/ethereum/addresses \ --header 'Authorization: YOUR_SECRET_TOKEN' \ --header 'Content-Type: application/json' \ --data '{ "password": "architecto"}'import requestsurl = "http://api.chaingateway.io/api/v2/ethereum/addresses"payload = { "password": "architecto" }headers = { "Content-Type": "application/json", "Authorization": "YOUR_SECRET_TOKEN"}response = requests.post(url, json=payload, headers=headers)print(response.json())import axios from 'axios';const options = { method: 'POST', url: 'http://api.chaingateway.io/api/v2/ethereum/addresses', headers: {'Content-Type': 'application/json', Authorization: 'YOUR_SECRET_TOKEN'}, data: {password: 'architecto'}};try { const { data } = await axios.request(options); console.log(data);} catch (error) { console.error(error);}<?php$client = new \GuzzleHttp\Client();$response = $client->request('POST', 'https://api.chaingateway.io/api/v2/ethereum/addresses', [ 'body' => '{ "password": "architecto"}', 'headers' => [ 'Authorization' => 'YOUR_SECRET_TOKEN', 'Content-Type' => 'application/json', ],]);echo $response->getBody();响应将是:
{ "status": 201, "ok": true, "message": "Address created", "data": {}}要获取数据,例如获取地址列表,你可以使用 GET 方法。此方法通常不使用任何请求体。
curl --request GET \ --url https://api.chaingateway.io/api/v2/ethereum/addresses \ --header 'Authorization: YOUR_SECRET_TOKEN'import requestsurl = "https://api.chaingateway.io/api/v2/ethereum/addresses"headers = {"Authorization": "YOUR_SECRET_TOKEN"}response = requests.get(url, headers=headers)print(response.json())import axios from 'axios';const options = { method: 'GET', headers: {Authorization: 'YOUR_SECRET_TOKEN'}};try { const { data } = await axios.request(options); console.log(data);} catch (error) { console.error(error);}<?php$client = new \GuzzleHttp\Client();$response = $client->request('GET', 'https://api.chaingateway.io/api/v2/ethereum/addresses', [ 'headers' => [],]);echo $response->getBody();响应将是:
{ "ok": true}