快速入门指南
快速入门指南
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}