首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对gqlgen GraphQL API的curl POST请求的正确形状是什么?

对gqlgen GraphQL API的curl POST请求的正确形状是什么?
EN

Stack Overflow用户
提问于 2019-01-19 21:08:34
回答 1查看 7.2K关注 0票数 4

我构建了一个简单的GraphQL API,非常类似于gqlgen的"快速入门“教程。我可以用卷发成功地查询它。但我不能正确的要求变异。

schema.graphql:

代码语言:javascript
复制
type Screenshot {
  id: ID!
  url: String!
  filename: String!
  username: String!
  description: String
}

input NewScreenshot {
  id: ID!
  url: String!
  filename: String!
  username: String!
  description: String
}

type Mutation {
  createScreenshot(input: NewScreenshot!): Screenshot!
  deleteScreenshot(id: ID!): String!
}

type Query {
  screenShots(username: String!): [Screenshot!]!
}

models_gen.go:

代码语言:javascript
复制
type NewScreenshot struct {
    ID          string  `json:"id"`
    URL         string  `json:"url"`
    Filename    string  `json:"filename"`
    Username    string  `json:"username"`
    Description *string `json:"description"`
}

type Screenshot struct {
    ID          string  `json:"id"`
    URL         string  `json:"url"`
    Filename    string  `json:"filename"`
    Username    string  `json:"username"`
    Description *string `json:"description"`
}

resolver.go:

代码语言:javascript
复制
func (r *mutationResolver) CreateScreenshot(ctx context.Context, input NewScreenshot) (Screenshot, error) {
    id, err := uuid.NewV4()
    shot := Screenshot{
        ID:          id.String(),
        Description: input.Description,
        URL:         input.URL,
        Filename:    input.Filename,
        Username:    input.Username,
    }

    return shot, nil
}

我试过:

  • 查看gqlgen 文档GraphQL模式如何实现GraphQL以及一些示例,如。还有1.5天的谷歌搜索。
  • 在我的卷发请求中出现了很多不同的形状。这个似乎是最接近的: curl -v http://localhost:8080/query -H“内容-类型: application/json”-d '{“查询”:{ "createScreenshot":{“用户名”:“气味”,"url":"google.com",“描述”:“仅另一个屏幕截图”,“文件名”:“t估价”} }‘ 但它失败了,因为: *不支持名称查找超时*尝试::1.%%收到% Xferd平均速度时间时间当前Dload上载总消耗的左速度0 0 0-:8080 >用户代理: curl/7.47.1 >接受:*/* >内容类型: application/json >内容长度: 146 >}> 146字节数据*完全发送: 146字节中的146字节< HTTP/1.1 400坏请求中的146字节< Date: Sat,2019年1月19日21:00:15格林尼治时间<内容-长度: 149 <内容-类型:文本/纯文本;字符集=utf-8<{ 149字节数据100 295 100 149 100 146 146 0:01-:

帮助?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-19 21:27:45

JSON有效负载中的query值需要是包含GraphQL查询的字符串,而不是您使用的对象,例如:

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

注意,您需要转义查询字符串中的双引号。

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54271405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档