إضافة أعضاء المجموعة مقابل إضافة مالكيها: تنسيق البيانات مختلف

عند استخدام واجهة برمجة التطبيقات (API) لإضافة أعضاء ومالكين إلى مجموعة، يبدو أن تنسيق البيانات المطلوب مختلف. قد يكون ذلك مقصودًا، لكنني أود معرفة السبب (فهذا يكسر مكتبة pydiscourse، وهي أفضل مكتبة أعثر عليها للتفاعل مع واجهة برمجة تطبيقات Discourse في بايثون).

إضافة عضو إلى مجموعة:

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

أنا فضولي بشأن سبب ضرورة كتابة مفتاح معامل اسم المستخدم في نقطة نهاية المالكين على النحو group[usernames] بدلاً من مجرد usernames؟

السبب الوحيد الذي يمكنني تقديمه هو أنهم يستخدمون في الواقع متحكّمين مختلفين.

نقطة نهاية إضافة الأعضاء مُربوطة بمتحكم المجموعات:

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

أما نقطة نهاية إضافة المالكين فهي مُربوطة بمتحكم المجموعات الإدارية.

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

من غير المرجح أن نقوم بتحديث هذه النقطة النهائية لأن العديد من التكاملات تستخدمها بالفعل كما هي. أفضل خيار لك هو فتح قضية في مستودع pydiscourse. يمكنك أيضًا تطبيق تصحيح مؤقت (monkey patch) للدالة add_group_owner في تطبيق بايثون الخاص بك حتى يتم حل المشكلة داخل pydiscourse.