Base de conhecimento
Encontre respostas para suas dúvidas em quatro fontes de conhecimento diferentes ao mesmo tempo, simplificando o processo de pesquisa.

Fluig - Plataforma - WCM - Integração de widget com serviços REST


Tempo aproximado para leitura: 00:07:28 min

Dúvida
Como integrar um widget com serviços REST?

Ambiente
TOTVS Fluig Plataforma - Widgets - Versão 1.6 e inferiores.


Solução

Integração de widget com serviços REST

Para obter dados de uma fonte externa à plataforma, a forma mais aconselhável é por chamada REST. Vamos criar um REST  dentro do próprio widget, para isso devemos seguir alguns passos.

Dúvidas para criar o widget? Siga o guia.

Primeiro devemos criar uma classe chamada ApplicationConfig que extende a classe Application.

package com.fluig.kitintranet.news.proxy.rest.config;
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
@ApplicationPath("api/rest")
public class ApplicationConfig extends Application{
//não é necessário código, precisamos apenas para o @ApplicationPath
}

 

Depois devemos criar a classe REST que desejamos acessar.

import com.totvs.technology.wcm.sdk.rest.WCMRest;
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;

@Path("/news")
public class NewsRest extends WCMRest {

@POST
@Path("feed")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public Response getRSSFeedTest(String requestParams) {
//código
}
}

 

Em seguida, temos que alterar os arquivos jboss-web.xml.

package com.fluig.kitintranet.news.proxy.rest;

<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
<context-root>/news</context-root>
<disable-cross-context>false</disable-cross-context>
<security-domain>TOTVSTech</security-domain>
<security-role>
<role-name>user</role-name>
<principal-name>totvstech</principal-name>
</security-role>
<security-role>
<role-name>totvstech</role-name>
<principal-name>totvstech</principal-name>
</security-role>
<security-role>
<role-name>sysadmin</role-name>
<principal-name>wcmadmin</principal-name>
</security-role>
<security-role>
<role-name>admin</role-name>
<principal-name>wcmadmin</principal-name>
</security-role>
<valve>
<class-name>com.totvs.technology.auth.saml.TOTVSAuthenticatorValve</class-name>
</valve>
</jboss-web>

 

Também temos que alterar o arquivo web.xml para que possamos acessar esse REST.

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<!-- REST -->
<security-constraint>
<display-name>REST</display-name>
<web-resource-collection>
<web-resource-name>REST</web-resource-name>
<description>REST</description>
<url-pattern>/api/rest/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<description>REST</description>
<role-name>user</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<realm-name>TOTVSTech</realm-name>
<form-login-config>
<form-login-page>/login.jsp</form-login-page>
<form-error-page>/loginfail.jsp</form-error-page>
</form-login-config>
</login-config>
<security-role>
<role-name>totvstech</role-name>
</security-role>
<security-role>
<role-name>user</role-name>
</security-role>
<security-role>
<role-name>sysadmin</role-name>
</security-role>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

 

Depois disso, é possível utilizar o REST que se encontra dentro do widget por meio do método WCMAPI.Read, utilizado para fazer chamadas REST.

var that = this;

WCMAPI.Read({
type: "POST",
url: WCMAPI.getServerURL() + '/news/api/rest/news/feed',
async: true,
data: feed,
success: function funcao(data) {
that.appendNews(data.content.channel.items);
},
error: function () {
that.showLoadingError();
}
});

 

O método WCMAPI.getServerURL()  traz a URL do servidor que será utilizado para montar a URL da chamada REST. Em seguida, concatenamos o caminho do REST que pretendemos chamar. Neste caso, utilizamos o seguinte caminho: '/news/api/rest/news/feed'. Onde:

  • '/news': é o código do widget;
  • '/api/rest': é o @Path da classe ApplicationConfig.java;
  • '/news': é o @Path da classe NewsRest.java;
  • '/feed': é o @Path do método da classe NewsRest.java que desejamos chamar.

Pom.xml

Por fim, temos de declarar a dependência ao módulo foundation-security-authentication-saml no pom.xml do widget.

<dependency>
<groupId>com.fluig</groupId>
<artifactId>foundation-security-authentication-saml</artifactId>
<scope>compile</scope>
</dependency>
Esse artigo foi útil?
Usuários que acharam isso útil: 0 de 0

1 Comentários

  • Avatar
    Luana Santos

    Bom dia,

    Não está claro a parte do arquivo pom.xml. Nas widgets quando criamos esse arquivo não existe, precisamos criar o arquivo de forma manual e por esses dados conforme está no arquivo, ou temos algum passo antes? Se tem como devo fazer para chegar a esse ponto de apenas fazer as configurações descritas?

    Sei que ao criar o projeto maven ele tem o pom.xml mas acredito que não seja só copiar e colar a widget que irá funcionar, precisamos desse nível de detalhe para poder entender o funcionamento da criação dessas apis. 

    0
    Ações de comentário Permalink
Por favor, entre para comentar.
X Fechar

Olá ,

Há pendência referente a um de seus produtos contratados para a empresa ().

Entre em contato com o Centro de Serviços TOTVS para tratativa.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cobrança – Verificação de pendências financeiras . clique aqui.

TOTVS

X Fechar

Olá ,

Seu contato não está cadastrado no Portal do Cliente como um perfil autorizado a solicitar consultoria telefônica.

Por gentileza, acione o administrador do Portal de sua empresa para: (1)configurar o seu acesso ou (2)buscar um perfil autorizado para registro desse atendimento.

Em caso de dúvidas sobre a identificação do contato administrador do Portal, ligue (11) 4003-0015, opção 7 e, em seguida, opção 4 para buscar o suporte com o time de Assessoria ao Portal do Cliente. . clique aqui.

TOTVS

X Fechar

Olá ,

Para o atendimento de "Consultoria Telefônica" você deverá estar de acordo com o Faturamento.

TOTVS

X Fechar

Olá,

Algo inesperado ocorreu, e o usuario nao foi reconhecido ou você nao se encontra logado

Por favor realize um novo login

Em caso de dúvidas, entre em contato com o administrador do Portal de Clientes de sua empresa para verificação do seu usuário, ou Centro de Serviços TOTVS.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cadastros . clique aqui.

TOTVS

Chat _

Preencha os campos abaixo para iniciar o atendimento:

Chat _