| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
This was a POC for a GraphQL API fore a very early Shopware 6.0 state. It is unmaintained and untested for newer versions since then. Handle with care!
A simple plugin that exposes an GraphQL-API for the Shopware Platform Core-API.
Clone this repo in your custom/plugins folder of your Shopware Platform Template.
run:
cd custom/plugins/SwagGraphQL composer install cd ../../.. bin/console plugin:install SwagGraphQL bin/console plugin:activate SwagGraphQL
After installation the GraphQL endpoint is available under {baseUrl}/graphql/query.
Getting started with GraphQL.
The easiest way to fiddle around with the Shopware GraphQL-API is to use GraphiQL, for example as a Chrome-Extension
You can define your custom fields, by implementing the GraphQLField Interface and tagging your Field either with the swag_graphql.queries or swag_graphql.mutations tag. In either case you have to specify the name under which the field will be queryable inside the service tag, either as mutation or query
####Example:
in services.xml:
<service id="SwagGraphQL\Actions\GenerateUserKeyAction">
<tag name="swag_graphql.queries" query="generate_user_key"></tag>
</service>your class:
class GenerateUserKeyAction implements GraphQLField
{
public function returnType(): Type
{
return new ObjectType([
'name' => 'UserAccessKey',
'fields' => [
'accessKey' => [
'type' => Type::nonNull(Type::id())
],
'secretAccessKey' => [
'type' => Type::nonNull(Type::id())
]
]
]);
}
public function defineArgs(): array
{
return [];
}
public function description(): string
{
return 'Generates the access keys for a user.';
}
public function resolve($rootValue, $args, Context $context, ResolveInfo $info)
{
return [
'accessKey' => AccessKeyHelper::generateAccessKey('user'),
'secretAccessKey' => AccessKeyHelper::generateSecretAccessKey(),
];
}
}It uses webonyx/graphql-php for the GraphQL part and the Shopware 6 Framework-Bundle for schema generation and query resolving.
The Tests also depend on the Shopware 6 Content-Bundle.
Nested connections don't really work. The connection information (total, pageInfo and aggregation) aren't returned.
| Back | FazBrowse Home | New Git URL |