1
Engenharia de Software
PUC
3
Engenharia de Software
PUC
17
Engenharia de Software
PUC
22
Engenharia de Software
PUC
1
Engenharia de Software
PUC
16
Engenharia de Software
PUC
5
Engenharia de Software
UNASP
2
Engenharia de Software
UNINTER
245
Engenharia de Software
UNICESUMAR
31
Engenharia de Software
UNIFAEL
Texto de pré-visualização
Atividades Semana 4 Sistemas Web Seguros 1 ATIVIDADE SOMATIVA ATIVIDADE SOMATIVA 1 SISRH Construção de web service REST Estudante Atividade 1 Transformando o SISRH em um sistema web service REST Resolvida 1 ponto Objetivo Configurar o projeto SISRH para tornálo compatível com um sistema que oferece serviços web REST Criar dois serviços básicos para validar as modificações Resolução da atividade Vamos ao passo a passo dos ajustes necessários 1 No seu projeto SISRH abra 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 coloridas Banco HSQLDB dependency groupIdorghsqldbgroupId artifactIdhsqldbartifactId version260version dependency JAXRS dependency groupIdcomsunxmlwsgroupId artifactIdjaxwsrtartifactId version232version dependency dependency groupIdorgglassfishjerseycoregroupId artifactIdjerseyserverartifactId version26version dependency dependency groupIdorgglassfishjerseycontainersgroupId artifactIdjerseycontainerservletartifactId version26version dependency dependency groupIdcomfasterxmljacksonjaxrsgroupId artifactIdjacksonjaxrsjsonproviderartifactId version241version dependency 2 SWAGGER dependency groupIdioswaggergroupId artifactIdswaggerjaxrsartifactId version157version dependency dependencies 2 Crie o pacote sisrhrest 3 Vamos construir uma classe para representar serviços básicos do sistema Crie a classe SistemaRest dentro do pacote rest 3 4 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 Pathsistema public class SistemaRest 5 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 Pathping ProducesMediaTypeTEXTPLAIN public Response ping UUID uuid UUIDrandomUUID return Responseokentitypong uuidbuild 6 Outro serviço útil será o dataHora importante para verificar a hora do servidor Inclua o seguinte método GET Pathdatahora ProducesMediaTypeTEXTPLAIN public Response datahora String pattern ddMMYYYY HHmmss SimpleDateFormat simpleDateFormat new SimpleDateFormatpattern return ResponseokentitysimpleDateFormatformatnew Datebuild 4 7 Crie a classe AppRest no pacote sisrhrest 8 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 ApplicationPathrest public class AppRest extends Application public AppRest BeanConfig conf new BeanConfig confsetTitleSISRH Servicos REST confsetDescriptionSistema de Recursos Humanos SISRH confsetVersion100 confsetHostlocalhost8080 confsetBasePathsisrhrest confsetSchemesnew String http confsetResourcePackagesisrhrest confsetScantrue Override public SetClass getClasses SetClass resources new HashSet resourcesaddSistemaRestclass resourcesaddApiListingResourceclass resourcesaddSwaggerSerializersclass return resources 5 9 Verifique se o projeto sisrh está registrado no Tomcat Se não o inclua inicie o servidor e teste o acesso ao documento swaggerjson 10 Vamos testar os serviços criados por meio da ferramenta SoapUI Crie um projeto 6 11 Mude seu nome para SISRHREST 12 Importe a URL do documento Swagger httplocalhost8080sisrhrestswaggerjson por meio do menu Import Swagger clicando com o botão direito do mouse no projeto Teste do serviço ping Teste do serviço dataHora Apesar de este exercício ser resolvido você deverá fazer a entrega Entrega 1 Imagens dos testes construídos no SoapUI exibindo as entradas e saídas 7 Atividade 2 Serviço para listar empregados Resolvida 1 ponto Objetivo Criar um serviço REST para o recurso Empregado que deverá listar todos os empregados cadastrados no SISRH Resolução da atividade 1 Crie a classe EmpregadoRest no pacote sisrhrest 2 Abra a classe AppRest inclua EmpregadoRest para constar no Swagger Veja o destaque da linha que deve ser incluída ApplicationPathrest public class AppRest extends Application public AppRest BeanConfig conf new BeanConfig confsetScantrue Override public SetClass getClasses SetClass resources new HashSet resourcesaddSistemaRestclass resourcesaddEmpregadoRestclass resourcesaddApiListingResourceclass resourcesaddSwaggerSerializersclass return resources 3 De volta ao EmpregadoRest inclua a estrutura básica para tornálo um serviço REST package sisrhrest 8 import javautilList import javaxwsrs import javaxwsrscore import javaxwsrscoreResponseStatus import ioswaggerannotationsApi import sisrhbancoBanco import sisrhdtoEmpregado Api Pathempregado public class EmpregadoRest 4 Nesta classe inclua o método listarEmpregados que tratará requisições do tipo GET GET ProducesMediaTypeAPPLICATIONJSON public Response listarEmpregados throws Exception ListEmpregado lista BancolistarEmpregados GenericEntityListEmpregado entity new GenericEntityListEmpregadolista return Responseokentityentitybuild 5 Vamos testar 6 Inicie o servidor Tomcat 7 Abra o projeto SISRHREST no SoapUI e importe novamente o documento Swagger httplocalhost8080sisrhrestswaggerjson 8 Execute a requisição listarEmpregados para obter a lista dos empregados Entrega 1 Imagens dos testes construídos no SoapUI exibindo as entradas e saídas 9 Atividade 3 Obter um empregado Resolvida 1 ponto Objetivo Criar um serviço REST que dada uma matrícula retornará um empregado Resolução da atividade 1 Na classe EmpregadoRest crie o método obterEmpregado que tratará requisições do tipo GET quando houver o parâmetro matrícula GET Pathmatricula ProducesMediaTypeAPPLICATIONJSON public Response obterEmpregadoPathParammatricula String matricula throws Exception try Empregado empregado BancobuscarEmpregadoPorMatriculamatricula if empregado null return Responseokentityempregadobuild else return ResponsestatusStatusNOTFOUND entity mensagem Empregado nao encontrado build catch Exception e return ResponsestatusStatusINTERNALSERVERERROR entity mensagem Falha para obter empregado detalhe egetMessage build 2 Vamos testar 3 Reinicie o servidor Tomcat 4 Abra o projeto SISRHREST no SoapUI e importe novamente o documento Swagger httplocalhost8080sisrhrestswaggerjson 5 Execute a requisição obterEmpregado e obtenha um empregado a partir da sua matrícula Entrega 1 Imagens dos testes construídos no SoapUI exibindo as entradas e saídas 10 Atividade 4 Incluir empregados Resolvida 1 ponto Objetivo Criar um serviço REST para incluir empregados Resolução da atividade 1 Na classe EmpregadoRest crie o método incluirEmpregado para tratar requisições do tipo POST POST ConsumesMediaTypeAPPLICATIONJSON ProducesMediaTypeAPPLICATIONJSON public Response incluirEmpregadoEmpregado empregado try Empregado emp BancoincluirEmpregadoempregado return Responseokentityempbuild catch Exception e return ResponsestatusStatusINTERNALSERVERERROR entity mensagem Falha na inclusao do empregado detalhe egetMessage build 2 Vamos testar 3 Reinicie o servidor Tomcat 4 Abra o projeto SISRHREST no SoapUI e importe novamente o documento Swagger httplocalhost8080sisrhrestswaggerjson 5 Execute a requisição incluirEmpregado informando os dados do empregado Entrega 11 1 Imagens dos testes construídos no SoapUI exibindo as entradas e saídas Atividade 5 Alterar empregados Resolvida 1 ponto Objetivo Criar um serviço REST para modificar dados dos empregados Resolução da atividade 1 Na classe EmpregadoRest crie o método alterarEmpregado que tratará as requisições do tipo PUT para alterações do recurso empregado PUT Pathmatricula ConsumesMediaTypeAPPLICATIONJSON ProducesMediaTypeAPPLICATIONJSON public Response alterarEmpregadoPathParammatricula String matricula Empregado empregado try if BancobuscarEmpregadoPorMatriculamatricula null return ResponsestatusStatusNOTFOUND entity mensagem Empregado nao encontrado build Empregado emp BancoalterarEmpregadomatricula empregado return Responseokentityempbuild catch Exception e return ResponsestatusStatusINTERNALSERVERERROR entity mensagem Falha na alteracao do empregado detalhe egetMessage build 2 Vamos testar 3 Reinicie o servidor Tomcat 4 Abra o projeto SISRHREST no SoapUI e importe novamente o documento Swagger httplocalhost8080sisrhrestswaggerjson 5 Execute a requisição alterarEmpregado informando outros dados para o empregado criado na atividade anterior 12 Entrega 1 Imagens dos testes construídos no SoapUI exibindo as entradas e saídas Atividade 6 Excluir empregados Resolvida 1 ponto Objetivo Criar um serviço REST para excluir empregados Resolução da atividade 1 Na classe EmpregadoRest crie o método excluirEmpregado que tratará requisições do tipo DELETE para exclusão de empregados recebendo como parâmetro uma matrícula DELETE Pathmatricula ConsumesMediaTypeAPPLICATIONJSON ProducesMediaTypeAPPLICATIONJSON public Response excluirEmpregadoPathParammatricula String matricula throws Exception try if BancobuscarEmpregadoPorMatriculamatricula null return ResponsestatusStatusNOTFOUND entity mensagem Empregado nao encontrado build BancoexcluirEmpregadomatricula return Responseokentity mensagem Empregado matricula excluido build catch Exception e return ResponsestatusStatusINTERNALSERVERERROR entity mensagem Falha na exclusao do empregado detalhe egetMessage build 13 2 Vamos testar 3 Reinicie o servidor Tomcat 4 Abra o projeto SISRHREST no SoapUI e importe novamente o documento Swagger httplocalhost8080sisrhrestswaggerjson 5 Execute a requisição excluirEmpregado informando uma matrícula conhecida Entrega 1 Imagens dos testes construídos no SoapUI exibindo as entradas e saídas Atividade 7 Listar solicitações 1 ponto Objetivo Criar um serviço REST para listar 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 imagem do teste construído no SoapUI exibindo as entradas e saídas 1 Listagem de solicitações 2 Obter uma solicitação Atividade 8 Incluir solicitações 1 ponto Objetivo Criar um serviço REST para incluir solicitações ao incluir o serviço deverá retornar o objeto da solicitação incluído Entrega imagem do teste construído no SoapUI exibindo as entradas e saídas 1 Uma inclusão de solicitação Atividade 9 Alterar solicitações 1 ponto 14 Objetivo Criar 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 1 Uma alteração de solicitação Atividade 10 Excluir solicitações 1 ponto Objetivo Criar 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 1 Uma exclusão de solicitação PUCPR Todos os direitos reservados Nenhum texto pode ser reproduzido sem prévia autorização PUCPR GRUPO MARISTA
1
Engenharia de Software
PUC
3
Engenharia de Software
PUC
17
Engenharia de Software
PUC
22
Engenharia de Software
PUC
1
Engenharia de Software
PUC
16
Engenharia de Software
PUC
5
Engenharia de Software
UNASP
2
Engenharia de Software
UNINTER
245
Engenharia de Software
UNICESUMAR
31
Engenharia de Software
UNIFAEL
Texto de pré-visualização
Atividades Semana 4 Sistemas Web Seguros 1 ATIVIDADE SOMATIVA ATIVIDADE SOMATIVA 1 SISRH Construção de web service REST Estudante Atividade 1 Transformando o SISRH em um sistema web service REST Resolvida 1 ponto Objetivo Configurar o projeto SISRH para tornálo compatível com um sistema que oferece serviços web REST Criar dois serviços básicos para validar as modificações Resolução da atividade Vamos ao passo a passo dos ajustes necessários 1 No seu projeto SISRH abra 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 coloridas Banco HSQLDB dependency groupIdorghsqldbgroupId artifactIdhsqldbartifactId version260version dependency JAXRS dependency groupIdcomsunxmlwsgroupId artifactIdjaxwsrtartifactId version232version dependency dependency groupIdorgglassfishjerseycoregroupId artifactIdjerseyserverartifactId version26version dependency dependency groupIdorgglassfishjerseycontainersgroupId artifactIdjerseycontainerservletartifactId version26version dependency dependency groupIdcomfasterxmljacksonjaxrsgroupId artifactIdjacksonjaxrsjsonproviderartifactId version241version dependency 2 SWAGGER dependency groupIdioswaggergroupId artifactIdswaggerjaxrsartifactId version157version dependency dependencies 2 Crie o pacote sisrhrest 3 Vamos construir uma classe para representar serviços básicos do sistema Crie a classe SistemaRest dentro do pacote rest 3 4 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 Pathsistema public class SistemaRest 5 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 Pathping ProducesMediaTypeTEXTPLAIN public Response ping UUID uuid UUIDrandomUUID return Responseokentitypong uuidbuild 6 Outro serviço útil será o dataHora importante para verificar a hora do servidor Inclua o seguinte método GET Pathdatahora ProducesMediaTypeTEXTPLAIN public Response datahora String pattern ddMMYYYY HHmmss SimpleDateFormat simpleDateFormat new SimpleDateFormatpattern return ResponseokentitysimpleDateFormatformatnew Datebuild 4 7 Crie a classe AppRest no pacote sisrhrest 8 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 ApplicationPathrest public class AppRest extends Application public AppRest BeanConfig conf new BeanConfig confsetTitleSISRH Servicos REST confsetDescriptionSistema de Recursos Humanos SISRH confsetVersion100 confsetHostlocalhost8080 confsetBasePathsisrhrest confsetSchemesnew String http confsetResourcePackagesisrhrest confsetScantrue Override public SetClass getClasses SetClass resources new HashSet resourcesaddSistemaRestclass resourcesaddApiListingResourceclass resourcesaddSwaggerSerializersclass return resources 5 9 Verifique se o projeto sisrh está registrado no Tomcat Se não o inclua inicie o servidor e teste o acesso ao documento swaggerjson 10 Vamos testar os serviços criados por meio da ferramenta SoapUI Crie um projeto 6 11 Mude seu nome para SISRHREST 12 Importe a URL do documento Swagger httplocalhost8080sisrhrestswaggerjson por meio do menu Import Swagger clicando com o botão direito do mouse no projeto Teste do serviço ping Teste do serviço dataHora Apesar de este exercício ser resolvido você deverá fazer a entrega Entrega 1 Imagens dos testes construídos no SoapUI exibindo as entradas e saídas 7 Atividade 2 Serviço para listar empregados Resolvida 1 ponto Objetivo Criar um serviço REST para o recurso Empregado que deverá listar todos os empregados cadastrados no SISRH Resolução da atividade 1 Crie a classe EmpregadoRest no pacote sisrhrest 2 Abra a classe AppRest inclua EmpregadoRest para constar no Swagger Veja o destaque da linha que deve ser incluída ApplicationPathrest public class AppRest extends Application public AppRest BeanConfig conf new BeanConfig confsetScantrue Override public SetClass getClasses SetClass resources new HashSet resourcesaddSistemaRestclass resourcesaddEmpregadoRestclass resourcesaddApiListingResourceclass resourcesaddSwaggerSerializersclass return resources 3 De volta ao EmpregadoRest inclua a estrutura básica para tornálo um serviço REST package sisrhrest 8 import javautilList import javaxwsrs import javaxwsrscore import javaxwsrscoreResponseStatus import ioswaggerannotationsApi import sisrhbancoBanco import sisrhdtoEmpregado Api Pathempregado public class EmpregadoRest 4 Nesta classe inclua o método listarEmpregados que tratará requisições do tipo GET GET ProducesMediaTypeAPPLICATIONJSON public Response listarEmpregados throws Exception ListEmpregado lista BancolistarEmpregados GenericEntityListEmpregado entity new GenericEntityListEmpregadolista return Responseokentityentitybuild 5 Vamos testar 6 Inicie o servidor Tomcat 7 Abra o projeto SISRHREST no SoapUI e importe novamente o documento Swagger httplocalhost8080sisrhrestswaggerjson 8 Execute a requisição listarEmpregados para obter a lista dos empregados Entrega 1 Imagens dos testes construídos no SoapUI exibindo as entradas e saídas 9 Atividade 3 Obter um empregado Resolvida 1 ponto Objetivo Criar um serviço REST que dada uma matrícula retornará um empregado Resolução da atividade 1 Na classe EmpregadoRest crie o método obterEmpregado que tratará requisições do tipo GET quando houver o parâmetro matrícula GET Pathmatricula ProducesMediaTypeAPPLICATIONJSON public Response obterEmpregadoPathParammatricula String matricula throws Exception try Empregado empregado BancobuscarEmpregadoPorMatriculamatricula if empregado null return Responseokentityempregadobuild else return ResponsestatusStatusNOTFOUND entity mensagem Empregado nao encontrado build catch Exception e return ResponsestatusStatusINTERNALSERVERERROR entity mensagem Falha para obter empregado detalhe egetMessage build 2 Vamos testar 3 Reinicie o servidor Tomcat 4 Abra o projeto SISRHREST no SoapUI e importe novamente o documento Swagger httplocalhost8080sisrhrestswaggerjson 5 Execute a requisição obterEmpregado e obtenha um empregado a partir da sua matrícula Entrega 1 Imagens dos testes construídos no SoapUI exibindo as entradas e saídas 10 Atividade 4 Incluir empregados Resolvida 1 ponto Objetivo Criar um serviço REST para incluir empregados Resolução da atividade 1 Na classe EmpregadoRest crie o método incluirEmpregado para tratar requisições do tipo POST POST ConsumesMediaTypeAPPLICATIONJSON ProducesMediaTypeAPPLICATIONJSON public Response incluirEmpregadoEmpregado empregado try Empregado emp BancoincluirEmpregadoempregado return Responseokentityempbuild catch Exception e return ResponsestatusStatusINTERNALSERVERERROR entity mensagem Falha na inclusao do empregado detalhe egetMessage build 2 Vamos testar 3 Reinicie o servidor Tomcat 4 Abra o projeto SISRHREST no SoapUI e importe novamente o documento Swagger httplocalhost8080sisrhrestswaggerjson 5 Execute a requisição incluirEmpregado informando os dados do empregado Entrega 11 1 Imagens dos testes construídos no SoapUI exibindo as entradas e saídas Atividade 5 Alterar empregados Resolvida 1 ponto Objetivo Criar um serviço REST para modificar dados dos empregados Resolução da atividade 1 Na classe EmpregadoRest crie o método alterarEmpregado que tratará as requisições do tipo PUT para alterações do recurso empregado PUT Pathmatricula ConsumesMediaTypeAPPLICATIONJSON ProducesMediaTypeAPPLICATIONJSON public Response alterarEmpregadoPathParammatricula String matricula Empregado empregado try if BancobuscarEmpregadoPorMatriculamatricula null return ResponsestatusStatusNOTFOUND entity mensagem Empregado nao encontrado build Empregado emp BancoalterarEmpregadomatricula empregado return Responseokentityempbuild catch Exception e return ResponsestatusStatusINTERNALSERVERERROR entity mensagem Falha na alteracao do empregado detalhe egetMessage build 2 Vamos testar 3 Reinicie o servidor Tomcat 4 Abra o projeto SISRHREST no SoapUI e importe novamente o documento Swagger httplocalhost8080sisrhrestswaggerjson 5 Execute a requisição alterarEmpregado informando outros dados para o empregado criado na atividade anterior 12 Entrega 1 Imagens dos testes construídos no SoapUI exibindo as entradas e saídas Atividade 6 Excluir empregados Resolvida 1 ponto Objetivo Criar um serviço REST para excluir empregados Resolução da atividade 1 Na classe EmpregadoRest crie o método excluirEmpregado que tratará requisições do tipo DELETE para exclusão de empregados recebendo como parâmetro uma matrícula DELETE Pathmatricula ConsumesMediaTypeAPPLICATIONJSON ProducesMediaTypeAPPLICATIONJSON public Response excluirEmpregadoPathParammatricula String matricula throws Exception try if BancobuscarEmpregadoPorMatriculamatricula null return ResponsestatusStatusNOTFOUND entity mensagem Empregado nao encontrado build BancoexcluirEmpregadomatricula return Responseokentity mensagem Empregado matricula excluido build catch Exception e return ResponsestatusStatusINTERNALSERVERERROR entity mensagem Falha na exclusao do empregado detalhe egetMessage build 13 2 Vamos testar 3 Reinicie o servidor Tomcat 4 Abra o projeto SISRHREST no SoapUI e importe novamente o documento Swagger httplocalhost8080sisrhrestswaggerjson 5 Execute a requisição excluirEmpregado informando uma matrícula conhecida Entrega 1 Imagens dos testes construídos no SoapUI exibindo as entradas e saídas Atividade 7 Listar solicitações 1 ponto Objetivo Criar um serviço REST para listar 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 imagem do teste construído no SoapUI exibindo as entradas e saídas 1 Listagem de solicitações 2 Obter uma solicitação Atividade 8 Incluir solicitações 1 ponto Objetivo Criar um serviço REST para incluir solicitações ao incluir o serviço deverá retornar o objeto da solicitação incluído Entrega imagem do teste construído no SoapUI exibindo as entradas e saídas 1 Uma inclusão de solicitação Atividade 9 Alterar solicitações 1 ponto 14 Objetivo Criar 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 1 Uma alteração de solicitação Atividade 10 Excluir solicitações 1 ponto Objetivo Criar 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 1 Uma exclusão de solicitação PUCPR Todos os direitos reservados Nenhum texto pode ser reproduzido sem prévia autorização PUCPR GRUPO MARISTA