Я хочу добавить инфраструктуру apollo в свой проект iOS. Я следую документации, но не могу ее создать.
Я устанавливаю apollo через cocoapods. Я добавляю шаг построения генерации кода к моей цели (помещаю его выше компилируемых источников ...) Я загружаю схему через apollo schema: загрузить --endpoint = http: // localhost: 4000 / graphql schema.json. Я добавляю файл schema.json в корневой каталог моего проекта. Я создаю его и получаю следующую ошибку: apollo@1.2.0 добавлено 416 пакетов в 20.385s ++ exec /Users/PATH/node_modules/.bin/apollo codegen: generate --queries = --schema = schema.json API. swift> Предупреждение: обновление apollo доступно с 1.2.0 до 1.7.0> Ошибка: флажок --queries ожидает значения Command / bin / sh с кодом выхода 2Мой файл schema.grapqhl выглядит примерно так: :
type Query {
""" User """
users: [User!]!
user(username: String!): User
""" Question """
questions: [Question!]!
question(id: Int!): Question
}
type Mutation {
""" User """
createUser(username: String!): User
updateUser(username: String!, newUsername: String!): [Int!]!
deleteUser(username: String!): Int!
""" Question """
createQuestion(text: String!, category: Int!, active: Boolean!):
Question
updateQuestion(id: Int!, text: String!, category: Int!, active: Boolean!): [Int!]!
deleteQuestion(id: Int!): Int!
}
type Subscription {
answerAdded: Answer
}
type Question {
id: Int!
text: String!
categoryId: QuestionCategory!
active: Boolean!
createdAt: String!
updatedAt: String!
}
......
Кажется, что параметр запроса не имеет ввода: apollo codegen: generate --queries = --schema = schema.json API.swift
Если я попробую он сам через терминал
apollo codegen:generate --queries=schema.graphql --schema=schema.json API.swift
Я получаю следующую ошибку:
Warning: apollo update available from 1.2.0 to 1.7.0
.../schema.graphql: The Query definition is not executable.
.../schema.graphql: The Mutation definition is not executable.
.../schema.graphql: The Subscription definition is not executable.
.../schema.graphql: The Question definition is not executable.
... some more ...
:heavy_check_mark: Scanning for GraphQL queries (1 found)
:heavy_check_mark: Loading GraphQL schema
:heavy_check_mark: Parsing GraphQL schema
:heavy_multiplication_x: Generating query files with 'swift' target
→ Validation of GraphQL query document failed
ToolError: Validation of GraphQL query document failed
at Object.validateQueryDocument
....
Не могли бы вы помочь выяснить, почему я не могу построить проект? Это потому, что файл schema.graphl неверен?
Благодаря Martijn Walraven на открытом Apollo Slack iOS Channel я решил это.
Проблема в том, что мой файл schema.graphql ошибочен.
ваш файл schema.graphql представление вашей схемы на языке определения схемы, а не документ запроса. apollo ios ожидает, что вы определите запросы, которые ваше приложение использует в файлах .graphql, чтобы они могли генерировать код из них. это запросы, которые клиент отправляет на сервер, аналогично тому, что вы бы поставили в графике, например ... запросы нужно назвать. поэтому если вы поместите это в файл .graphql:query AllQuestions {
queries {
text
}
}
ваш файл schema.graphql представляет собой представление вашей схемы на языке определения схемы, а не в документе запроса. apollo ios ожидает, что вы определите запросы, которые ваше приложение использует в файлах .graphql, чтобы они могли генерировать код из них. это запросы, которые клиент отправляет на сервер, аналогично тому, что вы бы поставили в графике, например