Como posso consultar a API da Best Buy Remix com jQuery?
-
20-09-2019 - |
Pergunta
Aqui está o código com o qual tenho tentado trabalhar:
$.getJSON("http://api.remix.bestbuy.com/v1/products(search=" + escape(searchCriteria) + ")?apiKey=" + hhApiKey + "&format=json&callback=?",
function(data) {
if(data.error) {
alert("I'm sorry, there was an error processing your request.");
} else {
alert(data);
}
});
No entanto, os dados que retornam têm um erro porque não entendem o URL solicitado. Eu olhei para a guia Net em Firebug e aqui está o URL que está tentando chamar:
http://api.remix.bestbuy.com/v1/products(search=digital%20camera)?Pikey=myapikey&format=json&callback=json1264868431&_1254866270659=
Eu acho que o problema está na seção em negrito, que está sendo adicionada sem motivo, tanto quanto eu sei. Eu acho que a API do remix vê e acha que é um parâmetro mal feito. Existe alguma maneira de impedir que isso seja adicionado?
Solução
Ao desativar a configuração do cache para o jQuery Ajax, ele tentará anexar um registro de data e hora à tentativa de consulta. Este pode ser o problema que você está experimentando. Tente chamar a função com o cache explicitamente ativado.
$.ajax({
type: "GET",
url: "http://api.remix.bestbuy.com/v1/products(search=" + escape(searchCriteria) + ")?apiKey=" + hhApiKey + "&format=json&callback=?",
cache: true,
success: function() {
alert('success');
},
dataType: 'json'
});
Outras dicas
Acabei de ir a esse URL e diz "403 desenvolvedor inativo". Você poderia precisar fazer um registro de desenvolvedor de API para passar e sua conta está ativa?
Muitas dessas solicitações de API (Netflix) exigem que você faça login primeiro e atribuirá um ID de sessão a você para incluir na sua consulta. Será que você não está registrado
Desculpe se essas parecem perguntas óbvias, estou apenas lançando algumas idéias por aí.
Existem 2 problemas com a consulta da API Remix declarada acima: o "&" e o "sublinhado" no retorno de chamada do JSON. O "&" faz com que a API pense que é um novo parâmetro que não entende. O "sublinhado" em qualquer retorno de chamada do JSON fará com que o analisador de consulta remix de retornar um "não conseguia entender ..." erro.