Slide 1

Slide 1 text

ASP .Net WebAPI 2.2 Por aplicações mais REST, mais leves e flexíveis Aplicações em Asp.NET WebAPI 2.2 e AngularJS

Slide 2

Slide 2 text

O que é? HTTP vs SOAP/WCF Opensource

Slide 3

Slide 3 text

GET POST REDIRECT Mude a forma como você programa Web! Asp.Net MVC 4/5 Padrão GET-POST-REDIRECT Exibe um página Submete um formulário Página de resposta Carregamento completo de página Carregamento completo de página

Slide 4

Slide 4 text

Mude a forma como você programa Web! Browser(Cliente) Rederização e Parsing •Html •Css - Javascript •Redenrização de templates •Lógica de aplicação(GUI) •Rotas(cliente) Servidor(es) - Rotas de API - Segurança - Autenticação - Armazenamento de dados - Lógica de domínio - Servidor de arquivos estáticos Requisição HTTP (Dados em JSON) Renderização Parcial Resposta HTTP (Dados em JSON)

Slide 5

Slide 5 text

Mude a forma como você programa Web!

Slide 6

Slide 6 text

Mude a forma como você programa Web! HTTP Servidor Cliente SOAP HTTP VS Requisição SOAP Ação SOAP Endpoint Resposta Faulta SOAP Requisição Resposta URL VERBOS CABEÇALHOS PAYLOAD Código de Status CABEÇALHOS PAYLOAD

Slide 7

Slide 7 text

Mude a forma como você programa Web! HTTP

Slide 8

Slide 8 text

Mude a forma de você programar a web!

Slide 9

Slide 9 text

WebApi

Slide 10

Slide 10 text

Componentes do WebAPI • Routing • Binding • Parameter • Model • Validação • Controllers e ações • Negociação de conteúdo e formatação • Filtros • Manipulador de Mensagens

Slide 11

Slide 11 text

Routing

Slide 12

Slide 12 text

Attributte Route

Slide 13

Slide 13 text

Binding Tipo Simples Tipo Complexo

Slide 14

Slide 14 text

Validação

Slide 15

Slide 15 text

Controllers e Actions

Slide 16

Slide 16 text

Negociação de Conteúdo e Formatadores

Slide 17

Slide 17 text

Filtros

Slide 18

Slide 18 text

Manipulador de Mensagens

Slide 19

Slide 19 text

HTTP , REST e Hipermídias

Slide 20

Slide 20 text

HTTP , REST e Hipermídia URI – Uniform Resource Identifier https://www.google.com.br/?q=olá+mundo Lista um recurso (Links contendo “olá mundo”)

Slide 21

Slide 21 text

HTTP , REST e Hipermídias Verbos HTTP GET https://www.google.com.br/search?q=olá+mundo Principais Verbos: GET POST PUT DELETE Verbos seguros: GET OPTIONS Sem efeitos colaterais Verbos idempotentes: PUT POST DELETE Com efeitos colaterais

Slide 22

Slide 22 text

HTTP , REST e Hipermídias Códigos de Status 1XX Informações 2XX Sucesso 3XX Redirecionamento 4XX Erro do cliente 5XX Erro no Servidor

Slide 23

Slide 23 text

HTTP , REST e Hipermídias Cabeçalhos Alguns cabeçalhos: Content-type Content-length Content-encoding Accept-Languages Cache-control X-frame-option

Slide 24

Slide 24 text

HTTP , REST e Hipermídias REST – Representional State Transfer As oito falácias de computação distribuídas: A rede é confiável Latência Zero Banda infinita Rede é segura Topologia não muda Somente há um admin Custo de transporte de dados é zero A rede é homogênea

Slide 25

Slide 25 text

HTTP , REST e Hipermídias REST – Representional State Transfer Restrições(Constraints) do REST Benefícios Cliente/Servidor Evolutividade, Portabilidade de Clientes, Escalabilidade Sem Estado(Stateless) Confiabilidade, Visibilidade, Escalabilidade Cacheabilidade Performance, eficiência, escalabilidade Sistema em camadas Gerenciabilidade, escalabilidade Interface Uniforme Evolutividade, Visibilidade

Slide 26

Slide 26 text

HTTP , REST e Hipermídias Níveis Nível 3: Hipermídias HATEOAS. Hipermídia como Motor do Estado da Aplicação Nível 2: Métodos HTTP Uso de Verbos e Códigos de Status. Nível 1: Recursos URI unambíguas, há recursos distintos para “Consumidor” e “Consumidores” Nível 0: POX(Plain old XML) XML sobre HTTP Modelo de Maturidade de Richardson

Slide 27

Slide 27 text

Arquitetura Cliente/Servidor Arquivos Estáticos Banco de dados Bootstraping de página/Templates /Estaticos

Slide 28

Slide 28 text

Arquitetura Cliente/Servidor WebAPI Aplicação Angular Controller Service $http

Slide 29

Slide 29 text

Parte prática

Slide 30

Slide 30 text

Links que valem a pena Swashbunckle – Adiciona o Swagger ao WebAPI- https://github.com/domaindrivendev/Swashbuckle Autofac – Injetor de Dependências - http://autofac.org/ Asp.NET WebAPI – Site com tutoriais e vídeos - http://www.asp.net/web-api AngularJs – site oficial - https://angularjs.org/ Restangular – Acessar dados da webapi de modo mais REST - https://github.com/mgonto/restangular Ui-Router – Poderoso Roteador para AngularJS -