SlideShare uma empresa Scribd logo
1 de 4
Baixar para ler offline
Restful – Part 2
Recursos
Um recurso é nada exposta pelo sistema que tem uma identidade. Recursos
oferecem uma maneira de adaptar o domínio de aplicação aos clientes web.
Uma imagem, uma planilha, um serviço ou uma coleção de outros recursos
são alguns exemplos de recursos. Os recursos são obtidos ou enviar usando
uma certa representação (XML, JSON, etc.). Nós lidamos com
representações de recursos, e não com os próprios recursos, seguindo a
ideia de "Pass-by-value". Após a definição REST anterior, os recursos
representam os documentos que estão sendo transferidos através da rede
para começar o trabalho feito. estado de recursos é uma preocupação do
lado do servidor, uma vez que representa o estado de domínio, clientes só
buscar ou enviar representações de recursos para o progresso do estado do
aplicativo. Por outro lado, o estado da aplicação é uma preocupação do
lado do cliente, uma vez que representa o progresso para um objectivo
particular aplicação. Os recursos devem ser nomeados como substantivos,
pois representam conceitos no domínio de um sistema particular e são
identificados usando URIs.
URIs (Uniform Resource Identifier)
URIs diferenciar um recurso de outro. Para acessar e manipular um
recurso, ele precisa ter pelo menos um endereço. Eles são compostos por
uma série protocolo + + caminho. Os clientes não devem ser acoplados a
URIs específicos de recursos como eles podem ser alterados a critério do
servidor. Este é o lugar onde hipermídia tem as maiores vantagens, uma
vez que oferece uma maneira de separar clientes de URIs específicos e
adicionar semântica para o protocolo de aplicação.
Hipermídia
Hipermídia informa o cliente sobre o que ele pode fazer em seguida,
através do uso de controles de hipermídia (links e formas) nas respostas, eo
URI específica para fazê-lo. O formato hipermídia concreto para uma
determinada aplicação é definida no tipo de aplicativo Media. elos
hipermídia são compostas por um atributo href que especifica o URI para
acessar o recurso vinculado e um atributo rel que define o significado da
relação, portanto, acrescentando semântica para as transições de estado na
aplicação. O uso de links permite que o servidor para anunciar novos
recursos, incluindo novas ligações nas respostas sem quebrar os clientes
existentes. Enquanto o servidor manter ligações previamente definidas nas
respostas, os clientes seriam capazes de segui-los assim como eles eram
antes do novo estado foi adicionado. Os clientes que só necessitam de ser
atualizadas se eles precisam acessar o novo estado. Outra vantagem
hipermídia é que ele introduz descoberta, fornecendo uma maneira de fazer
um protocolo de descoberta e autodocumentado.
Os clientes começam a interagir com o aplicativo por meio de uma URL
fixa, e a partir daí todas as outras ações acontecem pelo cliente seguindo os
links , formatado com o tipo de mídia e fornecido pelo servidor em cada
resposta.
tipos de mídia e links definir o contrato entre o servidor de aplicativos eo
cliente. O cliente interage com o sistema , navegando o estado do aplicativo
utilizando as ligações . Isto é o que HATEOAS ( Hipermídia como motor
do estado do aplicativo ) realmente significa.
Hipermedia ( para além dos elementos já definidos ) é o que significa
REST realmente .
Abaixo um exemplo de um requisição Rest para retornar uma validação
Aoath do salesforce:
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:http="http://www.mulesoft.org/schema/mule/http"
xmlns:tracking="http://www.mulesoft.org/schema/mule/ee/trackin
g" xmlns="http://www.mulesoft.org/schema/mule/core"
xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:spring="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.mulesoft.org/schema/mule/http
http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-current.xsd
http://www.mulesoft.org/schema/mule/core
http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/ee/tracking
http://www.mulesoft.org/schema/mule/ee/tracking/current/mule-tracking-
ee.xsd">
<sub-flow name="getAuthorizationToken">
<http:request config-ref="HTTP_Request_Configuration"
path="/services/oauth2/token" method="POST"
doc:name="RequestAuthorization">
<http:request-builder>
<http:query-param paramName="grant_type"
value="password"/>
<http:query-param paramName="client_id"
value="3MVG9Nc1qcZ7BbZ0.lrUdTc6imEmpmeMblw6fJZ_TySlFWN3
AFZ.Wbre4W01j_RkzLlqlGTqjRZLwMuMOL.qZ"/>
<http:query-param paramName="client_secret"
value="7205123458111539520"/>
<http:query-param paramName="username"
value="teste@teste.com.br"/>
<http:query-param paramName="password"
value="Salesforce2!"/>
</http:request-builder>
<http:success-status-code-validator values="0..599"/>
</http:request>
<set-payload value="#[json:access_token]"
doc:name="extractTokenFromResponse"/>
</sub-flow>
<flow name="executeWaveQuery" processingStrategy="synchronous">
<enricher target="#[flowVars.authorizationToken]"
doc:name="Message Enricher">
<processor-chain doc:name="Processor Chain">
<flow-ref name="getAuthorizationToken"
doc:name="getAuthorizationToken"/>
</processor-chain>
</enricher>
<http:request config-ref="HTTP_Request_Unilever"
path="/services/data/v36.0/wave/query" method="POST"
doc:name="QueryWave">
<http:request-builder>
<http:header headerName="Authorization" value="OAuth
#[flowVars.authorizationToken]"/>
<http:header headerName="Content-Type"
value="application/json"/>
</http:request-builder>
</http:request>
<logger level="INFO" doc:name="Logger"/>
</flow>
<flow name="getSalesChannel" processingStrategy="synchronous">
<set-payload value="${query.get_sales_channel}"
doc:name="setQueryGetSalesChannel"/>
<flow-ref name="executeWaveQuery"
doc:name="executeWaveQuery"/>
<logger message="#[message.payloadAs(java.lang.String)]"
level="INFO" doc:name="Logger"/>
</flow>
<flow name="getImpactedStore" processingStrategy="synchronous">
<set-payload value="${query.get_impacted_store}"
doc:name="setQueryGetImpactedStore"/>
<logger level="INFO" doc:name="Get Impacted Store SAQL"/>
<flow-ref name="executeWaveQuery"
doc:name="executeWaveQuery"/>
</flow>
<flow name="getECOTarget" processingStrategy="synchronous">
<set-payload value="${query.get_eco}"
doc:name="setQueryGetOrderInvoiceECO"/>
<logger message="SAQL -------&gt;
#[message.payloadAs(java.lang.String)]" level="INFO" doc:name="Get
ECO SAQL"/>
<flow-ref name="executeWaveQuery"
doc:name="executeWaveQuery"/>
</flow>
<flow name="get_orderInvoice_dataSet">
<set-payload value="${query.purge_orderInvoice}" doc:name="Set
Payload"/>
<logger message="SAQL -------&gt;
#[message.payloadAs(java.lang.String)]" level="INFO"
doc:name="Logger"/>
<flow-ref name="executeWaveQuery"
doc:name="executeWaveQuery"/>
<flow-ref name="dms_purge_orderInvoice_Flow"
doc:name="dms_purge_orderInvoice_Flow"/>
</flow>
</mule>

Mais conteúdo relacionado

Destaque

Mule esb com framework cucumber part 1
Mule esb com framework cucumber part 1Mule esb com framework cucumber part 1
Mule esb com framework cucumber part 1Jeison Barros
 
Substituindo o request message no mule
Substituindo o request message no muleSubstituindo o request message no mule
Substituindo o request message no muleJeison Barros
 
Usando seu codigo java no mule part 2
Usando seu codigo java no mule part 2Usando seu codigo java no mule part 2
Usando seu codigo java no mule part 2Jeison Barros
 
Usando seu codigo java no mule part 1
Usando seu codigo java no mule part 1Usando seu codigo java no mule part 1
Usando seu codigo java no mule part 1Jeison Barros
 
Fluxo dinâmicos usando spring aplication
Fluxo dinâmicos usando spring aplicationFluxo dinâmicos usando spring aplication
Fluxo dinâmicos usando spring aplicationJeison Barros
 
Introdução ao mule esb para iniciantes
Introdução ao mule esb para iniciantesIntrodução ao mule esb para iniciantes
Introdução ao mule esb para iniciantesJeison Barros
 
Principais duvidas sobre mule
Principais duvidas sobre mulePrincipais duvidas sobre mule
Principais duvidas sobre muleJeison Barros
 
Mule esb com framework cucumber part 2
Mule esb com framework cucumber part 2Mule esb com framework cucumber part 2
Mule esb com framework cucumber part 2Jeison Barros
 
Relatório analytics de mula tempo de execução usando splunk
Relatório analytics de mula tempo de execução usando splunkRelatório analytics de mula tempo de execução usando splunk
Relatório analytics de mula tempo de execução usando splunkJeison Barros
 
Integração salesforce com mulesoft usando o salesforce conector
Integração salesforce com mulesoft usando o salesforce conectorIntegração salesforce com mulesoft usando o salesforce conector
Integração salesforce com mulesoft usando o salesforce conectorJeison Barros
 
Data mapping com Groovy - Part 2
Data mapping com Groovy - Part 2Data mapping com Groovy - Part 2
Data mapping com Groovy - Part 2Jeison Barros
 
Mulesoft - Salesforce Analytics Cloud Connector - Part 1
Mulesoft - Salesforce Analytics Cloud Connector - Part 1Mulesoft - Salesforce Analytics Cloud Connector - Part 1
Mulesoft - Salesforce Analytics Cloud Connector - Part 1Jeison Barros
 
Compilação de tutoriais blog MulePE
Compilação de tutoriais blog MulePECompilação de tutoriais blog MulePE
Compilação de tutoriais blog MulePEJeison Barros
 
Mule esb teste parte 1
Mule esb teste   parte 1Mule esb teste   parte 1
Mule esb teste parte 1Jeison Barros
 
Principais perguntas sobre mule esb parte 2
Principais perguntas sobre mule esb parte 2 Principais perguntas sobre mule esb parte 2
Principais perguntas sobre mule esb parte 2 Jeison Barros
 
Mule esb teste parte 2
Mule esb teste   parte 2Mule esb teste   parte 2
Mule esb teste parte 2Jeison Barros
 
Qual integration framework você deve usar parte 1
Qual integration framework você deve usar parte 1Qual integration framework você deve usar parte 1
Qual integration framework você deve usar parte 1Jeison Barros
 
Habilidades necessárias para integrar aplicativos e dados
Habilidades necessárias para integrar aplicativos e dadosHabilidades necessárias para integrar aplicativos e dados
Habilidades necessárias para integrar aplicativos e dadosJeison Barros
 
Trabalhando com anexos soap usando módulo cxf do mule
Trabalhando com anexos soap usando módulo cxf do muleTrabalhando com anexos soap usando módulo cxf do mule
Trabalhando com anexos soap usando módulo cxf do muleJeison Barros
 

Destaque (20)

Mule esb com framework cucumber part 1
Mule esb com framework cucumber part 1Mule esb com framework cucumber part 1
Mule esb com framework cucumber part 1
 
Substituindo o request message no mule
Substituindo o request message no muleSubstituindo o request message no mule
Substituindo o request message no mule
 
Usando seu codigo java no mule part 2
Usando seu codigo java no mule part 2Usando seu codigo java no mule part 2
Usando seu codigo java no mule part 2
 
Usando seu codigo java no mule part 1
Usando seu codigo java no mule part 1Usando seu codigo java no mule part 1
Usando seu codigo java no mule part 1
 
Fluxo dinâmicos usando spring aplication
Fluxo dinâmicos usando spring aplicationFluxo dinâmicos usando spring aplication
Fluxo dinâmicos usando spring aplication
 
Introdução ao mule esb para iniciantes
Introdução ao mule esb para iniciantesIntrodução ao mule esb para iniciantes
Introdução ao mule esb para iniciantes
 
Principais duvidas sobre mule
Principais duvidas sobre mulePrincipais duvidas sobre mule
Principais duvidas sobre mule
 
Mule esb com framework cucumber part 2
Mule esb com framework cucumber part 2Mule esb com framework cucumber part 2
Mule esb com framework cucumber part 2
 
Relatório analytics de mula tempo de execução usando splunk
Relatório analytics de mula tempo de execução usando splunkRelatório analytics de mula tempo de execução usando splunk
Relatório analytics de mula tempo de execução usando splunk
 
Integração salesforce com mulesoft usando o salesforce conector
Integração salesforce com mulesoft usando o salesforce conectorIntegração salesforce com mulesoft usando o salesforce conector
Integração salesforce com mulesoft usando o salesforce conector
 
Data mapping com Groovy - Part 2
Data mapping com Groovy - Part 2Data mapping com Groovy - Part 2
Data mapping com Groovy - Part 2
 
Mulesoft - Salesforce Analytics Cloud Connector - Part 1
Mulesoft - Salesforce Analytics Cloud Connector - Part 1Mulesoft - Salesforce Analytics Cloud Connector - Part 1
Mulesoft - Salesforce Analytics Cloud Connector - Part 1
 
Compilação de tutoriais blog MulePE
Compilação de tutoriais blog MulePECompilação de tutoriais blog MulePE
Compilação de tutoriais blog MulePE
 
Mule esb teste parte 1
Mule esb teste   parte 1Mule esb teste   parte 1
Mule esb teste parte 1
 
Principais perguntas sobre mule esb parte 2
Principais perguntas sobre mule esb parte 2 Principais perguntas sobre mule esb parte 2
Principais perguntas sobre mule esb parte 2
 
Mule esb teste parte 2
Mule esb teste   parte 2Mule esb teste   parte 2
Mule esb teste parte 2
 
Rest introdução
Rest introduçãoRest introdução
Rest introdução
 
Qual integration framework você deve usar parte 1
Qual integration framework você deve usar parte 1Qual integration framework você deve usar parte 1
Qual integration framework você deve usar parte 1
 
Habilidades necessárias para integrar aplicativos e dados
Habilidades necessárias para integrar aplicativos e dadosHabilidades necessárias para integrar aplicativos e dados
Habilidades necessárias para integrar aplicativos e dados
 
Trabalhando com anexos soap usando módulo cxf do mule
Trabalhando com anexos soap usando módulo cxf do muleTrabalhando com anexos soap usando módulo cxf do mule
Trabalhando com anexos soap usando módulo cxf do mule
 

Semelhante a Restful Recursos URIs

Web services com restful
Web services com restfulWeb services com restful
Web services com restfulRaquel Machado
 
INTEGRAÇÃO DE APLICAÇÃO ANDROID COM WEB SERVICES REST
INTEGRAÇÃO DE APLICAÇÃO ANDROID COM WEB SERVICES RESTINTEGRAÇÃO DE APLICAÇÃO ANDROID COM WEB SERVICES REST
INTEGRAÇÃO DE APLICAÇÃO ANDROID COM WEB SERVICES RESTRafael Bitencourt
 
Testando API REST - Parte 1
Testando API REST - Parte 1Testando API REST - Parte 1
Testando API REST - Parte 1alinebiath
 
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
 
Desbravando o REST com Python
Desbravando o REST com PythonDesbravando o REST com Python
Desbravando o REST com PythonMatheus Fidelis
 
Desenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EEDesenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EELuan Felipe Knebel
 
REST vs GraphQL - A batalha das APIs.pdf
REST vs GraphQL - A batalha das APIs.pdfREST vs GraphQL - A batalha das APIs.pdf
REST vs GraphQL - A batalha das APIs.pdfBrunoAlbuquerque864673
 
REST vs GraphQL - A batalha das APIs.pdf
REST vs GraphQL - A batalha das APIs.pdfREST vs GraphQL - A batalha das APIs.pdf
REST vs GraphQL - A batalha das APIs.pdfBrunoAlbuquerque864673
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETRenato Groff
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETRenato Groff
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETRenato Groff
 
201406Carvalho
201406Carvalho201406Carvalho
201406CarvalhoAfonso Pra
 

Semelhante a Restful Recursos URIs (20)

SOA - WOA - REST
SOA - WOA - RESTSOA - WOA - REST
SOA - WOA - REST
 
Web services com restful
Web services com restfulWeb services com restful
Web services com restful
 
INTEGRAÇÃO DE APLICAÇÃO ANDROID COM WEB SERVICES REST
INTEGRAÇÃO DE APLICAÇÃO ANDROID COM WEB SERVICES RESTINTEGRAÇÃO DE APLICAÇÃO ANDROID COM WEB SERVICES REST
INTEGRAÇÃO DE APLICAÇÃO ANDROID COM WEB SERVICES REST
 
Spring social
Spring socialSpring social
Spring social
 
Testando API REST - Parte 1
Testando API REST - Parte 1Testando API REST - Parte 1
Testando API REST - Parte 1
 
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...
 
Desbravando o REST com Python
Desbravando o REST com PythonDesbravando o REST com Python
Desbravando o REST com Python
 
WebServices-XML
WebServices-XMLWebServices-XML
WebServices-XML
 
Desenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EEDesenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EE
 
REST vs GraphQL - A batalha das APIs.pdf
REST vs GraphQL - A batalha das APIs.pdfREST vs GraphQL - A batalha das APIs.pdf
REST vs GraphQL - A batalha das APIs.pdf
 
Web Service - XML
Web Service - XMLWeb Service - XML
Web Service - XML
 
Web Services
Web ServicesWeb Services
Web Services
 
REST vs GraphQL - A batalha das APIs.pdf
REST vs GraphQL - A batalha das APIs.pdfREST vs GraphQL - A batalha das APIs.pdf
REST vs GraphQL - A batalha das APIs.pdf
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
 
PHP nas Nuvens
PHP nas NuvensPHP nas Nuvens
PHP nas Nuvens
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
 
201406Carvalho
201406Carvalho201406Carvalho
201406Carvalho
 
A Estrutura de um Web Service
A Estrutura de um Web ServiceA Estrutura de um Web Service
A Estrutura de um Web Service
 
Web services
Web servicesWeb services
Web services
 

Mais de Jeison Barros

Introdução a RAML - parte 1
Introdução a RAML -  parte 1Introdução a RAML -  parte 1
Introdução a RAML - parte 1Jeison Barros
 
O básico do uso de rest vs soap
O básico do uso de rest vs soapO básico do uso de rest vs soap
O básico do uso de rest vs soapJeison Barros
 
Restful considerada prejudicial - parte 1
Restful considerada prejudicial -  parte 1Restful considerada prejudicial -  parte 1
Restful considerada prejudicial - parte 1Jeison Barros
 
Restful considerada prejudicial parte 2
Restful considerada prejudicial   parte 2Restful considerada prejudicial   parte 2
Restful considerada prejudicial parte 2Jeison Barros
 
Estratégia api e design
Estratégia api e designEstratégia api e design
Estratégia api e designJeison Barros
 
Transformando eficientemente resultados de uma consulta jdbc para json
Transformando eficientemente resultados de uma consulta jdbc para jsonTransformando eficientemente resultados de uma consulta jdbc para json
Transformando eficientemente resultados de uma consulta jdbc para jsonJeison Barros
 
Como criar um http proxy dinamico com mule parte 3
Como criar um http proxy dinamico com mule   parte 3Como criar um http proxy dinamico com mule   parte 3
Como criar um http proxy dinamico com mule parte 3Jeison Barros
 
Como criar um http proxy dinamico com mule parte 1
Como criar um http proxy dinamico com mule   parte 1Como criar um http proxy dinamico com mule   parte 1
Como criar um http proxy dinamico com mule parte 1Jeison Barros
 
Conectando seu banco de dados usando jdbc
Conectando seu banco de dados usando jdbcConectando seu banco de dados usando jdbc
Conectando seu banco de dados usando jdbcJeison Barros
 
Qual integration framework você deve usar parte 2
Qual integration framework você deve usar parte 2Qual integration framework você deve usar parte 2
Qual integration framework você deve usar parte 2Jeison Barros
 
Consumindo soap wsdl
Consumindo soap wsdlConsumindo soap wsdl
Consumindo soap wsdlJeison Barros
 
Começando com mulesoft e maven
Começando com mulesoft e mavenComeçando com mulesoft e maven
Começando com mulesoft e mavenJeison Barros
 
Estudo de caso: Mule como um transporte JMS Comum
Estudo de caso: Mule como um transporte JMS ComumEstudo de caso: Mule como um transporte JMS Comum
Estudo de caso: Mule como um transporte JMS ComumJeison Barros
 
Explorando mule esb sftp adapter
Explorando mule esb sftp adapterExplorando mule esb sftp adapter
Explorando mule esb sftp adapterJeison Barros
 

Mais de Jeison Barros (16)

Pdfteste
PdftestePdfteste
Pdfteste
 
Introdução a RAML - parte 1
Introdução a RAML -  parte 1Introdução a RAML -  parte 1
Introdução a RAML - parte 1
 
O básico do uso de rest vs soap
O básico do uso de rest vs soapO básico do uso de rest vs soap
O básico do uso de rest vs soap
 
Restful considerada prejudicial - parte 1
Restful considerada prejudicial -  parte 1Restful considerada prejudicial -  parte 1
Restful considerada prejudicial - parte 1
 
Restful considerada prejudicial parte 2
Restful considerada prejudicial   parte 2Restful considerada prejudicial   parte 2
Restful considerada prejudicial parte 2
 
Estratégia api e design
Estratégia api e designEstratégia api e design
Estratégia api e design
 
Transformando eficientemente resultados de uma consulta jdbc para json
Transformando eficientemente resultados de uma consulta jdbc para jsonTransformando eficientemente resultados de uma consulta jdbc para json
Transformando eficientemente resultados de uma consulta jdbc para json
 
Como criar um http proxy dinamico com mule parte 3
Como criar um http proxy dinamico com mule   parte 3Como criar um http proxy dinamico com mule   parte 3
Como criar um http proxy dinamico com mule parte 3
 
Como criar um http proxy dinamico com mule parte 1
Como criar um http proxy dinamico com mule   parte 1Como criar um http proxy dinamico com mule   parte 1
Como criar um http proxy dinamico com mule parte 1
 
Rest api vs SOAP
Rest api vs SOAPRest api vs SOAP
Rest api vs SOAP
 
Conectando seu banco de dados usando jdbc
Conectando seu banco de dados usando jdbcConectando seu banco de dados usando jdbc
Conectando seu banco de dados usando jdbc
 
Qual integration framework você deve usar parte 2
Qual integration framework você deve usar parte 2Qual integration framework você deve usar parte 2
Qual integration framework você deve usar parte 2
 
Consumindo soap wsdl
Consumindo soap wsdlConsumindo soap wsdl
Consumindo soap wsdl
 
Começando com mulesoft e maven
Começando com mulesoft e mavenComeçando com mulesoft e maven
Começando com mulesoft e maven
 
Estudo de caso: Mule como um transporte JMS Comum
Estudo de caso: Mule como um transporte JMS ComumEstudo de caso: Mule como um transporte JMS Comum
Estudo de caso: Mule como um transporte JMS Comum
 
Explorando mule esb sftp adapter
Explorando mule esb sftp adapterExplorando mule esb sftp adapter
Explorando mule esb sftp adapter
 

Restful Recursos URIs

  • 1. Restful – Part 2 Recursos Um recurso é nada exposta pelo sistema que tem uma identidade. Recursos oferecem uma maneira de adaptar o domínio de aplicação aos clientes web. Uma imagem, uma planilha, um serviço ou uma coleção de outros recursos são alguns exemplos de recursos. Os recursos são obtidos ou enviar usando uma certa representação (XML, JSON, etc.). Nós lidamos com representações de recursos, e não com os próprios recursos, seguindo a ideia de "Pass-by-value". Após a definição REST anterior, os recursos representam os documentos que estão sendo transferidos através da rede para começar o trabalho feito. estado de recursos é uma preocupação do lado do servidor, uma vez que representa o estado de domínio, clientes só buscar ou enviar representações de recursos para o progresso do estado do aplicativo. Por outro lado, o estado da aplicação é uma preocupação do lado do cliente, uma vez que representa o progresso para um objectivo particular aplicação. Os recursos devem ser nomeados como substantivos, pois representam conceitos no domínio de um sistema particular e são identificados usando URIs. URIs (Uniform Resource Identifier) URIs diferenciar um recurso de outro. Para acessar e manipular um recurso, ele precisa ter pelo menos um endereço. Eles são compostos por uma série protocolo + + caminho. Os clientes não devem ser acoplados a URIs específicos de recursos como eles podem ser alterados a critério do servidor. Este é o lugar onde hipermídia tem as maiores vantagens, uma vez que oferece uma maneira de separar clientes de URIs específicos e adicionar semântica para o protocolo de aplicação. Hipermídia Hipermídia informa o cliente sobre o que ele pode fazer em seguida, através do uso de controles de hipermídia (links e formas) nas respostas, eo URI específica para fazê-lo. O formato hipermídia concreto para uma determinada aplicação é definida no tipo de aplicativo Media. elos hipermídia são compostas por um atributo href que especifica o URI para acessar o recurso vinculado e um atributo rel que define o significado da relação, portanto, acrescentando semântica para as transições de estado na aplicação. O uso de links permite que o servidor para anunciar novos recursos, incluindo novas ligações nas respostas sem quebrar os clientes existentes. Enquanto o servidor manter ligações previamente definidas nas
  • 2. respostas, os clientes seriam capazes de segui-los assim como eles eram antes do novo estado foi adicionado. Os clientes que só necessitam de ser atualizadas se eles precisam acessar o novo estado. Outra vantagem hipermídia é que ele introduz descoberta, fornecendo uma maneira de fazer um protocolo de descoberta e autodocumentado. Os clientes começam a interagir com o aplicativo por meio de uma URL fixa, e a partir daí todas as outras ações acontecem pelo cliente seguindo os links , formatado com o tipo de mídia e fornecido pelo servidor em cada resposta. tipos de mídia e links definir o contrato entre o servidor de aplicativos eo cliente. O cliente interage com o sistema , navegando o estado do aplicativo utilizando as ligações . Isto é o que HATEOAS ( Hipermídia como motor do estado do aplicativo ) realmente significa. Hipermedia ( para além dos elementos já definidos ) é o que significa REST realmente . Abaixo um exemplo de um requisição Rest para retornar uma validação Aoath do salesforce: <?xml version="1.0" encoding="UTF-8"?> <mule xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns:tracking="http://www.mulesoft.org/schema/mule/ee/trackin g" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:spring="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd http://www.mulesoft.org/schema/mule/ee/tracking http://www.mulesoft.org/schema/mule/ee/tracking/current/mule-tracking- ee.xsd"> <sub-flow name="getAuthorizationToken"> <http:request config-ref="HTTP_Request_Configuration" path="/services/oauth2/token" method="POST" doc:name="RequestAuthorization">
  • 3. <http:request-builder> <http:query-param paramName="grant_type" value="password"/> <http:query-param paramName="client_id" value="3MVG9Nc1qcZ7BbZ0.lrUdTc6imEmpmeMblw6fJZ_TySlFWN3 AFZ.Wbre4W01j_RkzLlqlGTqjRZLwMuMOL.qZ"/> <http:query-param paramName="client_secret" value="7205123458111539520"/> <http:query-param paramName="username" value="teste@teste.com.br"/> <http:query-param paramName="password" value="Salesforce2!"/> </http:request-builder> <http:success-status-code-validator values="0..599"/> </http:request> <set-payload value="#[json:access_token]" doc:name="extractTokenFromResponse"/> </sub-flow> <flow name="executeWaveQuery" processingStrategy="synchronous"> <enricher target="#[flowVars.authorizationToken]" doc:name="Message Enricher"> <processor-chain doc:name="Processor Chain"> <flow-ref name="getAuthorizationToken" doc:name="getAuthorizationToken"/> </processor-chain> </enricher> <http:request config-ref="HTTP_Request_Unilever" path="/services/data/v36.0/wave/query" method="POST" doc:name="QueryWave"> <http:request-builder> <http:header headerName="Authorization" value="OAuth #[flowVars.authorizationToken]"/> <http:header headerName="Content-Type" value="application/json"/> </http:request-builder> </http:request> <logger level="INFO" doc:name="Logger"/> </flow> <flow name="getSalesChannel" processingStrategy="synchronous">
  • 4. <set-payload value="${query.get_sales_channel}" doc:name="setQueryGetSalesChannel"/> <flow-ref name="executeWaveQuery" doc:name="executeWaveQuery"/> <logger message="#[message.payloadAs(java.lang.String)]" level="INFO" doc:name="Logger"/> </flow> <flow name="getImpactedStore" processingStrategy="synchronous"> <set-payload value="${query.get_impacted_store}" doc:name="setQueryGetImpactedStore"/> <logger level="INFO" doc:name="Get Impacted Store SAQL"/> <flow-ref name="executeWaveQuery" doc:name="executeWaveQuery"/> </flow> <flow name="getECOTarget" processingStrategy="synchronous"> <set-payload value="${query.get_eco}" doc:name="setQueryGetOrderInvoiceECO"/> <logger message="SAQL -------&gt; #[message.payloadAs(java.lang.String)]" level="INFO" doc:name="Get ECO SAQL"/> <flow-ref name="executeWaveQuery" doc:name="executeWaveQuery"/> </flow> <flow name="get_orderInvoice_dataSet"> <set-payload value="${query.purge_orderInvoice}" doc:name="Set Payload"/> <logger message="SAQL -------&gt; #[message.payloadAs(java.lang.String)]" level="INFO" doc:name="Logger"/> <flow-ref name="executeWaveQuery" doc:name="executeWaveQuery"/> <flow-ref name="dms_purge_orderInvoice_Flow" doc:name="dms_purge_orderInvoice_Flow"/> </flow> </mule>