# โš’ ## FastAPI โš’ **FastAPI** ๐Ÿค ๐Ÿ‘† ๐Ÿ“„: ### โš“๏ธ ๐Ÿ”› ๐Ÿ“‚ ๐Ÿฉ * ๐Ÿ—„ ๐Ÿ› ๏ธ ๐Ÿ—, โœ… ๐Ÿ“„ โžก ๐Ÿ› ๏ธ, ๐Ÿ”ข, ๐Ÿ’ช ๐Ÿ“จ, ๐Ÿ’‚โ€โ™‚, โ™’๏ธ. * ๐Ÿง ๐Ÿ“Š ๐Ÿท ๐Ÿงพ โฎ๏ธ ๐ŸŽป ๐Ÿ”— (๐Ÿ—„ โšซ๏ธ ๐Ÿงข ๐Ÿ”› ๐ŸŽป ๐Ÿ”—). * ๐Ÿ”ง ๐Ÿคญ ๐Ÿ‘ซ ๐Ÿฉ, โฎ๏ธ ๐Ÿ˜” ๐Ÿ”ฌ. โ†ฉ๏ธ ๐Ÿ‘Ž ๐Ÿงฝ ๐Ÿ”› ๐Ÿ”. * ๐Ÿ‘‰ โœ” โš™๏ธ ๐Ÿง **๐Ÿ‘ฉโ€๐Ÿ’ป ๐Ÿ“Ÿ โšก** ๐Ÿ“š ๐Ÿ‡ช๐Ÿ‡ธ. ### ๐Ÿง ๐Ÿฉบ ๐ŸŽ“ ๐Ÿ› ๏ธ ๐Ÿงพ & ๐Ÿ”ฌ ๐Ÿ•ธ ๐Ÿ‘ฉโ€๐Ÿ’ป ๐Ÿ”ข. ๐Ÿ› ๏ธ โš“๏ธ ๐Ÿ”› ๐Ÿ—„, ๐Ÿ“ค ๐Ÿ’— ๐ŸŽ›, 2๏ธโƒฃ ๐Ÿ”Œ ๐Ÿ”ข. * ๐Ÿฆ ๐ŸŽš, โฎ๏ธ ๐ŸŽ“ ๐Ÿ”ฌ, ๐Ÿค™ & ๐Ÿ’ฏ ๐Ÿ‘† ๐Ÿ› ๏ธ ๐Ÿ”— โšช๏ธโžก๏ธ ๐Ÿ–ฅ. ![Swagger UI interaction](https://fastapi.tiangolo.com/img/index/index-03-swagger-02.png) * ๐ŸŽ› ๐Ÿ› ๏ธ ๐Ÿงพ โฎ๏ธ ๐Ÿ“„. ![ReDoc](https://fastapi.tiangolo.com/img/index/index-06-redoc-02.png) ### ๐Ÿ› ๐Ÿ โšซ๏ธ ๐ŸŒ โš“๏ธ ๐Ÿ”› ๐Ÿฉ **๐Ÿ 3๏ธโƒฃ.6๏ธโƒฃ ๐Ÿ†Ž** ๐Ÿ“„ (๐Ÿ‘ Pydantic). ๐Ÿ™…โ€โ™‚ ๐Ÿ†• โ• ๐Ÿ’ก. ๐Ÿฉ ๐Ÿ› ๐Ÿ. ๐Ÿšฅ ๐Ÿ‘† ๐Ÿ’ช 2๏ธโƒฃ โฒ โ†—๏ธ โ” โš™๏ธ ๐Ÿ ๐Ÿ†Ž (๐Ÿšฅ ๐Ÿ‘† ๐Ÿšซ โš™๏ธ FastAPI), โœ… ๐Ÿ“ ๐Ÿ”ฐ: [๐Ÿ ๐Ÿ†Ž](python-types.md){.internal-link target=_blank}. ๐Ÿ‘† โœ ๐Ÿฉ ๐Ÿ โฎ๏ธ ๐Ÿ†Ž: ```Python from datetime import date from pydantic import BaseModel # Declare a variable as a str # and get editor support inside the function def main(user_id: str): return user_id # A Pydantic model class User(BaseModel): id: int name: str joined: date ``` ๐Ÿ‘ˆ ๐Ÿ’ช โคด๏ธ โš™๏ธ ๐Ÿ’–: ```Python my_user: User = User(id=3, name="John Doe", joined="2018-07-19") second_user_data = { "id": 4, "name": "Mary", "joined": "2018-11-30", } my_second_user: User = User(**second_user_data) ``` /// info `**second_user_data` โ›“: ๐Ÿšถโ€โ™€๏ธ ๐Ÿ”‘ & ๐Ÿ’ฒ `second_user_data` #๏ธโƒฃ ๐Ÿ”— ๐Ÿ”‘-๐Ÿ’ฒ โŒ, ๐ŸŒ“: `User(id=4, name="Mary", joined="2018-11-30")` /// ### ๐Ÿ‘จโ€๐ŸŽจ ๐Ÿ•โ€๐Ÿฆบ ๐ŸŒ ๐Ÿ› ๏ธ ๐Ÿ— โฉ & ๐Ÿ‹๏ธ โš™๏ธ, ๐ŸŒ ๐Ÿšซ ๐Ÿ’ฏ ๐Ÿ”› ๐Ÿ’— ๐Ÿ‘จโ€๐ŸŽจ โญ โ–ถ๏ธ ๐Ÿ› ๏ธ, ๐Ÿšš ๐Ÿ† ๐Ÿ› ๏ธ ๐Ÿ’ก. ๐Ÿ ๐Ÿ ๐Ÿ‘ฉโ€๐Ÿ’ป ๐Ÿ”ฌ โšซ๏ธ ๐Ÿ†‘ ๐Ÿ‘ˆ ๐ŸŒ… โš™๏ธ โš’ "โœ". ๐ŸŽ‚ **FastAPI** ๐Ÿ› ๏ธ โš“๏ธ ๐Ÿ˜Œ ๐Ÿ‘ˆ. โœ ๐Ÿ‘ท ๐ŸŒ. ๐Ÿ‘† ๐Ÿ”œ ๐Ÿ›Ž ๐Ÿ’ช ๐Ÿ‘Ÿ ๐Ÿ”™ ๐Ÿฉบ. ๐Ÿ“ฅ โ” ๐Ÿ‘† ๐Ÿ‘จโ€๐ŸŽจ ๐Ÿ’ช โ„น ๐Ÿ‘†: * ๐ŸŽ™ ๐ŸŽ™ ๐Ÿ“Ÿ: ![editor support](https://fastapi.tiangolo.com/img/vscode-completion.png) * ๐Ÿ—’: ![editor support](https://fastapi.tiangolo.com/img/pycharm-completion.png) ๐Ÿ‘† ๐Ÿ”œ ๐Ÿคš ๐Ÿ› ๏ธ ๐Ÿ“Ÿ ๐Ÿ‘† 5๏ธโƒฃ๐Ÿ“† ๐Ÿค” ๐Ÿ’ช โญ. ๐Ÿ–ผ, `price` ๐Ÿ”‘ ๐Ÿ”˜ ๐ŸŽป ๐Ÿ’ช (๐Ÿ‘ˆ ๐Ÿ’ช โœ”๏ธ ๐Ÿฆ) ๐Ÿ‘ˆ ๐Ÿ‘Ÿ โšช๏ธโžก๏ธ ๐Ÿ“จ. ๐Ÿ™…โ€โ™‚ ๐ŸŒ– โŒจ โŒ ๐Ÿ”‘ ๐Ÿ“›, ๐Ÿ‘Ÿ ๐Ÿ”™ & โžก ๐Ÿ–– ๐Ÿฉบ, โš–๏ธ ๐Ÿ“œ ๐Ÿ†™ & ๐Ÿ”ฝ ๐Ÿ”Ž ๐Ÿšฅ ๐Ÿ‘† ๐Ÿ˜’ โš™๏ธ `username` โš–๏ธ `user_name`. ### ๐Ÿ“ โšซ๏ธ โœ”๏ธ ๐Ÿค” **๐Ÿ”ข** ๐ŸŒ, โฎ๏ธ ๐Ÿ“ฆ ๐Ÿ“ณ ๐ŸŒ. ๐ŸŒ ๐Ÿ”ข ๐Ÿ’ช ๐Ÿ‘Œ-๐ŸŽง โšซ๏ธโ” ๐Ÿ‘† ๐Ÿ’ช & ๐Ÿ”ฌ ๐Ÿ› ๏ธ ๐Ÿ‘† ๐Ÿ’ช. โœ‹๏ธ ๐Ÿ”ข, โšซ๏ธ ๐ŸŒ **"๐Ÿ‘ท"**. ### ๐Ÿ”ฌ * ๐Ÿ”ฌ ๐ŸŒ… (โš–๏ธ ๐ŸŒ โ“) ๐Ÿ **๐Ÿ’ฝ ๐Ÿ†Ž**, ๐Ÿ”Œ: * ๐ŸŽป ๐ŸŽš (`dict`). * ๐ŸŽป ๐ŸŽป (`list`) โš– ๐Ÿฌ ๐Ÿ†Ž. * ๐ŸŽป (`str`) ๐Ÿ‘, ๐Ÿ”ฌ ๐Ÿ•™ & ๐Ÿ‘Ÿ ๐Ÿ“. * ๐Ÿ”ข (`int`, `float`) โฎ๏ธ ๐Ÿ•™ & ๐Ÿ‘Ÿ ๐Ÿ’ฒ, โ™’๏ธ. * ๐Ÿ”ฌ ๐ŸŒ… ๐Ÿ˜ ๐Ÿ†Ž, ๐Ÿ’–: * ๐Ÿ“›. * ๐Ÿ“ง. * ๐Ÿ†”. * ...& ๐ŸŽ. ๐ŸŒ ๐Ÿ”ฌ ๐Ÿต ๐Ÿ‘-๐Ÿ› & ๐Ÿ‹๏ธ **Pydantic**. ### ๐Ÿ’‚โ€โ™‚ & ๐Ÿค ๐Ÿ’‚โ€โ™‚ & ๐Ÿค ๐Ÿ› ๏ธ. ๐Ÿต ๐Ÿ™† โš  โฎ๏ธ ๐Ÿ’ฝ โš–๏ธ ๐Ÿ“Š ๐Ÿท. ๐ŸŒ ๐Ÿ’‚โ€โ™‚ โš– ๐Ÿ”ฌ ๐Ÿ—„, ๐Ÿ”Œ: * ๐Ÿ‡บ๐Ÿ‡ธ๐Ÿ” ๐Ÿ”ฐ. * **Oauth2๏ธโƒฃ** (โฎ๏ธ **๐Ÿฅ™ ๐Ÿค**). โœ… ๐Ÿ”ฐ ๐Ÿ”› [Oauth2๏ธโƒฃ โฎ๏ธ ๐Ÿฅ™](tutorial/security/oauth2-jwt.md){.internal-link target=_blank}. * ๐Ÿ› ๏ธ ๐Ÿ”‘: * ๐ŸŽš. * ๐Ÿ”ข ๐Ÿ”ข. * ๐Ÿช, โ™’๏ธ. โž• ๐ŸŒ ๐Ÿ’‚โ€โ™‚ โš’ โšช๏ธโžก๏ธ ๐Ÿ’ƒ (๐Ÿ”Œ **๐ŸŽ‰ ๐Ÿช**). ๐ŸŒ ๐Ÿ— โ™ป ๐Ÿงฐ & ๐Ÿฆฒ ๐Ÿ‘ˆ โฉ ๐Ÿ› ๏ธ โฎ๏ธ ๐Ÿ‘† โš™๏ธ, ๐Ÿ“Š ๐Ÿช, ๐Ÿ”— & โ˜ ๐Ÿ’ฝ, โ™’๏ธ. ### ๐Ÿ”— ๐Ÿ’‰ FastAPI ๐Ÿ”Œ ๐Ÿ“ถ โฉ โš™๏ธ, โœ‹๏ธ ๐Ÿ“ถ ๐Ÿ‹๏ธ ๐Ÿ”— ๐Ÿ’‰ โš™๏ธ. * ๐Ÿ”— ๐Ÿ’ช โœ”๏ธ ๐Ÿ”—, ๐Ÿ— ๐Ÿ”— โš–๏ธ **"๐Ÿ“Š" ๐Ÿ”—**. * ๐ŸŒ **๐Ÿ” ๐Ÿต** ๐Ÿ› ๏ธ. * ๐ŸŒ ๐Ÿ”— ๐Ÿ’ช ๐Ÿšš ๐Ÿ’ฝ โšช๏ธโžก๏ธ ๐Ÿ“จ & **โ†” โžก ๐Ÿ› ๏ธ** โš› & ๐Ÿง ๐Ÿงพ. * **๐Ÿง ๐Ÿ”ฌ** *โžก ๐Ÿ› ๏ธ* ๐Ÿ”ข ๐Ÿ”ฌ ๐Ÿ”—. * ๐Ÿ•โ€๐Ÿฆบ ๐Ÿ— ๐Ÿ‘ฉโ€๐Ÿ’ป ๐Ÿค โš™๏ธ, **๐Ÿ’ฝ ๐Ÿ”—**, โ™’๏ธ. * **๐Ÿ™…โ€โ™‚ โš ** โฎ๏ธ ๐Ÿ’ฝ, ๐Ÿ•ธ, โ™’๏ธ. โœ‹๏ธ โฉ ๐Ÿ› ๏ธ โฎ๏ธ ๐ŸŒ ๐Ÿ‘ซ. ### โ™พ "๐Ÿ”Œ-๐Ÿ”Œ" โš–๏ธ ๐ŸŽ ๐ŸŒŒ, ๐Ÿ™…โ€โ™‚ ๐Ÿ’ช ๐Ÿ‘ซ, ๐Ÿ—„ & โš™๏ธ ๐Ÿ“Ÿ ๐Ÿ‘† ๐Ÿ’ช. ๐Ÿ™† ๐Ÿ› ๏ธ ๐Ÿ— ๐Ÿ™… โš™๏ธ (โฎ๏ธ ๐Ÿ”—) ๐Ÿ‘ˆ ๐Ÿ‘† ๐Ÿ’ช โœ "๐Ÿ”Œ-" ๐Ÿ‘† ๐Ÿˆธ 2๏ธโƒฃ โธ ๐Ÿ“Ÿ โš™๏ธ ๐ŸŽ ๐Ÿ“Š & โ• โš™๏ธ ๐Ÿ‘† *โžก ๐Ÿ› ๏ธ*. ### ๐Ÿ’ฏ * 1๏ธโƒฃ0๏ธโƒฃ0๏ธโƒฃ ๐Ÿ’ฏ ๐Ÿ’ฏ ๐Ÿ’ฐ. * 1๏ธโƒฃ0๏ธโƒฃ0๏ธโƒฃ ๐Ÿ’ฏ ๐Ÿ†Ž โœ ๐Ÿ“Ÿ ๐Ÿงข. * โš™๏ธ ๐Ÿญ ๐Ÿˆธ. ## ๐Ÿ’ƒ โš’ **FastAPI** ๐Ÿ• ๐Ÿ”— โฎ๏ธ (& โš“๏ธ ๐Ÿ”›) ๐Ÿ’ƒ. , ๐Ÿ™† ๐ŸŒ– ๐Ÿ’ƒ ๐Ÿ“Ÿ ๐Ÿ‘† โœ”๏ธ, ๐Ÿ”œ ๐Ÿ‘ท. `FastAPI` ๐Ÿค™ ๐ŸŽง-๐ŸŽ“ `Starlette`. , ๐Ÿšฅ ๐Ÿ‘† โช ๐Ÿ’ญ โš–๏ธ โš™๏ธ ๐Ÿ’ƒ, ๐ŸŒ… ๐Ÿ› ๏ธ ๐Ÿ”œ ๐Ÿ‘ท ๐ŸŽ ๐ŸŒŒ. โฎ๏ธ **FastAPI** ๐Ÿ‘† ๐Ÿคš ๐ŸŒ **๐Ÿ’ƒ**'โ“‚ โš’ (FastAPI ๐Ÿ’ƒ ๐Ÿ”› ๐Ÿ’Š): * ๐Ÿค™ ๐ŸŽ† ๐ŸŽญ. โšซ๏ธ 1๏ธโƒฃ โฉ ๐Ÿ ๐Ÿ› ๏ธ ๐Ÿ’ช, ๐Ÿ”› ๐Ÿ‡ท๐Ÿ‡ช โฎ๏ธ **โœณ** & **๐Ÿšถ**. * ** *๏ธโƒฃ ** ๐Ÿ•โ€๐Ÿฆบ. * -๐Ÿ› ๏ธ ๐Ÿ–ฅ ๐Ÿ“‹. * ๐Ÿ•ด & ๐Ÿคซ ๐ŸŽ‰. * ๐Ÿ’ฏ ๐Ÿ‘ฉโ€๐Ÿ’ป ๐Ÿ— ๐Ÿ”› ๐Ÿ‡ธ๐Ÿ‡ฒ. * **โšœ**, ๐Ÿ—œ, ๐ŸŽป ๐Ÿ“, ๐ŸŽ ๐Ÿ“จ. * **๐ŸŽ‰ & ๐Ÿช** ๐Ÿ•โ€๐Ÿฆบ. * 1๏ธโƒฃ0๏ธโƒฃ0๏ธโƒฃ ๐Ÿ’ฏ ๐Ÿ’ฏ ๐Ÿ’ฐ. * 1๏ธโƒฃ0๏ธโƒฃ0๏ธโƒฃ ๐Ÿ’ฏ ๐Ÿ†Ž โœ โœ. ## Pydantic โš’ **FastAPI** ๐Ÿ• ๐Ÿ”— โฎ๏ธ (& โš“๏ธ ๐Ÿ”›) Pydantic. , ๐Ÿ™† ๐ŸŒ– Pydantic ๐Ÿ“Ÿ ๐Ÿ‘† โœ”๏ธ, ๐Ÿ”œ ๐Ÿ‘ท. โœ… ๐Ÿ”ข ๐Ÿ—ƒ โš“๏ธ ๐Ÿ”› Pydantic, ๐Ÿœโ“‚, ๐Ÿญโ“‚ ๐Ÿ’ฝ. ๐Ÿ‘‰ โ›“ ๐Ÿ‘ˆ ๐Ÿ“š ๐Ÿ’ผ ๐Ÿ‘† ๐Ÿ’ช ๐Ÿšถโ€โ™€๏ธ ๐ŸŽ ๐ŸŽš ๐Ÿ‘† ๐Ÿคš โšช๏ธโžก๏ธ ๐Ÿ“จ **๐Ÿ”— ๐Ÿ’ฝ**, ๐ŸŒ โœ” ๐Ÿ”. ๐ŸŽ โœ” ๐ŸŽ ๐ŸŒŒ ๐Ÿคญ, ๐Ÿ“š ๐Ÿ’ผ ๐Ÿ‘† ๐Ÿ’ช ๐Ÿšถโ€โ™€๏ธ ๐ŸŽš ๐Ÿ‘† ๐Ÿคš โšช๏ธโžก๏ธ ๐Ÿ’ฝ **๐Ÿ”— ๐Ÿ‘ฉโ€๐Ÿ’ป**. โฎ๏ธ **FastAPI** ๐Ÿ‘† ๐Ÿคš ๐ŸŒ **Pydantic**'โ“‚ โš’ (FastAPI โš“๏ธ ๐Ÿ”› Pydantic ๐ŸŒ ๐Ÿ’ฝ ๐Ÿšš): * **๐Ÿ™…โ€โ™‚ ๐Ÿ” **: * ๐Ÿ™…โ€โ™‚ ๐Ÿ†• ๐Ÿ”— ๐Ÿ”‘ โ—พ-๐Ÿ‡ช๐Ÿ‡ธ ๐Ÿ’ก. * ๐Ÿšฅ ๐Ÿ‘† ๐Ÿ’ญ ๐Ÿ ๐Ÿ†Ž ๐Ÿ‘† ๐Ÿ’ญ โ” โš™๏ธ Pydantic. * ๐Ÿคพ ๐ŸŽ† โฎ๏ธ ๐Ÿ‘† **๐Ÿ’พ/๐Ÿงถ/๐Ÿง **: * โ†ฉ๏ธ Pydantic ๐Ÿ“Š ๐Ÿ“Š ๐Ÿ‘ ๐ŸŽ“ ๐Ÿ‘† ๐Ÿ”ฌ; ๐Ÿš˜-๐Ÿ› ๏ธ, ๐Ÿงฝ, โœ & ๐Ÿ‘† ๐Ÿค” ๐Ÿ”œ ๐ŸŒ ๐Ÿ‘ท โ˜‘ โฎ๏ธ ๐Ÿ‘† โœ” ๐Ÿ’ฝ. * โœ” **๐Ÿ— ๐Ÿ“Š**: * โš™๏ธ ๐Ÿ”— Pydantic ๐Ÿท, ๐Ÿ `typing`'โ“‚ `List` & `Dict`, โ™’๏ธ. * & ๐Ÿ’ณ โœ” ๐Ÿ— ๐Ÿ’ฝ ๐Ÿ”— ๐ŸŽฏ & ๐Ÿ’ช ๐Ÿ”ฌ, โœ… & ๐Ÿ“„ ๐ŸŽป ๐Ÿ”—. * ๐Ÿ‘† ๐Ÿ’ช โœ”๏ธ ๐Ÿ™‡ **๐Ÿฆ ๐ŸŽป** ๐ŸŽš & โœ”๏ธ ๐Ÿ‘ซ ๐ŸŒ โœ” & โœ. * **๐Ÿง**: * Pydantic โœ” ๐Ÿ›ƒ ๐Ÿ“Š ๐Ÿ†Ž ๐Ÿ”ฌ โš–๏ธ ๐Ÿ‘† ๐Ÿ’ช โ†” ๐Ÿ”ฌ โฎ๏ธ ๐Ÿ‘ฉโ€๐Ÿ”ฌ ๐Ÿ”› ๐Ÿท ๐ŸŽ€ โฎ๏ธ ๐Ÿ’ณ ๐Ÿ‘จโ€๐ŸŽจ. * 1๏ธโƒฃ0๏ธโƒฃ0๏ธโƒฃ ๐Ÿ’ฏ ๐Ÿ’ฏ ๐Ÿ’ฐ.