Re2: (質問)自作APIのファイルはどこに配置したらいいか
2025年2月21日 08時47分 [akaz]OSWS牧野さま
ご回答ありがとうございます!
「(1) app/PluginsOption/Api/ 」への配置でよかったのですね(^.^)ホッ
これで安心して先に進めます。
またご指導よろしくお願いいたします(^^)/
以下の目的、注意点などご確認いただき、ご使用ください。
当フォーラムでは、Connect-CMSのトラブルなどの相談も記載いただけますが、作業を肩代わりするものではありません。
作業の依頼は、株式会社オープンソース・ワークショップの調査メニューなどをご検討ください。
https://opensource-workshop.jp/service/rescue
OSWS牧野さま
ご回答ありがとうございます!
「(1) app/PluginsOption/Api/ 」への配置でよかったのですね(^.^)ホッ
これで安心して先に進めます。
またご指導よろしくお願いいたします(^^)/
こんにちは!
こちらのサイトを拝見して SamplesPlugin を作ってみました。そして、外部のサービスからデータを取得する自作APIも作成してみました。
これに関連して、以下について質問させていただきます。ご指導いただけますでしょうか。
【質問】自作APIのファイルはどこに配置したらいいか。
SamplesPlugin のコントローラは、app/PluginsOption/User/ の中に配置しました。自作のコントローラは、このディレクトリ内に配置するのがルールのようです。(スクリーンショットの青枠)
これに対し、自作API(myApi)はどのディレクトリに配置するとよいのでしょうか。以下のいずれかだと思いますが、とりあえず(1)に配置したところ、SamplesPlugin.php から、myApi.php をコールできて、外部サービスからデータも取得できました。
(1) app/PluginsOption/Api/ (スクリーンショット赤枠)
(2) app/PluginsOption/User/
(3) app/PluginsOption/Api/User/
(デフォルトでは Userディレクトリが無いので自分で作る)
(4) app/Plugins/Api/User/
(デフォルトで Userディレクトリが有る。スクリーンショットオレンジ枠)
不適切なディレクトリに配置すると、Connect-CMSのアップデートがあったときなどに、自作APIが上書きされたり、削除されたり、機能しなくなったりすることを恐れています。最適な配置ディレクトリを教えていただけますと大変ありがたいです!
よろしくお願いいたします。
akaz様
こんにちは!
OSWS牧野です。
API作ったのですね! 凄いです!
私は毎度毎回四苦八苦しております。
今回のご質問の件についてです。
>【質問】自作APIのファイルはどこに配置したらいいか。
私が、Connect-CMSのCoreに入れずにAPIを作った時は
>(1) app/PluginsOption/Api/
この下に、当該APIプラグイン名となるディレクトリを作成して、その下にphpファイルを配置しました。
>app/PluginsOption/Api/プラグイン名/プラグイン名Api.php
といった感じです!
……正解だったかどうかは、実は私はまだ分かっていないのですけれども、ね。
恐る恐る、やりました。
>(4) app/Plugins/Api/User/
こっちだと、coreに入ってしまうのだと記憶しております。
なので、gitpullした時に「マージする?」的なメッセージが出てきたように思います。
なので、「PluginsOption」と書いてある方に入れるのが正解だったと思います。
「XXXOption」って書いてあるディレクトリが、coreに入らない範疇、の、ハズ、です。
もし間違っていたら、誰かConnect-CMS有識者の方々! ツッコミをよろしくお願いします!
以上、引き続きよろしくお願い致します。
OSWS牧野
こんにちは。
永原です。
ちょっと補足。
plugin.ini ファイルも必要(なくても動いたかな)かもです。
以下、Connect-StudyシリーズのDroneStudyを参考にしてみてください。
https://github.com/opensource-workshop/connect-study/tree/main/app/PluginsOption/Api/Dronestudy
以上
OSWS牧野さま
ご回答ありがとうございます!
「(1) app/PluginsOption/Api/ 」への配置でよかったのですね(^.^)ホッ
これで安心して先に進めます。
またご指導よろしくお願いいたします(^^)/
永原さま
ご回答ありがとうございます。
> plugin.ini ファイルも必要(なくても動いたかな)かもです。
app/Plugins/Api/ 配下のAPI だと plugin.ini のあるものと無いものがありますね。
> 以下、Connect-StudyシリーズのDroneStudyを参考にしてみてください。
> https://github.com/opensource-workshop/connect-study/tree/main/app/PluginsOption/Api/Dronestudy
拝見しました。
真似して書いてみます。
こちらの plugin.ini では(Controllerの plugin.ini と違い)、
plugin_name = "DroneStudy"
のように 値を "" で囲むんですね。囲まなくてもいいのかもしれませんが。
いずれにしましても、ありがとうございました!!