點燈坊

失くすものさえない今が強くなるチャンスよ

如何使用 Curl 測試 GraphQL API ?

Sam Xiao's Avatar 2019-12-15

由於 GraphQL 也是基於 REST API 與 HTTP,因此也可直接使用 Curl 測試 GraphQL API。

Version

macOS Catalina 10.15.2
Node 13.2.0
Apollo GraphQL 2.9.6
Curl 7.64.1
Insomnia 7.0.5

Query

query {
  books {
    title
    price
  }
}

一個普通的 GraphQL query。

curl001

使用 Insomnia 的 Copy as Curl 產生 Curl command。

curl --request POST \
  --url 'http://localhost:4000/?=' \
  --header 'content-type: application/json' \
  --data '{"query":"query {\n  books {\n    title\n    price\n  }\n}"}'

在 terminal 貼上即可執行。

  • url:指定 GraphQL API endpoint
  • header:指定 content-typeapplication/json
  • data:指定 GraphQL query

\n 為換行符號

curl002

Mutation

mutation {
  addBook(book: {
    title: "Speaking JavaScript"
    price: 300
  }) {
    title
    price
  }
}

一個普通的 GraphQL mutation。

curl003

使用 Insomnia 的 Copy as Curl 產生 Curl command。

curl --request POST \
  --url http://localhost:4000/ \
  --header 'content-type: application/json' \
  --data '{"query":"mutation {\n  addBook(book: {\n    title: \"Speaking JavaScript\"\n    price: 300\n  }) {\n    title\n    price\n  }\n}"}'

在 terminal 貼上即可執行。

curl004

Conclusion

  • 雖然可用 GraphQL Playgroud 測試 GraphQL API,但也能使用 CLI 的 Curl
  • 透過 Insomnia 可自動產生 Curl command,不必再自行手刻