2 个版本
0.1.1 | 2022年9月23日 |
---|---|
0.1.0 | 2022年9月22日 |
#79 in #serve
23KB
434 行
NFT 服务器
简单的 Rust NFT 元数据库,以及一个用于提供元数据的 axum 服务器
$ cargo build
$ cargo clippy
$ cargo run --bin example
使用方法
实现一个 MetadataGenerator
,将令牌 ID 异步映射到令牌元数据,然后调用 serve
来提供它。请参阅 bin/example.rs
以及 crate::generators::disk::LocalJson
生成器
需要使用此库的项目需要依赖以下内容
async_trait
url
(为了方便,Url
结构被重新导出)ethers
(为了方便,U256
结构被重新导出)
内置服务器
默认启用的 axum
功能添加了一个最小化的 axum 服务器,已预配置以提供令牌元数据。
在实例化您的元数据生成器后,您可以通过以下方式在 http 上提供服务
use nft_server::prelude::*;
async main() {
let my_generator = ...;
let addr = ([0, 0, 0, 0], 8080);
serve_generator(my_generator, addr).await;
}
此服务器有以下路由
/healthcheck
- 返回 200/
- 调用MetadataGenerator::contract_metadata()
并返回结果/:token_id
- 作为十进制数。调用MetadataGenerator::metadata_for(token_id)
并返回结果
例如,localhost:8080/0
将返回令牌 0 的 JSON 元数据
依赖项
~21–35MB
~567K SLoC