مقدّمة إلى GraphQL مع Laravel
يوفّر GraphQL بديلاً مرناً لواجهات REST. وباستخدام Laravel و Lighthouse PHP، يمكنك بناء واجهات برمجية قوية وآمنة الأنواع.
الخطوة 1: تثبيت Lighthouse
composer require nuwave/lighthouse
php artisan vendor:publish --tag=lighthouse-schema
الخطوة 2: تعريف المخطط
# graphql/schema.graphql
type Query {
users: [User!]! @paginate
user(id: ID! @eq): User @find
}
type User {
id: ID!
name: String!
email: String!
posts: [Post!]! @hasMany
}
type Post {
id: ID!
title: String!
content: String!
author: User! @belongsTo
}
الخطوة 3: التعديلات (Mutations)
type Mutation {
createUser(input: CreateUserInput! @spread): User! @create
updateUser(id: ID!, input: UpdateUserInput! @spread): User! @update
deleteUser(id: ID!): User! @delete
}
input CreateUserInput {
name: String!
email: String!
password: String! @hash
}
الخطوة 4: المُحلّلات المخصّصة (Custom Resolvers)
// app/GraphQL/Queries/UserQuery.php
class UserQuery
{
public function active($root, array $args)
{
return User::where('is_active', true)->get();
}
}
الخطوة 5: الاشتراكات (Subscriptions)
type Subscription {
postCreated: Post!
}
// Broadcasting the event
event(new PostCreated($post));
يوفّر GraphQL مع Laravel طبقة واجهة برمجية قوية ومرنة للتطبيقات الحديثة.
التعليقات (0)
اترك تعليقًا
لا توجد تعليقات بعد. كن أول من يشارك أفكاره!