70
ASP .NET Web API Vinicius Mussak Desenvolvedor de soluções /bugs MCP - MSP [email protected]

Introdução ao ASP .NET Web API

Embed Size (px)

Citation preview

Page 1: Introdução ao ASP .NET Web API

ASP .NET Web API

Vinicius MussakDesenvolvedor de soluções/bugsMCP - [email protected]

Page 2: Introdução ao ASP .NET Web API

Roteiro• Introdução•Fundamentos• Iniciando com Web API•Rotas•Consumindo serviços•Hospedagem de serviços

Page 3: Introdução ao ASP .NET Web API

IntroduçãoRequisitos para começar:

ASP .NET + =♥• Visual Studio 2012

• Visual Studio Express 2012 For Web

Page 4: Introdução ao ASP .NET Web API

IntroduçãoO que é ASP .NET Web API:

ASP .NET

WebForms

Sites

WebPages

SinglePageApps

SignalR

Services

Web API

MVC

Page 5: Introdução ao ASP .NET Web API

Fundamentos•Protocolo HTTP•URI x URL•Recursos•Tipos de serviço•StateFul x StateLess•REST•SOAP x REST•Verbos HTTP

Page 6: Introdução ao ASP .NET Web API

Protocolo HTTP•Hypertext Transfer Protocol

Page 7: Introdução ao ASP .NET Web API

URI x URL

URL é um conceito informal!

Page 8: Introdução ao ASP .NET Web API

URI x URL

Page 9: Introdução ao ASP .NET Web API

URI x URL

http://www.engsolutions.com.br/treinamentos/webapi?versao=1.0

protocolo

sub-domínio

domínio

caminho

recurso

Page 10: Introdução ao ASP .NET Web API

Recursos•Representam algo “interessante” no sistema•É uma boa prática trabalhar com “representações”•Devem possuir nomes e endereços definidos

Page 11: Introdução ao ASP .NET Web API

Recursos

etc...

Page 12: Introdução ao ASP .NET Web API
Page 13: Introdução ao ASP .NET Web API

Recursos

Então eu só posso acessar recursos físicos?

Page 14: Introdução ao ASP .NET Web API

Recursos

Page 15: Introdução ao ASP .NET Web API

Recursos•Servidores Web entendem URI•URI possui uma estrutura definida (template)•Métodos possuem assinatura•Podemos mapear URI para métodos

Page 16: Introdução ao ASP .NET Web API

Recursos

http://www.engsolutions.com.br/ treinamentos / webapi ? versao=1.0

Serviço Método Argumentos

Page 17: Introdução ao ASP .NET Web API

Tipos de serviço

O que é um serviço?

Page 18: Introdução ao ASP .NET Web API

Tipos de serviço

Serviço é um mecanismo que expõe uma, ou mais, funcionalidades de um sistema.

Page 19: Introdução ao ASP .NET Web API

Tipos de serviço•Serviços básicos: Atendem seu propósito sozinhos sem depender de outros serviços.

•Serviços compostos: Necessitam interagir com outros serviços para atender as requisições.

Page 20: Introdução ao ASP .NET Web API

Tipos de serviçoServiços de

Negócio

Envio de Mercadorias

Ordem de Compras

Serviços de Infraestrutura

Persistência de dados

Log de operações

Page 21: Introdução ao ASP .NET Web API

Tipos de serviço

StateFUL Existe a preservação do estado das requisições no servidor.

StateLESS Não é mantido o estado das requisições.

Page 22: Introdução ao ASP .NET Web API

REST

Representational State Transfer

Page 23: Introdução ao ASP .NET Web API

REST•Padrão arquitetural•Criado por Roy Fielding em 2000• Interface simples de comunicação = HTTP•Fácil de entender•Transferência enxuta de dados•StateLess

Page 24: Introdução ao ASP .NET Web API

SOAP ou REST?

Page 25: Introdução ao ASP .NET Web API
Page 26: Introdução ao ASP .NET Web API

REST

Page 27: Introdução ao ASP .NET Web API

SOAP

+ =

Page 28: Introdução ao ASP .NET Web API

REST•Simples de implementar• Interoperável•Escalável•Tipos de hipermídia variados•Verbos HTTP•Baseado em recursos

Page 29: Introdução ao ASP .NET Web API

RESTPura representação dos recursos

XML JSON ATOM

Page 30: Introdução ao ASP .NET Web API

REST{

“Nome”: “Zézinho”,“Idade”: 50,“Altura”: “1,80”,“Peso”: “90kg”,“Sexo”: “1 vez ao ano”

}

Page 31: Introdução ao ASP .NET Web API

REST ou RESTful?

Page 32: Introdução ao ASP .NET Web API

https://drive.google.com/file/d/0BzhwZbKT3IrCaVo5TmNkTnNyLTQ/view?usp=sharing

Page 33: Introdução ao ASP .NET Web API

Verbos HTTP

Page 34: Introdução ao ASP .NET Web API

Verbos HTTP

Page 35: Introdução ao ASP .NET Web API

Verbos HTTP

Denominação correta:

Http Methods

Page 36: Introdução ao ASP .NET Web API

Verbos HTTP

Indica qual ação será executada

Page 37: Introdução ao ASP .NET Web API

Verbos HTTPHTTP/1.0:•GET•POST•HEAD

HTTP/1.1:•OPTIONS•PUT•DELETE•TRACE•CONNECT

Page 38: Introdução ao ASP .NET Web API

Verbos HTTPGET•Responsável por buscar informações através de uma URI.

http://www.server.com/produtoshttp://www.server.com/produto/7http://www.server.com/produto/notebook

Page 39: Introdução ao ASP .NET Web API

Verbos HTTPPOST•Responsável por enviar informações através de uma URI, com o conteúdo embutido no corpo de requisição.

http://www.server.com/produto...{ “Nome”: “Mouse”, “Preco”: 50.0 }

Page 40: Introdução ao ASP .NET Web API

Verbos HTTPDELETE•Responsável por remover informações através de uma URI.

http://www.server.com/produto/7

Page 41: Introdução ao ASP .NET Web API

Verbos HTTPPUT•Responsável por atualizar informações através de uma URI, com o conteúdo embutido no corpo de requisição.

http://www.server.com/produto/7...{ “Nome”: “Mouse”, “Preco”: 55.0 }

Page 42: Introdução ao ASP .NET Web API

HTTP Status Code•200 – OK: • A requisição foi bem sucedida.

•401 – Unauthorized• A URI especificada precisa de autenticação

•404 – Not Found: • O recurso não foi encontrado

•500 – Internal Server Error• DEU PAU

Page 43: Introdução ao ASP .NET Web API

•1xx Informativos•2xx Sucesso•3xx Redirecionamento•4xx Erro do cliente•5xx Erro do servidor

HTTP Status Code

Page 44: Introdução ao ASP .NET Web API

Iniciando com Web API•O que é uma Web API?•ASP .NET Web API•Configurações•Convenções•DEMO

Page 45: Introdução ao ASP .NET Web API

O que é uma Web API?

Framework que facilita a construção de serviços over HTTP com forte

interoperabilidade e possibilidade de acesso a partir dos mais variados

dispositivos.

Page 46: Introdução ao ASP .NET Web API

O que é uma Web API?

É a plataforma recomendada para a construção

de aplicações RESTful na plataforma .NET

Page 47: Introdução ao ASP .NET Web API

ASP .NET Web API•Arquitetura simplificada• Lembra o desenvolvimento com Controllers(MVC)•Utiliza rotas para disponibilizar recursos•Hospedagem flexível• Leve•Testável•Escalável•GRÁTIS!!!

Page 48: Introdução ao ASP .NET Web API

ASP .NET Web API•Disponível a partir do ASP .NET MVC 4 e VS 2012•Também via NuGet• .NET Framework 4.0 >=•www.asp.net/web-api•Mantenha atualizado!

Page 49: Introdução ao ASP .NET Web API

ASP .NET Web API

Quem consome uma API?

Page 50: Introdução ao ASP .NET Web API
Page 51: Introdução ao ASP .NET Web API

ASP .NET Web API

API é para sistemas, não para o usuário final

Page 52: Introdução ao ASP .NET Web API

ASP .NET Web APIEstrutura do Controller

Sufixo “Controller”

Herda de “ApiController”

Ações de acordo com o verbo HTTP

Page 53: Introdução ao ASP .NET Web API

•Nome da classe deve ser [Nome]Controller•A classe deve herdar de ApiController•Verbos são associados a Actions• GET == Get(...)• POST == Post(...)

•Porém, verbos NÃO são associados a Actions

ASP .NET Web APIEstrutura do Controller

Page 54: Introdução ao ASP .NET Web API

DEMO•Criando um projeto WebAPI•Criando um Controller•Modificando ações e verbos•Trabalhando com parâmetros•Serialização

Page 55: Introdução ao ASP .NET Web API

Rotas

Page 56: Introdução ao ASP .NET Web API

WebApiConfig

Page 57: Introdução ao ASP .NET Web API

Attribute-routing

Page 58: Introdução ao ASP .NET Web API

DEMO•Rotas default•Attribute-routing

Page 59: Introdução ao ASP .NET Web API

Consumindo serviços•HttpClient• JavaScript•Navegador•Mobile• Java, Python...

Page 60: Introdução ao ASP .NET Web API

Consumindo serviços•Acessa qualquer coisa exposta com HTTP• Incluído no .NET 4.5•Permite async•Baseado em request e response

Http Client

Page 61: Introdução ao ASP .NET Web API

Http Client

Page 62: Introdução ao ASP .NET Web API

Http Client

Page 63: Introdução ao ASP .NET Web API

Consumindo serviços•N plataformas•Qualquer um manja•Leve e fácil

JavaScript

Page 64: Introdução ao ASP .NET Web API

JavaScript (jQuery)

Page 65: Introdução ao ASP .NET Web API

DEMO•Utilizando HttpClient•Utilizando JavaScript•Utilizando Postman :D

Page 66: Introdução ao ASP .NET Web API

Hospedagem•OWIN•Self-host• IIS•Azure

Page 67: Introdução ao ASP .NET Web API

DEMO•Hospedando no Azure

Page 68: Introdução ao ASP .NET Web API

VOCÊS MANDAM!!!

INJEÇÃO DE DEPENDÊNCIA

?

CONEXÃO COM O

BANCO?

TRATAMENTO DE ERROS?

FILTROS?

.NET CORE?

Page 69: Introdução ao ASP .NET Web API

Dúvidas?

Page 70: Introdução ao ASP .NET Web API

Isso é tudo pessoal :D

viniciusmussak.net

/viniciusmussak

/viniciusmussak

@ViniciusMussak

/vmussak

[email protected]