本文档介绍了如何在QuickNode Marketplace上创建REST API插件。内容包括:申请开发者账户、构建和测试插件(如何开发REST API, 如何进行配置、健康检查,单点登录等)、提交插件到QuickNode Marketplace的流程(包括填写表单,测试访问,以及QuickNode审核标准)。
为 QuickNode Marketplace 创建 REST API 插件,你可以通过添加自定义 REST 接口来扩展 QuickNode 的功能。开发 QuickNode marketplace 插件使你能够在 QuickNode Marketplace 上部署你的 API 并将其货币化,从而为广大的开发者社区提供访问权限。一旦你的插件获得批准,它将在 QuickNode Marketplace 上展示,你将获得 QuickNode 团队的支持和推广,以帮助你接触潜在用户并最大限度地发挥你的服务的影响力。
在本指南中,我们将介绍创建你自己的 REST API 插件的步骤,并提供相关主题的深入指南和资源链接。
首先,让我们申请一个开发者帐户,以便能够在 QuickNode Marketplace 上创建插件。从你的 QuickNode 仪表板,点击左侧导航栏上的 切换到合作伙伴 选项卡,然后完成 marketplace 帐户的申请。以下是该表格的预览:
新 marketplace 合作伙伴的审批过程可能需要长达 7 个工作日,但是,通常情况下,你可以在 1-2 个工作日内收到回复。
创建 REST API 插件涉及开发和测试你的服务,以确保其符合 QuickNode 的标准。
你可以从头开始开发你的 REST API 插件,重点是为配置、健康检查以及你希望公开的 REST API 路径构建必要的接口。
QuickNode 提供包含配置和健康检查功能的入门代码;但是,这些入门代码目前不支持 REST API 插件。我们正在积极努力将 REST API 支持添加到入门代码中,该功能将很快可用。目前,建议从头开始构建你的 REST API 插件。
在开发期间,你需要实现配置和健康检查所需的接口,以及你希望公开的 REST API 路径。
编程语言 | 入门代码仓库 |
---|---|
Python | QuickNode Marketplace 入门代码 - Python |
JavaScript | QuickNode Marketplace 入门代码 - JavaScript |
Ruby | QuickNode Marketplace 入门代码 - Ruby |
Go | QuickNode Marketplace 入门代码 - Go |
Ruby on Rails | QuickNode Marketplace 入门代码 - Ruby on Rails |
你的插件必须包含以下接口来管理其生命周期:
接口 | 描述 |
---|---|
/provision |
用于为 QuickNode 用户配置你的插件的新实例。 |
/deprovision |
当用户决定停止使用你的插件时,处理插件实例的移除。 |
/deactivate_endpoint |
停用与你的插件关联的特定接口。 |
/update |
允许更新现有的已配置的插件实例。 |
实现一个健康检查接口(例如,/healthcheck
),QuickNode 可以使用它来验证你的服务的可用性。
如果你的插件包含外部仪表板,你可能需要实现基于 JWT 的 SSO。
测试你的 REST API 插件是在将其提交到 QuickNode Marketplace 之前的关键步骤。qn-marketplace-cli
工具旨在帮助你直接在本地开发环境中或服务器上测试插件的功能。
虽然有关如何使用此工具的所有信息都可以在 GitHub 仓库 中详细找到,但让我们一起检查一些信息。
在继续之前,请确保你的插件在开始测试之前正在运行。在配置测试时,使用适当的 host URL(例如,http://localhost:3000 或你的远程服务器 URL)。
qn-marketplace-cli
首先,通过从 QuickNode GitHub 仓库 下载预构建的二进制文件,在你的机器上安装 qn-marketplace-cli
。或者,如果需要,你可以从源代码构建它。
由于你的插件必须实现四个配置接口来管理其生命周期(/provision
、/deprovision
、/deactivate_endpoint
和 /update
),因此你可以使用 CLI 工具单独或一次性测试这些接口。
info
安装 qn-marketplace-cli
工具后,你可能需要提供正确的路径来执行它。例如:
go/bin/qn-marketplace-cli help
或者,你可以导航到 CLI 工具所在的目录并直接运行该命令:
cd go/bin/
./qn-marketplace-cli help
pudd
命令模拟了为你的插件p配置、u更新、d停用和d取消配置接口的整个生命周期。以下是该命令以及你需要使用的标志的说明:
一次性测试所有配置
./qn-marketplace-cli pudd \
--base-url=http://localhost:3000/provisioning \
--basic-auth=<your-auth-code> \
--chain=<selected-chain> \
--network=<selected-network> \
--plan=<your-plan-slug> \
--endpoint-url=<your-endpoint-url> \
--wss-url=<your-wss-url>
标志 | 描述 |
---|---|
--base-url |
插件配置 API 的基本 URL。 |
--basic-auth |
插件的基本身份验证凭据。默认为 username = Aladdin 和 password = open sesame (默认 "QWxhZGRpbjpvcGVuIHNlc2FtZQ==")。 |
--chain |
要为其配置插件的链(默认为 "ethereum")。 |
--endpoint-id |
要为其配置插件的接口 ID(可选)(默认为 "72b1201c-84fd-4244-ad21-f056a97f043d")。 |
--endpoint-url |
要为其配置插件的接口 URL(可选 - 默认为以太坊主网接口) (默认 " https://long-late-firefly.quiknode.pro/4bb1e6b2dec8294938b6fdfdb7cf0cf70c4e97a2/")。 |
--network |
要为其配置插件的网络(默认为 "mainnet")。 |
--plan |
要为其配置插件的计划。(默认为 "discover") |
--quicknode-id |
要为其配置插件的 QuickNode ID(可选)(默认为 "5f649496-0d0a-4637-9b4b-e96fbe19bcdd")。 |
--wss-url |
要为其配置插件的 WebSocket URL(可选 - 默认为以太坊主网接口) (默认 "wss://long-late-firefly.quiknode.pro/4bb1e6b2dec8294938b6fdfdb7cf0cf70c4e97a2/")。 |
如果你需要有关任何命令或标志的更多信息,CLI 提供内置的帮助选项。你可以按如下方式访问常规帮助或各个命令的特定帮助:
常规帮助
./qn-marketplace-cli help
命令特定帮助
./qn-marketplace-cli pudd --help
qn-marketplace-cli 允许你在本地和远程服务器上测试你的插件。对于本地测试,可以针对在 localhost 上托管的服务运行命令。对于服务器测试,只需将命令指向你部署的服务。
例如,如果你正在使用我们的 QuickNode Marketplace 入门代码 - JavaScript,这是一个用 Node.js 构建的示例插件,你可以使用以下命令在本地测试配置。这假设你已将用户名和密码分别设置为 username
和 password
。
示例 PUDD 命令
./qn-marketplace-cli pudd \
--base-url http://localhost:3030/provisioning \
--quicknode-id foobar \
--endpoint-id bazbaz \
--chain ethereum \
--network mainnet \
--basic-auth dXNlcm5hbWU6cGFzc3dvcmQ=
CLI 还支持测试 REST API 方法,使你可以确保你的 REST API 插件正常运行。以下是你需要使用的命令:
示例 REST API 测试命令
./qn-marketplace-cli rest \
--rest-url=http://localhost:3000/your-rest-path \
--rest-verb=POST \
--rest-body='{"key":"value"}' \
--basic-auth=<your-auth-code> \
--chain=ethereum \
--network=mainnet \
--plan=<your-plan-slug> \
--quicknode-id=<your-quicknode-id> \
--endpoint-id=<your-endpoint-id> \
--endpoint-url=<your-endpoint-url>\
--wss-url=<your-wss-url>
除了上一个示例中提到的标志之外,特定于 REST 命令的标志的描述如下:
标志 | 描述 |
---|---|
--rest-body |
要在 REST 调用中使用的 REST 请求正文。 |
--rest-url |
用于进行 REST 调用的 URL。 |
--rest-verb |
要使用的 REST HTTP 方法或动词(例如,GET 或 POST)。 |
info
所有配置和更新 API 必须使用 HTTP 基本身份验证 进行保护。你将在 Marketplace 引导过程中收到凭据,可在插件的安全选项卡中访问。对于本地测试,你可以设置自己的用户名和密码,并使用 Base64 生成基本身份验证值。
对于 Base64 编码,你可以使用 像这样的 网站之一以 username:password
格式创建你的值。
ngrok
进行测试对于本地测试,ngrok
可以是一个有用的工具,可以通过安全隧道将你的本地服务公开到互联网。这允许你在测试配置、更新和取消配置操作时模拟真实世界的条件。
要设置 ngrok
,请运行适用于你的操作系统的命令来安装它:
brew install ngrok/ngrok/ngrok
choco install ngrok
curl -s https://ngrok-agent.s3.amazonaws.com/ngrok.asc | sudo tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null && echo "deb https://ngrok-agent.s3.amazonaws.com buster main" | sudo tee /etc/apt/sources.list.d/ngrok.list && sudo apt update && sudo apt install ngrok
安装 ngrok
后,请确保你的本地服务器在端口 3000 上运行(或你所需的端口)。然后,运行 ngrok 以创建一个指向你的本地服务的安全 URL:
ngrok http 3000
这将提供一个公共 URL(例如,https://abcd1234.ngrok.io),你可以使用它来测试你的插件与 qn-marketplace-cli
,就像它部署在实时服务器上一样。
在你开发和测试你的插件时,你可能需要参考其他指南和资源:
测试清单
在将你的插件提交到 QuickNode Marketplace 之前,彻底测试它是至关重要的。这包括运行 PUDD 命令来测试所有配置接口,验证健康检查,并测试你的插件为计划支持的链提供的所有 REST 路径。
请放心,如果任何事情需要进一步关注,QuickNode 团队将在内部审查期间提供反馈。
一旦你的 REST API 插件开发和测试完毕,下一步就是将其提交到 QuickNode Marketplace。本节介绍在 marketplace 中创建你的插件的过程,包括填写所需的表格并将你的插件提交以供批准。
首先,登录到你的 QuickNode 仪表板并导航到 切换到合作伙伴 选项卡。在这里,你将开始将你的 REST API 插件添加到 marketplace 的过程。
你需要提供有关你的插件的详细信息,这些信息分为几个部分:
openssl rand -hex 32
命令来生成随机 JWT 密钥代码。)。GET
、POST
){"token": "ETH", "currency": "USD"}
)高亮显示用户将从你的插件中受益的关键功能。(例如,实时价格更新,支持多种加密货币)。
列出你将提供给 QuickNode 用户的定价计划。(例如,具有有限请求的免费层,具有无限访问权限的高级层)。
完成提交表单后,从 QuickNode 团队请求测试访问权限。他们将审查你的插件,如果一切正常,则会授予你在 QuickNode 环境中测试你的插件的权限。
QuickNode 批准在以下一项或多项标准中表现出色的插件:
如果你的插件满足这些要求中的一个或多个,我们很可能会联系你以了解更多信息并快速跟踪你的插件。
在成功测试和批准后,你将在结帐页面、接口的插件选项卡和公共网站上获得应用程式位置。你将在 QuickNode MarketPlace 上获得位置,并获得额外的促销支持,以帮助你接触潜在客户。
恭喜你创建并将你的 REST API 插件提交到 QuickNode Marketplace!
如果你有任何问题,请随时使用我们在 Discord 上的专用频道,或使用下面的表单提供反馈。请通过在 Twitter 和我们的 Telegram 公告频道 上关注我们来了解最新信息。
如果你对新主题有任何反馈或要求,请告诉我们。我们很乐意听到你的来信。
- 原文链接: quicknode.com/guides/mar...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!