Size: a a a

BY Microsoft .NET User Group

2018 August 24

RY

Ruslan Yakauleu in BY Microsoft .NET User Group
Короче... постман упорно не пережёвывает GraphQL
источник

A

Anatoly in BY Microsoft .NET User Group
Причём здесь постман-то?
источник

A

Anatoly in BY Microsoft .NET User Group
Запрос по сети ушёл? Сервер ответил?
источник

RY

Ruslan Yakauleu in BY Microsoft .NET User Group
Вот это рабочий вариант
{
       "query": "query getInventoryItemByID($id: ID!) {
 inventoryItem(id: $id) {
   id
   inventoryLevels(first: 6) {
     edges {
       node {
         id
         available
         location {
           id
         }
       }
     }
   }
 }
}
",
       "variables": {
               "id": "gid://shopify/ProductVariant/12195009364024"
       },
       "operationName": "getInventoryItemByID"
}

который можно отправить через
curl --request POST \
 --url https://sunenvy.myshopify.com/admin/api/graphql.json \
 --header 'authorization: Basic ТУТБЫЛИКРЕДЫ' \
 --header 'content-type: application/json' \
 --data "@body.graphql"
источник

A

Anatoly in BY Microsoft .NET User Group
https://hub.docker.com/r/npalm/graphiql/ - также рекомендую. если ваше апи раздаёт graphql спеку, это может быть поудобнее
источник

RY

Ruslan Yakauleu in BY Microsoft .NET User Group
Его сгенерила Insomnia. На тех же настройках postman выдаёт лажу
источник

A

Anatoly in BY Microsoft .NET User Group
Ruslan Yakauleu
Его сгенерила Insomnia. На тех же настройках postman выдаёт лажу
как минимум, на первом скриншоте "настройки" не те же
источник

RY

Ruslan Yakauleu in BY Microsoft .NET User Group
Anatoly
как минимум, на первом скриншоте "настройки" не те же
я их несколько раз перебирал, в т.ч. такие как сейчас заработали
http://storage.mydataprovider.com/screenshots/yar/2018-08-24_14-41-30_NjSej3nQ.png
operationName кстати не требуется, без него тоже работает
источник

A

Anatoly in BY Microsoft .NET User Group
Ruslan Yakauleu
я их несколько раз перебирал, в т.ч. такие как сейчас заработали
http://storage.mydataprovider.com/screenshots/yar/2018-08-24_14-41-30_NjSej3nQ.png
operationName кстати не требуется, без него тоже работает
постман ничего не знает (из коробки) ни про графкуэль, ни про одата, ни про какой-то ещё протокол, который вы юзаете. это вроде как был курл с GUI. В общем, я рекомендую поюзать специализированную тулу. Единственное, там авторизацию прокидывать сложно.
источник

RY

Ruslan Yakauleu in BY Microsoft .NET User Group
Anatoly
постман ничего не знает (из коробки) ни про графкуэль, ни про одата, ни про какой-то ещё протокол, который вы юзаете. это вроде как был курл с GUI. В общем, я рекомендую поюзать специализированную тулу. Единственное, там авторизацию прокидывать сложно.
Да, Insomnia как раз и подпадает под специализированную тулу, у неё есть режим работы именно с GraphQL
источник

A

Anatoly in BY Microsoft .NET User Group
если же интересно добить проблему, я бы поставил проксю а-ля фиддлер и смотрел там
источник

A

Anatoly in BY Microsoft .NET User Group
в чём разница в запросах: заголовки, боди, вот это всё
источник

RY

Ruslan Yakauleu in BY Microsoft .NET User Group
Anatoly
в чём разница в запросах: заголовки, боди, вот это всё
Сравнил, потестил отличия в постмане. Мрак
Вот это работает
{
 "query": "query getInventoryItemByID($id: ID!) {\n  inventoryItem(id: $id) {\n    id\n    inventoryLevels(first: 6) {\n      edges {\n        node {\n          id\n          available\n          location {\n            id\n          }\n        }\n      }\n    }\n  }\n}\n",
 "variables": {
   "id": "gid://shopify/InventoryItem/12772380115010"
 },
 "operationName": "getInventoryItemByID"
}

А вот это не работает
{
 "query": "query getInventoryItemByID($id: ID!) {
 inventoryItem(id: $id) {
   id
   inventoryLevels(first: 6) {
     edges {
       node {
         id
         available
         location {
           id
         }
       }
     }
   }
 }
}
",
 "variables": {
   "id": "gid://shopify/InventoryItem/12772380115010"
 },
 "operationName": "getInventoryItemByID"
}

Т.е. если внутри значений сделать перенос строк вместо \n, запросы перестают работать к Shopify.
источник

A

Anatoly in BY Microsoft .NET User Group
т.е. серверная либа не умеет обрабатывать \r
источник

A

Anatoly in BY Microsoft .NET User Group
Anatoly
т.е. серверная либа не умеет обрабатывать \r
вот ответ: https://json.org/string.gif
источник

A

Anatoly in BY Microsoft .NET User Group
источник

RY

Ruslan Yakauleu in BY Microsoft .NET User Group
ага... т.е. это всё-таки не баг, а багофича и постман реально не шибко к этому готов. Спасибо
источник

RY

Ruslan Yakauleu in BY Microsoft .NET User Group
а, не, я опять туплю
источник

RY

Ruslan Yakauleu in BY Microsoft .NET User Group
хм... откровенно говоря никогда не видел проблем с \r\n в апи у других сервисов
источник

A

Anatoly in BY Microsoft .NET User Group
не, постман тупо шлёт всё, что вы ему сказали. вы ему сказали послать невалидный json (неэкранированные переносы строк, как \r, так \n), ну он и послал
источник