SlideShare uma empresa Scribd logo
1 de 45
Baixar para ler offline
UMOV.ME API
Do básico ao avançado
@nbluis
http://about.me/nbluis
O QUE É ?
• Maneira

fácil (para desenvolvedores) de realizar
integração online com uMov.me

• Permite

pesquisar, visualizar e manter praticamente
todos os cadastros do sistema

• Permite

ainda realizar algumas operações avançadas
dentro do sistema
O QUE NÃO É ?
• Uma

forma diferente de usuários operarem o sistema

• Um

serviço a ser consumido por usuários finais (Agentes,
Vendedores, etc.)

• Solução

ideal para qualquer tipo de integração com
uMov.me
COMO FUNCIONA ?

• Através

de requisições HTTP

• Trafega

informação por XML

• Utiliza

conceitos de REST
COMO FUNCIONA ?

• Através

de requisições HTTP

• Trafega

informação por XML

• Utiliza

conceitos de REST
ENTENDENDO HTTP

HTTP é o protocolo padrão utilizado na internet
É através de HTTP que nosso navegador acessa
qualquer site na internet
ENTENDENDO HTTP
Cliente

Requisição / R

equest

http://api.umo
v.me

nse
sposta / Respo
Re
sta
eúdo da respo
Cont

Servidor
ENTENDENDO HTTP
A requisição é composta por 4 informações básicas

Método (Method)
Endereço (URL)
Conteúdo (Content/Payload)
Cabeçalhos adicionais (Headers)
ENTENDENDO HTTP
A resposta é composta por 4 informações básicas

Status code (Código de status de sucesso ou erro)
Resposta
Cabeçalhos adicionais (Headers)
PRINCIPAIS MÉTODOS HTTP

• GET

- Busca uma informação do servidor

• POST

- Atualiza uma informação no servidor

• Existem

outros (PUT / HEAD / DELETE) mas não são
utilizados por nossa api.
EXEMPLO DE REQUISIÇÃO

•
•

Método: GET
URL: http://google.com

•

Conteúdo: NENHUM

•

Cabeçalhos: NENHUM

•

Método: POST

•

URL: http://google.com/createUser

•

Conteúdo:
userName=Eduardo&password=senha

•

Cabeçalhos: NENHUM
COMO FUNCIONA ?

• Através

de requisições HTTP

• Trafega

informação por XML

• Utiliza

conceitos de REST
ENTENDENDO XML
•É

uma linguagem de marcação

• Baseado
• Facil

em tags

de representar estruturas complexas utilizando

texto
• Todo

mundo conhece
EXEMPLO DE XML
<carro>
<marca>Fiat</marca>
<modelo>Uno</modelo>
<ano>2013</ano>
<portas>2</portas>
<utilitarios>
<utilitario nome=”Vidro Elétrico”/>
</utilitarios>
</carro>
COMO FUNCIONA ?

• Através

de requisições HTTP

• Trafega

informação por XML

• Utiliza

conceitos de REST
ENTENDENDO REST
Um serviço REST nada mais é que utilizar o que já
aprendemos sobre HTTP para manusear este serviço.
EXEMPLO REST
Listar usuários:

Incluir usuário:

GET: http://servico.com/user
Resposta:
<usuarios>
<usuario>123</usuario>
</usuarios>

POST: http://servico.com/user
<usuario>
<nome>Novo usuário</nome>
</usuarios>

Visualizar usuário:

Alterar usuário:

GET: http://servico.com/user/123
Resposta:
<usuario>
<id>123</id>
<nome>Eduardo</nome>
</usuarios>

POST: http://servico.com/user/123
<usuario>
<nome>Novo nome</nome>
</usuarios>
ENTRANDO NO UMOV.ME
Agora que entendemos um mínimo sobre APIs vamos
ao uMov.me
No uMov.me é necessário utilizar um TOKEN de acesso
para realizar a autenticação na API
CRIANDO UM TOKEN
Para criar um TOKEN para um ambiente basta acessar a
tela de “Criação > Parâmetros” no uMov.Center
EXEMPLO DE ACESSO A API
GET: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/agent.xml
EXEMPLO DE ACESSO A API
GET: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/agent.xml

Método HTTP
EXEMPLO DE ACESSO A API
GET: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/agent.xml

URL Base
EXEMPLO DE ACESSO A API
GET: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/agent.xml

Token de acesso
EXEMPLO DE ACESSO A API
GET: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/agent.xml

Recurso acessado
EXEMPLO DE ACESSO A API
GET: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/agent.xml

Formato
(apenas xml)
EXEMPLO DE ACESSO A API
A maioria das operações da API segue um modelo
muito parecido de cadastro que será mostrado a seguir.
Todos os recursos disponíveis da API uMov.me está
disponível na KB: http://kb.umov.me/?q=pt-br/node/914
EXEMPLO DE ACESSO A API
Exemplo utilizando agente como recurso
Listar agentes:
GET: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/agent.xml
Visualizar um agente:
GET: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/agent/123.xml
Incluir um agente:
POST: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/agent.xml
Alterar um agente:
POST: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/agent/123.xml
EXEMPLO DE ACESSO A API

Fique atento aos pontos destacados em cada operação
EXEMPLO DE ACESSO A API
Listar agentes:
GET: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/agent.xml
Visualizar um agente:
GET: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/agent/123.xml
Incluir um agente:
POST: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/agent.xml
Alterar um agente:
POST: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/agent/123.xml
EXEMPLO DE ACESSO A API
Para visualizar ou alterar um agente específico
precisamos informar qual agente queremos, utilizando
o seu id.
Visualizar um agente:
GET: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/agent/123.xml
Alterar um agente:
POST: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/agent/123.xml
EXEMPLO DE ACESSO A API
Para a maioria das demais operações basta alterar o
recurso na URL
EXEMPLO DE ACESSO A API
Exemplo utilizando item como recurso
Listar itens:
GET: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/item.xml
Visualizar um item:
GET: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/item/123.xml
Incluir um item:
POST: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/item.xml
Alterar um item:
POST: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/item/123.xml
EXEMPLOS ADICIONAIS
Os exemplos a seguir aprofundam um pouco mais cada
operação da API.
A maioria dos demais recursos da API podem ser
operados utilizando o mesmo formato ao que está
sendo mostrado.
EXEMPLO DE PESQUISA
Listar agentes:
GET: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/agent.xml
Resposta:
<result>
<resourceName>agent</resourceName>
<size>2</size>
<entries>
<entry id="1" link="/agent/1.xml"/>
<entry id="2" link="/agent/2.xml"/>
</entries>
</result>

Nome do recurso pesquisado
Quantidade de registros retornados

Link para acesso a visualização de cada registro
Identificador interno de cada registro
APROFUDANDO A
PESQUISA
A pesquisa permite também que filtremos informações
por qualquer campo da entidade sendo pesquisada
através da URL
Exemplo
GET: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/agent.xml?active=true
APROFUDANDO A
PESQUISA
Permite ainda pesquisas por campos de entidades
relacionadas ao recurso
Exemplo
GET: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/
agent.xml?agentType.description=Vendedores
LIMITE DA PESQUISA
Independente dos filtros informados, o retorno sempre
está sujeito a limitação de registros retornados
Por padrão este limite é de 20 registros
EXEMPLO DE VISUALIZAÇÃO
Visualizar um agente:
GET: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/agent/123.xml
Resposta:
<agent>
<id>123</id>
<name>Joao da Silva</name>
<login>joaosilva</login>
<agentType>
<id>1234</id>
<description>Vendedor</description>
</agentType>
<active>false</active>
<alternativeIdentifier/>
....
</agent>

XML apresentando todos os campos visíveis do recurso
EXEMPLO DE INCLUSÃO
Incluir um agente:
POST: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/agent.xml
Envio:
<agent>
<active>true</active>
<agentType><id>1234</id></agentType>
<login>fulano</login>
<name>Fulano da Silva</name>
<password>minha_senha_nao_criptografada</password>
<email>fulano@empresa.com</email>
<centerwebUser>true</centerwebUser>
<mobileUser>true</mobileUser>
<centerwebUserRole>D</centerwebUserRole>
</agent>

Resposta:
<result>
<resourceName>agent</resourceName>
<resourceId>1234</resourceId>
<link>/agent/1234.xml</link>
</result>

Nome do recurso operado
Identificador do novo agente

Dados do agente a ser incluso

Link para acesso ao novo agente
EXEMPLO DE ALTERAÇÃO
Alterar um agente:
POST: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/agent/123.xml

Envio:
<agent>
<name>Novo Nome</name>
</agent>

Resposta:
<result>
<resourceName>agent</resourceName>
<resourceId>1234</resourceId>
<link>/agent/1234.xml</link>
</result>

Nome do recurso operado
Dados do agente a ser alterado
(apenas os dados a serem modificados)

Identificador do agente alterado
Link para acesso ao agente alterado
UTILIZANDO
IDENTIFICADOR
Todas as requisições básicas permitem operar os
recursos da API também pelo identificador alternativo
Nesse caso os XMLs não mudam, mudam apenas a
URL
EXEMPLO IDENTIFICADOR
ALTERNATIVO
O início da URL (http://api.umov.me/CenterWeb) foi omitida nos exemplos abaixo

Visualizar um agente:
GET: /123exxxxxxxxx/agent/alternativeIdentifier/123.xml
Alterar um agente:
POST: /123exxxxxxxxx/agent/alternativeIdentifier/123.xml
VISUALIZANDO ERROS
Sempre que ocorrer o erro em decorrência de uma
requisição, a mensagem será retornada permitindo um
melhor entendimento do problema
EXEMPLO DE ERRO
Retorno:
<result>
<statusCode>400</statusCode>
Código de erro http retornado
<errors>login: error.mandatory.field</errors>
Campo e mensagem de erro
<resourceName>agent</resourceName>
Recurso manipulado pela requisição
</result>
OBRIGADO
@nbluis
http://about.me/nbluis

Mais conteúdo relacionado

Mais procurados

Booster la communication de votre association !
Booster la communication de votre association ! Booster la communication de votre association !
Booster la communication de votre association ! Emna Idbichou
 
Pricing - Precificação Estratégica no Varejo
Pricing - Precificação Estratégica no VarejoPricing - Precificação Estratégica no Varejo
Pricing - Precificação Estratégica no VarejoMarcelo Aranha
 
10 Métricas para Monitoramento de Mídias Sociais
10 Métricas para Monitoramento de Mídias Sociais10 Métricas para Monitoramento de Mídias Sociais
10 Métricas para Monitoramento de Mídias SociaisSocial Figures
 
Gestao de metas
Gestao de metasGestao de metas
Gestao de metasLCPgui123
 
Tecnicas de pesquisa de mercado - Amostragem - Aula 5
Tecnicas de pesquisa de mercado - Amostragem - Aula 5Tecnicas de pesquisa de mercado - Amostragem - Aula 5
Tecnicas de pesquisa de mercado - Amostragem - Aula 5Ueliton da Costa Leonidio
 
Estratégias de comunicação para mídias e redes sociais
Estratégias de comunicação para mídias e redes sociaisEstratégias de comunicação para mídias e redes sociais
Estratégias de comunicação para mídias e redes sociaisRicharley Menescal
 
Marketing Digital para Empreendedores por Odo Reginatto
Marketing Digital para Empreendedores por Odo ReginattoMarketing Digital para Empreendedores por Odo Reginatto
Marketing Digital para Empreendedores por Odo ReginattoOdolir Reginatto dos Santos
 
Planejamento estratégico vendas adm tempo-território
Planejamento estratégico vendas adm tempo-territórioPlanejamento estratégico vendas adm tempo-território
Planejamento estratégico vendas adm tempo-territórioLuiz Navarro
 
As 4 regras de ouro da negociação
As 4 regras de ouro da negociaçãoAs 4 regras de ouro da negociação
As 4 regras de ouro da negociaçãoAgendor
 
Apresentação Comunicação
Apresentação ComunicaçãoApresentação Comunicação
Apresentação ComunicaçãoPatrícia Ervilha
 
Como Definir Metas de Vendas
Como Definir Metas de VendasComo Definir Metas de Vendas
Como Definir Metas de VendasEdson Gonçalves
 
Harold Kerzner - gerenciamento de projetos
Harold Kerzner -  gerenciamento de projetos Harold Kerzner -  gerenciamento de projetos
Harold Kerzner - gerenciamento de projetos Heraldo Aprígio.
 
Digital Strategy Basics
Digital Strategy BasicsDigital Strategy Basics
Digital Strategy BasicsJimmy Ghazal
 

Mais procurados (20)

Como fazer citações
Como fazer citaçõesComo fazer citações
Como fazer citações
 
Booster la communication de votre association !
Booster la communication de votre association ! Booster la communication de votre association !
Booster la communication de votre association !
 
Pricing - Precificação Estratégica no Varejo
Pricing - Precificação Estratégica no VarejoPricing - Precificação Estratégica no Varejo
Pricing - Precificação Estratégica no Varejo
 
Marketing Digital
Marketing DigitalMarketing Digital
Marketing Digital
 
10 Métricas para Monitoramento de Mídias Sociais
10 Métricas para Monitoramento de Mídias Sociais10 Métricas para Monitoramento de Mídias Sociais
10 Métricas para Monitoramento de Mídias Sociais
 
Comércio Eletrônico
Comércio EletrônicoComércio Eletrônico
Comércio Eletrônico
 
Gestao de metas
Gestao de metasGestao de metas
Gestao de metas
 
Tecnicas de pesquisa de mercado - Amostragem - Aula 5
Tecnicas de pesquisa de mercado - Amostragem - Aula 5Tecnicas de pesquisa de mercado - Amostragem - Aula 5
Tecnicas de pesquisa de mercado - Amostragem - Aula 5
 
Estratégias de comunicação para mídias e redes sociais
Estratégias de comunicação para mídias e redes sociaisEstratégias de comunicação para mídias e redes sociais
Estratégias de comunicação para mídias e redes sociais
 
Check list hackathon - Agencia Inventtando
Check list hackathon - Agencia InventtandoCheck list hackathon - Agencia Inventtando
Check list hackathon - Agencia Inventtando
 
Marketing Digital para Empreendedores por Odo Reginatto
Marketing Digital para Empreendedores por Odo ReginattoMarketing Digital para Empreendedores por Odo Reginatto
Marketing Digital para Empreendedores por Odo Reginatto
 
Planejamento estratégico vendas adm tempo-território
Planejamento estratégico vendas adm tempo-territórioPlanejamento estratégico vendas adm tempo-território
Planejamento estratégico vendas adm tempo-território
 
As 4 regras de ouro da negociação
As 4 regras de ouro da negociaçãoAs 4 regras de ouro da negociação
As 4 regras de ouro da negociação
 
Assessoria De Imprensa
Assessoria De ImprensaAssessoria De Imprensa
Assessoria De Imprensa
 
Curso HTML e CSS Part1
Curso HTML e CSS Part1Curso HTML e CSS Part1
Curso HTML e CSS Part1
 
Apresentação Comunicação
Apresentação ComunicaçãoApresentação Comunicação
Apresentação Comunicação
 
Como Definir Metas de Vendas
Como Definir Metas de VendasComo Definir Metas de Vendas
Como Definir Metas de Vendas
 
7 Dicas para Melhorar Sua Estratégia de Prospecção de Clientes
7 Dicas para Melhorar Sua Estratégia de Prospecção de Clientes7 Dicas para Melhorar Sua Estratégia de Prospecção de Clientes
7 Dicas para Melhorar Sua Estratégia de Prospecção de Clientes
 
Harold Kerzner - gerenciamento de projetos
Harold Kerzner -  gerenciamento de projetos Harold Kerzner -  gerenciamento de projetos
Harold Kerzner - gerenciamento de projetos
 
Digital Strategy Basics
Digital Strategy BasicsDigital Strategy Basics
Digital Strategy Basics
 

Destaque

uMov.me - Mobilidade a serviço do seu negócio
uMov.me - Mobilidade a serviço do seu negóciouMov.me - Mobilidade a serviço do seu negócio
uMov.me - Mobilidade a serviço do seu negóciouMov.me
 
Desenvolvimento de builds automizados com Jenkins - Em Busca do build Perfeito!
Desenvolvimento de builds automizados com Jenkins - Em Busca do build Perfeito!Desenvolvimento de builds automizados com Jenkins - Em Busca do build Perfeito!
Desenvolvimento de builds automizados com Jenkins - Em Busca do build Perfeito!Robson Bittencourt
 
As pessoas e a Tecnologia (ou vice-versa)
As pessoas e a Tecnologia (ou vice-versa)As pessoas e a Tecnologia (ou vice-versa)
As pessoas e a Tecnologia (ou vice-versa)Thiago Esser
 
Criando e consumindo webservice REST com PHP e JSON
Criando e consumindo webservice REST com PHP e JSONCriando e consumindo webservice REST com PHP e JSON
Criando e consumindo webservice REST com PHP e JSONMarcio Junior Vieira
 

Destaque (6)

uMov.me - Mobilidade a serviço do seu negócio
uMov.me - Mobilidade a serviço do seu negóciouMov.me - Mobilidade a serviço do seu negócio
uMov.me - Mobilidade a serviço do seu negócio
 
Apresentação umov.me
Apresentação umov.meApresentação umov.me
Apresentação umov.me
 
Desenvolvimento de builds automizados com Jenkins - Em Busca do build Perfeito!
Desenvolvimento de builds automizados com Jenkins - Em Busca do build Perfeito!Desenvolvimento de builds automizados com Jenkins - Em Busca do build Perfeito!
Desenvolvimento de builds automizados com Jenkins - Em Busca do build Perfeito!
 
Design Thinking
Design ThinkingDesign Thinking
Design Thinking
 
As pessoas e a Tecnologia (ou vice-versa)
As pessoas e a Tecnologia (ou vice-versa)As pessoas e a Tecnologia (ou vice-versa)
As pessoas e a Tecnologia (ou vice-versa)
 
Criando e consumindo webservice REST com PHP e JSON
Criando e consumindo webservice REST com PHP e JSONCriando e consumindo webservice REST com PHP e JSON
Criando e consumindo webservice REST com PHP e JSON
 

Semelhante a uMov.me API - Do básico ao avançado

Construindo APIs RESTful com Spring
Construindo APIs RESTful com SpringConstruindo APIs RESTful com Spring
Construindo APIs RESTful com SpringMateus Malaquias
 
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...Tchelinux
 
Consumindo dados via web service no android
Consumindo dados via web service no androidConsumindo dados via web service no android
Consumindo dados via web service no androidAlexandre Antunes
 
Desenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2pyDesenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2pyRelsi Maron
 
OAuth2: Uma abordagem para segurança de aplicações e APIs REST - Devcamp 2014
OAuth2: Uma abordagem para segurança de aplicações e APIs REST  - Devcamp 2014OAuth2: Uma abordagem para segurança de aplicações e APIs REST  - Devcamp 2014
OAuth2: Uma abordagem para segurança de aplicações e APIs REST - Devcamp 2014Tiago Marchetti Dolphine
 
Introdução ao ASP .NET Web API
Introdução ao ASP .NET Web APIIntrodução ao ASP .NET Web API
Introdução ao ASP .NET Web APIVinicius Mussak
 
Aula 1 - Testando a Segurança de Sua Aplicação Web
Aula 1 - Testando a Segurança de Sua Aplicação WebAula 1 - Testando a Segurança de Sua Aplicação Web
Aula 1 - Testando a Segurança de Sua Aplicação WebMatheus Fidelis
 
Sua Startup precisa de uma WebAPI.
Sua Startup precisa de uma WebAPI.Sua Startup precisa de uma WebAPI.
Sua Startup precisa de uma WebAPI.AlexSandro Cruz
 
WebAPI-Route-Translate-BasicAuth
WebAPI-Route-Translate-BasicAuthWebAPI-Route-Translate-BasicAuth
WebAPI-Route-Translate-BasicAuthJean Lima Lopes
 
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEM
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEMMinicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEM
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEMAlisson Solitto
 
[ATC] Testando sua API com HTTPARTY e Rodando em um CI
[ATC] Testando sua API com HTTPARTY e Rodando em um CI[ATC] Testando sua API com HTTPARTY e Rodando em um CI
[ATC] Testando sua API com HTTPARTY e Rodando em um CINathanael Silva
 
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web API
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web APITrilha .NET - REST na plataforma Microsoft com ASP.NET Web API
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web APIWaldyr Felix
 
Conhecendo os recursos do ASP.NET Web API
Conhecendo os recursos do ASP.NET Web APIConhecendo os recursos do ASP.NET Web API
Conhecendo os recursos do ASP.NET Web APIIvan Paulovich
 
API's Automidia: Provendo Meios Estruturados de Integração
API's Automidia: Provendo Meios Estruturados de IntegraçãoAPI's Automidia: Provendo Meios Estruturados de Integração
API's Automidia: Provendo Meios Estruturados de IntegraçãoRequestia Software
 

Semelhante a uMov.me API - Do básico ao avançado (20)

Construindo APIs RESTful com Spring
Construindo APIs RESTful com SpringConstruindo APIs RESTful com Spring
Construindo APIs RESTful com Spring
 
Protocolo Http
Protocolo HttpProtocolo Http
Protocolo Http
 
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
 
Consumindo dados via web service no android
Consumindo dados via web service no androidConsumindo dados via web service no android
Consumindo dados via web service no android
 
Desenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2pyDesenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2py
 
OAuth2: Uma abordagem para segurança de aplicações e APIs REST - Devcamp 2014
OAuth2: Uma abordagem para segurança de aplicações e APIs REST  - Devcamp 2014OAuth2: Uma abordagem para segurança de aplicações e APIs REST  - Devcamp 2014
OAuth2: Uma abordagem para segurança de aplicações e APIs REST - Devcamp 2014
 
Web apis
Web apisWeb apis
Web apis
 
Introdução ao ASP .NET Web API
Introdução ao ASP .NET Web APIIntrodução ao ASP .NET Web API
Introdução ao ASP .NET Web API
 
Aula 1 - Testando a Segurança de Sua Aplicação Web
Aula 1 - Testando a Segurança de Sua Aplicação WebAula 1 - Testando a Segurança de Sua Aplicação Web
Aula 1 - Testando a Segurança de Sua Aplicação Web
 
Sua Startup precisa de uma WebAPI.
Sua Startup precisa de uma WebAPI.Sua Startup precisa de uma WebAPI.
Sua Startup precisa de uma WebAPI.
 
WebAPI-Route-Translate-BasicAuth
WebAPI-Route-Translate-BasicAuthWebAPI-Route-Translate-BasicAuth
WebAPI-Route-Translate-BasicAuth
 
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEM
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEMMinicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEM
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEM
 
[ATC] Testando sua API com HTTPARTY e Rodando em um CI
[ATC] Testando sua API com HTTPARTY e Rodando em um CI[ATC] Testando sua API com HTTPARTY e Rodando em um CI
[ATC] Testando sua API com HTTPARTY e Rodando em um CI
 
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web API
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web APITrilha .NET - REST na plataforma Microsoft com ASP.NET Web API
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web API
 
Conhecendo os recursos do ASP.NET Web API
Conhecendo os recursos do ASP.NET Web APIConhecendo os recursos do ASP.NET Web API
Conhecendo os recursos do ASP.NET Web API
 
Desafio Rest API
Desafio Rest APIDesafio Rest API
Desafio Rest API
 
API's Automidia: Provendo Meios Estruturados de Integração
API's Automidia: Provendo Meios Estruturados de IntegraçãoAPI's Automidia: Provendo Meios Estruturados de Integração
API's Automidia: Provendo Meios Estruturados de Integração
 
Web service
Web serviceWeb service
Web service
 
ApresentaçãO Mvc
ApresentaçãO MvcApresentaçãO Mvc
ApresentaçãO Mvc
 
Apresentação M V C
Apresentação M V CApresentação M V C
Apresentação M V C
 

Mais de Eduardo Bohrer

Monitorando sistemas distribuidos
Monitorando sistemas distribuidosMonitorando sistemas distribuidos
Monitorando sistemas distribuidosEduardo Bohrer
 
Kubernetes - ThoughtWorks Tech Radar 18
Kubernetes - ThoughtWorks Tech Radar 18Kubernetes - ThoughtWorks Tech Radar 18
Kubernetes - ThoughtWorks Tech Radar 18Eduardo Bohrer
 
Refatoração - XPConfBR 2015
Refatoração - XPConfBR 2015 Refatoração - XPConfBR 2015
Refatoração - XPConfBR 2015 Eduardo Bohrer
 
Node.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançadoNode.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançadoEduardo Bohrer
 
Builds e Pipelines - A arte de automatizar a entrega de software!
Builds e Pipelines - A arte de automatizar a entrega de software!Builds e Pipelines - A arte de automatizar a entrega de software!
Builds e Pipelines - A arte de automatizar a entrega de software!Eduardo Bohrer
 
Git para quem gosta de git
Git para quem gosta de gitGit para quem gosta de git
Git para quem gosta de gitEduardo Bohrer
 
NoSQL and AWS Dynamodb
NoSQL and AWS DynamodbNoSQL and AWS Dynamodb
NoSQL and AWS DynamodbEduardo Bohrer
 
XSS (Cross site scripting)
XSS (Cross site scripting)XSS (Cross site scripting)
XSS (Cross site scripting)Eduardo Bohrer
 
Memória e Garbage Collection na JVM
Memória e Garbage Collection na JVMMemória e Garbage Collection na JVM
Memória e Garbage Collection na JVMEduardo Bohrer
 
Chaos Report - Web Security Version
Chaos Report - Web Security VersionChaos Report - Web Security Version
Chaos Report - Web Security VersionEduardo Bohrer
 

Mais de Eduardo Bohrer (10)

Monitorando sistemas distribuidos
Monitorando sistemas distribuidosMonitorando sistemas distribuidos
Monitorando sistemas distribuidos
 
Kubernetes - ThoughtWorks Tech Radar 18
Kubernetes - ThoughtWorks Tech Radar 18Kubernetes - ThoughtWorks Tech Radar 18
Kubernetes - ThoughtWorks Tech Radar 18
 
Refatoração - XPConfBR 2015
Refatoração - XPConfBR 2015 Refatoração - XPConfBR 2015
Refatoração - XPConfBR 2015
 
Node.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançadoNode.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançado
 
Builds e Pipelines - A arte de automatizar a entrega de software!
Builds e Pipelines - A arte de automatizar a entrega de software!Builds e Pipelines - A arte de automatizar a entrega de software!
Builds e Pipelines - A arte de automatizar a entrega de software!
 
Git para quem gosta de git
Git para quem gosta de gitGit para quem gosta de git
Git para quem gosta de git
 
NoSQL and AWS Dynamodb
NoSQL and AWS DynamodbNoSQL and AWS Dynamodb
NoSQL and AWS Dynamodb
 
XSS (Cross site scripting)
XSS (Cross site scripting)XSS (Cross site scripting)
XSS (Cross site scripting)
 
Memória e Garbage Collection na JVM
Memória e Garbage Collection na JVMMemória e Garbage Collection na JVM
Memória e Garbage Collection na JVM
 
Chaos Report - Web Security Version
Chaos Report - Web Security VersionChaos Report - Web Security Version
Chaos Report - Web Security Version
 

Último

EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIAEAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIAMarcio Venturelli
 
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docxATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
Palestras sobre Cibersegurança em Eventos - Paulo Pagliusi
Palestras sobre Cibersegurança em Eventos - Paulo PagliusiPalestras sobre Cibersegurança em Eventos - Paulo Pagliusi
Palestras sobre Cibersegurança em Eventos - Paulo PagliusiPaulo Pagliusi, PhD, CISM
 
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docxATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx2m Assessoria
 
Entrevistas, artigos, livros & citações de Paulo Pagliusi
Entrevistas, artigos, livros & citações de Paulo PagliusiEntrevistas, artigos, livros & citações de Paulo Pagliusi
Entrevistas, artigos, livros & citações de Paulo PagliusiPaulo Pagliusi, PhD, CISM
 
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)Alessandro Almeida
 
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINASCOI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINASMarcio Venturelli
 

Último (8)

EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIAEAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
 
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docxATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Palestras sobre Cibersegurança em Eventos - Paulo Pagliusi
Palestras sobre Cibersegurança em Eventos - Paulo PagliusiPalestras sobre Cibersegurança em Eventos - Paulo Pagliusi
Palestras sobre Cibersegurança em Eventos - Paulo Pagliusi
 
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docxATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
 
Entrevistas, artigos, livros & citações de Paulo Pagliusi
Entrevistas, artigos, livros & citações de Paulo PagliusiEntrevistas, artigos, livros & citações de Paulo Pagliusi
Entrevistas, artigos, livros & citações de Paulo Pagliusi
 
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
 
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINASCOI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
 

uMov.me API - Do básico ao avançado

  • 1. UMOV.ME API Do básico ao avançado @nbluis http://about.me/nbluis
  • 2. O QUE É ? • Maneira fácil (para desenvolvedores) de realizar integração online com uMov.me • Permite pesquisar, visualizar e manter praticamente todos os cadastros do sistema • Permite ainda realizar algumas operações avançadas dentro do sistema
  • 3. O QUE NÃO É ? • Uma forma diferente de usuários operarem o sistema • Um serviço a ser consumido por usuários finais (Agentes, Vendedores, etc.) • Solução ideal para qualquer tipo de integração com uMov.me
  • 4. COMO FUNCIONA ? • Através de requisições HTTP • Trafega informação por XML • Utiliza conceitos de REST
  • 5. COMO FUNCIONA ? • Através de requisições HTTP • Trafega informação por XML • Utiliza conceitos de REST
  • 6. ENTENDENDO HTTP HTTP é o protocolo padrão utilizado na internet É através de HTTP que nosso navegador acessa qualquer site na internet
  • 7. ENTENDENDO HTTP Cliente Requisição / R equest http://api.umo v.me nse sposta / Respo Re sta eúdo da respo Cont Servidor
  • 8. ENTENDENDO HTTP A requisição é composta por 4 informações básicas Método (Method) Endereço (URL) Conteúdo (Content/Payload) Cabeçalhos adicionais (Headers)
  • 9. ENTENDENDO HTTP A resposta é composta por 4 informações básicas Status code (Código de status de sucesso ou erro) Resposta Cabeçalhos adicionais (Headers)
  • 10. PRINCIPAIS MÉTODOS HTTP • GET - Busca uma informação do servidor • POST - Atualiza uma informação no servidor • Existem outros (PUT / HEAD / DELETE) mas não são utilizados por nossa api.
  • 11. EXEMPLO DE REQUISIÇÃO • • Método: GET URL: http://google.com • Conteúdo: NENHUM • Cabeçalhos: NENHUM • Método: POST • URL: http://google.com/createUser • Conteúdo: userName=Eduardo&password=senha • Cabeçalhos: NENHUM
  • 12. COMO FUNCIONA ? • Através de requisições HTTP • Trafega informação por XML • Utiliza conceitos de REST
  • 13. ENTENDENDO XML •É uma linguagem de marcação • Baseado • Facil em tags de representar estruturas complexas utilizando texto • Todo mundo conhece
  • 15. COMO FUNCIONA ? • Através de requisições HTTP • Trafega informação por XML • Utiliza conceitos de REST
  • 16. ENTENDENDO REST Um serviço REST nada mais é que utilizar o que já aprendemos sobre HTTP para manusear este serviço.
  • 17. EXEMPLO REST Listar usuários: Incluir usuário: GET: http://servico.com/user Resposta: <usuarios> <usuario>123</usuario> </usuarios> POST: http://servico.com/user <usuario> <nome>Novo usuário</nome> </usuarios> Visualizar usuário: Alterar usuário: GET: http://servico.com/user/123 Resposta: <usuario> <id>123</id> <nome>Eduardo</nome> </usuarios> POST: http://servico.com/user/123 <usuario> <nome>Novo nome</nome> </usuarios>
  • 18. ENTRANDO NO UMOV.ME Agora que entendemos um mínimo sobre APIs vamos ao uMov.me No uMov.me é necessário utilizar um TOKEN de acesso para realizar a autenticação na API
  • 19. CRIANDO UM TOKEN Para criar um TOKEN para um ambiente basta acessar a tela de “Criação > Parâmetros” no uMov.Center
  • 20. EXEMPLO DE ACESSO A API GET: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/agent.xml
  • 21. EXEMPLO DE ACESSO A API GET: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/agent.xml Método HTTP
  • 22. EXEMPLO DE ACESSO A API GET: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/agent.xml URL Base
  • 23. EXEMPLO DE ACESSO A API GET: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/agent.xml Token de acesso
  • 24. EXEMPLO DE ACESSO A API GET: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/agent.xml Recurso acessado
  • 25. EXEMPLO DE ACESSO A API GET: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/agent.xml Formato (apenas xml)
  • 26. EXEMPLO DE ACESSO A API A maioria das operações da API segue um modelo muito parecido de cadastro que será mostrado a seguir. Todos os recursos disponíveis da API uMov.me está disponível na KB: http://kb.umov.me/?q=pt-br/node/914
  • 27. EXEMPLO DE ACESSO A API Exemplo utilizando agente como recurso Listar agentes: GET: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/agent.xml Visualizar um agente: GET: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/agent/123.xml Incluir um agente: POST: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/agent.xml Alterar um agente: POST: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/agent/123.xml
  • 28. EXEMPLO DE ACESSO A API Fique atento aos pontos destacados em cada operação
  • 29. EXEMPLO DE ACESSO A API Listar agentes: GET: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/agent.xml Visualizar um agente: GET: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/agent/123.xml Incluir um agente: POST: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/agent.xml Alterar um agente: POST: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/agent/123.xml
  • 30. EXEMPLO DE ACESSO A API Para visualizar ou alterar um agente específico precisamos informar qual agente queremos, utilizando o seu id. Visualizar um agente: GET: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/agent/123.xml Alterar um agente: POST: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/agent/123.xml
  • 31. EXEMPLO DE ACESSO A API Para a maioria das demais operações basta alterar o recurso na URL
  • 32. EXEMPLO DE ACESSO A API Exemplo utilizando item como recurso Listar itens: GET: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/item.xml Visualizar um item: GET: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/item/123.xml Incluir um item: POST: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/item.xml Alterar um item: POST: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/item/123.xml
  • 33. EXEMPLOS ADICIONAIS Os exemplos a seguir aprofundam um pouco mais cada operação da API. A maioria dos demais recursos da API podem ser operados utilizando o mesmo formato ao que está sendo mostrado.
  • 34. EXEMPLO DE PESQUISA Listar agentes: GET: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/agent.xml Resposta: <result> <resourceName>agent</resourceName> <size>2</size> <entries> <entry id="1" link="/agent/1.xml"/> <entry id="2" link="/agent/2.xml"/> </entries> </result> Nome do recurso pesquisado Quantidade de registros retornados Link para acesso a visualização de cada registro Identificador interno de cada registro
  • 35. APROFUDANDO A PESQUISA A pesquisa permite também que filtremos informações por qualquer campo da entidade sendo pesquisada através da URL Exemplo GET: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/agent.xml?active=true
  • 36. APROFUDANDO A PESQUISA Permite ainda pesquisas por campos de entidades relacionadas ao recurso Exemplo GET: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/ agent.xml?agentType.description=Vendedores
  • 37. LIMITE DA PESQUISA Independente dos filtros informados, o retorno sempre está sujeito a limitação de registros retornados Por padrão este limite é de 20 registros
  • 38. EXEMPLO DE VISUALIZAÇÃO Visualizar um agente: GET: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/agent/123.xml Resposta: <agent> <id>123</id> <name>Joao da Silva</name> <login>joaosilva</login> <agentType> <id>1234</id> <description>Vendedor</description> </agentType> <active>false</active> <alternativeIdentifier/> .... </agent> XML apresentando todos os campos visíveis do recurso
  • 39. EXEMPLO DE INCLUSÃO Incluir um agente: POST: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/agent.xml Envio: <agent> <active>true</active> <agentType><id>1234</id></agentType> <login>fulano</login> <name>Fulano da Silva</name> <password>minha_senha_nao_criptografada</password> <email>fulano@empresa.com</email> <centerwebUser>true</centerwebUser> <mobileUser>true</mobileUser> <centerwebUserRole>D</centerwebUserRole> </agent> Resposta: <result> <resourceName>agent</resourceName> <resourceId>1234</resourceId> <link>/agent/1234.xml</link> </result> Nome do recurso operado Identificador do novo agente Dados do agente a ser incluso Link para acesso ao novo agente
  • 40. EXEMPLO DE ALTERAÇÃO Alterar um agente: POST: http://api.umov.me/CenterWeb/api/123exxxxxxxxx/agent/123.xml Envio: <agent> <name>Novo Nome</name> </agent> Resposta: <result> <resourceName>agent</resourceName> <resourceId>1234</resourceId> <link>/agent/1234.xml</link> </result> Nome do recurso operado Dados do agente a ser alterado (apenas os dados a serem modificados) Identificador do agente alterado Link para acesso ao agente alterado
  • 41. UTILIZANDO IDENTIFICADOR Todas as requisições básicas permitem operar os recursos da API também pelo identificador alternativo Nesse caso os XMLs não mudam, mudam apenas a URL
  • 42. EXEMPLO IDENTIFICADOR ALTERNATIVO O início da URL (http://api.umov.me/CenterWeb) foi omitida nos exemplos abaixo Visualizar um agente: GET: /123exxxxxxxxx/agent/alternativeIdentifier/123.xml Alterar um agente: POST: /123exxxxxxxxx/agent/alternativeIdentifier/123.xml
  • 43. VISUALIZANDO ERROS Sempre que ocorrer o erro em decorrência de uma requisição, a mensagem será retornada permitindo um melhor entendimento do problema
  • 44. EXEMPLO DE ERRO Retorno: <result> <statusCode>400</statusCode> Código de erro http retornado <errors>login: error.mandatory.field</errors> Campo e mensagem de erro <resourceName>agent</resourceName> Recurso manipulado pela requisição </result>