JSONP (JavaScript Object Notation with Padding) é uma extensão do formato JavaScript Object Notation (JSON).
O WebSphere Message Broker fornece suporte para serviços JSONP. Um serviço JSONP, ou Serviço JSON Remoto, é um serviço da Web que retorna dados JSON preenchidos com uma chamada de função JavaScript definida pelo usuário. A mensagem de resposta JSONP pode ser interpretada como um script executável, de modo que essa funcionalidade pode ser usada para criar chamadas de função de domínio cruzado.
http://brokerhost:7080/flowUrlPathSuffix?jsonp=scriptFn
scriptFn(response)
A árvore de mensagens JSON fornece um elemento Padding de nível superior, no qual o analisador JSON coloca o nome da função JSONP do lado do cliente. De forma semelhante, o serializador JSON preenche uma mensagem JSON, se o elemento de nível superior Padding estiver presente na árvore.
Para obter mais informações sobre JSON, consulte Analisador e Domínio JSON.
Para obter informações sobre como usar o WebSphere Message Broker para fornecer um serviço JSONP, consulte Fornecendo um Serviço JSONP.
Para obter informações sobre como usar o WebSphere Message Broker para consumir uma resposta do serviço JSONP, consulte Consumindo uma Resposta do Serviço JSONP.
O exemplo a seguir mostra uma mensagem JSONP simples:
scriptFn (
{
"name" : "John Doe",
"age" : -1.0,
"known" : false,
"address" : { "street" : null,
"city" : "unknown" },
"belongings" : ["item1", "item2", "item3"]
}
)
Esta entrada JSONP produz a seguinte árvore de mensagens lógica do broker:
(0x01000000:Object):JSON = ( ['json' : 0xd55fc8]
(0x03000000:NameValue):Padding = 'scriptFn' (CHARACTER)
(0x01000000:Object ):Data = (
(0x03000000:NameValue): name = 'John Doe' (CHARACTER)
(0x03000000:NameValue): age = -1E+0 (FLOAT)
(0x03000000:NameValue): known = FALSE (BOOLEAN)
(0x01000000:Object ): address = (
(0x03000000:NameValue):street = NULL
(0x03000000:NameValue): city = 'unknown' (CHARACTER)
)
(0x01001000:Array ):belongings = (
(0x03000000:NameValue): Item = 'item1' (CHARACTER)
(0x03000000:NameValue): Item = 'item2' (CHARACTER)
(0x03000000:NameValue): Item = 'item3' (CHARACTER)
)
)
)