From 93fa0185798004cee1e5e7329c2adfc71a2d9895 Mon Sep 17 00:00:00 2001 From: davidkadaria Date: Sun, 21 Jul 2024 22:53:22 +0400 Subject: [PATCH 01/27] Initialize translation --- docs/en/mkdocs.yml | 2 + docs/ka/docs/index.md | 502 ++++++++++++++++++++++++++++++++++++++++++ docs/ka/mkdocs.yml | 1 + 3 files changed, 505 insertions(+) create mode 100644 docs/ka/docs/index.md create mode 100644 docs/ka/mkdocs.yml diff --git a/docs/en/mkdocs.yml b/docs/en/mkdocs.yml index 05dffb706..44e93b4a2 100644 --- a/docs/en/mkdocs.yml +++ b/docs/en/mkdocs.yml @@ -295,6 +295,8 @@ extra: name: it - italiano - link: /ja/ name: ja - 日本語 + - link: /ka/ + name: ka - ქართული - link: /ko/ name: ko - 한국어 - link: /pl/ diff --git a/docs/ka/docs/index.md b/docs/ka/docs/index.md new file mode 100644 index 000000000..55d9a41a1 --- /dev/null +++ b/docs/ka/docs/index.md @@ -0,0 +1,502 @@ + +{!../../../docs/missing-translation.md!} + + +--- +hide: + - navigation +--- + + + +

+ FastAPI +

+

+ FastAPI framework, high performance, easy to learn, fast to code, ready for production +

+

+ + Test + + + Coverage + + + Package version + + + Supported Python versions + +

+ +--- + +**Documentation**: https://fastapi.tiangolo.com + +**Source Code**: https://github.com/tiangolo/fastapi + +--- + +FastAPI is a modern, fast (high-performance), web framework for building APIs with Python based on standard Python type hints. + +The key features are: + +* **Fast**: Very high performance, on par with **NodeJS** and **Go** (thanks to Starlette and Pydantic). [One of the fastest Python frameworks available](#performance). +* **Fast to code**: Increase the speed to develop features by about 200% to 300%. * +* **Fewer bugs**: Reduce about 40% of human (developer) induced errors. * +* **Intuitive**: Great editor support. Completion everywhere. Less time debugging. +* **Easy**: Designed to be easy to use and learn. Less time reading docs. +* **Short**: Minimize code duplication. Multiple features from each parameter declaration. Fewer bugs. +* **Robust**: Get production-ready code. With automatic interactive documentation. +* **Standards-based**: Based on (and fully compatible with) the open standards for APIs: OpenAPI (previously known as Swagger) and JSON Schema. + +* estimation based on tests on an internal development team, building production applications. + +## Sponsors + + + +{% if sponsors %} +{% for sponsor in sponsors.gold -%} + +{% endfor -%} +{%- for sponsor in sponsors.silver -%} + +{% endfor %} +{% endif %} + + + +Other sponsors + +## Opinions + +"_[...] I'm using **FastAPI** a ton these days. [...] I'm actually planning to use it for all of my team's **ML services at Microsoft**. Some of them are getting integrated into the core **Windows** product and some **Office** products._" + +
Kabir Khan - Microsoft (ref)
+ +--- + +"_We adopted the **FastAPI** library to spawn a **REST** server that can be queried to obtain **predictions**. [for Ludwig]_" + +
Piero Molino, Yaroslav Dudin, and Sai Sumanth Miryala - Uber (ref)
+ +--- + +"_**Netflix** is pleased to announce the open-source release of our **crisis management** orchestration framework: **Dispatch**! [built with **FastAPI**]_" + +
Kevin Glisson, Marc Vilanova, Forest Monsen - Netflix (ref)
+ +--- + +"_I’m over the moon excited about **FastAPI**. It’s so fun!_" + +
Brian Okken - Python Bytes podcast host (ref)
+ +--- + +"_Honestly, what you've built looks super solid and polished. In many ways, it's what I wanted **Hug** to be - it's really inspiring to see someone build that._" + +
Timothy Crosley - Hug creator (ref)
+ +--- + +"_If you're looking to learn one **modern framework** for building REST APIs, check out **FastAPI** [...] It's fast, easy to use and easy to learn [...]_" + +"_We've switched over to **FastAPI** for our **APIs** [...] I think you'll like it [...]_" + +
Ines Montani - Matthew Honnibal - Explosion AI founders - spaCy creators (ref) - (ref)
+ +--- + +"_If anyone is looking to build a production Python API, I would highly recommend **FastAPI**. It is **beautifully designed**, **simple to use** and **highly scalable**, it has become a **key component** in our API first development strategy and is driving many automations and services such as our Virtual TAC Engineer._" + +
Deon Pillsbury - Cisco (ref)
+ +--- + +## **Typer**, the FastAPI of CLIs + + + +If you are building a CLI app to be used in the terminal instead of a web API, check out **Typer**. + +**Typer** is FastAPI's little sibling. And it's intended to be the **FastAPI of CLIs**. ⌨️ 🚀 + +## Requirements + +FastAPI stands on the shoulders of giants: + +* Starlette for the web parts. +* Pydantic for the data parts. + +## Installation + +
+ +```console +$ pip install fastapi + +---> 100% +``` + +
+ +## Example + +### Create it + +* Create a file `main.py` with: + +```Python +from typing import Union + +from fastapi import FastAPI + +app = FastAPI() + + +@app.get("/") +def read_root(): + return {"Hello": "World"} + + +@app.get("/items/{item_id}") +def read_item(item_id: int, q: Union[str, None] = None): + return {"item_id": item_id, "q": q} +``` + +
+Or use async def... + +If your code uses `async` / `await`, use `async def`: + +```Python hl_lines="9 14" +from typing import Union + +from fastapi import FastAPI + +app = FastAPI() + + +@app.get("/") +async def read_root(): + return {"Hello": "World"} + + +@app.get("/items/{item_id}") +async def read_item(item_id: int, q: Union[str, None] = None): + return {"item_id": item_id, "q": q} +``` + +**Note**: + +If you don't know, check the _"In a hurry?"_ section about `async` and `await` in the docs. + +
+ +### Run it + +Run the server with: + +
+ +```console +$ fastapi dev main.py + + ╭────────── FastAPI CLI - Development mode ───────────╮ + │ │ + │ Serving at: http://127.0.0.1:8000 │ + │ │ + │ API docs: http://127.0.0.1:8000/docs │ + │ │ + │ Running in development mode, for production use: │ + │ │ + │ fastapi run │ + │ │ + ╰─────────────────────────────────────────────────────╯ + +INFO: Will watch for changes in these directories: ['/home/user/code/awesomeapp'] +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +INFO: Started reloader process [2248755] using WatchFiles +INFO: Started server process [2248757] +INFO: Waiting for application startup. +INFO: Application startup complete. +``` + +
+ +
+About the command fastapi dev main.py... + +The command `fastapi dev` reads your `main.py` file, detects the **FastAPI** app in it, and starts a server using Uvicorn. + +By default, `fastapi dev` will start with auto-reload enabled for local development. + +You can read more about it in the FastAPI CLI docs. + +
+ +### Check it + +Open your browser at http://127.0.0.1:8000/items/5?q=somequery. + +You will see the JSON response as: + +```JSON +{"item_id": 5, "q": "somequery"} +``` + +You already created an API that: + +* Receives HTTP requests in the _paths_ `/` and `/items/{item_id}`. +* Both _paths_ take `GET` operations (also known as HTTP _methods_). +* The _path_ `/items/{item_id}` has a _path parameter_ `item_id` that should be an `int`. +* The _path_ `/items/{item_id}` has an optional `str` _query parameter_ `q`. + +### Interactive API docs + +Now go to http://127.0.0.1:8000/docs. + +You will see the automatic interactive API documentation (provided by Swagger UI): + +![Swagger UI](https://fastapi.tiangolo.com/img/index/index-01-swagger-ui-simple.png) + +### Alternative API docs + +And now, go to http://127.0.0.1:8000/redoc. + +You will see the alternative automatic documentation (provided by ReDoc): + +![ReDoc](https://fastapi.tiangolo.com/img/index/index-02-redoc-simple.png) + +## Example upgrade + +Now modify the file `main.py` to receive a body from a `PUT` request. + +Declare the body using standard Python types, thanks to Pydantic. + +```Python hl_lines="4 9-12 25-27" +from typing import Union + +from fastapi import FastAPI +from pydantic import BaseModel + +app = FastAPI() + + +class Item(BaseModel): + name: str + price: float + is_offer: Union[bool, None] = None + + +@app.get("/") +def read_root(): + return {"Hello": "World"} + + +@app.get("/items/{item_id}") +def read_item(item_id: int, q: Union[str, None] = None): + return {"item_id": item_id, "q": q} + + +@app.put("/items/{item_id}") +def update_item(item_id: int, item: Item): + return {"item_name": item.name, "item_id": item_id} +``` + +The `fastapi dev` server should reload automatically. + +### Interactive API docs upgrade + +Now go to http://127.0.0.1:8000/docs. + +* The interactive API documentation will be automatically updated, including the new body: + +![Swagger UI](https://fastapi.tiangolo.com/img/index/index-03-swagger-02.png) + +* Click on the button "Try it out", it allows you to fill the parameters and directly interact with the API: + +![Swagger UI interaction](https://fastapi.tiangolo.com/img/index/index-04-swagger-03.png) + +* Then click on the "Execute" button, the user interface will communicate with your API, send the parameters, get the results and show them on the screen: + +![Swagger UI interaction](https://fastapi.tiangolo.com/img/index/index-05-swagger-04.png) + +### Alternative API docs upgrade + +And now, go to http://127.0.0.1:8000/redoc. + +* The alternative documentation will also reflect the new query parameter and body: + +![ReDoc](https://fastapi.tiangolo.com/img/index/index-06-redoc-02.png) + +### Recap + +In summary, you declare **once** the types of parameters, body, etc. as function parameters. + +You do that with standard modern Python types. + +You don't have to learn a new syntax, the methods or classes of a specific library, etc. + +Just standard **Python**. + +For example, for an `int`: + +```Python +item_id: int +``` + +or for a more complex `Item` model: + +```Python +item: Item +``` + +...and with that single declaration you get: + +* Editor support, including: + * Completion. + * Type checks. +* Validation of data: + * Automatic and clear errors when the data is invalid. + * Validation even for deeply nested JSON objects. +* Conversion of input data: coming from the network to Python data and types. Reading from: + * JSON. + * Path parameters. + * Query parameters. + * Cookies. + * Headers. + * Forms. + * Files. +* Conversion of output data: converting from Python data and types to network data (as JSON): + * Convert Python types (`str`, `int`, `float`, `bool`, `list`, etc). + * `datetime` objects. + * `UUID` objects. + * Database models. + * ...and many more. +* Automatic interactive API documentation, including 2 alternative user interfaces: + * Swagger UI. + * ReDoc. + +--- + +Coming back to the previous code example, **FastAPI** will: + +* Validate that there is an `item_id` in the path for `GET` and `PUT` requests. +* Validate that the `item_id` is of type `int` for `GET` and `PUT` requests. + * If it is not, the client will see a useful, clear error. +* Check if there is an optional query parameter named `q` (as in `http://127.0.0.1:8000/items/foo?q=somequery`) for `GET` requests. + * As the `q` parameter is declared with `= None`, it is optional. + * Without the `None` it would be required (as is the body in the case with `PUT`). +* For `PUT` requests to `/items/{item_id}`, Read the body as JSON: + * Check that it has a required attribute `name` that should be a `str`. + * Check that it has a required attribute `price` that has to be a `float`. + * Check that it has an optional attribute `is_offer`, that should be a `bool`, if present. + * All this would also work for deeply nested JSON objects. +* Convert from and to JSON automatically. +* Document everything with OpenAPI, that can be used by: + * Interactive documentation systems. + * Automatic client code generation systems, for many languages. +* Provide 2 interactive documentation web interfaces directly. + +--- + +We just scratched the surface, but you already get the idea of how it all works. + +Try changing the line with: + +```Python + return {"item_name": item.name, "item_id": item_id} +``` + +...from: + +```Python + ... "item_name": item.name ... +``` + +...to: + +```Python + ... "item_price": item.price ... +``` + +...and see how your editor will auto-complete the attributes and know their types: + +![editor support](https://fastapi.tiangolo.com/img/vscode-completion.png) + +For a more complete example including more features, see the Tutorial - User Guide. + +**Spoiler alert**: the tutorial - user guide includes: + +* Declaration of **parameters** from other different places as: **headers**, **cookies**, **form fields** and **files**. +* How to set **validation constraints** as `maximum_length` or `regex`. +* A very powerful and easy to use **Dependency Injection** system. +* Security and authentication, including support for **OAuth2** with **JWT tokens** and **HTTP Basic** auth. +* More advanced (but equally easy) techniques for declaring **deeply nested JSON models** (thanks to Pydantic). +* **GraphQL** integration with Strawberry and other libraries. +* Many extra features (thanks to Starlette) as: + * **WebSockets** + * extremely easy tests based on HTTPX and `pytest` + * **CORS** + * **Cookie Sessions** + * ...and more. + +## Performance + +Independent TechEmpower benchmarks show **FastAPI** applications running under Uvicorn as one of the fastest Python frameworks available, only below Starlette and Uvicorn themselves (used internally by FastAPI). (*) + +To understand more about it, see the section Benchmarks. + +## Dependencies + +Used by Pydantic: + +* email_validator - for email validation. +* pydantic-settings - for settings management. +* pydantic-extra-types - for extra types to be used with Pydantic. + +Used by Starlette: + +* httpx - Required if you want to use the `TestClient`. +* jinja2 - Required if you want to use the default template configuration. +* python-multipart - Required if you want to support form "parsing", with `request.form()`. + +Used by FastAPI / Starlette: + +* uvicorn - for the server that loads and serves your application. +* `fastapi-cli` - to provide the `fastapi` command. + +When you install `fastapi` it comes these standard dependencies. + +Additional optional dependencies: + +* orjson - Required if you want to use `ORJSONResponse`. +* ujson - Required if you want to use `UJSONResponse`. + +## `fastapi-slim` + +If you don't want the extra standard optional dependencies, install `fastapi-slim` instead. + +When you install with: + +```bash +pip install fastapi +``` + +...it includes the same code and dependencies as: + +```bash +pip install "fastapi-slim[standard]" +``` + +The standard extra dependencies are the ones mentioned above. + +## License + +This project is licensed under the terms of the MIT license. diff --git a/docs/ka/mkdocs.yml b/docs/ka/mkdocs.yml new file mode 100644 index 000000000..de18856f4 --- /dev/null +++ b/docs/ka/mkdocs.yml @@ -0,0 +1 @@ +INHERIT: ../en/mkdocs.yml From e08ed4d8e2c03810586bf5350f6501ca81cb5deb Mon Sep 17 00:00:00 2001 From: davidkadaria Date: Sun, 21 Jul 2024 23:19:52 +0400 Subject: [PATCH 02/27] Translate 1st paragraph (intro/overview) --- docs/ka/docs/index.md | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/docs/ka/docs/index.md b/docs/ka/docs/index.md index 55d9a41a1..344663d4b 100644 --- a/docs/ka/docs/index.md +++ b/docs/ka/docs/index.md @@ -1,7 +1,3 @@ - -{!../../../docs/missing-translation.md!} - - --- hide: - navigation @@ -15,7 +11,7 @@ hide: FastAPI

- FastAPI framework, high performance, easy to learn, fast to code, ready for production + FastAPI ფრეიმვორქი, მაღალი წარმადობა, ასათვისებლად მარტივი, ეფექტური, წარმოებაში ჩაშვებისათვის გამზადებული

@@ -34,26 +30,37 @@ hide: --- -**Documentation**: https://fastapi.tiangolo.com +**დოკუმენტაცია**: https://fastapi.tiangolo.com -**Source Code**: https://github.com/tiangolo/fastapi +**პროგრამული კოდი**: https://github.com/tiangolo/fastapi --- FastAPI is a modern, fast (high-performance), web framework for building APIs with Python based on standard Python type hints. +FastAPI არის თანამედროვე, სწრაფი (მაღალი წარმადობის მქონე), Python-ზე დაფუძნებული ვებფრეიმვორქი, რომელიც იყენებს Python-ის სტანდარტულ ტიპთა ინდიკატორებს და საშუალებას გვაძლევს შევქმნათ API-ები. The key features are: +ძირითადი მახასიათებლები გახლავთ: * **Fast**: Very high performance, on par with **NodeJS** and **Go** (thanks to Starlette and Pydantic). [One of the fastest Python frameworks available](#performance). +* **სისწრაფე**: აქვს ძალიან მაღალი წარმადობა, როგორც **NodeJS**-სა და **Go**-ს (მადლობა Starlette-სა და Pydantic-ს). [ერთ-ერთი უსწრაფესი ფრეიმვორქია Python-ის არსებულ ფრეიმვორქებს შორის](#performance). * **Fast to code**: Increase the speed to develop features by about 200% to 300%. * +* **ეფექტურობა**: დეველოპმენტის პროცესს აჩქარებს დაახლოებით 200-300 პროცენტით. * * **Fewer bugs**: Reduce about 40% of human (developer) induced errors. * +* **ნაკლები პროგრამული ხარვეზი**: ადამიანის (დეველოპერის) მიერ გამოწვეული ხარვეზების ალბათობას ამცირებს დაახლოებით 40 პროცენტით. * * **Intuitive**: Great editor support. Completion everywhere. Less time debugging. +* **ინტუიციურობა**: შესანიშნავი თავსებადობა ტექსტურ რედაქტორებთან. კოდის ავტოდასრულების ფუნქციონალი ხელმისაწვდომია ყველგან. ნაკლებ დროს დახარჯავთ ხარვეზების აღმოფხვრაში. * **Easy**: Designed to be easy to use and learn. Less time reading docs. +* **სიმარტივე**: ტექნოლოგია შემუშავებულია იმგვარად, რომ მარტივად გამოსაყენებელი და ასათვისებელი იყოს. დოკუმენტაციის კითხვაში ნაკლებ დროს დახარჯავთ. * **Short**: Minimize code duplication. Multiple features from each parameter declaration. Fewer bugs. +* **კომპაქტური**: კოდის დუბლიკაციის საჭიროება მინიმუმამდეა დაყვანილი. თითოეული პარამეტრის განსაზღვრით აქტიურდება მრავალი ფუნქციონალი. პროგრამული ხარვეზების წარმოქმნის ალბათობა მინიმუმამდეა დაყვანილი. * **Robust**: Get production-ready code. With automatic interactive documentation. +* **მდგრადობა**: მიიღებთ წარმოებაში ჩაშვებისათვის გამზადებულ კოდს. ამას გარდა, მიიღებთ ავტომატურად გენერირებულ ინტერაქციულ დოკუმენტაციას. * **Standards-based**: Based on (and fully compatible with) the open standards for APIs: OpenAPI (previously known as Swagger) and JSON Schema. +* **სტანდარტებზე დაფუძნებულობა**: დაფუძნებულია (და სრულად თავსებადია) API-ებისთვის განსაზღვრულ ღია სტანდარტებზე: OpenAPI (ადრე ცნობილი იყო, როგორც Swagger) და JSON Schema. * estimation based on tests on an internal development team, building production applications. +* ზემოთ მოცემული შეფასებები ეფუძნება შიდა დეველოპმენტის გუნდის ტესტებს, რომლებიც მუშაობენ წარმოებაში მყოფ (რეალურ) აპლიკაციებზე. ## Sponsors From 9d7d521084970d86b7db9b4582ea0f9729a6656d Mon Sep 17 00:00:00 2001 From: davidkadaria Date: Sun, 21 Jul 2024 23:21:15 +0400 Subject: [PATCH 03/27] Translate 2nd paragraph (sponsors) --- docs/ka/docs/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/ka/docs/index.md b/docs/ka/docs/index.md index 344663d4b..9c5f0d154 100644 --- a/docs/ka/docs/index.md +++ b/docs/ka/docs/index.md @@ -63,6 +63,7 @@ The key features are: * ზემოთ მოცემული შეფასებები ეფუძნება შიდა დეველოპმენტის გუნდის ტესტებს, რომლებიც მუშაობენ წარმოებაში მყოფ (რეალურ) აპლიკაციებზე. ## Sponsors +## სპონსორები @@ -78,6 +79,7 @@ The key features are: Other sponsors +სხვა სპონსორები ## Opinions From 765116e2071101c42c69f225384bc46b07c0d5dd Mon Sep 17 00:00:00 2001 From: davidkadaria Date: Sun, 21 Jul 2024 23:38:19 +0400 Subject: [PATCH 04/27] Start translating 3rd section: Opinions --- docs/ka/docs/index.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/docs/ka/docs/index.md b/docs/ka/docs/index.md index 9c5f0d154..0876e9b46 100644 --- a/docs/ka/docs/index.md +++ b/docs/ka/docs/index.md @@ -82,13 +82,24 @@ The key features are: სხვა სპონსორები ## Opinions +## მოსაზრებები "_[...] I'm using **FastAPI** a ton these days. [...] I'm actually planning to use it for all of my team's **ML services at Microsoft**. Some of them are getting integrated into the core **Windows** product and some **Office** products._"

Kabir Khan - Microsoft (ref)
--- +"_[...] ბოლო დროს, **FastAPI**-ს ძალიან ხშირად ვიყენებ. [...] სინამდვილეში, მის გამოყენებას ვგეგმავ ჩემი გუნდის ყველა **ML სერვისისათვის Microsoft-ში**. ზოგიერთი მათგანი ინტეგრირებულია Windows-ის ძირითად და **Office**-ის ზოგიერთ პროდუქტებში._" +
Kabir Khan - Microsoft (ref)
+ +--- + +"_We adopted the **FastAPI** library to spawn a **REST** server that can be queried to obtain **predictions**. [for Ludwig]_" + +
Piero Molino, Yaroslav Dudin, and Sai Sumanth Miryala - Uber (ref)
+ +--- "_We adopted the **FastAPI** library to spawn a **REST** server that can be queried to obtain **predictions**. [for Ludwig]_"
Piero Molino, Yaroslav Dudin, and Sai Sumanth Miryala - Uber (ref)
From be635ffb15434d49145f518a73cf48b8d21b40e8 Mon Sep 17 00:00:00 2001 From: davidkadaria Date: Sun, 21 Jul 2024 23:39:50 +0400 Subject: [PATCH 05/27] Do not translate opinion contents --- docs/ka/docs/index.md | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/docs/ka/docs/index.md b/docs/ka/docs/index.md index 0876e9b46..218d38dd1 100644 --- a/docs/ka/docs/index.md +++ b/docs/ka/docs/index.md @@ -89,17 +89,7 @@ The key features are:
Kabir Khan - Microsoft (ref)
--- -"_[...] ბოლო დროს, **FastAPI**-ს ძალიან ხშირად ვიყენებ. [...] სინამდვილეში, მის გამოყენებას ვგეგმავ ჩემი გუნდის ყველა **ML სერვისისათვის Microsoft-ში**. ზოგიერთი მათგანი ინტეგრირებულია Windows-ის ძირითად და **Office**-ის ზოგიერთ პროდუქტებში._" -
Kabir Khan - Microsoft (ref)
- ---- - -"_We adopted the **FastAPI** library to spawn a **REST** server that can be queried to obtain **predictions**. [for Ludwig]_" - -
Piero Molino, Yaroslav Dudin, and Sai Sumanth Miryala - Uber (ref)
- ---- "_We adopted the **FastAPI** library to spawn a **REST** server that can be queried to obtain **predictions**. [for Ludwig]_"
Piero Molino, Yaroslav Dudin, and Sai Sumanth Miryala - Uber (ref)
From df8652b7642d0dc88815351676cdee398e7f5b1a Mon Sep 17 00:00:00 2001 From: davidkadaria Date: Sun, 21 Jul 2024 23:49:36 +0400 Subject: [PATCH 06/27] Translate Typer section --- docs/ka/docs/index.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/ka/docs/index.md b/docs/ka/docs/index.md index 218d38dd1..c58316110 100644 --- a/docs/ka/docs/index.md +++ b/docs/ka/docs/index.md @@ -129,12 +129,15 @@ The key features are: --- ## **Typer**, the FastAPI of CLIs +## **Typer**: ბრძანებათა სტრიქონების FastAPI If you are building a CLI app to be used in the terminal instead of a web API, check out **Typer**. +თუკი მუშაობთ CLI აპლიკაციაზე, რომელიც გამოყენებულ იქნება ტერმინალში, - ნაცვლად ვებ API-ისა, გადახედეთ **Typer**-ს. **Typer** is FastAPI's little sibling. And it's intended to be the **FastAPI of CLIs**. ⌨️ 🚀 +**Typer** არის FastAPI-ის პატარა ძამიკო. და ჩაფიქრებულია, რომ იგი იყოს **CLI-ების FastAPI**. ⌨️ 🚀 ## Requirements From 444c1fecc70460a3b5d0b881b347d916e8c26ad4 Mon Sep 17 00:00:00 2001 From: davidkadaria Date: Sun, 21 Jul 2024 23:56:54 +0400 Subject: [PATCH 07/27] Translate Requirements part --- docs/ka/docs/index.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/ka/docs/index.md b/docs/ka/docs/index.md index c58316110..f3b1e34af 100644 --- a/docs/ka/docs/index.md +++ b/docs/ka/docs/index.md @@ -134,17 +134,21 @@ The key features are: If you are building a CLI app to be used in the terminal instead of a web API, check out **Typer**. -თუკი მუშაობთ CLI აპლიკაციაზე, რომელიც გამოყენებულ იქნება ტერმინალში, - ნაცვლად ვებ API-ისა, გადახედეთ **Typer**-ს. +თუკი მუშაობთ CLI აპლიკაციაზე, რომელიც გამოყენებულ იქნება ტერმინალში, - ნაცვლად ვებ API-ისა, თვალი შეავლეთ **Typer**-ს. **Typer** is FastAPI's little sibling. And it's intended to be the **FastAPI of CLIs**. ⌨️ 🚀 **Typer** არის FastAPI-ის პატარა ძამიკო. და ჩაფიქრებულია, რომ იგი იყოს **CLI-ების FastAPI**. ⌨️ 🚀 ## Requirements +## მოთხოვნები FastAPI stands on the shoulders of giants: +FastAPI მხრებზე შემოსდგომია შემდეგ გიგანტებს: * Starlette for the web parts. +* Starlette-ს ვებთან დაკავშირებულ საკითხებში. * Pydantic for the data parts. +* Pydantic-ს მონაცემებთან დაკავშირებულ საკითხებში. ## Installation From 57ec5749e05bd8d646c5f758cca1c00527b42379 Mon Sep 17 00:00:00 2001 From: davidkadaria Date: Sun, 21 Jul 2024 23:59:57 +0400 Subject: [PATCH 08/27] Translate installation part --- docs/ka/docs/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/ka/docs/index.md b/docs/ka/docs/index.md index f3b1e34af..9c74e4aae 100644 --- a/docs/ka/docs/index.md +++ b/docs/ka/docs/index.md @@ -151,6 +151,7 @@ FastAPI მხრებზე შემოსდგომია შემდე * Pydantic-ს მონაცემებთან დაკავშირებულ საკითხებში. ## Installation +## ინსტალაცია
From 37ea714910fbc977e84303b62888d233c26feeac Mon Sep 17 00:00:00 2001 From: davidkadaria Date: Mon, 22 Jul 2024 00:22:02 +0400 Subject: [PATCH 09/27] Partially translate the Example section. Start tranlating 'Run it' section --- docs/ka/docs/index.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docs/ka/docs/index.md b/docs/ka/docs/index.md index 9c74e4aae..33b3c0c01 100644 --- a/docs/ka/docs/index.md +++ b/docs/ka/docs/index.md @@ -164,10 +164,13 @@ $ pip install fastapi
## Example +## მაგალითი ### Create it +### შევქმნათ * Create a file `main.py` with: +* შექმენით `main.py` ფაილი შემდეგი შიგთავსით: ```Python from typing import Union @@ -189,8 +192,10 @@ def read_item(item_id: int, q: Union[str, None] = None):
Or use async def... +ან გამოიყენეთ async def... If your code uses `async` / `await`, use `async def`: +თუკი თქვენი კოდი იყენებს `async` / `await`-ს, გამოიყენეთ `async def`: ```Python hl_lines="9 14" from typing import Union @@ -211,14 +216,18 @@ async def read_item(item_id: int, q: Union[str, None] = None): ``` **Note**: +**შენიშვნა**: If you don't know, check the _"In a hurry?"_ section about `async` and `await` in the docs. +თუკი ჯერ არ ერკვევით აღნიშნულ საკითხში, `async`-ისა და `await`-ის შესახებ დოკუმენტაციაში თვალი გადაავლეთ განყოფილებას _„გეჩქარებათ?“_.
### Run it +### გავუშვათ Run the server with: +გაუშვით სერვერი შემდეგი ბრძანებით:
From d479213eb23d9cd532a673f855c97415c9354c71 Mon Sep 17 00:00:00 2001 From: davidkadaria Date: Thu, 25 Jul 2024 16:13:17 +0400 Subject: [PATCH 10/27] Translate Run it paragraph --- docs/ka/docs/index.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/ka/docs/index.md b/docs/ka/docs/index.md index 33b3c0c01..21fcf3471 100644 --- a/docs/ka/docs/index.md +++ b/docs/ka/docs/index.md @@ -258,12 +258,16 @@ INFO: Application startup complete.
About the command fastapi dev main.py... +fastapi dev main.py ბრძანების შესახებ... The command `fastapi dev` reads your `main.py` file, detects the **FastAPI** app in it, and starts a server using Uvicorn. +`fastapi dev` ბრძანება კითხულობს თქვენს `main.py` ფაილს, მასში **FastAPI** აპლიკაციას აიდენტიფიცირებს და Uvicorn-ის გამოყენებით უშვებს სერვერს. By default, `fastapi dev` will start with auto-reload enabled for local development. +ნაგულისხმევად, ლოკალური დეველოპმენტისთვის, `fastapi dev` ბრძანებით გაშვებული სერვერისათვის აქტივირებული იქნება ავტომატური გადატვირთვის ფუნქცია. You can read more about it in the FastAPI CLI docs. +ამ საკითხზე დეტალური ინფორმაცია შეგიძლიათ წაიკითხოთ FastAPI CLI-ის დოკუმენტაციაში.
From 7e7796a5bb8aba14739ade747f62069372163892 Mon Sep 17 00:00:00 2001 From: davidkadaria Date: Thu, 25 Jul 2024 16:24:13 +0400 Subject: [PATCH 11/27] Translate Check it section --- docs/ka/docs/index.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/ka/docs/index.md b/docs/ka/docs/index.md index 21fcf3471..e2f349480 100644 --- a/docs/ka/docs/index.md +++ b/docs/ka/docs/index.md @@ -272,21 +272,29 @@ You can read more about it in the http://127.0.0.1:8000/items/5?q=somequery. +თქვენს ბრაუზერში გახსენით შემდეგი ბმული: http://127.0.0.1:8000/items/5?q=somequery. You will see the JSON response as: +დაინახავთ შემდეგნაირ JSON ტიპის მონაცემს: ```JSON {"item_id": 5, "q": "somequery"} ``` You already created an API that: +ამგვარად, თქვენ უკვე შექმენით API, რომელიც: * Receives HTTP requests in the _paths_ `/` and `/items/{item_id}`. +* იღებს HTTP მოთხოვნებს შემდეგ _მისამართებზე_: `/` და `/items/{item_id}`. * Both _paths_ take `GET` operations (also known as HTTP _methods_). +* ორივე მისამართი ამუშავებს `GET` ოპერაციას (ასევე ცნობილს, როგორც HTTP _მეთოდი_). * The _path_ `/items/{item_id}` has a _path parameter_ `item_id` that should be an `int`. +* `/items/{item_id}` მისამართს გააჩნია _მარშრუტის პარამეტრი_ `item_id`, რომელიც უნდა იყოს მთელი რიცხვის (`int`) ტიპის. * The _path_ `/items/{item_id}` has an optional `str` _query parameter_ `q`. +* `/items/{item_id}` მისამართს გააჩნია არასავალდებულო სტრიქონის (`str`) ტიპის _საძიებო (query) პარამეტრი_ `q`. ### Interactive API docs From c6308f63b4af906b901ad0602e1bd1ca5844359a Mon Sep 17 00:00:00 2001 From: davidkadaria Date: Thu, 25 Jul 2024 17:41:28 +0400 Subject: [PATCH 12/27] Translate Interactive API docs section --- docs/ka/docs/index.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/ka/docs/index.md b/docs/ka/docs/index.md index e2f349480..a2a4ac95e 100644 --- a/docs/ka/docs/index.md +++ b/docs/ka/docs/index.md @@ -297,10 +297,13 @@ You already created an API that: * `/items/{item_id}` მისამართს გააჩნია არასავალდებულო სტრიქონის (`str`) ტიპის _საძიებო (query) პარამეტრი_ `q`. ### Interactive API docs +### ინტერაქციული API-დოკუმენტაცია Now go to http://127.0.0.1:8000/docs. +ახლა კი, თქვენს ბრაუზერში გახსენით შემდეგი ბმული: http://127.0.0.1:8000/docs. You will see the automatic interactive API documentation (provided by Swagger UI): +დაინახავთ ავტომატურად გენერირებულ ინტერაქციულ API-დოკუმენტაციას (რომელიც უზრუნველყოფილია Swagger UI-ის მიერ): ![Swagger UI](https://fastapi.tiangolo.com/img/index/index-01-swagger-ui-simple.png) From 9a47a6378a20795b2c6fa39a0424f3ac5ec06bcd Mon Sep 17 00:00:00 2001 From: davidkadaria Date: Thu, 25 Jul 2024 17:46:10 +0400 Subject: [PATCH 13/27] Translate Alternative API docs section --- docs/ka/docs/index.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/ka/docs/index.md b/docs/ka/docs/index.md index a2a4ac95e..987bc8917 100644 --- a/docs/ka/docs/index.md +++ b/docs/ka/docs/index.md @@ -308,10 +308,13 @@ You will see the automatic interactive API documentation (provided by http://127.0.0.1:8000/redoc. +თქვენს ბრაუზერში გახსენით შემდეგი ბმული: http://127.0.0.1:8000/redoc. You will see the alternative automatic documentation (provided by ReDoc): +დაინახავთ ალტერნატიულ ავტომატურად გენერირებულ დოკუმენტაციას (რომელიც უზრუნველყოფილია ReDoc-ის მიერ): ![ReDoc](https://fastapi.tiangolo.com/img/index/index-02-redoc-simple.png) From d8f2906a8981c6744f9affb1c30779fc6da519d4 Mon Sep 17 00:00:00 2001 From: davidkadaria Date: Thu, 25 Jul 2024 17:57:49 +0400 Subject: [PATCH 14/27] Translate Example upgrade section --- docs/ka/docs/index.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/ka/docs/index.md b/docs/ka/docs/index.md index 987bc8917..ad2b8ee0d 100644 --- a/docs/ka/docs/index.md +++ b/docs/ka/docs/index.md @@ -319,10 +319,13 @@ You will see the alternative automatic documentation (provided by Date: Thu, 25 Jul 2024 20:43:23 +0400 Subject: [PATCH 15/27] Translate Interactive API docs upgrade section --- docs/ka/docs/index.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/ka/docs/index.md b/docs/ka/docs/index.md index ad2b8ee0d..d53aba812 100644 --- a/docs/ka/docs/index.md +++ b/docs/ka/docs/index.md @@ -361,18 +361,24 @@ The `fastapi dev` server should reload automatically. ცვლილებების შენახვის შემდეგ, `fastapi dev` ბრძანებით გაშვებული სერვერი, წესით და რიგით, ავტომატურად გადაიტვირთება. ### Interactive API docs upgrade +### გავაუმჯობესოთ ინტერაქციული API-დოკუმენტაცია Now go to http://127.0.0.1:8000/docs. +თქვენს ბრაუზერში გახსენით შემდეგი ბმული: http://127.0.0.1:8000/docs. + * The interactive API documentation will be automatically updated, including the new body: +* ინტერაქციული API-დოკუმენტაცია, ახლად დამატებული პროტოტიპის ჩათვლით, განახლდება ავტომატურად: ![Swagger UI](https://fastapi.tiangolo.com/img/index/index-03-swagger-02.png) * Click on the button "Try it out", it allows you to fill the parameters and directly interact with the API: +* დააკლიკეთ "Try it out" ღილაკს. ეს საშუალებას მოგცემთ, განსაზღვროთ პარამეტრები და API-სთან უშუალო ინტერაქციით დაკავდეთ: ![Swagger UI interaction](https://fastapi.tiangolo.com/img/index/index-04-swagger-03.png) * Then click on the "Execute" button, the user interface will communicate with your API, send the parameters, get the results and show them on the screen: +* შემდგომ ამისა, დააკლიკეთ "Execute" ღილაკს, რითაც თქვენ მიერ გახსნილი ინტერფეისი დაუკავშირდება API-ს, გაგზავნის თქვენ მიერ განსაზღვრულ პარამეტრებს, მიიღებს მოთხოვნის შედეგებს და გამოიტანს ეკრანზე: ![Swagger UI interaction](https://fastapi.tiangolo.com/img/index/index-05-swagger-04.png) From 8ced404f8b6f5a1d62d91f22e6f7e505fd02b473 Mon Sep 17 00:00:00 2001 From: davidkadaria Date: Thu, 25 Jul 2024 20:48:47 +0400 Subject: [PATCH 16/27] Translate Alternative API docs upgrade section --- docs/ka/docs/index.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/ka/docs/index.md b/docs/ka/docs/index.md index d53aba812..7d820269b 100644 --- a/docs/ka/docs/index.md +++ b/docs/ka/docs/index.md @@ -383,10 +383,13 @@ Now go to http://127.0.0.1:8000/redoc. +ახლა კი, თქვენს ბრაუზერში გახსენით შემდეგი ბმული: http://127.0.0.1:8000/redoc. * The alternative documentation will also reflect the new query parameter and body: +* ახლად დამატებული საძიებო პარამეტრი და შიგთავსის პროტოტიპი ალტერნატიულ დოკუმენტაციაშიც აისახება: ![ReDoc](https://fastapi.tiangolo.com/img/index/index-06-redoc-02.png) From 694a057775e6d193a79a5e4bcb39d9ed65a97079 Mon Sep 17 00:00:00 2001 From: davidkadaria Date: Fri, 26 Jul 2024 00:31:22 +0400 Subject: [PATCH 17/27] Translate Recap section --- docs/ka/docs/index.md | 71 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 69 insertions(+), 2 deletions(-) diff --git a/docs/ka/docs/index.md b/docs/ka/docs/index.md index 7d820269b..d96d12f22 100644 --- a/docs/ka/docs/index.md +++ b/docs/ka/docs/index.md @@ -290,9 +290,9 @@ You already created an API that: * Receives HTTP requests in the _paths_ `/` and `/items/{item_id}`. * იღებს HTTP მოთხოვნებს შემდეგ _მისამართებზე_: `/` და `/items/{item_id}`. * Both _paths_ take `GET` operations (also known as HTTP _methods_). -* ორივე მისამართი ამუშავებს `GET` ოპერაციას (ასევე ცნობილს, როგორც HTTP _მეთოდი_). +* ორივე _მისამართი_ ამუშავებს `GET` ოპერაციას (ასევე ცნობილს, როგორც HTTP _მეთოდი_). * The _path_ `/items/{item_id}` has a _path parameter_ `item_id` that should be an `int`. -* `/items/{item_id}` მისამართს გააჩნია _მარშრუტის პარამეტრი_ `item_id`, რომელიც უნდა იყოს მთელი რიცხვის (`int`) ტიპის. +* `/items/{item_id}` _მისამართს_ გააჩნია _მარშრუტის პარამეტრი_ `item_id`, რომელიც უნდა იყოს მთელი რიცხვის (`int`) ტიპის. * The _path_ `/items/{item_id}` has an optional `str` _query parameter_ `q`. * `/items/{item_id}` მისამართს გააჩნია არასავალდებულო სტრიქონის (`str`) ტიპის _საძიებო (query) პარამეტრი_ `q`. @@ -394,35 +394,49 @@ And now, go to Conversion of input data: coming from the network to Python data and types. Reading from: * JSON. * Path parameters. @@ -431,79 +445,132 @@ item: Item * Headers. * Forms. * Files. +* შემავალ მონაცემთა გარდაქმნას: ქსელიდან შემომავალი მონაცემების გადათარგმნას Python-ისთვის გასაგებ მონაცემებად და ტიპებად. შესაძლებელია შემდეგი სახის მონაცემების წაკითხვა და გარდაქმნა: + * JSON. + * მარშრუტის (Path) პარამეტრები. + * საძიებო (Query) პარამეტრები. + * Cookie-ები. + * თავსართები (Headers). + * ფორმები. + * ფაილები. * Conversion of output data: converting from Python data and types to network data (as JSON): * Convert Python types (`str`, `int`, `float`, `bool`, `list`, etc). * `datetime` objects. * `UUID` objects. * Database models. * ...and many more. +* გამომავალ მონაცემთა გარდაქმნას: Python-ის მონაცემებისა და ტიპების გადათარგმნას ქსელურ მონაცემებად (JSON-ად). შესაძლებელია შემდეგი სახის მონაცემების გარდაქმნა: + * Python-ის ტიპები (`str`, `int`, `float`, `bool`, `list` და სხვ.). + * `datetime` ობიექტები. + * `UUID` ობიექტები. + * მონაცემთა ბაზის მოდელები. + * ...და მრავალი სხვა. * Automatic interactive API documentation, including 2 alternative user interfaces: * Swagger UI. * ReDoc. +* ავტომატურად გენერირებულ ინტერაქციულ API-დოკუმენტაციას, რომელიც მოიცავს 2 ალტერნატიულ ინტერფეისს. ესენია: + * Swagger UI. + * ReDoc. --- Coming back to the previous code example, **FastAPI** will: +მოდით, მივუბრუნდეთ წინა მაგალითს და გავაანალიზოთ, რას და როგორ გააკეთებს **FastAPI**: * Validate that there is an `item_id` in the path for `GET` and `PUT` requests. +* `GET` და `PUT` ოპერაციებისათვის შეამოწმებს, არის თუ არა მისამართში განსაზღვრული `item_id` პარამეტრი. * Validate that the `item_id` is of type `int` for `GET` and `PUT` requests. * If it is not, the client will see a useful, clear error. +* `GET` და `PUT` ოპერაციებისათვის გადაამოწმებს, არის თუ არა `item_id` პარამეტრი `int` ტიპის. + * თუ ეს ასე არ იქნება, კლიენტი იხილავს გამოსადეგ, მარტივად გასაგებ ცდომილების შეტყობინებას. * Check if there is an optional query parameter named `q` (as in `http://127.0.0.1:8000/items/foo?q=somequery`) for `GET` requests. * As the `q` parameter is declared with `= None`, it is optional. * Without the `None` it would be required (as is the body in the case with `PUT`). +* `GET` ოპერაციებისათვის შეამოწმებს, არის თუ არა წარმოდგენილი არასავალდებულო საძიებო (query) პარამეტრი სახელად `q` (მაგ.: `http://127.0.0.1:8000/items/foo?q=somequery`). + * ვინაიდან `q` პარამეტრი განსაზღვრულია `= None` ბოლოსართით, იგი არასავალდებულოა. + * `None`-ის არარსებობის შემთხვევაში, იგი იქნებოდა სავალდებულო (როგორც მოთხოვნის შიგთავსი `PUT` ოპერაციის შემთხვევაში). * For `PUT` requests to `/items/{item_id}`, Read the body as JSON: * Check that it has a required attribute `name` that should be a `str`. * Check that it has a required attribute `price` that has to be a `float`. * Check that it has an optional attribute `is_offer`, that should be a `bool`, if present. * All this would also work for deeply nested JSON objects. +* `/items/{item_id}` მისამართზე `PUT` ოპერაციისას, წაიკითხავს მოთხოვნის შიგთავსს როგორც JSON მონაცემს. ამასთან: + * შეამოწმებს, არის თუ არა განსაზღვრული `str` ტიპის სავალდებულო `name` ატრიბუტი. + * შეამოწმებს, არის თუ არა განსაზღვრული `float` ტიპის სავალდებულო `price` ატრიბუტი. + * შეამოწმებს, მოთხოვნის შიგთავსში არის თუ არა წარმოდგენილი `bool` ტიპის არასავალდებულო `is_offer` ატრიბუტი. + * ყველაფერი ეს იმუშავებს ნებისმიერი სახის (მაგ.: მრავალშრიანი) JSON მონაცემისათვის. * Convert from and to JSON automatically. +* ავტომატურად გარდაქმნის JSON-ს სხვა სახის მონაცემად და პირიქით. * Document everything with OpenAPI, that can be used by: * Interactive documentation systems. * Automatic client code generation systems, for many languages. +* OpenAPI-ით მოახდენს ყველაფრის დოკუმენტირებას, რაც გამოსადეგი იქნება: + * ინტერაქციული დოკუმენტაციის სისტემებისათვის. + * კლიენტის კოდის ავტომატიზირებული გენერირების სისტემებისათვის სხვადასხვა ენაში. * Provide 2 interactive documentation web interfaces directly. +* უშუალოდ უზრუნველყოფს 2 ალტერნატიულ ინტერაქციულ დოკუმენტაციის ვებინტერფეისს. --- We just scratched the surface, but you already get the idea of how it all works. +ჯერჯერობით ჩვენ რაც განვიხილეთ, მხოლოდ და მხოლოდ ზედაპირია აისბერგისა, მაგრამ, ასე თუ ისე, ალბათ გაიაზრეთ ზოგადი პრინციპი, თუ როგორ მუშაობს ეს ყველაფერი. Try changing the line with: +სცადეთ შემდეგ ხაზში ცვლილების შეტანა: ```Python return {"item_name": item.name, "item_id": item_id} ``` ...from: +...ძველი: ```Python ... "item_name": item.name ... ``` ...to: +...ახალი: ```Python ... "item_price": item.price ... ``` ...and see how your editor will auto-complete the attributes and know their types: +...და დააკვირდით, როგორ მოახდენს თქვენი ტექსტური რედაქტორი ატრიბუტების ავტოდასრულებას და მათი ტიპების იდენტიფიცირებას: ![editor support](https://fastapi.tiangolo.com/img/vscode-completion.png) For a more complete example including more features, see the Tutorial - User Guide. +მეტად სრულყოფილი მაგალითის სანახავად, სადაც განხილული იქნება უფრო მეტი საკითხი, იხილეთ სახელმძღვანელო - მომხმარებლის გზამკვლევი. **Spoiler alert**: the tutorial - user guide includes: +**გაფრთხილება სპოილერის შესახებ**: მომხმარებლის გზამკვლევი მოიცავს შემდეგ საკითხებს: * Declaration of **parameters** from other different places as: **headers**, **cookies**, **form fields** and **files**. +* **პარამეტრების** დეკლარირება სხვა წყაროებიდან, როგორებიცაა: **თავსართები (headers)**, **cookie-ები**, **ფორმის ველები** და **ფაილები**. * How to set **validation constraints** as `maximum_length` or `regex`. +* **შემმოწმებლებისათვის (ვალიდატორებისათვის) შეზღუდვების** დაწესება, როგორებიცაა: `maximum_length` ან `regex`. * A very powerful and easy to use **Dependency Injection** system. +* ძალიან მძლავრი და მარტივად გამოსაყენებელი **პაკეტების ინექციის** სისტემა. * Security and authentication, including support for **OAuth2** with **JWT tokens** and **HTTP Basic** auth. +* უსაფრთხოება და ავთენტიკაცია, მათ შორის **OAuth2**-ის მხარდაჭერა **JWT ტოკენებით** და **HTTP Basic** ავთენტიკაცია. * More advanced (but equally easy) techniques for declaring **deeply nested JSON models** (thanks to Pydantic). +* მეტად სიღრმისეული (მაგრამ ისეთივე მარტივი) მეთოდოლოგიები **კომპლექსური (მრავალშრიანი) JSON მოდელების** დეკლარირებისათვის (მადლობა Pydantic-ს). * **GraphQL** integration with Strawberry and other libraries. +* **GraphQL**-ის ინტეგრირება Strawberry-სთან და სხვა ბიბლიოთეკებთან. * Many extra features (thanks to Starlette) as: * **WebSockets** * extremely easy tests based on HTTPX and `pytest` * **CORS** * **Cookie Sessions** * ...and more. +* არაერთი სხვა თავისებურება (მადლობა Starlette-ს), როგორებიცაა: + * **ვებსოკეტები** + * HTTPX-ზე და `pytest`-ზე დაფუძნებული უმარტივესი ტესტები + * **CORS** + * **Cookie სესიები** + * ...და მრავალი სხვა. ## Performance From 7f6e87b887dba6c1b4ddc1cbd1b0b8cdc7731ddc Mon Sep 17 00:00:00 2001 From: davidkadaria Date: Fri, 26 Jul 2024 00:54:30 +0400 Subject: [PATCH 18/27] Translate Performance section --- docs/ka/docs/index.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/ka/docs/index.md b/docs/ka/docs/index.md index d96d12f22..21e6e60e1 100644 --- a/docs/ka/docs/index.md +++ b/docs/ka/docs/index.md @@ -573,10 +573,13 @@ For a more complete example including more features, see the one of the fastest Python frameworks available, only below Starlette and Uvicorn themselves (used internally by FastAPI). (*) +TechEmpower-ის მიუკერძოებელი ტესტები ცხადყოფენ, რომ Uvicorn-ით გაშვებული **FastAPI**-ზე დაფუძნებული აპლიკაციები წარმოაჩენენ FastAPI-ს, როგორც ერთ-ერთ უსწრაფეს ფრეიმვორქს Python-ის არსებულ ფრეიმვორქებს შორის. მას წინ უსწრებენ მხოლოდ Starlette-ი და Uvicorn-ი (რომლებსაც თავის მხრივ, FastAPI-ი იყენებს). (*) To understand more about it, see the section Benchmarks. +ამ ყველაფრის უკეთ გასააზრებლად იხილეთ შემდეგი განყოფილება: წარმადობის ტესტები (Benchmarks). ## Dependencies From 1755abd63444ad5ae4c29b398a8f02f090ee0005 Mon Sep 17 00:00:00 2001 From: davidkadaria Date: Fri, 26 Jul 2024 11:37:34 +0400 Subject: [PATCH 19/27] Translate Dependencies section --- docs/ka/docs/index.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/docs/ka/docs/index.md b/docs/ka/docs/index.md index 21e6e60e1..684d6947c 100644 --- a/docs/ka/docs/index.md +++ b/docs/ka/docs/index.md @@ -582,48 +582,68 @@ To understand more about it, see the section წარმადობის ტესტები (Benchmarks). ## Dependencies +## პაკეტები Used by Pydantic: +Pydantic-ის მიერ გამოიყენება: * email_validator - for email validation. +* email_validator - მეილის ვალიდაციისათვის. * pydantic-settings - for settings management. +* pydantic-settings - პარამეტრების სამართავად. * pydantic-extra-types - for extra types to be used with Pydantic. +* pydantic-extra-types - Pydantic-თან ერთად გამოყენებადი დამატებითი ტიპებისათვის. Used by Starlette: +Starlette-ის მიერ გამოიყენება: * httpx - Required if you want to use the `TestClient`. +* httpx - სავალდებულოა, თუკი გსურთ, რომ გამოიყენოთ `TestClient`-ი . * jinja2 - Required if you want to use the default template configuration. +* jinja2 - სავალდებულოა, თუკი გსურთ, რომ გამოიყენოთ შაბლონის ნაგულისხმევი კონფიგურაცია. * python-multipart - Required if you want to support form "parsing", with `request.form()`. +* python-multipart - სავალდებულოა, თუკი გსურთ, რომ გქონდეთ ფორმების „პარსინგის“ შესაძლებლობა `request.form()`-ის გამოყენებით. Used by FastAPI / Starlette: +FastAPI / Starlette-ის მიერ გამოიყენება: * uvicorn - for the server that loads and serves your application. +* uvicorn - სერვერისთვის, რომელიც ემსახურება თქვენი აპლიკაციის ჩატვირთვას და მუშაობას. * `fastapi-cli` - to provide the `fastapi` command. +* `fastapi-cli` - უზრუნველყოფს `fastapi` ბრძანების ხელმისაწვდომობას. When you install `fastapi` it comes these standard dependencies. +`fastapi`-ის ინსტალირებისას, მასთან ერთად ინსტალირდება ზემოთ ჩამოთვლილი სტანდარტული პაკეტებიც. Additional optional dependencies: +დამატებითი არასავალდებულო პაკეტები: * orjson - Required if you want to use `ORJSONResponse`. +* orjson - სავალდებულოა, თუკი გსურთ, რომ გამოიყენოთ `ORJSONResponse`-ი. * ujson - Required if you want to use `UJSONResponse`. +* ujson - სავალდებულოა, თუკი გსურთ, რომ გამოიყენოთ `UJSONResponse`-ი. ## `fastapi-slim` If you don't want the extra standard optional dependencies, install `fastapi-slim` instead. +თუ არ გჭირდებათ დამატებითი არასავალდებულო სტანდარტული პაკეტები, `fastapi`-ის ნაცვლად დააინსტალირეთ `fastapi-slim`-ი. When you install with: +როდესაც ინსტალაციას ახორციელებთ შემდეგი ბრძანებით: ```bash pip install fastapi ``` ...it includes the same code and dependencies as: +...ინსტალირდება იგივე კოდი და პაკეტები, რაც დაინსტალირდებოდა შემდეგი ბრძანების გამოყენების შემთხვევაში: ```bash pip install "fastapi-slim[standard]" ``` The standard extra dependencies are the ones mentioned above. +არასავალდებულო სტანდარტული პაკეტები გახლავთ ზემოთ ნახსენები პაკეტები. ## License From 99dabd2d72dcaddbd1cbf0be31c57633a5e2e562 Mon Sep 17 00:00:00 2001 From: davidkadaria Date: Fri, 26 Jul 2024 11:38:45 +0400 Subject: [PATCH 20/27] Translate License section --- docs/ka/docs/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/ka/docs/index.md b/docs/ka/docs/index.md index 684d6947c..1e9044154 100644 --- a/docs/ka/docs/index.md +++ b/docs/ka/docs/index.md @@ -646,5 +646,7 @@ The standard extra dependencies are the ones mentioned above. არასავალდებულო სტანდარტული პაკეტები გახლავთ ზემოთ ნახსენები პაკეტები. ## License +## ლიცენზია This project is licensed under the terms of the MIT license. +წინამდებარე პროექტზე ვრცელდება MIT ლიცენზიით გათვალისწინებული წესები და პირობები. From 133f34a61418bb2ccb31d2223e139e199b5a4d47 Mon Sep 17 00:00:00 2001 From: davidkadaria Date: Fri, 26 Jul 2024 13:50:30 +0400 Subject: [PATCH 21/27] Translate Opinions section. General updates --- docs/ka/docs/index.md | 43 ++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 40 insertions(+), 3 deletions(-) diff --git a/docs/ka/docs/index.md b/docs/ka/docs/index.md index 1e9044154..1cd3822d5 100644 --- a/docs/ka/docs/index.md +++ b/docs/ka/docs/index.md @@ -40,7 +40,7 @@ FastAPI is a modern, fast (high-performance), web framework for building APIs wi FastAPI არის თანამედროვე, სწრაფი (მაღალი წარმადობის მქონე), Python-ზე დაფუძნებული ვებფრეიმვორქი, რომელიც იყენებს Python-ის სტანდარტულ ტიპთა ინდიკატორებს და საშუალებას გვაძლევს შევქმნათ API-ები. The key features are: -ძირითადი მახასიათებლები გახლავთ: +მისი ძირითადი მახასიათებლები გახლავთ: * **Fast**: Very high performance, on par with **NodeJS** and **Go** (thanks to Starlette and Pydantic). [One of the fastest Python frameworks available](#performance). * **სისწრაფე**: აქვს ძალიან მაღალი წარმადობა, როგორც **NodeJS**-სა და **Go**-ს (მადლობა Starlette-სა და Pydantic-ს). [ერთ-ერთი უსწრაფესი ფრეიმვორქია Python-ის არსებულ ფრეიმვორქებს შორის](#performance). @@ -53,14 +53,14 @@ The key features are: * **Easy**: Designed to be easy to use and learn. Less time reading docs. * **სიმარტივე**: ტექნოლოგია შემუშავებულია იმგვარად, რომ მარტივად გამოსაყენებელი და ასათვისებელი იყოს. დოკუმენტაციის კითხვაში ნაკლებ დროს დახარჯავთ. * **Short**: Minimize code duplication. Multiple features from each parameter declaration. Fewer bugs. -* **კომპაქტური**: კოდის დუბლიკაციის საჭიროება მინიმუმამდეა დაყვანილი. თითოეული პარამეტრის განსაზღვრით აქტიურდება მრავალი ფუნქციონალი. პროგრამული ხარვეზების წარმოქმნის ალბათობა მინიმუმამდეა დაყვანილი. +* **კომპაქტურობა**: კოდის დუბლიკაციის საჭიროება მინიმუმამდეა დაყვანილი. თითოეული პარამეტრის განსაზღვრით აქტიურდება მრავალი ფუნქციონალი. პროგრამული ხარვეზების წარმოქმნის ალბათობა მინიმუმამდეა დაყვანილი. * **Robust**: Get production-ready code. With automatic interactive documentation. * **მდგრადობა**: მიიღებთ წარმოებაში ჩაშვებისათვის გამზადებულ კოდს. ამას გარდა, მიიღებთ ავტომატურად გენერირებულ ინტერაქციულ დოკუმენტაციას. * **Standards-based**: Based on (and fully compatible with) the open standards for APIs: OpenAPI (previously known as Swagger) and JSON Schema. * **სტანდარტებზე დაფუძნებულობა**: დაფუძნებულია (და სრულად თავსებადია) API-ებისთვის განსაზღვრულ ღია სტანდარტებზე: OpenAPI (ადრე ცნობილი იყო, როგორც Swagger) და JSON Schema. * estimation based on tests on an internal development team, building production applications. -* ზემოთ მოცემული შეფასებები ეფუძნება შიდა დეველოპმენტის გუნდის ტესტებს, რომლებიც მუშაობენ წარმოებაში მყოფ (რეალურ) აპლიკაციებზე. +* ზემოთ მოცემული შეფასებები ეფუძნება წარმოებაში ჩაშვებულ (რეალურ) აპლიკაციებზე მომუშავე შიდა დეველოპმენტის გუნდის ტესტებს. ## Sponsors ## სპონსორები @@ -88,30 +88,55 @@ The key features are:
Kabir Khan - Microsoft (ref)
+--- +"_[...] ბოლო დროს, ძალიან ხშირად ვიყენებ **FastAPI**-ს. [...] სიმართლე გითხრათ, მის გამოყენებას ვაპირებ ყველა იმ **ML სერვისისათვის Microsoft-ში**, რაზეც კი ჩემი გუნდი მუშაობს. ამ სერვისებიდან ზოგიერთი ინტეგრირებულია **Windows**-ის ბირთვში, ზოგი კი — **Office**-ის პროდუქტებში._" + +
Kabir Khan - Microsoft (ref)
+ --- "_We adopted the **FastAPI** library to spawn a **REST** server that can be queried to obtain **predictions**. [for Ludwig]_"
Piero Molino, Yaroslav Dudin, and Sai Sumanth Miryala - Uber (ref)
+--- +"_ჩვენ გამოვიყენეთ **FastAPI** ბიბლიოთეკა **REST** სერვერის შესაქმნელად, რომლის დანიშნულებაც გახლავთ **პროგნოზების** გაკეთება. [Ludwig-ისთვის]_" + +
Piero Molino, Yaroslav Dudin, and Sai Sumanth Miryala - Uber (ref)
+ --- "_**Netflix** is pleased to announce the open-source release of our **crisis management** orchestration framework: **Dispatch**! [built with **FastAPI**]_"
Kevin Glisson, Marc Vilanova, Forest Monsen - Netflix (ref)
+--- +"_**Netflix**-ის სახელით, მოხარული ვარ, გაცნობოთ ჩვენი კრიტიკული ინფრასტრუქტურის, **Dispatch**-ის წყაროს ღია რელიზის შესახებ! [რომელიც შექმნილია **FastAPI**-ს გამოყენებით]_" + +
Kevin Glisson, Marc Vilanova, Forest Monsen - Netflix (ref)
+ --- "_I’m over the moon excited about **FastAPI**. It’s so fun!_"
Brian Okken - Python Bytes podcast host (ref)
+--- +"_**FastAPI**-ით ცამდე აღფრთოვანებული ვარ. მისი გამოყენება ძალიან სახალისოა!_" + +
Brian Okken - Python Bytes podcast host (ref)
+ --- "_Honestly, what you've built looks super solid and polished. In many ways, it's what I wanted **Hug** to be - it's really inspiring to see someone build that._"
Timothy Crosley - Hug creator (ref)
+--- +"_გულწრფელად გეუბნებით, თქვენი ნამუშევარი ძალიან სანდოდ და დახვეწილად გამოიყურება. სწორედ ეს არის ის, რაც მინდოდა **Hug**-ი ყოფილიყო - მართლაც შთამაგონებელია იმის დანახვა, რომ ვიღაცამ შეძლო ამის შექმნა._" + +
Timothy Crosley - Hug creator (ref)
+ --- "_If you're looking to learn one **modern framework** for building REST APIs, check out **FastAPI** [...] It's fast, easy to use and easy to learn [...]_" @@ -120,12 +145,24 @@ The key features are:
Ines Montani - Matthew Honnibal - Explosion AI founders - spaCy creators (ref) - (ref)
+--- +"_თუ შესწავლის მიზნით ეძებთ **თანამედროვე ფრეიმვორქს**, რომლითაც შეძლებთ REST API-ების შექმნას, თვალი გადაავლეთ **FastAPI**-ს [...] იგი არის სწრაფი, ასათვისებლად და გამოსაყენებლად მარტივი [...]_" + +"_ჩვენი **API**-ები გადავაწყეთ **FastAPI**-ზე [...] ვფიქრობ, აღნიშნული ფრეიმვორქი გულგრილს არავის დატოვებს [...]_" + +
Ines Montani - Matthew Honnibal - Explosion AI founders - spaCy creators (ref) - (ref)
+ --- "_If anyone is looking to build a production Python API, I would highly recommend **FastAPI**. It is **beautifully designed**, **simple to use** and **highly scalable**, it has become a **key component** in our API first development strategy and is driving many automations and services such as our Virtual TAC Engineer._"
Deon Pillsbury - Cisco (ref)
+--- +"_თუკი ვინმე აპირებს Python-ზე დაფუძნებული, წარმოებაში ჩასაშვებად ვარგისი API-ი შექმნას, შემიძლია **FastAPI**-ის გამოყენება ვურჩიო. იგი არის **დახვეწილი**, **გამოსაყენებლად მარტივი** და **ძალზე მასშტაბირებადი** ტექნოლოგია, იგი გახდა API-ების შემუშავების ჩვენეული სტრატეგიის **ქვაკუთხედი** და სწორედ მისი გამოყენებითაა შემუშავებული ჩვენი არაერთი ავტომატიზაციის სისტემა და სერვისები, როგირიცაა მაგალითად ჩვენი ვირტუალური TAC ინჟინერი._" + +
Deon Pillsbury - Cisco (ref)
+ --- ## **Typer**, the FastAPI of CLIs From 882a11926e46f34e56b7bec0748546bdc15b7e79 Mon Sep 17 00:00:00 2001 From: davidkadaria Date: Fri, 26 Jul 2024 19:29:30 +0400 Subject: [PATCH 22/27] Edit the whole text. General improvements --- docs/ka/docs/index.md | 88 +++++++++++++++++++++---------------------- 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/docs/ka/docs/index.md b/docs/ka/docs/index.md index 1cd3822d5..7d7d9686e 100644 --- a/docs/ka/docs/index.md +++ b/docs/ka/docs/index.md @@ -37,7 +37,7 @@ hide: --- FastAPI is a modern, fast (high-performance), web framework for building APIs with Python based on standard Python type hints. -FastAPI არის თანამედროვე, სწრაფი (მაღალი წარმადობის მქონე), Python-ზე დაფუძნებული ვებფრეიმვორქი, რომელიც იყენებს Python-ის სტანდარტულ ტიპთა ინდიკატორებს და საშუალებას გვაძლევს შევქმნათ API-ები. +FastAPI არის თანამედროვე, სწრაფი (მაღალი წარმადობის მქონე), Python-ზე დაფუძნებული ვებფრეიმვორქი, რომელიც იყენებს Python-ის სტანდარტულ ტიპთა ანოტაციებს და საშუალებას გვაძლევს შევქმნათ API-ები. The key features are: მისი ძირითადი მახასიათებლები გახლავთ: @@ -49,7 +49,7 @@ The key features are: * **Fewer bugs**: Reduce about 40% of human (developer) induced errors. * * **ნაკლები პროგრამული ხარვეზი**: ადამიანის (დეველოპერის) მიერ გამოწვეული ხარვეზების ალბათობას ამცირებს დაახლოებით 40 პროცენტით. * * **Intuitive**: Great editor support. Completion everywhere. Less time debugging. -* **ინტუიციურობა**: შესანიშნავი თავსებადობა ტექსტურ რედაქტორებთან. კოდის ავტოდასრულების ფუნქციონალი ხელმისაწვდომია ყველგან. ნაკლებ დროს დახარჯავთ ხარვეზების აღმოფხვრაში. +* **ინტუიციურობა**: შესანიშნავი თავსებადობა ტექსტურ რედაქტორებთან. კოდის ავტოდასრულების ფუნქციონალი ხელმისაწვდომია ყველგან. ნაკლებ დროს დახარჯავთ ხარვეზების აღმოფხვრაში. * **Easy**: Designed to be easy to use and learn. Less time reading docs. * **სიმარტივე**: ტექნოლოგია შემუშავებულია იმგვარად, რომ მარტივად გამოსაყენებელი და ასათვისებელი იყოს. დოკუმენტაციის კითხვაში ნაკლებ დროს დახარჯავთ. * **Short**: Minimize code duplication. Multiple features from each parameter declaration. Fewer bugs. @@ -89,7 +89,7 @@ The key features are:
Kabir Khan - Microsoft (ref)
--- -"_[...] ბოლო დროს, ძალიან ხშირად ვიყენებ **FastAPI**-ს. [...] სიმართლე გითხრათ, მის გამოყენებას ვაპირებ ყველა იმ **ML სერვისისათვის Microsoft-ში**, რაზეც კი ჩემი გუნდი მუშაობს. ამ სერვისებიდან ზოგიერთი ინტეგრირებულია **Windows**-ის ბირთვში, ზოგი კი — **Office**-ის პროდუქტებში._" +"_[...] ბოლო დროს, ძალიან ხშირად ვიყენებ **FastAPI**-ს. [...] სიმართლე გითხრათ, მის გამოყენებას ვაპირებ ყველა იმ **ML სერვისისთვის Microsoft-ში**, რაზეც კი ჩემი გუნდი მუშაობს. აღნიშნული სერვისებიდან ზოგიერთი ინტეგრირებულია **Windows**-ის ბირთვში, ზოგი კი — **Office**-ის პროდუქტებში._"
Kabir Khan - Microsoft (ref)
@@ -100,7 +100,7 @@ The key features are:
Piero Molino, Yaroslav Dudin, and Sai Sumanth Miryala - Uber (ref)
--- -"_ჩვენ გამოვიყენეთ **FastAPI** ბიბლიოთეკა **REST** სერვერის შესაქმნელად, რომლის დანიშნულებაც გახლავთ **პროგნოზების** გაკეთება. [Ludwig-ისთვის]_" +"_ჩვენ გამოვიყენეთ **FastAPI** ბიბლიოთეკა **REST** სერვერის შესაქმნელად, რომლის დანიშნულებაა სხვადასხვა **პროგნოზების** გაკეთება. [Ludwig-ისთვის]_"
Piero Molino, Yaroslav Dudin, and Sai Sumanth Miryala - Uber (ref)
@@ -111,7 +111,7 @@ The key features are:
Kevin Glisson, Marc Vilanova, Forest Monsen - Netflix (ref)
--- -"_**Netflix**-ის სახელით, მოხარული ვარ, გაცნობოთ ჩვენი კრიტიკული ინფრასტრუქტურის, **Dispatch**-ის წყაროს ღია რელიზის შესახებ! [რომელიც შექმნილია **FastAPI**-ს გამოყენებით]_" +"_**Netflix**-ის სახელით, მოხარული ვარ, გაცნობოთ ჩვენი **კრიზისის მართვის** ორკესტრაციის სისტემის, **Dispatch**-ის წყაროს ღია რელიზის შესახებ! [რომელიც შექმნილია **FastAPI**-ს გამოყენებით]_"
Kevin Glisson, Marc Vilanova, Forest Monsen - Netflix (ref)
@@ -146,9 +146,9 @@ The key features are:
Ines Montani - Matthew Honnibal - Explosion AI founders - spaCy creators (ref) - (ref)
--- -"_თუ შესწავლის მიზნით ეძებთ **თანამედროვე ფრეიმვორქს**, რომლითაც შეძლებთ REST API-ების შექმნას, თვალი გადაავლეთ **FastAPI**-ს [...] იგი არის სწრაფი, ასათვისებლად და გამოსაყენებლად მარტივი [...]_" +"_თუ **თანამედროვე ფრეიმვორქს** ეძებთ, რომლითაც REST API-ების შექმნა შესაძლებელია, გაიცანით **FastAPI**-ი [...] იგი არის სწრაფი, მარტივი გამოსაყენებელი და ადვილად შესასწავლი [...]_" -"_ჩვენი **API**-ები გადავაწყეთ **FastAPI**-ზე [...] ვფიქრობ, აღნიშნული ფრეიმვორქი გულგრილს არავის დატოვებს [...]_" +"_ჩვენ გადავაწყეთ ჩვენი **API**-ები **FastAPI**-ზე [...] ვფიქრობ, აღნიშნული ფრეიმვორქი გულგრილს არავის დატოვებს [...]_"
Ines Montani - Matthew Honnibal - Explosion AI founders - spaCy creators (ref) - (ref)
@@ -159,22 +159,22 @@ The key features are:
Deon Pillsbury - Cisco (ref)
--- -"_თუკი ვინმე აპირებს Python-ზე დაფუძნებული, წარმოებაში ჩასაშვებად ვარგისი API-ი შექმნას, შემიძლია **FastAPI**-ის გამოყენება ვურჩიო. იგი არის **დახვეწილი**, **გამოსაყენებლად მარტივი** და **ძალზე მასშტაბირებადი** ტექნოლოგია, იგი გახდა API-ების შემუშავების ჩვენეული სტრატეგიის **ქვაკუთხედი** და სწორედ მისი გამოყენებითაა შემუშავებული ჩვენი არაერთი ავტომატიზაციის სისტემა და სერვისები, როგირიცაა მაგალითად ჩვენი ვირტუალური TAC ინჟინერი._" +"_თუ ვინმე აპირებს Python-ზე დაფუძნებული, წარმოებაში ჩასაშვებად ვარგისი API-ი შექმნას, **FastAPI**-ის გამოყენებას ვურჩევ. იგი არის **დახვეწილი**, **მარტივად გამოსაყენებელი** და **მასშტაბირებადი** ტექნოლოგია. იგი გახდა API-ების შემუშავების ჩვენეული სტრატეგიის **ქვაკუთხედი** და სწორედ მისი გამოყენებითაა შემუშავებული ჩვენი არაერთი ავტომატიზაციის სისტემა და სერვისები, მათ შორის ჩვენი ვირტუალური TAC ინჟინერი._"
Deon Pillsbury - Cisco (ref)
--- ## **Typer**, the FastAPI of CLIs -## **Typer**: ბრძანებათა სტრიქონების FastAPI +## **Typer**: ბრძანებათა სტრიქონის FastAPI If you are building a CLI app to be used in the terminal instead of a web API, check out **Typer**. -თუკი მუშაობთ CLI აპლიკაციაზე, რომელიც გამოყენებულ იქნება ტერმინალში, - ნაცვლად ვებ API-ისა, თვალი შეავლეთ **Typer**-ს. +თუკი მუშაობთ CLI აპლიკაციაზე, რომელიც გამოყენებულ იქნება ტერმინალში ვებ API-ის ნაცვლად, გაეცანით **Typer**-ს. **Typer** is FastAPI's little sibling. And it's intended to be the **FastAPI of CLIs**. ⌨️ 🚀 -**Typer** არის FastAPI-ის პატარა ძამიკო. და ჩაფიქრებულია, რომ იგი იყოს **CLI-ების FastAPI**. ⌨️ 🚀 +**Typer**-ი არის FastAPI-ის პატარა ძამიკო. მისი დანიშნულებაა, იყოს **ბრძანებათა სტრიქონის FastAPI**. ⌨️ 🚀 ## Requirements ## მოთხოვნები @@ -183,9 +183,9 @@ FastAPI stands on the shoulders of giants: FastAPI მხრებზე შემოსდგომია შემდეგ გიგანტებს: * Starlette for the web parts. -* Starlette-ს ვებთან დაკავშირებულ საკითხებში. +* Starlette: ვების ნაწილში. * Pydantic for the data parts. -* Pydantic-ს მონაცემებთან დაკავშირებულ საკითხებში. +* Pydantic: მონაცემების ნაწილში. ## Installation ## ინსტალაცია @@ -256,7 +256,7 @@ async def read_item(item_id: int, q: Union[str, None] = None): **შენიშვნა**: If you don't know, check the _"In a hurry?"_ section about `async` and `await` in the docs. -თუკი ჯერ არ ერკვევით აღნიშნულ საკითხში, `async`-ისა და `await`-ის შესახებ დოკუმენტაციაში თვალი გადაავლეთ განყოფილებას _„გეჩქარებათ?“_. +თუკი ჯერ ვერ ერკვევით აღნიშნულ საკითხში, `async`-ისა და `await`-ის შესახებ დოკუმენტაციაში გადახედეთ განყოფილებას სათაურით: _„გეჩქარებათ?“_. @@ -301,10 +301,10 @@ The command `fastapi dev` reads your `main.py` file, detects the **FastAPI** app `fastapi dev` ბრძანება კითხულობს თქვენს `main.py` ფაილს, მასში **FastAPI** აპლიკაციას აიდენტიფიცირებს და Uvicorn-ის გამოყენებით უშვებს სერვერს. By default, `fastapi dev` will start with auto-reload enabled for local development. -ნაგულისხმევად, ლოკალური დეველოპმენტისთვის, `fastapi dev` ბრძანებით გაშვებული სერვერისათვის აქტივირებული იქნება ავტომატური გადატვირთვის ფუნქცია. +ნაგულისხმევად, ლოკალური დეველოპმენტისთვის, `fastapi dev` ბრძანებით გაშვებული სერვერისთვის აქტივირებული იქნება ავტოგადატვირთვის ფუნქცია. You can read more about it in the FastAPI CLI docs. -ამ საკითხზე დეტალური ინფორმაცია შეგიძლიათ წაიკითხოთ FastAPI CLI-ის დოკუმენტაციაში. +ამ საკითხთან დაკავშირებით დამატებითი ინფორმაცია შეგიძლიათ წაიკითხოთ FastAPI CLI-ის დოკუმენტაციაში. @@ -315,7 +315,7 @@ Open your browser at http://127.0.0.1:8000/items/5?q=somequery. You will see the JSON response as: -დაინახავთ შემდეგნაირ JSON ტიპის მონაცემს: +დაინახავთ JSON ფორმატის მქონე მონაცემს: ```JSON {"item_id": 5, "q": "somequery"} @@ -334,21 +334,21 @@ You already created an API that: * `/items/{item_id}` მისამართს გააჩნია არასავალდებულო სტრიქონის (`str`) ტიპის _საძიებო (query) პარამეტრი_ `q`. ### Interactive API docs -### ინტერაქციული API-დოკუმენტაცია +### ინტერაქციული API დოკუმენტაცია Now go to http://127.0.0.1:8000/docs. -ახლა კი, თქვენს ბრაუზერში გახსენით შემდეგი ბმული: http://127.0.0.1:8000/docs. +გახსენით თქვენი ბრაუზერი და შედით ბმულზე: http://127.0.0.1:8000/docs. You will see the automatic interactive API documentation (provided by Swagger UI): -დაინახავთ ავტომატურად გენერირებულ ინტერაქციულ API-დოკუმენტაციას (რომელიც უზრუნველყოფილია Swagger UI-ის მიერ): +დაინახავთ ავტომატურად გენერირებულ ინტერაქციულ API დოკუმენტაციას (რომელიც უზრუნველყოფილია Swagger UI-ის მიერ): ![Swagger UI](https://fastapi.tiangolo.com/img/index/index-01-swagger-ui-simple.png) ### Alternative API docs -### ალტერნატიული API-დოკუმენტაცია +### ალტერნატიული API დოკუმენტაცია And now, go to http://127.0.0.1:8000/redoc. -თქვენს ბრაუზერში გახსენით შემდეგი ბმული: http://127.0.0.1:8000/redoc. +ბრაუზერში გახსენით შემდეგი ბმული: http://127.0.0.1:8000/redoc. You will see the alternative automatic documentation (provided by ReDoc): დაინახავთ ალტერნატიულ ავტომატურად გენერირებულ დოკუმენტაციას (რომელიც უზრუნველყოფილია ReDoc-ის მიერ): @@ -359,7 +359,7 @@ You will see the alternative automatic documentation (provided by http://127.0.0.1:8000/docs. თქვენს ბრაუზერში გახსენით შემდეგი ბმული: http://127.0.0.1:8000/docs. * The interactive API documentation will be automatically updated, including the new body: -* ინტერაქციული API-დოკუმენტაცია, ახლად დამატებული პროტოტიპის ჩათვლით, განახლდება ავტომატურად: +* ინტერაქციული API დოკუმენტაცია, ახლად დამატებული პროტოტიპის ჩათვლით, განახლდება ავტომატურად: ![Swagger UI](https://fastapi.tiangolo.com/img/index/index-03-swagger-02.png) * Click on the button "Try it out", it allows you to fill the parameters and directly interact with the API: -* დააკლიკეთ "Try it out" ღილაკს. ეს საშუალებას მოგცემთ, განსაზღვროთ პარამეტრები და API-სთან უშუალო ინტერაქციით დაკავდეთ: +* დააკლიკეთ "Try it out" ღილაკს. ეს საშუალებას მოგცემთ, განსაზღვროთ პარამეტრების მნიშვნელობები და API-სთან უშუალო ინტერაქციით დაკავდეთ: ![Swagger UI interaction](https://fastapi.tiangolo.com/img/index/index-04-swagger-03.png) @@ -420,7 +420,7 @@ Now go to http://127.0.0.1:8000/redoc. ახლა კი, თქვენს ბრაუზერში გახსენით შემდეგი ბმული: http://127.0.0.1:8000/redoc. @@ -472,8 +472,8 @@ item: Item * Automatic and clear errors when the data is invalid. * Validation even for deeply nested JSON objects. * მონაცემთა ვალიდაციას: - * ავტომატურად გენერირებულ და მარტივად გასაგებ ცდომილების შეტყობინებებს, როდესაც მონაცემები ვალიდური არ არის. - * ვალიდაციას თუნდაც უკიდურესად კომპლექსური JSON მონაცემებისათვის. + * ავტომატურად გენერირებულ და მარტივად გასაგებ ცდომილების შეტყობინებებს, როდესაც მონაცემები ვალიდური არ იქნება. + * ვალიდაციას თუნდაც უკიდურესად კომპლექსური (მაგ.: მრავალშრიანი) JSON მონაცემებისათვის. * Conversion of input data: coming from the network to Python data and types. Reading from: * JSON. * Path parameters. @@ -482,7 +482,7 @@ item: Item * Headers. * Forms. * Files. -* შემავალ მონაცემთა გარდაქმნას: ქსელიდან შემომავალი მონაცემების გადათარგმნას Python-ისთვის გასაგებ მონაცემებად და ტიპებად. შესაძლებელია შემდეგი სახის მონაცემების წაკითხვა და გარდაქმნა: +* შემავალ მონაცემთა გარდაქმნას: ქსელიდან შემომავალი მონაცემების გადათარგმნას Python-ისთვის გასაგებ მონაცემებად და ტიპებად. შესაძლებელია შემდეგი სახის მონაცემების წაკითხვა და გარდაქმნა: * JSON. * მარშრუტის (Path) პარამეტრები. * საძიებო (Query) პარამეტრები. @@ -496,7 +496,7 @@ item: Item * `UUID` objects. * Database models. * ...and many more. -* გამომავალ მონაცემთა გარდაქმნას: Python-ის მონაცემებისა და ტიპების გადათარგმნას ქსელურ მონაცემებად (JSON-ად). შესაძლებელია შემდეგი სახის მონაცემების გარდაქმნა: +* გამომავალ მონაცემთა გარდაქმნას: Python-ის მონაცემებისა და ტიპების გადათარგმნას ქსელურ მონაცემებად (JSON-ად). შესაძლებელია შემდეგი სახის მონაცემების გარდაქმნა: * Python-ის ტიპები (`str`, `int`, `float`, `bool`, `list` და სხვ.). * `datetime` ობიექტები. * `UUID` ობიექტები. @@ -505,7 +505,7 @@ item: Item * Automatic interactive API documentation, including 2 alternative user interfaces: * Swagger UI. * ReDoc. -* ავტომატურად გენერირებულ ინტერაქციულ API-დოკუმენტაციას, რომელიც მოიცავს 2 ალტერნატიულ ინტერფეისს. ესენია: +* ავტომატურად გენერირებულ ინტერაქციულ API დოკუმენტაციას, რომელიც მოიცავს 2 ალტერნატიულ ინტერფეისს. ესენია: * Swagger UI. * ReDoc. @@ -515,7 +515,7 @@ Coming back to the previous code example, **FastAPI** will: მოდით, მივუბრუნდეთ წინა მაგალითს და გავაანალიზოთ, რას და როგორ გააკეთებს **FastAPI**: * Validate that there is an `item_id` in the path for `GET` and `PUT` requests. -* `GET` და `PUT` ოპერაციებისათვის შეამოწმებს, არის თუ არა მისამართში განსაზღვრული `item_id` პარამეტრი. +* `GET` და `PUT` ოპერაციებისათვის შეამოწმებს, არის თუ არა `item_id` პარამეტრი მითითებული მისამართში. * Validate that the `item_id` is of type `int` for `GET` and `PUT` requests. * If it is not, the client will see a useful, clear error. * `GET` და `PUT` ოპერაციებისათვის გადაამოწმებს, არის თუ არა `item_id` პარამეტრი `int` ტიპის. @@ -523,15 +523,15 @@ Coming back to the previous code example, **FastAPI** will: * Check if there is an optional query parameter named `q` (as in `http://127.0.0.1:8000/items/foo?q=somequery`) for `GET` requests. * As the `q` parameter is declared with `= None`, it is optional. * Without the `None` it would be required (as is the body in the case with `PUT`). -* `GET` ოპერაციებისათვის შეამოწმებს, არის თუ არა წარმოდგენილი არასავალდებულო საძიებო (query) პარამეტრი სახელად `q` (მაგ.: `http://127.0.0.1:8000/items/foo?q=somequery`). - * ვინაიდან `q` პარამეტრი განსაზღვრულია `= None` ბოლოსართით, იგი არასავალდებულოა. - * `None`-ის არარსებობის შემთხვევაში, იგი იქნებოდა სავალდებულო (როგორც მოთხოვნის შიგთავსი `PUT` ოპერაციის შემთხვევაში). +* `GET` ოპერაციებისათვის შეამოწმებს, არის თუ არა მისამართში წარმოდგენილი არასავალდებულო საძიებო (query) პარამეტრი, სახელად `q` (მაგ.: `http://127.0.0.1:8000/items/foo?q=somequery`). + * ვინაიდან `q` პარამეტრი კოდში განსაზღვრულია `= None` ბოლოსართით, იგი არასავალდებულოა. + * `None`-ის არარსებობის შემთხვევაში, იგი იქნებოდა სავალდებულო (მსგავსად მოთხოვნის შიგთავსისა `PUT` ოპერაციის შემთხვევაში). * For `PUT` requests to `/items/{item_id}`, Read the body as JSON: * Check that it has a required attribute `name` that should be a `str`. * Check that it has a required attribute `price` that has to be a `float`. * Check that it has an optional attribute `is_offer`, that should be a `bool`, if present. * All this would also work for deeply nested JSON objects. -* `/items/{item_id}` მისამართზე `PUT` ოპერაციისას, წაიკითხავს მოთხოვნის შიგთავსს როგორც JSON მონაცემს. ამასთან: +* `/items/{item_id}` მისამართზე `PUT` ოპერაციისას, წაიკითხავს მოთხოვნის შიგთავსს, როგორც JSON ფორმატის მქონე მონაცემს. ამასთან: * შეამოწმებს, არის თუ არა განსაზღვრული `str` ტიპის სავალდებულო `name` ატრიბუტი. * შეამოწმებს, არის თუ არა განსაზღვრული `float` ტიპის სავალდებულო `price` ატრიბუტი. * შეამოწმებს, მოთხოვნის შიგთავსში არის თუ არა წარმოდგენილი `bool` ტიპის არასავალდებულო `is_offer` ატრიბუტი. @@ -545,7 +545,7 @@ Coming back to the previous code example, **FastAPI** will: * ინტერაქციული დოკუმენტაციის სისტემებისათვის. * კლიენტის კოდის ავტომატიზირებული გენერირების სისტემებისათვის სხვადასხვა ენაში. * Provide 2 interactive documentation web interfaces directly. -* უშუალოდ უზრუნველყოფს 2 ალტერნატიულ ინტერაქციულ დოკუმენტაციის ვებინტერფეისს. +* უშუალოდ უზრუნველყოფს 2 ალტერნატიული ინტერაქციული დოკუმენტაციის ვებინტერფეისის არსებობას. --- @@ -560,14 +560,14 @@ Try changing the line with: ``` ...from: -...ძველი: +...ადრე: ```Python ... "item_name": item.name ... ``` ...to: -...ახალი: +...ახლა: ```Python ... "item_price": item.price ... @@ -579,7 +579,7 @@ Try changing the line with: ![editor support](https://fastapi.tiangolo.com/img/vscode-completion.png) For a more complete example including more features, see the Tutorial - User Guide. -მეტად სრულყოფილი მაგალითის სანახავად, სადაც განხილული იქნება უფრო მეტი საკითხი, იხილეთ სახელმძღვანელო - მომხმარებლის გზამკვლევი. +მეტად სრულყოფილი მაგალითის სანახავად, სადაც განხილული იქნება უფრო მეტი საკითხი, იხილეთ სახელმძღვანელო — მომხმარებლის გზამკვლევი. **Spoiler alert**: the tutorial - user guide includes: **გაფრთხილება სპოილერის შესახებ**: მომხმარებლის გზამკვლევი მოიცავს შემდეგ საკითხებს: @@ -589,7 +589,7 @@ For a more complete example including more features, see the Dependency Injection** system. -* ძალიან მძლავრი და მარტივად გამოსაყენებელი **პაკეტების ინექციის** სისტემა. +* ძალიან მძლავრი და მარტივად გამოსაყენებელი **პაკეტების ინექცირების** სისტემა. * Security and authentication, including support for **OAuth2** with **JWT tokens** and **HTTP Basic** auth. * უსაფრთხოება და ავთენტიკაცია, მათ შორის **OAuth2**-ის მხარდაჭერა **JWT ტოკენებით** და **HTTP Basic** ავთენტიკაცია. * More advanced (but equally easy) techniques for declaring **deeply nested JSON models** (thanks to Pydantic). @@ -613,7 +613,7 @@ For a more complete example including more features, see the one of the fastest Python frameworks available, only below Starlette and Uvicorn themselves (used internally by FastAPI). (*) -TechEmpower-ის მიუკერძოებელი ტესტები ცხადყოფენ, რომ Uvicorn-ით გაშვებული **FastAPI**-ზე დაფუძნებული აპლიკაციები წარმოაჩენენ FastAPI-ს, როგორც ერთ-ერთ უსწრაფეს ფრეიმვორქს Python-ის არსებულ ფრეიმვორქებს შორის. მას წინ უსწრებენ მხოლოდ Starlette-ი და Uvicorn-ი (რომლებსაც თავის მხრივ, FastAPI-ი იყენებს). (*) +TechEmpower-ის მიუკერძოებელი ტესტები ცხადყოფენ, რომ Uvicorn-ით გაშვებული **FastAPI**-ზე დაფუძნებული აპლიკაციები წარმოაჩენენ FastAPI-ს, როგორც ერთ-ერთ უსწრაფეს ფრეიმვორქს Python-ის არსებულ ფრეიმვორქებს შორის. მას წინ უსწრებენ მხოლოდ Starlette-ი და Uvicorn-ი (რომლებსაც, თავის მხრივ, FastAPI-ი იყენებს). (*) To understand more about it, see the section Benchmarks. ამ ყველაფრის უკეთ გასააზრებლად იხილეთ შემდეგი განყოფილება: წარმადობის ტესტები (Benchmarks). @@ -680,7 +680,7 @@ pip install "fastapi-slim[standard]" ``` The standard extra dependencies are the ones mentioned above. -არასავალდებულო სტანდარტული პაკეტები გახლავთ ზემოთ ნახსენები პაკეტები. +არასავალდებულო სტანდარტულ პაკეტებში იგულისხმება ზემოთ ნახსენები პაკეტები. ## License ## ლიცენზია From dc94bed9222019a879c387ad64c50c9ecb7cd03f Mon Sep 17 00:00:00 2001 From: davidkadaria Date: Fri, 26 Jul 2024 20:02:16 +0400 Subject: [PATCH 23/27] Remove original texts globally. Some general improvements --- docs/ka/docs/index.md | 262 ++++++------------------------------------ 1 file changed, 37 insertions(+), 225 deletions(-) diff --git a/docs/ka/docs/index.md b/docs/ka/docs/index.md index 7d7d9686e..92557d3f1 100644 --- a/docs/ka/docs/index.md +++ b/docs/ka/docs/index.md @@ -36,33 +36,21 @@ hide: --- -FastAPI is a modern, fast (high-performance), web framework for building APIs with Python based on standard Python type hints. FastAPI არის თანამედროვე, სწრაფი (მაღალი წარმადობის მქონე), Python-ზე დაფუძნებული ვებფრეიმვორქი, რომელიც იყენებს Python-ის სტანდარტულ ტიპთა ანოტაციებს და საშუალებას გვაძლევს შევქმნათ API-ები. -The key features are: მისი ძირითადი მახასიათებლები გახლავთ: -* **Fast**: Very high performance, on par with **NodeJS** and **Go** (thanks to Starlette and Pydantic). [One of the fastest Python frameworks available](#performance). * **სისწრაფე**: აქვს ძალიან მაღალი წარმადობა, როგორც **NodeJS**-სა და **Go**-ს (მადლობა Starlette-სა და Pydantic-ს). [ერთ-ერთი უსწრაფესი ფრეიმვორქია Python-ის არსებულ ფრეიმვორქებს შორის](#performance). -* **Fast to code**: Increase the speed to develop features by about 200% to 300%. * * **ეფექტურობა**: დეველოპმენტის პროცესს აჩქარებს დაახლოებით 200-300 პროცენტით. * -* **Fewer bugs**: Reduce about 40% of human (developer) induced errors. * * **ნაკლები პროგრამული ხარვეზი**: ადამიანის (დეველოპერის) მიერ გამოწვეული ხარვეზების ალბათობას ამცირებს დაახლოებით 40 პროცენტით. * -* **Intuitive**: Great editor support. Completion everywhere. Less time debugging. * **ინტუიციურობა**: შესანიშნავი თავსებადობა ტექსტურ რედაქტორებთან. კოდის ავტოდასრულების ფუნქციონალი ხელმისაწვდომია ყველგან. ნაკლებ დროს დახარჯავთ ხარვეზების აღმოფხვრაში. -* **Easy**: Designed to be easy to use and learn. Less time reading docs. * **სიმარტივე**: ტექნოლოგია შემუშავებულია იმგვარად, რომ მარტივად გამოსაყენებელი და ასათვისებელი იყოს. დოკუმენტაციის კითხვაში ნაკლებ დროს დახარჯავთ. -* **Short**: Minimize code duplication. Multiple features from each parameter declaration. Fewer bugs. * **კომპაქტურობა**: კოდის დუბლიკაციის საჭიროება მინიმუმამდეა დაყვანილი. თითოეული პარამეტრის განსაზღვრით აქტიურდება მრავალი ფუნქციონალი. პროგრამული ხარვეზების წარმოქმნის ალბათობა მინიმუმამდეა დაყვანილი. -* **Robust**: Get production-ready code. With automatic interactive documentation. * **მდგრადობა**: მიიღებთ წარმოებაში ჩაშვებისათვის გამზადებულ კოდს. ამას გარდა, მიიღებთ ავტომატურად გენერირებულ ინტერაქციულ დოკუმენტაციას. -* **Standards-based**: Based on (and fully compatible with) the open standards for APIs: OpenAPI (previously known as Swagger) and JSON Schema. * **სტანდარტებზე დაფუძნებულობა**: დაფუძნებულია (და სრულად თავსებადია) API-ებისთვის განსაზღვრულ ღია სტანდარტებზე: OpenAPI (ადრე ცნობილი იყო, როგორც Swagger) და JSON Schema. -* estimation based on tests on an internal development team, building production applications. * ზემოთ მოცემული შეფასებები ეფუძნება წარმოებაში ჩაშვებულ (რეალურ) აპლიკაციებზე მომუშავე შიდა დეველოპმენტის გუნდის ტესტებს. -## Sponsors ## სპონსორები @@ -78,75 +66,42 @@ The key features are: -Other sponsors სხვა სპონსორები -## Opinions ## მოსაზრებები -"_[...] I'm using **FastAPI** a ton these days. [...] I'm actually planning to use it for all of my team's **ML services at Microsoft**. Some of them are getting integrated into the core **Windows** product and some **Office** products._" - -
Kabir Khan - Microsoft (ref)
- ---- "_[...] ბოლო დროს, ძალიან ხშირად ვიყენებ **FastAPI**-ს. [...] სიმართლე გითხრათ, მის გამოყენებას ვაპირებ ყველა იმ **ML სერვისისთვის Microsoft-ში**, რაზეც კი ჩემი გუნდი მუშაობს. აღნიშნული სერვისებიდან ზოგიერთი ინტეგრირებულია **Windows**-ის ბირთვში, ზოგი კი — **Office**-ის პროდუქტებში._"
Kabir Khan - Microsoft (ref)
--- -"_We adopted the **FastAPI** library to spawn a **REST** server that can be queried to obtain **predictions**. [for Ludwig]_" - -
Piero Molino, Yaroslav Dudin, and Sai Sumanth Miryala - Uber (ref)
- ---- -"_ჩვენ გამოვიყენეთ **FastAPI** ბიბლიოთეკა **REST** სერვერის შესაქმნელად, რომლის დანიშნულებაა სხვადასხვა **პროგნოზების** გაკეთება. [Ludwig-ისთვის]_" +"_ჩვენ გამოვიყენეთ **FastAPI** ბიბლიოთეკა **REST** სერვერის შესაქმნელად, რომლის დანიშნულება გახლავთ სხვადასხვა **პროგნოზების** გაკეთება. [Ludwig-ისთვის]_"
Piero Molino, Yaroslav Dudin, and Sai Sumanth Miryala - Uber (ref)
--- -"_**Netflix** is pleased to announce the open-source release of our **crisis management** orchestration framework: **Dispatch**! [built with **FastAPI**]_" +"_**Netflix**-ის სახელით მოხარული ვარ, გაცნობოთ ჩვენი **კრიზისის მართვის** ორკესტრაციის სისტემის, **Dispatch**-ის წყაროს ღია რელიზის შესახებ! [რომელიც შექმნილია **FastAPI**-ის გამოყენებით]_"
Kevin Glisson, Marc Vilanova, Forest Monsen - Netflix (ref)
--- -"_**Netflix**-ის სახელით, მოხარული ვარ, გაცნობოთ ჩვენი **კრიზისის მართვის** ორკესტრაციის სისტემის, **Dispatch**-ის წყაროს ღია რელიზის შესახებ! [რომელიც შექმნილია **FastAPI**-ს გამოყენებით]_" -
Kevin Glisson, Marc Vilanova, Forest Monsen - Netflix (ref)
- ---- - -"_I’m over the moon excited about **FastAPI**. It’s so fun!_" - -
Brian Okken - Python Bytes podcast host (ref)
- ---- "_**FastAPI**-ით ცამდე აღფრთოვანებული ვარ. მისი გამოყენება ძალიან სახალისოა!_"
Brian Okken - Python Bytes podcast host (ref)
--- -"_Honestly, what you've built looks super solid and polished. In many ways, it's what I wanted **Hug** to be - it's really inspiring to see someone build that._" +"_გულწრფელად გეუბნებით, თქვენი ნამუშევარი ძალიან სანდოდ და დახვეწილად გამოიყურება. სწორედ ეს არის ის, რაც მინდოდა **Hug**-ი ყოფილიყო — მართლაც შთამაგონებელია იმის დანახვა, რომ ვიღაცამ შეძლო ამის შექმნა._"
Timothy Crosley - Hug creator (ref)
--- -"_გულწრფელად გეუბნებით, თქვენი ნამუშევარი ძალიან სანდოდ და დახვეწილად გამოიყურება. სწორედ ეს არის ის, რაც მინდოდა **Hug**-ი ყოფილიყო - მართლაც შთამაგონებელია იმის დანახვა, რომ ვიღაცამ შეძლო ამის შექმნა._" - -
Timothy Crosley - Hug creator (ref)
- ---- - -"_If you're looking to learn one **modern framework** for building REST APIs, check out **FastAPI** [...] It's fast, easy to use and easy to learn [...]_" - -"_We've switched over to **FastAPI** for our **APIs** [...] I think you'll like it [...]_" - -
Ines Montani - Matthew Honnibal - Explosion AI founders - spaCy creators (ref) - (ref)
--- -"_თუ **თანამედროვე ფრეიმვორქს** ეძებთ, რომლითაც REST API-ების შექმნა შესაძლებელია, გაიცანით **FastAPI**-ი [...] იგი არის სწრაფი, მარტივი გამოსაყენებელი და ადვილად შესასწავლი [...]_" +"_თუ **თანამედროვე ფრეიმვორქს** ეძებთ, რომლითაც REST API-ების შექმნაა შესაძლებელი, გაეცანით **FastAPI**-ს [...] იგი არის სწრაფი, მარტივად გამოსაყენებელი და ადვილად შესასწავლი [...]_" "_ჩვენ გადავაწყეთ ჩვენი **API**-ები **FastAPI**-ზე [...] ვფიქრობ, აღნიშნული ფრეიმვორქი გულგრილს არავის დატოვებს [...]_" @@ -154,40 +109,27 @@ The key features are: --- -"_If anyone is looking to build a production Python API, I would highly recommend **FastAPI**. It is **beautifully designed**, **simple to use** and **highly scalable**, it has become a **key component** in our API first development strategy and is driving many automations and services such as our Virtual TAC Engineer._" +"_თუ ვინმე აპირებს შექმნას Python-ზე დაფუძნებული, წარმოებაში ჩასაშვებად ვარგისი API-ი, **FastAPI**-ის გამოყენებას ვურჩევ. ეს არის **დახვეწილი**, **მარტივად გამოსაყენებელი** და **მასშტაბირებადი** ტექნოლოგია. იგი გახდა API-ების შემუშავების ჩვენეული სტრატეგიის **ქვაკუთხედი** და სწორედ მისი გამოყენებითაა შემუშავებული ჩვენი არაერთი ავტომატიზაციის სისტემა და სერვისები, მათ შორის ჩვენი ვირტუალური TAC ინჟინერი._"
Deon Pillsbury - Cisco (ref)
--- -"_თუ ვინმე აპირებს Python-ზე დაფუძნებული, წარმოებაში ჩასაშვებად ვარგისი API-ი შექმნას, **FastAPI**-ის გამოყენებას ვურჩევ. იგი არის **დახვეწილი**, **მარტივად გამოსაყენებელი** და **მასშტაბირებადი** ტექნოლოგია. იგი გახდა API-ების შემუშავების ჩვენეული სტრატეგიის **ქვაკუთხედი** და სწორედ მისი გამოყენებითაა შემუშავებული ჩვენი არაერთი ავტომატიზაციის სისტემა და სერვისები, მათ შორის ჩვენი ვირტუალური TAC ინჟინერი._" -
Deon Pillsbury - Cisco (ref)
- ---- - -## **Typer**, the FastAPI of CLIs ## **Typer**: ბრძანებათა სტრიქონის FastAPI -If you are building a CLI app to be used in the terminal instead of a web API, check out **Typer**. -თუკი მუშაობთ CLI აპლიკაციაზე, რომელიც გამოყენებულ იქნება ტერმინალში ვებ API-ის ნაცვლად, გაეცანით **Typer**-ს. +თუკი მუშაობთ CLI აპლიკაციაზე, რომელიც გამოყენებულ იქნება ტერმინალში ვებ API-ის ნაცვლად, თვალი შეავლეთ **Typer**-ს. -**Typer** is FastAPI's little sibling. And it's intended to be the **FastAPI of CLIs**. ⌨️ 🚀 -**Typer**-ი არის FastAPI-ის პატარა ძამიკო. მისი დანიშნულებაა, იყოს **ბრძანებათა სტრიქონის FastAPI**. ⌨️ 🚀 +**Typer**-ი არის FastAPI-ის პატარა ძამიკო. მისი დანიშნულებაა, იყოს **FastAPI ბრძანებათა სტრიქონისათვის**. ⌨️ 🚀 -## Requirements ## მოთხოვნები -FastAPI stands on the shoulders of giants: -FastAPI მხრებზე შემოსდგომია შემდეგ გიგანტებს: +FastAPI მხრებზე შემოსდგომია ისეთ გიგანტებს, როგორებიცაა: -* Starlette for the web parts. * Starlette: ვების ნაწილში. -* Pydantic for the data parts. * Pydantic: მონაცემების ნაწილში. -## Installation ## ინსტალაცია
@@ -200,13 +142,10 @@ $ pip install fastapi
-## Example ## მაგალითი -### Create it ### შევქმნათ -* Create a file `main.py` with: * შექმენით `main.py` ფაილი შემდეგი შიგთავსით: ```Python @@ -228,11 +167,9 @@ def read_item(item_id: int, q: Union[str, None] = None): ```
-Or use async def... ან გამოიყენეთ async def... -If your code uses `async` / `await`, use `async def`: -თუკი თქვენი კოდი იყენებს `async` / `await`-ს, გამოიყენეთ `async def`: +თუ თქვენი კოდი იყენებს `async` / `await` კონსტრუქციას, გამოიყენეთ `async def`: ```Python hl_lines="9 14" from typing import Union @@ -252,18 +189,14 @@ async def read_item(item_id: int, q: Union[str, None] = None): return {"item_id": item_id, "q": q} ``` -**Note**: **შენიშვნა**: -If you don't know, check the _"In a hurry?"_ section about `async` and `await` in the docs. -თუკი ჯერ ვერ ერკვევით აღნიშნულ საკითხში, `async`-ისა და `await`-ის შესახებ დოკუმენტაციაში გადახედეთ განყოფილებას სათაურით: _„გეჩქარებათ?“_. +თუ თქვენ ჯერ ვერ ერკვევით აღნიშნულ საკითხში, `async`-ისა და `await`-ის შესახებ დოკუმენტაციაში გადახედეთ განყოფილებას, სათაურით: _„გეჩქარებათ?“_.
-### Run it ### გავუშვათ -Run the server with: გაუშვით სერვერი შემდეგი ბრძანებით:
@@ -294,74 +227,53 @@ INFO: Application startup complete.
-About the command fastapi dev main.py... fastapi dev main.py ბრძანების შესახებ... -The command `fastapi dev` reads your `main.py` file, detects the **FastAPI** app in it, and starts a server using Uvicorn. `fastapi dev` ბრძანება კითხულობს თქვენს `main.py` ფაილს, მასში **FastAPI** აპლიკაციას აიდენტიფიცირებს და Uvicorn-ის გამოყენებით უშვებს სერვერს. -By default, `fastapi dev` will start with auto-reload enabled for local development. ნაგულისხმევად, ლოკალური დეველოპმენტისთვის, `fastapi dev` ბრძანებით გაშვებული სერვერისთვის აქტივირებული იქნება ავტოგადატვირთვის ფუნქცია. -You can read more about it in the FastAPI CLI docs. ამ საკითხთან დაკავშირებით დამატებითი ინფორმაცია შეგიძლიათ წაიკითხოთ FastAPI CLI-ის დოკუმენტაციაში.
-### Check it ### შევამოწმოთ -Open your browser at http://127.0.0.1:8000/items/5?q=somequery. თქვენს ბრაუზერში გახსენით შემდეგი ბმული: http://127.0.0.1:8000/items/5?q=somequery. -You will see the JSON response as: დაინახავთ JSON ფორმატის მქონე მონაცემს: ```JSON {"item_id": 5, "q": "somequery"} ``` -You already created an API that: ამგვარად, თქვენ უკვე შექმენით API, რომელიც: -* Receives HTTP requests in the _paths_ `/` and `/items/{item_id}`. * იღებს HTTP მოთხოვნებს შემდეგ _მისამართებზე_: `/` და `/items/{item_id}`. -* Both _paths_ take `GET` operations (also known as HTTP _methods_). * ორივე _მისამართი_ ამუშავებს `GET` ოპერაციას (ასევე ცნობილს, როგორც HTTP _მეთოდი_). -* The _path_ `/items/{item_id}` has a _path parameter_ `item_id` that should be an `int`. * `/items/{item_id}` _მისამართს_ გააჩნია _მარშრუტის პარამეტრი_ `item_id`, რომელიც უნდა იყოს მთელი რიცხვის (`int`) ტიპის. -* The _path_ `/items/{item_id}` has an optional `str` _query parameter_ `q`. * `/items/{item_id}` მისამართს გააჩნია არასავალდებულო სტრიქონის (`str`) ტიპის _საძიებო (query) პარამეტრი_ `q`. -### Interactive API docs ### ინტერაქციული API დოკუმენტაცია -Now go to http://127.0.0.1:8000/docs. გახსენით თქვენი ბრაუზერი და შედით ბმულზე: http://127.0.0.1:8000/docs. -You will see the automatic interactive API documentation (provided by Swagger UI): დაინახავთ ავტომატურად გენერირებულ ინტერაქციულ API დოკუმენტაციას (რომელიც უზრუნველყოფილია Swagger UI-ის მიერ): ![Swagger UI](https://fastapi.tiangolo.com/img/index/index-01-swagger-ui-simple.png) -### Alternative API docs ### ალტერნატიული API დოკუმენტაცია -And now, go to http://127.0.0.1:8000/redoc. ბრაუზერში გახსენით შემდეგი ბმული: http://127.0.0.1:8000/redoc. -You will see the alternative automatic documentation (provided by ReDoc): დაინახავთ ალტერნატიულ ავტომატურად გენერირებულ დოკუმენტაციას (რომელიც უზრუნველყოფილია ReDoc-ის მიერ): ![ReDoc](https://fastapi.tiangolo.com/img/index/index-02-redoc-simple.png) -## Example upgrade ## გაუმჯობესების მაგალითი -Now modify the file `main.py` to receive a body from a `PUT` request. -მოდით, შევცვალოთ `main.py` ფაილის შიგთავსი იმგვარად, რომ `PUT` ტიპის მოთხოვნით შევძლოთ მონაცემების მიღება. +მოდით, შევცვალოთ `main.py` ფაილის შიგთავსი იმგვარად, რომ `PUT` ოპერაციით შევძლოთ მონაცემების მიღება. -Declare the body using standard Python types, thanks to Pydantic. მოვახდინოთ მოთხოვნის შიგთავსის პროტოტიპის დეკლარაცია Python-ის სტანდარტული ტიპების გამოყენებით. ამ შესაძლებლობას Pydantic-ს უნდა ვუმადლოდეთ. ```Python hl_lines="4 9-12 25-27" @@ -394,94 +306,63 @@ def update_item(item_id: int, item: Item): return {"item_name": item.name, "item_id": item_id} ``` -The `fastapi dev` server should reload automatically. ცვლილებების შენახვის შემდეგ, `fastapi dev` ბრძანებით გაშვებული სერვერი, წესით და რიგით, ავტომატურად გადაიტვირთება. -### Interactive API docs upgrade ### გავაუმჯობესოთ ინტერაქციული API დოკუმენტაცია -Now go to http://127.0.0.1:8000/docs. თქვენს ბრაუზერში გახსენით შემდეგი ბმული: http://127.0.0.1:8000/docs. -* The interactive API documentation will be automatically updated, including the new body: -* ინტერაქციული API დოკუმენტაცია, ახლად დამატებული პროტოტიპის ჩათვლით, განახლდება ავტომატურად: +* ინტერაქციული API დოკუმენტაცია ავტომატურად განახლდება და ახლად დამატებული შიგთავსის პროტოტიპიც გამოჩნდება: ![Swagger UI](https://fastapi.tiangolo.com/img/index/index-03-swagger-02.png) -* Click on the button "Try it out", it allows you to fill the parameters and directly interact with the API: -* დააკლიკეთ "Try it out" ღილაკს. ეს საშუალებას მოგცემთ, განსაზღვროთ პარამეტრების მნიშვნელობები და API-სთან უშუალო ინტერაქციით დაკავდეთ: +* დააკლიკეთ „Try it out“ ღილაკს. ეს საშუალებას მოგცემთ, ხელით გაწეროთ პარამეტრების მნიშვნელობები და API-სთან უშუალო ინტერაქციით დაკავდეთ: ![Swagger UI interaction](https://fastapi.tiangolo.com/img/index/index-04-swagger-03.png) -* Then click on the "Execute" button, the user interface will communicate with your API, send the parameters, get the results and show them on the screen: -* შემდგომ ამისა, დააკლიკეთ "Execute" ღილაკს, რითაც თქვენ მიერ გახსნილი ინტერფეისი დაუკავშირდება API-ს, გაგზავნის თქვენ მიერ განსაზღვრულ პარამეტრებს, მიიღებს მოთხოვნის შედეგებს და გამოიტანს ეკრანზე: +* შემდგომ ამისა, დააკლიკეთ „Execute“ ღილაკს, რითაც თქვენ მიერ გახსნილი ინტერფეისი დაუკავშირდება API-ს, გაგზავნის თქვენ მიერ განსაზღვრულ პარამეტრებს, მიიღებს მოთხოვნის შედეგებს და გამოიტანს ეკრანზე: ![Swagger UI interaction](https://fastapi.tiangolo.com/img/index/index-05-swagger-04.png) -### Alternative API docs upgrade ### გავაუმჯობესოთ ალტერნატიული API დოკუმენტაცია -And now, go to http://127.0.0.1:8000/redoc. ახლა კი, თქვენს ბრაუზერში გახსენით შემდეგი ბმული: http://127.0.0.1:8000/redoc. -* The alternative documentation will also reflect the new query parameter and body: -* ახლად დამატებული საძიებო პარამეტრი და შიგთავსის პროტოტიპი ალტერნატიულ დოკუმენტაციაშიც აისახება: +* ახლად დამატებული საძიებო პარამეტრი და შიგთავსის პროტოტიპი ალტერნატიულ დოკუმენტაციაშიც ჰპოვებს ასახვას: ![ReDoc](https://fastapi.tiangolo.com/img/index/index-06-redoc-02.png) -### Recap ### შეჯამება -In summary, you declare **once** the types of parameters, body, etc. as function parameters. -მაშასადამე, პარამეტრების, შიგთავსის პროტოტიპებისა და სხვა ტიპების დეკლარირებას ახორციელებთ **ერთჯერადად**. როგორც ეს ხდება ფუნქციისათვის პარამეტრების განსაზღვრისას. +ამრიგად, პარამეტრების, შიგთავსის პროტოტიპებისა და სხვა ტიპების დეკლარირებას ახორციელებთ **ერთჯერადად**. როგორც ფუნქციისათვის პარამეტრების განსაზღვრისას ხდება. -You do that with standard modern Python types. ამას აკეთებთ Python-ის თანამედროვე, სტანდარტული ტიპების გამოყენებით. -You don't have to learn a new syntax, the methods or classes of a specific library, etc. -არ გჭირდებათ რომელიმე ცალკეული ბიბლიოთეკისთვის დამახასიათებელი თავისებური სინტაქსის, მეთოდების ან კლასების შესწავლა. +არ გჭირდებათ რომელიმე ცალკეული ბიბლიოთეკისთვის დამახასიათებელი განსხვავებული სინტაქსის, მეთოდების ან კლასების შესწავლა. -Just standard **Python**. იყენებთ მხოლოდ და მხოლოდ სტანდარტულ **Python**-ს. -For example, for an `int`: -მაგალითად, `int`-ის შემთხვევაში: +მაგალითისათვის, `int`-ის შემთხვევაში: ```Python item_id: int ``` -or for a more complex `Item` model: ან შედარებით რთული `Item` მოდელისთვის: ```Python item: Item ``` -...and with that single declaration you get: ...და ამ ერთი დეკლარაციით თქვენ მიიღებთ: -* Editor support, including: - * Completion. - * Type checks. * რედაქტორის მხარდაჭერას. მათ შორის: * კოდის ავტოდასრულებას. * ტიპთა ვალიდურობის შემოწმებას. -* Validation of data: - * Automatic and clear errors when the data is invalid. - * Validation even for deeply nested JSON objects. * მონაცემთა ვალიდაციას: * ავტომატურად გენერირებულ და მარტივად გასაგებ ცდომილების შეტყობინებებს, როდესაც მონაცემები ვალიდური არ იქნება. * ვალიდაციას თუნდაც უკიდურესად კომპლექსური (მაგ.: მრავალშრიანი) JSON მონაცემებისათვის. -* Conversion of input data: coming from the network to Python data and types. Reading from: - * JSON. - * Path parameters. - * Query parameters. - * Cookies. - * Headers. - * Forms. - * Files. * შემავალ მონაცემთა გარდაქმნას: ქსელიდან შემომავალი მონაცემების გადათარგმნას Python-ისთვის გასაგებ მონაცემებად და ტიპებად. შესაძლებელია შემდეგი სახის მონაცემების წაკითხვა და გარდაქმნა: * JSON. * მარშრუტის (Path) პარამეტრები. @@ -490,200 +371,131 @@ item: Item * თავსართები (Headers). * ფორმები. * ფაილები. -* Conversion of output data: converting from Python data and types to network data (as JSON): - * Convert Python types (`str`, `int`, `float`, `bool`, `list`, etc). - * `datetime` objects. - * `UUID` objects. - * Database models. - * ...and many more. * გამომავალ მონაცემთა გარდაქმნას: Python-ის მონაცემებისა და ტიპების გადათარგმნას ქსელურ მონაცემებად (JSON-ად). შესაძლებელია შემდეგი სახის მონაცემების გარდაქმნა: * Python-ის ტიპები (`str`, `int`, `float`, `bool`, `list` და სხვ.). * `datetime` ობიექტები. * `UUID` ობიექტები. * მონაცემთა ბაზის მოდელები. * ...და მრავალი სხვა. -* Automatic interactive API documentation, including 2 alternative user interfaces: - * Swagger UI. - * ReDoc. * ავტომატურად გენერირებულ ინტერაქციულ API დოკუმენტაციას, რომელიც მოიცავს 2 ალტერნატიულ ინტერფეისს. ესენია: * Swagger UI. * ReDoc. --- -Coming back to the previous code example, **FastAPI** will: მოდით, მივუბრუნდეთ წინა მაგალითს და გავაანალიზოთ, რას და როგორ გააკეთებს **FastAPI**: -* Validate that there is an `item_id` in the path for `GET` and `PUT` requests. * `GET` და `PUT` ოპერაციებისათვის შეამოწმებს, არის თუ არა `item_id` პარამეტრი მითითებული მისამართში. -* Validate that the `item_id` is of type `int` for `GET` and `PUT` requests. - * If it is not, the client will see a useful, clear error. * `GET` და `PUT` ოპერაციებისათვის გადაამოწმებს, არის თუ არა `item_id` პარამეტრი `int` ტიპის. * თუ ეს ასე არ იქნება, კლიენტი იხილავს გამოსადეგ, მარტივად გასაგებ ცდომილების შეტყობინებას. -* Check if there is an optional query parameter named `q` (as in `http://127.0.0.1:8000/items/foo?q=somequery`) for `GET` requests. - * As the `q` parameter is declared with `= None`, it is optional. - * Without the `None` it would be required (as is the body in the case with `PUT`). * `GET` ოპერაციებისათვის შეამოწმებს, არის თუ არა მისამართში წარმოდგენილი არასავალდებულო საძიებო (query) პარამეტრი, სახელად `q` (მაგ.: `http://127.0.0.1:8000/items/foo?q=somequery`). * ვინაიდან `q` პარამეტრი კოდში განსაზღვრულია `= None` ბოლოსართით, იგი არასავალდებულოა. * `None`-ის არარსებობის შემთხვევაში, იგი იქნებოდა სავალდებულო (მსგავსად მოთხოვნის შიგთავსისა `PUT` ოპერაციის შემთხვევაში). -* For `PUT` requests to `/items/{item_id}`, Read the body as JSON: - * Check that it has a required attribute `name` that should be a `str`. - * Check that it has a required attribute `price` that has to be a `float`. - * Check that it has an optional attribute `is_offer`, that should be a `bool`, if present. - * All this would also work for deeply nested JSON objects. * `/items/{item_id}` მისამართზე `PUT` ოპერაციისას, წაიკითხავს მოთხოვნის შიგთავსს, როგორც JSON ფორმატის მქონე მონაცემს. ამასთან: * შეამოწმებს, არის თუ არა განსაზღვრული `str` ტიპის სავალდებულო `name` ატრიბუტი. * შეამოწმებს, არის თუ არა განსაზღვრული `float` ტიპის სავალდებულო `price` ატრიბუტი. * შეამოწმებს, მოთხოვნის შიგთავსში არის თუ არა წარმოდგენილი `bool` ტიპის არასავალდებულო `is_offer` ატრიბუტი. * ყველაფერი ეს იმუშავებს ნებისმიერი სახის (მაგ.: მრავალშრიანი) JSON მონაცემისათვის. * Convert from and to JSON automatically. -* ავტომატურად გარდაქმნის JSON-ს სხვა სახის მონაცემად და პირიქით. -* Document everything with OpenAPI, that can be used by: - * Interactive documentation systems. - * Automatic client code generation systems, for many languages. +* ავტომატურად გარდაქმნის JSON-ს სხვა ფორმატის მქონე მონაცემად და პირიქით. * OpenAPI-ით მოახდენს ყველაფრის დოკუმენტირებას, რაც გამოსადეგი იქნება: * ინტერაქციული დოკუმენტაციის სისტემებისათვის. * კლიენტის კოდის ავტომატიზირებული გენერირების სისტემებისათვის სხვადასხვა ენაში. -* Provide 2 interactive documentation web interfaces directly. * უშუალოდ უზრუნველყოფს 2 ალტერნატიული ინტერაქციული დოკუმენტაციის ვებინტერფეისის არსებობას. --- -We just scratched the surface, but you already get the idea of how it all works. -ჯერჯერობით ჩვენ რაც განვიხილეთ, მხოლოდ და მხოლოდ ზედაპირია აისბერგისა, მაგრამ, ასე თუ ისე, ალბათ გაიაზრეთ ზოგადი პრინციპი, თუ როგორ მუშაობს ეს ყველაფერი. +ჯერჯერობით ჩვენ რაც განვიხილეთ, მხოლოდ და მხოლოდ ზედაპირია აისბერგისა, მაგრამ, ასე თუ ისე, ალბათ გაიაზრეთ ამ ყველაფრის მუშაობის ზოგადი პრინციპი. -Try changing the line with: სცადეთ შემდეგ ხაზში ცვლილების შეტანა: ```Python return {"item_name": item.name, "item_id": item_id} ``` -...from: ...ადრე: ```Python ... "item_name": item.name ... ``` -...to: ...ახლა: ```Python ... "item_price": item.price ... ``` -...and see how your editor will auto-complete the attributes and know their types: ...და დააკვირდით, როგორ მოახდენს თქვენი ტექსტური რედაქტორი ატრიბუტების ავტოდასრულებას და მათი ტიპების იდენტიფიცირებას: ![editor support](https://fastapi.tiangolo.com/img/vscode-completion.png) -For a more complete example including more features, see the Tutorial - User Guide. მეტად სრულყოფილი მაგალითის სანახავად, სადაც განხილული იქნება უფრო მეტი საკითხი, იხილეთ სახელმძღვანელო — მომხმარებლის გზამკვლევი. -**Spoiler alert**: the tutorial - user guide includes: **გაფრთხილება სპოილერის შესახებ**: მომხმარებლის გზამკვლევი მოიცავს შემდეგ საკითხებს: -* Declaration of **parameters** from other different places as: **headers**, **cookies**, **form fields** and **files**. * **პარამეტრების** დეკლარირება სხვა წყაროებიდან, როგორებიცაა: **თავსართები (headers)**, **cookie-ები**, **ფორმის ველები** და **ფაილები**. -* How to set **validation constraints** as `maximum_length` or `regex`. * **შემმოწმებლებისათვის (ვალიდატორებისათვის) შეზღუდვების** დაწესება, როგორებიცაა: `maximum_length` ან `regex`. -* A very powerful and easy to use **Dependency Injection** system. * ძალიან მძლავრი და მარტივად გამოსაყენებელი **პაკეტების ინექცირების** სისტემა. -* Security and authentication, including support for **OAuth2** with **JWT tokens** and **HTTP Basic** auth. * უსაფრთხოება და ავთენტიკაცია, მათ შორის **OAuth2**-ის მხარდაჭერა **JWT ტოკენებით** და **HTTP Basic** ავთენტიკაცია. -* More advanced (but equally easy) techniques for declaring **deeply nested JSON models** (thanks to Pydantic). * მეტად სიღრმისეული (მაგრამ ისეთივე მარტივი) მეთოდოლოგიები **კომპლექსური (მრავალშრიანი) JSON მოდელების** დეკლარირებისათვის (მადლობა Pydantic-ს). -* **GraphQL** integration with Strawberry and other libraries. -* **GraphQL**-ის ინტეგრირება Strawberry-სთან და სხვა ბიბლიოთეკებთან. -* Many extra features (thanks to Starlette) as: - * **WebSockets** - * extremely easy tests based on HTTPX and `pytest` - * **CORS** - * **Cookie Sessions** - * ...and more. -* არაერთი სხვა თავისებურება (მადლობა Starlette-ს), როგორებიცაა: +* **GraphQL**-ის ინტეგრირება Strawberry-სთან და სხვა ბიბლიოთეკებთან ერთად. +* არაერთი სხვა ფუნქციონალი (მადლობა Starlette-ს), როგორებიცაა: * **ვებსოკეტები** * HTTPX-ზე და `pytest`-ზე დაფუძნებული უმარტივესი ტესტები * **CORS** * **Cookie სესიები** * ...და მრავალი სხვა. -## Performance ## წარმადობა -Independent TechEmpower benchmarks show **FastAPI** applications running under Uvicorn as one of the fastest Python frameworks available, only below Starlette and Uvicorn themselves (used internally by FastAPI). (*) TechEmpower-ის მიუკერძოებელი ტესტები ცხადყოფენ, რომ Uvicorn-ით გაშვებული **FastAPI**-ზე დაფუძნებული აპლიკაციები წარმოაჩენენ FastAPI-ს, როგორც ერთ-ერთ უსწრაფეს ფრეიმვორქს Python-ის არსებულ ფრეიმვორქებს შორის. მას წინ უსწრებენ მხოლოდ Starlette-ი და Uvicorn-ი (რომლებსაც, თავის მხრივ, FastAPI-ი იყენებს). (*) -To understand more about it, see the section Benchmarks. ამ ყველაფრის უკეთ გასააზრებლად იხილეთ შემდეგი განყოფილება: წარმადობის ტესტები (Benchmarks). -## Dependencies ## პაკეტები -Used by Pydantic: -Pydantic-ის მიერ გამოიყენება: +Pydantic-ის მიერ გამოიყენება შემდეგი პაკეტები: -* email_validator - for email validation. -* email_validator - მეილის ვალიდაციისათვის. -* pydantic-settings - for settings management. -* pydantic-settings - პარამეტრების სამართავად. -* pydantic-extra-types - for extra types to be used with Pydantic. -* pydantic-extra-types - Pydantic-თან ერთად გამოყენებადი დამატებითი ტიპებისათვის. +* email_validator — მეილის ვალიდაციისათვის. +* pydantic-settings — პარამეტრების სამართავად. +* pydantic-extra-types — Pydantic-თან ერთად გამოყენებადი დამატებითი ტიპებისათვის. -Used by Starlette: -Starlette-ის მიერ გამოიყენება: +Starlette-ის მიერ გამოიყენება შემდეგი პაკეტები: -* httpx - Required if you want to use the `TestClient`. -* httpx - სავალდებულოა, თუკი გსურთ, რომ გამოიყენოთ `TestClient`-ი . -* jinja2 - Required if you want to use the default template configuration. -* jinja2 - სავალდებულოა, თუკი გსურთ, რომ გამოიყენოთ შაბლონის ნაგულისხმევი კონფიგურაცია. -* python-multipart - Required if you want to support form "parsing", with `request.form()`. -* python-multipart - სავალდებულოა, თუკი გსურთ, რომ გქონდეთ ფორმების „პარსინგის“ შესაძლებლობა `request.form()`-ის გამოყენებით. +* httpx — სავალდებულოა, თუკი გსურთ, რომ გამოიყენოთ `TestClient`-ი . +* jinja2 — სავალდებულოა, თუკი გსურთ, რომ გამოიყენოთ შაბლონის ნაგულისხმევი კონფიგურაცია. +* python-multipart — სავალდებულოა, თუკი გსურთ, რომ გქონდეთ ფორმების „პარსინგის“ შესაძლებლობა `request.form()`-ის გამოყენებით. -Used by FastAPI / Starlette: -FastAPI / Starlette-ის მიერ გამოიყენება: +FastAPI / Starlette-ის მიერ გამოიყენება შემდეგი პაკეტები: -* uvicorn - for the server that loads and serves your application. -* uvicorn - სერვერისთვის, რომელიც ემსახურება თქვენი აპლიკაციის ჩატვირთვას და მუშაობას. -* `fastapi-cli` - to provide the `fastapi` command. -* `fastapi-cli` - უზრუნველყოფს `fastapi` ბრძანების ხელმისაწვდომობას. +* uvicorn — სერვერისთვის, რომელიც ემსახურება თქვენი აპლიკაციის ჩატვირთვას და მუშაობას. +* `fastapi-cli` — უზრუნველყოფს `fastapi` ბრძანების ხელმისაწვდომობას. -When you install `fastapi` it comes these standard dependencies. `fastapi`-ის ინსტალირებისას, მასთან ერთად ინსტალირდება ზემოთ ჩამოთვლილი სტანდარტული პაკეტებიც. -Additional optional dependencies: -დამატებითი არასავალდებულო პაკეტები: +დამატებითი არასავალდებულო პაკეტები გახლავთ: -* orjson - Required if you want to use `ORJSONResponse`. -* orjson - სავალდებულოა, თუკი გსურთ, რომ გამოიყენოთ `ORJSONResponse`-ი. -* ujson - Required if you want to use `UJSONResponse`. -* ujson - სავალდებულოა, თუკი გსურთ, რომ გამოიყენოთ `UJSONResponse`-ი. +* orjson — სავალდებულოა, თუკი გსურთ, რომ გამოიყენოთ `ORJSONResponse`-ი. +* ujson — სავალდებულოა, თუკი გსურთ, რომ გამოიყენოთ `UJSONResponse`-ი. ## `fastapi-slim` -If you don't want the extra standard optional dependencies, install `fastapi-slim` instead. თუ არ გჭირდებათ დამატებითი არასავალდებულო სტანდარტული პაკეტები, `fastapi`-ის ნაცვლად დააინსტალირეთ `fastapi-slim`-ი. -When you install with: როდესაც ინსტალაციას ახორციელებთ შემდეგი ბრძანებით: ```bash pip install fastapi ``` -...it includes the same code and dependencies as: ...ინსტალირდება იგივე კოდი და პაკეტები, რაც დაინსტალირდებოდა შემდეგი ბრძანების გამოყენების შემთხვევაში: ```bash pip install "fastapi-slim[standard]" ``` -The standard extra dependencies are the ones mentioned above. -არასავალდებულო სტანდარტულ პაკეტებში იგულისხმება ზემოთ ნახსენები პაკეტები. +არასავალდებულო სტანდარტულ პაკეტებში იგულისხმება ზემოთ მოხსენიებული პაკეტები. -## License ## ლიცენზია -This project is licensed under the terms of the MIT license. წინამდებარე პროექტზე ვრცელდება MIT ლიცენზიით გათვალისწინებული წესები და პირობები. From 3462fbb8684d3c428404f254fccaae941778dbee Mon Sep 17 00:00:00 2001 From: davidkadaria Date: Fri, 26 Jul 2024 21:19:20 +0400 Subject: [PATCH 24/27] General improvements --- docs/ka/docs/index.md | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/docs/ka/docs/index.md b/docs/ka/docs/index.md index 92557d3f1..1c731df1b 100644 --- a/docs/ka/docs/index.md +++ b/docs/ka/docs/index.md @@ -40,16 +40,16 @@ FastAPI არის თანამედროვე, სწრაფი (მ მისი ძირითადი მახასიათებლები გახლავთ: -* **სისწრაფე**: აქვს ძალიან მაღალი წარმადობა, როგორც **NodeJS**-სა და **Go**-ს (მადლობა Starlette-სა და Pydantic-ს). [ერთ-ერთი უსწრაფესი ფრეიმვორქია Python-ის არსებულ ფრეიმვორქებს შორის](#performance). +* **სისწრაფე**: **NodeJS**-ისა და **Go**-ს მსგავსად აქვს ძალიან მაღალი წარმადობა (რასაც Starlette-სა და Pydantic-ს უნდა ვუმადლოდეთ). [ერთ-ერთი უსწრაფესი ფრეიმვორქია Python-ის არსებულ ფრეიმვორქებს შორის](#performance). * **ეფექტურობა**: დეველოპმენტის პროცესს აჩქარებს დაახლოებით 200-300 პროცენტით. * * **ნაკლები პროგრამული ხარვეზი**: ადამიანის (დეველოპერის) მიერ გამოწვეული ხარვეზების ალბათობას ამცირებს დაახლოებით 40 პროცენტით. * -* **ინტუიციურობა**: შესანიშნავი თავსებადობა ტექსტურ რედაქტორებთან. კოდის ავტოდასრულების ფუნქციონალი ხელმისაწვდომია ყველგან. ნაკლებ დროს დახარჯავთ ხარვეზების აღმოფხვრაში. +* **ინტუიციურობა**: შესანიშნავი თავსებადობა ტექსტურ რედაქტორებთან. კოდის ავტოდასრულების ფუნქციონალი ხელმისაწვდომია სრული მასშტაბით. ნაკლებ დროს დახარჯავთ ხარვეზების აღმოფხვრაში. * **სიმარტივე**: ტექნოლოგია შემუშავებულია იმგვარად, რომ მარტივად გამოსაყენებელი და ასათვისებელი იყოს. დოკუმენტაციის კითხვაში ნაკლებ დროს დახარჯავთ. * **კომპაქტურობა**: კოდის დუბლიკაციის საჭიროება მინიმუმამდეა დაყვანილი. თითოეული პარამეტრის განსაზღვრით აქტიურდება მრავალი ფუნქციონალი. პროგრამული ხარვეზების წარმოქმნის ალბათობა მინიმუმამდეა დაყვანილი. * **მდგრადობა**: მიიღებთ წარმოებაში ჩაშვებისათვის გამზადებულ კოდს. ამას გარდა, მიიღებთ ავტომატურად გენერირებულ ინტერაქციულ დოკუმენტაციას. * **სტანდარტებზე დაფუძნებულობა**: დაფუძნებულია (და სრულად თავსებადია) API-ებისთვის განსაზღვრულ ღია სტანდარტებზე: OpenAPI (ადრე ცნობილი იყო, როგორც Swagger) და JSON Schema. -* ზემოთ მოცემული შეფასებები ეფუძნება წარმოებაში ჩაშვებულ (რეალურ) აპლიკაციებზე მომუშავე შიდა დეველოპმენტის გუნდის ტესტებს. +* ზემოთ მოცემული შეფასებები ეფუძნება წარმოებაში ჩაშვებულ (რეალურ) აპლიკაციებზე მომუშავე შიდა დეველოპმენტის გუნდის მიერ ჩატარებულ ტესტებს. ## სპონსორები @@ -82,7 +82,7 @@ FastAPI არის თანამედროვე, სწრაფი (მ --- -"_**Netflix**-ის სახელით მოხარული ვარ, გაცნობოთ ჩვენი **კრიზისის მართვის** ორკესტრაციის სისტემის, **Dispatch**-ის წყაროს ღია რელიზის შესახებ! [რომელიც შექმნილია **FastAPI**-ის გამოყენებით]_" +"_**Netflix**-ის სახელით მოხარული ვარ გაცნობოთ ჩვენი **კრიზისის მართვის** ორკესტრაციის სისტემის, **Dispatch**-ის წყაროს ღია რელიზის შესახებ! [რომელიც შექმნილია **FastAPI**-ის გამოყენებით]_"
Kevin Glisson, Marc Vilanova, Forest Monsen - Netflix (ref)
@@ -101,7 +101,7 @@ FastAPI არის თანამედროვე, სწრაფი (მ --- --- -"_თუ **თანამედროვე ფრეიმვორქს** ეძებთ, რომლითაც REST API-ების შექმნაა შესაძლებელი, გაეცანით **FastAPI**-ს [...] იგი არის სწრაფი, მარტივად გამოსაყენებელი და ადვილად შესასწავლი [...]_" +"_თუ **თანამედროვე ფრეიმვორქს** ეძებთ, რომლითაც REST API-ების შექმნაა შესაძლებელი, გადახედეთ **FastAPI**-ს [...] იგი არის სწრაფი, მარტივად გამოსაყენებელი და ადვილად შესასწავლი [...]_" "_ჩვენ გადავაწყეთ ჩვენი **API**-ები **FastAPI**-ზე [...] ვფიქრობ, აღნიშნული ფრეიმვორქი გულგრილს არავის დატოვებს [...]_" @@ -119,9 +119,9 @@ FastAPI არის თანამედროვე, სწრაფი (მ -თუკი მუშაობთ CLI აპლიკაციაზე, რომელიც გამოყენებულ იქნება ტერმინალში ვებ API-ის ნაცვლად, თვალი შეავლეთ **Typer**-ს. +თუკი მუშაობთ CLI აპლიკაციაზე, რომელიც ვებ API-ის ნაცვლად გამოყენებულ იქნება ტერმინალში, თვალი შეავლეთ **Typer**-ს. -**Typer**-ი არის FastAPI-ის პატარა ძამიკო. მისი დანიშნულებაა, იყოს **FastAPI ბრძანებათა სტრიქონისათვის**. ⌨️ 🚀 +**Typer**-ი არის FastAPI-ის პატარა ძამიკო. იგი ჩაფიქრებულია, როგორც **FastAPI ბრძანებათა სტრიქონისათვის**. ⌨️ 🚀 ## მოთხოვნები @@ -191,7 +191,7 @@ async def read_item(item_id: int, q: Union[str, None] = None): **შენიშვნა**: -თუ თქვენ ჯერ ვერ ერკვევით აღნიშნულ საკითხში, `async`-ისა და `await`-ის შესახებ დოკუმენტაციაში გადახედეთ განყოფილებას, სათაურით: _„გეჩქარებათ?“_. +თუ თქვენ ჯერ არ ხართ გარკვეული აღნიშნულ საკითხში, `async`-ისა და `await`-ის შესახებ დოკუმენტაციაში გადახედეთ განყოფილებას, სათაურით: _„გეჩქარებათ?“_. @@ -239,7 +239,7 @@ INFO: Application startup complete. ### შევამოწმოთ -თქვენს ბრაუზერში გახსენით შემდეგი ბმული: http://127.0.0.1:8000/items/5?q=somequery. +ბრაუზერში გახსენით შემდეგი ბმული: http://127.0.0.1:8000/items/5?q=somequery. დაინახავთ JSON ფორმატის მქონე მონაცემს: @@ -250,9 +250,9 @@ INFO: Application startup complete. ამგვარად, თქვენ უკვე შექმენით API, რომელიც: * იღებს HTTP მოთხოვნებს შემდეგ _მისამართებზე_: `/` და `/items/{item_id}`. -* ორივე _მისამართი_ ამუშავებს `GET` ოპერაციას (ასევე ცნობილს, როგორც HTTP _მეთოდი_). +* ორივე _მისამართი_ ამუშავებს `GET` ოპერაციას (ასევე ცნობილია, როგორც HTTP _მეთოდი_). * `/items/{item_id}` _მისამართს_ გააჩნია _მარშრუტის პარამეტრი_ `item_id`, რომელიც უნდა იყოს მთელი რიცხვის (`int`) ტიპის. -* `/items/{item_id}` მისამართს გააჩნია არასავალდებულო სტრიქონის (`str`) ტიპის _საძიებო (query) პარამეტრი_ `q`. +* `/items/{item_id}` მისამართი შეიცავს სტრიქონის (`str`) ტიპის არასავალდებულო `q` _საძიებო (query) პარამეტრს_. ### ინტერაქციული API დოკუმენტაცია @@ -310,24 +310,24 @@ def update_item(item_id: int, item: Item): ### გავაუმჯობესოთ ინტერაქციული API დოკუმენტაცია -თქვენს ბრაუზერში გახსენით შემდეგი ბმული: http://127.0.0.1:8000/docs. +ბრაუზერში გახსენით შემდეგი ბმული: http://127.0.0.1:8000/docs. * ინტერაქციული API დოკუმენტაცია ავტომატურად განახლდება და ახლად დამატებული შიგთავსის პროტოტიპიც გამოჩნდება: ![Swagger UI](https://fastapi.tiangolo.com/img/index/index-03-swagger-02.png) -* დააკლიკეთ „Try it out“ ღილაკს. ეს საშუალებას მოგცემთ, ხელით გაწეროთ პარამეტრების მნიშვნელობები და API-სთან უშუალო ინტერაქციით დაკავდეთ: +* დააწკაპუნეთ „Try it out“ ღილაკზე. ეს საშუალებას მოგცემთ, ხელით გაწეროთ პარამეტრების მნიშვნელობები და API-სთან უშუალო ინტერაქციით დაკავდეთ: ![Swagger UI interaction](https://fastapi.tiangolo.com/img/index/index-04-swagger-03.png) -* შემდგომ ამისა, დააკლიკეთ „Execute“ ღილაკს, რითაც თქვენ მიერ გახსნილი ინტერფეისი დაუკავშირდება API-ს, გაგზავნის თქვენ მიერ განსაზღვრულ პარამეტრებს, მიიღებს მოთხოვნის შედეგებს და გამოიტანს ეკრანზე: +* შემდგომ ამისა, დააწკაპუნეთ „Execute“ ღილაკზე, რითაც თქვენ მიერ გახსნილი ინტერფეისი დაუკავშირდება API-ს, გაგზავნის თქვენ მიერ განსაზღვრულ პარამეტრებს, მიიღებს მოთხოვნის შედეგებს და გამოიტანს ეკრანზე: ![Swagger UI interaction](https://fastapi.tiangolo.com/img/index/index-05-swagger-04.png) ### გავაუმჯობესოთ ალტერნატიული API დოკუმენტაცია -ახლა კი, თქვენს ბრაუზერში გახსენით შემდეგი ბმული: http://127.0.0.1:8000/redoc. +ახლა კი, ბრაუზერში გახსენით შემდეგი ბმული: http://127.0.0.1:8000/redoc. * ახლად დამატებული საძიებო პარამეტრი და შიგთავსის პროტოტიპი ალტერნატიულ დოკუმენტაციაშიც ჰპოვებს ასახვას: From 6d82901635c0a96939d4fbf86f6741926cc8ef03 Mon Sep 17 00:00:00 2001 From: davidkadaria Date: Fri, 26 Jul 2024 21:20:28 +0400 Subject: [PATCH 25/27] General improvements --- docs/ka/docs/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ka/docs/index.md b/docs/ka/docs/index.md index 1c731df1b..587ccd743 100644 --- a/docs/ka/docs/index.md +++ b/docs/ka/docs/index.md @@ -498,4 +498,4 @@ pip install "fastapi-slim[standard]" ## ლიცენზია -წინამდებარე პროექტზე ვრცელდება MIT ლიცენზიით გათვალისწინებული წესები და პირობები. +აღნიშნულ პროექტზე ვრცელდება MIT ლიცენზიით გათვალისწინებული წესები და პირობები. From b5bd2af9933060ad55244e72b51a2f4645218c36 Mon Sep 17 00:00:00 2001 From: davidkadaria Date: Fri, 26 Jul 2024 21:41:28 +0400 Subject: [PATCH 26/27] General updates: format file and make some improvements (including typo fixes) --- docs/ka/docs/index.md | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/docs/ka/docs/index.md b/docs/ka/docs/index.md index 587ccd743..999052f2b 100644 --- a/docs/ka/docs/index.md +++ b/docs/ka/docs/index.md @@ -40,14 +40,14 @@ FastAPI არის თანამედროვე, სწრაფი (მ მისი ძირითადი მახასიათებლები გახლავთ: -* **სისწრაფე**: **NodeJS**-ისა და **Go**-ს მსგავსად აქვს ძალიან მაღალი წარმადობა (რასაც Starlette-სა და Pydantic-ს უნდა ვუმადლოდეთ). [ერთ-ერთი უსწრაფესი ფრეიმვორქია Python-ის არსებულ ფრეიმვორქებს შორის](#performance). +* **სისწრაფე**: **NodeJS**-ისა და **Go**-ს მსგავსად აქვს ძალიან მაღალი წარმადობა (რასაც Starlette-ს და Pydantic-ს უნდა ვუმადლოდეთ). [ერთ-ერთი უსწრაფესი ფრეიმვორქია Python-ის არსებულ ფრეიმვორქებს შორის](#performance). * **ეფექტურობა**: დეველოპმენტის პროცესს აჩქარებს დაახლოებით 200-300 პროცენტით. * * **ნაკლები პროგრამული ხარვეზი**: ადამიანის (დეველოპერის) მიერ გამოწვეული ხარვეზების ალბათობას ამცირებს დაახლოებით 40 პროცენტით. * * **ინტუიციურობა**: შესანიშნავი თავსებადობა ტექსტურ რედაქტორებთან. კოდის ავტოდასრულების ფუნქციონალი ხელმისაწვდომია სრული მასშტაბით. ნაკლებ დროს დახარჯავთ ხარვეზების აღმოფხვრაში. * **სიმარტივე**: ტექნოლოგია შემუშავებულია იმგვარად, რომ მარტივად გამოსაყენებელი და ასათვისებელი იყოს. დოკუმენტაციის კითხვაში ნაკლებ დროს დახარჯავთ. * **კომპაქტურობა**: კოდის დუბლიკაციის საჭიროება მინიმუმამდეა დაყვანილი. თითოეული პარამეტრის განსაზღვრით აქტიურდება მრავალი ფუნქციონალი. პროგრამული ხარვეზების წარმოქმნის ალბათობა მინიმუმამდეა დაყვანილი. * **მდგრადობა**: მიიღებთ წარმოებაში ჩაშვებისათვის გამზადებულ კოდს. ამას გარდა, მიიღებთ ავტომატურად გენერირებულ ინტერაქციულ დოკუმენტაციას. -* **სტანდარტებზე დაფუძნებულობა**: დაფუძნებულია (და სრულად თავსებადია) API-ებისთვის განსაზღვრულ ღია სტანდარტებზე: OpenAPI (ადრე ცნობილი იყო, როგორც Swagger) და JSON Schema. +* **სტანდარტებზე დაფუძნებულობა**: დაფუძნებულია (და სრულად თავსებადია) API-იებისთვის განსაზღვრულ ღია სტანდარტებზე: OpenAPI (ადრე ცნობილი იყო, როგორც Swagger) და JSON Schema. * ზემოთ მოცემული შეფასებები ეფუძნება წარმოებაში ჩაშვებულ (რეალურ) აპლიკაციებზე მომუშავე შიდა დეველოპმენტის გუნდის მიერ ჩატარებულ ტესტებს. @@ -100,10 +100,9 @@ FastAPI არის თანამედროვე, სწრაფი (მ --- ---- "_თუ **თანამედროვე ფრეიმვორქს** ეძებთ, რომლითაც REST API-ების შექმნაა შესაძლებელი, გადახედეთ **FastAPI**-ს [...] იგი არის სწრაფი, მარტივად გამოსაყენებელი და ადვილად შესასწავლი [...]_" -"_ჩვენ გადავაწყეთ ჩვენი **API**-ები **FastAPI**-ზე [...] ვფიქრობ, აღნიშნული ფრეიმვორქი გულგრილს არავის დატოვებს [...]_" +"_ჩვენ გადავაწყვეთ ჩვენი **API**-ები **FastAPI**-ზე [...] ვფიქრობ, აღნიშნული ფრეიმვორქი გულგრილს არავის დატოვებს [...]_"
Ines Montani - Matthew Honnibal - Explosion AI founders - spaCy creators (ref) - (ref)
@@ -312,7 +311,6 @@ def update_item(item_id: int, item: Item): ბრაუზერში გახსენით შემდეგი ბმული: http://127.0.0.1:8000/docs. - * ინტერაქციული API დოკუმენტაცია ავტომატურად განახლდება და ახლად დამატებული შიგთავსის პროტოტიპიც გამოჩნდება: ![Swagger UI](https://fastapi.tiangolo.com/img/index/index-03-swagger-02.png) @@ -329,7 +327,7 @@ def update_item(item_id: int, item: Item): ახლა კი, ბრაუზერში გახსენით შემდეგი ბმული: http://127.0.0.1:8000/redoc. -* ახლად დამატებული საძიებო პარამეტრი და შიგთავსის პროტოტიპი ალტერნატიულ დოკუმენტაციაშიც ჰპოვებს ასახვას: +* ახლად დამატებული საძიებო პარამეტრი და შიგთავსის პროტოტიპი ალტერნატიულ დოკუმენტაციაშიც პოვებს ასახვას: ![ReDoc](https://fastapi.tiangolo.com/img/index/index-06-redoc-02.png) @@ -371,7 +369,7 @@ item: Item * თავსართები (Headers). * ფორმები. * ფაილები. -* გამომავალ მონაცემთა გარდაქმნას: Python-ის მონაცემებისა და ტიპების გადათარგმნას ქსელურ მონაცემებად (JSON-ად). შესაძლებელია შემდეგი სახის მონაცემების გარდაქმნა: +* გამომავალ მონაცემთა გარდაქმნას: Python-ის მონაცემებისა და ტიპების გადათარგმნას ქსელურ მონაცემებად (JSON-ში). შესაძლებელია შემდეგი სახის მონაცემების გარდაქმნა: * Python-ის ტიპები (`str`, `int`, `float`, `bool`, `list` და სხვ.). * `datetime` ობიექტები. * `UUID` ობიექტები. @@ -396,11 +394,10 @@ item: Item * შეამოწმებს, არის თუ არა განსაზღვრული `float` ტიპის სავალდებულო `price` ატრიბუტი. * შეამოწმებს, მოთხოვნის შიგთავსში არის თუ არა წარმოდგენილი `bool` ტიპის არასავალდებულო `is_offer` ატრიბუტი. * ყველაფერი ეს იმუშავებს ნებისმიერი სახის (მაგ.: მრავალშრიანი) JSON მონაცემისათვის. -* Convert from and to JSON automatically. * ავტომატურად გარდაქმნის JSON-ს სხვა ფორმატის მქონე მონაცემად და პირიქით. * OpenAPI-ით მოახდენს ყველაფრის დოკუმენტირებას, რაც გამოსადეგი იქნება: * ინტერაქციული დოკუმენტაციის სისტემებისათვის. - * კლიენტის კოდის ავტომატიზირებული გენერირების სისტემებისათვის სხვადასხვა ენაში. + * კლიენტის კოდის ავტომატიზებული გენერირების სისტემებისათვის სხვადასხვა ენაში. * უშუალოდ უზრუნველყოფს 2 ალტერნატიული ინტერაქციული დოკუმენტაციის ვებინტერფეისის არსებობას. --- From 2d71131c53bcaf0816b6b5f6d50a905f7d506a2d Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 26 Jul 2024 17:56:27 +0000 Subject: [PATCH 27/27] =?UTF-8?q?=F0=9F=8E=A8=20[pre-commit.ci]=20Auto=20f?= =?UTF-8?q?ormat=20from=20pre-commit.com=20hooks?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ka/docs/index.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/ka/docs/index.md b/docs/ka/docs/index.md index 999052f2b..8cfd86d00 100644 --- a/docs/ka/docs/index.md +++ b/docs/ka/docs/index.md @@ -339,7 +339,7 @@ def update_item(item_id: int, item: Item): არ გჭირდებათ რომელიმე ცალკეული ბიბლიოთეკისთვის დამახასიათებელი განსხვავებული სინტაქსის, მეთოდების ან კლასების შესწავლა. -იყენებთ მხოლოდ და მხოლოდ სტანდარტულ **Python**-ს. +იყენებთ მხოლოდ და მხოლოდ სტანდარტულ **Python**-ს. მაგალითისათვის, `int`-ის შემთხვევაში: @@ -393,11 +393,11 @@ item: Item * შეამოწმებს, არის თუ არა განსაზღვრული `str` ტიპის სავალდებულო `name` ატრიბუტი. * შეამოწმებს, არის თუ არა განსაზღვრული `float` ტიპის სავალდებულო `price` ატრიბუტი. * შეამოწმებს, მოთხოვნის შიგთავსში არის თუ არა წარმოდგენილი `bool` ტიპის არასავალდებულო `is_offer` ატრიბუტი. - * ყველაფერი ეს იმუშავებს ნებისმიერი სახის (მაგ.: მრავალშრიანი) JSON მონაცემისათვის. + * ყველაფერი ეს იმუშავებს ნებისმიერი სახის (მაგ.: მრავალშრიანი) JSON მონაცემისათვის. * ავტომატურად გარდაქმნის JSON-ს სხვა ფორმატის მქონე მონაცემად და პირიქით. * OpenAPI-ით მოახდენს ყველაფრის დოკუმენტირებას, რაც გამოსადეგი იქნება: * ინტერაქციული დოკუმენტაციის სისტემებისათვის. - * კლიენტის კოდის ავტომატიზებული გენერირების სისტემებისათვის სხვადასხვა ენაში. + * კლიენტის კოდის ავტომატიზებული გენერირების სისტემებისათვის სხვადასხვა ენაში. * უშუალოდ უზრუნველყოფს 2 ალტერნატიული ინტერაქციული დოკუმენტაციის ვებინტერფეისის არსებობას. ---