Integração via REST API entre OJS/OMP e WordPress - Experiências e Recomendações?

Olá a todos,

Estou atualmente trabalhando em um projeto que envolve a integração dos sistemas OJS e OMP com um site WordPress. O objetivo é extrair metadados e conteúdos de publicações do OJS e OMP e exibi-los em nosso site WordPress.

Gostaria de saber se alguém da comunidade já teve experiência com essa integração via REST API. Se sim:

  1. Quais foram os principais desafios que você enfrentou durante a integração?
  2. Existem plugins ou ferramentas específicas que você recomendaria para facilitar esse processo?
  3. Há alguma consideração de segurança ou desempenho que devemos ter em mente ao fazer essa integração?
  4. Você teria algum código de exemplo ou recursos que poderia compartilhar para ajudar em nossa implementação?

Agradeço antecipadamente por qualquer insight ou recomendação que você possa oferecer. Sua experiência será inestimável para nos ajudar a navegar por este projeto.

Atenciosamente,

Bruno Marcelino

1 curtida

Bom dia!

Eu nunca fiz uma integração do WordPress com o OJS ou OMP, mas posso compartilhar minha experiência de integração com o Tematres, usando sua API de dados aberta. Recentemente, criei um plugin para o WordPress que puxa dados do Tematres e os exibe como Tags nativas no site. Mesmo que os sistemas sejam diferentes, acho que esse projeto pode dar uma ideia de como abordar a integração com o OJS e o OMP. Se você quiser verificar o plugin que criei, pode encontrá-lo aqui.

Agora respondendo especificamente suas perguntas.

1. Principais Desafios na Integração:
Creio que os principais desafios são autenticação e autorização (garantir que apenas usuários autorizados acessem os dados), uma sugestão que eu dou é primeiro focar nos conteúdos abertos do OJS/OMP e implementar a integração de dados sensíveis depois.
Outra questão é o mapeamento de dados (mapear os campos de dados entre os sistemas para garantir que as informações sejam exibidas corretamente no WordPress), no caso do Tematres, eu defini que iria usar as tags nativas do WP para isso, no seu caso acho que seria mais interessante criar um CPT (Custom Post Type) no WP para mapear o que você precisa dos dados do OJS/OMP.
Por fim, você tem que pensar na sincronização de dados (como manter os dados atualizados entre os sistemas), no meu plugin do Tematres, eu só busco dados novos quando insiro uma nova Tag, as antigas não são atualizadas. No seu caso, eu acho que é possível mapear algum tipo de identificador para os itens do OMP/OJS e fazer a atualização dos itens por sincronização automática, com um job diário no cron por exemplo.

2. Plugins e Ferramentas Recomendadas:
Existem algumas opções úteis:

  • WP REST API: O WordPress tem sua própria REST API que pode ser usada para criar endpoints personalizados para sua integração.
  • OJS/OMP REST API: Verifique se esses sistemas oferecem API REST para acessar os dados.
  • Plugins WordPress: Existem plugins disponíveis que podem facilitar a integração, como “Custom Post Type UI” para criar tipos de postagem personalizados. Além do meu plugin Tematres WP Integration.

3. Considerações de Segurança e Desempenho:

  • Segurança: Certifique-se de que as comunicações entre os sistemas sejam seguras usando HTTPS. Implemente autenticação robusta e autorização adequada para proteger os dados.
  • Desempenho: Pense em como as consultas à API podem afetar o desempenho. Cache de dados e consultas otimizadas podem ser necessários.

4. Código de Exemplo e Recursos:
O código do meu plugin de integração com o Tematres está disponível no github. Para deixar mais claro e resumido como funciona: eu criei o endpoint na API do WP chamado tematres_wp_busca (está no arquivo functions-api.php) que chama a API de dados abertos do Tematres e retorna os dados para WP.
No javascript /js/tematres-wp-integration.js eu criei as funções com AJAX para chamar o endpoint tematres_wp_busca quando o usuário estiver procurando por tags para associar ao post ou CPT no WP.
No arquivo de funções principais do plugin (functions.php), eu defini as demais funções necessárias para o plugin ser integrado ao funcionamento comum do WP e ainda criei um menu de gerenciamento para facilitar ajustar as opções do plugin (exemplo: definir a URL da API de dados abertos do Tematres).
Eu também tenho um artigo explicando um pouco mais meu plugin.

Além disso, recomendo verificar as documentações da REST API do WordPress e dos sistemas OJS e OMP, pois eles geralmente fornecem exemplos e orientações detalhadas.

Espero que essas informações ajudem de alguma forma na sua integração!

1 curtida