メインコンテンツへスキップ

機能とは?

機能は、実行ノードが実行できるアクションです。各機能は以下を定義します:
  • アクション内容 (名前と説明)
  • 入力パラメータ (JSON Schema)
  • 出力データ (JSON Schema)
  • 発火させる可能性のあるイベント

機能構造

必須フィールド

オプションフィールド


JSON Schema

機能はパラメータと戻り値を定義するために JSON Schema Draft 2020-12 を使用します。

JSON Schema を使う理由

  • ✅ 自己文書化 - データ構造を記述
  • ✅ 検証 - Qaptly は送信前にパラメータを検証
  • ✅ 型安全性 - エラーを早期に検出
  • ✅ AI に優しい - AI があなたの API を理解できる

基本的な型


機能例

1. シンプルなアクション (パラメータなし)

入力パラメータなしで現在の WiFi ステータスを取得:

2. 必須パラメータ付きアクション

必須 SSID とオプションパスワードで WiFi に接続:

3. 配列パラメータ付きアクション

複数の GPIO ピンを同時に制御:

4. 列挙型選択肢付きアクション

事前定義された選択肢から LED の色を設定:

JSON Schema 機能

検証制約

デフォルト値

列挙型

ネストされたオブジェクト


イベント宣言

機能が発火させる可能性のあるイベントを宣言:
ベストプラクティス: このアクションに直接関連するイベントのみをリストに含めてください。実行ノードが出力できるすべての可能なイベントをリストに含めないでください。

アクション命名規則

形式

標準ドメイン

カスタムドメイン

ベンダー固有のアクションの場合は以下を使用:
例:
  • acme.motor.rotate
  • acme.motor.stop
  • acme.motor.set_speed

説明のベストプラクティス

適切な説明は AI が実行ノードを理解するのに役立ちます:

❌ 不十分な説明

✅ 良い説明

ガイドライン

  1. 具体的に - 正確に何をするのか?
  2. 重要なデータを言及 - どのような情報が返されるのか?
  3. 単位を含める - dBm、MHz、秒など
  4. 副作用を記載 - 状態が変わるのか?
  5. AI のために記述 - 将来の AI 統合では説明が使用されます

完全な例

すべての機能を含む包括的な機能:

検証

Qaptly はコマンドを送信する前にパラメータを検証:

動的機能 (高度)

機能が変わる実行ノード (検出されたセンサーなど) の場合、以下が可能:
  1. 初期登録 - 基本的な機能で登録
  2. 検出 - 利用可能なハードウェアを検出
  3. 再接続 - 更新された機能で切断して再接続
機能の更新には切断と再登録が必要です。実行ノード アーキテクチャを適切に計画してください。

機能をテスト

JSON Schema 定義をテスト:

次のステップ

プロトコルリファレンス

メッセージ形式仕様

例

完全に動作する実装

クイックスタート

最初の実行ノードを構築

認証

セキュリティとキー管理