Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apollo angular客户端:从graphql文件生成代码_Angular_Graphql_Apollo Client_Apollo Angular_Graphql Codegen - Fatal编程技术网

Apollo angular客户端:从graphql文件生成代码

Apollo angular客户端:从graphql文件生成代码,angular,graphql,apollo-client,apollo-angular,graphql-codegen,Angular,Graphql,Apollo Client,Apollo Angular,Graphql Codegen,我是从一开始就知道的。我试图在我的项目中使用它来为angular生成graphql类型和Query服务 我的codegen.yml文件如下所示 overwrite: true schema: "http://localhost:9010/myGraphQL" documents: "apps/myGraphQLApp/src/gqls/**/*.graphql" generates: apps/myGraphQLApp/src/app/generated/graphql.ts: pl

我是从一开始就知道的。我试图在我的项目中使用它来为angular生成graphql类型和
Query
服务

我的codegen.yml文件如下所示

overwrite: true
schema: "http://localhost:9010/myGraphQL"
documents: "apps/myGraphQLApp/src/gqls/**/*.graphql"
generates:
  apps/myGraphQLApp/src/app/generated/graphql.ts:
    plugins:
      - "typescript"
      - "typescript-operations"
      - "typescript-apollo-angular"
我有一个graphql文件
apps\myGraphQLApp\src\gqls\myBooks.graphql
,包含以下内容

query GetMyBooks {
  books{
    id
    name
  }
}
我正在运行npx graphql codegen--config codegen.yml,它失败了,出现以下错误

  √ Parse configuration
  > Generate outputs
    > Generate apps/myGraphQLApp/src/app/generated/graphql.ts
      √ Load GraphQL schemas
      √ Load GraphQL documents
      × Generate
        → Query root type must be provided.


 Found 1 error

  × apps/myGraphQLApp/src/app/generated/graphql.ts
    Error: Query root type must be provided.
        at assertValidSchema (....\node_modules\graphql\type\validate.js:71:11)
        ...
我的graphql服务器肯定公开了一个查询根,我可以用不同的客户端调用它

schema {
  query: MyGraphQLQueryType
}

我不确定我做错了什么。任何帮助都将不胜感激。

我在一年前用graphql generator制作了一个示例,因此它可能已经过时了,但如果需要,请尝试一下

overwrite: true
schema: schema.graphql
documents: src/app/graphql/*.graphql
generates:
  ./src/app/generated/graphql.ts:
    plugins:
      - typescript-common
      - typescript-client
      - typescript-apollo-angular
  ./schema.json:
    plugins:
      - introspection
我认为你的问题在于你的模式你应该有这样的东西

type Query {
        login(email: String!, password: String!): AuthData!
        user: User!
        pets(page: Int, name: String, type: String): PetData!
        pet(id: ID!): Pet!
}

type Mutation {
        createUser(userInput: UserInputData): User!
        deletePet(id: ID!): Boolean
}

type User {
        id: ID!
        name: String!
        email: String!
        password: String!
        status: String!
        pets: [Pet!]!
}

type AuthData {
        token: String!
        userId: String!
}

input UserInputData {
        email: String!
        name: String!
        password: String!
}

type Pet {
        id: ID!
        name: String!
        type: String!
        imageUrls: [File!]!
        creator: UserPet!
        createdAt: String!
        updatedAt: String!
}

type PetData {
        pets: [Pet!]!
        totalPets: Int!
        filterData: FilterDataPet!
}

type File {
        id: String!
        path: String!
        filename: String!
        mimetype: String!
}

type UserPet {
        id: ID!
        name: String!
        email: String!
        pets: [Pet!]!
}

type FilterDataPet {
        isFilterData: Boolean!
        currentPage: Int!
        queryParams: QueryParamsPet
}

type QueryParamsPet {
        name: String
        type: String
}

您可以在这里学习我一年前制作的完整示例和graphql generator的示例,因此新版本可能会过时,但如果需要,请尝试一下

overwrite: true
schema: schema.graphql
documents: src/app/graphql/*.graphql
generates:
  ./src/app/generated/graphql.ts:
    plugins:
      - typescript-common
      - typescript-client
      - typescript-apollo-angular
  ./schema.json:
    plugins:
      - introspection
我认为你的问题在于你的模式你应该有这样的东西

type Query {
        login(email: String!, password: String!): AuthData!
        user: User!
        pets(page: Int, name: String, type: String): PetData!
        pet(id: ID!): Pet!
}

type Mutation {
        createUser(userInput: UserInputData): User!
        deletePet(id: ID!): Boolean
}

type User {
        id: ID!
        name: String!
        email: String!
        password: String!
        status: String!
        pets: [Pet!]!
}

type AuthData {
        token: String!
        userId: String!
}

input UserInputData {
        email: String!
        name: String!
        password: String!
}

type Pet {
        id: ID!
        name: String!
        type: String!
        imageUrls: [File!]!
        creator: UserPet!
        createdAt: String!
        updatedAt: String!
}

type PetData {
        pets: [Pet!]!
        totalPets: Int!
        filterData: FilterDataPet!
}

type File {
        id: String!
        path: String!
        filename: String!
        mimetype: String!
}

type UserPet {
        id: ID!
        name: String!
        email: String!
        pets: [Pet!]!
}

type FilterDataPet {
        isFilterData: Boolean!
        currentPage: Int!
        queryParams: QueryParamsPet
}

type QueryParamsPet {
        name: String
        type: String
}
您可以在这里遵循完整的示例