curl을 사용하여 명령줄에서 GraphQL 요청 만들기
<TLDR>
curl을 사용하여 원격 셸에서 GraphQL 쿼리 및 변형을 수행하고 요청 문제를 해결합니다</TLDR>
.개발자가 사용할 수 있는 작업에 가장 적합한 도구를 모두 알고 사용하고 있습니까? 나는 확실히하지 않는다! 여러 메일링 리스트, 블로그 게시물, 트윗 및 보도 자료를 통해 최신 정보를 얻으려고 노력하고 있습니다. 소방호스로 물을 마시는 그 기분 아실 거에요. 그리고 Limitless 영화의 신비한 알약을 사용할 수 있게 될 때까지 몇 가지 훌륭한 조언을 놓칠 수 있음을 인정해야 합니다.
하지만 유용한 도구나 기술을 발견하면 내 도구 벨트에 추가하려고 합니다. 주로 Postman 및 GraphQL Playground로 작업하고 주로 터미널을 사용하여 실행하는 경우
npm install
http 요청을 만들기 위한 명령줄 도구인 curl에 대해 조금 알고 싶을 수 있습니다.GraphQL, 컬... 뭐, 왜?
이에 대한 매우 구체적인 사용 사례가 있습니다. 당신이 프론트엔드 개발자라고 상상해보세요. 팀에서 개발한 GraphQL API로 작업하고 있습니다. 갑자기 오류 메시지가 표시되고 무슨 일이 일어나고 있는지 전혀 알 수 없습니다. 따라서 Slack을 열고 동료 Tim에게 DM을 보냅니다(미안한 Tim이 오늘 책임자가 됩니다).
당신: 이봐 팀! 개발 환경에서 GraphQL 요청에 문제가 있습니다. API가 실행 중입니까?
팀: 그렇죠. 실패한 쿼리는 무엇입니까?
당신: 쿼리 복사 붙여넣기
팀: 좋아 보이는데... 내 컴퓨터에서 시도해 볼게요...
팀: 네, 잘 작동합니다. 어떤 끝점 URL을 사용하고 있습니까?
당신: dev-server.mycompany.com/graphql
팀: 맞아. 기이한...
Tim: 아, Authorization 헤더에 인증 토큰을 보내는 것을 잊지 않았나요?
당신: 확인해볼게..네 거기있어요
... Q&A 5분 더
Tim: 이봐, 우리가 지금 dev API에 HTTPS 연결이 필요하다고 발표한 거 기억나? http 또는 https로 연결하고 있습니까?
당신: 으악. 감사합니다 팀.
이와 같은 문제에 당신과 팀의 시간이 10분도 걸리지 않을 것이라고 상상할 수 있습니다. Tim에게 모든 컨텍스트와 함께 전체 요청을 즉시 보낼 수 있다면 더 쉽지 않을까요?
당신: 이봐 팀! 개발 환경에서 GraphQL 요청에 문제가 있습니다. 다음은 컬 버전입니다.
당신: 복사 붙여넣기 컬콜
Tim: 어디 보자... 한 가지를 제외하고는 맞습니다. URL은 http가 아니라 https여야 합니다.
당신: 으악. 감사합니다 팀.
요약하면 여기에서 논의하는 맥락에서 curl은 다음과 같은 경우에 유용할 수 있습니다.
요청 예시
다음은 몇 가지 일반적인 요청 변형입니다.
GraphQL 쿼리 요청하기
curl 'https://countries.trevorblades.com/' \
-X POST \
-H 'content-type: application/json' \
--data '{
"query": "{ continents { code name } }"
}'
변형 요청하기:
curl 'https://graphql-api-url' \
-X POST \
-H 'content-type: application/json' \
--data '{
"variables":{"name":"John Doe"},
"query":"mutation ($name: String!) { createUser(name: $name) }"
}'
추가 헤더 전달
헤더에서 승인을 전달해야 하는 경우 다른 인수
-H
를 추가합니다.curl 'https://countries.trevorblades.com/' \
-X POST \
-H 'Authorization: Token xxxxx' \
-H 'content-type: application/json' \
--data '{
"query": "{ continents { code name } }"
}'
응답 헤더 인쇄
응답 헤더를 보려면
-D -
를 추가하십시오(stdout에 헤더 덤프).curl 'https://countries.trevorblades.com/' \
-X POST \
-D - \
-H 'content-type: application/json' \
--data '{
"query": "{ continents { code name } }"
}'
예쁜 인쇄 응답 JSON
출력 JSON을 예쁘게 인쇄하려면 curl 호출 끝에
| python -m json.tool
를 추가합니다.curl 'https://countries.trevorblades.com/' \
-X POST \
-H 'content-type: application/json' \
--data '{
"query": "{ continents { code name } }"
}' | python -m json.tool
헤더도 인쇄하면 예쁜 인쇄가 작동하지 않으며 오류는
No JSON object could be decoded
입니다. 그것은 더 이상 유효한 JSON이 아니기 때문에 의미가 있습니다.명령을 실행할 때 진행 표시줄이 나타날 수도 있습니다. 추가
-sS
(자동) 인수를 사용하여 제거할 수 있습니다.오늘은 여기까지입니다. 도움을 주셔서 감사합니다 팀!
이러한 유형의 콘텐츠가 마음에 들면 Twitter에서 최신 업데이트를 확인할 수 있습니다.
Reference
이 문제에 관하여(curl을 사용하여 명령줄에서 GraphQL 요청 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/maxivanov/make-qraphql-requests-from-command-line-with-curl-5h53텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)