ادغام Apollo GraphQL در Jetpack Compose

Summarize this content to 400 words in Persian Lang
در این آموزش، راه اندازی و پیکربندی Apollo GraphQL را در یک پروژه Jetpack Compose بررسی می کنیم. اگر به دنبال اجرای کامل GraphQL با استفاده از معماری پاک هستید، مخزن GitHub من را بررسی کنید.
پروژه خود را پیکربندی کنید
1. به روز رسانی app/build.gradle.kts
شناسه پلاگین آپولو را اضافه کنید:
plugins {
// …
alias(libs.plugins.apollo3Graph)
}
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
بعد، اضافه کنید apollo-runtime به وابستگی های شما:
dependencies {
// …
// Apollo3
implementation(libs.apollo.runtime)
}
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
2. به روز رسانی libs.versions.toml
نسخه آپولو و مراجع کتابخانه را اضافه کنید:
[versions] // …apollo3 = “3.8.5” // Latest version at the time of writing [libraries] // …
apollo-runtime = { group = “com.apollographql.apollo3”, name = “apollo-runtime” }
apollo-api = { group = “com.apollographql.apollo3”, name = “apollo-api” } [plugins] // …
apollo3Graph = { id = “com.apollographql.apollo3”, version.ref = “apollo3” }
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
تعریف بسته برای فایل های تولید شده
بسته ای را که فایل های Kotlin در آن تولید می شوند را مشخص کنید. این را به android بخش از app/build.gradle.kts:
android {
// …
apollo {
service(“service”) {
packageName.set(“com.example.appname”)
}
}
// …
}
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
طرح GraphQL را اضافه کنید
URL سرور خود را از استودیو آپولو که در کادر سمت چپ بالای صفحه قرار دارد دریافت کنید:
دستور زیر را در تب Terminal اندروید استودیو برای دانلود شمای سرور خود اجرا کنید:
./gradlew :app:downloadApolloSchema –endpoint=’http://localhost:4000/graphql’ –schema=app/src/main/graphql/schema.graphqls
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
این یک را دانلود می کند schema.graphqls فایل به app/src/main/graphql/schema.graphqls.
همگام سازی پروژه
پس از دانلود طرح، پروژه را همگام سازی کنید.
به روز رسانی AndroidManifest.xml
مجوز اینترنت را اضافه کنید
ابتدا مجوز اینترنت را به خود اضافه کنید AndroidManifest.xml:
android:name=”android.permission.INTERNET”/>
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
امنیت شبکه را برای شبیه ساز پیکربندی کنید
اگر از شبیه ساز اندروید برای اتصال به سروری که در حال اجرا است استفاده می کنید localhost:4000/graphql، امنیت شبکه را برای جلوگیری از خطاهای “درخواست شبکه ناموفق” پیکربندی کنید و ارتباط با سرور GraphQL خود را فعال کنید.
ايجاد كردن network_security_config.xml
یک فایل به نام ایجاد کنید network_security_config.xml که در ../app/src/main/res/xml/:
cleartextTrafficPermitted=”true”>
includeSubdomains=”true”>10.0.2.2
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
این پیکربندی به ترافیک متن شفاف اجازه می دهد 10.0.2.2، که به آن نقشه می دهد localhost در دستگاه میزبان شما
به پیکربندی امنیت شبکه مراجعه کنید
خود را به روز کنید AndroidManifest.xml برای ارجاع به این پیکربندی امنیتی شبکه:
android:networkSecurityConfig=”@xml/network_security_config”
// …
>
// …
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
اولین پرس و جو را اضافه کنید
پس از تأیید پرس و جو در Sandbox Explorer استودیو Apollo، پرس و جو را کپی کنید و یک فایل GraphQL جدید در src/main/graphql/.
در اینجا نمونه ای از یک پرس و جو است که لیستی از پست ها را دریافت می کند:
# src/main/graphql/Posts.graphql
query Posts($limit: Int!, $cursor: String) {
posts(limit: $limit, cursor: $cursor) {
hasMore
posts {
id
createdAt
updatedAt
title
text
}
}
}
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
مدل را تولید کنید
ساختن پروژه شما برای تولید کد مدل فایل تولید شده را چک کنید app/build/generated/source/apollo/service/com/example/appname/PostsQuery.kt.
توجه داشته باشید: هر بار که یک کوئری، جهش یا قطعه جدید اضافه می کنید، باید پروژه خود را بازسازی کنید.
اولین کوئری را اجرا کنید
ایجاد یک نمونه از ApolloClient و با درخواست خود تماس جدیدی برقرار کنید.
یک ApolloClient ایجاد کنید
یک فایل جدید با نام ایجاد کنید Apollo.kt و یک نمونه از ApolloClient در آن با URL سرور شما:
val apolloClient = ApolloClient.Builder()
.serverUrl(“http://10.0.2.2:4000/graphql”)
.build()
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
Query را اجرا کنید
استفاده کنید apolloClient و تولید شده PostsQuery برای اجرای یک پرس و جو جدید:
val response = apolloClient.query(PostsQuery(limit = limit, cursor = Optional.present(cursor))).execute()
val posts = response.data?.posts?.posts?.filterNotNull() ?: emptyList()
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
تبریک می گویم! شما با موفقیت Apollo GraphQL را در پروژه اندروید خود ادغام کرده اید. برای اجرای کامل GraphQL با استفاده از الگوی معماری پاک، مخزن GitHub من را بررسی کنید. کد نویسی مبارک 😊
منابع
در این آموزش، راه اندازی و پیکربندی Apollo GraphQL را در یک پروژه Jetpack Compose بررسی می کنیم. اگر به دنبال اجرای کامل GraphQL با استفاده از معماری پاک هستید، مخزن GitHub من را بررسی کنید.
پروژه خود را پیکربندی کنید
1. به روز رسانی app/build.gradle.kts
شناسه پلاگین آپولو را اضافه کنید:
plugins {
// ...
alias(libs.plugins.apollo3Graph)
}
بعد، اضافه کنید apollo-runtime
به وابستگی های شما:
dependencies {
// ...
// Apollo3
implementation(libs.apollo.runtime)
}
2. به روز رسانی libs.versions.toml
نسخه آپولو و مراجع کتابخانه را اضافه کنید:
[versions]
// ...
apollo3 = "3.8.5" // Latest version at the time of writing
[libraries]
// ...
apollo-runtime = { group = "com.apollographql.apollo3", name = "apollo-runtime" }
apollo-api = { group = "com.apollographql.apollo3", name = "apollo-api" }
[plugins]
// ...
apollo3Graph = { id = "com.apollographql.apollo3", version.ref = "apollo3" }
تعریف بسته برای فایل های تولید شده
بسته ای را که فایل های Kotlin در آن تولید می شوند را مشخص کنید. این را به android
بخش از app/build.gradle.kts
:
android {
// ...
apollo {
service("service") {
packageName.set("com.example.appname")
}
}
// ...
}
طرح GraphQL را اضافه کنید
URL سرور خود را از استودیو آپولو که در کادر سمت چپ بالای صفحه قرار دارد دریافت کنید:
دستور زیر را در تب Terminal اندروید استودیو برای دانلود شمای سرور خود اجرا کنید:
./gradlew :app:downloadApolloSchema --endpoint='http://localhost:4000/graphql' --schema=app/src/main/graphql/schema.graphqls
این یک را دانلود می کند schema.graphqls
فایل به app/src/main/graphql/schema.graphqls
.
همگام سازی پروژه
پس از دانلود طرح، پروژه را همگام سازی کنید.
به روز رسانی AndroidManifest.xml
مجوز اینترنت را اضافه کنید
ابتدا مجوز اینترنت را به خود اضافه کنید AndroidManifest.xml
:
android:name="android.permission.INTERNET"/>
امنیت شبکه را برای شبیه ساز پیکربندی کنید
اگر از شبیه ساز اندروید برای اتصال به سروری که در حال اجرا است استفاده می کنید localhost:4000/graphql
، امنیت شبکه را برای جلوگیری از خطاهای “درخواست شبکه ناموفق” پیکربندی کنید و ارتباط با سرور GraphQL خود را فعال کنید.
- ايجاد كردن
network_security_config.xml
یک فایل به نام ایجاد کنید network_security_config.xml
که در ../app/src/main/res/xml/
:
cleartextTrafficPermitted="true">
includeSubdomains="true">10.0.2.2
این پیکربندی به ترافیک متن شفاف اجازه می دهد 10.0.2.2
، که به آن نقشه می دهد localhost
در دستگاه میزبان شما
- به پیکربندی امنیت شبکه مراجعه کنید
خود را به روز کنید AndroidManifest.xml
برای ارجاع به این پیکربندی امنیتی شبکه:
android:networkSecurityConfig="@xml/network_security_config"
// ...
>
// ...
اولین پرس و جو را اضافه کنید
پس از تأیید پرس و جو در Sandbox Explorer استودیو Apollo، پرس و جو را کپی کنید و یک فایل GraphQL جدید در src/main/graphql/
.
در اینجا نمونه ای از یک پرس و جو است که لیستی از پست ها را دریافت می کند:
# src/main/graphql/Posts.graphql
query Posts($limit: Int!, $cursor: String) {
posts(limit: $limit, cursor: $cursor) {
hasMore
posts {
id
createdAt
updatedAt
title
text
}
}
}
مدل را تولید کنید
ساختن پروژه شما برای تولید کد مدل فایل تولید شده را چک کنید app/build/generated/source/apollo/service/com/example/appname/PostsQuery.kt
.
توجه داشته باشید: هر بار که یک کوئری، جهش یا قطعه جدید اضافه می کنید، باید پروژه خود را بازسازی کنید.
اولین کوئری را اجرا کنید
ایجاد یک نمونه از ApolloClient
و با درخواست خود تماس جدیدی برقرار کنید.
یک ApolloClient ایجاد کنید
یک فایل جدید با نام ایجاد کنید Apollo.kt
و یک نمونه از ApolloClient
در آن با URL سرور شما:
val apolloClient = ApolloClient.Builder()
.serverUrl("http://10.0.2.2:4000/graphql")
.build()
Query را اجرا کنید
استفاده کنید apolloClient
و تولید شده PostsQuery
برای اجرای یک پرس و جو جدید:
val response = apolloClient.query(PostsQuery(limit = limit, cursor = Optional.present(cursor))).execute()
val posts = response.data?.posts?.posts?.filterNotNull() ?: emptyList()
تبریک می گویم! شما با موفقیت Apollo GraphQL را در پروژه اندروید خود ادغام کرده اید. برای اجرای کامل GraphQL با استفاده از الگوی معماری پاک، مخزن GitHub من را بررسی کنید. کد نویسی مبارک 😊
منابع