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

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 de exemplo descrito abaixo é usado para demonstrar como acessar diferentes tipos de back-ends de serviço Web com Xamarin.Formso . 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 que é 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 conduz o aplicativo para uma segunda página, onde a tarefa pode ser editada, salva, excluída e falada. O aplicativo final é mostrado abaixo:

Todo aplicativo - primeira páginaTodo aplicativo - 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 principais:

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 classe, que modela TodoItem um único item de dados usado pelo aplicativo. A pasta também pode incluir quaisquer classes adicionais usadas para modelar dados do usuário.
Exibições Contém as páginas do aplicativo. Isso geralmente consiste nas TodoListPage classes e TodoItemPage e quaisquer 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 quaisquer constantes usadas pelo aplicativo para se comunicar com o serviço Web. Essas constantes exigem atualização para acessar seu 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.

Páginas de exibição

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

  • TodoListPage – esta página exibe uma lista de instâncias e um ícone de TodoItem tick se a TodoItem.Done propriedade for true. Clicar em um item navega até o TodoItemPage. Além disso, novos itens podem ser criados clicando no + símbolo.
  • TodoItemPage – esta página exibe os detalhes do , TodoItemselecionado e 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 que são 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 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 TodoItemManager no 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.