• Home
  • Chat IA
  • Guru IA
  • Tutores
  • Central de ajuda
Home
Chat IA
Guru IA
Tutores

·

Análise e Desenvolvimento de Sistemas ·

Engenharia de Software

Envie sua pergunta para a IA e receba a resposta na hora

Recomendado para você

React tela de Login

3

React tela de Login

Engenharia de Software

PUC

Sisrh Construção de Web Service Rest

16

Sisrh Construção de Web Service Rest

Engenharia de Software

PUC

Tela de Login React - App.js - Exemplo de Código

1

Tela de Login React - App.js - Exemplo de Código

Engenharia de Software

PUC

Git Devops

17

Git Devops

Engenharia de Software

PUC

Cadastro em React

1

Cadastro em React

Engenharia de Software

PUC

Sistemas Web Seguros

22

Sistemas Web Seguros

Engenharia de Software

PUC

Engenharia de Requisitos: Elicitação, Análise e Modelagem

33

Engenharia de Requisitos: Elicitação, Análise e Modelagem

Engenharia de Software

UNINTER

Arquitetura de Software Aol 03

9

Arquitetura de Software Aol 03

Engenharia de Software

UNINASSAU

Arquitetura de Software Aol 05

10

Arquitetura de Software Aol 05

Engenharia de Software

UNINASSAU

Artigo Acadêmico sobre Metodologia Científica e Resultados de Pesquisa

9

Artigo Acadêmico sobre Metodologia Científica e Resultados de Pesquisa

Engenharia de Software

UNIFTEC

Texto de pré-visualização

Atividades Semana 4 Atividades Semana 4 Sistemas Web Seguros Sistemas Web Seguros Atividade S omativa ATIVIDADE SOMATIVA 1 SISRH Construção de web service REST Estudante Atividade 1 Tran s formando o SISRH em um sistema web service REST Resolvida 1 ponto Objetivo Configur ar o projeto SISRH para torn á lo compatível com um sistema que oferece serviços web REST Cri ar dois serviços básicos para validar as modificações Resolução da a tividade Vamos ao passo a passo dos ajustes necessários No seu projeto SISRH a bra o arquivo pomxml e inclua a dependência da especificação JAXRS Dica inclua a dependência logo abaixo da dependência hsqldb Segue exemplo com destaque para o trecho a ser incluído linhas colorid as Banco HSQLDB dependency groupIdorghsqldbgroupId artifactIdhsqldbartifactId version260version dependency JAXRS dependency groupId comsunxmlws groupId artifactId jaxwsrt artifactId version 232 version dependency dependency groupId orgglassfishjerseycore groupId artifactId jerseyserver artifactId version 26 version dependency dependency groupId orgglassfishjerseycontainers groupId artifactId jerseycontainerservlet artifactId version 26 version dependency dependency groupId comfasterxmljacksonjaxrs groupId artifactId jacksonjaxrsjsonprovider artifactId version 241 version dependency SWAGGER dependency groupId ioswagger groupId artifactId swaggerjaxrs artifactId version 157 version dependency dependencies Crie o pacote sisrhrest Vamos construir uma classe para representar serviços básicos do sistema C rie a classe SistemaRest dentro do pacote rest Inclua as anotações Api e Path que identificam a classe como um serviço REST package sisrhrest import javautil import javatext import javaxwsrs import javaxwsrscore import ioswaggerannotations Api Path sistema public class SistemaRest Vamos criar um método GET chamado ping para retornar um valor pong Este serviço é importante para testar se o sistema está no ar Inclua o seguinte método na classe SistemaRest GET Path ping Produces MediaType TEXTPLAIN public Response ping UUID uuid UUID randomUUID return Response ok entity pong uuid build Outro serviço útil será o data H ora importante para verificar a hora do servidor Inclua o seguinte método GET Path datahora Produces MediaType TEXTPLAIN public Response datahora String pattern ddMMYYYY HHmmss SimpleDateFormat simpleDateFormat new SimpleDateFormat pattern return Response ok entity simpleDateFormat format new Datebuild Crie a classe AppRest no pacote sisrhrest Esta classe será responsável por descrever os serviços REST gerando o documento descritor swaggerjson Segue seu conteúdo package sisrhrest import javautil import javaxwsrs import javaxwsrscore import ioswaggerjaxrsconfig import ioswaggerjaxrslisting ApplicationPath rest public class AppRest extends Application public AppRest BeanConfig conf new BeanConfig conf setTitle SISRH Servicos REST conf setDescription Sistema de Recursos Humanos SISRH conf setVersion 100 conf setHost localhost8080 conf setBasePath sisrhrest conf setSchemes new String http conf setResourcePackage sisrhrest conf setScan true Override public SetClass getClasses SetClass resources new HashSet resources addSistemaRest class resources addApiListingResource class resources addSwaggerSerializers class return resources Verifique se o projeto sisrh está registrado no T omcat S e não o inclua inicie o servidor e teste o acesso ao documento swaggerjson Vamos testar os serviços criado s por meio da ferramenta SoapUI Crie um projeto Mude seu nome para SISRHREST Importe a URL do documento Swagger httplocalhost8080sisrhrestswaggerjson por meio do menu Import Swagger clicando com o botão direito do mouse n o projeto Teste do serviço p ing Teste do serviço dataHora Apesar d e e ste exercício ser resolvido você deve rá fazer a entrega Entrega Imagens dos t estes construídos no SoapU I exibindo as entradas e saídas Atividade 2 Serviço para listar empreg ados Resolvida 1 ponto Objetivo Criar um serviço REST para o recurso Empregado que deverá list ar todos os empregados cadastrado s no SISRH Resolução da a tividade Crie a classe EmpregadoRest no pacote sisrhrest Abra a classe AppRest inclua EmpregadoRest para constar no Swagger Veja o d e s taque d a linha que deve ser incluída ApplicationPathrest public class AppRest extends Application public AppRest BeanConfig conf new BeanConfig confsetScan true Override public SetClass getClasses SetClass resources new HashSet resourcesaddSistemaRest class resources addEmpregadoRest class resourcesaddApiListingResource class resourcesaddSwaggerSerializers class return resources De volta a o EmpregadoRest i nclua a estrutura básica para tornál o um serviço REST package sisrhrest import javautilList import javaxwsrs import javaxwsrscore import javaxwsrscoreResponseStatus import ioswaggerannotationsApi import sisrhbancoBanco import sisrhdtoEmpregado Api Path empregado public class EmpregadoRest Nesta classe i nclua o método listarEmpregados que tratará requisições do tipo GET GET Produces MediaType APPLICATIONJSON public Response listarEmpregados throws Exception ListEmpregado lista Banco listarEmpregados GenericEntityListEmpregado entity new GenericEntityListEmpregado lista return Response ok entity entity build Vamos t estar Inicie o servidor T omcat Abra o p rojeto SISRHREST no SoapUI e importe novamente o documento Swagger httplocalhost8080sisrhrestswaggerjson Execute a requi si ção listarEmpregados para obter a lista dos empregados Entrega Imagens dos testes construídos no SoapUI exibindo as entradas e saídas Atividade 3 Obter um empregado Resolvida 1 ponto Objetivo Cri ar um serviço REST que da d a uma matrícula retornará um empregado Resolução da a tividade Na classe EmpregadoRest crie o método obterEmpregado que tratará requisições do tipo GET quando houver o parâmetro matrícula GET Path matricula Produces MediaType APPLICATIONJSON public Response obterEmpregado PathParam matricula String matricula throws Exception try Empregado empregado Banco buscarEmpregadoPorMatricula matricula if empregado null return Response ok entity empregado build else return Response status Status NOTFOUND entity mensagem Empregado nao encontrado build catch Exception e return Response status Status INTERNALSERVERERROR entity mensagem Falha para obter empregado detalhe e getMessage build Vamos t estar Reinicie o servidor T omcat Abra o p rojeto SISRHREST no SoapUI e importe novamente o documento Swagger httplocalhost8080sisrhrestswaggerjson Execute a requi si ção obterEmpregado e obtenha um empregado a partir da sua matrícula Entrega Imagens dos testes construídos no SoapUI exibindo as entradas e saídas Atividade 4 Incluir e mpregados Resolvida 1 ponto Objetivo Cri ar um serviço REST para incluir empregados Resolução da a tividade Na classe EmpregadoRest crie o método incluirEmpregado para tratar requisições do tipo POST POST Consumes MediaType APPLICATIONJSON Produces MediaType APPLICATIONJSON public Response incluirEmpregadoEmpregado empregado try Empregado emp Banco incluirEmpregado empregado return Response ok entity emp build catch Exception e return Response status Status INTERNALSERVERERROR entity mensagem Falha na inclusao do empregado detalhe e getMessage build Vamos testar Reinicie o servidor T omcat Abra o p rojeto SISRHREST no SoapUI e importe novamente o documento Swagger httplocalhost8080sisrhrestswaggerjson Execute a requi si ção incluirEmpregado informando os dados do empregado Entrega Imagens dos testes construídos no SoapUI exibindo as entradas e saídas Atividade 5 Alterar e mpregados Resolvida 1 ponto Objetivo Cri ar um serviço REST para modificar dados dos empregados Resolução da a tividade Na classe EmpregadoRest crie o método alterarEmpregado que tratar á as requisições do tipo PUT para alterações do recurso empregado PUT Path matricula Consumes MediaType APPLICATIONJSON Produces MediaType APPLICATIONJSON public Response alterarEmpregado PathParam matricula String matricula Empregado empregado try if Banco buscarEmpregadoPorMatricula matricula null return Response status Status NOTFOUND entity mensagem Empregado nao encontrado build Empregado emp Banco alterarEmpregado matricula empregado return Response ok entity emp build catch Exception e return Response status Status INTERNALSERVERERROR entity mensagem Falha na alteracao do empregado detalhe e getMessage build Vamos testar Reinicie o servidor T omcat Abra o p rojeto SISRHREST no SoapUI e importe novamente o documento Swagger httplocalhost8080sisrhrestswaggerjson Execute a requi si ção alte rar Empregado informando outros dados para o empregado criado na atividade anterior 1 1 Entrega Imagens dos testes construídos no SoapUI exibindo as entradas e saídas Atividade 6 Excluir e mpregados Resolvida 1 ponto Objetivo Cri ar um serviço REST para excluir empregados Resolução da a tividade Na classe EmpregadoRest crie o método excluirEmpregado que tratará requisições do tipo DELETE para exclusão de empregado s recebendo como parâmetro uma matrícula DELETE Path matricula Consumes MediaType APPLICATIONJSON Produces MediaType APPLICATIONJSON public Response excluirEmpregado PathParam matricula String matricula throws Exception try if Banco buscarEmpregadoPorMatricula matricula null return Response status Status NOTFOUND entity mensagem Empregado nao encontrado build Banco excluirEmpregado matricula return Response ok entity mensagem Empregado matricula excluido build catch Exception e return Response status Status INTERNALSERVERERROR entity mensagem Falha na exclusao do empregado detalhe e getMessage build Vamos testar Reinicie o servidor T omcat Abra o p rojeto SISRHREST no SoapUI e importe novamente o documento Swagger httplocalhost8080sisrhrestswaggerjson Execute a requi si ção excluir Empregado informando uma matrícula conhecida Entrega Imagens dos testes construídos no SoapUI exibindo as entradas e saídas Atividade 7 Listar s olicitações 1 ponto Objetivo Cri ar um serviço REST para lista r empregados e um serviço para obter uma solicitação pelo seu id Dica da mesma forma que nos exercícios anteriores construímos a classe EmpregadoRest voc ê construirá a classe SolicitacaoRest Entrega i magem do teste construído no SoapUI exibindo as entradas e saídas Listagem de s olicitações Obter uma s olicitação Atividade 8 Incluir s olicitações 1 ponto Objetivo Cri ar um serviço REST para incluir solicitações ao incluir o serviço dever á retorna r o objeto da solicitação incluído Entrega imagem do teste construído no SoapUI exibindo as entradas e saídas Uma inclusão de s olicitação Atividade 9 Alterar s olicitações 1 ponto Objetivo Cri ar um serviço REST para alterar solicitações ao alterar o serviço dever á retornar o objeto da solicitação alterado Entrega imagem do teste construído no SoapUI exibindo as entradas e saídas Uma alteração de s olicitação Atividade 10 Excluir s olicitações 1 ponto Objetivo Cri ar um serviço REST para excluir solicitações ao excluir o serviço dever á retornar uma mensagem informando que a operação foi realizada Entrega imagem do teste construído no SoapUI exibindo as entradas e saídas Uma exclusão de s olicitação 7 7

Envie sua pergunta para a IA e receba a resposta na hora

Recomendado para você

React tela de Login

3

React tela de Login

Engenharia de Software

PUC

Sisrh Construção de Web Service Rest

16

Sisrh Construção de Web Service Rest

Engenharia de Software

PUC

Tela de Login React - App.js - Exemplo de Código

1

Tela de Login React - App.js - Exemplo de Código

Engenharia de Software

PUC

Git Devops

17

Git Devops

Engenharia de Software

PUC

Cadastro em React

1

Cadastro em React

Engenharia de Software

PUC

Sistemas Web Seguros

22

Sistemas Web Seguros

Engenharia de Software

PUC

Engenharia de Requisitos: Elicitação, Análise e Modelagem

33

Engenharia de Requisitos: Elicitação, Análise e Modelagem

Engenharia de Software

UNINTER

Arquitetura de Software Aol 03

9

Arquitetura de Software Aol 03

Engenharia de Software

UNINASSAU

Arquitetura de Software Aol 05

10

Arquitetura de Software Aol 05

Engenharia de Software

UNINASSAU

Artigo Acadêmico sobre Metodologia Científica e Resultados de Pesquisa

9

Artigo Acadêmico sobre Metodologia Científica e Resultados de Pesquisa

Engenharia de Software

UNIFTEC

Texto de pré-visualização

Atividades Semana 4 Atividades Semana 4 Sistemas Web Seguros Sistemas Web Seguros Atividade S omativa ATIVIDADE SOMATIVA 1 SISRH Construção de web service REST Estudante Atividade 1 Tran s formando o SISRH em um sistema web service REST Resolvida 1 ponto Objetivo Configur ar o projeto SISRH para torn á lo compatível com um sistema que oferece serviços web REST Cri ar dois serviços básicos para validar as modificações Resolução da a tividade Vamos ao passo a passo dos ajustes necessários No seu projeto SISRH a bra o arquivo pomxml e inclua a dependência da especificação JAXRS Dica inclua a dependência logo abaixo da dependência hsqldb Segue exemplo com destaque para o trecho a ser incluído linhas colorid as Banco HSQLDB dependency groupIdorghsqldbgroupId artifactIdhsqldbartifactId version260version dependency JAXRS dependency groupId comsunxmlws groupId artifactId jaxwsrt artifactId version 232 version dependency dependency groupId orgglassfishjerseycore groupId artifactId jerseyserver artifactId version 26 version dependency dependency groupId orgglassfishjerseycontainers groupId artifactId jerseycontainerservlet artifactId version 26 version dependency dependency groupId comfasterxmljacksonjaxrs groupId artifactId jacksonjaxrsjsonprovider artifactId version 241 version dependency SWAGGER dependency groupId ioswagger groupId artifactId swaggerjaxrs artifactId version 157 version dependency dependencies Crie o pacote sisrhrest Vamos construir uma classe para representar serviços básicos do sistema C rie a classe SistemaRest dentro do pacote rest Inclua as anotações Api e Path que identificam a classe como um serviço REST package sisrhrest import javautil import javatext import javaxwsrs import javaxwsrscore import ioswaggerannotations Api Path sistema public class SistemaRest Vamos criar um método GET chamado ping para retornar um valor pong Este serviço é importante para testar se o sistema está no ar Inclua o seguinte método na classe SistemaRest GET Path ping Produces MediaType TEXTPLAIN public Response ping UUID uuid UUID randomUUID return Response ok entity pong uuid build Outro serviço útil será o data H ora importante para verificar a hora do servidor Inclua o seguinte método GET Path datahora Produces MediaType TEXTPLAIN public Response datahora String pattern ddMMYYYY HHmmss SimpleDateFormat simpleDateFormat new SimpleDateFormat pattern return Response ok entity simpleDateFormat format new Datebuild Crie a classe AppRest no pacote sisrhrest Esta classe será responsável por descrever os serviços REST gerando o documento descritor swaggerjson Segue seu conteúdo package sisrhrest import javautil import javaxwsrs import javaxwsrscore import ioswaggerjaxrsconfig import ioswaggerjaxrslisting ApplicationPath rest public class AppRest extends Application public AppRest BeanConfig conf new BeanConfig conf setTitle SISRH Servicos REST conf setDescription Sistema de Recursos Humanos SISRH conf setVersion 100 conf setHost localhost8080 conf setBasePath sisrhrest conf setSchemes new String http conf setResourcePackage sisrhrest conf setScan true Override public SetClass getClasses SetClass resources new HashSet resources addSistemaRest class resources addApiListingResource class resources addSwaggerSerializers class return resources Verifique se o projeto sisrh está registrado no T omcat S e não o inclua inicie o servidor e teste o acesso ao documento swaggerjson Vamos testar os serviços criado s por meio da ferramenta SoapUI Crie um projeto Mude seu nome para SISRHREST Importe a URL do documento Swagger httplocalhost8080sisrhrestswaggerjson por meio do menu Import Swagger clicando com o botão direito do mouse n o projeto Teste do serviço p ing Teste do serviço dataHora Apesar d e e ste exercício ser resolvido você deve rá fazer a entrega Entrega Imagens dos t estes construídos no SoapU I exibindo as entradas e saídas Atividade 2 Serviço para listar empreg ados Resolvida 1 ponto Objetivo Criar um serviço REST para o recurso Empregado que deverá list ar todos os empregados cadastrado s no SISRH Resolução da a tividade Crie a classe EmpregadoRest no pacote sisrhrest Abra a classe AppRest inclua EmpregadoRest para constar no Swagger Veja o d e s taque d a linha que deve ser incluída ApplicationPathrest public class AppRest extends Application public AppRest BeanConfig conf new BeanConfig confsetScan true Override public SetClass getClasses SetClass resources new HashSet resourcesaddSistemaRest class resources addEmpregadoRest class resourcesaddApiListingResource class resourcesaddSwaggerSerializers class return resources De volta a o EmpregadoRest i nclua a estrutura básica para tornál o um serviço REST package sisrhrest import javautilList import javaxwsrs import javaxwsrscore import javaxwsrscoreResponseStatus import ioswaggerannotationsApi import sisrhbancoBanco import sisrhdtoEmpregado Api Path empregado public class EmpregadoRest Nesta classe i nclua o método listarEmpregados que tratará requisições do tipo GET GET Produces MediaType APPLICATIONJSON public Response listarEmpregados throws Exception ListEmpregado lista Banco listarEmpregados GenericEntityListEmpregado entity new GenericEntityListEmpregado lista return Response ok entity entity build Vamos t estar Inicie o servidor T omcat Abra o p rojeto SISRHREST no SoapUI e importe novamente o documento Swagger httplocalhost8080sisrhrestswaggerjson Execute a requi si ção listarEmpregados para obter a lista dos empregados Entrega Imagens dos testes construídos no SoapUI exibindo as entradas e saídas Atividade 3 Obter um empregado Resolvida 1 ponto Objetivo Cri ar um serviço REST que da d a uma matrícula retornará um empregado Resolução da a tividade Na classe EmpregadoRest crie o método obterEmpregado que tratará requisições do tipo GET quando houver o parâmetro matrícula GET Path matricula Produces MediaType APPLICATIONJSON public Response obterEmpregado PathParam matricula String matricula throws Exception try Empregado empregado Banco buscarEmpregadoPorMatricula matricula if empregado null return Response ok entity empregado build else return Response status Status NOTFOUND entity mensagem Empregado nao encontrado build catch Exception e return Response status Status INTERNALSERVERERROR entity mensagem Falha para obter empregado detalhe e getMessage build Vamos t estar Reinicie o servidor T omcat Abra o p rojeto SISRHREST no SoapUI e importe novamente o documento Swagger httplocalhost8080sisrhrestswaggerjson Execute a requi si ção obterEmpregado e obtenha um empregado a partir da sua matrícula Entrega Imagens dos testes construídos no SoapUI exibindo as entradas e saídas Atividade 4 Incluir e mpregados Resolvida 1 ponto Objetivo Cri ar um serviço REST para incluir empregados Resolução da a tividade Na classe EmpregadoRest crie o método incluirEmpregado para tratar requisições do tipo POST POST Consumes MediaType APPLICATIONJSON Produces MediaType APPLICATIONJSON public Response incluirEmpregadoEmpregado empregado try Empregado emp Banco incluirEmpregado empregado return Response ok entity emp build catch Exception e return Response status Status INTERNALSERVERERROR entity mensagem Falha na inclusao do empregado detalhe e getMessage build Vamos testar Reinicie o servidor T omcat Abra o p rojeto SISRHREST no SoapUI e importe novamente o documento Swagger httplocalhost8080sisrhrestswaggerjson Execute a requi si ção incluirEmpregado informando os dados do empregado Entrega Imagens dos testes construídos no SoapUI exibindo as entradas e saídas Atividade 5 Alterar e mpregados Resolvida 1 ponto Objetivo Cri ar um serviço REST para modificar dados dos empregados Resolução da a tividade Na classe EmpregadoRest crie o método alterarEmpregado que tratar á as requisições do tipo PUT para alterações do recurso empregado PUT Path matricula Consumes MediaType APPLICATIONJSON Produces MediaType APPLICATIONJSON public Response alterarEmpregado PathParam matricula String matricula Empregado empregado try if Banco buscarEmpregadoPorMatricula matricula null return Response status Status NOTFOUND entity mensagem Empregado nao encontrado build Empregado emp Banco alterarEmpregado matricula empregado return Response ok entity emp build catch Exception e return Response status Status INTERNALSERVERERROR entity mensagem Falha na alteracao do empregado detalhe e getMessage build Vamos testar Reinicie o servidor T omcat Abra o p rojeto SISRHREST no SoapUI e importe novamente o documento Swagger httplocalhost8080sisrhrestswaggerjson Execute a requi si ção alte rar Empregado informando outros dados para o empregado criado na atividade anterior 1 1 Entrega Imagens dos testes construídos no SoapUI exibindo as entradas e saídas Atividade 6 Excluir e mpregados Resolvida 1 ponto Objetivo Cri ar um serviço REST para excluir empregados Resolução da a tividade Na classe EmpregadoRest crie o método excluirEmpregado que tratará requisições do tipo DELETE para exclusão de empregado s recebendo como parâmetro uma matrícula DELETE Path matricula Consumes MediaType APPLICATIONJSON Produces MediaType APPLICATIONJSON public Response excluirEmpregado PathParam matricula String matricula throws Exception try if Banco buscarEmpregadoPorMatricula matricula null return Response status Status NOTFOUND entity mensagem Empregado nao encontrado build Banco excluirEmpregado matricula return Response ok entity mensagem Empregado matricula excluido build catch Exception e return Response status Status INTERNALSERVERERROR entity mensagem Falha na exclusao do empregado detalhe e getMessage build Vamos testar Reinicie o servidor T omcat Abra o p rojeto SISRHREST no SoapUI e importe novamente o documento Swagger httplocalhost8080sisrhrestswaggerjson Execute a requi si ção excluir Empregado informando uma matrícula conhecida Entrega Imagens dos testes construídos no SoapUI exibindo as entradas e saídas Atividade 7 Listar s olicitações 1 ponto Objetivo Cri ar um serviço REST para lista r empregados e um serviço para obter uma solicitação pelo seu id Dica da mesma forma que nos exercícios anteriores construímos a classe EmpregadoRest voc ê construirá a classe SolicitacaoRest Entrega i magem do teste construído no SoapUI exibindo as entradas e saídas Listagem de s olicitações Obter uma s olicitação Atividade 8 Incluir s olicitações 1 ponto Objetivo Cri ar um serviço REST para incluir solicitações ao incluir o serviço dever á retorna r o objeto da solicitação incluído Entrega imagem do teste construído no SoapUI exibindo as entradas e saídas Uma inclusão de s olicitação Atividade 9 Alterar s olicitações 1 ponto Objetivo Cri ar um serviço REST para alterar solicitações ao alterar o serviço dever á retornar o objeto da solicitação alterado Entrega imagem do teste construído no SoapUI exibindo as entradas e saídas Uma alteração de s olicitação Atividade 10 Excluir s olicitações 1 ponto Objetivo Cri ar um serviço REST para excluir solicitações ao excluir o serviço dever á retornar uma mensagem informando que a operação foi realizada Entrega imagem do teste construído no SoapUI exibindo as entradas e saídas Uma exclusão de s olicitação 7 7

Sua Nova Sala de Aula

Sua Nova Sala de Aula

Empresa

Central de ajuda Contato Blog

Legal

Termos de uso Política de privacidade Política de cookies Código de honra

Baixe o app

4,8
(35.000 avaliações)
© 2025 Meu Guru®