GoConqr has a new look! Let us know what you think.

Mind map

Web Service C#

Adriano Oliveira Portuguese

Map content

Web Service C#

  1. 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
      • 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]
    • 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
          • 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
  2. 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
  3. 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
  4. 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.
    • 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

Information

Description
Mind Map on Web Service C#, created by Adriano Oliveira on 15/01/2017.
Created by
Adriano Oliveira · Jan 2017
Updated
Feb 3, 2018
Views
0
Rating

Feedback

What is it about?

What do you think of the new look?

How do you like it?