Страницы: 1
RSS
Формирование API REST запроса и его отправка из Excel
 
Всем привет
Планирую делать отправку API Rest Запросов из Excel на API.
Пример запроса
Код
{
    "Amount":10.0,
    "Currency":"RUB",
    "Description":"Оплата на сайте example.com",
    "Email":"client@test.local",
    "RequireConfirmation":true,
    "SendEmail":false
}
У меня два вопроса
  1. Параметры(Amount, Currency..)  в меня получаются в Power Query запросе и они являются столбцами. Вопрос - как проще всего свернуть выбранные столбцы в такой запрос(это если я не ошибаюсь, json)?
  2. Формировать и отправлять запрос через VBA собираюсь, никаких удобных расширений для выполнения Rest запросов для Excel нет(поиском пользовался, не нашел)?
PS: второй вопрос чисто на поиск наиболее удобного решения, например для Mysql есть очень удобное расширение для Excel Mysql for excel - без VBA можно делать update и insert запросы через интерфейс.
Благодарю за помощь!  
 
Vsevolod, приветствую.

1. Проще всего в коде, строкой, в нужные места нужные данные подставлять.
2. Для каждого веб сервиса индивидуально может быть, вы лучше бы написали, куда пытаетесь послать такой запрос.

p.s. иногда есть возможность отследить такие запросы в браузере через инструмент разработчика(F12).
 
текстовую переменную json формировать строкой... !
если данных таблицы много надо запихнуть в один json-string - можно воспользоваться Классом JsonBag (на форуме есть примеры его использования) от Doober... вроде есть особенности в сериализации для 32x и 64x оффисах...
PQ вроде не даёт возможностей для сериализации в json, только для десериализации из json...
p.s. если 32x оффис - в нём есть библиатека Script.Control 1.0. - принимает кодовую строку на javascript для выполнения в VBE - может что получиться... ?.. не пробовала  
Изменено: JeyCi - 26.07.2018 12:09:16
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
JeyCi, благодарю! Тогда два варианта
  1. костылями собрать можно JSON запрос через Custom Fields:)
  2. Выгружать в таблицу и там через VBA-JSON сфорачивать в JSON
Благодарю за помощь!  
 
Достаточно популярная тема, чтобы она еще оставалась не отвеченной (если не в рунете, то хотя бы в глобальной сети).
Посмотрите вот это: https://github.com/VBA-tools/VBA-Web.
Вот это для сериализации: https://github.com/VBA-tools/VBA-JSON.
Последним пользуюсь достаточно интенсивно, чтобы доверять. Коллекция здесь используется как альтернатива листу ([item1, item2]), а словарь - словарю ({'key':'value'}).
Изменено: Все_просто - 26.07.2018 17:54:45
С уважением,
Федор/Все_просто
 
Все_просто, благодарю VBA -JSON сегодня потестил уже. VBA-WEB гляну. Спасибо!  
 
Все_просто, подскажи пожалуйста может сталкивался.

По рекомендации использую VBA-JSON.
В одном из атрибутов json я получаю кирилицу в нечитаемом виде
"Аукцион в электронной форме по продаже жилого помещения"

Как можно починить, чтобы получить ее в читаемом виде?
 
Цитата
написал:
По рекомендации использую VBA-JSON.В одном из атрибутов json я получаю кирилицу в нечитаемом виде "Аукцион в электронной форме по продаже жилого помещения"
Разобрался, чтобы ответ пришел нормальный нужно брать запрос не из примера в VBA-JSON, а использовать следующую функцию
Код
Private Function GetHTTPResponse(ByVal sURL As String) As String
    Dim oXMLHTTP
    On Error Resume Next
    Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
    With oXMLHTTP
        .Open "GET", sURL, False
        .SetRequestHeader "Cache-Control", "max-age=0"
        .SetRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.41 Safari/537.36 OPR/35.0.2066.10 (Edition beta)"
        .SetRequestHeader "Accept-Encoding", "deflate"
        .SetRequestHeader "Accept-Language", "ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4"
        .send
        GetHTTPResponse = .responseText
    End With
    Set oXMLHTTP = Nothing
End Function
Страницы: 1
Наверх