Añadir miembros del grupo vs añadir propietarios: el formato de datos es diferente

Al usar la API para agregar miembros y propietarios a un grupo, parece que el formato de datos requerido es diferente. Esto puede ser intencional, pero me gustaría saber por qué (esto está rompiendo pydiscourse, la mejor biblioteca que puedo encontrar para interactuar con la API de Discourse en Python).

Agregar un miembro a un grupo:

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

Agregar un propietario a un grupo:

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

Me pregunto por qué la clave para el parámetro de nombre de usuario en el punto de acceso de propietarios debe escribirse como group[usernames] en lugar de simplemente usernames.

La única razón que puedo dar es que en realidad están utilizando dos controladores diferentes.

El punto final para agregar miembros está mapeado al controlador de grupos:

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

Y el punto final para agregar propietarios está mapeado al controlador de grupos administrativos.

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

Es poco probable que actualicemos este punto final, ya que muchas integraciones ya lo utilizan tal como está. Lo mejor es abrir un problema en el repositorio de pydiscourse. También podrías aplicar un parche de mono para corregir add_group_owner en tu aplicación de Python hasta que se resuelva dentro de pydiscourse.

1 me gusta