0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

シェルでQueryを整形して記載してGraphQL APIを呼び出す

Last updated at Posted at 2020-03-16

目的

GraphQLを実装している際に、GraphiQLが使えない環境でシェルから呼び出して動作確認したい場合の対応です。

外部への接続が遮断されている環境で、動作確認する必要がある場合には以下の様なシェルスクリプトを書くと良いかと思います。

作成したシェルスクリプト

#!/bin/bash

GRAPHQL_API_ENDPOINT="http://127.0.0.1:8000/graphql"

# ここにガンガン、クエリを書いてください。
ORG_QUERY=`cat << EOS
query {
  clubs {
    id
    name
  }
}
EOS
`

QUERY=`echo ${ORG_QUERY} | tr '\n' ' '`
JSON_PARAM=`cat << EOS
{ "query": "${QUERY}" }
EOS
`

curl -H 'Content-Type: application/json' -X POST -d "${JSON_PARAM}" ${GRAPHQL_API_ENDPOINT}

CSRFのエラー(CSRF cookie not set.)が出るために、オフにしました。

Graphene Djangoで API を作成した場合 CSRF cookie not set.が表示されました。
私の場合は、動作確認だけが目的だったのでコメントアウトで対応しました。

settings.py
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    # 'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?