如何使用占位符通过 API POST Json 元数据
How to POST Json metadata through API using placeholders
你好吗?预先感谢您的帮助!
有一个用于 NFT 铸币的平台 (https://pro.nft-maker.io/),它允许我为我稍后要使用它们 API 上传的文件设置元数据结构。我的看起来像这样:
{
"721": {
"<policy_id>": {
"<asset_name>": {
"one": "<place_holder1>",
"two": "<place_holder2>",
"three": "<place_holder3>",
"four": "<place_holder4>",
"five": "<place_holder5>",
"six": "<place_holder6>",
"seven": "<place_holder7>",
"eight": "<place_holder8>",
"nine": "<place_holder9>",
"files": [
{
"name": "<asset_name>",
"mediaType": "<mime_type>",
"src": "<ipfs_link>"
}
]
}
}
}
}
<brackets>
中的是我的占位符。当我上传图片时,我需要在 JSON 中使用 POST 请求将数据传递给他们。
这是他们的 API 文档:
https://api.nft-maker.io/swagger/index.html
我需要使用 UploadNft 端点 POST 并上传我的图像及其元数据。这是文档中的示例代码:
{
"assetName": "string",
"previewImageNft": {
"mimetype": "string",
"fileFromIPFS": "string",
"metadataPlaceholder": [
{
"name": "string",
"value": "string"
}
]
},
"metadata": "string"
}
结构来自卡尔达诺区块链CIP25:https://cips.cardano.org/cips/cip25/
根据 API 文档,我可以使用 metadata:""
完全覆盖我在项目创建中设置的项目元数据(问题的第一个代码),或者我可以使用 metadataPlaceholder: [{}]
为我在项目元数据中创建的占位符赋值。
在我看来,我只需要执行此操作即可上传新图像和元数据:
{
"assetName": "Testing1",
"previewImageNft": {
"mimetype": "image/png",
"fileFromIPFS": "QmUp9ZnFbHegzdwtg8ToXJK7kjrJrkZcKuCuXGAREeXNDr",
"metadataPlaceholder": [
{
"place_holder1": "The info I need goes here",
"place_holder2": "The info I need goes here",
"place_holder3": "The info I need goes here",
"place_holder4": "The info I need goes here"
}
]
}
}
问题是,当我 post 上面的代码(可以使用他们的 API 文档“试用”系统完成)时,我能够看到上传的新图像在仪表板上,但元数据根本没有改变:
应该接收我 POST returns 作为空白字符串的数据的占位符 ""
.
这是我的 POST 的样子:
curl -X 'POST' \
'https://api.nft-maker.io/UploadNft/****/****' \
-H 'accept: text/plain' \
-H 'Content-Type: application/json' \
-d '{
"assetName": "Testing01",
"previewImageNft": {
"mimetype": "image/png",
"fileFromIPFS": "QmUp9ZnFbHegzdwtg8ToXJK7kjrJrkZcKuCuXGAREeXNDr",
"metadataPlaceholder": [
{
"place_holder1": "The info I need goes here",
"place_holder2": "The info I need goes here",
"place_holder3": "The info I need goes here",
"place_holder4": "The info I need goes here"
}
]
}
}'
这是我在 POST:
之后得到的响应主体
{
"nftId": 614865,
"ipfsHashMainnft": "QmUp9ZnFbHegzdwtg8ToXJK7kjrJrkZcKuCuXGAREeXNDr",
"ipfsHashSubfiles": [],
"metadata": "{\r\n \"721\": {\r\n \"<policy_id>"\": {\r\n \"Testing01\": {\r\n \"one\": \"\",\r\n \"two\": \"\",\r\n \"three\": \"\",\r\n \"four\": \"\",\r\n \"five\": \"\",\r\n \"six\": \"\",\r\n \"seven\": \"\",\r\n \"eight\": \"\",\r\n \"nine\": \"\",\r\n \"files\": [\r\n {\r\n \"name\": \"Testing01\",\r\n \"mediaType\": \"image/png\",\r\n \"src\": \"ipfs://QmUp9ZnFbHegzdwtg8ToXJK7kjrJrkZcKuCuXGAREeXNDr\"\r\n }\r\n ]\r\n }\r\n }\r\n }\r\n}"
}
我可以选择使用他们的仪表板手动覆盖整个图像元数据:
或者,我也可以手动替换我的占位符:
手动替换数据后,我可以在仪表板上看到正确的元数据:
如果我为该图像使用他们的 GetNftDetails API 端点,我会得到:
{
"id": 614865,
"ipfshash": "QmUp9ZnFbHegzdwtg8ToXJK7kjrJrkZcKuCuXGAREeXNDr",
"state": "free",
"name": "Testing01",
"minted": false,
"receiveraddress": null,
"selldate": null,
"soldby": null,
"reserveduntil": null,
"policyid": null,
"assetid": null,
"assetname": null,
"fingerprint": null,
"initialminttxhash": null,
"title": null,
"series": null,
"ipfsGatewayAddress": "https://gw2.easy-ipfs.com/ipfs/QmUp9ZnFbHegzdwtg8ToXJK7kjrJrkZcKuCuXGAREeXNDr",
"metadata": "{\r\n \"721\": {\r\n \"<policy_id>\": {\r\n \"Testing01\": {\r\n \"one\": \"Manually Editing the FIRST\",\r\n \"two\": \"Manually Editing the SECOND\",\r\n \"three\": \"Manually Editing the THIRD\",\r\n \"files\": [\r\n {\r\n \"name\": \"Testing01\",\r\n \"mediaType\": \"image/png\",\r\n \"src\": \"ipfs://QmUp9ZnFbHegzdwtg8ToXJK7kjrJrkZcKuCuXGAREeXNDr\"\r\n }\r\n ]\r\n }\r\n }\r\n }\r\n}"
}
我也试过 POST 使用 "metadata": ""
而不是 "metadataPlaceholder":[{}]
,像这样:
{
"assetName": "Testing01",
"previewImageNft": {
"mimetype": "image/png",
"fileFromIPFS": "QmUp9ZnFbHegzdwtg8ToXJK7kjrJrkZcKuCuXGAREeXNDr"
},
"metadata": "{\r\n \"721\": {\r\n \"<policy_id>\": {\r\n \"Testing01\": {\r\n \"one\": \"FIRST\",\r\n \"two\": \"SECOND\",\r\n \"three\": \"THIRD\",\r\n \"files\": [\r\n {\r\n \"name\": \"Testing01\",\r\n \"mediaType\": \"image/png\",\r\n \"src\": \"ipfs://QmUp9ZnFbHegzdwtg8ToXJK7kjrJrkZcKuCuXGAREeXNDr\"\r\n }\r\n ]\r\n }\r\n }\r\n }\r\n}"
}
它 POST 很好,我可以在那里看到图像,但我有同样的问题,我有占位符的空白 ""
元数据。
目前有一些 NFT 项目正在使用这个平台,他们生成这个元数据似乎没有问题...
说了那么多……我有那么傻吗?我做错了什么我看不到?
你们知道我应该如何在 API UploadNft 端点构建这个元数据,这样我就可以 POST 它没有问题吗?
*我已经给他们发了邮件,但是还没有得到回复。
您必须 post 将占位符作为包含字段“名称”和“值”的数组。
所以它应该是这样的:
"metadataPlaceholder": [
{
"name": "color",
"value": "red"
},
{
"name": "size",
"value": "big"
},
{
"name": "placerholder3",
"value": "value3"
}
]
你好吗?预先感谢您的帮助!
有一个用于 NFT 铸币的平台 (https://pro.nft-maker.io/),它允许我为我稍后要使用它们 API 上传的文件设置元数据结构。我的看起来像这样:
{
"721": {
"<policy_id>": {
"<asset_name>": {
"one": "<place_holder1>",
"two": "<place_holder2>",
"three": "<place_holder3>",
"four": "<place_holder4>",
"five": "<place_holder5>",
"six": "<place_holder6>",
"seven": "<place_holder7>",
"eight": "<place_holder8>",
"nine": "<place_holder9>",
"files": [
{
"name": "<asset_name>",
"mediaType": "<mime_type>",
"src": "<ipfs_link>"
}
]
}
}
}
}
<brackets>
中的是我的占位符。当我上传图片时,我需要在 JSON 中使用 POST 请求将数据传递给他们。
这是他们的 API 文档: https://api.nft-maker.io/swagger/index.html
我需要使用 UploadNft 端点 POST 并上传我的图像及其元数据。这是文档中的示例代码:
{
"assetName": "string",
"previewImageNft": {
"mimetype": "string",
"fileFromIPFS": "string",
"metadataPlaceholder": [
{
"name": "string",
"value": "string"
}
]
},
"metadata": "string"
}
结构来自卡尔达诺区块链CIP25:https://cips.cardano.org/cips/cip25/
根据 API 文档,我可以使用 metadata:""
完全覆盖我在项目创建中设置的项目元数据(问题的第一个代码),或者我可以使用 metadataPlaceholder: [{}]
为我在项目元数据中创建的占位符赋值。
在我看来,我只需要执行此操作即可上传新图像和元数据:
{
"assetName": "Testing1",
"previewImageNft": {
"mimetype": "image/png",
"fileFromIPFS": "QmUp9ZnFbHegzdwtg8ToXJK7kjrJrkZcKuCuXGAREeXNDr",
"metadataPlaceholder": [
{
"place_holder1": "The info I need goes here",
"place_holder2": "The info I need goes here",
"place_holder3": "The info I need goes here",
"place_holder4": "The info I need goes here"
}
]
}
}
问题是,当我 post 上面的代码(可以使用他们的 API 文档“试用”系统完成)时,我能够看到上传的新图像在仪表板上,但元数据根本没有改变:
应该接收我 POST returns 作为空白字符串的数据的占位符 ""
.
这是我的 POST 的样子:
curl -X 'POST' \
'https://api.nft-maker.io/UploadNft/****/****' \
-H 'accept: text/plain' \
-H 'Content-Type: application/json' \
-d '{
"assetName": "Testing01",
"previewImageNft": {
"mimetype": "image/png",
"fileFromIPFS": "QmUp9ZnFbHegzdwtg8ToXJK7kjrJrkZcKuCuXGAREeXNDr",
"metadataPlaceholder": [
{
"place_holder1": "The info I need goes here",
"place_holder2": "The info I need goes here",
"place_holder3": "The info I need goes here",
"place_holder4": "The info I need goes here"
}
]
}
}'
这是我在 POST:
之后得到的响应主体{
"nftId": 614865,
"ipfsHashMainnft": "QmUp9ZnFbHegzdwtg8ToXJK7kjrJrkZcKuCuXGAREeXNDr",
"ipfsHashSubfiles": [],
"metadata": "{\r\n \"721\": {\r\n \"<policy_id>"\": {\r\n \"Testing01\": {\r\n \"one\": \"\",\r\n \"two\": \"\",\r\n \"three\": \"\",\r\n \"four\": \"\",\r\n \"five\": \"\",\r\n \"six\": \"\",\r\n \"seven\": \"\",\r\n \"eight\": \"\",\r\n \"nine\": \"\",\r\n \"files\": [\r\n {\r\n \"name\": \"Testing01\",\r\n \"mediaType\": \"image/png\",\r\n \"src\": \"ipfs://QmUp9ZnFbHegzdwtg8ToXJK7kjrJrkZcKuCuXGAREeXNDr\"\r\n }\r\n ]\r\n }\r\n }\r\n }\r\n}"
}
我可以选择使用他们的仪表板手动覆盖整个图像元数据:
或者,我也可以手动替换我的占位符:
手动替换数据后,我可以在仪表板上看到正确的元数据:
如果我为该图像使用他们的 GetNftDetails API 端点,我会得到:
{
"id": 614865,
"ipfshash": "QmUp9ZnFbHegzdwtg8ToXJK7kjrJrkZcKuCuXGAREeXNDr",
"state": "free",
"name": "Testing01",
"minted": false,
"receiveraddress": null,
"selldate": null,
"soldby": null,
"reserveduntil": null,
"policyid": null,
"assetid": null,
"assetname": null,
"fingerprint": null,
"initialminttxhash": null,
"title": null,
"series": null,
"ipfsGatewayAddress": "https://gw2.easy-ipfs.com/ipfs/QmUp9ZnFbHegzdwtg8ToXJK7kjrJrkZcKuCuXGAREeXNDr",
"metadata": "{\r\n \"721\": {\r\n \"<policy_id>\": {\r\n \"Testing01\": {\r\n \"one\": \"Manually Editing the FIRST\",\r\n \"two\": \"Manually Editing the SECOND\",\r\n \"three\": \"Manually Editing the THIRD\",\r\n \"files\": [\r\n {\r\n \"name\": \"Testing01\",\r\n \"mediaType\": \"image/png\",\r\n \"src\": \"ipfs://QmUp9ZnFbHegzdwtg8ToXJK7kjrJrkZcKuCuXGAREeXNDr\"\r\n }\r\n ]\r\n }\r\n }\r\n }\r\n}"
}
我也试过 POST 使用 "metadata": ""
而不是 "metadataPlaceholder":[{}]
,像这样:
{
"assetName": "Testing01",
"previewImageNft": {
"mimetype": "image/png",
"fileFromIPFS": "QmUp9ZnFbHegzdwtg8ToXJK7kjrJrkZcKuCuXGAREeXNDr"
},
"metadata": "{\r\n \"721\": {\r\n \"<policy_id>\": {\r\n \"Testing01\": {\r\n \"one\": \"FIRST\",\r\n \"two\": \"SECOND\",\r\n \"three\": \"THIRD\",\r\n \"files\": [\r\n {\r\n \"name\": \"Testing01\",\r\n \"mediaType\": \"image/png\",\r\n \"src\": \"ipfs://QmUp9ZnFbHegzdwtg8ToXJK7kjrJrkZcKuCuXGAREeXNDr\"\r\n }\r\n ]\r\n }\r\n }\r\n }\r\n}"
}
它 POST 很好,我可以在那里看到图像,但我有同样的问题,我有占位符的空白 ""
元数据。
目前有一些 NFT 项目正在使用这个平台,他们生成这个元数据似乎没有问题...
说了那么多……我有那么傻吗?我做错了什么我看不到?
你们知道我应该如何在 API UploadNft 端点构建这个元数据,这样我就可以 POST 它没有问题吗?
*我已经给他们发了邮件,但是还没有得到回复。
您必须 post 将占位符作为包含字段“名称”和“值”的数组。
所以它应该是这样的:
"metadataPlaceholder": [
{
"name": "color",
"value": "red"
},
{
"name": "size",
"value": "big"
},
{
"name": "placerholder3",
"value": "value3"
}
]