GraphQL یک استاندارد API است که توسط فیس بوک به عنوان جایگزینی برای API های REST ایجاد و منبع باز شده است. بر خلاف API های REST ،GraphQL از یک سیستم تایپ شده برای تعریف ساختار داده خود استفاده می کند ، جایی که تمام اطلاعات باید مطابق با یک طرح از پیش تعریف شده ارسال و دریافت شوند. همچنین به جای چندین URL برای منابع مختلف، یک انتهای واحد برای همه ارتباطات در معرض دید قرار می دهد و با بازگرداندن تنها داده های درخواست شده توسط کلاینت ، مشکل overfetching  را حل می کند و از این طریق پاسخ های کوچکتر و مختصر تری ایجاد می کند.
در این آموزش شما یک پس زمینه برای کوتاه کننده URL ایجاد می کنید – خدماتی که هر URL را در اختیار شما قرار می دهد و یک نسخه کوتاهتر و خواندنی تر تولید می کند – در حالی که به مفاهیم GraphQL مانند نمایش داده ها و جهش ها و ابزارهایی مانند رابط GraphiQL می پردازید. ممکن است قبلاً مانند سرویس bit.ly از چنین سرویس هایی استفاده کرده باشید.
از آنجا که GraphQL یک فناوری آگنوستیک زبانی است ، روی زبانها و چارچوبهای مختلف پیاده سازی می شود. در اینجا ، شما از زبان برنامه نویسی Python هدف کلی ، چارچوب وب Django ، و کتابخانه Graphene-Django به عنوان اجرای GraphQL Python با ادغام های ویژه برای Django استفاده خواهید کرد.
پیش نیازها
• برای ادامه این آموزش ، به نصب پایتون نسخه 3.5 یا بالاتر در دستگاه توسعه خود نیاز دارید. برای نصب Python ، آموزش ما را در مورد نحوه نصب و راه اندازی یک محیط برنامه نویسی محلی برای Python 3 برای سیستم عامل خود را دنبال کنید. اطمینان حاصل کنید که یک محیط مجازی نیز ایجاد و راه اندازی کنید؛ برای دنبال کردن این آموزش ، می توانید دیرکتوری پروژه خود را shorty بنامید.
• دانش سطح ورود به Django نیز توصیه میشود ، اما اجباری نیست. اگر کنجکاو هستید ، می توانید مجموعه توسعه Django ایجاد شده توسط انجمن vpsgol را دنبال کنید.
مرحله 1 – تنظیم پروژه Django
در این مرحله تمام ابزارهای لازم برای برنامه را نصب کرده و پروژه Django خود را تنظیم می کنید.
هنگامی که دایرکتوری پروژه خود را ایجاد کردید و محیط مجازی خود را راه اندازی کردید ، همانطور که در پیش نیازها پوشش داده شده است ، بسته های لازم را با استفاده از pip ، مدیر بسته پایتون نصب کنید. در این آموزش Django نسخه 2.1.7 و Graphene-Django نسخه 2.2.0 یا بالاتر نصب می شوند:
⦁ $ pip install “django==2.1.7” “graphene-django>==2.2.0”

اکنون تمام ابزارهای مورد نیاز خود را در کمربند ابزار خود دارید. در مرحله بعد با استفاده از دستور django-admin یک پروژه Django ایجاد خواهید کرد. یک پروژه به طور پیش فرض متن استاندارد Django است – مجموعه ای از پوشه ها و فایل ها با هر چیز لازم برای شروع توسعه یک برنامه وب. در این حالت ، شما پروژه خود را shorty می خوانید و با مشخص کردن نقطه در انتها، آن را در پوشه فعلی خود ایجاد می کنید:
⦁ $ django-admin startproject shorty .

بعد از ایجاد پروژه خود ،  Django migrations را اجرا خواهید کرد. این فایل ها حاوی کد پایتونی هستند که توسط Django تولید شده است و وظیفه تغییر ساختار برنامه را مطابق مدل های Django دارند. به عنوان مثال تغییرات ممکن است شامل ایجاد جدول باشد. به طور پیش فرض ، Django با مجموعه ای از جابه جایی های خود که مسئول زیر سیستم هایی مانند Django Authentication هستند ، همراه است ، بنابراین لازم است آنها را با دستور زیر اجرا کنید:
⦁ $ python manage.py migrate

این دستور از مفسر پایتون برای استناد به اسکریپت Django به نام managet.py استفاده می کند که مسئولیت مدیریت جنبه های مختلف پروژه شما ، مانند ایجاد برنامه ها یا اجرای جا به جایی ها را بر عهده دارد.
این دستور خروجی شبیه به زیر را ارائه می دهد:
Output
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
Applying contenttypes.0001_initial… OK
Applying auth.0001_initial… OK
Applying admin.0001_initial… OK
Applying admin.0002_logentry_remove_auto_add… OK
Applying admin.0003_logentry_add_action_flag_choices… OK
Applying contenttypes.0002_remove_content_type_name… OK
Applying auth.0002_alter_permission_name_max_length… OK
Applying auth.0003_alter_user_email_max_length… OK
Applying auth.0004_alter_user_username_opts… OK
Applying auth.0005_alter_user_last_login_null… OK
Applying auth.0006_require_contenttypes_0002… OK
Applying auth.0007_alter_validators_add_error_messages… OK
Applying auth.0008_alter_user_username_max_length… OK
Applying auth.0009_alter_user_last_name_max_length… OK
Applying sessions.0001_initial… OK

پس از آماده شدن پایگاه داده Django ، سرور مجازی توسعه محلی خود را شروع کنید:
⦁ $ python manage.py runserver

خروجی زیر را می دهد:
Output
Performing system checks…

System check identified no issues (0 silenced).
March 18, 2020 – 15:46:15
Django version 2.1.7, using settings ‘shorty.settings’
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

این دستور اعلان را در ترمینال شما از بین می برد و سرور مجازی را شروع می کند.
از صفحه http://127.0.0.1:8000 در مرورگر محلی خود بازدید کنید. این صفحه را مشاهده خواهید کرد:

برای متوقف کردن سرور مجازی و بازگشت به ترمینال خود ، CTRL + C را فشار دهید. هر زمان که نیاز به دسترسی به مرورگر داشته باشید ، اطمینان حاصل کنید که دستور قبلی در حال اجرا است.
در مرحله بعد ، با فعال کردن کتابخانه Django-Graphene در پروژه ، این مرحله را تمام خواهید کرد. Django دارای محتوای app ، یک برنامه وب با مسئولیت خاص میباشد. یک پروژه از یک یا چندین برنامه تشکیل شده است. در حال حاضر ، فایل shorty / settings.py را در ویرایشگر متن مورد نظر خود باز کنید. این آموزش از vim استفاده خواهد کرد:
⦁ $ vim shorty/settings.py

فایل settings.py تمام تنظیمات موجود در پروژه شما را مدیریت می کند. در داخل آن ، INSTALLED_APPS را جستجو کرده و خط “graphene_django” را اضافه کنید:
shorty/shorty/settings.py

INSTALLED_APPS = [
‘django.contrib.admin’,
‘django.contrib.auth’,
‘django.contrib.contenttypes’,
‘django.contrib.sessions’,
‘django.contrib.messages’,
‘django.contrib.staticfiles’,
‘graphene_django’,
]

این افزونه به Django می گوید که شما از برنامه ای به نام graphene_django که در مرحله 1 نصب کرده اید ، استفاده خواهید کرد.
در پایین فایل ، متغیر زیر را اضافه کنید:
shorty/shorty/settings.py

GRAPHENE = {
‘SCHEMA’: ‘shorty.schema.schema’,
}

این متغیر آخر به طرح اصلی شما اشاره دارد که بعداً ایجاد خواهید کرد. در GraphQL ، یک شماتیک شامل انواع شیء مانند منابع ، جستجوها و جهش ها است. آن را به عنوان مستنداتی که تمام داده ها و عملکردهای موجود در سیستم شما را نشان می دهد ، در نظر بگیرید.
پس از اصلاحات ، فایل را ذخیره کرده و ببندید.
اکنون پروژه Django را پیکربندی کرده اید. در مرحله بعد ، یک برنامه Django و مدل های آن را ایجاد خواهید کرد.
مرحله 2 – تنظیم برنامه و مدل های Django
یک پلتفرم Django معمولاً از یک پروژه و بسیاری برنامه یا app تشکیل شده است. یک app مجموعه ای از ویژگی های درون پروژه ای را توصیف می کند و در صورت طراحی مناسب می تواند در پروژه های Django استفاده مجدد شود.
در این مرحله برنامه ای به نام shortener ایجاد خواهید کرد ، که مسئول ویژگی کوتاه کردن URL واقعی است. برای ایجاد اسکلت اصلی آن ، دستور بعدی را در ترمینال خود تایپ کنید:
⦁ $ python manage.py startapp shortener

در اینجا شما از پارامترهای startapp app_name استفاده کرده و از دستور manage.py برای ایجاد یک app با نام shortener استفاده می کنید.
برای پایان دادن به ایجاد برنامه ، فایل shorty / settings.py را باز کنید
⦁ $ vim shorty/settings.py

نام برنامه را به همان ورودی INSTALLED_APPS که قبلاً اصلاح کرده اید اضافه کنید:
shorty/shorty/settings.py

INSTALLED_APPS = [
‘django.contrib.admin’,
‘django.contrib.auth’,
‘django.contrib.contenttypes’,
‘django.contrib.sessions’,
‘django.contrib.messages’,
‘django.contrib.staticfiles’,
‘graphene_django’
‘shortener’,
]

فایل را ذخیره کنید و ببندید.
با افزودن shortener خود به shorty / settings.py ، می توانید به سمت ایجاد مدل هایی برای پروژه خود بروید. مدل ها یکی از ویژگی های مهم در Django هستند. از آنها برای نشان دادن یک پایگاه داده به روش “Pythonic” استفاده می شود و به شما امکان می دهد داده ها را با استفاده از کد پایتون مدیریت ، پرس و جو و ذخیره کنید.
پیش از باز کردن فایل model.py برای تغییرات ، این آموزش مختصری از تغییراتی را که شما ایجاد خواهید کرد را ارائه می دهد.
پس از تعویض کد موجود ، فایل مدل — shortener / model.py — شامل محتوای زیر خواهد بود:
shorty/shortener/models.py
from hashlib import md5

from django.db import models
در اینجا بسته های مورد نیاز کد مورد نظر خود را وارد می کنید. برای وارد کردن کتابخانه استاندارد Python که برای ایجاد hash  در URL از آن استفاده می شود ، خط from hashlib import md5 را در قسمت بالا اضافه خواهید کرد. خط from django.db import models به Django برای ایجاد مدل ها کمک میکند.
اخطار: این آموزش به hash  به عنوان نتیجه عملکردی که یک ورودی را می گیرد و همیشه همان بازده را برمی گرداند اشاره دارد. این آموزش با استفاده از عملکرد hash  MD5 برای اهداف نمایشی استفاده می شود.
توجه داشته باشید که MD5 دارای مشکلات برخوردی است و باید در تولید از آن جلوگیری کرد.
در مرحله بعد ، یک مدل به نام URL با فیلدهای زیر اضافه خواهید کرد:
⦁ full_url: URL ای که باید کوتاه شود.
⦁ url_hash: یک hash  کوتاه است که URL کامل را نشان می دهد.
⦁ clicks: تعداد دفعاتی که به URL کوتاه دسترسی پیدا شده است.
⦁ created_at: تاریخ و زمانی که URL ایجاد شده است.
shorty/shortener/models.py

class URL(models.Model):
full_url = models.URLField(unique=True)
url_hash = models.URLField(unique=Tru

تابع path  توسط Django برای ایجاد یک URL در دسترس برای رابط GraphiQL استفاده می شود. پس از آن ، csrf_exempt را وارد می کنید ، که به کلاینت ها امکان می دهد داده ها را به سرور مجازی ارسال کنند. توضیحات کامل را می توان در مستندات Graphene یافت. در آخرین خط ، کد واقعی مسئول رابط را از طریق GraphQLView وارد کردید.
سپس ، یک متغیر به نام urlpatterns ایجاد کنید.
shorty/shorty/urls.py

urlpatterns = [
path(‘graphql/’, csrf_exempt(GraphQLView.as_view(graphiql=True))),
]

با این کار تمام کدهای لازم برای ایجاد رابط GraphiQL در مسیر graphql/ در کنار هم قرار می گیرد:
فایل کامل shortener/urls.py در اینجا آمده است:
shorty/shorty/urls.py
from django.urls import path
from django.views.decorators.csrf import csrf_exempt

from graphene_django.views import GraphQLView

urlpatterns = [
path(‘graphql/’, csrf_exempt(GraphQLView.as_view(graphiql=True))),
]

فایل را ذخیره کنید و آن را ببندید.
به ترمینال برگردید ، دستور runderver python management.py را اجرا کنید (اگر قبلاً اجرا نشده است):
⦁ $ python manage.py runserver

مرورگر وب خود را در آدرس http: // localhost: 8000 / Graphql باز کنید. به شما این صفحه نمایش داده می شود:

GraphiQL رابطی است که در آن می توانید عبارت GraphQL را اجرا کرده و نتایج را مشاهده کنید. یکی از ویژگی ها، بخش Docs در بالا سمت راست میباشد. از آنجا که همه چیز در GraphQL تایپ شده است ، در مورد انواع ، پرس و جوها ، جهش ها و غیره مطالب رایگان دریافت می کنید.
پس از جستجو در صفحه ، اولین Query خود را در قسمت متن اصلی وارد کنید:

این نشان می دهد که ویژگی صفحه بندی کار می کند. به راحتی افزودن آدرس های اینترنتی بیشتر و آزمایش مجموعه های مختلف first  و skip را انجام دهید.
نتیجه
تمام اکوسیستم GraphQL هر روز در حال رشد است و جامعه ای فعال در پشت آن وجود دارد. این محصول توسط شرکت هایی مانند GitHub و Facebook به اثبات رسیده است و اکنون می توانید این فناوری را برای پروژه های خود اعمال کنید.
در این آموزش شما با استفاده از مفاهیمی مانند Query و Mutations یک سرویس کوتاه کننده URL با استفاده از GraphQL ، Python و Django ایجاد کرده اید. اما فراتر از آن ، اکنون می دانید که چگونه می توانید با استفاده از چارچوب وب Django به این فناوری ها اعتماد کنید تا بتوانید برنامه های وب ایجاد کنید.
می توانید اطلاعات بیشتری در مورد GraphQL و ابزارهای مورد استفاده در اینجا را در وب سایت GraphQL و وب سایت های مطالب Graphene کسب کنید.

 

 

از این لینک ها زیر می توانید آمورش های بیشتری برای لینوکس پیدا کنید :

استفاده از nsh برای دستورات از راه دور اوبونتو 18 –  میزبانی وب سایت با Caddy اوبونتو 18

تنظیم سرور ذخیره سازی آبجکت با استفاده از Minio در اوبونتو 18  –  ضبط و اشتراک گذاری ترمینال با Terminalizer اوبونتو

تنظیم مسیریابی شرطی و پاسخگو با React Router v4  –  ایجاد یک URL کوتاه کننده با Django و GraphQL

یک برنامه ردیابی سلامت را با React ،GraphQL و Okta –  ساخت برنامه چت زمان حقیقی React و GraphQL

به روزرسانی فیلترهای مرتب سازی Angular (زاویه ای) –  با استفاده از React ، Superagent و API اینستاگرام

نحوه ساختن یک برنامه جهانی با Nuxt.js و Django –  دکمه دانلود با ریزتعاملات با CSS ، anime.js و segment.js

نحوه اضافه کردن عکسهای پیشرفته در Node و Express  –  با Vue ،GraphQL و Apollo Client یک وبلاگ ساخت

یک برنامه SSR با روتر Preact ، Unistore و Preact بسازید  –  ساخت برنامه های وب پیشرونده با Angular

اشکال زدایی JavaScript در تولید با نقشه های منبع  –  می توان با Koa برنامه “سلام جهانی” ساخت

ساختن یک برنامه با Node ، React ، Okta  –   مدیریت حالت فرم در React با Redux Form

نحوه تنظیم Laravel ، Nginx و MySQL  –  ارتقاء از AngularJS به Angular با ngUpgrade

استفاده از ویژوال استودیو از راه دور  –  احراز هویت API با JSON Web Tokens و Passport

راه اندازی یک پروژه React با Parcel  –  ایجاد Swiper مانند Netflix را در Vue

ساختن یک ربات تلگرام با Laravel و BotMan  –  استفاده از map، filter، و reduce در جاوااسکریپت

چگونه می توان موتور جستجوی زمان واقعی را با Vue  –  ساختن سیستم مستندات (Documentation) با Vue و VuePress

استفاده از اشتراک زنده با کد ویژوال استودیو  –  ساخت یک مقیاس اندازه گیری قدرت رمز عبور را در React

شروع عملی GraphQL با Node.js و Express  –  ساخت یک برنامه آب و هوا در Django

نحوه نصب Discourse روی Ubuntu 18  –  تأیید رمز عبور با استفاده از درخواست فرم Laravel

نحوه نصب MySQL در CentOS 8  –  استفاده از پسوند PDO PHP برای انجام تراکنش MySQL

نصب و پیکربندی SNMP Daemon و Client در Ubuntu 18  –  نصب Linux، Nginx، MariaDB،PHP در Debian 10

 

 

کلمات کلیدی خرید سرور

خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا – خرید سرور مجازی ارزان هلند – vps – خرید vps هلند – خرید سرور مجازی آمریکا – خرید vps فرانسه – تست vps – سرور مجازی تست – سرور مجازی ویندوز – ارزانترین vps – خرید وی پی اس – vps ارزان –