#nft #metadata #ethereum #generator #serve #axum #url

bin+lib nft-server

一个简单、最小的 NFT 元数据生成 trait,以及一个包含所有功能的元数据服务器

2 个版本

0.1.1 2022年9月23日
0.1.0 2022年9月22日

#79 in #serve

MIT/Apache

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