API(Application Programming Interface)は、ソフトウェア同士がやり取りをするためのルールや仕組みのことです。これを利用することで、異なるプログラムが簡単にデータの送受信を行えます。今回は「RhinoCompute」と「React」を使った具体例で、APIをわかりやすく解説します!
APIの役割とは?
APIは、プログラム間の「橋渡し役」です。例えば、以下のようなやり取りが行われます:
- フロントエンド(React):ユーザーが見て操作する部分(ボタンやスライダー)。
- バックエンド(RhinoCompute):3Dモデルを作る処理や計算を担当。
- API:ReactとRhinoComputeの間でデータをやり取りする窓口。
実際の流れを考えてみる
- ユーザー操作
Reactで作ったウェブページで、スライダーを動かして「箱の高さ」を設定し、「生成」ボタンを押します。 - APIを通じたリクエスト
Reactが「高さ50mmの箱を作りたい」というリクエストをRhinoComputeに送ります。 - 計算の実行
RhinoComputeがリクエストを受け取り、3Dモデルを生成します。 - レスポンスを返す
生成された3Dモデルのデータ(例:GLB形式や3DM形式)がRhinoComputeからReactに送られます。 - 結果の表示
Reactがレスポンスを受け取り、ブラウザに3Dモデルを表示します。
APIを使うときの重要な要素
RhinoComputeとReactの連携を例に、APIの要素を詳しく見てみましょう。
- エンドポイント
APIを呼び出すためのURLです。RhinoComputeでは、たとえば次のようなURLを使います:http://localhost:6500/grasshopper
このURLにリクエストを送ると、Grasshopperを使った計算が実行されます。 - HTTPメソッド
APIが受け付けるリクエストの種類です。主なものは:GET:データを取得する。POST:データを送信して処理を行う(RhinoComputeではこれが主)。
- リクエストボディ
ReactからRhinoComputeに送るデータです。たとえば、「高さ50mmの箱を作って」という情報をJSON形式で送ります:{ "height": 50 } - レスポンス
RhinoComputeがReactに返すデータです。GLB形式や3DM形式で生成したモデルデータを送ります。
RhinoComputeとReactのAPI実装例
ReactでAPIを呼び出すコード
Reactで「生成」ボタンを押したときにRhinoComputeのAPIを呼び出します。
const generateModel = async (height) => {
const response = await fetch('http://localhost:6500/grasshopper', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({ height }),
});
const data = await response.json();
console.log('生成されたモデルデータ:', data);
};
PythonでRhinoComputeの設定
Flaskを使ってRhinoComputeにデータを送る場合:
from flask import Flask, request, jsonify
import compute_rhino3d.Util
import compute_rhino3d.Grasshopper as gh
app = Flask(__name__)
@app.route('/generate', methods=['POST'])
def generate():
data = request.json
height = data.get('height')
# Grasshopper用のデータを作成
input_data = [{"name": "Height", "value": height}]
# RhinoComputeでGrasshopperを実行
output = gh.evaluate_definition('path/to/your.gh', input_data)
return jsonify(output)
if __name__ == '__main__':
app.run(port=5000)
RhinoComputeとReactをAPIでつなぐメリット
- 複雑な処理を簡単に分担できる
- RhinoComputeが3Dモデルの生成を担当。
- Reactがユーザーインターフェース(UI)を担当。
- 再利用性が高い
RhinoComputeのAPIは、他のプロジェクトでも利用可能。 - リアルタイム処理が可能
Reactから操作した結果をすぐにブラウザで確認できる。
実際のツールの例
| 役割 | ツール | 説明 |
|---|---|---|
| フロントエンド | React | ユーザーが操作する部分(ボタンやスライダー) |
| バックエンド | Flask | RhinoComputeへのリクエストを管理 |
| 3D計算 | RhinoCompute | Grasshopperを使って3Dモデルを生成 |
| データ形式 | GLB/3DM | 生成されたモデルを保存する形式 |
まとめ
APIを使うと、ReactとRhinoComputeのような異なるプログラムがスムーズに連携できます。RhinoComputeは3Dモデルの生成に特化し、Reactはその結果をブラウザに表示する役割を果たします。この連携を通じて、効率的なアプリケーション開発が可能になります。
APIの基本を理解したら、ぜひRhinoComputeを使ったプロジェクトに挑戦してみてください!