2019年4月29日月曜日

OctoPrint の API を試しに使ってみました

環境

API サーバー (OctoPrint) 側

  • Raspberry Pi 3 Model B
  • Raspbian GNU/Linux 9.4 (stretch)
  • OctoPrint, version 1.3.9

API クライアント 側

  • Windows 10 Home 64Bit
  • Windows Subsystem for Linux: Ubuntu 18.04.2 LTS

まずは API キー無しでアクセスしてみた

OctoPrint と 3D プリンターの接続情報は今回の環境では以下の URL で取得できるようです。

http://octoprint:5000/api/connection

curl コマンドで API キー無しでこの URL にアクセスすると。。。

$ curl http://octoprint:5000/api/connection
No API key provided

というように、API キーが無いので取得できませんでした。

API キーを確認

ブラウザから OctoPrint の URL http://octoprint:5000/api にアクセスしました。

画面上部のスパナアイコンの Settings をクリックしました。

API タブで API キーを確認しました。今回は C14B4FA3BE854CAAA740A43BEAFD6FB3 でした。

API キーを指定してアクセスしてみた

以下のように curl コマンドで API キーを指定すると以下のように取得できました。 (今回は OctoPrint と 3D プリンターを接 続していないので "state": "Closed" となっていると思われます)

$ curl --header 'X-Api-Key: C14B4FA3BE854CAAA740A43BEAFD6FB3' http://octoprint:5000/api/connection
{
  "current": {
    "baudrate": null,
    "port": null,
    "printerProfile": "_default",
    "state": "Closed"
  },
  "options": {
    "baudratePreference": null,
    "baudrates": [
      250000,
      230400,
      115200,
      57600,
      38400,
      19200,
      9600
    ],
    "portPreference": null,
    "ports": [],
    "printerProfilePreference": "_default",
    "printerProfiles": [
      {
        "id": "_default",
        "name": "Default"
      }
    ]
  }
}

念のため、使用した API キーを無効化しておく

本来 API キーは公開せず秘密にしておくものですが、このブログで公開してしまったので無効にしておきます。

ブラウザで API キーを確認した画面で、更新のアイコンの Generate new API Key をクリックして新しい API キーを生成しました。これで今まで使っていた API キーは使えなくなるようです。

試しに更新前の API キーで API にアクセスしてみたところ。。。

$ curl --header 'X-Api-Key: C14B4FA3BE854CAAA740A43BEAFD6FB3' http://octoprint:5000/api/connecion
Invalid API key

というように期待通り情報を取得できませんでした。

参考

  • http://docs.octoprint.org/en/master/api/

0 件のコメント:

コメントを投稿