Prévia do material em texto
Você acertou 10 de 10 questões Verifique o seu desempenho e continue treinando! Você pode refazer o exercício quantas vezes quiser. Verificar Desempenho A B C D E A B C D E A B C D E A B C D E A B C D E A B C D E A B C D E A B C D E A B C D E A B C D E 1 Marcar para revisão Com o avanço das tecnologias, ocorreu o surgimento de diversas plataformas e ambientes de desenvolvimento, bem como necessidades intrínsecas à heterogeneidade atual. Ao adotar o formato JSON, um servidor REST busca garantir qual fator relevante para as novas plataformas? Responsividade Usabilidade Reflexividade Jogabilidade Interoperabilidade Resposta correta Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado! Gabarito Comentado A usabilidade sempre foi uma necessidade para qualquer sistema, pois define o nível de ergonomia e simplicidade de uso. No contexto de jogos, essa usabilidade é traduzida como jogabilidade. No que diz respeito às interfaces de usuário, elas devem ser construídas para se adaptarem às mais diversas plataformas, o que define o conceito de responsividade. O termo reflexividade, embora não seja uma necessidade decorrente da heterogeneidade, refere-se à capacidade de um objeto, em linguagens como Java, de reconhecer sua própria estrutura interna. A adoção do formato JSON por um servidor REST tem como objetivo principal garantir a interoperabilidade, ou seja, a capacidade de comunicação entre servidores que utilizam tecnologias distintas. Isso se deve à neutralidade do formato de dados JSON, que permite essa comunicação eficiente e eficaz. 2 Marcar para revisão A biblioteca Zeep permite criar clientes SOAP de forma extremamente simples no Python, com grande ganho de produtividade. Considerando as opções seguintes, qual a informação correta acerca dos clientes construídos com Zeep? Os stubs são gerados com a passagem do endereço do WSDL no construtor do cliente. É necessário especificar uma biblioteca de validação XML, como o lxml. Precisa ser hospedado em um servidor Web, como aqueles criados com Django. O resultado de uma chamada deve ser interpretado por um parser XML. Obriga a definição dos envelopes SOAP em variáveis de texto do Python. Resposta correta Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado! Gabarito Comentado A alternativa correta é a A. A biblioteca Zeep, ao receber o endereço do WSDL �Web Services Description Language) no construtor do cliente, gera automaticamente os stubs. Esses stubs permitem que as chamadas aos métodos expostos sejam feitas de maneira semelhante a chamadas locais, mesmo que estejam sendo transmitidas via protocolo HTTP. Todo esse processo é realizado de forma automática, sem a necessidade de incluir validadores e interpretadores XML, ou de especificar no código o envelope SOAP. Isso torna o processo extremamente simples e produtivo. Além disso, por ser um aplicativo cliente, não há necessidade de hospedagem em um servidor. 3 Marcar para revisão Um sistema está sendo construído para as lojas XPTO, e será necessária uma funcionalidade de busca de lojas por estado, a partir de um recurso visual de seleção. Como os clientes podem acessar o sistema a partir de ambientes móveis ou via Web, o engenheiro de software exige que os dados sejam fornecidos via Web Service RESTful. Qual seria uma assinatura adequada, em Python, para o fornecimento das lojas a partir da UF, obedecendo o padrão REST? Resposta correta Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado! Gabarito Comentado Ao utilizarmos uma anotação app.route, devemos informar a rota e os métodos HTTP aceitos para acesso ao endereço, e se nenhuma informação acerca desses métodos estiver presente, será utilizado o método GET por padrão. Segundo a arquitetura REST, devemos adotar o DELETE para exclusão, PUT para alteração, POST para inclusão e GET para consulta, e no caso de uma pesquisa filtrada, a chave de pesquisa deve ser fornecida no último segmento da rota. Para o fornecimento da rota em app.route, o parâmetro de pesquisa deve ser colocado entre os sinais de menor e maior, sendo capturado em um parâmetro de mesmo nome na função. Logo, a assinatura, no padrão REST, seria 4 Marcar para revisão Um sistema de boa complexidade, na área financeira, é composto de módulos CORBA, criados em C��, módulos EJB, da plataforma Java, com acesso ao banco de dados DB2, e interfaces gráficas criadas em Delphi. Os serviços são expostos e consumidos no formato SOAP, além de orquestrados na sintaxe BPEL. No caso descrito, qual arquitetura estaria sendo adotada? MVC Pipeline SOA PAC Broker Resposta correta Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado! Gabarito Comentado O sistema descrito na questão é caracterizado pela arquitetura SOA �Service Oriented Architecture). Esta arquitetura é adotada quando se trabalha com diferentes plataformas, incluindo sistemas legados, que se comunicam através da exposição de serviços com formatos padronizados. Um componente importante da arquitetura SOA é o ESB �Enterprise Service Bus), onde ocorre a combinação dos serviços via BPEL. É comum o uso dos modelos SOAP ou REST para fornecimento dos serviços na arquitetura SOA. Embora a arquitetura Broker seja evidente para os objetos distribuídos, incluindo EJB e CORBA, isso não define a arquitetura do sistema como um todo. Da mesma forma, não é possível afirmar se os componentes internos utilizaram arquiteturas baseadas em camadas, como MVC ou PAC. O modelo Pipeline, por sua vez, apenas define a saída de um programa alimentando a entrada seguinte, dentro do fluxo de execução, sem a definição de serviços. Portanto, a alternativa correta é a SOA. 5 Marcar para revisão O banco de dados PostgreSQL é amplamente utilizado no mercado de desenvolvimento, pois apresenta ótimas características como repositório de dados. Entre as opções apresentadas, qual delas define corretamente uma característica do banco de dados PostgreSQL? Segue o modelo NoSQL documental, com armazenamento no formato JSON. Não oferece suporte a transações, sendo gerados apenas logs de execução. Permite apenas uma instância de banco por servidor. Oferece uma ferramenta gráfica de administração denominada pgAdmin. Segue o modelo NoSQL baseado em grafos. Resposta correta Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado! Gabarito Comentado O PostgreSQL é um sistema de gerenciamento de banco de dados relacional, o que contradiz diretamente os modelos NoSQL. Ele possui um excelente suporte para transações e permite o gerenciamento de várias instâncias de banco de dados no mesmo servidor. Além disso, para facilitar a administração e aumentar a produtividade, o PostgreSQL oferece uma ferramenta gráfica chamada pgAdmin. Portanto, a alternativa que define corretamente uma característica do banco de dados PostgreSQL é a alternativa D� "Oferece uma ferramenta gráfica de administração denominada pgAdmin". 6 Marcar para revisão Suponha uma classe DAO, implementada em Python, com acesso ao banco de dados através do SQL Alchemy, onde as entidades utilizam o modelo declarativo do framework. Ao construir um Web Service RESTful, com base no Flask, quais seriam os passos de codificação necessários para definir um processo de inclusão via HTTP? Definir uma função tendo a entidade como parâmetro, anotada para uma rota parametrizada, via app.route, com base no método PUT do HTTP; e invocar o método de inclusão do DAO, com a passagem da entidade obtida a partir da rota. Definir uma função sem parâmetros, anotada para a rota de base, via app.route, com base no método POST; obter os dados, com request.get_json; instanciar a entidade com os dados JSON obtidos; e invocar o método de inclusão do DAO com a passagem da entidade. Definir uma função tendo a entidade como parâmetro, anotada para uma rota parametrizada, via app.route, com base no método POST do HTTP; transformar parao formato JSON via função jsonify; e invocar o método de inclusão do DAO, com a passagem dos dados no formato JSON. Definir uma função sem parâmetros, anotada para a rota de base, via app.route; obter uma entidade com json.loads; e invocar o método de inclusão do DAO com a passagem da entidade. Definir uma função sem parâmetros, anotada para a rota de base, via app.route; obter uma entidade no atributo content de requests.get; transformar para o formato JSON via jsonify; e invocar o método de inclusão do DAO, com a passagem dos dados no formato JSON. Resposta correta Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado! Gabarito Comentado De acordo com o padrão REST, a inclusão de dados é realizada na rota de base, utilizando o método POST do HTTP. Isso implica na criação de uma função de tratamento que não possui parâmetros, a qual é anotada com app.route para as características mencionadas. Dentro do corpo desta função, os dados da requisição, que são fornecidos no formato JSON, devem ser recuperados utilizando request.get_json. No entanto, o DAO opera apenas com entidades, portanto, é necessário instanciar uma entidade com os dados recuperados. Finalmente, o método de inclusão do DAO é invocado, passando a entidade como argumento. Portanto, a alternativa B é a correta, pois descreve corretamente este processo. 7 Marcar para revisão Quando trabalhamos com ambientes interoperáveis, uma necessidade básica é a definição de um padrão aberto para a descrição dos serviços que serão expostos para outras plataformas. Para os Web Services do tipo SOAP, qual foi o padrão definido? WSDL IDL OMG�IDL WADL UDDI Resposta correta Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado! Gabarito Comentado Em ambientes interoperáveis, é crucial definir um padrão aberto para descrever os serviços que serão disponibilizados para outras plataformas. No caso dos Web Services do tipo SOAP, o padrão definido é o WSDL �Web Services Description Language). Este padrão é usado para descrever a funcionalidade oferecida por um serviço web. Além disso, é importante mencionar que o UDDI é utilizado para o registro desses serviços. Para os Web Services RESTful, o formato WADL é adotado para a descrição dos serviços. Já o RPC utiliza o IDL e o CORBA trabalha com o OMG�IDL. 8 Marcar para revisão Em comparação com a abordagem tradicional de desenvolvimento, com todos os módulos e funcionalidades em um bloco único, a abordagem baseada em microsserviços prega que as aplicações sejam desmembradas em componentes mínimos e independentes, os quais precisam trabalhar juntos para realizar tarefas. Existem múltiplas vantagens nessa nova abordagem, mas ______________________ NÂO É uma delas. Qual opção completa corretamente a lacuna? Compartilhamento de Funções e Processos entre várias Aplicações Grande Escalabilidade Garantia de Responsividade Maior facilidade na criação de Testes Unitários Alta Disponibilidade Resposta correta Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado! Gabarito Comentado No que se refere ao compartilhamento de funcionalidades, Interoperabilidade é a característica primordial do novo modelo. Além da interoperabilidade, com a fragmentação do sistema temos melhorias em termos de Escalabilidade e Disponibilidade, além de facilidades no projeto e execução de Testes Unitários. A única característica que NÃO É uma vantagem do novo modelo é a Garantia de Responsividade, já que trata de elementos de back-end, com o simples trânsito de dados, sem qualquer interface gráfica para interação com o usuário. 9 Marcar para revisão Ao contrário dos Web Services, que apenas fornecem dados, a partir da exposição de serviços, sem a definição de uma interface de usuário, nos aplicativos Web temos o retorno de conteúdo HTML para cada requisição efetuada, permitindo a interação com o usuário através de um navegador, como Chrome ou Edge. No caso do Django, podemos tratar a requisição através de uma função Python, direcionando os resultados para um template HTML, como no trecho de código apresentado a seguir. Qual a informação correta acerca da função apresentada? Não é necessário mapear a rota, sendo assumido o nome da função de forma automática. Os dados serão enviados para um template com o nome index.html, no diretório templates, através de um dicionário que é associado ao parâmetro context. Para que seja criado o conteúdo HTML de saída, é utilizado um cliente zeep, apontando para o descritor de um serviço. O parâmetro request é opcional, colocado aqui apenas para facilitar o entendimento. Para os dados obtidos do Web Service SOAP via cliente zeep, será necessário utilizar um parser XML ao nível do template HTML. Resposta correta Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado! Gabarito Comentado Uma função de tratamento tem obrigatoriamente um parâmetro request, para receber a requisição HTTP, e deve ser mapeada para uma rota no arquivo urls.py. Podemos obter os dados a partir de um Web Service SOAP, de forma simples, com base em um cliente zeep, sem a necessidade de parsers XML, e os dados obtidos serão transmitidos para o template através de um dicionário Python. Ao final da função, ocorre o retorno do conteúdo HTML, com base na chamada para render, onde é utilizado o elemento request, e os dados são enviados para o template correto (index.html), associando o dicionário gerado ao parâmetro context. 10 Marcar para revisão Ao trabalharmos no ambiente Python, qual biblioteca permite a definição de Web Services do tipo SOAP, entre outros serviços no estilo RPC, de forma simples, com base em um pequeno conjunto de anotações e seguindo o paradigma orientado a objetos? django lxml zeep pandas spyne Resposta correta Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado! Gabarito Comentado A biblioteca correta é a spyne. Ela permite a definição de serviços SOAP, com base em classes que descendem de ServiceBase. Os métodos expostos nessa biblioteca devem utilizar a anotação rpc. Para que os Web Services sejam executados, eles são hospedados em um servidor Web, que pode ser definido via Django. A validação do formato XML é realizada através de bibliotecas como o lxml. Quanto ao zeep, ele é utilizado no cliente, enquanto o pandas é utilizado para análises estatísticas. Portanto, a alternativa correta é a spyne, que permite a definição de Web Services do tipo SOAP de maneira simples e orientada a objetos. Questão 1 de 10 Corretas �10� Em branco �0� 1 2 3 4 5 6 7 8 9 10 Exercicio Web Services Em Python Sair