angus
(Angus McLeod)
7
他们将存储与充当 ActivityPub actor 的标签相关联的 ActivityPub 数据。我不需要将任何部分序列化到 discourse/discourse 的客户端中。用户不会在 discourse/discourse 的任何常规客户端部分看到这些数据。数据将与其它数据一起序列化到管理员客户端,但这由插件在专用的插件管理员路由中管理。正如您所说,在现有的 discourse/discourse 标签路由(或站点序列化器)中进行序列化会很棘手,原因有很多,而且我也不想尝试,这就是为什么我没有添加预加载或可编辑的 API 方法。
除了拥有稳定的 API 可供使用之外,它们在 ActivityPub 插件中更受青睐的原因是,该插件将 ActivityPub 活动存储在一组单独的数据模型中,即 discourse_activity_pub_* 表,然后通过定义的插件 API 和核心模型的自定义字段与 discourse/discourse 集成。这里存在一些故意的冗余,以确保 Discourse 和 ActivityPub 数据之间有适当的关注点分离。由于 Discourse 和 ActivityPub 具有一系列相互关联但不同的概念和数据模型,因此在处理一个大型且复杂的插件时,保持 ActivityPub 数据和 discourse/discourse 数据之间的清晰区别是必要的,以保持一定的清晰度(和理智)。使用自定义字段作为集成点在保持这种分离的清洁和稳定方面非常有用。
插件的自述文件中对此有简要说明。
2 个赞