Aula 25: Web Services (III)
|
|
|
- Gabriella Giovanna Coelho Molinari
- 7 Há anos
- Visualizações:
Transcrição
1 Aula 25: Web Services (III) Diego Passos Universidade Federal Fluminense Técnicas de Projeto e Implementação de Sistemas II Diego Passos (UFF) Web Services (III) TEPIS II 1 / 39
2 Última Aula A API JAX-WS. Como escrever Big Web Services. Montagem e disponibilizaçao. Geração dos artefatos. Como escrever um cliente. Mapeamento de tipos de dados. Diego Passos (UFF) Web Services (III) TEPIS II 2 / 39
3 Aula de Hoje RESTful Web Services: Visão geral. A API JAX-RS. Como escrever RESTful Web Services. Tipos de anotações utilizadas. Provedores de Entidades. Recebendo parâmetros. Informações contextuais. Diego Passos (UFF) Web Services (III) TEPIS II 3 / 39
4 RESTful Web Services: Visão Geral Até agora, discutimos um tipo específico de Web Services: os Big Web Services. Padrão do W3C. Baseado em SOAP, XML. Relativamente complexos. Uma alternativa em voga atualmente são os RESTful Web Services. Baseados no padrão arquitetural REST (Representational State Transfer). Abstração da arquitetura da Web. O padrão REST determina uma série de restrições na iteração entre os componentes do sistema. Diego Passos (UFF) Web Services (III) TEPIS II 4 / 39
5 RESTful Web Services: Visão Geral (II) Exemplos de restrições impostas pelo padrão REST: Modelo cliente-servidor. Comunicação stateless. Respostas podem ser cacheadas. Interface uniformizada dos serviços. Uso de URIs (identificam funcionalidades e recursos). Mensagens auto-descritivas (contém toda a informação necessária para entendê-las; não sendo necessário estado). Estado do sistema só muda através da interação do cliente com hypermidia. Diego Passos (UFF) Web Services (III) TEPIS II 5 / 39
6 RESTful Web Services: Visão Geral (III) Em termos práticos, a diferença entre Big Web Services e RESTful Web Services está na padronização. Os Big Web Services são padronizados e por isso demandam a geração de inúmeros artefatos. Como o arquivo WSDL, por exemplo. O conceito de RESTful Web Service é bem mais flexível. Qualquer serviço ofertado pela Web que esteja de acordo com as restrições arquiteturais REST. Esta liberdade faz com que seja mais fácil desenvolver um Web Service do tipo REST. Por outro lado, é difícil elaborar uma API genérica, especialmente do lado do cliente. Diego Passos (UFF) Web Services (III) TEPIS II 6 / 39
7 RESTful Web Services: JAX-RS O J2EE inclui uma API para auxiliar na criação de RESTful Web Services. JAX-RS. Análoga à JAX-WS. Utiliza bastante o conceito de anotações. Desenvolvedor anota classes e métodos definindo recursos e ações que podem ser executadas. As anotações do JAX-WS são de tempo de execução. São interpretadas por um servidor de aplicação para gerar as classes auxiliares necessárias para implantar o Web Service. Diego Passos (UFF) Web Services (III) TEPIS II 7 / 39
8 JAX-RS: Anotações Há um grande número de anotações na API. Alguns Identifica a URL para a qual a classe será mapeada. O atributo especificado para esta anotação será usado como o sufixo da URI. Considerando o endereço base do Um método anotado com esta anotação processará requisições HTTP do tipo GET. Há anotações para outros Diego Passos (UFF) Web Services (III) TEPIS II 8 / 39
9 JAX-RS: Anotações Define o tipo MIME da resposta gerada pelo serviço. e.g., plain/text, Define o tipo MIME da entrada provida pelo cliente. e.g., plain/text, application/json. Diego Passos (UFF) Web Services (III) TEPIS II 9 / 39
10 JAX-RS: Exemplo de Código import javax.ws.rs.get; import javax.ws.rs.produces; import javax.ws.rs.path; // The Java class will be hosted at the URI path public class HelloWorldResource { // The Java method will process HTTP GET // The Java method will produce content identified by the MIME Media // type public String getclichedmessage() { // Return some cliched textual content return "Hello World"; Web Service servido na URL (relativa) /helloworld. Requisições HTTP do tipo GET resultam em chamadas ao método getclinchedmessage(). Saída gerada para o cliente é do tipo text/plain. Diego Passos (UFF) Web Services (III) TEPIS II 10 / 39
11 JAX-RS: Exemplo de Código (II) E se precisarmos receber conteúdo public void postclichedmessage(string message) { // Store the message Conteúdo da requisição do usuário é passado como parâmetro (String) do método. Diego Passos (UFF) Web Services (III) TEPIS II 11 / 39
12 JAX-RS: A e Templates Vimos um uso bastante simplificado da Ela recebia como atributo uma String especificando uma URL estática (/helloworld). Esta anotação, no entanto, é bem mais poderosa. Ela permite que especifiquemos templates. Estes templates podem ser usados, por exemplo, para usarmos parte de uma URL como uma variável/parâmetro. Diego Passos (UFF) Web Services (III) TEPIS II 12 / 39
13 JAX-RS: A e Templates (II) Considere o seguinte exemplo: Queremos criar um Web Service para consultar informações sobre usuários de um sistema. O Web Service será mapeado para a URL /users/. O cliente deve especificar o nome do usuário (do qual quer obter informações). Uma opção seria colocar o nome do usuário no corpo da requisição. Ao invés disso, podemos usar uma solução baseada em public class public String getuser(@pathparam("username") String username) {... A sintaxe {username cria uma variável username. Se o cliente acessa a URL /users/diego esta variável terá o valor diego. Esta variável pode ser acessada pelos métodos. Diego Passos (UFF) Web Services (III) TEPIS II 13 / 39
14 JAX-RS: A e Templates (III) É possível ainda especificar o formato das variáveis através de expressões regulares. Suponha no exemplo anterior que nomes de usuário só podem ser compostos por letras e números. Podemos restringir isso com a seguinte [a-za-z][a-za-z0-9]*") public class public String getuser(@pathparam("username") String username) {... Se tentamos acessar a URL /users/diego3, o acesso é bem sucedido. Se tentamos acessar a URL /users/diego_passos, recebemos um erro 404. Diego Passos (UFF) Web Services (III) TEPIS II 14 / 39
15 JAX-RS: A e Templates (IV) Também podemos definir um template com mais de uma variável. Exemplo: queremos nome e sobrenome do public class public String getuser(@pathparam("nome") String String sobrenome) { return "Nome completo: " nome + " " + sobrenome; Diego Passos (UFF) Web Services (III) TEPIS II 15 / 39
16 JAX-RS: A e Templates (V) Algumas outras observações: Uma mesma variável pode ser especificada múltiplas vezes em uma Neste caso, só serão aceitas requisições a URLs cujos dois últimos componentes sejam iguais. Variáveis podem ser vazias. Cliente acessa URL /users//home. Variável nome ganha o valor (String vazia). Note ainda que a pode ser usada para métodos específicos. Aquele método será mapeado para aquela URL. Diego Passos (UFF) Web Services (III) TEPIS II 16 / 39
17 JAX-RS: Anotações Designadoras de Métodos de Requisição São anotações utilizadas para associar um método HTTP a um método da classe. Vimos exemplos de uso de São também incluir um remover um informações sobre um recurso. Os métodos HTTP HEAD e OPTIONS são suportados por padrão, mesmo se não implementados explicitamente. Implementação padrão do HEAD retorna o mesmo que a implementação do GET, sem o conteúdo. Diego Passos (UFF) Web Services (III) TEPIS II 17 / 39
18 JAX-RS: Anotações Designadoras de Métodos de Requisição (II) A implementação do OPTIONS é mais interessante. Ela retorna (como esperado) o conjunto de requisições que são suportadas. Mas também retorna um documento WADL: <?xml version="1.0" encoding="utf-8" standalone="yes"?> <application xmlns=" <doc xmlns:jersey=" jersey:generatedby="jersey: :09:00"/> <grammars/> <resources base=" <resource path="basicpost"> <method id="postclinchedmessage" name="post"> <request> <representation mediatype="text/plain"/> </request> <response> <representation mediatype="text/plain"/> </response> </method> </resource> </resources> </application> Diego Passos (UFF) Web Services (III) TEPIS II 18 / 39
19 JAX-RS: Anotações Designadoras de Métodos de Requisição (III) O WALD é um formato de documento utilizado para descrever aplicações Web em geral. Hoje, o exemplo mais comum de uso é com os RESTful Web Services. Provê informação sobre as operações oferecidas. Parâmetros esperados. Formato da entrada. Formato da resposta. É o equivalente para RESTful Web Services do WSDL para Big Web Services. Diego Passos (UFF) Web Services (III) TEPIS II 19 / 39
20 JAX-RS: Anotações Designadoras de Métodos de Requisição (IV) Não há uma assinatura definida para os métodos de requisição. Eles podem receber inúmeros parâmetros (e.g., extraídos do template da Eles podem ter vários tipos de retorno diferentes. Mas há algumas restrições: O tipo de retorno deve ser void, um tipo básico de Java, ou um javax.ws.rs.core.response. Este último provê uma maneira de manipular metadados da resposta. Diego Passos (UFF) Web Services (III) TEPIS II 20 / 39
21 JAX-RS: Incluindo Metadados nas Respostas Isso é feito com as classes Response e ResponseBuilder. Exemplo de funcionalidades: Definição de cookies. Definição de headers. Definição de código de status. Definição do media type. Exemplo de public class public Response getuser(@pathparam("nome") String { return Response.status(404).entity("User not found").build(); Diego Passos (UFF) Web Services (III) TEPIS II 21 / 39
22 JAX-RS: Provedores de Entidades Suponha que desejemos escrever um Web Service que adiciona um usuário a uma base de dados. Usuários têm as seguintes propriedades: Nome completo. Apelido. Data de nascimento. CPF. Senha. Temos uma classe User com esta representação. O Web Service recebe estes dados no corpo de uma requisição POST. Como obter, a partir da requisição, um objeto do tipo User? Diego Passos (UFF) Web Services (III) TEPIS II 22 / 39
23 JAX-RS: Provedores de Entidades (II) Primeira abordagem: receber o corpo da requisição como texto e fazer o parse. @Produces("text/plain") public String postclichedmessage(string message) { User u = new User(); // Parse da mensagem e preenchimento do objeto.... // Adição do usuário à base.... // Envio da resposta ao usuário.... Há muita coisa sendo feita neste método. Note também que a assinatura do método é enganosa: Implicitamente, o método espera que o corpo da mensagem seja um User. Ou melhor, sua representação em texto. Diego Passos (UFF) Web Services (III) TEPIS II 23 / 39
24 JAX-RS: Provedores de Entidades (III) Podemos implementar isso de outra forma: usando um provedor de entidade. Exemplo public class UserUnmarshaller implements MessageBodyReader public boolean isreadable(class aclass, Type type, Annotation[] annotations, MediaType mediatype) { return public Object readfrom(class aclass, Type type, Annotation[] annotations, MediaType mediatype, MultivaluedMap multivaluedmap, InputStream inputstream) throws IOException, WebApplicationException { User result = null; try { // Parse da mensagem (lida do inputstream). // Resultado deve ser colocado no objeto result. //... catch (Exception e) { e.printstacktrace(); return result; Diego Passos (UFF) Web Services (III) TEPIS II 24 / 39
25 JAX-RS: Provedores de Entidades (IV) A classe do slide anterior implementa um decodificador para o tipo de mídia text/user. Fictício, criado para este exemplo. Tendo a classe UserUnmarshaller carregada, podemos usar este tipo de mídia para tornar transparente o parse @Produces("text/plain") public String postclichedmessage(user u) { // Já recebemos automaticamente uma instância de User preenchida com os dados da requisição. // Basta fazer a inserção no banco.... // Envio da resposta ao usuário.... Diego Passos (UFF) Web Services (III) TEPIS II 25 / 39
26 JAX-RS: Provedores de Entidades (V) Podemos fazer também o processo inverso. Na resposta, enviamos um User. Ou melhor, sua representação textual. Novamente, ao invés de fazer o próprio método, escrevemos um provedor de entidade. Neste caso, no entanto, como se trata de uma resposta, o provedor precisa fazer a operação contrária. Este provedor deve implementar a interface MessageBodyWriter. Diego Passos (UFF) Web Services (III) TEPIS II 26 / 39
27 JAX-RS: Provedores de Entidades (VI) Para tipos mais comuns, a JAX-RS já provê provedores de entidades padrão. Estes provedores mapeiam tipos comuns do Java a tipos de mídia comuns. Por exemplo: byte[] */*. String text/*. File */*. MultivaluedMap<String,String> application/x-www-form-urlencoded. Para usá-los, basta definir o método com os tipos de parâmetro/retorno adequados aos tipos de mídia. Diego Passos (UFF) Web Services (III) TEPIS II 27 / 39
28 JAX-RS: Como visto nos exemplos anteriores, esta anotação declara o tipo de conteúdo que é produzido por um dado método. A anotação também pode ser usada na declaração da classe. Neste caso, todos os métodos podem produzir o tipo especificado de conteúdo. Se um método específico declara a anotação, esta se sobrepõe à anotação da classe. Note que a anotação define os tipos de dados que podem ser gerados pelos métodos. Por isso, a anotação pode conter mais de um tipo. Diego Passos (UFF) Web Services (III) TEPIS II 28 / 39
29 JAX-RS: Quando um cliente envia uma requisição, ele pode especificar um conjunto de formatos aceitáveis. Neste caso, o JAX-RS procura entre todos os métodos que atendem àquele tipo de requisição o que se encaixa melhor ao que o cliente requisitou. Se nenhum método se encaixa, servidor retorna um erro public class SomeResource public String public String dogetashtml() {... Diego Passos (UFF) Web Services (III) TEPIS II 29 / 39
30 JAX-RS: Também já vista em exemplos anteriores. Equivalente para dados de entrada. Segue as mesmas convenções da Pode ser aplicada a uma classe inteira. Pode receber mais de uma especificação de formato de dados. JAX-RS utiliza para identificar qual o método (mais) adequado para tratar uma requisição. De forma similar à se nenhum método declara consumir um dado formato, é retornado um erro 415. Diego Passos (UFF) Web Services (III) TEPIS II 30 / 39
31 JAX-RS: Recebendo Parâmetros Vimos anteriormente um exemplo de obtenção de parâmetros através da URL. Definimos um template usando a Declaramos parâmetros de métodos usando a Mas existem muitas maneiras de um cliente codificar seus parâmetros em uma requisição HTTP: Query. Form. Cookies. Headers. Matrix. A JAX-RS suporta todas estas formas. Diego Passos (UFF) Web Services (III) TEPIS II 31 / 39
32 JAX-RS: Query Parameters São parâmetros passados em uma URL explicitamente. Exemplo: Podemos acessar estes parâmetros com a Podemos ainda definir valores padrão com a Usados em caso public ColorParam lastcolor ) {... Diego Passos (UFF) Web Services (III) TEPIS II 32 / 39
33 JAX-RS: Query Parameters Há restrições em relação aos tipos dos parâmetros. Só se pode usar tipos com as seguintes características: Tipos primitivos, exceto char. Classes correspondentes a tipos primitivos, exceto Character. Qualquer classe com construtor que recebe um único argumento do tipo String. Qualquer classe com um método estático valueof(string). List<T>, Set<T>, SortedSet<T>, onde T cai em um dos casos anteriores. Usado para atributos multi-valorados. Caso não seja possível mapear o valor presente na URL para o tipo do parâmetro, é gerado um erro 400. Exemplo: parâmetro declarado como int, usuário especifica valor teste. Diego Passos (UFF) Web Services (III) TEPIS II 33 / 39
34 JAX-RS: Outros Tipos de Parâmetros Há suporte para as seguintes outras anotações relacionadas a associa um parâmetro a um cookie enviado pelo associa um parâmetro a um header da associa um parâmetro a um campo de formulário enviado pelo associa um parâmetro ao matrix parameter correspondente. Matrix parameters são similares aos query parameters. Mas permitem diferenciar parâmetros por nível da URL. Exemplo: Em todos os casos, a correspondência é feita pelo nome. Nome do parâmetro declarado no método deve bater com o nome do cookie/header/... Note que, no caso o tipo de conteúdo deve ser application/x-www-form-urlencoded. Diego Passos (UFF) Web Services (III) TEPIS II 34 / 39
35 JAX-RS: A Anotação especial que pode ser usada em certos parâmetros de um método. Permite obter informações contextuais. Referências a objetos específicos que contem informações sobre a requisição. Exemplo: Objeto UriInfo: permite obtenção de informações sobre a URL. Objeto HttpHeaders: permite acesso mais direto aos headers. Diego Passos (UFF) Web Services (III) TEPIS II 35 / 39
36 JAX-RS: A (II) Exemplo de public String get(@context UriInfo HttpHeaders hh) { MultivaluedMap<String, String> queryparams = ui.getqueryparameters(); MultivaluedMap<String, String> pathparams = ui.getpathparameters(); MultivaluedMap<String, String> headerparams = hh.getrequestheaders(); Map<String, Cookie> pathparams = hh.getcookies();... return ui.getabsolutepath().tostring(); Diego Passos (UFF) Web Services (III) TEPIS II 36 / 39
37 JAX-RS vs. Servlets De certa forma, a JAX-RS é bem parecida com os Servlets HTTP. Ambos permitem criar aplicações Web. Escrevemos uma classe que é mapeada para uma ou mais URLs. Métodos específicos nesta classe são chamados pelo container quando tipos específicos de requisição são recebidas. Podemos manipular parâmetros, cookies, headers... Qual a diferença, então? Ambas as tecnologias são equivalentes? Diego Passos (UFF) Web Services (III) TEPIS II 37 / 39
38 JAX-RS vs. Servlets (II) A resposta é não. Servlets são componentes capazes de tratar requisições (tipicamente HTTP) em um nível bastante baixo. É possível manipular todos os aspectos das requisições e respostas, desde que obedecidas as regras do protocolo HTTP. Podemos, por exemplo, criar um Web Service RESTful. A JAX-RS é uma API especificamente dedicada a criação de serviços RESTful. Temos controle sobre muita coisa, mas dentro das limitações arquiteturais REST. Por exemplo, não podemos (ou não deveríamos) guardar estado interno sobre os clientes através de sessões. Em suma: É mais fácil implementarmos serviços RESTful com a JAX-RS. Mas temos mais liberdade arquitetural com os Servlets. Diego Passos (UFF) Web Services (III) TEPIS II 38 / 39
39 Referências Conteúdo e exemplos baseados em: Tutorial da Oracle sobre Web Services. Diego Passos (UFF) Web Services (III) TEPIS II 39 / 39
Web Services REST JAX-RS
Web Services REST JAX-RS Professor: Ricardo Luis dos Santos IFSUL 2015 Agenda Principais tecnologias envolvidas Testando os serviços desenvolvidos JAX-RS Principais anotações JAX-RS Principais anotações
REST RESTfulWeb Services JAX-RS
Web Services REST Web Service Serviço oferecido por um sistema que pode ser acessado diretamente por outro sistema desenvolvido em qualquer tecnologia através de uma rede como a internet. Cada plataforma
Web Services no JEE 7. Prof. Fellipe Aleixo ([email protected])
Web Services no JEE 7 Prof. Fellipe Aleixo ([email protected]) O que são Web Services? Web services are client and server applications that communicate over the World Wide Web's (WWW) HyperText
Web Services REST e JSON
Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Objetivos Nesta aula
Web Services REST. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo
Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Objetivos Nesta aula
A composição de uma Java Server Pages (Diretivas, Elementos de Script e Objetos Implícitos)
Desenvolvimento de Sistemas Web A composição de uma Java Server Pages (Diretivas, Elementos de Script e Objetos Implícitos) Prof. Mauro Lopes 1-31 24 Objetivos Dando continuidade aos estudos sobre JSP,
Prática da Disciplina de Sistemas Distribuídos Web Services REST IFMA DAI Professor Mauro Lopes C. Silva
1. O que é REST e RESTful? Prática da Disciplina de Sistemas Distribuídos Web Services REST IFMA DAI Professor Mauro Lopes C. Silva Nos últimos tempos, uma forte tendência vem mudando a forma de pensar
EA975 - Laboratório de Engenharia de Software
EA975 - Laboratório de Engenharia de Software Turmas K/L - 2017 Aula 8 Vamos inicialmente especificar com mais detalhes o termo "recurso" utilizado no estilo arquitetural REST. Em REST, recursos são uma
Java Server Pages (Diretivas, Elementos de Script e Objetos Implícitos)
Linguagem de Programação para Web Java Server Pages (Diretivas, Elementos de Script e Objetos Implícitos) Prof. Mauro Lopes 1-31 28 Objetivos Dando continuidade aos estudos sobre JSP, apresentaremos os
EA975 - Laboratório de Engenharia de Software
EA975 - Laboratório de Engenharia de Software Turmas K/L - 2017 Aula 1 O que vamos desenvolver? Vamos desenvolver uma aplicação distribuída, empregando a arquitetura 3-Tier segundo o estilo REST/HTTP (Respresentational
REST. Representational State Transfer. É um estilo arquitetural usado por muitas aplicações Web para estender as suas funcionalidades.
REST Representational State Transfer É um estilo arquitetural usado por muitas aplicações Web para estender as suas funcionalidades. Não é um padrão. Exemplo ASP.NET Web API namespace WebAPIApp.Models
Programação Orientada a Objectos - P. Prata, P. Fazendeiro
3 Classes e instanciação de objectos (em Java) Suponhamos que queremos criar uma classe que especifique a estrutura e o comportamento de objectos do tipo Contador. As instâncias da classe Contador devem
Java RMI. RMI Remote Method Invocation. Chamadas Remotas de Procedimentos (RPC) RPC - Implementação
Java Remote Method Invocation Java Remote Method Invocation () é um protocolo Java para comunicação entre processos Permite objetos Java invocar transparentemente métodos de outros objetos (que podem estar
serviços web J A V A E E 7 RESTful com JAX-RS Helder da Rocha Atualizado em dezembro de 2014
serviços web RESTful com JAX-RS Helder da Rocha ([email protected]) Atualizado em dezembro de 2014 Sobre este tutorial Este é um tutorial sobre tecnologia JAX-RS (de acordo com a especificação Java EE 7)
Desenvolvimento de Aplicações Distribuídas
SOA e Web Services Pontifícia Universidade Católica de Minas Gerais Instituto de Ciências Exatas e Informática DAD (2019/01) Tópicos Apresentação da disciplina Introdução Desafios e características Arquitetura
Redes de Computadores
Redes de Computadores Camada de Aplicação HTTP FTP SMTP Slide 1 Mensagem de Requisição HTTP linha de pedido (comandos GET, POST,HEAD ) linhas de cabeçalho Carriage return, line feed indica fim da mensagem
Redes de Computadores e Aplicações Camada de aplicação IGOR ALVES
Redes de Computadores e Aplicações Camada de aplicação IGOR ALVES Camada de aplicação Um protocolo da camada de aplicação define como processos de uma aplicação, que funcionam em sistemas finais diferentes,
Classes e Objetos. Sintaxe de classe em Java
Classes e Objetos Classes e Objetos A Programação Orientada a Objetos (POO) é uma técnica de programação que se baseia na construção de classes e utilização de objetos. Os objetos são formados por dados
Web Services. Conceitos, SOAP, WSDL, UDDI, Exemplos. Programação com Objetos Distribuídos (C. Geyer) Web Services 1
Web Services Conceitos, SOAP, WSDL, UDDI, Exemplos Programação com Objetos Distribuídos (C. Geyer) Web Services 1 ! Autores " Sérgio Mergen " Cláudio Geyer " Emanuel Müller Ramos Autoria! Local " Instituto
Iteradores. Iteradores. Isabel Harb Manssour. Roteiro. Coleções
Implementação de Genéricos, Iteradores Isabel Harb Manssour Porto Alegre, maio de 2006 Roteiro Implementação de Genéricos Coleções Conceito de Genérico Implementação Iteradores Conceito Utilização ForEach
Integração de sistemas utilizando Web Services do tipo REST
Integração de sistemas utilizando Web Services do tipo REST Jhonatan Wilson Aparecido Garbo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil [email protected] [email protected]
Registro Nacional de Carteira de Habilitação RENACH. Manual do Produto. Versão 2.1
Registro Nacional de Carteira de Habilitação RENACH Manual do Produto Versão 2.1 Junho/2015 Índice 1. INFORMAÇÕES GERAIS SOBRE O PRODUTO... 3 1.1 CONTEXTO... 3 1.2 OBJETIVO... 3 1.3 NOME... 3 1.4 ENDEREÇO
Web Services. Professor: Ricardo Luis dos Santos IFSUL Campus Sapucaia do Sul
Web Services Professor: Ricardo Luis dos Santos IFSUL 2015 Rápida revisão da última aula 3 Rápida revisão da última aula 1 Listar o filme com o id 475 2 Listar todos os filmes com o título que inicia com
Classes e Objetos INTRODUÇÃO À ORIENTAÇÃO A OBJETOS COM JAVA - MÓDULO II. Classes. Objetos. Um modelo para a criação de objetos
INTRODUÇÃO À ORIENTAÇÃO A OBJETOS COM JAVA - MÓDULO II Classes e Objetos Objetos Um conjunto de estados e comportamentos Classes Um modelo para a criação de objetos 1 Pacotes e Java API Pacotes Um conjunto
Manual de Integração. Tecnologia: WebServices SOAP XML. Área: CDC. Produto: CDC Simplificada (Juridica) Versão: 1.0. Autor: Angelo Bestetti Junior
Manual de Integração Tecnologia: WebServices SOAP XML Área: CDC Produto: CDC Simplificada (Juridica) Versão: 1.0 Autor: Angelo Bestetti Junior Conteúdo Introdução... 3 Considerações Iniciais... 4 Privacidade...
Classes, Métodos e Propriedades
Ambiente de Programação Visual Classes, Métodos e Propriedades Prof. Mauro Lopes 1-31 22 Objetivos Nesta aula iremos dar continuidade aos elementos de programação da Linguagem C#. Iremos apresentar de
arquitetura shared-nothing em 3 camadas
arquitetura shared-nothing em 3 camadas engenharia de sistemas de informação Daniel Cordeiro 29 de agosto de 2017 Escola de Artes, Ciências e Humanidades EACH USP info sobre o projeto projeto: iterações
Programação Orientada a Objectos - P. Prata, P. Fazendeiro
9 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract
2 Versão 1: Funcionalidade Básica e Interface Web
Técnicas de Projeto e Implementação de Sistemas II Descrição do Projeto da Disciplina 1 Introdução O projeto da disciplina consiste na implementação de um sistema de busca de tarifas de passagens aéreas.
Esta categoria mais geral, à qual cada objeto pertence, denominamos de classe; IFSC/POO + JAVA - prof. Herval Daminelli
Esta categoria mais geral, à qual cada objeto pertence, denominamos de classe; Tudo no mundo real pode ser representado por meio do conceito de "objeto": uma planta, uma mesa, uma pessoa, um sentimento,
EA975 - Laboratório de Engenharia de Software
EA975 - Laboratório de Engenharia de Software Turmas K/L - 2017 Aula 7 Componentes de Software Um componente de software é um segmento de código que pode ser reusado, eventualmente após um processo de
Protocolo HTTP. - Características. - Modelo Requisição/Resposta. - Common Gateway Interface (CGI)
Protocolo HTTP - Características - Modelo Requisição/Resposta - Common Gateway Interface (CGI) Características Hypertext Transfer Protocol (HTTP) Protocolo utilizado para transferir documentos de hipertexto
Java para WEB com Struts 2 e Hibernate
Java para WEB com Struts 2 e Hibernate Aula 01 http://fernandoanselmo.orgfree.com [email protected] Apresentação Fernando Anselmo [email protected] 25 anos na área de Desenvolvimento
Informática Parte 26 Prof. Márcio Hunecke
Escriturário Informática Parte 26 Prof. Márcio Hunecke Informática REST A Representational State Transfer (REST), em português Transferência de Estado Representacional, é um estilo de arquitetura que
Webservices LEANDRO MENDES FERREIRA
Webservices LEANDRO MENDES FERREIRA Webservices - Agenda CONCEITOS RPC HTTP SOAP RESTFUL CONCEITOS Conceitos Básicos XML (extensible Markup Language) Liguagem de marcação para descrição de documentos de
UFG - Instituto de Informática
UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares [email protected] Aula 12 Beans Orientados a
1 INTRODUÇÃO CERTIFICADO DE SEGURANÇA SSL AUTENTICAÇÃO WEB METHOD: LOGIN WEB METHOD: LISTBONDCODES...
ÍNDICE 1 INTRODUÇÃO... 3 2 CERTIFICADO DE SEGURANÇA SSL... 3 3 AUTENTICAÇÃO... 4 4 WEB METHOD: LOGIN... 5 5 WEB METHOD: LISTBONDCODES... 6 6 WEB METHOD: LISTBONDCODESCSV... 6 7 WEB METHOD: LISTTITULOSPUBLICOS...
Sistemas Distribuídos na Web
Sistemas Distribuídos na Web Alysson Neves Bessani Departamento de Informática Faculdade de Ciências da Universidade de Lisboa Arquitectura da Web Criada por Tim Berners-Lee no CERN de Geneva Propósito:
13/11/15. Incrementando C: C++ E na especificação de BigInt... Arquitetura da solução exemplo. O arquivo de declarações. Explorando a classe BigInt
Incrementando C: permite: Definir uma classe para números grandes; Manter o código bem parecido com o programa C. O mesmo programa em C (e até mesmo em Java) não são tão convenientes e elegantes. #include
O que se espera para o futuro dos Web Services? As tecnologias são respectivamente JSON e REST.
Web Services Por que os Web Services são atrativos para a integração de sistemas? Pois os Web services são componentes que possibilitam que as aplicações se comuniquem utilizando protocolos padrão da internet
EXERCÍCIOS DE REVISÃO DE CONTEÚDO QUESTÕES DISSERTATIVAS
EXERCÍCIOS DE REVISÃO DE CONTEÚDO QUESTÕES DISSERTATIVAS 1. Explique a(s) diferença(s) entre design pattern e framework. 2. Analisar o arquivo de configurações (web.xml) abaixo identificando quais suas
Redes de Computadores I. Sockets e Arquitetura HTTP
v.2016 Redes de Computadores I Sockets e Arquitetura HTTP Prof. Ricardo Couto A. da Rocha [email protected] UFG Regional Catalão HTTP - O Servidor Web Prof. Dr. Ricardo Couto Antunes da Rocha - Depto. de
Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura
Java First-Tier: Aplicações Orientação a Objetos em Java (I) Paradigmas de Programação Programação Funcional Programação Procedural Programação Orientada por Objetos Grupo de Linguagens de Programação
Estrutura de Dados Funções e Procedimentos
Estrutura de Dados Funções e Procedimentos Prof. Salustiano Rodrigues de Oliveira [email protected] www.profsalu.wordpress.com Java A linguagem Java utiliza o paradigma de programação orientada
9 Classes Abstractas e Interfaces
9 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract
INTRODUÇÃO. RPC x RMI
1 INTRODUÇÃO RPC x RMI 2 INTRODUÇÃO RPC Remote procedure call Este termo é utilizado para aplicativos clientes que fazem normalmente chamadas a procedimentos remotos que estão em outro processo e hosts.
Recapitulando. Construtores: (Overload assinatura) public Circle() {...} public Circle(double x, double y, double r) {... }
Recapitulando Orientação a objetos: programas organizados em torno da definição de classes, instanciação de objetos e troca de mensagens. Declaração de variáveis de referencia: Circle c; Criação/instanciação
Classe PHP Client. A classe Zend\Http\Client fornece uma interface para realizar pedidos HTTP.
Classe PHP Client A classe Zend\Http\Client fornece uma interface para realizar pedidos HTTP. O método send() é usado para submeter o pedido ao servidor remoto. Estes pedidos retornam um objeto Zend\Http\Response
>>> RESTful API >>> Com Node.js e Restify. Name: Anderson Pimentel Date: 19 de Março de
>>> RESTful API >>> Com Node.js e Restify Name: Anderson Pimentel Date: 19 de Março de 2018 [email protected] [~]$ _ [1/31] >>> Agenda 1. Introdução 2. Boas Práticas 3. Hands-on Ambiente
Manual de Integração WebService
Manual de Integração WebService Sumário 1. O que é a Integração WebService? 2. Envio Simples 2.1 Envio Múltiplo 3. Consultar Status da Mensagem 3.1 Consultar Mensagens Recebidas 4. Tecnologia do WebService
Modelo de Componentes CORBA
Modelo de Componentes CORBA Cláudia Brito L. N. da Silva [email protected] Roteiro 1. Visão geral 2.! Definindo componentes! Implementando componentes! Empacotando componentes! Instalando componentes!
Manual de Integração do icarta
Manual de Integração do icarta Versão 1.00 Abril 2014 Controle de Versões Versão Data 1.00 16/04/2014 1. Introdução Este documento tem por objetivo a definição das especificações e critérios técnicos necessários
contidos na descrição do serviço para localizar, contactar e chamar o serviço. A figura mostra os componentes e a interação entre eles.
Web Services Web Service é um componente de software identificado por uma URI que independe de implementação ou de plataforma e pode ser descrito, publicado e invocado sobre uma rede por meio de mensagens
GUIA API BTB /04/2019 INFORMAÇÃO PÚBLICA
05/04/019 SUMÁRIO 1 HISTÓRICO DE VERSÕES... 4 INTRODUÇÃO... 5 3 VISÃO GERAL... 5 3.1 Verbos HTTP API - BTB... 5 3. Uso do POST... 6 3.3 Uso do GET... 7 3.4 Endpo... 7 3.5 Restrições... 7 4 ENDEREÇOS DA
Especificação de Integração Linx Microvix WebApi v1.2
X Especificação de Integração Linx Microvix WebApi v1.2 Sumário 1 TECNOLOGIA... 3 2 ESPECIFICAÇÃO... 3 3 ACESSO... 8 4 TIPOS DE DADOS... 9 2/ 11 1 Tecnologia A integração com o Linx Microvix ERP está disponível
REST Um Estilo de Arquitetura de Sistemas Distribuídos
REST Um Estilo de Arquitetura de Sistemas Distribuídos Márcio Alves de Araújo¹, Mauro Antônio Correia Júnior¹ 1 Faculdade de Computação Universidade Federal de Uberlândia (UFU) Monte Carmelo MG Brasil
Danos Pessoais Causados por Veículos Auto Motores de Via Terrestre DPVAT BILHETES. Manual do Produto Versão 2.2
Danos Pessoais Causados por Veículos Auto Motores de Via Terrestre DPVAT BILHETES Manual do Produto Versão 2.2 Junho/2016 Índice 1. INFORMAÇÕES GERAIS SOBRE O PRODUTO... 3 1.1 CONTEXTO... 3 1.2 OBJETIVO...
Capítulo 2. Camada de aplicação
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIADO RIO GRANDE DO NORTE IFRN Disciplina: Arquitetura de redes de computadores e Tecnologia de Implementação de Redes Professor: M. Sc. Rodrigo Ronner T.
1 INTRODUÇÃO CERTIFICADO DE SEGURANÇA SSL AUTENTICAÇÃO WEB METHOD: LOGIN WEB METHOD: LISTBONDCODES...
ÍNDICE 1 INTRODUÇÃO... 3 2 CERTIFICADO DE SEGURANÇA SSL... 3 3 AUTENTICAÇÃO... 4 4 WEB METHOD: LOGIN... 5 5 WEB METHOD: LISTBONDCODES... 6 6 WEB METHOD: LISTBONDCODESCSV... 6 7 WEB METHOD: LISTTITULOSPUBLICOS...
Implementar um exemplo de relacionamento entre classes um para muitos (1:N) e um para um (1:1). Sistema para uma Promotora de Evento Agenda Anual
Aula 09 Objetivo Implementar um exemplo de relacionamento entre classes um para muitos (1:N) e um para um (1:1). Sistema para uma Promotora de Evento Agenda Anual Banco de Dados 1. Crie um novo projeto
Linguagem de Programação III
Linguagem de Programação III Aula-4 Construtores e Sobrecarga Prof. Esbel Tomás Valero Orellana Até Aqui Modelos e POO Classes e sua implementação em Java Encapsulamento Tipos de dados nativos em Java
EA975 - Laboratório de Engenharia de Software. Objetivo do curso. Turmas K/L Aula 1
EA975 - Laboratório de Engenharia de Software Objetivo do curso Exercitar na prática as técnicas de desenvolvimento de software estudadas no curso EA976 - Engenharia de Software. Turmas K/L - 2019 Aula
Sistemas distribuídos. Prof. Emiliano Monteiro
Sistemas distribuídos Prof. Emiliano Monteiro Serviços web (web services) Nos serviços web um cliente específico de uma determinada aplicação interage pela Internet com um serviço que possui uma interface
Base de Dados de Veículos BDV. Documentação do Web Service Versão 1.3
Base de Dados de Veículos BDV Documentação do Web Service Versão 1.3 Índice 1. INFORMAÇÕES GERAIS SOBRE O SERVIÇO... 3 1.1 CONTEXTO... 3 1.2 OBJETIVO... 3 1.3 NOME... 3 1.4 ENDEREÇO DO ARQUIVO WSDL...
Desenvolvimento Web II
Desenvolvimento Web II Web Service PHP Rest Frameworks: Slim e Laravel (get/ post / put / delete) Gil Eduardo de Andrade Web Service Introdução: Um web service pode ser definido como uma tecnologia que
Figura 1: Eclipse criação de um Dynamic Web Project
Prática da Disciplina de Sistemas Distribuídos Web Services Parte 2 IFMA DAI Professor Mauro Lopes C. Silva 1. Criação de um Serviço Rest Utilizando a configuração realizada na prática anterior, iremos
Protocolo HTTP. Professor Leonardo Larback
Protocolo HTTP Professor Leonardo Larback Protocolo HTTP No final da década de 1980, Tim Berners-Lee criou o protocolo HTTP (HyperText Transfer Protocol) e o padrão de arquivo HTML (HyperText Markup Language)
Vetores. IFSC/Florianópolis - Programação Orientada a Objetos + POO - prof. Herval Daminelli
Vetores De modo geral, em linguagem de programação, vetores ou arrays são estruturas de dados que permitem que uma mesma variável possa armazenar mais de um valor; Em Java, vetores são coleções de dados,
Paradigmas de Linguagens de Programação. Suporte para Programação Orientada a Objeto
Suporte para Programação Orientada a Objeto Cristiano Lehrer Categoria das Linguagens que Suportam POO Suporte a POO acrescentado a uma linguagem já existente: C++ (também suporta programação procedural
Capítulo 7. A camada de aplicação
Capítulo 7 A camada de aplicação slide 1 slide 2 DNS Sistema de Nomes de Domínio O espaço de nomes DNS Registros de recursos de domínio Servidores de nome slide 3 O espaço de nomes DNS (1) Parte do espaço
