SlideShare uma empresa Scribd logo
ASP .NET Web API
Vinicius Mussak
Desenvolvedor de soluções/bugs
MCP - MSP
mussak@engsolutions.com.br
Roteiro
•Introdução
•Fundamentos
•Iniciando com Web API
•Rotas
•Consumindo serviços
•Hospedagem de serviços
Introdução
Requisitos para começar:
ASP .NET + =
♥• Visual Studio 2012
• Visual Studio Express 2012 For Web
Introdução
O que é ASP .NET Web API:
ASP .NET
Web
Forms
Sites
Web
Pages
Single
Page
Apps
SignalR
Services
Web
API
MVC
Fundamentos
•Protocolo HTTP
•URI x URL
•Recursos
•Tipos de serviço
•StateFul x StateLess
•REST
•SOAP x REST
•Verbos HTTP
Protocolo HTTP
•Hypertext Transfer Protocol
URI x URL
URL é um conceito informal!
URI x URL
URI x URL
http://www.engsolutions.com.br/treinamentos/webapi?versao=1.0
protocolo
sub-domínio
domínio
caminho
recurso
Recursos
•Representam algo “interessante” no sistema
•É uma boa prática trabalhar com “representações”
•Devem possuir nomes e endereços definidos
Recursos
etc...
Introdução ao ASP .NET Web API
Recursos
Então eu só posso acessar recursos físicos?
Recursos
Recursos
•Servidores Web entendem URI
•URI possui uma estrutura definida (template)
•Métodos possuem assinatura
•Podemos mapear URI para métodos
Recursos
http://www.engsolutions.com.br/ treinamentos / webapi ? versao=1.0
Serviço Método Argumentos
Tipos de serviço
O que é um serviço?
Tipos de serviço
Serviço é um mecanismo que expõe uma, ou mais,
funcionalidades de um sistema.
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.
Tipos de serviço
Serviços de
Negócio
Envio de
Mercadorias
Ordem de
Compras
Serviços de
Infraestrutura
Persistência
de dados
Log de
operações
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.
REST
Representational State Transfer
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
SOAP ou REST?
Introdução ao ASP .NET Web API
REST
SOAP
+ =
REST
•Simples de implementar
•Interoperável
•Escalável
•Tipos de hipermídia variados
•Verbos HTTP
•Baseado em recursos
REST
Pura representação dos recursos
XML JSON ATOM
REST
{
“Nome”: “Zézinho”,
“Idade”: 50,
“Altura”: “1,80”,
“Peso”: “90kg”,
“Sexo”: “1 vez ao ano”
}
REST ou RESTful?
https://drive.google.com/file/d/0BzhwZbKT3IrCaVo5TmNkTnNyLTQ/view?usp=sharing
Verbos HTTP
Verbos HTTP
Verbos HTTP
Denominação correta:
Http Methods
Verbos HTTP
Indica qual ação será executada
Verbos HTTP
HTTP/1.0:
•GET
•POST
•HEAD
HTTP/1.1:
•OPTIONS
•PUT
•DELETE
•TRACE
•CONNECT
Verbos HTTP
GET
•Responsável por buscar informações através de
uma URI.
http://www.server.com/produtos
http://www.server.com/produto/7
http://www.server.com/produto/notebook
Verbos HTTP
POST
•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 }
Verbos HTTP
DELETE
•Responsável por remover informações através
de uma URI.
http://www.server.com/produto/7
Verbos HTTP
PUT
•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 }
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
•1xx  Informativos
•2xx  Sucesso
•3xx  Redirecionamento
•4xx  Erro do cliente
•5xx  Erro do servidor
HTTP Status Code
Iniciando com Web API
•O que é uma Web API?
•ASP .NET Web API
•Configurações
•Convenções
•DEMO
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.
O que é uma Web API?
É a plataforma recomendada para a construção
de aplicações RESTful na plataforma .NET
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!!!
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!
ASP .NET Web API
Quem consome uma API?
Introdução ao ASP .NET Web API
ASP .NET Web API
API é para sistemas, não para o usuário final
ASP .NET Web API Estrutura do Controller
Sufixo “Controller”
Herda de
“ApiController”
Ações de acordo
com o verbo HTTP
•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 API Estrutura do Controller
DEMO
•Criando um projeto WebAPI
•Criando um Controller
•Modificando ações e verbos
•Trabalhando com parâmetros
•Serialização
Rotas
WebApiConfig
Attribute-routing
DEMO
•Rotas default
•Attribute-routing
Consumindo serviços
•HttpClient
•JavaScript
•Navegador
•Mobile
•Java, Python...
Consumindo serviços
•Acessa qualquer coisa exposta com HTTP
•Incluído no .NET 4.5
•Permite async
•Baseado em request e response
Http Client
Http Client
Http Client
Consumindo serviços
•N plataformas
•Qualquer um manja
•Leve e fácil
JavaScript
JavaScript (jQuery)
DEMO
•Utilizando HttpClient
•Utilizando JavaScript
•Utilizando Postman :D
Hospedagem
•OWIN
•Self-host
•IIS
•Azure
DEMO
•Hospedando no Azure
VOCÊS MANDAM!!!
INJEÇÃO DE
DEPENDÊNCIA
?
CONEXÃO
COM O
BANCO?
TRATAMENTO
DE ERROS?
FILTROS?
.NET CORE?
Dúvidas?
Isso é tudo pessoal :D
viniciusmussak.net
/viniciusmussak
/viniciusmussak
@ViniciusMussak
/vmussak
mussak@engsolutions.com.br

Mais conteúdo relacionado

PDF
Afinal, o que são Single Page Applications
PPT
Introduction to the Web API
PPTX
REST API Design & Development
PDF
REST API and CRUD
PDF
What is REST API? REST API Concepts and Examples | Edureka
PDF
API for Beginners
PPT
Understanding REST
PPTX
Express JS Rest API Tutorial
Afinal, o que são Single Page Applications
Introduction to the Web API
REST API Design & Development
REST API and CRUD
What is REST API? REST API Concepts and Examples | Edureka
API for Beginners
Understanding REST
Express JS Rest API Tutorial

Mais procurados (20)

PPT
RESTful services
PPTX
PPTX
Rest api with node js and express
PPTX
Testing microservices with rest assured
PDF
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
PDF
ElasticSearch
PPTX
An Introduction to OAuth2
PDF
Introdução APIs RESTful
PDF
Architecting an Enterprise API Management Strategy
PPTX
React Hooks
PPTX
Apache tomcat
PDF
Introduction to OAuth2.0
PPTX
Asp.net MVC training session
PPT
Soap Vs Rest
PPTX
An introduction to OAuth 2
PPTX
Design Beautiful REST + JSON APIs
PPTX
REST-API introduction for developers
PDF
Introducing Clean Architecture
PDF
Tech Talk #5 : Code Analysis SonarQube - Lương Trọng Nghĩa
PPTX
SOAP--Simple Object Access Protocol
RESTful services
Rest api with node js and express
Testing microservices with rest assured
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
ElasticSearch
An Introduction to OAuth2
Introdução APIs RESTful
Architecting an Enterprise API Management Strategy
React Hooks
Apache tomcat
Introduction to OAuth2.0
Asp.net MVC training session
Soap Vs Rest
An introduction to OAuth 2
Design Beautiful REST + JSON APIs
REST-API introduction for developers
Introducing Clean Architecture
Tech Talk #5 : Code Analysis SonarQube - Lương Trọng Nghĩa
SOAP--Simple Object Access Protocol
Anúncio

Destaque (8)

PPTX
Building modern web sites with ASP .Net Web API, WebSockets and RSignal
PPTX
Online Shopping based on ASP .NET
PPTX
HTML Basic, CSS Basic, JavaScript basic.
PDF
JavaScript Programming
PDF
Online Shopping System PPT
PPT
Flow of communication
PPTX
Online Shopping Full Project Presentation (20 slides)
PDF
Online shopping
Building modern web sites with ASP .Net Web API, WebSockets and RSignal
Online Shopping based on ASP .NET
HTML Basic, CSS Basic, JavaScript basic.
JavaScript Programming
Online Shopping System PPT
Flow of communication
Online Shopping Full Project Presentation (20 slides)
Online shopping
Anúncio

Semelhante a Introdução ao ASP .NET Web API (20)

PDF
compreensão geral para estruturar uma api
PPTX
Webservices em PHP e a liberdade da Web
PPTX
APIs do Jeito Certo
ODP
Web apis
PDF
Design de RESTful APIs
PPTX
APIs na nuvem com Azure e ASP.NET Core - Azure Weekend 2016
PPTX
AspNet 5 & Redis - Escalando sua performance
PPTX
Desenvolvimento web com .NET Core - Meetup São Carlos
PPTX
Conhecendo os recursos do ASP.NET Web API
PPTX
WebAPI-Route-Translate-BasicAuth
PPTX
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web API
PPTX
Desenvolvendo API's com asp.net 5
PPTX
Integrando sua App ao Mundo via REST/JSON
PPT
Como um grande sistema REST funciona
PPTX
Backend para dispositivos moveis
PDF
Deck apix 2017 design & security - case cielo lio
PPTX
Criando aplicativos para Windows 8 usando apenas HTML5 e Javascript
PPTX
Rest
PDF
TDC2016SP - Construindo Web APIs em Java na era do Big Data
PPTX
ASP.NET Web API
compreensão geral para estruturar uma api
Webservices em PHP e a liberdade da Web
APIs do Jeito Certo
Web apis
Design de RESTful APIs
APIs na nuvem com Azure e ASP.NET Core - Azure Weekend 2016
AspNet 5 & Redis - Escalando sua performance
Desenvolvimento web com .NET Core - Meetup São Carlos
Conhecendo os recursos do ASP.NET Web API
WebAPI-Route-Translate-BasicAuth
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web API
Desenvolvendo API's com asp.net 5
Integrando sua App ao Mundo via REST/JSON
Como um grande sistema REST funciona
Backend para dispositivos moveis
Deck apix 2017 design & security - case cielo lio
Criando aplicativos para Windows 8 usando apenas HTML5 e Javascript
Rest
TDC2016SP - Construindo Web APIs em Java na era do Big Data
ASP.NET Web API

Mais de Vinicius Mussak (7)

PPT
Reconhecimento facial com azure
PPTX
ITerior - .NET Core, usando .NET no Linux!
PPTX
ASP .NET Core MVC
PPTX
Carreira
PDF
Novidades do c#6
PPTX
Comunicação em tempo real com Node.js
PPTX
O que são Kudo Cards e o que isso influencia na nossa organização
Reconhecimento facial com azure
ITerior - .NET Core, usando .NET no Linux!
ASP .NET Core MVC
Carreira
Novidades do c#6
Comunicação em tempo real com Node.js
O que são Kudo Cards e o que isso influencia na nossa organização

Último (20)

PPTX
Aula 18 - Manipulacao De Arquivos python
PPTX
Curso de Java 10 - (IO Manipulação de Arquivos).pptx
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PPTX
Émile Durkheim slide elaborado muito bom
PPTX
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PPTX
Curso de Java 9 - (Threads) Multitarefas.pptx
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PPTX
Aula sobre banco de dados com firebase db
PPTX
Curso de Java 14 - (Explicações Adicionais (Classes Abstrata e Interface)).pptx
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Processos na gestão de transportes, TM100 Col18
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
Apple Pippin Uma breve introdução. - David Glotz
Aula 18 - Manipulacao De Arquivos python
Curso de Java 10 - (IO Manipulação de Arquivos).pptx
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Émile Durkheim slide elaborado muito bom
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Curso de Java 9 - (Threads) Multitarefas.pptx
Custos e liquidação no SAP Transportation Management, TM130 Col18
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Aula sobre banco de dados com firebase db
Curso de Java 14 - (Explicações Adicionais (Classes Abstrata e Interface)).pptx
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Processos na gestão de transportes, TM100 Col18
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Apple Pippin Uma breve introdução. - David Glotz

Introdução ao ASP .NET Web API

Notas do Editor

  • #7: - Baseado em requisições e respostas entre clientes e servidores.  Diferente de uma conexão com o banco de dados (SSL) Não é orientado a conexões Não guarda estado de sessão entre requisições Protocolo de aplicação para comunicação distribuída, colaborativa e troca de informação através de formatos de hipermídia.
  • #9: URI = Identificador Uniforme de Recursos URL = Localizador Uniforme de Recursos URN = Nome Uniforme de Recurso
  • #11: Evitar acessar o recurso diretamente
  • #26: Martin Lawrence
  • #29: Interoperável = Que é capaz de operar, funcionar ou atuar com outro.
  • #38: OPTIONS: Devolve as maneiras de acessar um recurso HEAD: Retorna informações sobre um recurso. Mas o corpo não é retornado TRACE: Devolve a mesma requisição que for enviada veja se houve mudança e/ou adições feitas por servidores intermediários. CONNECT: Converte a requisição de conexão para um túnel TCP/IP transparente, geralmente para facilitar a comunicação criptografada com SSL (HTTPS) através de um proxy HTTP não criptografado.