Note that Chester is work in progress and it's functionality is still very limited.
Chester uses the builder pattern to construct GraphQL queries. In its basic form use it like this:
import Chester
let query = QueryBuilder()
.from("posts")
.with(arguments: Argument(key: "id", value: "20"), Argument(key: "author", value: "Chester"))
.with(fields: "id", "title", "content")
// For cases with dynamic input, probably best to use a do-catch:
do {
let queryString = try query.build
} catch {
// Can specify which errors to catch
}
// Or if you're sure of your query
guard let queryString = try? query.build else { return }
You can add subqueries. Add as many as needed. You can nest them as well.
let commentsQuery = QueryBuilder()
.from("comments")
.with(fields: "id", content)
let postsQuery = QueryBuilder()
.from("posts")
.with(fields: "id", "title")
.with(subQuery: commentsQuery)
You can search on multiple collections at once
let search = QueryBuilder()
.from("search")
.with(arguments: Argument(key: "text", value: "an"))
.on("Human", "Droid")
.with(fields: "name")
.build()
Check the included unit tests for further examples.
- Swift 3
- iOS 8
Chester is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod "Chester"
Or Carthage. Add Chester to your Cartfile:
github "JanGorman/Chester"
Chester is available under the MIT license. See the LICENSE file for more info.