kaiheila/api-docs

关于规范对象的数据结构、并设计相应的精简版

Opened this issue · 0 comments

功能模块

我期望对Message, User, Role, Channel, Guild等对象进行精简字段的重新设计。

你希望的功能描述?

  • 实现Message, User, Role, Channel, Guild等对象的精简字段版本:

    • 这种设计可用于嵌套在其他结构内,如消息的引用中。例如:
      Message{
        精简的User,
        精简的Message即Quote),
        精简的Channel{
          精简的Guild,
          ...
        },
        ...
      };
    • 用于事件消息以减少推送的数据量(例如,某人连续发送多条消息,其中的作者信息部分仅需获取id和name,其他如头像链接等字段使用频率较低)。
    • 在面向对象的SDK中更好地进行抽象,用户在构造时只需考虑精简版,然后使用update()方法在需要时补全剩余字段(甚至可以在查询时添加参数,仅返回剩余字段)。
  • 规范化Message对象结构,目前QuoteMessage、事件推送的Message以及message/viewMessage结构存在明显差异,这在SDK层面的抽象中带来了挑战。

功能的主要使用场景?

我正在尝试为khl.py实现message/view接口,目前正试图抽象出一个通用的Message类。由于事件和HTTP接口的Message结构完全不同,而且相互补充对方的字段子集,因此很难通过继承关系进行合理的抽象。

其它信息

可能的实现方案:

  • 由官方定义各个对象的字段。
  • 参照现有机器人,筛选出高频字段,或通过问卷投票的方式选出高频字段。
  • 在v4版本中实现(考虑到兼容性的因素)。