Personalização do servidor

⇐ Fundamentos de recursos Localização da personalização do cliente
Auxiliares da proteção contra a fraude SCF

APIs Java

Observação

A localização do pacote de APIs de Comunidades está sujeita a alterações ao atualizar de uma versão principal para a próxima.

Interface do SocialComponent

SocialComponents são POJOs que representam um recurso para um recurso do AEM Communities. Idealmente, cada SocialComponent representa um resourceType específico com GETters expostos que fornecem dados ao cliente para que o recurso seja representado com precisão. Toda lógica de negócios e lógica de visualização é encapsulada no SocialComponent, incluindo as informações de sessão do visitante do site, se necessário.

A interface define um conjunto básico de GETters que são necessários para representar um recurso. O importante é que a interface estipula os métodos Map<String, Object> getAsMap() e String toJSONString() necessários para renderizar os modelos Handlebars e expor os endpoints JSON do GET aos recursos.

Todas as classes SocialComponent devem implementar a interface com.adobe.cq.social.scf.SocialComponent

Interface SocialCollectionComponent

A interface SocialCollectionComponent estende a interface SocialComponent para representar melhor os recursos que são coleções de outros recursos.

Todas as classes SocialCollectionComponent devem implementar a interface com.adobe.cq.social.scf.SocialCollectionComponent

Interface SocialComponentFactory

Uma SocialComponentFactory (fábrica) registra um SocialComponent com a estrutura. A fábrica fornece um meio de informar o quadro sobre os Componentes Sociais disponíveis para um determinado tipo de recurso e a sua prioridade de classificação e classificação; quando vários SocialComponents forem identificados.

Um SocialComponentFactory é responsável por criar uma instância do SocialComponent selecionado, possibilitando a inserção de todas as dependências necessárias para o SocialComponent da fábrica usando práticas de ID.

Um SocialComponentFactory é um serviço OSGi e tem acesso a outros serviços OSGi que podem ser transmitidos para o SocialComponent por meio de um construtor.

Todas as classes SocialComponentFactory devem implementar a interface com.adobe.cq.social.scf.SocialComponentFactory

Uma implementação do método SocialComponentFactory.getPriority() deve retornar o valor mais alto para que a fábrica seja usada para o resourceType fornecido, conforme retornado por getResourceType().

Interface SocialComponentFactoryManager

O SocialComponentFactoryManager (gerente) gerencia todos os SocialComponents registrados com a estrutura e é responsável por selecionar SocialComponentFactory a ser usado para um determinado recurso (resourceType). Se nenhuma fábrica estiver registrada para um determinado resourceType, o gerente retornará uma fábrica com o supertipo mais próximo para o recurso em questão.

Um SocialComponentFactoryManager é um serviço OSGi e tem acesso a outros serviços OSGi que podem ser transmitidos para o SocialComponent por meio de um construtor.

Um identificador do serviço OSGi é obtido invocando com.adobe.cq.social.scf.SocialComponentFactoryManager

API HTTP - Solicitações de POST

Classe PostOperation

Os pontos finais da API HTTP são classes PostOperation definidas pela implementação da SlingPostOperationinterface (pacote org.apache.sling.servlets.post).

A implementação de PostOperationendpont define sling.post.operationum valor ao qual a operação responderá. Todas as solicitações de POST com um parâmetro:operation definido para esse valor serão delegadas a essa classe de implementação.

O PostOperationchama o SocialOperationque executa as ações necessárias para a operação.

O PostOperationrecebe o resultado do SocialOperatione retorna a resposta apropriada ao cliente.

Classe SocialOperation

Cada SocialOperationendpoint estende a classe AbstractSocialOperation e substitui o método performOperation().Este método executa todas as ações necessárias para concluir a operação e retornar um SocialOperationResultou outro aciona um OperationException, caso em que um status de erro HTTP com uma mensagem, se disponível, é retornado no lugar da resposta JSON normal ou do código de status HTTP de sucesso.

A extensão AbstractSocialOperationpossibilita a reutilização de SocialComponentspara enviar respostas JSON.

Classe SocialOperationResult

A SocialOperationResultclasse é retornada como resultado do SocialOperatione é composta por uma mensagem de status HTTP, código de status SocialComponentHTTP e mensagem de status HTTP.

O SocialComponentrepresenta o recurso que foi afetado pela operação.

Para uma operação Criar, o SocialComponentincluído na SocialOperationResultrepresenta o recurso recém-criado e para uma operação Atualizar, representa o recurso que foi alterado pela operação. Não SocialComponenté retornado para uma operação Excluir.

Os códigos de status HTTP de sucesso usados são

  • 201 para operações de criação
  • 200 para operações de atualização
  • 204 para operações de exclusão

Classe OperationException

Um erro OperationExceptonpode ser lançado ao executar uma operação se a solicitação não for válida ou se ocorrer algum outro erro, como erros internos, valores de parâmetros incorretos, permissões inadequadas etc. Um OperationExceptioné composto de um código de status HTTP e uma mensagem de erro, que são retornados ao cliente como a resposta ao PostOperatoin.

Classe OperationService

A estrutura do componente social recomenda que a lógica comercial responsável pela execução da operação não seja implementada dentro da SocialOperationclasse, mas delegada em um serviço OSGi. O uso de um serviço OSGi para lógica de negócios permite que um SocialComponentservidor, atuado por um SocialOperationterminal, seja integrado a outro código e tenha uma lógica de negócios diferente aplicada.

Todas as OperationServiceclasses se estendem AbstractOperationService, permitindo extensões adicionais que podem ser conectadas à operação que está sendo executada. Cada operação no serviço é representada por uma SocialOperationclasse. A OperationExtensionsclasse pode ser invocada durante a execução da operação chamando os métodos

  • performBeforeActions()
    Permite pré-verificações/pré-processamento e validações
  • performAfterActions()
    Permite a modificação adicional de recursos ou invocação de eventos personalizados, workflows etc

Classe OperationExtension

OperationExtensionclasses são partes de código personalizadas que podem ser inseridas em uma operação permitindo a personalização de operações para atender às necessidades dos negócios. Os consumidores do componente podem adicionar funcionalidade de forma dinâmica e incremental ao componente. O padrão de extensão/gancho permite que os desenvolvedores se concentrem exclusivamente nas próprias extensões e remove a necessidade de copiar e substituir operações e componentes inteiros.

Código de exemplo

O código de amostra está disponível no repositório Adobe Marketing Cloud GitHub . Procure projetos com prefixo aem-communities ou aem-scf.

Práticas recomendadas

Visualização na seção Diretrizes de codificação para obter várias diretrizes de codificação e práticas recomendadas para desenvolvedores AEM Communities.

Consulte também SRP ( Armazenamento Resource Provider [Provedor de recursos do ]) para UGC para saber mais sobre como acessar conteúdo gerado pelo usuário.

⇐ Fundamentos de recursos Localização da personalização do cliente
Auxiliares da proteção contra a fraude SCF

Nesta página