Какова правильная форма POST-запроса curl к API-интерфейсу GraphQL gqlgen?

Предоставление SHOW CREATE TABLE поможет. Между тем, я думаю.

Это может (или не может) помочь. Он пытается выполнить суммирование без перетаскивания всех столбцов products. Это позволяет избежать GROUP BY.

SELECT  p2.*,
        IFNULL(x.usesQuantity, 0) as `usesQuantity`,
        GREATEST(p2.`productQuantity` - IFNULL(x.usesQuantity), 0) AS `totalUses`
    FROM  `products` AS p2
    LEFT JOIN  
        ( SELECT  p.id AS xid,
                  SUM(pu.quantity) as `usesQuantity`
            FROM  products_uses AS pu
            JOIN  products AS p  ON p.id = pu.productId
            WHERE  p.nurseForm = 1 
        ) AS x  ON x.xid = p2.id
    ORDER BY  p2.`fav` DESC,
              p2.`productName` ASC

Эти индексы должны помочь:

products:  INDEX(nurseForm, id)
products:  PRIMARY KEY(id)  -- I am assuming this??
products_uses:  INDEX(productId, quantity)

Если LEFT не нужны, были бы и другие оптимизации.

MySQL 5.6 поможет с подзапросом. MySQL 8.0 может помочь с ORDER BY, между тем, сортировка требуется из-за смеси DESC и ASC.

2
задан nusantara 19 January 2019 в 21:08
поделиться

1 ответ

Значение query в полезной нагрузке JSON должно быть строкой, содержащей запрос GraphQL, а не объект, который вы используете, например:

$ curl \
  -H "Content-Type: application/json" \
  -d '{ "query": "mutation { createScreenshot(input: { username: \"Odour\" }) { id } }" }' \
  http://localhost:8080/query

Обратите внимание, что вам нужно экранировать двойные кавычки в строке запроса.

0
ответ дан lmars 19 January 2019 в 21:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: