• 0

Question

12 answers to this question

Recommended Posts

  • 0
On 7/4/2018 at 7:24 PM, buscacomponentes said:

Olá, boa noite.

É possível refinar a busca feita por GET com a string a seguir? Por exemplo, obter todas as páginas de resultados; filtrar por preço, etc.

/sites/{Site_id}/search?q=ipod

Claro!

olha en https://api.mercadolibre.com/sites/MLA/search?q=iphone#json

onde fala "available_filters" vc tem todas as possibilidades

Share this post


Link to post
Share on other sites
  • 1
13 hours ago, buscacomponentes said:

O filtro de limit não funciona. O exemplo abaixo confirma que o resultado da busca é igual mesmo mudando o limit=100 e limit=50! O diff dos arquivos a.json e b.json diz que os arquivos são iguais. Essa é minha dúvida: qual filtro que funciona? Tentei outros filtros e o resultado é sempre o mesmo baseado apenas na palavra buscada.

$ wget -O a.json https://api.mercadolibre.com/sites/MLB/search?q=microcontrolador&limit=100

$ wget -O b.json https://api.mercadolibre.com/sites/MLB/search?q=microcontrolador&limit=50

$ ls -l {a,b}.json
-rw-rw-r-- 1 buscacomponentes buscacomponentes 91461 Abr 11 21:45 a.json
-rw-rw-r-- 1 buscacomponentes buscacomponentes 91461 Abr 11 21:46 b.json

Você olhou o conteúdo dos arquivos ou apenas fez a comparação de tamanho? Eu testei o seu comando e tive erro nas duas chamadas testando no Windows PowerShell. Prá mim apareceu que o caracter & é reservado então precisa enviar a url entre aspas.

No Linux não tive erro, mas acredito que o que está indo depois do & esteja sendo ignorado, então pode ser que os arquivos sejam de tamanho igual porque na verdade os dois estão gravando o mesmo erro ou porque na verdade os dois estão fazendo a mesma consulta, terminando a URI em microcontrolador e ignorando o parâmetro limit. Além disso, conforme o @gbandoni informou, somente o limit não vai te ajudar. Precisa usar em conjunto com o offset, para fazer a paginação correta. Se usa limit 100, na próxima chamada use o offset anterior + 100 e coloque toda a URI entre aspas:

$ wget -O a.json "https://api.mercadolibre.com/sites/MLB/search?q=microcontrolador&offset=0&limit=100"

$ wget -O a.json "https://api.mercadolibre.com/sites/MLB/search?q=microcontrolador&offset=100&limit=100"

$ wget -O a.json "https://api.mercadolibre.com/sites/MLB/search?q=microcontrolador&offset=200&limit=100"

Share this post


Link to post
Share on other sites
  • 0
12 hours ago, gbandoni said:


Seu comando funciona , qual a sua dúvida ?

O filtro de limit não funciona. O exemplo abaixo confirma que o resultado da busca é igual mesmo mudando o limit=100 e limit=50! O diff dos arquivos a.json e b.json diz que os arquivos são iguais. Essa é minha dúvida: qual filtro que funciona? Tentei outros filtros e o resultado é sempre o mesmo baseado apenas na palavra buscada.

$ wget -O a.json https://api.mercadolibre.com/sites/MLB/search?q=microcontrolador&limit=100

$ wget -O b.json https://api.mercadolibre.com/sites/MLB/search?q=microcontrolador&limit=50

$ ls -l {a,b}.json
-rw-rw-r-- 1 buscacomponentes buscacomponentes 91461 Abr 11 21:45 a.json
-rw-rw-r-- 1 buscacomponentes buscacomponentes 91461 Abr 11 21:46 b.json

Share this post


Link to post
Share on other sites
  • 0
12 hours ago, buscacomponentes said:

O filtro de limit não funciona. O exemplo abaixo confirma que o resultado da busca é igual mesmo mudando o limit=100 e limit=50! O diff dos arquivos a.json e b.json diz que os arquivos são iguais. Essa é minha dúvida: qual filtro que funciona? Tentei outros filtros e o resultado é sempre o mesmo baseado apenas na palavra buscada.

$ wget -O a.json https://api.mercadolibre.com/sites/MLB/search?q=microcontrolador&limit=100

$ wget -O b.json https://api.mercadolibre.com/sites/MLB/search?q=microcontrolador&limit=50

$ ls -l {a,b}.json
-rw-rw-r-- 1 buscacomponentes buscacomponentes 91461 Abr 11 21:45 a.json
-rw-rw-r-- 1 buscacomponentes buscacomponentes 91461 Abr 11 21:46 b.json

Na verdade você está confundindo o uso do parâmetro limit . Esse parâmetro diz quantos itens que você pode buscar por vez O que você deve variar é offset

https://api.mercadolibre.com/sites/MLB/search?q=microcontrolador&limit=50
https://api.mercadolibre.com/sites/MLB/search?q=microcontrolador&limit=50&offset=50

https://api.mercadolibre.com/sites/MLB/search?q=microcontrolador&limit=50&offset=100

 

 

Share this post


Link to post
Share on other sites
  • 0
On 11/4/2018 at 4:24 PM, gbandoni said:

-O salva o resultado da consulta no arquivo  especificado

-.- eu queria olhar seu conteudo.

Share this post


Link to post
Share on other sites
  • 0
On 4/12/2018 at 11:20 AM, Diogenes Lima said:

Você olhou o conteúdo dos arquivos ou apenas fez a comparação de tamanho? Eu testei o seu comando e tive erro nas duas chamadas testando no Windows PowerShell. Prá mim apareceu que o caracter & é reservado então precisa enviar a url entre aspas.

No Linux não tive erro, mas acredito que o que está indo depois do & esteja sendo ignorado, então pode ser que os arquivos sejam de tamanho igual porque na verdade os dois estão gravando o mesmo erro ou porque na verdade os dois estão fazendo a mesma consulta, terminando a URI em microcontrolador e ignorando o parâmetro limit. Além disso, conforme o @gbandoni informou, somente o limit não vai te ajudar. Precisa usar em conjunto com o offset, para fazer a paginação correta. Se usa limit 100, na próxima chamada use o offset anterior + 100 e coloque toda a URI entre aspas:

$ wget -O a.json "https://api.mercadolibre.com/sites/MLB/search?q=microcontrolador&offset=0&limit=100"

$ wget -O a.json "https://api.mercadolibre.com/sites/MLB/search?q=microcontrolador&offset=100&limit=100"

$ wget -O a.json "https://api.mercadolibre.com/sites/MLB/search?q=microcontrolador&offset=200&limit=100"

Diogenes, vc está certo que precisa usar aspas na url. Com as aspas funciona. Sem as aspas o & é interpretado pelo shell do Linux colocando o processo em background, e interrompe a string após a palavra microcontrolador. Por isso que eu só tinha resultado relativo à palavra de busca. Te agradeço muito!

Share this post


Link to post
Share on other sites
  • 0
On 4/12/2018 at 10:49 AM, gbandoni said:

Na verdade você está confundindo o uso do parâmetro limit . Esse parâmetro diz quantos itens que você pode buscar por vez O que você deve variar é offset

https://api.mercadolibre.com/sites/MLB/search?q=microcontrolador&limit=50
https://api.mercadolibre.com/sites/MLB/search?q=microcontrolador&limit=50&offset=50

https://api.mercadolibre.com/sites/MLB/search?q=microcontrolador&limit=50&offset=100

 

 

Eu até sei a diferença entre limit e offset. Mas e erro eram as aspas que estavam faltando na url. Obrigado pela ajuda.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.