REST no ASP.NET Core
Quando você navega para uma página da Web, o servidor Web se comunica com seu navegador usando HTML, CSS e JavaScript. Por exemplo, se você interagir com a página enviando um formulário de logon ou selecionando um botão de compra, o navegador enviará as informações de volta ao servidor Web.
De maneira semelhante, os servidores Web podem se comunicar com uma ampla gama de clientes (navegadores, dispositivos móveis, outros servidores Web e muito mais) usando serviços Web. Clientes de API se comunicam com o servidor por HTTP, e os dois trocam informações usando um formato de dados como JSON ou XML. As APIs são frequentemente usadas em SPAs (aplicativos de página única) que executam a maior parte da lógica da interface do usuário em um navegador da Web. A comunicação com o servidor Web acontece principalmente por meio de APIs Web.
REST: um padrão comum para criar APIs com HTTP
REST (Transferência de Estado Representacional) é um estilo de arquitetura para a criação de serviços Web. As solicitações REST são feitas por HTTP. Elas usam os mesmos verbos HTTP que os navegadores da Web usam para recuperar páginas da Web e enviar dados para servidores. Os verbos são:
GET
: recupere dados do serviço Web.POST
: crie um novo item de dados no serviço Web.PUT
: atualize um item de dados no serviço Web.PATCH
: atualize um item de dados no serviço Web, descrevendo um conjunto de instruções sobre como o item deve ser modificado. O aplicativo de exemplo neste módulo não usa esse verbo.DELETE
: exclua um item de dados no serviço Web.
APIs de serviço Web que aderem ao REST são chamadas de APIs RESTful. Elas são definidas usando:
- Um URI de base.
- métodos HTTP, como
GET
,POST
,PUT
,PATCH
ouDELETE
. - Um tipo de mídia para os dados, como JSON (JavaScript Object Notation) ou XML.
Geralmente, uma API precisa fornecer serviços para algumas coisas diferentes e relacionadas. Por exemplo, nossa API de pizza pode gerenciar pizzas, clientes e pedidos. Usamos roteamento para mapear URIs (identificadores de recurso uniformes) para divisões lógicas em nosso código, de modo que as solicitações para https://localhost:5000/pizza sejam roteadas para PizzaController
, e as solicitações para https://localhost:5000/order sejam roteadas para OrderController
.
Benefícios de criar APIs no ASP.NET Core
Com o ASP.NET, você pode usar a mesma estrutura e padrões para criar páginas da Web e serviços. Você pode reutilizar classes de modelo e lógica de validação e até mesmo atender páginas da Web e serviços lado a lado no mesmo projeto. Essa abordagem tem benefícios:
Serialização simples: o ASP.NET foi projetado para experiências modernas na Web. Os pontos de extremidade serializam automaticamente suas classes para JSON formatado corretamente de maneira pré-configurada. Nenhuma configuração especial é necessária. Você pode personalizar a serialização para pontos de extremidade com requisitos exclusivos.
Autenticação e autorização: para segurança, os pontos de extremidade da API têm suporte integrado para Tokens Web JSON (JWTs) padrão do setor. A autorização baseada em políticas oferece a flexibilidade de definir regras de controle de acesso poderosas no código.
Roteamento ao lado de seu código: ASP.NET permite definir rotas e verbos em linha com seu código, usando atributos. Os dados do caminho da solicitação, da cadeia de consulta e do corpo da solicitação são associados automaticamente aos parâmetros do método.
HTTPS por padrão: o HTTPS é uma parte importante das APIs Web modernas e profissionais. Ele se baseia na criptografia de ponta a ponta para fornecer privacidade e ajudar a garantir que as chamadas à API não sejam interceptadas e alteradas entre o cliente e o servidor.
O ASP.NET fornece suporte para HTTPS pronto para uso. Ele gera automaticamente um certificado de teste e o importa facilmente para habilitar o HTTPS local, para que você execute e depure aplicativos com segurança antes de publicá-los.
Compartilhar código e conhecimento com aplicativos .NET
Você pode usar suas habilidades e o ecossistema do .NET para compartilhar lógica de sua API Web com outros aplicativos criados com .NET, incluindo dispositivos móveis, Web, desktop e serviços.
Testando APIs Web usando o REPL HTTP do .NET
Ao desenvolver um site tradicional, você geralmente exibe e testa seu trabalho em um navegador da Web. As APIs da Web aceitam e retornam dados em vez de HTML, de modo que um navegador da Web não é a melhor ferramenta para testes de APIs Web.
Uma das opções mais fáceis para explorar e interagir com APIs Web é o REPL (loop ler/avaliar/imprimir) HTTP do .NET. Trata-se de um modo simples e popular de criar ambientes de linha de comando interativos. Na próxima unidade, você cria uma API Web simples e interage com ela usando o REPL HTTP do .NET.