概要
「提供機能」のSpec表示 にも記載の通り、PlayMining NFTでNFTを販売する上で、Spec情報を表示することができます。
そのための検討事項や実装方法について記載致します。
Spec表示の検討と実装
Spec表示を行う上で、ユーザーがPlayMining NFTで特定のNFTのページに遷移したタイミングで、コンテンツ側からSpec情報を取得する必要があります。
下記項目を検討/対応し、必要に応じてDEAエンジニアチームに共有/相談してください。
検討に関しては、コンテンツ側の開発スケジュールとの兼ね合いとなりますが、ゲームリリース日またはプリセール日の2週間前までには完成させ、下位環境(STG1,3)にて動作を確認したうえで、本番リリースを行ってください。
- SpecAPIの基本情報の決定
- 表示内容(項目、表示順番)の決定
- SpecAPIのレスポンスの決定
- Bearerトークンの発行
- SpecAPIの開発
- ゲーム内での各アセット、トークンごとのマスタ作成
1. SpecAPIの基本情報の決定
Spec表示利用箇所(アセットSpec、トークンSpec、リストSpec)や接続ホスト情報を確定します。
2. 表示内容(項目、表示順番)の決定
「Specについて」の項目にも画像で示しておりますが、Specを表示する幅は決まっており、その中でどのように見栄えを整えるかを検討する必要があります。
3. SpecAPIのレスポンスの決定
次に、レスポンスを確定します。
レスポンスの仕様に関しては、アセット/トークンSpecAPIレスポンス仕様 を参照ください。
太字や文字色も変更可能ですので、ゲームイメージに合わせて導入をご検討ください。上記資料の麺屋ドラゴンラーメンのレスポンスでは文字色を変える工夫がされていますので、参考にしてください。
4. Bearerトークンの発行
セキュリティ向上のため、各SpecAPIにはBearerトークンを用いた認証を導入してください。
BearerトークンはSpecAPI共通でも構いません。
ただし、環境ごとには変えていただきますようお願いいたします。
5. SpecAPIの開発
SpecAPIは、コンテンツの仕様によって実装の要否が変わります。
アセットSpecは、アセット単位での性能が必要な場合に開発が必要です。PlayMiningのNFTはゲーム内で基本的にゲーム内で利用されるため必須と言えます。
トークンSpecが、アセット単位の項目と同じ、かつ性能値も一定の場合は、アセットSpecAPIを流用すれば良いので、トークンSpecAPIはアセットSpecと同様のレスポンスを返すように開発してください。また、リストSpecを表示しない場合はリストSpecAPIの開発も不要です。
SpecAPIの仕様やレスポンスのJSONデータ構造についてはフォーマットがありますので、以下の情報を参照ください。
共通仕様
各SpecAPIは下記仕様を導入してください。
項目 | 値 |
APIリクエストヘッダー | Content-type application/json
Authorization Bearer [APIKEY] |
APIレスポンス形式 | application/json |
HTTPステータス | ・401 Unauthorized 認証に失敗(APIKEY が間違っている等)
・404 Not Found データが取得できない |
アセットSpecAPI
- 処理概要
リクエストパラメータで指定されたアセットIDのSpec情報を取得する。
- リクエストメソッド
GET
- リクエストパラメータ
パラメータ | 型 | 説明 |
asset_id | string | アセットID |
※アセットIDは、PMP上でアセットに対して一意に振られるID
APIリクエスト例: https://game.example.com/api/spec/asset?asset_id=99999
- レスポンス
- エンドポイントとレスポンスは下記仕様に沿うよう作成してください。
コンテンツごとに有無や表示仕様が異なるかと思うので、必要に応じてどのように表示したいかをご相談ください。
上記レスポンスでPlayMining NFTのSpec表示が可能になります。
トークンSpecAPI
- 処理概要
リクエストパラメータで指定されたトークンIDのSpec情報を取得する。
- リクエストメソッド
GET
- リクエストパラメータ
パラメータ | 型 | 説明 |
token_id | string | トークンID |
※トークンIDはアセットID+シリアルNo(5桁確定。00001~99999)となる。
(例: アセットIDが5304でシリアルNoが94の場合は、530400094)
APIリクエスト例: https://game.example.playmining.com/api/spec/token?token_id=9999900001
- レスポンス
- エンドポイントとレスポンスはアセットSpecAPIのレスポンスと同じ仕様で作成下さい。
コンテンツごとに有無や表示仕様が異なるかと思うので、必要に応じてご相談ください。
上記レスポンスでトークンページのトークンSpec表示が可能になります。
リストSpecAPI
- 処理概要
リクエストパラメータでカンマ区切りで指定された複数のトークンIDのSpec情報を取得する。
- リクエストメソッド
Get
- リクエストパラメータ
パラメータ | 型 | 説明 |
token_ids | string | トークンIDをカンマ区切りで指定 |
APIリクエスト例: https://game.example.playmining.com/api/spec/list?token_ids=9999900001,9999900002,…
- レスポンス
- エンドポイントとレスポンスは下記仕様に沿うよう作成してください。
上記レスポンスでアセットページ下部にあるリストSpec表示が可能になります。