Lighthouse GraphQL Server for Laravel

Lighthouse GraphQL Server for Laravel

Lighthouse is a PHP package that allows you to serve a GraphQL endpoint from your Laravel application. It aims to reduce boilerplate code around creating a schema and integrates well with your existing Laravel application.

According to the Lighthouse documentation, it supports a schema-first approach:

Lighthouse enables schema-first development by allowing you to use the native Schema Definition Language to describe your data. Leverage server-side directives to add functionality and bring your schema to life.

With nothing more than this schema file (along w/ Eloquent models and migrations set up), you have a fully functional GraphQL server with no additional code!

In addition to a bunch of built-in GraphQL directives, Lighthouse allows you to customize things to support any data requirements.

The way that you define your GraphQL with this package is to point the lighthouse.php configuration file to your main schema file:

'schema' => [
    'register' => base_path('routes/graphql/schema.graphql'),
],

Here’s an example type which associates a Posts and Comments relationship in Eloquent:

type Post {
  author: User
  comments: [Comment!]
}

Here’s an example of using the @hasMany directive which works in tandem with Laravel’s hasMany relationship:

type User {
  posts: [Post!]! @hasMany
}

Check out the complete list of Directives that ship with Lighthouse if you’re already familiar with GraphQL and you want to dive into schema development. It will help you to be familiar with GraphQL before starting to work with Lighthouse, but it seems to be like an excellent package for integrating GraphQL in Laravel!

If you are not familiar with GraphQL, check out the official GraphQL website for a complete overview. Wes Bos recently released Fullstack Advanced React and GraphQL which teaches you advanced React patterns, but also covers using GraphQL on the server and client-side.

To learn more about Lighthouse and start integrating it as a GraphQL server for your Laravel apps, check out the Lighthouse documentation and the Lighthouse GraphQL Server code on GitHub.


Filed in: News


Newsletter

Join the weekly newsletter and never miss out on new tips, tutorials, and more.

Laravel News Partners

Laravel Jobs

Senior PHP/Laravel Developer: Your Dream Work Environment
Remote
iPhone Photography School
In-house Laravel Developer.
Gold Coast / Australia
MXstore
Laravel Developer
Oak Brook, IL
Tidal Commerce
Senior Backend Engineer
Santa Monica only
Saatchi Art
Senior Laravel Developer
San Francisco
Stitch Labs
Senior Software Developer
South Jordan, UT
Lendio
Full-Stack Developer
Paris, France
Wingly