Bubbleで引き続き開発を続けていますが、Bubbleは比較的シンプルなWebサービスはサクサク開発できますが、周辺機器との協調制御などでは制約が多いのも事実。
今回は、Pythonで計算した結果をBubbleに引き渡してDBに入れようと思ったら以外と苦労した話です。
最初は、ローカルにAPIサーバーを立ててPythonの計算結果をBubbleからAPIで取得させれば簡単にできると踏んでいたのですが、BubbleはBubbleのコードがあるサーバーからAPIがコールされるので、(BubbleとPythonが共存する)手元のPCにローカルAPIサーバたててもアクセスできないことを理解。
PythonのWebホスティングにサーバー立てればOKですが、今回のアプリケーションでは手元のPCに接続したカードリーダーからの情報をBubbleに格納したのでこれも難しい。
最終的には、BubbleのAPI経由でPythonから情報をBubbleのBackend workflowを利用してDBに直接書き込む方法で実現できました。例えば以下のサイトを参照してください。
BubbleのAPIではAPI connectorを使って外部のAPIにアクセスしてデータを取ってくる用途では使っていましたが、外部からBubbleにワークフローに直接アクセスするのは初めて使ったのでとても参考になりました。よく考えてみればクライアントのPCからデータをアップロードしたいときにInput系のエレメント以外の方法を使いたいときは必須ですね。