はじめに
こちらの記事を作成したのでおまけに。
上記の記事ではPower Appsの画面からコネクタの作成を行いましたが、Visual Studioから作成することもできます。
この記事ではVisual Studioからカスタム コネクタを作成する方法を記載します。
なお、Web APIは作成済みの想定で記載しています。(作成から見たい場合は上記記事か下記公式ドキュメントをご確認ください。)
Visual Studioからカスタム コネクタを作成する
接続サービスとしてPower Platformを追加する
作成したいプロジェクトを開き、ソリューション エクスプローラーにて「Connected Services」で右クリックを行います。
「追加」 > 「Microsoft Power Platform」を選択します。
Power Platfromへの接続情報の作成を行います。
カスタム コネクタを新規作成する場合は、右のプラスアイコンを選択してカスタム コネクタ名を入力します。
パブリック開発トンネルを作成済みの場合は選択し、選択可能なトンネルがない場合は右のプラスアイコンを選択して新規作成します。
「次へ」もしくは「完了」を選択します。
「次へ」を選択すると、追加/変更される情報が表示されるので、問題なければ「完了」を選択します。
作成されるまで待ちます。
作成されると選択したソリューション内にカスタム コネクタが追加されます。
ただ、モデル クラスの追加で追加されたメソッドはうまく読み込めてないですねー。。。
これらはController内の定義が悪いのが原因です。
取り急ぎで簡単なやり方は、「全般」の設定を手動で更新するやり方です。
ただしこれは取り急ぎの一時的な対応です。
正しく対応するのであれば、 TodoItemsController.cs
のルート定義を修正します。
以下のようにルート定義を修正しています。(一部)
- [HttpGet] + [HttpGet(Name = "Gettodoitems")] - [HttpGet("{id}"] + [HttpGet("{id}", Name = "Gettodoitem")]
その後、「Connected Services」で右クリックして「接続済みサービスの管理」を選択します。
そして、「依存関係の編集」を行い先ほど作成したカスタム コネクタの更新を行いましょう。
その結果カスタム コネクタの更新が行われるはずです。
あとはこちらのカスタム コネクタをPower Platformで用いるだけです。
実行する際は忘れずにVisual Studioにてデバッグを行うようにしましょう。
おまけ
折角なので、アプリもコードベースで作成してみます。
Power Platform CLIをインストールしてください。
コマンドベースで対象の環境にアクセスできるようにするために認証情報を作成します。
pac auth create --environment "<環境名>"
<環境名>
には自身の環境名を入力してください。
もし認証情報が複数ある場合は
pac auth list
で現在保持している認証情報を一覧表示した後に
pac auth select --index <index number>
でこれから利用したい認証情報に切り替えてください。
<index number>
には pac auth list
で一覧表示したときに表示されたインデックスの番号を入力します。
続いてカスタム コネクタの一覧を表示させます。
pac connector list
次に以下コマンドで .msapp ファイル(Power Appsのファイル)を作成します。
pac canvas create --connector-id <your connector id> --msapp <your file name.msapp>
<your connector id>
には pac connector list
で一覧表示したときに表示されたコネクタ IDを入力します。
<your file name.msapp>
には任意の .msapp ファイル名を入力します。
作成された .msapp ファイルをPower Appsで開くと以下のようなアプリが確認できます。
ただしコネクタは追加されていないので、自身で追加してあげる必要があります。
また、こちらで作成されたアプリにはなぜか "PUT" と "DELETE" メソッドは含まれていませんでした。
おわりに
このようにVisual Studioをベースにカスタム コネクタを作成することも可能です。
また、アプリもCLIベースで作成することもできます。
それぞれに良さがありますので、まずは取れる選択肢を増やしてもらったうえで、自身がやろうとしていることはどのやり方でやるのかベストか考えてから作成を行えるようになるといいですね。