Xamarin.Forms Introdução aos Serviços Web

Baixar exemplo Baixar o exemplo

Este tópico fornece um passo a passo do Xamarin.Forms aplicativo de exemplo que demonstra como se comunicar com diferentes serviços Web. Embora cada serviço Web use um aplicativo de exemplo separado, eles são funcionalmente semelhantes e compartilham classes comuns.

O aplicativo de lista de tarefas pendentes de exemplo descrito abaixo é usado para demonstrar como acessar diferentes tipos de back-ends de serviço Web com Xamarin.Forms. Ele fornece funcionalidade para:

  • Exibir uma lista de tarefas.
  • Adicionar, editar e excluir tarefas.
  • Defina o status de uma tarefa como "concluído".
  • Fale o nome da tarefa e os campos de anotações.

Em todos os casos, as tarefas são armazenadas em um back-end acessado por meio de um serviço Web.

Quando o aplicativo é iniciado, é exibida uma página que lista todas as tarefas recuperadas do serviço Web e permite que o usuário crie uma nova tarefa. Clicar em uma tarefa navega o aplicativo para uma segunda página em que a tarefa pode ser editada, salva, excluída e falada. O aplicativo final é mostrado abaixo:

Aplicativo Todo – primeira páginaAplicativo todo – segunda página

Cada tópico neste guia fornece um link de download para uma versão diferente do aplicativo que demonstra um tipo específico de back-end de serviço Web. Baixe o código de exemplo relevante na página relacionada a cada estilo de serviço Web.

Entender a anatomia do aplicativo

O projeto de código compartilhado para cada aplicativo de exemplo consiste em três pastas main:

Pasta Finalidade
Dados Contém as classes e interfaces usadas para gerenciar itens de dados e se comunicar com o serviço Web. No mínimo, isso inclui a TodoItemManager classe , que é exposta por meio de uma propriedade na App classe para invocar operações de serviço Web.
Modelos Contém as classes de modelo de dados para o aplicativo. No mínimo, isso inclui a TodoItem classe , que modela um único item de dados usado pelo aplicativo. A pasta também pode incluir classes adicionais usadas para modelar dados do usuário.
Exibições Contém as páginas do aplicativo. Isso geralmente consiste nas classes e TodoItemPage e em todas as TodoListPage classes adicionais usadas para fins de autenticação.

O projeto de código compartilhado para cada aplicativo também consiste em vários arquivos importantes:

Arquivo Finalidade
Constants.cs A Constants classe , que especifica as constantes usadas pelo aplicativo para se comunicar com o serviço Web. Essas constantes exigem atualização para acessar o serviço de back-end pessoal criado em um provedor.
ITextToSpeech.cs A ITextToSpeech interface , que especifica que o Speak método deve ser fornecido por qualquer classe de implementação.
Todo.cs A App classe responsável por instanciar a primeira página que será exibida pelo aplicativo em cada plataforma e a TodoItemManager classe usada para invocar operações de serviço Web.

Exibir páginas

A maioria dos aplicativos de exemplo contém pelo menos duas páginas:

  • TodoListPage – esta página exibe uma lista de TodoItem instâncias e um ícone de escala se a TodoItem.Done propriedade for true. Clicar em um item navega para o TodoItemPage. Além disso, novos itens podem ser criados clicando no + símbolo .
  • TodoItemPage – esta página exibe os detalhes do selecionado TodoIteme permite que ele seja editado, salvo, excluído e falado.

Além disso, alguns aplicativos de exemplo contêm páginas adicionais que são usadas para gerenciar o processo de autenticação do usuário.

Modelar os dados

Cada aplicativo de exemplo usa a TodoItem classe para modelar os dados exibidos e enviados ao serviço Web para armazenamento. O exemplo de código a seguir mostra a classe TodoItem:

public class TodoItem
{
    public string ID { get; set; }
    public string Name { get; set; }
    public string Notes { get; set; }
    public bool Done { get; set; }
}

A ID propriedade é usada para identificar exclusivamente cada TodoItem instância e é usada por cada serviço Web para identificar os dados a serem atualizados ou excluídos.

Invocar operações de serviço Web

As operações de serviço Web são acessadas por meio da TodoItemManager classe e uma instância da classe pode ser acessada por meio da App.TodoManager propriedade . A TodoItemManager classe fornece os seguintes métodos para invocar operações de serviço Web:

  • GetTasksAsync – esse método é usado para preencher o ListView controle no TodoListPage com as TodoItem instâncias recuperadas do serviço Web.
  • SaveTaskAsync – esse método é usado para criar ou atualizar uma TodoItem instância no serviço Web.
  • DeleteTaskAsync – esse método é usado para excluir uma TodoItem instância no serviço Web.

Além disso, alguns aplicativos de exemplo contêm métodos adicionais na TodoItemManager classe , que são usados para gerenciar o processo de autenticação do usuário.

Em vez de invocar as operações de serviço Web diretamente, os TodoItemManager métodos invocam métodos em uma classe dependente que é injetada no TodoItemManager construtor. Por exemplo, um aplicativo de exemplo injeta a RestService classe no TodoItemManager construtor para fornecer a implementação que usa APIs REST para acessar dados.