Lighthouse
A framework for serving GraphQL from Laravel
📜 SDL First
Use the GraphQL Schema Definition Language to describe your data and add functionality through server-side directives.
❤ Laravel Friendly
Build a GraphQL server on top of an existing Laravel application. Maximize code reuse and work with concepts you already know.
⚡ Optimized for Eloquent
Lighthouse leverages your existing models and creates optimized database queries out of the box.
# Boilerplate free schema definition
Define your schema without any boilerplate by using the GraphQL Schema Definition Language.
type User {
name: String!
posts: [Post!]! @hasMany
}
type Post {
title: String!
author: User @belongsTo
}
type Query {
me: User @auth
posts: [Post!]! @paginate
}
type Mutation {
createPost(
title: String @rules(apply: ["required", "min:2"])
content: String @rules(apply: ["required", "min:12"])
): Post @create
}
# Query just what you need
In a GraphQL query, the client can get all the data they need - and no more - all in a single request.
query PostsWithAuthor {
posts {
title
author {
name
}
}
}
# Get predictable results
A GraphQL server can tell clients about its schema, so they will always know exactly what they will get.
{
"data": {
"posts": [
{
"title": "Lighthouse rocks",
"author": {
"name": "Albert Einstein"
}
},
{
"title": "World peace achieved through GraphQL",
"author": {
"name": "New York Times"
}
}
]
}
}