From 9f89988793fc168fd3d8302edca59a576a5f3e4b Mon Sep 17 00:00:00 2001 From: mojtaba <121169359+mojtabapaso@users.noreply.github.com> Date: Sat, 9 Mar 2024 22:16:19 +0330 Subject: [PATCH 1/9] Create first-steps.md Add Persian translation for docs/tutorial/first-steps.md --- docs/fa/docs/tutorial/first-steps.md | 339 +++++++++++++++++++++++++++ 1 file changed, 339 insertions(+) create mode 100644 docs/fa/docs/tutorial/first-steps.md diff --git a/docs/fa/docs/tutorial/first-steps.md b/docs/fa/docs/tutorial/first-steps.md new file mode 100644 index 000000000..5cc8d614d --- /dev/null +++ b/docs/fa/docs/tutorial/first-steps.md @@ -0,0 +1,339 @@ +# گام های اولیه + +ساده ترین پروژه FastAPI می تواند به شکل زیر باشد: +```Python +{!../../../docs_src/first_steps/tutorial001.py!} +``` + +لطفاً کد زیر را در یک فایل با نام main.py قرار دهید. + +برای اجرا به صورت live server ، کد را اجرا کنید. + + +
دریافت
+
+!!! اطلاعات "اطلاعات `@decorator`"
+ به آن نحو «@something» در پایتون «دکوراتور» میگویند.
+
+ شما آن را در بالای یک تابع قرار می دهید. مانند یک کلاه تزئینی زیبا (حدس میزنم این اصطلاح از اینجا آمده است).
+
+ یک "decorator" تابع زیر را می گیرد و کاری با آن انجام می دهد.
+
+ در مورد ما، این دکوراتور به **FastAPI** می گوید که تابع زیر با **path** `/` با **operation** 'get' مطابقت دارد.
+
+ این "**path operation decorator**" است.
+
+همچنین می توانید از operation های دیگر استفاده کنید:
+
+* `@app.post()`
+* `@app.put()`
+* `@app.delete()`
+
+و موارد خاص تر:
+
+* `@app.options()`
+* `@app.head()`
+* `@app.patch()`
+* `@app.trace()`
+
+!!! نکته
+
+شما آزاد هستید که از هر operation (method HTTP) به دلخواه خود استفاده کنید.
+
+ **FastAPI** هیچ معنای خاصی را اعمال نمی کند.
+
+ اطلاعات در اینجا به عنوان یک دستورالعمل ارائه شده است، نه یک الزام.
+
+ به عنوان مثال، هنگام استفاده از GraphQL، معمولاً تمام اقدامات را فقط با استفاده از operation «POST» انجام می دهید.
+
+### مرحله ۴: تعریف **path operation function**
+
+این "**path operation function**" ما است:
+
+* **مسیر**: «/» است.
+* **operation**: "POST" است.
+* **تابع**: تابع زیر "decorator" است (زیر `@app.get("/")`).
+
+```"Python hl_lines="7"
+{!../../../docs_src/first_steps/tutorial001.py!}
+```
+
+این یک تابع پایتون است.
+
+هر زمان که درخواستی به URL "`/`" با استفاده از operation "GET" دریافت کند، توسط **FastAPI** فراخوانی می شود.
+
+در این مورد، یک تابع `async` است.
+
+---
+
+همچنین میتوانید آن را بهجای «async def» بهعنوان یک تابع عادی تعریف کنید:
+
+```"Python hl_lines="7"
+{!../../../docs_src/first_steps/tutorial003.py!}
+```
+
+!!! توجه داشته باشید
+ اگر تفاوت را نمی دانید، [Async: *"عجله دارید؟"*](../async.md#in-a-hurry){.internal-link target=_blank} را بررسی کنید.
+
+### مرحله ۵: محتوا را برگردانید
+
+```Python hl_lines="8"
+{!../../../docs_src/first_steps/tutorial001.py!}
+```
+
+
+میتوانید مقادیر مانند "list" و "dict" و همچنین مقادیر تکی مثل "str" و "int" را برگردانید.
+
+همچنین می توانید مدل های Pydantic را برگردانید (در ادامه بیشتر در مورد آن خواهید دید).
+
+بسیاری از اشیاء و مدل های دیگر وجود دارند که به طور خودکار به JSON تبدیل می شوند (از جمله ORM ها و غیره). سعی کنید از موارد مورد علاقه خود استفاده کنید، به احتمال زیاد آنها قبلاً از پشتیبانی می شوند.
+
+##خلاصه
+
+* "FastAPI" را وارد کنید.
+* یک نمونه "برنامه" ایجاد کنید.
+* یک **path operation decorator** بنویسید (مانند `@app.get("/")`).
+* یک **path operation function** بنویسید (مانند 'def root(: ...' در بالا).
+* سرور توسعه را اجرا کنید (مانند 'uvicorn main:app --reload').
From 1aedadefef2e9d16685ecbc1fac372c7411f945b Mon Sep 17 00:00:00 2001
From: "pre-commit-ci[bot]"
<66853113+pre-commit-ci[bot]@users.noreply.github.com>
Date: Sat, 9 Mar 2024 18:51:56 +0000
Subject: [PATCH 2/9] =?UTF-8?q?=F0=9F=8E=A8=20[pre-commit.ci]=20Auto=20for?=
=?UTF-8?q?mat=20from=20pre-commit.com=20hooks?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
docs/fa/docs/tutorial/first-steps.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/fa/docs/tutorial/first-steps.md b/docs/fa/docs/tutorial/first-steps.md
index 5cc8d614d..ac130b749 100644
--- a/docs/fa/docs/tutorial/first-steps.md
+++ b/docs/fa/docs/tutorial/first-steps.md
@@ -234,7 +234,7 @@ https://example.com/items/foo
به طور معمول شما استفاده می کنید:
-* `POST`: برای ثبت اطلاعات
+* `POST`: برای ثبت اطلاعات
* `GET`: برای خواندن اطلاعات
* `PUT`: برای بروزرسانی اطلاعات
* `DELETE`: برای پاک کردن اطلاعات
From b2bec7a00e43041cf7ab6d0795e7014133b383ca Mon Sep 17 00:00:00 2001
From: mojtaba <121169359+mojtabapaso@users.noreply.github.com>
Date: Sat, 9 Mar 2024 22:35:05 +0330
Subject: [PATCH 3/9] Update first-steps.md
---
docs/fa/docs/tutorial/first-steps.md | 1 -
1 file changed, 1 deletion(-)
diff --git a/docs/fa/docs/tutorial/first-steps.md b/docs/fa/docs/tutorial/first-steps.md
index ac130b749..2e81894b7 100644
--- a/docs/fa/docs/tutorial/first-steps.md
+++ b/docs/fa/docs/tutorial/first-steps.md
@@ -118,7 +118,6 @@ OpenAPI یک schema API برای API شما تعریف می کند. و این sc
-...
```
#### OpenAPI برای چیست
From f98266321cf08bf619cfebb77591d709d7ea2759 Mon Sep 17 00:00:00 2001
From: mojtaba <121169359+mojtabapaso@users.noreply.github.com>
Date: Sun, 10 Mar 2024 18:35:38 +0330
Subject: [PATCH 4/9] Update first-steps.md
---
docs/fa/docs/tutorial/first-steps.md | 64 ++++++++++++++--------------
1 file changed, 32 insertions(+), 32 deletions(-)
diff --git a/docs/fa/docs/tutorial/first-steps.md b/docs/fa/docs/tutorial/first-steps.md
index 2e81894b7..77797e8ba 100644
--- a/docs/fa/docs/tutorial/first-steps.md
+++ b/docs/fa/docs/tutorial/first-steps.md
@@ -27,9 +27,9 @@ $ uvicorn main:app --reload
!!! نکته
دستور 'uvicorn main:app' به این موارد اشاره دارد:
- * "main": فایل "main.py" ("ماژول" پایتون).
- * "app": شی ایجاد شده در "main.py" با خط "app = FastAPI()".
- * "--reload": سرور را پس از تغییر کد راه اندازی مجدد کنید. فقط برای توسعه استفاده کنید.
+ * فایل "main": فایل "main.py" ("ماژول" پایتون).
+ * برنامه "app": شی ایجاد شده در "main.py" با خط "app = FastAPI()".
+ * دستور "--reload": سرور را پس از تغییر کد راه اندازی مجدد کنید. فقط برای توسعه استفاده کنید.
در خروجی، یک خط با چیزی مانند زیر خواهید دید:
@@ -66,33 +66,33 @@ INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)

-### OpenAPI
+### اسناد OpenAPI
-**FastAPI** با استفاده از استاندارد **OpenAPI** برای تعریف APIها، یک "schema" با تمام API شما ایجاد می کند.
+فریم ورک **FastAPI** با استفاده از استاندارد **OpenAPI** برای تعریف APIها، یک "schema" با تمام API شما ایجاد می کند.
-#### "schema" (طرحواره)
+#### (طرحواره) "schema"
-"schema" تعریف یا توصیف چیزی است. نه کدی که آن را پیاده سازی می کند، بلکه فقط یک توضیح انتزاعی است.
+اصطلاح "schema" تعریف یا توصیف چیزی است. نه کدی که آن را پیاده سازی می کند، بلکه فقط یک توضیح انتزاعی است.
-#### "schema" API
+#### اسناد "schema" API
در این مورد، OpenAPI مشخصاتی است که نحوه تعریف یک شمای API شما
این تعریف schema شامل مسیرهای API شما، پارامترهای احتمالی آنها و غیره است.
-#### "schema" داده
+#### اصطلاح "schema" داده
اصطلاح "schema" ممکن است به شکل برخی از دادهها مانند محتوای JSON نیز اشاره داشته باشد.
در آن صورت، این به معنای ویژگیهای JSON، و انواع دادههای آنها و غیره است.
-#### OpenAPI و JSON Schema
+#### اسناد OpenAPI و JSON Schema
-OpenAPI یک schema API برای API شما تعریف می کند. و این schema شامل تعاریف (یا "schema ها") داده های ارسال و دریافت شده توسط API شما با استفاده از **JSON Schema**، استاندارد schema های داده JSON است.
+اسناد OpenAPI یک schema API برای API شما تعریف می کند. و این schema شامل تعاریف (یا "schema ها") داده های ارسال و دریافت شده توسط API شما با استفاده از **JSON Schema**، استاندارد schema های داده JSON است.
-#### «openapi.json» را بررسی کنید
+#### فایل «openapi.json» را بررسی کنید
اگر کنجکاو هستید که schema OpenAPI خام چگونه به نظر می رسد، FastAPI به طور خودکار یک JSON (شما) با توضیحات همه API شما تولید می کند.
@@ -116,13 +116,13 @@ OpenAPI یک schema API برای API شما تعریف می کند. و این sc
"content": {
"application/json": {
-
+...
```
-#### OpenAPI برای چیست
+#### اسناد OpenAPI برای چیست
-schema OpenAPI همان چیزی است که دو سیستم اسناد تعاملی را شامل می شود.
+اسناد schema OpenAPI همان چیزی است که دو سیستم اسناد تعاملی را شامل می شود.
و ده ها گزینه جایگزین وجود دارد که همه بر اساس OpenAPI هستند. شما به راحتی می توانید هر یک از آن جایگزین ها را به برنامه خود که با **FastAPI** ساخته شده است اضافه کنید.
@@ -134,11 +134,11 @@ schema OpenAPI همان چیزی است که دو سیستم اسناد تعام
{!../../../docs_src/first_steps/tutorial001.py!}
```
-"FastAPI" یک کلاس پایتون است که تمام عملکردها را برای API شما فراهم می کند.
+فریم ورک "FastAPI" یک کلاس پایتون است که تمام عملکردها را برای API شما فراهم می کند.
!!! توجه "جزئیات فنی"
- «FastAPI» کلاسی است که مستقیماً از «Starlette» به ارث میبرد.
+ فریم ورک "FastAPI" کلاسی است که مستقیماً از «Starlette» به ارث میبرد.
میتوانید با "FastAPI" نیز از همه قابلیتهای Starlette استفاده کنید.
### مرحله۲ : یک 'instance' از "FastAPI" ایجاد کنید
@@ -185,9 +185,9 @@ $ uvicorn main:my_awesome_api --reload
### مرحله ۳: ایجاد یک *path operation* (عملیات مسیر)
-#### path
+#### مسیر-path
-"path" در اینجا به آخرین قسمت URL که از '/' اول شروع میشود، اشاره دارد.
+مسیر یا همان "path" در اینجا به آخرین قسمت URL که از '/' اول شروع میشود، اشاره دارد.
بنابراین، در یک URL مانند:
@@ -208,9 +208,9 @@ https://example.com/items/foo
هنگام ساختن یک API، «مسیر» راه اصلی برای جداسازی «resources» و «concerns» است.
-#### Operation
+#### عملیات-Operation
-"Operation" در اینجا به یکی از «روشهای HTTP» اشاره دارد.
+عملیات-"Operation" در اینجا به یکی از «روشهای HTTP» اشاره دارد.
یکی از:
* `POST`
@@ -233,10 +233,10 @@ https://example.com/items/foo
به طور معمول شما استفاده می کنید:
-* `POST`: برای ثبت اطلاعات
-* `GET`: برای خواندن اطلاعات
-* `PUT`: برای بروزرسانی اطلاعات
-* `DELETE`: برای پاک کردن اطلاعات
+متد* `POST`: برای ثبت اطلاعات
+متد* `GET`: برای خواندن اطلاعات
+متد* `PUT`: برای بروزرسانی اطلاعات
+متد* `DELETE`: برای پاک کردن اطلاعات
بنابراین، در OpenAPI، به هر یک از متدهای HTTP "operation" گفته می شود.
@@ -248,9 +248,9 @@ https://example.com/items/foo
{!../../../docs_src/first_steps/tutorial001.py!}
```
-'@app.get("/")' به **FastAPI** میگوید که تابعی که در زیر آن قرار دارد، مسئول پاسخگویی به درخواستهایی است که به این آدرس ارسال میشوند:
+در این کد'@app.get("/")' به **FastAPI** میگوید که تابعی که در زیر آن قرار دارد، مسئول پاسخگویی به درخواستهایی است که به این آدرس ارسال میشوند:
-* path (مسیر) `/`
+* (مسیر) path `/`
* با استفاده از یک operation دریافت
!!! اطلاعات "اطلاعات `@decorator`"
@@ -281,7 +281,7 @@ https://example.com/items/foo
شما آزاد هستید که از هر operation (method HTTP) به دلخواه خود استفاده کنید.
- **FastAPI** هیچ معنای خاصی را اعمال نمی کند.
+ فریم ورک **FastAPI** هیچ معنای خاصی را اعمال نمی کند.
اطلاعات در اینجا به عنوان یک دستورالعمل ارائه شده است، نه یک الزام.
@@ -292,7 +292,7 @@ https://example.com/items/foo
این "**path operation function**" ما است:
* **مسیر**: «/» است.
-* **operation**: "POST" است.
+متد* **operation**: "POST" است.
* **تابع**: تابع زیر "decorator" است (زیر `@app.get("/")`).
```"Python hl_lines="7"
@@ -331,8 +331,8 @@ https://example.com/items/foo
##خلاصه
-* "FastAPI" را وارد کنید.
-* یک نمونه "برنامه" ایجاد کنید.
+فریم ورک* "FastAPI" را وارد کنید.
+* یک نمونه "app" ایجاد کنید.
* یک **path operation decorator** بنویسید (مانند `@app.get("/")`).
-* یک **path operation function** بنویسید (مانند 'def root(: ...' در بالا).
+* یک **path operation function** بنویسید (مانند 'def root(: ...' در زیر آن).
* سرور توسعه را اجرا کنید (مانند 'uvicorn main:app --reload').
From df163b0458022bdad93e2bf9a35c5bc0cb9528f9 Mon Sep 17 00:00:00 2001
From: "pre-commit-ci[bot]"
<66853113+pre-commit-ci[bot]@users.noreply.github.com>
Date: Sun, 10 Mar 2024 15:05:54 +0000
Subject: [PATCH 5/9] =?UTF-8?q?=F0=9F=8E=A8=20[pre-commit.ci]=20Auto=20for?=
=?UTF-8?q?mat=20from=20pre-commit.com=20hooks?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
docs/fa/docs/tutorial/first-steps.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/fa/docs/tutorial/first-steps.md b/docs/fa/docs/tutorial/first-steps.md
index 77797e8ba..c9f84a263 100644
--- a/docs/fa/docs/tutorial/first-steps.md
+++ b/docs/fa/docs/tutorial/first-steps.md
@@ -70,7 +70,7 @@ INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
فریم ورک **FastAPI** با استفاده از استاندارد **OpenAPI** برای تعریف APIها، یک "schema" با تمام API شما ایجاد می کند.
-#### (طرحواره) "schema"
+#### (طرحواره) "schema"
اصطلاح "schema" تعریف یا توصیف چیزی است. نه کدی که آن را پیاده سازی می کند، بلکه فقط یک توضیح انتزاعی است.
From 631de55a3ad3bfa622a1f1d68c9c772be55d29f3 Mon Sep 17 00:00:00 2001
From: mojtaba <121169359+mojtabapaso@users.noreply.github.com>
Date: Fri, 29 Mar 2024 12:44:50 +0330
Subject: [PATCH 6/9] Update first-steps.md
---
docs/fa/docs/tutorial/first-steps.md | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/docs/fa/docs/tutorial/first-steps.md b/docs/fa/docs/tutorial/first-steps.md
index c9f84a263..4f3472cce 100644
--- a/docs/fa/docs/tutorial/first-steps.md
+++ b/docs/fa/docs/tutorial/first-steps.md
@@ -4,14 +4,11 @@
```Python
{!../../../docs_src/first_steps/tutorial001.py!}
```
-
لطفاً کد زیر را در یک فایل با نام main.py قرار دهید.
برای اجرا به صورت live server ، کد را اجرا کنید.
-
-