123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- // gqReq1()
- function gqReq1() {
- //fetch(адрес, {method, headers: {}, body: JSON.stringify({query, variables})})
- //method: POST
- //content-type: application/json
- //body: json с query - строка и variables - объект с вложенными параметрами
- const gql = (url, query, variables) => fetch(url, {
- method: 'POST',
- headers: {'Content-Type': 'application/json'},
- body: JSON.stringify({query, variables}),
- })
- // .then(response => response.json())
- // .then(result => console.log(result))
- ;
- (async function() {
- let response = await gql("http://shop-roles.asmer.fs.a-level.com.ua/graphql", `query cats($q:String) {
- CategoryFind(query:$q){
- name goods{
- name images{
- url
- }
- }
- }
- }`, {q: "[{}]"}); //должно приехать { data: {CategoryFind: [........]}}
- let result = await response.json();
- console.log(result)
- })()
- }
- gqReq2()
- function gqReq2() {
- const getGQL = (url) =>
- (query, variables) => fetch(url, {
- //метод
- method: 'POST',
- headers: {
- //заголовок content-type
- "Content-Type": "application/json"
- },
- body: JSON.stringify({query, variables})
- //body с ключами query и variables
-
- }).then(res => res.json()).then((data) => {
- // console.log(data)
- if ('errors' in data) {
- Promise.reject(new Error('ОШИБКА'))
- // throw new Error('GFSFSDFS')
- } else {
- return data.data
- }
- //расковырять data, если все ок - отдать data.login или data.CategoryFindOne, или шо там еще
- //если есть errors, то выбросить исключение и тем самым зареджектить промис
- });
- (async function() {
- const gql = getGQL('http://shop-roles.asmer.fs.a-level.com.ua/graphql')
- console.log((await gql(`query cats($q:String) {
- CategoryFind(query:$q){
- name goods{
- name images{
- url
- }
- }
- }
- }`, {q: "[{}]"})))
- console.log((await gql(`
- query NameForMe1($login:String, $password:String){
- login(login:$login, password:$password)
- }
- `, {login: 'tst', password: '123'})))
- })()
- }
|