Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🌐 Add Persian translation for docs/fa/docs/advanced/sub-applications.md #9692

Merged
merged 9 commits into from Jun 27, 2023
72 changes: 72 additions & 0 deletions docs/fa/docs/advanced/sub-applications.md
@@ -0,0 +1,72 @@
# زیر برنامه ها - اتصال

اگر نیاز دارید که دو برنامه مستقل FastAPI، با OpenAPI مستقل و رابط‌های کاربری اسناد خود داشته باشید، می‌توانید یک برنامه
اصلی داشته باشید و یک (یا چند) زیر برنامه را به آن متصل کنید.

## اتصال (mount) به یک برنامه **FastAPI**

کلمه "Mounting" به معنای افزودن یک برنامه کاملاً مستقل در یک مسیر خاص است، که پس از آن مدیریت همه چیز در آن مسیر، با path operations (عملیات های مسیر) اعلام شده در آن زیر برنامه می باشد.

### برنامه سطح بالا

ابتدا برنامه اصلی سطح بالا، **FastAPI** و path operations آن را ایجاد کنید:


```Python hl_lines="3 6-8"
{!../../../docs_src/sub_applications/tutorial001.py!}
```

### زیر برنامه

سپس، زیر برنامه خود و path operations آن را ایجاد کنید.

این زیر برنامه فقط یکی دیگر از برنامه های استاندارد FastAPI است، اما این برنامه ای است که متصل می شود:

```Python hl_lines="11 14-16"

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

{!../../../docs_src/sub_applications/tutorial001.py!}
باید اصلاح بشه

{!../../../docs_src/sub_applications/tutorial001.py!}
```

### اتصال زیر برنامه

در برنامه سطح بالا `app` اتصال زیر برنامه `subapi` در این نمونه `/subapi` در مسیر قرار میدهد و میشود:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

در برنامه اصلی(سطح بالا) که app نام دارد، زیربرنامه subapi را متصل (mount) کنید.

در این مورد، زیربرنامه در مسیر /subapi متصل خواهد شد.


```Python hl_lines="11 19"

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

{!../../../docs_src/sub_applications/tutorial001.py!}
باید اصلاح بشه

{!../../../docs_src/sub_applications/tutorial001.py!}
```

### اسناد API خودکار را بررسی کنید

برنامه را با استفاده از ‘uvicorn‘ اجرا کنید، اگر فایل شما ‘main.py‘ نام دارد، دستور زیر را وارد کنید:
<div class="termy">

```console
$ uvicorn main:app --reload

<span style="color: green;">INFO</span>: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
```

</div>

صفحه مستندات را در آدرس <a href="http://127.0.0.1:8000/docs" class="external-link" target="_blank">http://127.0.0.1:8000/docs</a> باز کنید.

اسناد API خودکار برنامه اصلی را مشاهده خواهید کرد که فقط شامل path operations خود می شود:

<img src="/img/tutorial/sub-applications/image01.png">

و سپس اسناد زیر برنامه را در آدرس <a href="http://127.0.0.1:8000/subapi/docs" class="external-link" target="_blank">http://127.0.0.1:8000/subapi/docs</a>. باز کنید.

اسناد API خودکار برای زیر برنامه را خواهید دید، که فقط شامل path operations خود می شود، همه در زیر مسیر `/subapi` قرار دارند:

<img src="/img/tutorial/sub-applications/image02.png">

اگر سعی کنید با هر یک از این دو رابط کاربری تعامل داشته باشید، آنها به درستی کار می کنند، زیرا مرورگر می تواند با هر یک از برنامه ها یا زیر برنامه های خاص صحبت کند.

### جرئیات فنی : `root_path`

هنگامی که یک زیر برنامه را همانطور که در بالا توضیح داده شد متصل می کنید, FastAPI با استفاده از مکانیزمی از مشخصات ASGI به نام `root_path` ارتباط مسیر mount را برای زیر برنامه انجام می دهد.

به این ترتیب، زیر برنامه می داند که از آن پیشوند مسیر برای رابط کاربری اسناد (docs UI) استفاده کند.

و زیر برنامه ها نیز می تواند زیر برنامه های متصل شده خود را داشته باشد و همه چیز به درستی کار کند، زیرا FastAPI تمام این مسیرهای `root_path` را به طور خودکار مدیریت می کند.

در بخش [پشت پراکسی](./behind-a-proxy.md){.internal-link target=_blank}. درباره `root_path` و نحوه استفاده درست از آن بیشتر خواهید آموخت.