Developers API を使ってみる (2) 使えそうなAPIを叩いてみる

Developers API を使ってみる (2) 使えそうなAPIを叩いてみる

前回記事 https://media.dmm-make.com/item/923/ にて、とりあえずアプリ登録を行ないまして、「さぁ、いろいろ書いていこう!」と思ったのですが、APIの説明ページが大幅にリニューアルされ、リファレンス情報がだいぶ増えてしまい(?)ました。

http://make.dmm.com/developer/

このままではこの連載の存在自体が危ぶまれてしまうので、大慌てでAPIを叩いてみたいと思います。

価格計算API

http://make.dmm.com/developer/creator/reference/#04_01

こいつは便利です。
現在DMM.make 3Dプリントで取り扱われている素材に対する、価格の一覧を取得することが出来ます。

面倒なので curl コマンドで叩きましょう。

$ curl -d applicationId=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -d volume=10000 https://api.make.dmm.com/prices/v1
{"prices":[{"materialId":1,"materialName":"石膏フルカラー","materialPrice":832},{"materialId":2113,"materialName":"ゴールド","materialPrice":806390},{"materialId":2,"materialName":"アクリル樹脂","materialPrice":3926},{"materialId":3,"materialName":"アクリル樹脂 レッド","materialPrice":4208},{"materialId":4,"materialName":"アクリル樹脂 ピンク","materialPrice":4208},{"materialId":5,"materialName":"アクリル樹脂 ブルー","materialPrice":4208},{"materialId":6,"materialName":"アクリル樹脂 パープル","materialPrice":4208},{"materialId":7,"materialName":"アクリル樹脂 ブラック","materialPrice":4208},{"materialId":48,"materialName":"アクリル樹脂高精細 透明","materialPrice":4926},{"materialId":8,"materialName":"ナイロン(ポリアミド)","materialPrice":1354},{"materialId":9,"materialName":"ナイロン(ポリアミド) レッド","materialPrice":1399},{"materialId":10,"materialName":"ナイロン(ポリアミド) ピンク","materialPrice":1399},{"materialId":11,"materialName":"ナイロン(ポリアミド) ブルー","materialPrice":1399},{"materialId":12,"materialName":"ナイロン(ポリアミド) パープル","materialPrice":1399},{"materialId":13,"materialName":"ナイロン(ポリアミド) ブラック","materialPrice":1399},{"materialId":14,"materialName":"シルバー","materialPrice":22206},{"materialId":15,"materialName":"チタン","materialPrice":8717},{"materialId":18,"materialName":"ABSライク","materialPrice":4135},{"materialId":19,"materialName":"ゴムライク","materialPrice":4390},{"materialId":20,"materialName":"ステンレス","materialPrice":11980}],"resultCode":200,"resultMessage":"OK"}

このように、一覧で取得できました。
アプリ連携を前提としなくても、モデリング中のデータなどで、「これを出力したらいくらくらいになるかな・・・?」なんて気になった時に叩いてみるといいかもしれません。

ちなみに、体積からではなくモデルデータから価格を取得するには実際にアップロードしてみるしかないので、次に紹介します。

モデル登録API

http://make.dmm.com/developer/creator/reference/#03_03

こちらは
https://make.dmm.com/mypage/upload/
このページでファイルアップロードを行なうのに相当するAPIですね。

システム連携する場合など、画面から一つ一つアップロードしていくわけにもいきませんので、こちらのAPIでガシガシ上げていくとよいと思います。

なお、ファイルアップロードですので、ファイル送信オプション -F を付けることを忘れないようにしてください。

$ curl -F applicationId=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -F model=@test.stl https://api.make.dmm.com/models/upload/v1
{"modelId":xxxx,"resultCode":200,"resultMessage":"OK"}

これでOKです。

「あれ、OKしか返ってきてないから価格が分からないよ!」

という突っ込まれる方がいらっしゃるかと思いますが、実は、このあと、通常のWebページからアップロードした際と同様に、データのチェックや、価格の登録処理に若干時間がかかります(数分ですけど)

そのため、出力できる/できないのチェックや価格の取得は非同期で行なうことになります。

その1 通知を受け取る

前回アプリ登録を行なった際、無視した項目「解析結果通知URL」というのがあります。このURLは、モデル登録の結果を受け取るコールバックURLになります。

※ちなみに受け取った後の処理は自分で書く必要があります。

http://make.dmm.com/developer/creator/reference/#03_04

こちらでは受け取れるのがモデルステータスのみですので、
チェックOKかどうかを判定して内容を問い合わせることになりますが、
まぁ、めんどくさくなったらいきなり「その2」でもいいです。

その2 問い合わせる

チェックOKのステータスを受け取ったら(受け取っていなくてもよいですが)、今度はモデル情報を問い合わせます。チェックOKの場合でしたら、実際に出力可能な素材の一覧やその価格などが取得できます。さきほどの価格チェックAPIとの違いは、実際にサイズなども含めて出力可能なリストが取れる点ですね。

モデル情報参照API

http://make.dmm.com/developer/creator/reference/#03_05

こちらを使います。




・・・

ここまで読んでくださった方は、もうだいたい分かっているかと思いますので、もろもろ割愛しますね!



では!!!

参考にしてくれた記事

記事が登録されていません。
この記事を参考にして、新しく記事を投稿しよう!

違反について