グループメンバーの追加とオーナーの追加:データ形式が異なります

API を使用してグループにメンバーやオーナーを追加する際、必要なデータ形式が異なるようです。これは意図的なものかもしれませんが、その理由を知りたいです(これは pydiscourse、つまり Discourse API と対話するための Python 向け最高のライブラリを動作不能にしています)。

グループにメンバーを追加する場合:

curl -X PUT "https://{mydomain}/admin/groups/{group_id}/members.json" \
    -d 'usernames={my-username}' \
    -H "Api-Key: {my-api-key}" \
    -H "Api-Username: {my-api-username}"

グループにオーナーを追加する場合:

curl -X PUT "https://{mydomain}/admin/groups/{group_id}/owners.json" \
    -d 'group[usernames]={my-username}' \
    -H "Api-Key: {my-api-key}" \
    -H "Api-Username: {my-api-username}"

オーナーエンドポイントにおける username パラメータのキーが、単に usernames ではなく group[usernames] と記述する必要がある理由が気になります。

私が考えられる唯一の理由は、実際には 2 つの異なるコントローラーが使用されていることです。

メンバー追加のエンドポイントは groups コントローラーにマッピングされています。

PUT /admin/groups/:id/members(.:format) groups#add_members 

一方、オーナー追加のエンドポイントは admin/groups コントローラーにマッピングされています。

PUT /admin/groups/:id/owners(.:format) admin/groups#add_owners

このエンドポイントを更新する可能性は低いです。すでに多くの統合がこのエンドポイントをそのまま使用しているためです。最善の策は、pydiscourse リポジトリで issue を開くことです。pydiscourse 内で解決されるまで、Python アプリ内で add_group_owner の修正をモンキーパッチすることもできます。

「いいね!」 1