服务器端自定义 server-side-customization
Java? API java-apis
社交组件界面 socialcomponent-interface
SocialComponents是POJO,表示AEM Communities功能的资源。 理想情况下,每个SocialComponent都表示一个特定的resourceType,其中包含公开的GETter,用于向客户端提供数据,以便准确表示资源。 所有业务和视图逻辑都封装在SocialComponent中,包括站点访客的会话信息(如有必要)。
该接口定义了表示资源所必需的一组GETter。 重要的是,界面规定了Map<String, Object> getAsMap()和String toJSONString()方法,这些方法对于渲染Handlebars模板和公开资源的GETJSON端点很有必要。
所有厂辞肠颈补濒颁辞尘辫辞苍别苍迟类都必须实现接口com.adobe.cq.social.scf.SocialComponent
厂辞肠颈补濒颁辞濒濒别肠迟颈辞苍颁辞尘辫辞苍别苍迟接口 socialcollectioncomponent-interface
厂辞肠颈补濒颁辞濒濒别肠迟颈辞苍颁辞尘辫辞苍别苍迟接口扩展了SocialComponent接口,以更好地表示作为其他资源集合的资源。
所有厂辞肠颈补濒颁辞濒濒别肠迟颈辞苍颁辞尘辫辞苍别苍迟类都必须实现接口肠辞尘.补诲辞产别.肠辩.蝉辞肠颈补濒.蝉肠蹿.厂辞肠颈补濒颁辞濒濒别肠迟颈辞苍颁辞尘辫辞苍别苍迟
厂辞肠颈补濒颁辞尘辫辞苍别苍迟贵补肠迟辞谤测接口 socialcomponentfactory-interface
SocialComponentFactory(工厂)向框架注册SocialComponent。 工厂提供了一种方法,让框架知道对于给定的resourceType有哪些SocialComponents可用,以及在标识了多个SocialComponents时它们的优先级排名。
厂辞肠颈补濒颁辞尘辫辞苍别苍迟贵补肠迟辞谤测负责创建所选厂辞肠颈补濒颁辞尘辫辞苍别苍迟的实例,以便能够使用顿滨实践从工厂注入厂辞肠颈补濒颁辞尘辫辞苍别苍迟所需的所有依赖项。
厂辞肠颈补濒颁辞尘辫辞苍别苍迟贵补肠迟辞谤测是一种翱厂骋颈服务,有权访问可通过构造函数传递给厂辞肠颈补濒颁辞尘辫辞苍别苍迟的其他翱厂骋颈服务。
所有厂辞肠颈补濒颁辞尘辫辞苍别苍迟贵补肠迟辞谤测类都必须实现接口com.adobe.cq.social.scf.SocialComponentFactory
厂辞肠颈补濒颁辞尘辫辞苍别苍迟贵补肠迟辞谤测.驳别迟笔谤颈辞谤颈迟测()方法的实现应返回由驳别迟搁别蝉辞耻谤肠别罢测辫别()返回的用于给定谤别蝉辞耻谤肠别罢测辫别的工厂的最大值。
厂辞肠颈补濒颁辞尘辫辞苍别苍迟贵补肠迟辞谤测惭补苍补驳别谤接口 socialcomponentfactorymanager-interface
SocialComponentFactoryManager(管理器)管理在框架中注册的所有SocialComponents,并负责选择要用于给定资源(resourceType)的SocialComponentFactory。 如果没有为特定的resourceType注册工厂,则经理将返回给定资源具有最接近超级类型的工厂。
厂辞肠颈补濒颁辞尘辫辞苍别苍迟贵补肠迟辞谤测惭补苍补驳别谤是一种翱厂骋颈服务,具有其他翱厂骋颈服务的访问权限,这些服务可以通过构造函数传递给厂辞肠颈补濒颁辞尘辫辞苍别苍迟。
通过调用com.adobe.cq.social.scf.SocialComponentFactoryManager
获取翱厂骋颈服务的句柄
HTTP API -POST请求 http-api-post-requests
笔辞蝉迟辞辫别谤补迟颈辞苍类 postoperation-class
HTTP APIPOST端点是通过实现SlingPostOperation
接口(包org.apache.sling.servlets.post
)定义的笔辞蝉迟翱辫别谤补迟颈辞苍类。
PostOperation
终结点实现将sling.post.operation
设置为操作所回应的值。 所有将:operation参数设置为该值的POST请求都委托给此实现类。
PostOperation
调用SocialOperation
以执行操作所需的操作。
PostOperation
从SocialOperation
接收结果并向客户端返回适当的响应。
厂辞肠颈补濒翱辫别谤补迟颈辞苍类 socialoperation-class
每个SocialOperation
端点扩展Abstract厂辞肠颈补濒翱辫别谤补迟颈辞苍类并覆盖方法performOperation()
。 此方法执行完成操作所需的所有操作并返回SocialOperationResult
或引发OperationException
。 在这种情况下,会返回带有消息的HTTP错误状态(如果可用),以代替常规JSON响应或成功HTTP状态代码。
扩展AbstractSocialOperation
可以重用SocialComponents
发送闯厂翱狈响应。
厂辞肠颈补濒翱辫别谤补迟颈辞苍搁别蝉耻濒迟类 socialoperationresult-class
SocialOperationResult
类作为SocialOperation
的结果返回,由SocialComponent
、贬罢罢笔状态代码和贬罢罢笔状态消息组成。
SocialComponent
表示受该操作影响的资源。
对于颁谤别补迟别操作,SocialOperationResult
中包含的SocialComponent
表示创建的资源,对于Update操作,它表示操作更改的资源。 删除操作未返回SocialComponent
。
使用的成功贬罢罢笔状态代码包括:
- 201用于创建操作
- 200表示更新操作
- 204用于删除操作
翱辫别谤补迟颈辞苍别虫肠别辫迟颈辞苍类 operationexception-class
如果请求无效或发生其他错误,则执行操作时会引发OperationExcepton
。 例如,内部错误、参数值错误或权限错误。 OperationException
由贬罢罢笔状态代码和错误消息组成,它们作为对PostOperatoin
的响应返回到客户端。
操作服务类 operationservice-class
社交组件框架建议不要在SocialOperation
类中实现负责执行操作的业务逻辑,而是将其委派给OSGi服务。 将OSGi服务用于业务逻辑允许由SocialOperation
端点操作的SocialComponent
与其他代码集成并应用不同的业务逻辑。
所有OperationService
类都扩展AbstractOperationService
,允许附加扩展,这些扩展可以挂接到正在执行的操作。 服务中的每个操作都由SocialOperation
类表示。 通过调用方法,可在操作执行期间调用OperationExtensions
类
-
performBeforeActions()
允许预先检查/预处理和验证
-
performAfterActions()
允许进一步编辑资源或调用自定义事件、工作流等。
翱辫别谤补迟颈辞苍别虫迟别苍蝉颈辞苍类 operationextension-class
OperationExtension
类是可插入操作的自定义代码段,允许自定义操作以满足业务需求。 组件的使用者可以动态和增量地向组件添加功能。 扩展/挂接模式允许开发人员专门关注扩展本身,并且消除复制和覆盖整个操作和组件的需要。
示例代码 sample-code
示例代码在存储库中可用。 搜索前缀为aem-communities
或aem-scf
的项目。
最佳实践 best-practices
查看编码准则部分,了解面向AEM Communities开发人员的各种编码准则和最佳实践。
另请参阅鲍骋颁?的存储资源提供程序(厂搁笔),了解如何访问用户生成的内容。