Por alguma razão, os fios nunca cruzaram isso corretamente; como você pode importar XML para o Excel diretamente de uma URL, não há necessidade de usar WINHTTP para fazer consultas de serviço da Web REST simples.
Eu originalmente comecei a usar a técnica depois de visualizar o código do Amazon Web Services que usa WinHTTP, no entanto, não é necessário apenas solicitar o XML de um serviço da web.
Prova de conceito: aqui está um exemplo básico do uso da API de pesquisa do Yahoo News para obter as notícias mais recentes do Yahoo sobre “Dan Rather” no Excel. Isso requer uma versão do Excel que suporte XML:
1. Destaque e copie este URl:
http://api.search.yahoo.com/WebSearchService/V1/webSearch?appid=YahooDemo&query=Dan+Rather&results=10
2. No Excel, vá para Dados-> XML-> Importar
3. Na caixa Nome do arquivo, use o atalho Colar (CTRL-V) para inserir a url que você acabou de copiar e pressione Enter.
4. O Excel solicitará a célula para listar os resultados do Yahoo News
Então, acabamos de usar um serviço da Web do Yahoo Rest para inserir os dados no Excel, sem WINHTTP. Lembre-se de que é um exemplo básico. Para expor isso, adicione um mapa à pasta de trabalho e use XMLMaps.import em vez de dos exemplos WINHTTP que tenho usado.
Quando eu usaria WINHTTP com serviços da web REST? Meu melhor palpite até agora:
1. Quando o login é necessário para o serviço. Nesse caso, preciso usar SetCredentials
2. Quando eu não quero importar os dados XML para um mapa XML, em vez disso, quero apenas os dados brutos. Por exemplo, quero manipular os dados antes de gravá-los em uma planilha ou possivelmente navegar no XML e escolher quais dados exibir com base em critérios personalizados.
Por fim, XMLMAPS.Import e WINHTTP funcionam para consumir serviços da Web REST; no entanto, o último requer mais algumas linhas de código. Vou continuar tropeçando com os serviços da Web até que eu aprenda (e é claro: faça o correto). Gostaria de saber se mais alguém tem algum exemplo REST usando o Excel?