Mapa mental
Web Service C#
Contenido del mapa
Web Service C#
FrameWork WCF DotNet
- Deve ser adicionado um novo projeto no visual studio do tipo Service WCF Class Library
- Uma interface
- Assine a Interface com [ServiceContract]
- Assine os metodos com [OperationContract]
- Para Web Assine o metodo tambem com [WebInvoke]
- Para usar [webinvoke] Add o assembly System.ServiceModel.Web
- webinvoke pede alguns parametros
- [WebInvoke(Method = "GET" , ResponseFormat = WebMessageFormat.Xml , UriTemplate = "addCliente/{nome};{cpf}")]
- Method, o tipo de requisicao HTTP que faremos. Podendo ser GEt, POST, PUT, DELETE
- ResponseFormat e o formato da respoosta, pode ser XML ou JSON
- UriTemplate a URL digitada para acessar o metodo, para GET os parametros sao passados na URI
- Detalhe os parametros que colocamos entre {} devem ter o mesmo nome dos parametros do nosso metodo
- [WebInvoke(Method = "GET" , ResponseFormat = WebMessageFormat.Xml , UriTemplate = "addCliente/{nome};{cpf}")]
- Para Web Assine o metodo tambem com [WebInvoke]
- Assine os metodos com [OperationContract]
- Uma classe que implementa a interface
- Devemos decorar a classe para informar ao WCF que ele deve serializar esses caras
- Na classe decoramos com [DataContract]
- Nas propriedades com [DataMember]
- Na classe decoramos com [DataContract]
- Devemos decorar a classe para informar ao WCF que ele deve serializar esses caras
- Assine a Interface com [ServiceContract]
- Configurando
- App.Config
- Edit WCF Configurations
- ENDPOINT Behavior
- Temos que configurar um endpoint para podermos acessar o service.
- Para configurar clique com o botao direito sobre o app.config e escolha WCF configuration
- Acesse a carga ENDPOINT Behavior
- Adiciona um novo EndPoint Behavior Va em ADD na lateral e escolha WEB HTTP
- Agora va em Services > NomeAplicacao.NomeService > EndPoints
- BehaviorConfiguration: Escolhao endpoint behavior que voce acabou de cadastrar
- Acesse a carga ENDPOINT Behavior
- Para configurar clique com o botao direito sobre o app.config e escolha WCF configuration
- Temos que configurar um endpoint para podermos acessar o service.
- Services > Projeto.Servico
- Name: Em name nos devemos compilar o projeto, e escolhar a dll gerada pela compilacao
- ENDPOINT
- Adress: O nome a ser digitado na URI para accessa o servico
- Biding: O protocolo de rede para comunicar com o serivco
- Contract: A interface que esse EndPoint ira corresponder
- Para cada interface do nosso servico devemos ter 1 EndPoint
- ENDPOINT Behavior
- Edit WCF Configurations
- App.Config
Padrao REST
- Trabalha com protocolo HTTP e aceita como conteudo XML ou JSON
- Vantagens
- Aceita JSON e muito mais simples
- Desvantagens
- Nem toda linguagem aceita
Padrao SOAP
- Padrao para as mensagens
- Todas mensagens devem ter um cabecalho, um corpo e estarem dentro de um envelope
- Apenas XML
- Vantagens
- Todas as linguagens aceitam
- Desvantagens
- Trabalhar com xml e mais chato
- Padrao para as mensagens
HOSTING
- Nome dado ao processo de disponibilizar o servico para ser consumido
- Criamos um novo projeto do tipo CONSOLE APPLICATION
- Adicionamos a referencia ao projeto do servico, e a System.ServiceModel
- Adicionamos ao using using System.ServiceModel; using System.ServiceModel.Description;
- Vamos utilizar a classe ServiceHost ServiceHost host = new ServiceHost(typeof(UsuarioDao)); Como podemos perceber devemos passar o tipo da nossa classe de servico
- Vamos adicionar um EndPoint Manualmente
- O endpoint necessita de 3 parametros URI, o tipo da interface e o protocolo de comunicacao
- Uri endereco = new Uri("http://localhost:8080/usuario");
- host.AddServiceEndpoint(typeof(IUsuarioDao), new BasicHttpBinding(), endereco);
- Agora vamos utilizar um try catch para abrirmos o servico e deixarmos disponivel
- try { host.Open(); ExibeInformacoesServico(host); Console.ReadLine(); host.Close(); } catch (Exception ex) { host.Abort(); Console.WriteLine(ex.Message); Console.ReadLine(); }
- Veja que usamos um metodo para mostrar os endpoints disponiveis tambem
- public static void ExibeInformacoesServico(ServiceHost sh) { Console.WriteLine("{0} online", sh.Description.ServiceType); foreach (ServiceEndpoint se in sh.Description.Endpoints) { Console.WriteLine(se.Address); } }
- Para iniciar o servico basta fazer o open, para para o close, e caso de algo errado utilizamos o abort.
- Veja que usamos um metodo para mostrar os endpoints disponiveis tambem
- try { host.Open(); ExibeInformacoesServico(host); Console.ReadLine(); host.Close(); } catch (Exception ex) { host.Abort(); Console.WriteLine(ex.Message); Console.ReadLine(); }
- O endpoint necessita de 3 parametros URI, o tipo da interface e o protocolo de comunicacao
- Vamos adicionar um EndPoint Manualmente
- Vamos utilizar a classe ServiceHost ServiceHost host = new ServiceHost(typeof(UsuarioDao)); Como podemos perceber devemos passar o tipo da nossa classe de servico
- Adicionamos ao using using System.ServiceModel; using System.ServiceModel.Description;
- Adicionamos a referencia ao projeto do servico, e a System.ServiceModel
- Apos termos tudo pronto na nossa aplicacao Console, basta executarmos ela como administrador
- Sera criado um conector na porta que configuramos no caminho do servico e ja estaremos respondendo via rede
Información
- Descripción
- Mapa Mental sobre Web Service C#, creado por Adriano Oliveira el 15/01/2017.
- Creado por
- Adriano Oliveira · ene 2017
- Actualizado
- 3 feb 2018
- Visitas
- 0
- Valoración