Руководство по быстрому старту
Руководство по быстрому старту
Заголовок раздела «Руководство по быстрому старту»Это руководство поможет вам сделать первые шаги в Chaingateway. Оно описывает, как читать документацию API, создать API-ключ и авторизоваться для использования нашего API.
Начало работы с API Chaingateway
Заголовок раздела «Начало работы с API Chaingateway»API Chaingateway предоставляет разработчикам простой интерфейс для взаимодействия с несколькими блокчейнами, такими как Tron, Binance Smart Chain (BNB Chain), Ethereum, Polygon и Bitcoin. Наши эндпоинты API предоставляют вам различные функции, такие как создание транзакций, отправка взаимозаменяемых и невзаимозаменяемых токенов, а также запрос полезных данных блокчейна, таких как балансы аккаунтов и высоты блоков.
Начало работы с API Chaingateway
Заголовок раздела «Начало работы с API Chaingateway»API Chaingateway предоставляет разработчикам простой интерфейс для взаимодействия с несколькими блокчейнами, такими как Tron, Binance Smart Chain (BNB Chain), Ethereum, Polygon и Bitcoin. Наши эндпоинты API предоставляют несколько функций, таких как создание транзакций, отправка взаимозаменяемых и невзаимозаменяемых токенов, а также запрос полезных данных блокчейна, таких как балансы аккаунтов и высоты блоков.
- Как настроить свой аккаунт
- Как создать свой API-ключ
- Основные концепции нашего API
- Как отправить свой первый запрос к API
Настройка аккаунта
Заголовок раздела «Настройка аккаунта»Сначала создайте аккаунт Chaingateway или войдите в существующий. Затем перейдите на страницу API-ключей, чтобы создать новый токен. Введите имя для своего токена и нажмите «+ Create Token». Ваш новый токен теперь должен отображаться в интерфейсе. Храните его в надёжном месте и не передавайте его другим лицам!
Язык быстрого старта
Заголовок раздела «Язык быстрого старта»В следующих разделах вы сможете выбрать язык программирования между curl, PHP, Node.js и Python. Если вам нужны примеры кода на других языках, наш справочник API поддерживает множество других языков.
Настройка среды разработки
Заголовок раздела «Настройка среды разработки»- CURL для интерфейсов командной строки, таких как bash или shell
- Requests для Python
- Axios для JavaScript и Node.js
- Guzzle для PHP
- HTTP-клиент для Laravel
Мы рекомендуем использовать централизованное хранилище для вашего API-ключа — это может быть переменная окружения для curl и Python, или файл .env для Node.js и PHP/Laravel.
Базовая концепция API
Заголовок раздела «Базовая концепция API»REST API Chaingateway следует принципам REST, используя HTTP-запросы для связи. Он предлагает эндпоинты, представляющие ресурсы, например /addresses, и поддерживает стандартные методы, такие как GET, POST, PUT, DELETE, для действий по получению, созданию, обновлению и удалению ресурсов. Ответы обычно возвращаются в формате JSON. Аутентификация обеспечивает безопасный доступ к ресурсам.
Приведём пример с ресурсом address:
-
GET: Получите данные адреса, отправив GET-запрос на
/addressesдля списка адресов или на/addresses/{id}для конкретного адреса. -
POST: Создайте новый адрес, отправив POST-запрос на
/addressesс данными адреса в теле запроса. -
PUT: Обновите существующий адрес, отправив PUT-запрос на
/addresses/{id}с полной обновлённой информацией об адресе в теле запроса. Поскольку обновление информации об адресе в блокчейнах не допускается, этот метод не существует. -
DELETE: Удалите адрес, отправив DELETE-запрос на
/addresses/{id}. -
PATCH: Внесите частичные изменения в адрес, отправив PATCH-запрос на
/addresses/{id}только с конкретными изменениями. Поскольку обновление информации об адресе в блокчейнах не допускается, этот метод не существует.
Эти методы позволяют клиентам выполнять CRUD-операции с различными ресурсами предсказуемым и последовательным образом в соответствии с принципами REST. Вам нужно убедиться, что метод всегда соответствует необходимой функциональности.
Заголовки
Заголовок раздела «Заголовки»HTTP-заголовки предоставляют дополнительную информацию о запросе или ответе. Вот некоторые часто используемые заголовки:
-
Заголовок Authorization: Заголовок Authorization используется для передачи учётных данных (например, токена или имени пользователя/пароля) вместе с запросом для доступа к защищённым ресурсам. Например,
Authorization: <token>указывает, что запрос авторизован с помощью токена. -
Заголовок Accept: Заголовок Accept указывает типы медиа, которые клиент готов получить в ответе. Он помогает серверу понять, какой тип контента предпочитает клиент. Например,
Accept: application/jsonсообщает серверу, что клиент предпочитает ответы в формате JSON. Можно указать несколько типов медиа, разделённых запятыми, и сервер выберет наиболее подходящий на основе своих возможностей и предпочтений, выраженных клиентом. -
Заголовок Content-Type: Заголовок Content-Type указывает тип медиа тела запроса, отправляемого на сервер. Он сообщает серверу, как интерпретировать данные в запросе. Например,
Content-Type: application/jsonуказывает, что тело запроса отформатировано как JSON. Этот заголовок особенно важен для POST- и PUT-запросов, где клиент отправляет данные на сервер.
Выполнение первого запроса к API
Заголовок раздела «Выполнение первого запроса к API»После того как вы настроили HTTP-клиент и разобрались, как работает API, мы можем начать использовать его в нашем проекте. Чтобы показать вам, как работает наш API, мы сначала создадим адрес Ethereum.
Давайте разберём различные компоненты этого API-вызова:
Мы используем метод POST, потому что хотим отправить данные в API.
Данные, которые мы отправляем, определены в теле запроса {"password": "architecto"}. Это объект JSON с парой ключ-значение, где ключ — «password», а значение — «architecto». Эти данные будут обработаны сервером в соответствии со спецификациями API.
Заголовок Authorization добавляет заголовок Authorization со значением «YOUR_SECRET_TOKEN» (замените его на свой собственный токен!). 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}