mirror of
https://github.com/retailcrm/graphql-php.git
synced 2025-02-11 18:19:23 +03:00
62 lines
1.7 KiB
Markdown
62 lines
1.7 KiB
Markdown
|
## Blog Example
|
||
|
|
||
|
Simple but full-featured example of GraphQL API. Models simple blog with Stories and Users.
|
||
|
|
||
|
Note that graphql-php doesn't dictate you how to structure your application or data layer.
|
||
|
You may choose the way of using the library as you prefer.
|
||
|
|
||
|
Best practices in GraphQL world still emerge, so feel free to post your proposals or own
|
||
|
examples as PRs.
|
||
|
|
||
|
### Running locally
|
||
|
```
|
||
|
php -S localhost:8080 ./index.php
|
||
|
```
|
||
|
|
||
|
### Browsing API
|
||
|
The most convenient way to browse GraphQL API is by using [GraphiQL](https://github.com/graphql/graphiql)
|
||
|
But setting it up from scratch may be inconvenient. The great and easy alternative is to use one of
|
||
|
existing Google Chrome extensions:
|
||
|
- [ChromeiQL](https://chrome.google.com/webstore/detail/chromeiql/fkkiamalmpiidkljmicmjfbieiclmeij)
|
||
|
- [GraphiQL Feen](https://chrome.google.com/webstore/detail/graphiql-feen/mcbfdonlkfpbfdpimkjilhdneikhfklp)
|
||
|
|
||
|
Note that these extensions may be out of date, but most of the time they Just Work(TM)
|
||
|
|
||
|
Set up `http://localhost:8080?debug=0` as your GraphQL endpoint/server in these extensions and
|
||
|
execute following query:
|
||
|
|
||
|
```
|
||
|
{
|
||
|
viewer {
|
||
|
id
|
||
|
email
|
||
|
}
|
||
|
lastStoryPosted {
|
||
|
id
|
||
|
isLiked
|
||
|
author {
|
||
|
id
|
||
|
photo(size: ICON) {
|
||
|
id
|
||
|
url
|
||
|
type
|
||
|
size
|
||
|
width
|
||
|
height
|
||
|
# Uncomment to see error reporting for failed resolvers
|
||
|
# error
|
||
|
}
|
||
|
lastStoryPosted {
|
||
|
id
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
```
|
||
|
|
||
|
### Debugging
|
||
|
By default this example runs in production mode without additional debugging tools enabled.
|
||
|
|
||
|
In order to enable debugging mode with additional validation of type definition configs,
|
||
|
PHP errors handling and reporting - change your endpoint to `http://localhost:8080?debug=1`
|