Ajout de membres du groupe vs ajout de propriétaires : le format des données est différent

Lors de l’utilisation de l’API pour ajouter des membres et des propriétaires à un groupe, il semble que le format de données requis soit différent. Cela peut être intentionnel, mais je souhaiterais savoir pourquoi (cela fait échouer pydiscourse, la meilleure bibliothèque que je puisse trouver pour interagir avec l’API Discourse en Python).

Ajout d’un membre à un groupe :

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}"

Ajout d’un propriétaire à un groupe :

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}"

Je me demande pourquoi la clé du paramètre username dans le point de terminaison des propriétaires doit être écrite sous la forme group[usernames] au lieu de simplement usernames ?

La seule raison que je puisse donner est qu’ils utilisent en réalité deux contrôleurs différents.

Le point de terminaison pour ajouter des membres est mappé au contrôleur des groupes :

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

Et le point de terminaison pour ajouter des propriétaires est mappé au contrôleur admin/groups.

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

Il est peu probable que nous mettions à jour ce point de terminaison, car de nombreuses intégrations l’utilisent déjà tel quel. Votre meilleure option est d’ouvrir un problème dans le dépôt pydiscourse. Vous pouvez également appliquer un correctif de type « monkey patch » pour add_group_owner dans votre application Python jusqu’à ce que le problème soit résolu dans pydiscourse.