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:
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 aTodoItem.Done
propriedade fortrue
. Clicar em um item navega até oTodoItemPage
. Além disso, novos itens podem ser criados clicando no + símbolo. - TodoItemPage – esta página exibe os detalhes do ,
TodoItem
selecionado 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 noTodoListPage
com asTodoItem
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.