]> git.ipfire.org Git - thirdparty/fastapi/fastapi.git/commitdiff
โœ๏ธ Fix typos in emoji docs and in some source examples (#10438)
authorHeinz-Alexander Fuetterer <35225576+afuetterer@users.noreply.github.com>
Fri, 20 Oct 2023 09:00:44 +0000 (11:00 +0200)
committerGitHub <noreply@github.com>
Fri, 20 Oct 2023 09:00:44 +0000 (13:00 +0400)
docs/em/docs/deployment/concepts.md
docs/em/docs/deployment/docker.md
docs/em/docs/deployment/server-workers.md
docs/em/docs/project-generation.md
docs/en/docs/how-to/sql-databases-peewee.md
docs_src/openapi_webhooks/tutorial001.py
fastapi/utils.py
tests/test_tutorial/test_openapi_webhooks/test_tutorial001.py
tests/test_webhooks_security.py

index 8ce77541144346451b32920850f67b47b9d1f2e7..162b68615a877b4eb9c6e060a179151f7e20e367 100644 (file)
@@ -43,7 +43,7 @@
     * โฎ๏ธ ๐Ÿ”ข ๐Ÿฆฒ ๐Ÿ’– Certbot ๐Ÿ“„ ๐Ÿ”•
 * โœณ
     * โฎ๏ธ ๐Ÿ”ข ๐Ÿฆฒ ๐Ÿ’– Certbot ๐Ÿ“„ ๐Ÿ”•
-* Kubernete โฎ๏ธ ๐Ÿšง ๐Ÿ•น ๐Ÿ’– ๐Ÿ‘Œ
+* Kubernetes โฎ๏ธ ๐Ÿšง ๐Ÿ•น ๐Ÿ’– ๐Ÿ‘Œ
     * โฎ๏ธ ๐Ÿ”ข ๐Ÿฆฒ ๐Ÿ’– ๐Ÿ›‚-๐Ÿ‘จโ€๐Ÿ’ผ ๐Ÿ“„ ๐Ÿ”•
 * ๐Ÿต ๐Ÿ”˜ โ˜ ๐Ÿ•โ€๐Ÿฆบ ๐Ÿ• ๐Ÿ‘ซ ๐Ÿ•โ€๐Ÿฆบ (โœ ๐Ÿ”› ๐Ÿ‘ถ)
 
 ๐Ÿ–ผ ๐Ÿงฐ ๐Ÿ‘ˆ ๐Ÿ’ช ๐Ÿ‘‰ ๐Ÿ‘จโ€๐Ÿญ:
 
 * โ˜
-* Kubernete
+* Kubernetes
 * โ˜ โœ
 * โ˜ ๐Ÿ ๐Ÿ“ณ
 * โœณ
 ๐Ÿ–ผ, ๐Ÿ‘‰ ๐Ÿ’ช ๐Ÿต:
 
 * โ˜
-* Kubernete
+* Kubernetes
 * โ˜ โœ
 * โ˜ ๐Ÿ ๐Ÿ“ณ
 * โœณ
     * ๐Ÿ ๐Ÿ”œ **๐Ÿ› ๏ธ ๐Ÿ‘จโ€๐Ÿ’ผ** ๐Ÿ‘‚ ๐Ÿ”› **๐Ÿ“ข** &amp; **โ›ด**, ๐Ÿงฌ ๐Ÿ”œ โœ”๏ธ **๐Ÿ’— Uvicorn ๐Ÿ‘จโ€๐Ÿญ ๐Ÿ› ๏ธ**
 * **Uvicorn** ๐Ÿ› ๏ธ **Uvicorn ๐Ÿ‘จโ€๐Ÿญ**
     * 1๏ธโƒฃ Uvicorn **๐Ÿ› ๏ธ ๐Ÿ‘จโ€๐Ÿ’ผ** ๐Ÿ”œ ๐Ÿ‘‚ ๐Ÿ”› **๐Ÿ“ข** &amp; **โ›ด**, &amp; โšซ๏ธ ๐Ÿ”œ โ–ถ๏ธ **๐Ÿ’— Uvicorn ๐Ÿ‘จโ€๐Ÿญ ๐Ÿ› ๏ธ**
-* **Kubernete** &amp; ๐ŸŽ ๐Ÿ“Ž **๐Ÿ“ฆ โš™๏ธ**
+* **Kubernetes** &amp; ๐ŸŽ ๐Ÿ“Ž **๐Ÿ“ฆ โš™๏ธ**
     * ๐Ÿ•ณ **โ˜** ๐Ÿงฝ ๐Ÿ”œ ๐Ÿ‘‚ ๐Ÿ”› **๐Ÿ“ข** &amp; **โ›ด**. ๐Ÿงฌ ๐Ÿ”œ โœ”๏ธ **๐Ÿ’— ๐Ÿ“ฆ**, ๐Ÿ”  โฎ๏ธ **1๏ธโƒฃ Uvicorn ๐Ÿ› ๏ธ** ๐Ÿƒโ€โ™‚
 * **โ˜ ๐Ÿ•โ€๐Ÿฆบ** ๐Ÿ‘ˆ ๐Ÿต ๐Ÿ‘‰ ๐Ÿ‘†
     * โ˜ ๐Ÿ•โ€๐Ÿฆบ ๐Ÿ”œ ๐ŸŽฒ **๐Ÿต ๐Ÿงฌ ๐Ÿ‘†**. โšซ๏ธ ๐Ÿ”œ ๐ŸŽฒ โžก๏ธ ๐Ÿ‘† ๐Ÿ”ฌ **๐Ÿ› ๏ธ ๐Ÿƒ**, โš–๏ธ **๐Ÿ“ฆ ๐Ÿ–ผ** โš™๏ธ, ๐Ÿ™† ๐Ÿ’ผ, โšซ๏ธ ๐Ÿ”œ ๐ŸŒ… ๐ŸŽฒ **๐Ÿ‘ Uvicorn ๐Ÿ› ๏ธ**, &amp; โ˜ ๐Ÿ•โ€๐Ÿฆบ ๐Ÿ”œ ๐Ÿˆš ๐Ÿ” โšซ๏ธ.
 
 !!! tip
-    ๐Ÿšซ ๐Ÿ˜Ÿ ๐Ÿšฅ ๐Ÿ‘ซ ๐Ÿฌ ๐Ÿ”ƒ **๐Ÿ“ฆ**, โ˜, โš–๏ธ Kubernete ๐Ÿšซ โš’ ๐Ÿ“š ๐Ÿ”‘.
+    ๐Ÿšซ ๐Ÿ˜Ÿ ๐Ÿšฅ ๐Ÿ‘ซ ๐Ÿฌ ๐Ÿ”ƒ **๐Ÿ“ฆ**, โ˜, โš–๏ธ Kubernetes ๐Ÿšซ โš’ ๐Ÿ“š ๐Ÿ”‘.
 
-    ๐Ÿ‘ค ๐Ÿ”œ ๐Ÿ’ฌ ๐Ÿ‘† ๐ŸŒ… ๐Ÿ”ƒ ๐Ÿ“ฆ ๐Ÿ–ผ, โ˜, Kubernete, โ™’๏ธ. ๐Ÿ”ฎ ๐Ÿ“ƒ: [FastAPI ๐Ÿ“ฆ - โ˜](./docker.md){.internal-link target=_blank}.
+    ๐Ÿ‘ค ๐Ÿ”œ ๐Ÿ’ฌ ๐Ÿ‘† ๐ŸŒ… ๐Ÿ”ƒ ๐Ÿ“ฆ ๐Ÿ–ผ, โ˜, Kubernetes, โ™’๏ธ. ๐Ÿ”ฎ ๐Ÿ“ƒ: [FastAPI ๐Ÿ“ฆ - โ˜](./docker.md){.internal-link target=_blank}.
 
 ## โฎ๏ธ ๐Ÿ” โญ โ–ถ๏ธ
 
 
 ๐Ÿ“ฅ ๐Ÿ’ช ๐Ÿ’ญ:
 
-*  "๐Ÿ•‘ ๐Ÿ“ฆ" Kubernete ๐Ÿ‘ˆ ๐Ÿƒ โญ ๐Ÿ‘† ๐Ÿ“ฑ ๐Ÿ“ฆ
+*  "๐Ÿ•‘ ๐Ÿ“ฆ" Kubernetes ๐Ÿ‘ˆ ๐Ÿƒ โญ ๐Ÿ‘† ๐Ÿ“ฑ ๐Ÿ“ฆ
 * ๐ŸŽ‰ โœ ๐Ÿ‘ˆ ๐Ÿƒ โฎ๏ธ ๐Ÿ” &amp; โคด๏ธ โ–ถ๏ธ ๐Ÿ‘† ๐Ÿˆธ
     * ๐Ÿ‘† ๐Ÿ”œ ๐Ÿ’ช ๐ŸŒŒ โ–ถ๏ธ/โ *๐Ÿ‘ˆ* ๐ŸŽ‰ โœ, ๐Ÿ” โŒ, โ™’๏ธ.
 
index 51ece5599e29be8063db3ad799e9ac5818cd50d3..f28735ed7194a4ef2841dc48ffd869e83ae38a08 100644 (file)
@@ -74,7 +74,7 @@ CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80"]
 
 , ๐Ÿ‘† ๐Ÿ”œ ๐Ÿƒ **๐Ÿ’— ๐Ÿ“ฆ** โฎ๏ธ ๐ŸŽ ๐Ÿ‘œ, ๐Ÿ’– ๐Ÿ’ฝ, ๐Ÿ ๐Ÿˆธ, ๐Ÿ•ธ ๐Ÿ’ฝ โฎ๏ธ ๐Ÿ˜ฅ ๐Ÿ•ธ ๐Ÿˆธ, &amp; ๐Ÿ”— ๐Ÿ‘ซ ๐Ÿ‘ฏโ€โ™‚๏ธ ๐Ÿ“จ ๐Ÿ‘ซ ๐Ÿ”— ๐Ÿ•ธ.
 
-๐ŸŒ ๐Ÿ“ฆ ๐Ÿงพ โš™๏ธ (๐Ÿ’– โ˜ โš–๏ธ Kubernete) โœ”๏ธ ๐Ÿ‘ซ ๐Ÿ•ธ โš’ ๐Ÿ› ๏ธ ๐Ÿ”˜ ๐Ÿ‘ซ.
+๐ŸŒ ๐Ÿ“ฆ ๐Ÿงพ โš™๏ธ (๐Ÿ’– โ˜ โš–๏ธ Kubernetes) โœ”๏ธ ๐Ÿ‘ซ ๐Ÿ•ธ โš’ ๐Ÿ› ๏ธ ๐Ÿ”˜ ๐Ÿ‘ซ.
 
 ## ๐Ÿ“ฆ &amp; ๐Ÿ› ๏ธ
 
@@ -96,7 +96,7 @@ CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80"]
 
 ๐Ÿ‘‰ โšซ๏ธโ” ๐Ÿ‘† ๐Ÿ”œ ๐Ÿ’š **๐Ÿ† ๐Ÿ’ผ**, ๐Ÿ–ผ:
 
-* โš™๏ธ **Kubernete** โš–๏ธ ๐ŸŽ ๐Ÿงฐ
+* โš™๏ธ **Kubernetes** โš–๏ธ ๐ŸŽ ๐Ÿงฐ
 * ๐Ÿ•โ” ๐Ÿƒโ€โ™‚ ๐Ÿ”› **๐Ÿ“ ๐Ÿ‘ฒ**
 * โš™๏ธ โ˜ ๐Ÿ•โ€๐Ÿฆบ ๐Ÿ‘ˆ ๐Ÿ”œ ๐Ÿƒ ๐Ÿ“ฆ ๐Ÿ–ผ ๐Ÿ‘†, โ™’๏ธ.
 
@@ -395,7 +395,7 @@ CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80"]
 โšซ๏ธ ๐Ÿ’ช โž•1๏ธโƒฃ ๐Ÿ“ฆ, ๐Ÿ–ผ โฎ๏ธ <a href="https://traefik.io/" class="external-link" target="_blank">Traefik</a>, ๐Ÿšš **๐Ÿ‡บ๐Ÿ‡ธ๐Ÿ”** &amp; **๐Ÿง** ๐Ÿ› ๏ธ **๐Ÿ“„**.
 
 !!! tip
-    Traefik โœ”๏ธ ๐Ÿ› ๏ธ โฎ๏ธ โ˜, Kubernete, &amp; ๐ŸŽ, โšซ๏ธ ๐Ÿ“ถ โฉ โš’ ๐Ÿ†™ &amp; ๐Ÿ”— ๐Ÿ‡บ๐Ÿ‡ธ๐Ÿ” ๐Ÿ‘† ๐Ÿ“ฆ โฎ๏ธ โšซ๏ธ.
+    Traefik โœ”๏ธ ๐Ÿ› ๏ธ โฎ๏ธ โ˜, Kubernetes, &amp; ๐ŸŽ, โšซ๏ธ ๐Ÿ“ถ โฉ โš’ ๐Ÿ†™ &amp; ๐Ÿ”— ๐Ÿ‡บ๐Ÿ‡ธ๐Ÿ” ๐Ÿ‘† ๐Ÿ“ฆ โฎ๏ธ โšซ๏ธ.
 
 ๐Ÿ‘, ๐Ÿ‡บ๐Ÿ‡ธ๐Ÿ” ๐Ÿ’ช ๐Ÿต โ˜ ๐Ÿ•โ€๐Ÿฆบ 1๏ธโƒฃ ๐Ÿ‘ซ ๐Ÿ•โ€๐Ÿฆบ (โช ๐Ÿƒ ๐Ÿˆธ ๐Ÿ“ฆ).
 
@@ -403,7 +403,7 @@ CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80"]
 
 ๐Ÿ“ค ๐Ÿ›Ž โž•1๏ธโƒฃ ๐Ÿงฐ ๐Ÿˆš **โ–ถ๏ธ &amp; ๐Ÿƒโ€โ™‚** ๐Ÿ‘† ๐Ÿ“ฆ.
 
-โšซ๏ธ ๐Ÿ’ช **โ˜** ๐Ÿ”—, **โ˜ โœ**, **Kubernete**, **โ˜ ๐Ÿ•โ€๐Ÿฆบ**, โ™’๏ธ.
+โšซ๏ธ ๐Ÿ’ช **โ˜** ๐Ÿ”—, **โ˜ โœ**, **Kubernetes**, **โ˜ ๐Ÿ•โ€๐Ÿฆบ**, โ™’๏ธ.
 
 ๐ŸŒ… (โš–๏ธ ๐ŸŒ) ๐Ÿ’ผ, ๐Ÿ“ค ๐Ÿ™… ๐ŸŽ› ๐Ÿ› ๏ธ ๐Ÿƒ ๐Ÿ“ฆ ๐Ÿ”› ๐Ÿ•ด &amp; ๐Ÿ› ๏ธ โ ๐Ÿ”› โŒ. ๐Ÿ–ผ, โ˜, โšซ๏ธ ๐Ÿ“‹ โธ ๐ŸŽ› `--restart`.
 
@@ -413,7 +413,7 @@ CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80"]
 
 ๐Ÿšฅ ๐Ÿ‘† โœ”๏ธ <abbr title="A group of machines that are configured to be connected and work together in some way.">๐ŸŒ‘</abbr> ๐ŸŽฐ โฎ๏ธ **โ˜**, โ˜ ๐Ÿ ๐Ÿ“ณ, ๐Ÿ––, โš–๏ธ โž•1๏ธโƒฃ ๐ŸŽ ๐Ÿ— โš™๏ธ ๐Ÿ› ๏ธ ๐Ÿ“Ž ๐Ÿ“ฆ ๐Ÿ”› ๐Ÿ’— ๐ŸŽฐ, โคด๏ธ ๐Ÿ‘† ๐Ÿ”œ ๐ŸŽฒ ๐Ÿ’š **๐Ÿต ๐Ÿงฌ** **๐ŸŒ‘ ๐ŸŽš** โ†ฉ๏ธ โš™๏ธ **๐Ÿ› ๏ธ ๐Ÿ‘จโ€๐Ÿ’ผ** (๐Ÿ’– ๐Ÿ โฎ๏ธ ๐Ÿ‘จโ€๐Ÿญ) ๐Ÿ”  ๐Ÿ“ฆ.
 
-1๏ธโƒฃ ๐Ÿ“š ๐Ÿ“Ž ๐Ÿ“ฆ ๐Ÿงพ โš™๏ธ ๐Ÿ’– Kubernete ๐Ÿ›Ž โœ”๏ธ ๐Ÿ› ๏ธ ๐ŸŒŒ ๐Ÿšš **๐Ÿงฌ ๐Ÿ“ฆ** โช ๐Ÿ”— **๐Ÿ“ โš–** ๐Ÿ“จ ๐Ÿ“จ. ๐ŸŒ **๐ŸŒ‘ ๐ŸŽš**.
+1๏ธโƒฃ ๐Ÿ“š ๐Ÿ“Ž ๐Ÿ“ฆ ๐Ÿงพ โš™๏ธ ๐Ÿ’– Kubernetes ๐Ÿ›Ž โœ”๏ธ ๐Ÿ› ๏ธ ๐ŸŒŒ ๐Ÿšš **๐Ÿงฌ ๐Ÿ“ฆ** โช ๐Ÿ”— **๐Ÿ“ โš–** ๐Ÿ“จ ๐Ÿ“จ. ๐ŸŒ **๐ŸŒ‘ ๐ŸŽš**.
 
 ๐Ÿ“š ๐Ÿ’ผ, ๐Ÿ‘† ๐Ÿ”œ ๐ŸŽฒ ๐Ÿ’š ๐Ÿ— **โ˜ ๐Ÿ–ผ โšช๏ธโžก๏ธ ๐Ÿ–Œ** [๐Ÿ”ฌ ๐Ÿ”›](#dockerfile), โŽ ๐Ÿ‘† ๐Ÿ”—, &amp; ๐Ÿƒโ€โ™‚ **๐Ÿ‘ Uvicorn ๐Ÿ› ๏ธ** โ†ฉ๏ธ ๐Ÿƒโ€โ™‚ ๐Ÿ•ณ ๐Ÿ’– ๐Ÿ โฎ๏ธ Uvicorn ๐Ÿ‘จโ€๐Ÿญ.
 
@@ -430,7 +430,7 @@ CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80"]
 
 ### 1๏ธโƒฃ ๐Ÿ“ โš™ - ๐Ÿ’— ๐Ÿ‘จโ€๐Ÿญ ๐Ÿ“ฆ
 
-๐Ÿ•โ” ๐Ÿ‘ท โฎ๏ธ **Kubernete** โš–๏ธ ๐ŸŽ ๐Ÿ“Ž ๐Ÿ“ฆ ๐Ÿงพ โš™๏ธ, โš™๏ธ ๐Ÿ‘ซ ๐Ÿ”— ๐Ÿ•ธ ๐Ÿ› ๏ธ ๐Ÿ”œ โœ” ๐Ÿ‘ **๐Ÿ“ โš™** ๐Ÿ‘ˆ ๐Ÿ‘‚ ๐Ÿ”› ๐Ÿ‘‘ **โ›ด** ๐Ÿ“ถ ๐Ÿ“ป (๐Ÿ“จ) ๐ŸŽฒ **๐Ÿ’— ๐Ÿ“ฆ** ๐Ÿƒ ๐Ÿ‘† ๐Ÿ“ฑ.
+๐Ÿ•โ” ๐Ÿ‘ท โฎ๏ธ **Kubernetes** โš–๏ธ ๐ŸŽ ๐Ÿ“Ž ๐Ÿ“ฆ ๐Ÿงพ โš™๏ธ, โš™๏ธ ๐Ÿ‘ซ ๐Ÿ”— ๐Ÿ•ธ ๐Ÿ› ๏ธ ๐Ÿ”œ โœ” ๐Ÿ‘ **๐Ÿ“ โš™** ๐Ÿ‘ˆ ๐Ÿ‘‚ ๐Ÿ”› ๐Ÿ‘‘ **โ›ด** ๐Ÿ“ถ ๐Ÿ“ป (๐Ÿ“จ) ๐ŸŽฒ **๐Ÿ’— ๐Ÿ“ฆ** ๐Ÿƒ ๐Ÿ‘† ๐Ÿ“ฑ.
 
 ๐Ÿ”  ๐Ÿ‘ซ ๐Ÿ“ฆ ๐Ÿƒโ€โ™‚ ๐Ÿ‘† ๐Ÿ“ฑ ๐Ÿ”œ ๐Ÿ›Ž โœ”๏ธ **1๏ธโƒฃ ๐Ÿ› ๏ธ** (โœ… Uvicorn ๐Ÿ› ๏ธ ๐Ÿƒ ๐Ÿ‘† FastAPI ๐Ÿˆธ). ๐Ÿ‘ซ ๐Ÿ”œ ๐ŸŒ **๐ŸŒ“ ๐Ÿ“ฆ**, ๐Ÿƒโ€โ™‚ ๐ŸŽ ๐Ÿ‘œ, โœ‹๏ธ ๐Ÿ”  โฎ๏ธ ๐Ÿšฎ ๐Ÿ‘ ๐Ÿ› ๏ธ, ๐Ÿ’พ, โ™’๏ธ. ๐Ÿ‘ˆ ๐ŸŒŒ ๐Ÿ‘† ๐Ÿ”œ โœŠ ๐Ÿ“ˆ **๐Ÿ› ๏ธ** **๐ŸŽ ๐Ÿš** ๐Ÿ’ฝ, โš–๏ธ **๐ŸŽ ๐ŸŽฐ**.
 
@@ -489,7 +489,7 @@ CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80"]
 
 ๐Ÿšฅ ๐Ÿ‘† ๐Ÿƒ **๐Ÿ‘ ๐Ÿ› ๏ธ ๐Ÿ“ ๐Ÿ“ฆ** ๐Ÿ‘† ๐Ÿ”œ โœ”๏ธ ๐ŸŒ… โš–๏ธ ๐ŸŒ˜ ๐Ÿ‘-๐Ÿ”ฌ, โš–, &amp; ๐Ÿ“‰ ๐Ÿ’ธ ๐Ÿ’พ ๐Ÿด ๐Ÿ”  ๐Ÿ‘ˆ ๐Ÿ“ฆ (๐ŸŒ… ๐ŸŒ˜ 1๏ธโƒฃ ๐Ÿšฅ ๐Ÿ‘ซ ๐Ÿ”).
 
-&amp; โคด๏ธ ๐Ÿ‘† ๐Ÿ’ช โš’ ๐Ÿ‘ˆ ๐ŸŽ ๐Ÿ’พ ๐Ÿ“‰ &amp; ๐Ÿ“„ ๐Ÿ‘† ๐Ÿ“ณ ๐Ÿ‘† ๐Ÿ“ฆ ๐Ÿงพ โš™๏ธ (๐Ÿ–ผ **Kubernete**). ๐Ÿ‘ˆ ๐ŸŒŒ โšซ๏ธ ๐Ÿ”œ ๐Ÿ’ช **๐Ÿ” ๐Ÿ“ฆ** **๐Ÿ’ช ๐ŸŽฐ** โœŠ ๐Ÿ”˜ ๐Ÿง ๐Ÿ’ธ ๐Ÿ’พ ๐Ÿ’ช ๐Ÿ‘ซ, &amp; ๐Ÿ’ธ ๐Ÿ’ช ๐ŸŽฐ ๐ŸŒ‘.
+&amp; โคด๏ธ ๐Ÿ‘† ๐Ÿ’ช โš’ ๐Ÿ‘ˆ ๐ŸŽ ๐Ÿ’พ ๐Ÿ“‰ &amp; ๐Ÿ“„ ๐Ÿ‘† ๐Ÿ“ณ ๐Ÿ‘† ๐Ÿ“ฆ ๐Ÿงพ โš™๏ธ (๐Ÿ–ผ **Kubernetes**). ๐Ÿ‘ˆ ๐ŸŒŒ โšซ๏ธ ๐Ÿ”œ ๐Ÿ’ช **๐Ÿ” ๐Ÿ“ฆ** **๐Ÿ’ช ๐ŸŽฐ** โœŠ ๐Ÿ”˜ ๐Ÿง ๐Ÿ’ธ ๐Ÿ’พ ๐Ÿ’ช ๐Ÿ‘ซ, &amp; ๐Ÿ’ธ ๐Ÿ’ช ๐ŸŽฐ ๐ŸŒ‘.
 
 ๐Ÿšฅ ๐Ÿ‘† ๐Ÿˆธ **๐Ÿ™…**, ๐Ÿ‘‰ ๐Ÿ”œ ๐ŸŽฒ **๐Ÿšซ โš **, &amp; ๐Ÿ‘† ๐Ÿ’ช ๐Ÿšซ ๐Ÿ’ช โœ” ๐Ÿ‹๏ธ ๐Ÿ’พ ๐Ÿ“‰. โœ‹๏ธ ๐Ÿšฅ ๐Ÿ‘† **โš™๏ธ ๐Ÿ“š ๐Ÿ’พ** (๐Ÿ–ผ โฎ๏ธ **๐ŸŽฐ ๐Ÿซ** ๐Ÿท), ๐Ÿ‘† ๐Ÿ”œ โœ… โ” ๐ŸŒ… ๐Ÿ’พ ๐Ÿ‘† ๐Ÿ˜ฉ &amp; ๐Ÿ”† **๐Ÿ”ข ๐Ÿ“ฆ** ๐Ÿ‘ˆ ๐Ÿƒ **๐Ÿ”  ๐ŸŽฐ** (&amp; ๐ŸŽฒ ๐Ÿšฎ ๐ŸŒ– ๐ŸŽฐ ๐Ÿ‘† ๐ŸŒ‘).
 
@@ -497,14 +497,14 @@ CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80"]
 
 ## โฎ๏ธ ๐Ÿ” โญ โ–ถ๏ธ &amp; ๐Ÿ“ฆ
 
-๐Ÿšฅ ๐Ÿ‘† โš™๏ธ ๐Ÿ“ฆ (โœ… โ˜, Kubernete), โคด๏ธ ๐Ÿ“ค 2๏ธโƒฃ ๐Ÿ‘‘ ๐ŸŽฏ ๐Ÿ‘† ๐Ÿ’ช โš™๏ธ.
+๐Ÿšฅ ๐Ÿ‘† โš™๏ธ ๐Ÿ“ฆ (โœ… โ˜, Kubernetes), โคด๏ธ ๐Ÿ“ค 2๏ธโƒฃ ๐Ÿ‘‘ ๐ŸŽฏ ๐Ÿ‘† ๐Ÿ’ช โš™๏ธ.
 
 ### ๐Ÿ’— ๐Ÿ“ฆ
 
-๐Ÿšฅ ๐Ÿ‘† โœ”๏ธ **๐Ÿ’— ๐Ÿ“ฆ**, ๐ŸŽฒ ๐Ÿ”  1๏ธโƒฃ ๐Ÿƒ **๐Ÿ‘ ๐Ÿ› ๏ธ** (๐Ÿ–ผ, **Kubernete** ๐ŸŒ‘), โคด๏ธ ๐Ÿ‘† ๐Ÿ”œ ๐ŸŽฒ ๐Ÿ’š โœ”๏ธ **๐ŸŽ ๐Ÿ“ฆ** ๐Ÿ”จ ๐Ÿ‘ท **โฎ๏ธ ๐Ÿ“ถ** ๐Ÿ‘ ๐Ÿ“ฆ, ๐Ÿƒ ๐Ÿ‘ ๐Ÿ› ๏ธ, **โญ** ๐Ÿƒ ๐Ÿ” ๐Ÿ‘จโ€๐Ÿญ ๐Ÿ“ฆ.
+๐Ÿšฅ ๐Ÿ‘† โœ”๏ธ **๐Ÿ’— ๐Ÿ“ฆ**, ๐ŸŽฒ ๐Ÿ”  1๏ธโƒฃ ๐Ÿƒ **๐Ÿ‘ ๐Ÿ› ๏ธ** (๐Ÿ–ผ, **Kubernetes** ๐ŸŒ‘), โคด๏ธ ๐Ÿ‘† ๐Ÿ”œ ๐ŸŽฒ ๐Ÿ’š โœ”๏ธ **๐ŸŽ ๐Ÿ“ฆ** ๐Ÿ”จ ๐Ÿ‘ท **โฎ๏ธ ๐Ÿ“ถ** ๐Ÿ‘ ๐Ÿ“ฆ, ๐Ÿƒ ๐Ÿ‘ ๐Ÿ› ๏ธ, **โญ** ๐Ÿƒ ๐Ÿ” ๐Ÿ‘จโ€๐Ÿญ ๐Ÿ“ฆ.
 
 !!! info
-    ๐Ÿšฅ ๐Ÿ‘† โš™๏ธ Kubernete, ๐Ÿ‘‰ ๐Ÿ”œ ๐ŸŽฒ <a href="https://kubernetes.io/docs/concepts/workloads/pods/init-containers/" class="external-link" target="_blank">๐Ÿ•‘ ๐Ÿ“ฆ</a>.
+    ๐Ÿšฅ ๐Ÿ‘† โš™๏ธ Kubernetes, ๐Ÿ‘‰ ๐Ÿ”œ ๐ŸŽฒ <a href="https://kubernetes.io/docs/concepts/workloads/pods/init-containers/" class="external-link" target="_blank">๐Ÿ•‘ ๐Ÿ“ฆ</a>.
 
 ๐Ÿšฅ ๐Ÿ‘† โš™๏ธ ๐Ÿ’ผ ๐Ÿ“ค ๐Ÿ™…โ€โ™‚ โš  ๐Ÿƒโ€โ™‚ ๐Ÿ‘ˆ โฎ๏ธ ๐Ÿ“ถ **๐Ÿ’— ๐Ÿ•ฐ ๐Ÿ”—** (๐Ÿ–ผ ๐Ÿšฅ ๐Ÿ‘† ๐Ÿšซ ๐Ÿƒ ๐Ÿ’ฝ ๐Ÿ› ๏ธ, โœ‹๏ธ โœ… ๐Ÿšฅ ๐Ÿ’ฝ ๐Ÿ”œ), โคด๏ธ ๐Ÿ‘† ๐Ÿ’ช ๐Ÿšฎ ๐Ÿ‘ซ ๐Ÿ”  ๐Ÿ“ฆ โ–ถ๏ธ๏ธ โญ โ–ถ๏ธ ๐Ÿ‘‘ ๐Ÿ› ๏ธ.
 
@@ -574,7 +574,7 @@ COPY ./app /app/app
 
 ### ๐Ÿ•โ” โš™๏ธ
 
-๐Ÿ‘† ๐Ÿ”œ ๐ŸŽฒ **๐Ÿšซ** โš™๏ธ ๐Ÿ‘‰ ๐Ÿ›‚ ๐Ÿงข ๐Ÿ–ผ (โš–๏ธ ๐Ÿ™† ๐ŸŽ ๐ŸŽ 1๏ธโƒฃ) ๐Ÿšฅ ๐Ÿ‘† โš™๏ธ **Kubernete** (โš–๏ธ ๐ŸŽ) &amp; ๐Ÿ‘† โช โš’ **๐Ÿงฌ** ๐ŸŒ‘ ๐ŸŽš, โฎ๏ธ ๐Ÿ’— **๐Ÿ“ฆ**. ๐Ÿ“š ๐Ÿ’ผ, ๐Ÿ‘† ๐Ÿ‘ ๐Ÿ“† **๐Ÿ— ๐Ÿ–ผ โšช๏ธโžก๏ธ ๐Ÿ–Œ** ๐Ÿ”ฌ ๐Ÿ”›: [๐Ÿ— โ˜ ๐Ÿ–ผ FastAPI](#build-a-docker-image-for-fastapi).
+๐Ÿ‘† ๐Ÿ”œ ๐ŸŽฒ **๐Ÿšซ** โš™๏ธ ๐Ÿ‘‰ ๐Ÿ›‚ ๐Ÿงข ๐Ÿ–ผ (โš–๏ธ ๐Ÿ™† ๐ŸŽ ๐ŸŽ 1๏ธโƒฃ) ๐Ÿšฅ ๐Ÿ‘† โš™๏ธ **Kubernetes** (โš–๏ธ ๐ŸŽ) &amp; ๐Ÿ‘† โช โš’ **๐Ÿงฌ** ๐ŸŒ‘ ๐ŸŽš, โฎ๏ธ ๐Ÿ’— **๐Ÿ“ฆ**. ๐Ÿ“š ๐Ÿ’ผ, ๐Ÿ‘† ๐Ÿ‘ ๐Ÿ“† **๐Ÿ— ๐Ÿ–ผ โšช๏ธโžก๏ธ ๐Ÿ–Œ** ๐Ÿ”ฌ ๐Ÿ”›: [๐Ÿ— โ˜ ๐Ÿ–ผ FastAPI](#build-a-docker-image-for-fastapi).
 
 ๐Ÿ‘‰ ๐Ÿ–ผ ๐Ÿ”œ โš  โœด๏ธ ๐ŸŽ ๐Ÿ’ผ ๐Ÿ”ฌ ๐Ÿ”› [๐Ÿ“ฆ โฎ๏ธ ๐Ÿ’— ๐Ÿ› ๏ธ &amp; ๐ŸŽ ๐Ÿ’ผ](#containers-with-multiple-processes-and-special-cases). ๐Ÿ–ผ, ๐Ÿšฅ ๐Ÿ‘† ๐Ÿˆธ **๐Ÿ™… ๐Ÿฅƒ** ๐Ÿ‘ˆ โš’ ๐Ÿ”ข ๐Ÿ”ข ๐Ÿ› ๏ธ โš“๏ธ ๐Ÿ”› ๐Ÿ’ฝ ๐Ÿ‘ท ๐Ÿ‘, ๐Ÿ‘† ๐Ÿšซ ๐Ÿ’š ๐Ÿ˜ฅ โฎ๏ธ โŽ ๐Ÿ› ๏ธ ๐Ÿงฌ ๐ŸŒ‘ ๐ŸŽš, &amp; ๐Ÿ‘† ๐Ÿšซ ๐Ÿƒ ๐ŸŒ… ๐ŸŒ˜ 1๏ธโƒฃ ๐Ÿ“ฆ โฎ๏ธ ๐Ÿ‘† ๐Ÿ“ฑ. โš–๏ธ ๐Ÿšฅ ๐Ÿ‘† ๐Ÿ› ๏ธ โฎ๏ธ **โ˜ โœ**, ๐Ÿƒ ๐Ÿ”› ๐Ÿ‘ ๐Ÿ’ฝ, โ™’๏ธ.
 
@@ -585,7 +585,7 @@ COPY ./app /app/app
 ๐Ÿ–ผ:
 
 * โฎ๏ธ **โ˜ โœ** ๐Ÿ‘ ๐Ÿ’ฝ
-* โฎ๏ธ **Kubernete** ๐ŸŒ‘
+* โฎ๏ธ **Kubernetes** ๐ŸŒ‘
 * โฎ๏ธ โ˜ ๐Ÿ ๐Ÿ“ณ ๐ŸŒ‘
 * โฎ๏ธ โž•1๏ธโƒฃ ๐Ÿงฐ ๐Ÿ’– ๐Ÿ––
 * โฎ๏ธ โ˜ ๐Ÿ•โ€๐Ÿฆบ ๐Ÿ‘ˆ โœŠ ๐Ÿ‘† ๐Ÿ“ฆ ๐Ÿ–ผ &amp; ๐Ÿ› ๏ธ โšซ๏ธ
@@ -682,7 +682,7 @@ CMD ["uvicorn", "app.main:app", "--proxy-headers", "--host", "0.0.0.0", "--port"
 
 ## ๐ŸŒƒ
 
-โš™๏ธ ๐Ÿ“ฆ โš™๏ธ (โœ… โฎ๏ธ **โ˜** &amp; **Kubernete**) โšซ๏ธ โ–ถ๏ธ๏ธ ๐Ÿ“ถ ๐ŸŽฏ ๐Ÿต ๐ŸŒ **๐Ÿ› ๏ธ ๐Ÿ”ง**:
+โš™๏ธ ๐Ÿ“ฆ โš™๏ธ (โœ… โฎ๏ธ **โ˜** &amp; **Kubernetes**) โšซ๏ธ โ–ถ๏ธ๏ธ ๐Ÿ“ถ ๐ŸŽฏ ๐Ÿต ๐ŸŒ **๐Ÿ› ๏ธ ๐Ÿ”ง**:
 
 * ๐Ÿ‡บ๐Ÿ‡ธ๐Ÿ”
 * ๐Ÿƒโ€โ™‚ ๐Ÿ”› ๐Ÿ•ด
index ca068d74479fe0e5d5ab5ef057ded5569d29f47f..b7e58c4f4714c0e3b3f3d6534849340f92f4e6ad 100644 (file)
@@ -18,9 +18,9 @@
 ๐Ÿ“ฅ ๐Ÿ‘ค ๐Ÿ”œ ๐ŸŽฆ ๐Ÿ‘† โ” โš™๏ธ <a href="https://gunicorn.org/" class="external-link" target="_blank">**๐Ÿ**</a> โฎ๏ธ **Uvicorn ๐Ÿ‘จโ€๐Ÿญ ๐Ÿ› ๏ธ**.
 
 !!! info
-    ๐Ÿšฅ ๐Ÿ‘† โš™๏ธ ๐Ÿ“ฆ, ๐Ÿ–ผ โฎ๏ธ โ˜ โš–๏ธ Kubernete, ๐Ÿ‘ค ๐Ÿ”œ ๐Ÿ’ฌ ๐Ÿ‘† ๐ŸŒ… ๐Ÿ”ƒ ๐Ÿ‘ˆ โญ ๐Ÿ“ƒ: [FastAPI ๐Ÿ“ฆ - โ˜](./docker.md){.internal-link target=_blank}.
+    ๐Ÿšฅ ๐Ÿ‘† โš™๏ธ ๐Ÿ“ฆ, ๐Ÿ–ผ โฎ๏ธ โ˜ โš–๏ธ Kubernetes, ๐Ÿ‘ค ๐Ÿ”œ ๐Ÿ’ฌ ๐Ÿ‘† ๐ŸŒ… ๐Ÿ”ƒ ๐Ÿ‘ˆ โญ ๐Ÿ“ƒ: [FastAPI ๐Ÿ“ฆ - โ˜](./docker.md){.internal-link target=_blank}.
 
-    ๐ŸŽฏ, ๐Ÿ•โ” ๐Ÿƒ ๐Ÿ”› **Kubernete** ๐Ÿ‘† ๐Ÿ”œ ๐ŸŽฒ **๐Ÿšซ** ๐Ÿ’š โš™๏ธ ๐Ÿ &amp; โ†ฉ๏ธ ๐Ÿƒ **๐Ÿ‘ Uvicorn ๐Ÿ› ๏ธ ๐Ÿ“ ๐Ÿ“ฆ**, โœ‹๏ธ ๐Ÿ‘ค ๐Ÿ”œ ๐Ÿ’ฌ ๐Ÿ‘† ๐Ÿ”ƒ โšซ๏ธ โช ๐Ÿ‘ˆ ๐Ÿ“ƒ.
+    ๐ŸŽฏ, ๐Ÿ•โ” ๐Ÿƒ ๐Ÿ”› **Kubernetes** ๐Ÿ‘† ๐Ÿ”œ ๐ŸŽฒ **๐Ÿšซ** ๐Ÿ’š โš™๏ธ ๐Ÿ &amp; โ†ฉ๏ธ ๐Ÿƒ **๐Ÿ‘ Uvicorn ๐Ÿ› ๏ธ ๐Ÿ“ ๐Ÿ“ฆ**, โœ‹๏ธ ๐Ÿ‘ค ๐Ÿ”œ ๐Ÿ’ฌ ๐Ÿ‘† ๐Ÿ”ƒ โšซ๏ธ โช ๐Ÿ‘ˆ ๐Ÿ“ƒ.
 
 ## ๐Ÿ โฎ๏ธ Uvicorn ๐Ÿ‘จโ€๐Ÿญ
 
@@ -167,7 +167,7 @@ $ uvicorn main:app --host 0.0.0.0 --port 8080 --workers 4
 
 ๐Ÿ‘ค ๐Ÿ”œ ๐ŸŽฆ ๐Ÿ‘† **๐Ÿ›‚ โ˜ ๐Ÿ–ผ** ๐Ÿ‘ˆ ๐Ÿ”Œ **๐Ÿ โฎ๏ธ Uvicorn ๐Ÿ‘จโ€๐Ÿญ** &amp; ๐Ÿ”ข ๐Ÿ“ณ ๐Ÿ‘ˆ ๐Ÿ’ช โš  ๐Ÿ™… ๐Ÿ’ผ.
 
-๐Ÿ“ค ๐Ÿ‘ค ๐Ÿ”œ ๐ŸŽฆ ๐Ÿ‘† โ” **๐Ÿ— ๐Ÿ‘† ๐Ÿ‘ ๐Ÿ–ผ โšช๏ธโžก๏ธ ๐Ÿ–Œ** ๐Ÿƒ ๐Ÿ‘ Uvicorn ๐Ÿ› ๏ธ (๐Ÿต ๐Ÿ). โšซ๏ธ ๐Ÿ™… ๐Ÿ› ๏ธ &amp; ๐ŸŽฒ โšซ๏ธโ” ๐Ÿ‘† ๐Ÿ”œ ๐Ÿ’š ๐Ÿ•โ” โš™๏ธ ๐Ÿ“Ž ๐Ÿ“ฆ ๐Ÿงพ โš™๏ธ ๐Ÿ’– **Kubernete**.
+๐Ÿ“ค ๐Ÿ‘ค ๐Ÿ”œ ๐ŸŽฆ ๐Ÿ‘† โ” **๐Ÿ— ๐Ÿ‘† ๐Ÿ‘ ๐Ÿ–ผ โšช๏ธโžก๏ธ ๐Ÿ–Œ** ๐Ÿƒ ๐Ÿ‘ Uvicorn ๐Ÿ› ๏ธ (๐Ÿต ๐Ÿ). โšซ๏ธ ๐Ÿ™… ๐Ÿ› ๏ธ &amp; ๐ŸŽฒ โšซ๏ธโ” ๐Ÿ‘† ๐Ÿ”œ ๐Ÿ’š ๐Ÿ•โ” โš™๏ธ ๐Ÿ“Ž ๐Ÿ“ฆ ๐Ÿงพ โš™๏ธ ๐Ÿ’– **Kubernetes**.
 
 ## ๐ŸŒƒ
 
@@ -175,4 +175,4 @@ $ uvicorn main:app --host 0.0.0.0 --port 8080 --workers 4
 
 ๐Ÿ‘† ๐Ÿ’ช โš™๏ธ ๐Ÿ‘‰ ๐Ÿงฐ &amp; ๐Ÿ’ญ ๐Ÿšฅ ๐Ÿ‘† โš’ ๐Ÿ†™ **๐Ÿ‘† ๐Ÿ‘ ๐Ÿ› ๏ธ โš™๏ธ** โช โœŠ ๐Ÿ’… ๐ŸŽ ๐Ÿ› ๏ธ ๐Ÿ”ง ๐Ÿ‘†.
 
-โœ… ๐Ÿ‘… โญ ๐Ÿ“ƒ ๐Ÿ’ก ๐Ÿ”ƒ **FastAPI** โฎ๏ธ ๐Ÿ“ฆ (โœ… โ˜ &amp; Kubernete). ๐Ÿ‘† ๐Ÿ”œ ๐Ÿ‘€ ๐Ÿ‘ˆ ๐Ÿ‘ˆ ๐Ÿงฐ โœ”๏ธ ๐Ÿ™… ๐ŸŒŒ โŽ ๐ŸŽ **๐Ÿ› ๏ธ ๐Ÿ”ง** ๐Ÿ‘. ๐Ÿ‘ถ
+โœ… ๐Ÿ‘… โญ ๐Ÿ“ƒ ๐Ÿ’ก ๐Ÿ”ƒ **FastAPI** โฎ๏ธ ๐Ÿ“ฆ (โœ… โ˜ &amp; Kubernetes). ๐Ÿ‘† ๐Ÿ”œ ๐Ÿ‘€ ๐Ÿ‘ˆ ๐Ÿ‘ˆ ๐Ÿงฐ โœ”๏ธ ๐Ÿ™… ๐ŸŒŒ โŽ ๐ŸŽ **๐Ÿ› ๏ธ ๐Ÿ”ง** ๐Ÿ‘. ๐Ÿ‘ถ
index 5fd667ad19bf2beb9a383cc81139e43f762af7ec..ae959e1d5c39da0523d32699ab530c2895e28450 100644 (file)
@@ -79,6 +79,6 @@
 * **๐ŸŒˆ** ๐Ÿ•œ ๐Ÿท ๐Ÿ› ๏ธ.
 * **โ˜ ๐Ÿง  ๐Ÿ”Ž** ๐Ÿ“จ ๐Ÿ“ ๐Ÿ—.
 * **๐Ÿญ ๐Ÿ”œ** ๐Ÿ ๐Ÿ•ธ ๐Ÿ’ฝ โš™๏ธ Uvicorn &amp; ๐Ÿ.
-* **โ˜ ๐Ÿ‘ฉโ€๐Ÿ’ป** Kubernete (๐Ÿฆฒ) ๐Ÿ†‘/๐Ÿ’ฟ ๐Ÿ› ๏ธ ๐Ÿ—.
+* **โ˜ ๐Ÿ‘ฉโ€๐Ÿ’ป** Kubernetes (๐Ÿฆฒ) ๐Ÿ†‘/๐Ÿ’ฟ ๐Ÿ› ๏ธ ๐Ÿ—.
 * **๐Ÿคธโ€โ™‚** ๐Ÿ’ช โš’ 1๏ธโƒฃ ๐ŸŒˆ ๐Ÿ— ๐Ÿ‡ช๐Ÿ‡ธ โฎ๏ธ ๐Ÿ— ๐Ÿ–ฅ.
 * **๐Ÿ’ช ๐Ÿง** ๐ŸŽ ๐Ÿท ๐Ÿ› ๏ธ (Pytorch, ๐Ÿ‡ธ๐Ÿ‡ฒ), ๐Ÿšซ ๐ŸŒˆ.
index bf2f2e714a78af4cce257a68437a065d93a842bc..b0ab7c6334a294889fbce523c3f970573346f854 100644 (file)
@@ -363,7 +363,7 @@ It will have the database connection open at the beginning and will just wait so
 
 This will easily let you test that your app with Peewee and FastAPI is behaving correctly with all the stuff about threads.
 
-If you want to check how Peewee would break your app if used without modification, go the the `sql_app/database.py` file and comment the line:
+If you want to check how Peewee would break your app if used without modification, go the `sql_app/database.py` file and comment the line:
 
 ```Python
 # db._state = PeeweeConnectionState()
index 5016f5b00fac339631c6f6e71166ab43b858084d..55822bb48f2ed428206d75ed246f78212aa75d87 100644 (file)
@@ -8,7 +8,7 @@ app = FastAPI()
 
 class Subscription(BaseModel):
     username: str
-    montly_fee: float
+    monthly_fee: float
     start_date: datetime
 
 
index 267d64ce8aee9eaf5462d9cbd47deca44cfdef28..53b47a160460d2bd1d27cf10b44626b56a4cf530 100644 (file)
@@ -117,7 +117,7 @@ def create_cloned_field(
     if PYDANTIC_V2:
         return field
     # cloned_types caches already cloned types to support recursive models and improve
-    # performance by avoiding unecessary cloning
+    # performance by avoiding unnecessary cloning
     if cloned_types is None:
         cloned_types = _CLONED_TYPES_CACHE
 
index 9111fdb2fed4858a174abacf95aa8658b5a1823b..dc67ec401d28b37b8dbf7adad96250cc327f8ee9 100644 (file)
@@ -85,7 +85,7 @@ def test_openapi_schema():
                 "Subscription": {
                     "properties": {
                         "username": {"type": "string", "title": "Username"},
-                        "montly_fee": {"type": "number", "title": "Montly Fee"},
+                        "monthly_fee": {"type": "number", "title": "Monthly Fee"},
                         "start_date": {
                             "type": "string",
                             "format": "date-time",
@@ -93,7 +93,7 @@ def test_openapi_schema():
                         },
                     },
                     "type": "object",
-                    "required": ["username", "montly_fee", "start_date"],
+                    "required": ["username", "monthly_fee", "start_date"],
                     "title": "Subscription",
                 },
                 "ValidationError": {
index a1c7b18fb8e1c851cee33e31333d6ebb9c424513..21a694cb5420fce696d7e430196517e380dbb08b 100644 (file)
@@ -13,7 +13,7 @@ bearer_scheme = HTTPBearer()
 
 class Subscription(BaseModel):
     username: str
-    montly_fee: float
+    monthly_fee: float
     start_date: datetime
 
 
@@ -93,7 +93,7 @@ def test_openapi_schema():
                 "Subscription": {
                     "properties": {
                         "username": {"type": "string", "title": "Username"},
-                        "montly_fee": {"type": "number", "title": "Montly Fee"},
+                        "monthly_fee": {"type": "number", "title": "Monthly Fee"},
                         "start_date": {
                             "type": "string",
                             "format": "date-time",
@@ -101,7 +101,7 @@ def test_openapi_schema():
                         },
                     },
                     "type": "object",
-                    "required": ["username", "montly_fee", "start_date"],
+                    "required": ["username", "monthly_fee", "start_date"],
                     "title": "Subscription",
                 },
                 "ValidationError": {