From a42b1ff04ed3d637f63cb7f9d1b5be1b464e793f Mon Sep 17 00:00:00 2001 From: The Scheduler Date: Sun, 7 Dec 2025 21:35:20 +0000 Subject: [PATCH] Sync fastapi docs from b5ca1324 on 2025-12-07 --- .SYNC_INFO.md | 14 + .github/DISCUSSION_TEMPLATE/questions.yml | 158 + .github/DISCUSSION_TEMPLATE/translations.yml | 45 + .github/FUNDING.yml | 1 + .github/ISSUE_TEMPLATE/config.yml | 16 + .github/ISSUE_TEMPLATE/privileged.yml | 22 + .github/dependabot.yml | 16 + .github/labeler.yml | 39 + .github/workflows/add-to-project.yml | 18 + .github/workflows/build-docs.yml | 124 + .github/workflows/contributors.yml | 53 + .github/workflows/deploy-docs.yml | 86 + .github/workflows/detect-conflicts.yml | 19 + .github/workflows/issue-manager.yml | 51 + .github/workflows/label-approved.yml | 49 + .github/workflows/labeler.yml | 33 + .github/workflows/latest-changes.yml | 46 + .github/workflows/notify-translations.yml | 59 + .github/workflows/people.yml | 54 + .github/workflows/pre-commit.yml | 88 + .github/workflows/publish.yml | 42 + .github/workflows/smokeshow.yml | 60 + .github/workflows/sponsors.yml | 52 + .github/workflows/test-redistribute.yml | 69 + .github/workflows/test.yml | 159 + .github/workflows/topic-repos.yml | 40 + .github/workflows/translate.yml | 77 + .gitignore | 33 + .pre-commit-config.yaml | 29 + CITATION.cff | 24 + CONTRIBUTING.md | 1 + LICENSE | 21 + README.md | 562 ++ SECURITY.md | 31 + docs/de/docs/_llm-test.md | 503 ++ docs/de/docs/about/index.md | 3 + docs/de/docs/advanced/additional-responses.md | 247 + .../docs/advanced/additional-status-codes.md | 41 + .../de/docs/advanced/advanced-dependencies.md | 163 + docs/de/docs/advanced/async-tests.md | 99 + docs/de/docs/advanced/behind-a-proxy.md | 466 ++ docs/de/docs/advanced/custom-response.md | 312 + docs/de/docs/advanced/dataclasses.md | 95 + docs/de/docs/advanced/events.md | 165 + docs/de/docs/advanced/generate-clients.md | 208 + docs/de/docs/advanced/index.md | 21 + docs/de/docs/advanced/middleware.md | 97 + docs/de/docs/advanced/openapi-callbacks.md | 186 + docs/de/docs/advanced/openapi-webhooks.md | 55 + .../path-operation-advanced-configuration.md | 204 + .../advanced/response-change-status-code.md | 31 + docs/de/docs/advanced/response-cookies.md | 51 + docs/de/docs/advanced/response-directly.md | 65 + docs/de/docs/advanced/response-headers.md | 41 + .../docs/advanced/security/http-basic-auth.md | 107 + docs/de/docs/advanced/security/index.md | 19 + .../docs/advanced/security/oauth2-scopes.md | 274 + docs/de/docs/advanced/settings.md | 346 + docs/de/docs/advanced/sub-applications.md | 67 + docs/de/docs/advanced/templates.md | 126 + docs/de/docs/advanced/testing-dependencies.md | 54 + docs/de/docs/advanced/testing-events.md | 12 + docs/de/docs/advanced/testing-websockets.md | 13 + .../docs/advanced/using-request-directly.md | 56 + docs/de/docs/advanced/websockets.md | 186 + docs/de/docs/advanced/wsgi.md | 35 + docs/de/docs/alternatives.md | 485 ++ docs/de/docs/async.md | 444 + docs/de/docs/benchmarks.md | 34 + docs/de/docs/deployment/cloud.md | 24 + docs/de/docs/deployment/concepts.md | 321 + docs/de/docs/deployment/docker.md | 620 ++ docs/de/docs/deployment/fastapicloud.md | 65 + docs/de/docs/deployment/https.md | 231 + docs/de/docs/deployment/index.md | 23 + docs/de/docs/deployment/manually.md | 157 + docs/de/docs/deployment/server-workers.md | 139 + docs/de/docs/deployment/versions.md | 93 + docs/de/docs/environment-variables.md | 298 + docs/de/docs/fastapi-cli.md | 75 + docs/de/docs/features.md | 201 + docs/de/docs/help-fastapi.md | 256 + docs/de/docs/history-design-future.md | 79 + .../authentication-error-status-code.md | 17 + docs/de/docs/how-to/conditional-openapi.md | 56 + docs/de/docs/how-to/configure-swagger-ui.md | 70 + docs/de/docs/how-to/custom-docs-ui-assets.md | 185 + .../docs/how-to/custom-request-and-route.md | 109 + docs/de/docs/how-to/extending-openapi.md | 80 + docs/de/docs/how-to/general.md | 39 + docs/de/docs/how-to/graphql.md | 60 + docs/de/docs/how-to/index.md | 13 + ...migrate-from-pydantic-v1-to-pydantic-v2.md | 133 + .../docs/how-to/separate-openapi-schemas.md | 104 + docs/de/docs/how-to/testing-database.md | 7 + docs/de/docs/index.md | 559 ++ docs/de/docs/learn/index.md | 5 + docs/de/docs/project-generation.md | 28 + docs/de/docs/python-types.md | 576 ++ docs/de/docs/resources/index.md | 3 + docs/de/docs/tutorial/background-tasks.md | 86 + docs/de/docs/tutorial/bigger-applications.md | 556 ++ docs/de/docs/tutorial/body-fields.md | 59 + docs/de/docs/tutorial/body-multiple-params.md | 171 + docs/de/docs/tutorial/body-nested-models.md | 247 + docs/de/docs/tutorial/body-updates.md | 116 + docs/de/docs/tutorial/body.md | 173 + docs/de/docs/tutorial/cookie-param-models.md | 76 + docs/de/docs/tutorial/cookie-params.md | 45 + docs/de/docs/tutorial/cors.md | 88 + docs/de/docs/tutorial/debugging.md | 113 + .../dependencies/classes-as-dependencies.md | 288 + ...pendencies-in-path-operation-decorators.md | 69 + .../dependencies/dependencies-with-yield.md | 288 + .../dependencies/global-dependencies.md | 15 + docs/de/docs/tutorial/dependencies/index.md | 249 + .../tutorial/dependencies/sub-dependencies.md | 105 + docs/de/docs/tutorial/encoder.md | 35 + docs/de/docs/tutorial/extra-data-types.md | 62 + docs/de/docs/tutorial/extra-models.md | 222 + docs/de/docs/tutorial/first-steps.md | 380 + docs/de/docs/tutorial/handling-errors.md | 255 + docs/de/docs/tutorial/header-param-models.md | 72 + docs/de/docs/tutorial/header-params.md | 91 + docs/de/docs/tutorial/index.md | 95 + docs/de/docs/tutorial/metadata.md | 120 + docs/de/docs/tutorial/middleware.md | 95 + .../tutorial/path-operation-configuration.md | 107 + .../path-params-numeric-validations.md | 154 + docs/de/docs/tutorial/path-params.md | 257 + docs/de/docs/tutorial/query-param-models.md | 68 + .../tutorial/query-params-str-validations.md | 487 ++ docs/de/docs/tutorial/query-params.md | 187 + docs/de/docs/tutorial/request-files.md | 176 + docs/de/docs/tutorial/request-form-models.md | 78 + .../docs/tutorial/request-forms-and-files.md | 41 + docs/de/docs/tutorial/request-forms.md | 73 + docs/de/docs/tutorial/response-model.md | 357 + docs/de/docs/tutorial/response-status-code.md | 101 + docs/de/docs/tutorial/schema-extra-example.md | 224 + docs/de/docs/tutorial/security/first-steps.md | 205 + .../tutorial/security/get-current-user.md | 105 + docs/de/docs/tutorial/security/index.md | 106 + docs/de/docs/tutorial/security/oauth2-jwt.md | 273 + .../docs/tutorial/security/simple-oauth2.md | 289 + docs/de/docs/tutorial/sql-databases.md | 357 + docs/de/docs/tutorial/static-files.md | 40 + docs/de/docs/tutorial/testing.md | 244 + docs/de/docs/virtual-environments.md | 862 ++ docs/de/llm-prompt.md | 340 + docs/de/mkdocs.yml | 1 + docs/em/docs/advanced/additional-responses.md | 247 + .../docs/advanced/additional-status-codes.md | 41 + .../em/docs/advanced/advanced-dependencies.md | 65 + docs/em/docs/advanced/async-tests.md | 93 + docs/em/docs/advanced/behind-a-proxy.md | 359 + docs/em/docs/advanced/custom-response.md | 303 + docs/em/docs/advanced/dataclasses.md | 97 + docs/em/docs/advanced/events.md | 163 + docs/em/docs/advanced/generate-clients.md | 238 + docs/em/docs/advanced/index.md | 27 + docs/em/docs/advanced/middleware.md | 95 + docs/em/docs/advanced/openapi-callbacks.md | 186 + .../path-operation-advanced-configuration.md | 172 + .../advanced/response-change-status-code.md | 31 + docs/em/docs/advanced/response-cookies.md | 51 + docs/em/docs/advanced/response-directly.md | 65 + docs/em/docs/advanced/response-headers.md | 41 + .../docs/advanced/security/http-basic-auth.md | 107 + docs/em/docs/advanced/security/index.md | 19 + .../docs/advanced/security/oauth2-scopes.md | 274 + docs/em/docs/advanced/settings.md | 396 + docs/em/docs/advanced/sub-applications.md | 67 + docs/em/docs/advanced/templates.md | 84 + docs/em/docs/advanced/testing-dependencies.md | 53 + docs/em/docs/advanced/testing-events.md | 5 + docs/em/docs/advanced/testing-websockets.md | 13 + .../docs/advanced/using-request-directly.md | 56 + docs/em/docs/advanced/websockets.md | 186 + docs/em/docs/advanced/wsgi.md | 35 + docs/em/docs/alternatives.md | 485 ++ docs/em/docs/async.md | 442 + docs/em/docs/benchmarks.md | 34 + docs/em/docs/deployment/concepts.md | 323 + docs/em/docs/deployment/docker.md | 731 ++ docs/em/docs/deployment/https.md | 199 + docs/em/docs/deployment/index.md | 21 + docs/em/docs/deployment/manually.md | 159 + docs/em/docs/deployment/server-workers.md | 181 + docs/em/docs/deployment/versions.md | 93 + docs/em/docs/features.md | 201 + docs/em/docs/help-fastapi.md | 269 + docs/em/docs/history-design-future.md | 79 + docs/em/docs/how-to/conditional-openapi.md | 56 + .../docs/how-to/custom-request-and-route.md | 109 + docs/em/docs/how-to/extending-openapi.md | 83 + docs/em/docs/how-to/graphql.md | 60 + docs/em/docs/index.md | 474 ++ docs/em/docs/project-generation.md | 84 + docs/em/docs/python-types.md | 542 ++ docs/em/docs/tutorial/background-tasks.md | 84 + docs/em/docs/tutorial/bigger-applications.md | 530 ++ docs/em/docs/tutorial/body-fields.md | 60 + docs/em/docs/tutorial/body-multiple-params.md | 171 + docs/em/docs/tutorial/body-nested-models.md | 247 + docs/em/docs/tutorial/body-updates.md | 100 + docs/em/docs/tutorial/body.md | 162 + docs/em/docs/tutorial/cookie-params.md | 35 + docs/em/docs/tutorial/cors.md | 85 + docs/em/docs/tutorial/debugging.md | 113 + .../dependencies/classes-as-dependencies.md | 180 + ...pendencies-in-path-operation-decorators.md | 69 + .../dependencies/dependencies-with-yield.md | 232 + .../dependencies/global-dependencies.md | 15 + docs/em/docs/tutorial/dependencies/index.md | 212 + .../tutorial/dependencies/sub-dependencies.md | 86 + docs/em/docs/tutorial/encoder.md | 35 + docs/em/docs/tutorial/extra-data-types.md | 62 + docs/em/docs/tutorial/extra-models.md | 211 + docs/em/docs/tutorial/first-steps.md | 335 + docs/em/docs/tutorial/handling-errors.md | 257 + docs/em/docs/tutorial/header-params.md | 91 + docs/em/docs/tutorial/index.md | 83 + docs/em/docs/tutorial/metadata.md | 111 + docs/em/docs/tutorial/middleware.md | 66 + .../tutorial/path-operation-configuration.md | 107 + .../path-params-numeric-validations.md | 117 + docs/em/docs/tutorial/path-params.md | 256 + .../tutorial/query-params-str-validations.md | 320 + docs/em/docs/tutorial/query-params.md | 187 + docs/em/docs/tutorial/request-files.md | 172 + .../docs/tutorial/request-forms-and-files.md | 37 + docs/em/docs/tutorial/request-forms.md | 69 + docs/em/docs/tutorial/response-model.md | 340 + docs/em/docs/tutorial/response-status-code.md | 101 + docs/em/docs/tutorial/schema-extra-example.md | 110 + docs/em/docs/tutorial/security/first-steps.md | 197 + .../tutorial/security/get-current-user.md | 105 + docs/em/docs/tutorial/security/index.md | 106 + docs/em/docs/tutorial/security/oauth2-jwt.md | 275 + .../docs/tutorial/security/simple-oauth2.md | 289 + docs/em/docs/tutorial/static-files.md | 40 + docs/em/docs/tutorial/testing.md | 185 + docs/em/mkdocs.yml | 1 + docs/en/data/contributors.yml | 570 ++ docs/en/data/external_links.yml | 430 + docs/en/data/github_sponsors.yml | 397 + docs/en/data/members.yml | 22 + docs/en/data/people.yml | 702 ++ docs/en/data/skip_users.yml | 5 + docs/en/data/sponsors.yml | 73 + docs/en/data/sponsors_badge.yml | 50 + docs/en/data/topic_repos.yml | 495 ++ docs/en/data/translation_reviewers.yml | 1850 +++++ docs/en/data/translators.yml | 550 ++ docs/en/docs/_llm-test.md | 503 ++ docs/en/docs/about/index.md | 3 + docs/en/docs/advanced/additional-responses.md | 247 + .../docs/advanced/additional-status-codes.md | 41 + .../en/docs/advanced/advanced-dependencies.md | 163 + docs/en/docs/advanced/async-tests.md | 99 + docs/en/docs/advanced/behind-a-proxy.md | 466 ++ docs/en/docs/advanced/custom-response.md | 313 + docs/en/docs/advanced/dataclasses.md | 95 + docs/en/docs/advanced/events.md | 165 + docs/en/docs/advanced/generate-clients.md | 208 + docs/en/docs/advanced/index.md | 21 + docs/en/docs/advanced/middleware.md | 97 + docs/en/docs/advanced/openapi-callbacks.md | 186 + docs/en/docs/advanced/openapi-webhooks.md | 55 + .../path-operation-advanced-configuration.md | 204 + .../advanced/response-change-status-code.md | 31 + docs/en/docs/advanced/response-cookies.md | 51 + docs/en/docs/advanced/response-directly.md | 65 + docs/en/docs/advanced/response-headers.md | 41 + .../docs/advanced/security/http-basic-auth.md | 107 + docs/en/docs/advanced/security/index.md | 19 + .../docs/advanced/security/oauth2-scopes.md | 274 + docs/en/docs/advanced/settings.md | 346 + docs/en/docs/advanced/sub-applications.md | 67 + docs/en/docs/advanced/templates.md | 126 + docs/en/docs/advanced/testing-dependencies.md | 53 + docs/en/docs/advanced/testing-events.md | 12 + docs/en/docs/advanced/testing-websockets.md | 13 + .../docs/advanced/using-request-directly.md | 56 + docs/en/docs/advanced/websockets.md | 186 + docs/en/docs/advanced/wsgi.md | 35 + docs/en/docs/alternatives.md | 485 ++ docs/en/docs/async.md | 444 + docs/en/docs/benchmarks.md | 34 + docs/en/docs/contributing.md | 452 + docs/en/docs/css/custom.css | 205 + docs/en/docs/css/termynal.css | 111 + docs/en/docs/deployment/cloud.md | 24 + docs/en/docs/deployment/concepts.md | 321 + docs/en/docs/deployment/docker.md | 620 ++ docs/en/docs/deployment/fastapicloud.md | 65 + docs/en/docs/deployment/https.md | 231 + docs/en/docs/deployment/index.md | 23 + docs/en/docs/deployment/manually.md | 157 + docs/en/docs/deployment/server-workers.md | 139 + docs/en/docs/deployment/versions.md | 93 + docs/en/docs/environment-variables.md | 298 + docs/en/docs/external-links.md | 39 + docs/en/docs/fastapi-cli.md | 75 + docs/en/docs/fastapi-people.md | 305 + docs/en/docs/features.md | 201 + docs/en/docs/help-fastapi.md | 256 + docs/en/docs/history-design-future.md | 79 + .../authentication-error-status-code.md | 17 + docs/en/docs/how-to/conditional-openapi.md | 56 + docs/en/docs/how-to/configure-swagger-ui.md | 70 + docs/en/docs/how-to/custom-docs-ui-assets.md | 185 + .../docs/how-to/custom-request-and-route.md | 109 + docs/en/docs/how-to/extending-openapi.md | 80 + docs/en/docs/how-to/general.md | 39 + docs/en/docs/how-to/graphql.md | 60 + docs/en/docs/how-to/index.md | 13 + ...migrate-from-pydantic-v1-to-pydantic-v2.md | 133 + .../docs/how-to/separate-openapi-schemas.md | 104 + docs/en/docs/how-to/testing-database.md | 7 + .../concurrent-burgers-01.png | Bin 0 -> 203390 bytes .../concurrent-burgers-02.png | Bin 0 -> 166992 bytes .../concurrent-burgers-03.png | Bin 0 -> 172943 bytes .../concurrent-burgers-04.png | Bin 0 -> 163423 bytes .../concurrent-burgers-05.png | Bin 0 -> 159869 bytes .../concurrent-burgers-06.png | Bin 0 -> 164838 bytes .../concurrent-burgers-07.png | Bin 0 -> 169968 bytes .../parallel-burgers/parallel-burgers-01.png | Bin 0 -> 225993 bytes .../parallel-burgers/parallel-burgers-02.png | Bin 0 -> 203644 bytes .../parallel-burgers/parallel-burgers-03.png | Bin 0 -> 168628 bytes .../parallel-burgers/parallel-burgers-04.png | Bin 0 -> 219429 bytes .../parallel-burgers/parallel-burgers-05.png | Bin 0 -> 185116 bytes .../parallel-burgers/parallel-burgers-06.png | Bin 0 -> 157113 bytes .../docs/img/deployment/concepts/image01.png | Bin 0 -> 124827 bytes .../concepts/process-ram.drawio.svg | 297 + docs/en/docs/img/deployment/deta/image01.png | Bin 0 -> 39996 bytes docs/en/docs/img/deployment/deta/image02.png | Bin 0 -> 48297 bytes docs/en/docs/img/deployment/deta/image03.png | Bin 0 -> 52704 bytes docs/en/docs/img/deployment/deta/image04.png | Bin 0 -> 49760 bytes docs/en/docs/img/deployment/deta/image05.png | Bin 0 -> 33130 bytes docs/en/docs/img/deployment/deta/image06.png | Bin 0 -> 105270 bytes .../img/deployment/https/https.drawio.svg | 907 ++ .../img/deployment/https/https01.drawio.svg | 131 + .../img/deployment/https/https02.drawio.svg | 245 + .../img/deployment/https/https03.drawio.svg | 715 ++ .../img/deployment/https/https04.drawio.svg | 419 + .../img/deployment/https/https05.drawio.svg | 641 ++ .../img/deployment/https/https06.drawio.svg | 673 ++ .../img/deployment/https/https07.drawio.svg | 540 ++ .../img/deployment/https/https08.drawio.svg | 625 ++ docs/en/docs/img/favicon.png | Bin 0 -> 5043 bytes docs/en/docs/img/github-social-preview.png | Bin 0 -> 62301 bytes docs/en/docs/img/github-social-preview.svg | 75 + docs/en/docs/img/icon-white.svg | 34 + .../img/index/index-01-swagger-ui-simple.png | Bin 0 -> 74158 bytes .../docs/img/index/index-02-redoc-simple.png | Bin 0 -> 68468 bytes .../en/docs/img/index/index-03-swagger-02.png | Bin 0 -> 75099 bytes .../en/docs/img/index/index-04-swagger-03.png | Bin 0 -> 67572 bytes .../en/docs/img/index/index-05-swagger-04.png | Bin 0 -> 71441 bytes docs/en/docs/img/index/index-06-redoc-02.png | Bin 0 -> 78842 bytes .../docs/img/logo-margin/logo-teal-vector.svg | 55 + docs/en/docs/img/logo-margin/logo-teal.png | Bin 0 -> 19843 bytes docs/en/docs/img/logo-margin/logo-teal.svg | 59 + .../en/docs/img/logo-margin/logo-white-bg.png | Bin 0 -> 20841 bytes docs/en/docs/img/logo-teal-vector.svg | 51 + docs/en/docs/img/logo-teal.svg | 56 + docs/en/docs/img/pycharm-completion.png | Bin 0 -> 51205 bytes docs/en/docs/img/python-types/image01.png | Bin 0 -> 17722 bytes docs/en/docs/img/python-types/image02.png | Bin 0 -> 47799 bytes docs/en/docs/img/python-types/image03.png | Bin 0 -> 42872 bytes docs/en/docs/img/python-types/image04.png | Bin 0 -> 18604 bytes docs/en/docs/img/python-types/image05.png | Bin 0 -> 42637 bytes docs/en/docs/img/python-types/image06.png | Bin 0 -> 29581 bytes docs/en/docs/img/sponsors/blockbee-banner.png | Bin 0 -> 11353 bytes docs/en/docs/img/sponsors/blockbee.png | Bin 0 -> 13006 bytes docs/en/docs/img/sponsors/budget-insight.svg | 22 + docs/en/docs/img/sponsors/bump-sh-banner.png | Bin 0 -> 10139 bytes docs/en/docs/img/sponsors/bump-sh-banner.svg | 48 + docs/en/docs/img/sponsors/bump-sh.png | Bin 0 -> 18609 bytes docs/en/docs/img/sponsors/bump-sh.svg | 56 + docs/en/docs/img/sponsors/calmcode.jpg | Bin 0 -> 16949 bytes docs/en/docs/img/sponsors/classiq-banner.png | Bin 0 -> 5321 bytes docs/en/docs/img/sponsors/classiq.png | Bin 0 -> 6286 bytes docs/en/docs/img/sponsors/codacy.png | Bin 0 -> 30480 bytes .../docs/img/sponsors/coderabbit-banner.png | Bin 0 -> 9522 bytes docs/en/docs/img/sponsors/coderabbit.png | Bin 0 -> 21167 bytes .../en/docs/img/sponsors/coherence-banner.png | Bin 0 -> 18388 bytes docs/en/docs/img/sponsors/coherence.png | Bin 0 -> 27886 bytes docs/en/docs/img/sponsors/cryptapi-banner.svg | 1375 ++++ docs/en/docs/img/sponsors/cryptapi.svg | 1216 +++ docs/en/docs/img/sponsors/databento.svg | 144 + docs/en/docs/img/sponsors/deta-banner.svg | 125 + docs/en/docs/img/sponsors/deta.svg | 65 + .../docs/img/sponsors/docarray-top-banner.svg | 1 + docs/en/docs/img/sponsors/docarray.svg | 1 + docs/en/docs/img/sponsors/doist-banner.svg | 46 + docs/en/docs/img/sponsors/doist.svg | 54 + docs/en/docs/img/sponsors/dribia.png | Bin 0 -> 19211 bytes docs/en/docs/img/sponsors/dropbase-banner.svg | 117 + docs/en/docs/img/sponsors/dropbase.svg | 124 + docs/en/docs/img/sponsors/exoflare.png | Bin 0 -> 10556 bytes .../sponsors/fastapi-course-bundle-banner.png | Bin 0 -> 16235 bytes .../sponsors/fastapi-course-bundle-banner.svg | 293 + docs/en/docs/img/sponsors/fastapicloud.png | Bin 0 -> 16777 bytes docs/en/docs/img/sponsors/fern-banner.png | Bin 0 -> 8801 bytes docs/en/docs/img/sponsors/fern-banner.svg | 1 + docs/en/docs/img/sponsors/fern.png | Bin 0 -> 10924 bytes docs/en/docs/img/sponsors/fern.svg | 1 + docs/en/docs/img/sponsors/fine-banner.png | Bin 0 -> 11458 bytes docs/en/docs/img/sponsors/fine.png | Bin 0 -> 21925 bytes docs/en/docs/img/sponsors/flint.png | Bin 0 -> 10409 bytes docs/en/docs/img/sponsors/greptile-banner.png | Bin 0 -> 7222 bytes docs/en/docs/img/sponsors/greptile.png | Bin 0 -> 7381 bytes .../en/docs/img/sponsors/haystack-fastapi.svg | 192 + docs/en/docs/img/sponsors/imgwhale-banner.svg | 14 + docs/en/docs/img/sponsors/imgwhale.svg | 28 + docs/en/docs/img/sponsors/ines-course.jpg | Bin 0 -> 11727 bytes docs/en/docs/img/sponsors/interviewpal.png | Bin 0 -> 25890 bytes docs/en/docs/img/sponsors/investsuite.svg | 124 + docs/en/docs/img/sponsors/jina-ai-banner.png | Bin 0 -> 14153 bytes docs/en/docs/img/sponsors/jina-ai.png | Bin 0 -> 26112 bytes docs/en/docs/img/sponsors/jina-banner.svg | 233 + docs/en/docs/img/sponsors/jina-top-banner.svg | 1 + docs/en/docs/img/sponsors/jina.svg | 1981 +++++ docs/en/docs/img/sponsors/jina2.svg | 1 + docs/en/docs/img/sponsors/kong-banner.png | Bin 0 -> 21116 bytes docs/en/docs/img/sponsors/kong.png | Bin 0 -> 30723 bytes docs/en/docs/img/sponsors/lambdatest.png | Bin 0 -> 6320 bytes docs/en/docs/img/sponsors/liblab-banner.png | Bin 0 -> 12453 bytes docs/en/docs/img/sponsors/liblab.png | Bin 0 -> 8637 bytes docs/en/docs/img/sponsors/mobbai-banner.png | Bin 0 -> 3704 bytes docs/en/docs/img/sponsors/mobbai.png | Bin 0 -> 4137 bytes docs/en/docs/img/sponsors/mongodb-banner.png | Bin 0 -> 4044 bytes docs/en/docs/img/sponsors/mongodb.png | Bin 0 -> 10884 bytes docs/en/docs/img/sponsors/permit.png | Bin 0 -> 39234 bytes .../docs/img/sponsors/platform-sh-banner.png | Bin 0 -> 6313 bytes docs/en/docs/img/sponsors/platform-sh.png | Bin 0 -> 5779 bytes docs/en/docs/img/sponsors/porter-banner.png | Bin 0 -> 17260 bytes docs/en/docs/img/sponsors/porter.png | Bin 0 -> 23992 bytes docs/en/docs/img/sponsors/powens.png | Bin 0 -> 15311 bytes .../docs/img/sponsors/propelauth-banner.png | Bin 0 -> 12806 bytes docs/en/docs/img/sponsors/propelauth.png | Bin 0 -> 28140 bytes docs/en/docs/img/sponsors/railway-banner.png | Bin 0 -> 11596 bytes docs/en/docs/img/sponsors/railway.png | Bin 0 -> 26226 bytes docs/en/docs/img/sponsors/reflex-banner.png | Bin 0 -> 8143 bytes docs/en/docs/img/sponsors/reflex.png | Bin 0 -> 11293 bytes docs/en/docs/img/sponsors/render-banner.svg | 25 + docs/en/docs/img/sponsors/render.svg | 24 + docs/en/docs/img/sponsors/requestly.png | Bin 0 -> 18379 bytes docs/en/docs/img/sponsors/scalar-banner.svg | 1 + docs/en/docs/img/sponsors/scalar.svg | 1 + docs/en/docs/img/sponsors/serpapi-banner.png | Bin 0 -> 6458 bytes docs/en/docs/img/sponsors/serpapi.png | Bin 0 -> 10694 bytes docs/en/docs/img/sponsors/speakeasy.png | Bin 0 -> 18817 bytes docs/en/docs/img/sponsors/stainless.png | Bin 0 -> 29572 bytes .../docs/img/sponsors/striveworks-banner.png | Bin 0 -> 9681 bytes docs/en/docs/img/sponsors/striveworks.png | Bin 0 -> 22639 bytes docs/en/docs/img/sponsors/striveworks2.png | Bin 0 -> 34780 bytes docs/en/docs/img/sponsors/subtotal-banner.svg | 133 + docs/en/docs/img/sponsors/subtotal.svg | 31 + docs/en/docs/img/sponsors/svix.svg | 178 + docs/en/docs/img/sponsors/talkpython-v2.jpg | Bin 0 -> 9778 bytes docs/en/docs/img/sponsors/talkpython.png | Bin 0 -> 14807 bytes docs/en/docs/img/sponsors/testdriven.svg | 1 + docs/en/docs/img/sponsors/vimso.png | Bin 0 -> 15198 bytes docs/en/docs/img/sponsors/wetransfer.svg | 118 + docs/en/docs/img/sponsors/zuplo-banner.png | Bin 0 -> 1760 bytes docs/en/docs/img/sponsors/zuplo.png | Bin 0 -> 7551 bytes .../tutorial/additional-responses/image01.png | Bin 0 -> 72424 bytes .../tutorial/async-sql-databases/image01.png | Bin 0 -> 70687 bytes .../img/tutorial/behind-a-proxy/image01.png | Bin 0 -> 29123 bytes .../img/tutorial/behind-a-proxy/image02.png | Bin 0 -> 62026 bytes .../img/tutorial/behind-a-proxy/image03.png | Bin 0 -> 74280 bytes .../tutorial/bigger-applications/image01.png | Bin 0 -> 74516 bytes .../bigger-applications/package.drawio.svg | 420 + .../docs/img/tutorial/body-fields/image01.png | Bin 0 -> 78746 bytes .../docs/img/tutorial/body-fields/image02.png | Bin 0 -> 93828 bytes .../tutorial/body-nested-models/image01.png | Bin 0 -> 44866 bytes docs/en/docs/img/tutorial/body/image01.png | Bin 0 -> 55506 bytes docs/en/docs/img/tutorial/body/image02.png | Bin 0 -> 81208 bytes docs/en/docs/img/tutorial/body/image03.png | Bin 0 -> 66011 bytes docs/en/docs/img/tutorial/body/image04.png | Bin 0 -> 40151 bytes docs/en/docs/img/tutorial/body/image05.png | Bin 0 -> 52951 bytes .../tutorial/cookie-param-models/image01.png | Bin 0 -> 45217 bytes .../img/tutorial/custom-response/image01.png | Bin 0 -> 54866 bytes .../docs/img/tutorial/dataclasses/image01.png | Bin 0 -> 72574 bytes .../docs/img/tutorial/debugging/image01.png | Bin 0 -> 173614 bytes .../docs/img/tutorial/debugging/image02.png | Bin 0 -> 99443 bytes .../img/tutorial/dependencies/image01.png | Bin 0 -> 79658 bytes .../img/tutorial/dependencies/image02.png | Bin 0 -> 66817 bytes .../tutorial/extending-openapi/image01.png | Bin 0 -> 64786 bytes .../tutorial/extending-openapi/image02.png | Bin 0 -> 11292 bytes .../tutorial/extending-openapi/image03.png | Bin 0 -> 11176 bytes .../tutorial/extending-openapi/image04.png | Bin 0 -> 11180 bytes .../img/tutorial/generate-clients/image01.png | Bin 0 -> 78022 bytes .../img/tutorial/generate-clients/image02.png | Bin 0 -> 59828 bytes .../img/tutorial/generate-clients/image03.png | Bin 0 -> 61043 bytes .../img/tutorial/generate-clients/image04.png | Bin 0 -> 53853 bytes .../img/tutorial/generate-clients/image05.png | Bin 0 -> 31091 bytes .../img/tutorial/generate-clients/image06.png | Bin 0 -> 43434 bytes .../img/tutorial/generate-clients/image07.png | Bin 0 -> 49947 bytes .../img/tutorial/generate-clients/image08.png | Bin 0 -> 30019 bytes docs/en/docs/img/tutorial/graphql/image01.png | Bin 0 -> 95541 bytes .../tutorial/header-param-models/image01.png | Bin 0 -> 62257 bytes .../en/docs/img/tutorial/metadata/image01.png | Bin 0 -> 86437 bytes .../en/docs/img/tutorial/metadata/image02.png | Bin 0 -> 47719 bytes .../tutorial/openapi-callbacks/image01.png | Bin 0 -> 99295 bytes .../img/tutorial/openapi-webhooks/image01.png | Bin 0 -> 86925 bytes .../image01.png | Bin 0 -> 68080 bytes .../path-operation-configuration/image01.png | Bin 0 -> 41919 bytes .../path-operation-configuration/image02.png | Bin 0 -> 86975 bytes .../path-operation-configuration/image03.png | Bin 0 -> 71050 bytes .../path-operation-configuration/image04.png | Bin 0 -> 38687 bytes .../path-operation-configuration/image05.png | Bin 0 -> 74423 bytes .../docs/img/tutorial/path-params/image01.png | Bin 0 -> 79109 bytes .../docs/img/tutorial/path-params/image02.png | Bin 0 -> 67289 bytes .../docs/img/tutorial/path-params/image03.png | Bin 0 -> 118540 bytes .../tutorial/query-param-models/image01.png | Bin 0 -> 45571 bytes .../query-params-str-validations/image01.png | Bin 0 -> 86345 bytes .../query-params-str-validations/image02.png | Bin 0 -> 72770 bytes .../tutorial/request-form-models/image01.png | Bin 0 -> 44487 bytes .../img/tutorial/response-model/image01.png | Bin 0 -> 76191 bytes .../img/tutorial/response-model/image02.png | Bin 0 -> 89115 bytes .../tutorial/response-status-code/image01.png | Bin 0 -> 74275 bytes .../tutorial/response-status-code/image02.png | Bin 0 -> 30455 bytes .../en/docs/img/tutorial/security/image01.png | Bin 0 -> 53959 bytes .../en/docs/img/tutorial/security/image02.png | Bin 0 -> 90212 bytes .../en/docs/img/tutorial/security/image03.png | Bin 0 -> 92466 bytes .../en/docs/img/tutorial/security/image04.png | Bin 0 -> 84481 bytes .../en/docs/img/tutorial/security/image05.png | Bin 0 -> 81962 bytes .../en/docs/img/tutorial/security/image06.png | Bin 0 -> 91545 bytes .../en/docs/img/tutorial/security/image07.png | Bin 0 -> 61135 bytes .../en/docs/img/tutorial/security/image08.png | Bin 0 -> 88705 bytes .../en/docs/img/tutorial/security/image09.png | Bin 0 -> 110760 bytes .../en/docs/img/tutorial/security/image10.png | Bin 0 -> 159081 bytes .../en/docs/img/tutorial/security/image11.png | Bin 0 -> 77654 bytes .../en/docs/img/tutorial/security/image12.png | Bin 0 -> 69280 bytes .../separate-openapi-schemas/image01.png | Bin 0 -> 81548 bytes .../separate-openapi-schemas/image02.png | Bin 0 -> 92417 bytes .../separate-openapi-schemas/image03.png | Bin 0 -> 85171 bytes .../separate-openapi-schemas/image04.png | Bin 0 -> 58285 bytes .../separate-openapi-schemas/image05.png | Bin 0 -> 45618 bytes .../img/tutorial/sql-databases/image01.png | Bin 0 -> 69755 bytes .../img/tutorial/sql-databases/image02.png | Bin 0 -> 69197 bytes .../img/tutorial/sub-applications/image01.png | Bin 0 -> 50472 bytes .../img/tutorial/sub-applications/image02.png | Bin 0 -> 53366 bytes .../docs/img/tutorial/websockets/image01.png | Bin 0 -> 17229 bytes .../docs/img/tutorial/websockets/image02.png | Bin 0 -> 18326 bytes .../docs/img/tutorial/websockets/image03.png | Bin 0 -> 21283 bytes .../docs/img/tutorial/websockets/image04.png | Bin 0 -> 30900 bytes .../docs/img/tutorial/websockets/image05.png | Bin 0 -> 53330 bytes docs/en/docs/img/vscode-completion.png | Bin 0 -> 62417 bytes docs/en/docs/index.md | 559 ++ docs/en/docs/js/custom.js | 178 + docs/en/docs/js/termynal.js | 264 + docs/en/docs/learn/index.md | 5 + docs/en/docs/management-tasks.md | 283 + docs/en/docs/management.md | 39 + docs/en/docs/newsletter.md | 5 + docs/en/docs/project-generation.md | 28 + docs/en/docs/python-types.md | 576 ++ docs/en/docs/reference/apirouter.md | 24 + docs/en/docs/reference/background.md | 11 + docs/en/docs/reference/dependencies.md | 29 + docs/en/docs/reference/encoders.md | 3 + docs/en/docs/reference/exceptions.md | 20 + docs/en/docs/reference/fastapi.md | 31 + docs/en/docs/reference/httpconnection.md | 11 + docs/en/docs/reference/index.md | 7 + docs/en/docs/reference/middleware.md | 45 + docs/en/docs/reference/openapi/docs.md | 11 + docs/en/docs/reference/openapi/index.md | 5 + docs/en/docs/reference/openapi/models.md | 5 + docs/en/docs/reference/parameters.md | 35 + docs/en/docs/reference/request.md | 17 + docs/en/docs/reference/response.md | 13 + docs/en/docs/reference/responses.md | 164 + docs/en/docs/reference/security/index.md | 73 + docs/en/docs/reference/staticfiles.md | 13 + docs/en/docs/reference/status.md | 36 + docs/en/docs/reference/templating.md | 13 + docs/en/docs/reference/testclient.md | 13 + docs/en/docs/reference/uploadfile.md | 22 + docs/en/docs/reference/websockets.md | 69 + docs/en/docs/release-notes.md | 6131 ++++++++++++++ docs/en/docs/resources/index.md | 3 + docs/en/docs/tutorial/background-tasks.md | 86 + docs/en/docs/tutorial/bigger-applications.md | 556 ++ docs/en/docs/tutorial/body-fields.md | 61 + docs/en/docs/tutorial/body-multiple-params.md | 175 + docs/en/docs/tutorial/body-nested-models.md | 247 + docs/en/docs/tutorial/body-updates.md | 116 + docs/en/docs/tutorial/body.md | 174 + docs/en/docs/tutorial/cookie-param-models.md | 76 + docs/en/docs/tutorial/cookie-params.md | 45 + docs/en/docs/tutorial/cors.md | 89 + docs/en/docs/tutorial/debugging.md | 113 + .../dependencies/classes-as-dependencies.md | 288 + ...pendencies-in-path-operation-decorators.md | 69 + .../dependencies/dependencies-with-yield.md | 289 + .../dependencies/global-dependencies.md | 16 + docs/en/docs/tutorial/dependencies/index.md | 250 + .../tutorial/dependencies/sub-dependencies.md | 105 + docs/en/docs/tutorial/encoder.md | 35 + docs/en/docs/tutorial/extra-data-types.md | 62 + docs/en/docs/tutorial/extra-models.md | 223 + docs/en/docs/tutorial/first-steps.md | 380 + docs/en/docs/tutorial/handling-errors.md | 255 + docs/en/docs/tutorial/header-param-models.md | 72 + docs/en/docs/tutorial/header-params.md | 91 + docs/en/docs/tutorial/index.md | 95 + docs/en/docs/tutorial/metadata.md | 120 + docs/en/docs/tutorial/middleware.md | 95 + .../tutorial/path-operation-configuration.md | 107 + .../path-params-numeric-validations.md | 154 + docs/en/docs/tutorial/path-params.md | 257 + docs/en/docs/tutorial/query-param-models.md | 68 + .../tutorial/query-params-str-validations.md | 488 ++ docs/en/docs/tutorial/query-params.md | 188 + docs/en/docs/tutorial/request-files.md | 176 + docs/en/docs/tutorial/request-form-models.md | 78 + .../docs/tutorial/request-forms-and-files.md | 41 + docs/en/docs/tutorial/request-forms.md | 73 + docs/en/docs/tutorial/response-model.md | 357 + docs/en/docs/tutorial/response-status-code.md | 101 + docs/en/docs/tutorial/schema-extra-example.md | 224 + docs/en/docs/tutorial/security/first-steps.md | 203 + .../tutorial/security/get-current-user.md | 105 + docs/en/docs/tutorial/security/index.md | 106 + docs/en/docs/tutorial/security/oauth2-jwt.md | 273 + .../docs/tutorial/security/simple-oauth2.md | 289 + docs/en/docs/tutorial/sql-databases.md | 357 + docs/en/docs/tutorial/static-files.md | 40 + docs/en/docs/tutorial/testing.md | 243 + docs/en/docs/virtual-environments.md | 864 ++ docs/en/mkdocs.env.yml | 5 + docs/en/mkdocs.yml | 352 + docs/en/overrides/main.html | 104 + docs/en/overrides/partials/copyright.html | 11 + docs/es/docs/about/index.md | 3 + docs/es/docs/advanced/additional-responses.md | 247 + .../docs/advanced/additional-status-codes.md | 41 + .../es/docs/advanced/advanced-dependencies.md | 65 + docs/es/docs/advanced/async-tests.md | 99 + docs/es/docs/advanced/behind-a-proxy.md | 361 + docs/es/docs/advanced/custom-response.md | 312 + docs/es/docs/advanced/dataclasses.md | 95 + docs/es/docs/advanced/events.md | 165 + docs/es/docs/advanced/generate-clients.md | 261 + docs/es/docs/advanced/index.md | 36 + docs/es/docs/advanced/middleware.md | 96 + docs/es/docs/advanced/openapi-callbacks.md | 186 + docs/es/docs/advanced/openapi-webhooks.md | 55 + .../path-operation-advanced-configuration.md | 204 + .../advanced/response-change-status-code.md | 31 + docs/es/docs/advanced/response-cookies.md | 51 + docs/es/docs/advanced/response-directly.md | 65 + docs/es/docs/advanced/response-headers.md | 41 + .../docs/advanced/security/http-basic-auth.md | 107 + docs/es/docs/advanced/security/index.md | 19 + .../docs/advanced/security/oauth2-scopes.md | 274 + docs/es/docs/advanced/settings.md | 346 + docs/es/docs/advanced/sub-applications.md | 67 + docs/es/docs/advanced/templates.md | 126 + docs/es/docs/advanced/testing-dependencies.md | 53 + docs/es/docs/advanced/testing-events.md | 5 + docs/es/docs/advanced/testing-websockets.md | 13 + .../docs/advanced/using-request-directly.md | 56 + docs/es/docs/advanced/websockets.md | 186 + docs/es/docs/advanced/wsgi.md | 35 + docs/es/docs/alternatives.md | 485 ++ docs/es/docs/async.md | 444 + docs/es/docs/benchmarks.md | 34 + docs/es/docs/deployment/cloud.md | 15 + docs/es/docs/deployment/concepts.md | 321 + docs/es/docs/deployment/docker.md | 620 ++ docs/es/docs/deployment/https.md | 199 + docs/es/docs/deployment/index.md | 21 + docs/es/docs/deployment/manually.md | 169 + docs/es/docs/deployment/server-workers.md | 152 + docs/es/docs/deployment/versions.md | 93 + docs/es/docs/environment-variables.md | 298 + docs/es/docs/fastapi-cli.md | 75 + docs/es/docs/features.md | 201 + docs/es/docs/help-fastapi.md | 269 + docs/es/docs/history-design-future.md | 79 + docs/es/docs/how-to/conditional-openapi.md | 56 + docs/es/docs/how-to/configure-swagger-ui.md | 70 + docs/es/docs/how-to/custom-docs-ui-assets.md | 185 + .../docs/how-to/custom-request-and-route.md | 109 + docs/es/docs/how-to/extending-openapi.md | 80 + docs/es/docs/how-to/general.md | 39 + docs/es/docs/how-to/graphql.md | 60 + docs/es/docs/how-to/index.md | 13 + .../docs/how-to/separate-openapi-schemas.md | 104 + docs/es/docs/how-to/testing-database.md | 7 + docs/es/docs/index.md | 496 ++ docs/es/docs/learn/index.md | 5 + docs/es/docs/project-generation.md | 28 + docs/es/docs/python-types.md | 576 ++ docs/es/docs/resources/index.md | 3 + docs/es/docs/tutorial/background-tasks.md | 84 + docs/es/docs/tutorial/bigger-applications.md | 554 ++ docs/es/docs/tutorial/body-fields.md | 60 + docs/es/docs/tutorial/body-multiple-params.md | 173 + docs/es/docs/tutorial/body-nested-models.md | 247 + docs/es/docs/tutorial/body-updates.md | 116 + docs/es/docs/tutorial/body.md | 164 + docs/es/docs/tutorial/cookie-param-models.md | 76 + docs/es/docs/tutorial/cookie-params.md | 35 + docs/es/docs/tutorial/cors.md | 85 + docs/es/docs/tutorial/debugging.md | 113 + .../dependencies/classes-as-dependencies.md | 288 + ...pendencies-in-path-operation-decorators.md | 69 + .../dependencies/dependencies-with-yield.md | 275 + .../dependencies/global-dependencies.md | 15 + docs/es/docs/tutorial/dependencies/index.md | 250 + .../tutorial/dependencies/sub-dependencies.md | 105 + docs/es/docs/tutorial/encoder.md | 35 + docs/es/docs/tutorial/extra-data-types.md | 62 + docs/es/docs/tutorial/extra-models.md | 222 + docs/es/docs/tutorial/first-steps.md | 331 + docs/es/docs/tutorial/handling-errors.md | 255 + docs/es/docs/tutorial/header-param-models.md | 56 + docs/es/docs/tutorial/header-params.md | 91 + docs/es/docs/tutorial/index.md | 102 + docs/es/docs/tutorial/metadata.md | 120 + docs/es/docs/tutorial/middleware.md | 72 + .../tutorial/path-operation-configuration.md | 107 + .../path-params-numeric-validations.md | 154 + docs/es/docs/tutorial/path-params.md | 257 + docs/es/docs/tutorial/query-param-models.md | 68 + .../tutorial/query-params-str-validations.md | 499 ++ docs/es/docs/tutorial/query-params.md | 185 + docs/es/docs/tutorial/request-files.md | 176 + docs/es/docs/tutorial/request-form-models.md | 78 + .../docs/tutorial/request-forms-and-files.md | 41 + docs/es/docs/tutorial/request-forms.md | 73 + docs/es/docs/tutorial/response-model.md | 357 + docs/es/docs/tutorial/response-status-code.md | 101 + docs/es/docs/tutorial/schema-extra-example.md | 224 + docs/es/docs/tutorial/security/first-steps.md | 203 + .../tutorial/security/get-current-user.md | 103 + docs/es/docs/tutorial/security/index.md | 105 + docs/es/docs/tutorial/security/oauth2-jwt.md | 273 + .../docs/tutorial/security/simple-oauth2.md | 289 + docs/es/docs/tutorial/sql-databases.md | 360 + docs/es/docs/tutorial/static-files.md | 40 + docs/es/docs/tutorial/testing.md | 240 + docs/es/docs/virtual-environments.md | 842 ++ docs/es/llm-prompt.md | 98 + docs/es/mkdocs.yml | 1 + docs/fa/docs/advanced/sub-applications.md | 66 + docs/fa/docs/async.md | 444 + docs/fa/docs/environment-variables.md | 298 + docs/fa/docs/features.md | 209 + docs/fa/docs/index.md | 467 ++ docs/fa/docs/learn/index.md | 5 + docs/fa/docs/python-types.md | 578 ++ docs/fa/docs/tutorial/middleware.md | 63 + docs/fa/docs/tutorial/security/index.md | 106 + docs/fa/mkdocs.yml | 1 + docs/fr/docs/advanced/additional-responses.md | 247 + .../docs/advanced/additional-status-codes.md | 41 + docs/fr/docs/advanced/index.md | 27 + .../path-operation-advanced-configuration.md | 170 + docs/fr/docs/advanced/response-directly.md | 65 + docs/fr/docs/alternatives.md | 522 ++ docs/fr/docs/async.md | 434 + docs/fr/docs/benchmarks.md | 34 + docs/fr/docs/deployment/docker.md | 185 + docs/fr/docs/deployment/https.md | 56 + docs/fr/docs/deployment/index.md | 28 + docs/fr/docs/deployment/manually.md | 167 + docs/fr/docs/deployment/versions.md | 101 + docs/fr/docs/features.md | 201 + docs/fr/docs/help-fastapi.md | 104 + docs/fr/docs/history-design-future.md | 79 + docs/fr/docs/index.md | 472 ++ docs/fr/docs/learn/index.md | 5 + docs/fr/docs/project-generation.md | 84 + docs/fr/docs/python-types.md | 299 + docs/fr/docs/tutorial/background-tasks.md | 84 + docs/fr/docs/tutorial/body-multiple-params.md | 171 + docs/fr/docs/tutorial/body.md | 162 + docs/fr/docs/tutorial/debugging.md | 113 + docs/fr/docs/tutorial/first-steps.md | 335 + docs/fr/docs/tutorial/index.md | 83 + .../path-params-numeric-validations.md | 163 + docs/fr/docs/tutorial/path-params.md | 260 + .../tutorial/query-params-str-validations.md | 298 + docs/fr/docs/tutorial/query-params.md | 194 + docs/fr/mkdocs.yml | 1 + .../docs/advanced/additional-status-codes.md | 41 + docs/ja/docs/advanced/custom-response.md | 232 + docs/ja/docs/advanced/index.md | 27 + .../path-operation-advanced-configuration.md | 53 + docs/ja/docs/advanced/response-directly.md | 65 + docs/ja/docs/advanced/websockets.md | 188 + docs/ja/docs/alternatives.md | 488 ++ docs/ja/docs/async.md | 399 + docs/ja/docs/benchmarks.md | 34 + docs/ja/docs/deployment/concepts.md | 335 + docs/ja/docs/deployment/docker.md | 748 ++ docs/ja/docs/deployment/https.md | 209 + docs/ja/docs/deployment/index.md | 7 + docs/ja/docs/deployment/manually.md | 85 + docs/ja/docs/deployment/server-workers.md | 185 + docs/ja/docs/deployment/versions.md | 93 + docs/ja/docs/environment-variables.md | 301 + docs/ja/docs/features.md | 204 + docs/ja/docs/help-fastapi.md | 102 + docs/ja/docs/history-design-future.md | 80 + docs/ja/docs/how-to/conditional-openapi.md | 56 + docs/ja/docs/index.md | 462 ++ docs/ja/docs/learn/index.md | 5 + docs/ja/docs/project-generation.md | 84 + docs/ja/docs/python-types.md | 314 + docs/ja/docs/tutorial/background-tasks.md | 84 + docs/ja/docs/tutorial/body-fields.md | 53 + docs/ja/docs/tutorial/body-multiple-params.md | 167 + docs/ja/docs/tutorial/body-nested-models.md | 231 + docs/ja/docs/tutorial/body-updates.md | 100 + docs/ja/docs/tutorial/body.md | 162 + docs/ja/docs/tutorial/cookie-param-models.md | 77 + docs/ja/docs/tutorial/cookie-params.md | 35 + docs/ja/docs/tutorial/cors.md | 85 + docs/ja/docs/tutorial/debugging.md | 113 + .../dependencies/classes-as-dependencies.md | 180 + ...pendencies-in-path-operation-decorators.md | 57 + .../dependencies/dependencies-with-yield.md | 241 + docs/ja/docs/tutorial/dependencies/index.md | 212 + .../tutorial/dependencies/sub-dependencies.md | 86 + docs/ja/docs/tutorial/encoder.md | 35 + docs/ja/docs/tutorial/extra-data-types.md | 62 + docs/ja/docs/tutorial/extra-models.md | 191 + docs/ja/docs/tutorial/first-steps.md | 333 + docs/ja/docs/tutorial/handling-errors.md | 261 + docs/ja/docs/tutorial/header-params.md | 91 + docs/ja/docs/tutorial/index.md | 83 + docs/ja/docs/tutorial/metadata.md | 101 + docs/ja/docs/tutorial/middleware.md | 66 + .../tutorial/path-operation-configuration.md | 97 + .../path-params-numeric-validations.md | 117 + docs/ja/docs/tutorial/path-params.md | 250 + docs/ja/docs/tutorial/query-param-models.md | 68 + .../tutorial/query-params-str-validations.md | 296 + docs/ja/docs/tutorial/query-params.md | 186 + .../docs/tutorial/request-forms-and-files.md | 37 + docs/ja/docs/tutorial/request-forms.md | 69 + docs/ja/docs/tutorial/response-model.md | 212 + docs/ja/docs/tutorial/response-status-code.md | 101 + docs/ja/docs/tutorial/schema-extra-example.md | 55 + docs/ja/docs/tutorial/security/first-steps.md | 197 + .../tutorial/security/get-current-user.md | 106 + docs/ja/docs/tutorial/security/index.md | 106 + docs/ja/docs/tutorial/security/oauth2-jwt.md | 275 + docs/ja/docs/tutorial/static-files.md | 40 + docs/ja/docs/tutorial/testing.md | 146 + docs/ja/docs/virtual-environments.md | 831 ++ docs/ja/mkdocs.yml | 1 + docs/ko/docs/about/index.md | 3 + .../docs/advanced/additional-status-codes.md | 41 + .../ko/docs/advanced/advanced-dependencies.md | 67 + docs/ko/docs/advanced/async-tests.md | 108 + docs/ko/docs/advanced/custom-response.md | 313 + docs/ko/docs/advanced/events.md | 165 + docs/ko/docs/advanced/index.md | 27 + docs/ko/docs/advanced/middlewares.md | 96 + .../advanced/response-change-status-code.md | 31 + docs/ko/docs/advanced/response-cookies.md | 49 + docs/ko/docs/advanced/response-directly.md | 63 + docs/ko/docs/advanced/response-headers.md | 41 + docs/ko/docs/advanced/sub-applications.md | 67 + docs/ko/docs/advanced/templates.md | 127 + docs/ko/docs/advanced/testing-dependencies.md | 53 + docs/ko/docs/advanced/testing-events.md | 5 + docs/ko/docs/advanced/testing-websockets.md | 13 + .../docs/advanced/using-request-directly.md | 56 + docs/ko/docs/advanced/websockets.md | 186 + docs/ko/docs/advanced/wsgi.md | 35 + docs/ko/docs/async.md | 410 + docs/ko/docs/benchmarks.md | 34 + docs/ko/docs/deployment/cloud.md | 13 + docs/ko/docs/deployment/docker.md | 731 ++ docs/ko/docs/deployment/index.md | 21 + docs/ko/docs/deployment/server-workers.md | 183 + docs/ko/docs/deployment/versions.md | 94 + docs/ko/docs/environment-variables.md | 298 + docs/ko/docs/fastapi-cli.md | 83 + docs/ko/docs/features.md | 201 + docs/ko/docs/help-fastapi.md | 269 + docs/ko/docs/history-design-future.md | 81 + docs/ko/docs/how-to/conditional-openapi.md | 61 + docs/ko/docs/how-to/configure-swagger-ui.md | 70 + docs/ko/docs/index.md | 468 ++ docs/ko/docs/learn/index.md | 5 + docs/ko/docs/openapi-webhooks.md | 55 + docs/ko/docs/project-generation.md | 28 + docs/ko/docs/python-types.md | 313 + docs/ko/docs/resources/index.md | 3 + docs/ko/docs/security/index.md | 19 + docs/ko/docs/tutorial/background-tasks.md | 84 + docs/ko/docs/tutorial/body-fields.md | 60 + docs/ko/docs/tutorial/body-multiple-params.md | 169 + docs/ko/docs/tutorial/body-nested-models.md | 230 + docs/ko/docs/tutorial/body.md | 162 + docs/ko/docs/tutorial/cookie-param-models.md | 76 + docs/ko/docs/tutorial/cookie-params.md | 35 + docs/ko/docs/tutorial/cors.md | 85 + docs/ko/docs/tutorial/debugging.md | 113 + .../dependencies/classes-as-dependencies.md | 177 + ...pendencies-in-path-operation-decorators.md | 69 + .../dependencies/dependencies-with-yield.md | 275 + .../dependencies/global-dependencies.md | 15 + docs/ko/docs/tutorial/dependencies/index.md | 250 + docs/ko/docs/tutorial/encoder.md | 35 + docs/ko/docs/tutorial/extra-data-types.md | 62 + docs/ko/docs/tutorial/extra-models.md | 223 + docs/ko/docs/tutorial/first-steps.md | 335 + docs/ko/docs/tutorial/header-param-models.md | 56 + docs/ko/docs/tutorial/header-params.md | 91 + docs/ko/docs/tutorial/index.md | 84 + docs/ko/docs/tutorial/metadata.md | 118 + docs/ko/docs/tutorial/middleware.md | 66 + .../tutorial/path-operation-configuration.md | 97 + .../path-params-numeric-validations.md | 117 + docs/ko/docs/tutorial/path-params.md | 250 + docs/ko/docs/tutorial/query-param-models.md | 68 + .../tutorial/query-params-str-validations.md | 296 + docs/ko/docs/tutorial/query-params.md | 195 + docs/ko/docs/tutorial/request-files.md | 163 + docs/ko/docs/tutorial/request-form-models.md | 78 + .../docs/tutorial/request-forms-and-files.md | 37 + docs/ko/docs/tutorial/request-forms.md | 74 + docs/ko/docs/tutorial/response-model.md | 214 + docs/ko/docs/tutorial/response-status-code.md | 101 + docs/ko/docs/tutorial/schema-extra-example.md | 224 + .../tutorial/security/get-current-user.md | 105 + docs/ko/docs/tutorial/security/oauth2-jwt.md | 273 + .../docs/tutorial/security/simple-oauth2.md | 295 + docs/ko/docs/tutorial/sql-databases.md | 360 + docs/ko/docs/tutorial/static-files.md | 41 + docs/ko/docs/tutorial/testing.md | 243 + docs/ko/docs/virtual-environments.md | 846 ++ docs/ko/mkdocs.yml | 1 + docs/language_names.yml | 183 + docs/missing-translation.md | 9 + docs/pt/docs/_llm-test.md | 503 ++ docs/pt/docs/about/index.md | 3 + docs/pt/docs/advanced/additional-responses.md | 247 + .../docs/advanced/additional-status-codes.md | 41 + .../pt/docs/advanced/advanced-dependencies.md | 163 + docs/pt/docs/advanced/async-tests.md | 99 + docs/pt/docs/advanced/behind-a-proxy.md | 458 ++ docs/pt/docs/advanced/custom-response.md | 312 + docs/pt/docs/advanced/dataclasses.md | 95 + docs/pt/docs/advanced/events.md | 165 + docs/pt/docs/advanced/generate-clients.md | 208 + docs/pt/docs/advanced/index.md | 21 + docs/pt/docs/advanced/middleware.md | 97 + docs/pt/docs/advanced/openapi-callbacks.md | 186 + docs/pt/docs/advanced/openapi-webhooks.md | 55 + .../path-operation-advanced-configuration.md | 204 + .../advanced/response-change-status-code.md | 31 + docs/pt/docs/advanced/response-cookies.md | 51 + docs/pt/docs/advanced/response-directly.md | 65 + docs/pt/docs/advanced/response-headers.md | 41 + .../docs/advanced/security/http-basic-auth.md | 107 + docs/pt/docs/advanced/security/index.md | 19 + .../docs/advanced/security/oauth2-scopes.md | 274 + docs/pt/docs/advanced/settings.md | 346 + docs/pt/docs/advanced/sub-applications.md | 67 + docs/pt/docs/advanced/templates.md | 126 + docs/pt/docs/advanced/testing-dependencies.md | 53 + docs/pt/docs/advanced/testing-events.md | 11 + docs/pt/docs/advanced/testing-websockets.md | 13 + .../docs/advanced/using-request-directly.md | 56 + docs/pt/docs/advanced/websockets.md | 186 + docs/pt/docs/advanced/wsgi.md | 35 + docs/pt/docs/alternatives.md | 485 ++ docs/pt/docs/async.md | 444 + docs/pt/docs/benchmarks.md | 34 + docs/pt/docs/deployment/cloud.md | 16 + docs/pt/docs/deployment/concepts.md | 321 + docs/pt/docs/deployment/docker.md | 620 ++ docs/pt/docs/deployment/https.md | 231 + docs/pt/docs/deployment/index.md | 21 + docs/pt/docs/deployment/manually.md | 157 + docs/pt/docs/deployment/server-workers.md | 139 + docs/pt/docs/deployment/versions.md | 93 + docs/pt/docs/environment-variables.md | 298 + docs/pt/docs/fastapi-cli.md | 75 + docs/pt/docs/features.md | 201 + docs/pt/docs/help-fastapi.md | 256 + docs/pt/docs/history-design-future.md | 79 + docs/pt/docs/how-to/conditional-openapi.md | 56 + docs/pt/docs/how-to/configure-swagger-ui.md | 70 + docs/pt/docs/how-to/custom-docs-ui-assets.md | 185 + .../docs/how-to/custom-request-and-route.md | 109 + docs/pt/docs/how-to/extending-openapi.md | 80 + docs/pt/docs/how-to/general.md | 38 + docs/pt/docs/how-to/graphql.md | 60 + docs/pt/docs/how-to/index.md | 13 + ...migrate-from-pydantic-v1-to-pydantic-v2.md | 133 + .../docs/how-to/separate-openapi-schemas.md | 104 + docs/pt/docs/how-to/testing-database.md | 7 + docs/pt/docs/index.md | 501 ++ docs/pt/docs/learn/index.md | 5 + docs/pt/docs/project-generation.md | 28 + docs/pt/docs/python-types.md | 576 ++ docs/pt/docs/resources/index.md | 3 + docs/pt/docs/tutorial/background-tasks.md | 85 + docs/pt/docs/tutorial/bigger-applications.md | 556 ++ docs/pt/docs/tutorial/body-fields.md | 60 + docs/pt/docs/tutorial/body-multiple-params.md | 171 + docs/pt/docs/tutorial/body-nested-models.md | 247 + docs/pt/docs/tutorial/body-updates.md | 116 + docs/pt/docs/tutorial/body.md | 172 + docs/pt/docs/tutorial/cookie-param-models.md | 78 + docs/pt/docs/tutorial/cookie-params.md | 45 + docs/pt/docs/tutorial/cors.md | 88 + docs/pt/docs/tutorial/debugging.md | 113 + .../dependencies/classes-as-dependencies.md | 288 + ...pendencies-in-path-operation-decorators.md | 69 + .../dependencies/dependencies-with-yield.md | 289 + .../dependencies/global-dependencies.md | 16 + docs/pt/docs/tutorial/dependencies/index.md | 250 + .../tutorial/dependencies/sub-dependencies.md | 105 + docs/pt/docs/tutorial/encoder.md | 35 + docs/pt/docs/tutorial/extra-data-types.md | 62 + docs/pt/docs/tutorial/extra-models.md | 219 + docs/pt/docs/tutorial/first-steps.md | 323 + docs/pt/docs/tutorial/handling-errors.md | 254 + docs/pt/docs/tutorial/header-param-models.md | 72 + docs/pt/docs/tutorial/header-params.md | 91 + docs/pt/docs/tutorial/index.md | 95 + docs/pt/docs/tutorial/metadata.md | 120 + docs/pt/docs/tutorial/middleware.md | 95 + .../tutorial/path-operation-configuration.md | 107 + .../path-params-numeric-validations.md | 154 + docs/pt/docs/tutorial/path-params.md | 241 + docs/pt/docs/tutorial/query-param-models.md | 69 + .../tutorial/query-params-str-validations.md | 488 ++ docs/pt/docs/tutorial/query-params.md | 187 + docs/pt/docs/tutorial/request-files.md | 176 + docs/pt/docs/tutorial/request-form-models.md | 78 + .../docs/tutorial/request-forms-and-files.md | 41 + docs/pt/docs/tutorial/request-forms.md | 73 + docs/pt/docs/tutorial/response-model.md | 357 + docs/pt/docs/tutorial/response-status-code.md | 101 + docs/pt/docs/tutorial/schema-extra-example.md | 224 + docs/pt/docs/tutorial/security/first-steps.md | 203 + .../tutorial/security/get-current-user.md | 105 + docs/pt/docs/tutorial/security/index.md | 106 + docs/pt/docs/tutorial/security/oauth2-jwt.md | 273 + .../docs/tutorial/security/simple-oauth2.md | 289 + docs/pt/docs/tutorial/sql-databases.md | 356 + docs/pt/docs/tutorial/static-files.md | 40 + docs/pt/docs/tutorial/testing.md | 241 + docs/pt/docs/virtual-environments.md | 844 ++ docs/pt/llm-prompt.md | 66 + docs/pt/mkdocs.yml | 1 + docs/ru/docs/_llm-test.md | 503 ++ docs/ru/docs/about/index.md | 3 + docs/ru/docs/advanced/additional-responses.md | 247 + .../docs/advanced/additional-status-codes.md | 41 + .../ru/docs/advanced/advanced-dependencies.md | 163 + docs/ru/docs/advanced/async-tests.md | 99 + docs/ru/docs/advanced/behind-a-proxy.md | 458 ++ docs/ru/docs/advanced/custom-response.md | 312 + docs/ru/docs/advanced/dataclasses.md | 95 + docs/ru/docs/advanced/events.md | 165 + docs/ru/docs/advanced/generate-clients.md | 208 + docs/ru/docs/advanced/index.md | 21 + docs/ru/docs/advanced/middleware.md | 97 + docs/ru/docs/advanced/openapi-callbacks.md | 186 + docs/ru/docs/advanced/openapi-webhooks.md | 55 + .../path-operation-advanced-configuration.md | 204 + .../advanced/response-change-status-code.md | 31 + docs/ru/docs/advanced/response-cookies.md | 51 + docs/ru/docs/advanced/response-directly.md | 65 + docs/ru/docs/advanced/response-headers.md | 41 + .../docs/advanced/security/http-basic-auth.md | 107 + docs/ru/docs/advanced/security/index.md | 19 + .../docs/advanced/security/oauth2-scopes.md | 274 + docs/ru/docs/advanced/settings.md | 346 + docs/ru/docs/advanced/sub-applications.md | 67 + docs/ru/docs/advanced/templates.md | 126 + docs/ru/docs/advanced/testing-dependencies.md | 53 + docs/ru/docs/advanced/testing-events.md | 12 + docs/ru/docs/advanced/testing-websockets.md | 13 + .../docs/advanced/using-request-directly.md | 56 + docs/ru/docs/advanced/websockets.md | 186 + docs/ru/docs/advanced/wsgi.md | 35 + docs/ru/docs/alternatives.md | 485 ++ docs/ru/docs/async.md | 444 + docs/ru/docs/benchmarks.md | 34 + docs/ru/docs/deployment/cloud.md | 16 + docs/ru/docs/deployment/concepts.md | 321 + docs/ru/docs/deployment/docker.md | 620 ++ docs/ru/docs/deployment/https.md | 231 + docs/ru/docs/deployment/index.md | 21 + docs/ru/docs/deployment/manually.md | 157 + docs/ru/docs/deployment/server-workers.md | 139 + docs/ru/docs/deployment/versions.md | 93 + docs/ru/docs/environment-variables.md | 298 + docs/ru/docs/fastapi-cli.md | 75 + docs/ru/docs/features.md | 201 + docs/ru/docs/help-fastapi.md | 255 + docs/ru/docs/history-design-future.md | 79 + docs/ru/docs/how-to/conditional-openapi.md | 56 + docs/ru/docs/how-to/configure-swagger-ui.md | 70 + docs/ru/docs/how-to/custom-docs-ui-assets.md | 185 + .../docs/how-to/custom-request-and-route.md | 109 + docs/ru/docs/how-to/extending-openapi.md | 80 + docs/ru/docs/how-to/general.md | 39 + docs/ru/docs/how-to/graphql.md | 60 + docs/ru/docs/how-to/index.md | 13 + ...migrate-from-pydantic-v1-to-pydantic-v2.md | 133 + .../docs/how-to/separate-openapi-schemas.md | 104 + docs/ru/docs/how-to/testing-database.md | 7 + docs/ru/docs/index.md | 501 ++ docs/ru/docs/learn/index.md | 5 + docs/ru/docs/project-generation.md | 28 + docs/ru/docs/python-types.md | 576 ++ docs/ru/docs/resources/index.md | 3 + docs/ru/docs/tutorial/background-tasks.md | 84 + docs/ru/docs/tutorial/bigger-applications.md | 555 ++ docs/ru/docs/tutorial/body-fields.md | 60 + docs/ru/docs/tutorial/body-multiple-params.md | 171 + docs/ru/docs/tutorial/body-nested-models.md | 247 + docs/ru/docs/tutorial/body-updates.md | 114 + docs/ru/docs/tutorial/body.md | 172 + docs/ru/docs/tutorial/cookie-param-models.md | 76 + docs/ru/docs/tutorial/cookie-params.md | 45 + docs/ru/docs/tutorial/cors.md | 88 + docs/ru/docs/tutorial/debugging.md | 113 + .../dependencies/classes-as-dependencies.md | 288 + ...pendencies-in-path-operation-decorators.md | 69 + .../dependencies/dependencies-with-yield.md | 289 + .../dependencies/global-dependencies.md | 15 + docs/ru/docs/tutorial/dependencies/index.md | 250 + .../tutorial/dependencies/sub-dependencies.md | 105 + docs/ru/docs/tutorial/encoder.md | 35 + docs/ru/docs/tutorial/extra-data-types.md | 62 + docs/ru/docs/tutorial/extra-models.md | 219 + docs/ru/docs/tutorial/first-steps.md | 323 + docs/ru/docs/tutorial/handling-errors.md | 255 + docs/ru/docs/tutorial/header-param-models.md | 72 + docs/ru/docs/tutorial/header-params.md | 91 + docs/ru/docs/tutorial/index.md | 95 + docs/ru/docs/tutorial/metadata.md | 120 + docs/ru/docs/tutorial/middleware.md | 97 + .../tutorial/path-operation-configuration.md | 107 + .../path-params-numeric-validations.md | 152 + docs/ru/docs/tutorial/path-params.md | 256 + docs/ru/docs/tutorial/query-param-models.md | 68 + .../tutorial/query-params-str-validations.md | 487 ++ docs/ru/docs/tutorial/query-params.md | 187 + docs/ru/docs/tutorial/request-files.md | 177 + docs/ru/docs/tutorial/request-form-models.md | 78 + .../docs/tutorial/request-forms-and-files.md | 41 + docs/ru/docs/tutorial/request-forms.md | 73 + docs/ru/docs/tutorial/response-model.md | 357 + docs/ru/docs/tutorial/response-status-code.md | 101 + docs/ru/docs/tutorial/schema-extra-example.md | 224 + docs/ru/docs/tutorial/security/first-steps.md | 203 + .../tutorial/security/get-current-user.md | 105 + docs/ru/docs/tutorial/security/index.md | 106 + docs/ru/docs/tutorial/security/oauth2-jwt.md | 261 + .../docs/tutorial/security/simple-oauth2.md | 273 + docs/ru/docs/tutorial/sql-databases.md | 357 + docs/ru/docs/tutorial/static-files.md | 41 + docs/ru/docs/tutorial/testing.md | 243 + docs/ru/docs/virtual-environments.md | 844 ++ docs/ru/llm-prompt.md | 94 + docs/ru/mkdocs.yml | 1 + docs/tr/docs/about/index.md | 3 + docs/tr/docs/advanced/index.md | 36 + docs/tr/docs/advanced/security/index.md | 19 + docs/tr/docs/advanced/testing-websockets.md | 13 + docs/tr/docs/advanced/wsgi.md | 35 + docs/tr/docs/alternatives.md | 483 ++ docs/tr/docs/async.md | 407 + docs/tr/docs/benchmarks.md | 34 + docs/tr/docs/deployment/cloud.md | 13 + docs/tr/docs/deployment/index.md | 21 + docs/tr/docs/features.md | 209 + docs/tr/docs/history-design-future.md | 79 + docs/tr/docs/how-to/general.md | 39 + docs/tr/docs/how-to/index.md | 13 + docs/tr/docs/index.md | 474 ++ docs/tr/docs/learn/index.md | 5 + docs/tr/docs/project-generation.md | 84 + docs/tr/docs/python-types.md | 313 + docs/tr/docs/resources/index.md | 3 + docs/tr/docs/tutorial/cookie-params.md | 35 + docs/tr/docs/tutorial/first-steps.md | 335 + docs/tr/docs/tutorial/path-params.md | 257 + docs/tr/docs/tutorial/query-params.md | 188 + docs/tr/docs/tutorial/request-forms.md | 69 + docs/tr/docs/tutorial/static-files.md | 40 + docs/tr/mkdocs.yml | 1 + docs/uk/docs/alternatives.md | 483 ++ docs/uk/docs/fastapi-cli.md | 83 + docs/uk/docs/features.md | 189 + docs/uk/docs/index.md | 463 ++ docs/uk/docs/learn/index.md | 5 + docs/uk/docs/python-types.md | 489 ++ docs/uk/docs/tutorial/background-tasks.md | 85 + docs/uk/docs/tutorial/body-fields.md | 60 + docs/uk/docs/tutorial/body-multiple-params.md | 170 + docs/uk/docs/tutorial/body-nested-models.md | 245 + docs/uk/docs/tutorial/body-updates.md | 116 + docs/uk/docs/tutorial/body.md | 162 + docs/uk/docs/tutorial/cookie-param-models.md | 76 + docs/uk/docs/tutorial/cookie-params.md | 34 + docs/uk/docs/tutorial/cors.md | 89 + docs/uk/docs/tutorial/debugging.md | 112 + docs/uk/docs/tutorial/encoder.md | 35 + docs/uk/docs/tutorial/extra-data-types.md | 62 + docs/uk/docs/tutorial/first-steps.md | 328 + docs/uk/docs/tutorial/handling-errors.md | 255 + docs/uk/docs/tutorial/header-param-models.md | 58 + docs/uk/docs/tutorial/header-params.md | 91 + docs/uk/docs/tutorial/index.md | 83 + docs/uk/docs/tutorial/metadata.md | 120 + docs/uk/docs/tutorial/middleware.md | 75 + .../path-params-numeric-validations.md | 155 + docs/uk/docs/tutorial/path-params.md | 260 + docs/uk/docs/tutorial/query-param-models.md | 68 + .../tutorial/query-params-str-validations.md | 491 ++ docs/uk/docs/tutorial/query-params.md | 191 + docs/uk/docs/tutorial/request-files.md | 175 + docs/uk/docs/tutorial/request-form-models.md | 78 + .../docs/tutorial/request-forms-and-files.md | 41 + docs/uk/docs/tutorial/request-forms.md | 73 + docs/uk/docs/tutorial/response-model.md | 358 + docs/uk/docs/tutorial/response-status-code.md | 100 + docs/uk/docs/tutorial/schema-extra-example.md | 222 + docs/uk/docs/tutorial/security/index.md | 104 + docs/uk/docs/tutorial/static-files.md | 40 + docs/uk/docs/tutorial/testing.md | 240 + docs/uk/mkdocs.yml | 1 + docs/vi/docs/deployment/cloud.md | 14 + docs/vi/docs/deployment/index.md | 21 + docs/vi/docs/deployment/versions.md | 93 + docs/vi/docs/environment-variables.md | 300 + docs/vi/docs/fastapi-cli.md | 75 + docs/vi/docs/features.md | 200 + docs/vi/docs/index.md | 475 ++ docs/vi/docs/python-types.md | 593 ++ docs/vi/docs/tutorial/first-steps.md | 335 + docs/vi/docs/tutorial/index.md | 83 + docs/vi/docs/tutorial/static-files.md | 40 + docs/vi/docs/virtual-environments.md | 842 ++ docs/vi/mkdocs.yml | 1 + docs/zh-hant/docs/about/index.md | 3 + docs/zh-hant/docs/async.md | 442 + docs/zh-hant/docs/benchmarks.md | 34 + docs/zh-hant/docs/deployment/cloud.md | 13 + docs/zh-hant/docs/deployment/index.md | 21 + docs/zh-hant/docs/environment-variables.md | 298 + docs/zh-hant/docs/fastapi-cli.md | 83 + docs/zh-hant/docs/features.md | 207 + docs/zh-hant/docs/how-to/index.md | 13 + docs/zh-hant/docs/index.md | 468 ++ docs/zh-hant/docs/learn/index.md | 5 + docs/zh-hant/docs/resources/index.md | 3 + docs/zh-hant/docs/tutorial/first-steps.md | 331 + docs/zh-hant/docs/tutorial/index.md | 102 + .../docs/tutorial/query-param-models.md | 68 + docs/zh-hant/docs/virtual-environments.md | 844 ++ docs/zh-hant/mkdocs.yml | 1 + docs/zh/docs/advanced/additional-responses.md | 221 + .../docs/advanced/additional-status-codes.md | 41 + .../zh/docs/advanced/advanced-dependencies.md | 65 + docs/zh/docs/advanced/async-tests.md | 99 + docs/zh/docs/advanced/behind-a-proxy.md | 357 + docs/zh/docs/advanced/custom-response.md | 218 + docs/zh/docs/advanced/dataclasses.md | 97 + docs/zh/docs/advanced/events.md | 173 + docs/zh/docs/advanced/generate-clients.md | 237 + docs/zh/docs/advanced/index.md | 21 + docs/zh/docs/advanced/middleware.md | 95 + docs/zh/docs/advanced/openapi-callbacks.md | 186 + docs/zh/docs/advanced/openapi-webhooks.md | 55 + .../path-operation-advanced-configuration.md | 54 + .../advanced/response-change-status-code.md | 29 + docs/zh/docs/advanced/response-cookies.md | 49 + docs/zh/docs/advanced/response-directly.md | 66 + docs/zh/docs/advanced/response-headers.md | 39 + .../docs/advanced/security/http-basic-auth.md | 107 + docs/zh/docs/advanced/security/index.md | 19 + .../docs/advanced/security/oauth2-scopes.md | 274 + docs/zh/docs/advanced/settings.md | 397 + docs/zh/docs/advanced/sub-applications.md | 67 + docs/zh/docs/advanced/templates.md | 125 + docs/zh/docs/advanced/testing-dependencies.md | 53 + docs/zh/docs/advanced/testing-events.md | 5 + docs/zh/docs/advanced/testing-websockets.md | 13 + .../docs/advanced/using-request-directly.md | 56 + docs/zh/docs/advanced/websockets.md | 176 + docs/zh/docs/advanced/wsgi.md | 35 + docs/zh/docs/async.md | 444 + docs/zh/docs/benchmarks.md | 34 + docs/zh/docs/deployment/cloud.md | 13 + docs/zh/docs/deployment/concepts.md | 330 + docs/zh/docs/deployment/docker.md | 760 ++ docs/zh/docs/deployment/https.md | 201 + docs/zh/docs/deployment/index.md | 21 + docs/zh/docs/deployment/manually.md | 158 + docs/zh/docs/deployment/server-workers.md | 139 + docs/zh/docs/deployment/versions.md | 93 + docs/zh/docs/environment-variables.md | 298 + docs/zh/docs/fastapi-cli.md | 79 + docs/zh/docs/features.md | 206 + docs/zh/docs/help-fastapi.md | 148 + docs/zh/docs/history-design-future.md | 78 + docs/zh/docs/how-to/configure-swagger-ui.md | 70 + docs/zh/docs/how-to/general.md | 39 + docs/zh/docs/how-to/index.md | 13 + docs/zh/docs/index.md | 470 ++ docs/zh/docs/learn/index.md | 5 + docs/zh/docs/project-generation.md | 28 + docs/zh/docs/python-types.md | 304 + docs/zh/docs/tutorial/background-tasks.md | 124 + docs/zh/docs/tutorial/bigger-applications.md | 530 ++ docs/zh/docs/tutorial/body-fields.md | 53 + docs/zh/docs/tutorial/body-multiple-params.md | 167 + docs/zh/docs/tutorial/body-nested-models.md | 231 + docs/zh/docs/tutorial/body-updates.md | 99 + docs/zh/docs/tutorial/body.md | 162 + docs/zh/docs/tutorial/cookie-param-models.md | 76 + docs/zh/docs/tutorial/cookie-params.md | 36 + docs/zh/docs/tutorial/cors.md | 85 + docs/zh/docs/tutorial/debugging.md | 109 + .../dependencies/classes-as-dependencies.md | 180 + ...pendencies-in-path-operation-decorators.md | 69 + .../dependencies/dependencies-with-yield.md | 267 + .../dependencies/global-dependencies.md | 15 + docs/zh/docs/tutorial/dependencies/index.md | 212 + .../tutorial/dependencies/sub-dependencies.md | 86 + docs/zh/docs/tutorial/encoder.md | 35 + docs/zh/docs/tutorial/extra-data-types.md | 62 + docs/zh/docs/tutorial/extra-models.md | 199 + docs/zh/docs/tutorial/first-steps.md | 323 + docs/zh/docs/tutorial/handling-errors.md | 269 + docs/zh/docs/tutorial/header-param-models.md | 56 + docs/zh/docs/tutorial/header-params.md | 91 + docs/zh/docs/tutorial/index.md | 93 + docs/zh/docs/tutorial/metadata.md | 100 + docs/zh/docs/tutorial/middleware.md | 66 + .../tutorial/path-operation-configuration.md | 97 + .../path-params-numeric-validations.md | 117 + docs/zh/docs/tutorial/path-params.md | 250 + docs/zh/docs/tutorial/query-param-models.md | 68 + .../tutorial/query-params-str-validations.md | 274 + docs/zh/docs/tutorial/query-params.md | 196 + docs/zh/docs/tutorial/request-files.md | 172 + docs/zh/docs/tutorial/request-form-models.md | 78 + .../docs/tutorial/request-forms-and-files.md | 37 + docs/zh/docs/tutorial/request-forms.md | 69 + docs/zh/docs/tutorial/response-model.md | 213 + docs/zh/docs/tutorial/response-status-code.md | 101 + docs/zh/docs/tutorial/schema-extra-example.md | 55 + docs/zh/docs/tutorial/security/first-steps.md | 197 + .../tutorial/security/get-current-user.md | 107 + docs/zh/docs/tutorial/security/index.md | 106 + docs/zh/docs/tutorial/security/oauth2-jwt.md | 270 + .../docs/tutorial/security/simple-oauth2.md | 289 + docs/zh/docs/tutorial/sql-databases.md | 360 + docs/zh/docs/tutorial/static-files.md | 40 + docs/zh/docs/tutorial/testing.md | 235 + docs/zh/docs/virtual-environments.md | 844 ++ docs/zh/mkdocs.yml | 1 + docs_src/additional_responses/tutorial001.py | 22 + docs_src/additional_responses/tutorial002.py | 30 + docs_src/additional_responses/tutorial003.py | 37 + docs_src/additional_responses/tutorial004.py | 32 + .../additional_status_codes/tutorial001.py | 25 + .../additional_status_codes/tutorial001_an.py | 26 + .../tutorial001_an_py310.py | 25 + .../tutorial001_an_py39.py | 25 + .../tutorial001_py310.py | 23 + docs_src/advanced_middleware/tutorial001.py | 11 + docs_src/advanced_middleware/tutorial002.py | 13 + docs_src/advanced_middleware/tutorial003.py | 11 + docs_src/app_testing/__init__.py | 0 docs_src/app_testing/app_b/__init__.py | 0 docs_src/app_testing/app_b/main.py | 38 + docs_src/app_testing/app_b/test_main.py | 65 + docs_src/app_testing/app_b_an/__init__.py | 0 docs_src/app_testing/app_b_an/main.py | 39 + docs_src/app_testing/app_b_an/test_main.py | 65 + .../app_testing/app_b_an_py310/__init__.py | 0 docs_src/app_testing/app_b_an_py310/main.py | 38 + .../app_testing/app_b_an_py310/test_main.py | 65 + .../app_testing/app_b_an_py39/__init__.py | 0 docs_src/app_testing/app_b_an_py39/main.py | 38 + .../app_testing/app_b_an_py39/test_main.py | 65 + docs_src/app_testing/app_b_py310/__init__.py | 0 docs_src/app_testing/app_b_py310/main.py | 36 + docs_src/app_testing/app_b_py310/test_main.py | 65 + docs_src/app_testing/main.py | 8 + docs_src/app_testing/test_main.py | 11 + docs_src/app_testing/tutorial001.py | 18 + docs_src/app_testing/tutorial002.py | 31 + docs_src/app_testing/tutorial003.py | 24 + docs_src/app_testing/tutorial004.py | 43 + docs_src/async_tests/__init__.py | 0 docs_src/async_tests/main.py | 8 + docs_src/async_tests/test_main.py | 14 + .../tutorial001_an.py | 20 + .../tutorial001_an_py39.py | 21 + docs_src/background_tasks/tutorial001.py | 15 + docs_src/background_tasks/tutorial002.py | 26 + docs_src/background_tasks/tutorial002_an.py | 27 + .../background_tasks/tutorial002_an_py310.py | 26 + .../background_tasks/tutorial002_an_py39.py | 26 + .../background_tasks/tutorial002_py310.py | 24 + docs_src/behind_a_proxy/tutorial001.py | 8 + docs_src/behind_a_proxy/tutorial001_01.py | 8 + docs_src/behind_a_proxy/tutorial002.py | 8 + docs_src/behind_a_proxy/tutorial003.py | 14 + docs_src/behind_a_proxy/tutorial004.py | 15 + docs_src/bigger_applications/__init__.py | 0 docs_src/bigger_applications/app/__init__.py | 0 .../bigger_applications/app/dependencies.py | 11 + .../app/internal/__init__.py | 0 .../bigger_applications/app/internal/admin.py | 8 + docs_src/bigger_applications/app/main.py | 23 + .../app/routers/__init__.py | 0 .../bigger_applications/app/routers/items.py | 38 + .../bigger_applications/app/routers/users.py | 18 + .../bigger_applications/app_an/__init__.py | 0 .../app_an/dependencies.py | 12 + .../app_an/internal/__init__.py | 0 .../app_an/internal/admin.py | 8 + docs_src/bigger_applications/app_an/main.py | 23 + .../app_an/routers/__init__.py | 0 .../app_an/routers/items.py | 38 + .../app_an/routers/users.py | 18 + .../app_an_py39/__init__.py | 0 .../app_an_py39/dependencies.py | 13 + .../app_an_py39/internal/__init__.py | 0 .../app_an_py39/internal/admin.py | 8 + .../bigger_applications/app_an_py39/main.py | 23 + .../app_an_py39/routers/__init__.py | 0 .../app_an_py39/routers/items.py | 38 + .../app_an_py39/routers/users.py | 18 + docs_src/body/tutorial001.py | 19 + docs_src/body/tutorial001_py310.py | 17 + docs_src/body/tutorial002.py | 23 + docs_src/body/tutorial002_py310.py | 21 + docs_src/body/tutorial003.py | 19 + docs_src/body/tutorial003_py310.py | 17 + docs_src/body/tutorial004.py | 22 + docs_src/body/tutorial004_py310.py | 20 + docs_src/body_fields/tutorial001.py | 21 + docs_src/body_fields/tutorial001_an.py | 22 + docs_src/body_fields/tutorial001_an_py310.py | 21 + docs_src/body_fields/tutorial001_an_py39.py | 21 + docs_src/body_fields/tutorial001_py310.py | 19 + docs_src/body_multiple_params/tutorial001.py | 28 + .../body_multiple_params/tutorial001_an.py | 28 + .../tutorial001_an_py310.py | 27 + .../tutorial001_an_py39.py | 27 + .../body_multiple_params/tutorial001_py310.py | 26 + docs_src/body_multiple_params/tutorial002.py | 24 + .../body_multiple_params/tutorial002_py310.py | 22 + docs_src/body_multiple_params/tutorial003.py | 24 + .../body_multiple_params/tutorial003_an.py | 27 + .../tutorial003_an_py310.py | 26 + .../tutorial003_an_py39.py | 26 + .../body_multiple_params/tutorial003_py310.py | 22 + docs_src/body_multiple_params/tutorial004.py | 33 + .../body_multiple_params/tutorial004_an.py | 34 + .../tutorial004_an_py310.py | 33 + .../tutorial004_an_py39.py | 33 + .../body_multiple_params/tutorial004_py310.py | 31 + docs_src/body_multiple_params/tutorial005.py | 19 + .../body_multiple_params/tutorial005_an.py | 20 + .../tutorial005_an_py310.py | 19 + .../tutorial005_an_py39.py | 19 + .../body_multiple_params/tutorial005_py310.py | 17 + docs_src/body_nested_models/tutorial001.py | 20 + .../body_nested_models/tutorial001_py310.py | 18 + docs_src/body_nested_models/tutorial002.py | 20 + .../body_nested_models/tutorial002_py310.py | 18 + .../body_nested_models/tutorial002_py39.py | 20 + docs_src/body_nested_models/tutorial003.py | 20 + .../body_nested_models/tutorial003_py310.py | 18 + .../body_nested_models/tutorial003_py39.py | 20 + docs_src/body_nested_models/tutorial004.py | 26 + .../body_nested_models/tutorial004_py310.py | 24 + .../body_nested_models/tutorial004_py39.py | 26 + docs_src/body_nested_models/tutorial005.py | 26 + .../body_nested_models/tutorial005_py310.py | 24 + .../body_nested_models/tutorial005_py39.py | 26 + docs_src/body_nested_models/tutorial006.py | 26 + .../body_nested_models/tutorial006_py310.py | 24 + .../body_nested_models/tutorial006_py39.py | 26 + docs_src/body_nested_models/tutorial007.py | 32 + .../body_nested_models/tutorial007_py310.py | 30 + .../body_nested_models/tutorial007_py39.py | 32 + docs_src/body_nested_models/tutorial008.py | 16 + .../body_nested_models/tutorial008_py39.py | 14 + docs_src/body_nested_models/tutorial009.py | 10 + .../body_nested_models/tutorial009_py39.py | 8 + docs_src/body_updates/tutorial001.py | 34 + docs_src/body_updates/tutorial001_py310.py | 32 + docs_src/body_updates/tutorial001_py39.py | 34 + docs_src/body_updates/tutorial002.py | 37 + docs_src/body_updates/tutorial002_py310.py | 35 + docs_src/body_updates/tutorial002_py39.py | 37 + docs_src/conditional_openapi/tutorial001.py | 16 + docs_src/configure_swagger_ui/tutorial001.py | 8 + docs_src/configure_swagger_ui/tutorial002.py | 8 + docs_src/configure_swagger_ui/tutorial003.py | 8 + docs_src/cookie_param_models/tutorial001.py | 17 + .../cookie_param_models/tutorial001_an.py | 18 + .../tutorial001_an_py310.py | 17 + .../tutorial001_an_py39.py | 17 + .../cookie_param_models/tutorial001_py310.py | 15 + docs_src/cookie_param_models/tutorial002.py | 19 + .../cookie_param_models/tutorial002_an.py | 20 + .../tutorial002_an_py310.py | 19 + .../tutorial002_an_py39.py | 19 + .../cookie_param_models/tutorial002_pv1.py | 20 + .../cookie_param_models/tutorial002_pv1_an.py | 21 + .../tutorial002_pv1_an_py310.py | 20 + .../tutorial002_pv1_an_py39.py | 20 + .../tutorial002_pv1_py310.py | 18 + .../cookie_param_models/tutorial002_py310.py | 17 + docs_src/cookie_params/tutorial001.py | 10 + docs_src/cookie_params/tutorial001_an.py | 11 + .../cookie_params/tutorial001_an_py310.py | 10 + docs_src/cookie_params/tutorial001_an_py39.py | 10 + docs_src/cookie_params/tutorial001_py310.py | 8 + docs_src/cors/tutorial001.py | 24 + docs_src/custom_docs_ui/tutorial001.py | 38 + docs_src/custom_docs_ui/tutorial002.py | 41 + .../custom_request_and_route/tutorial001.py | 35 + .../custom_request_and_route/tutorial002.py | 29 + .../custom_request_and_route/tutorial003.py | 39 + docs_src/custom_response/tutorial001.py | 9 + docs_src/custom_response/tutorial001b.py | 9 + docs_src/custom_response/tutorial002.py | 18 + docs_src/custom_response/tutorial003.py | 19 + docs_src/custom_response/tutorial004.py | 23 + docs_src/custom_response/tutorial005.py | 9 + docs_src/custom_response/tutorial006.py | 9 + docs_src/custom_response/tutorial006b.py | 9 + docs_src/custom_response/tutorial006c.py | 9 + docs_src/custom_response/tutorial007.py | 14 + docs_src/custom_response/tutorial008.py | 14 + docs_src/custom_response/tutorial009.py | 10 + docs_src/custom_response/tutorial009b.py | 10 + docs_src/custom_response/tutorial009c.py | 19 + docs_src/custom_response/tutorial010.py | 9 + docs_src/dataclasses/tutorial001.py | 20 + docs_src/dataclasses/tutorial002.py | 26 + docs_src/dataclasses/tutorial003.py | 55 + docs_src/debugging/tutorial001.py | 15 + docs_src/dependencies/tutorial001.py | 21 + docs_src/dependencies/tutorial001_02_an.py | 25 + .../dependencies/tutorial001_02_an_py310.py | 22 + .../dependencies/tutorial001_02_an_py39.py | 24 + docs_src/dependencies/tutorial001_an.py | 22 + docs_src/dependencies/tutorial001_an_py310.py | 19 + docs_src/dependencies/tutorial001_an_py39.py | 21 + docs_src/dependencies/tutorial001_py310.py | 17 + docs_src/dependencies/tutorial002.py | 25 + docs_src/dependencies/tutorial002_an.py | 26 + docs_src/dependencies/tutorial002_an_py310.py | 25 + docs_src/dependencies/tutorial002_an_py39.py | 25 + docs_src/dependencies/tutorial002_py310.py | 23 + docs_src/dependencies/tutorial003.py | 25 + docs_src/dependencies/tutorial003_an.py | 26 + docs_src/dependencies/tutorial003_an_py310.py | 25 + docs_src/dependencies/tutorial003_an_py39.py | 25 + docs_src/dependencies/tutorial003_py310.py | 23 + docs_src/dependencies/tutorial004.py | 25 + docs_src/dependencies/tutorial004_an.py | 26 + docs_src/dependencies/tutorial004_an_py310.py | 25 + docs_src/dependencies/tutorial004_an_py39.py | 25 + docs_src/dependencies/tutorial004_py310.py | 23 + docs_src/dependencies/tutorial005.py | 23 + docs_src/dependencies/tutorial005_an.py | 26 + docs_src/dependencies/tutorial005_an_py310.py | 25 + docs_src/dependencies/tutorial005_an_py39.py | 25 + docs_src/dependencies/tutorial005_py310.py | 20 + docs_src/dependencies/tutorial006.py | 19 + docs_src/dependencies/tutorial006_an.py | 20 + docs_src/dependencies/tutorial006_an_py39.py | 21 + docs_src/dependencies/tutorial007.py | 6 + docs_src/dependencies/tutorial008.py | 25 + docs_src/dependencies/tutorial008_an.py | 26 + docs_src/dependencies/tutorial008_an_py39.py | 27 + docs_src/dependencies/tutorial008b.py | 30 + docs_src/dependencies/tutorial008b_an.py | 31 + docs_src/dependencies/tutorial008b_an_py39.py | 32 + docs_src/dependencies/tutorial008c.py | 27 + docs_src/dependencies/tutorial008c_an.py | 28 + docs_src/dependencies/tutorial008c_an_py39.py | 29 + docs_src/dependencies/tutorial008d.py | 28 + docs_src/dependencies/tutorial008d_an.py | 29 + docs_src/dependencies/tutorial008d_an_py39.py | 30 + docs_src/dependencies/tutorial008e.py | 15 + docs_src/dependencies/tutorial008e_an.py | 16 + docs_src/dependencies/tutorial008e_an_py39.py | 17 + docs_src/dependencies/tutorial009.py | 25 + docs_src/dependencies/tutorial010.py | 14 + docs_src/dependencies/tutorial011.py | 21 + docs_src/dependencies/tutorial011_an.py | 22 + docs_src/dependencies/tutorial011_an_py39.py | 23 + docs_src/dependencies/tutorial012.py | 25 + docs_src/dependencies/tutorial012_an.py | 26 + docs_src/dependencies/tutorial012_an_py39.py | 26 + docs_src/dependencies/tutorial013_an_py310.py | 38 + docs_src/dependencies/tutorial014_an_py310.py | 39 + docs_src/dependency_testing/tutorial001.py | 59 + docs_src/dependency_testing/tutorial001_an.py | 60 + .../tutorial001_an_py310.py | 57 + .../dependency_testing/tutorial001_an_py39.py | 59 + .../dependency_testing/tutorial001_py310.py | 55 + docs_src/encoder/tutorial001.py | 23 + docs_src/encoder/tutorial001_py310.py | 22 + docs_src/events/tutorial001.py | 16 + docs_src/events/tutorial002.py | 14 + docs_src/events/tutorial003.py | 28 + docs_src/extending_openapi/tutorial001.py | 29 + docs_src/extra_data_types/tutorial001.py | 28 + docs_src/extra_data_types/tutorial001_an.py | 29 + .../extra_data_types/tutorial001_an_py310.py | 28 + .../extra_data_types/tutorial001_an_py39.py | 28 + .../extra_data_types/tutorial001_py310.py | 27 + docs_src/extra_models/tutorial001.py | 43 + docs_src/extra_models/tutorial001_py310.py | 41 + docs_src/extra_models/tutorial002.py | 41 + docs_src/extra_models/tutorial002_py310.py | 39 + docs_src/extra_models/tutorial003.py | 35 + docs_src/extra_models/tutorial003_py310.py | 35 + docs_src/extra_models/tutorial004.py | 22 + docs_src/extra_models/tutorial004_py39.py | 20 + docs_src/extra_models/tutorial005.py | 10 + docs_src/extra_models/tutorial005_py39.py | 8 + docs_src/first_steps/tutorial001.py | 8 + docs_src/first_steps/tutorial002.py | 8 + docs_src/first_steps/tutorial003.py | 8 + docs_src/generate_clients/tutorial001.py | 28 + docs_src/generate_clients/tutorial001_py39.py | 26 + docs_src/generate_clients/tutorial002.py | 38 + docs_src/generate_clients/tutorial002_py39.py | 36 + docs_src/generate_clients/tutorial003.py | 44 + docs_src/generate_clients/tutorial003_py39.py | 42 + docs_src/generate_clients/tutorial004.js | 36 + docs_src/generate_clients/tutorial004.py | 15 + docs_src/graphql/tutorial001.py | 25 + docs_src/handling_errors/tutorial001.py | 12 + docs_src/handling_errors/tutorial002.py | 16 + docs_src/handling_errors/tutorial003.py | 25 + docs_src/handling_errors/tutorial004.py | 23 + docs_src/handling_errors/tutorial005.py | 25 + docs_src/handling_errors/tutorial006.py | 28 + docs_src/header_param_models/tutorial001.py | 19 + .../header_param_models/tutorial001_an.py | 20 + .../tutorial001_an_py310.py | 19 + .../tutorial001_an_py39.py | 19 + .../header_param_models/tutorial001_py310.py | 17 + .../header_param_models/tutorial001_py39.py | 19 + docs_src/header_param_models/tutorial002.py | 21 + .../header_param_models/tutorial002_an.py | 22 + .../tutorial002_an_py310.py | 21 + .../tutorial002_an_py39.py | 21 + .../header_param_models/tutorial002_pv1.py | 22 + .../header_param_models/tutorial002_pv1_an.py | 23 + .../tutorial002_pv1_an_py310.py | 22 + .../tutorial002_pv1_an_py39.py | 22 + .../tutorial002_pv1_py310.py | 20 + .../tutorial002_pv1_py39.py | 22 + .../header_param_models/tutorial002_py310.py | 19 + .../header_param_models/tutorial002_py39.py | 21 + docs_src/header_param_models/tutorial003.py | 19 + .../header_param_models/tutorial003_an.py | 22 + .../tutorial003_an_py310.py | 21 + .../tutorial003_an_py39.py | 21 + .../header_param_models/tutorial003_py310.py | 17 + .../header_param_models/tutorial003_py39.py | 19 + docs_src/header_params/tutorial001.py | 10 + docs_src/header_params/tutorial001_an.py | 11 + .../header_params/tutorial001_an_py310.py | 10 + docs_src/header_params/tutorial001_an_py39.py | 10 + docs_src/header_params/tutorial001_py310.py | 8 + docs_src/header_params/tutorial002.py | 12 + docs_src/header_params/tutorial002_an.py | 15 + .../header_params/tutorial002_an_py310.py | 12 + docs_src/header_params/tutorial002_an_py39.py | 14 + docs_src/header_params/tutorial002_py310.py | 10 + docs_src/header_params/tutorial003.py | 10 + docs_src/header_params/tutorial003_an.py | 11 + .../header_params/tutorial003_an_py310.py | 10 + docs_src/header_params/tutorial003_an_py39.py | 10 + docs_src/header_params/tutorial003_py310.py | 8 + docs_src/header_params/tutorial003_py39.py | 10 + docs_src/metadata/tutorial001.py | 38 + docs_src/metadata/tutorial001_1.py | 38 + docs_src/metadata/tutorial002.py | 8 + docs_src/metadata/tutorial003.py | 8 + docs_src/metadata/tutorial004.py | 28 + docs_src/middleware/tutorial001.py | 14 + docs_src/openapi_callbacks/tutorial001.py | 53 + docs_src/openapi_webhooks/tutorial001.py | 25 + .../tutorial001.py | 8 + .../tutorial002.py | 24 + .../tutorial003.py | 8 + .../tutorial004.py | 30 + .../tutorial005.py | 8 + .../tutorial006.py | 41 + .../tutorial007.py | 34 + .../tutorial007_pv1.py | 34 + .../tutorial001.py | 19 + .../tutorial001_py310.py | 17 + .../tutorial001_py39.py | 19 + .../tutorial002.py | 29 + .../tutorial002_py310.py | 27 + .../tutorial002_py39.py | 29 + .../tutorial002b.py | 20 + .../tutorial003.py | 24 + .../tutorial003_py310.py | 22 + .../tutorial003_py39.py | 24 + .../tutorial004.py | 28 + .../tutorial004_py310.py | 26 + .../tutorial004_py39.py | 28 + .../tutorial005.py | 33 + .../tutorial005_py310.py | 31 + .../tutorial005_py39.py | 33 + .../tutorial006.py | 18 + docs_src/path_params/tutorial001.py | 8 + docs_src/path_params/tutorial002.py | 8 + docs_src/path_params/tutorial003.py | 13 + docs_src/path_params/tutorial003b.py | 13 + docs_src/path_params/tutorial004.py | 8 + docs_src/path_params/tutorial005.py | 23 + .../tutorial001.py | 16 + .../tutorial001_an.py | 17 + .../tutorial001_an_py310.py | 16 + .../tutorial001_an_py39.py | 16 + .../tutorial001_py310.py | 14 + .../tutorial002.py | 11 + .../tutorial002_an.py | 14 + .../tutorial002_an_py39.py | 15 + .../tutorial003.py | 11 + .../tutorial003_an.py | 14 + .../tutorial003_an_py39.py | 15 + .../tutorial004.py | 13 + .../tutorial004_an.py | 14 + .../tutorial004_an_py39.py | 15 + .../tutorial005.py | 15 + .../tutorial005_an.py | 15 + .../tutorial005_an_py39.py | 16 + .../tutorial006.py | 18 + .../tutorial006_an.py | 19 + .../tutorial006_an_py39.py | 20 + docs_src/pydantic_v1_in_v2/tutorial001_an.py | 9 + .../pydantic_v1_in_v2/tutorial001_an_py310.py | 7 + docs_src/pydantic_v1_in_v2/tutorial002_an.py | 18 + .../pydantic_v1_in_v2/tutorial002_an_py310.py | 16 + docs_src/pydantic_v1_in_v2/tutorial003_an.py | 25 + .../pydantic_v1_in_v2/tutorial003_an_py310.py | 23 + docs_src/pydantic_v1_in_v2/tutorial004_an.py | 20 + .../pydantic_v1_in_v2/tutorial004_an_py310.py | 19 + .../pydantic_v1_in_v2/tutorial004_an_py39.py | 19 + docs_src/python_types/tutorial001.py | 6 + docs_src/python_types/tutorial002.py | 6 + docs_src/python_types/tutorial003.py | 3 + docs_src/python_types/tutorial004.py | 3 + docs_src/python_types/tutorial005.py | 2 + docs_src/python_types/tutorial006.py | 6 + docs_src/python_types/tutorial006_py39.py | 3 + docs_src/python_types/tutorial007.py | 5 + docs_src/python_types/tutorial007_py39.py | 2 + docs_src/python_types/tutorial008.py | 7 + docs_src/python_types/tutorial008_py39.py | 4 + docs_src/python_types/tutorial008b.py | 5 + docs_src/python_types/tutorial008b_py310.py | 2 + docs_src/python_types/tutorial009.py | 8 + docs_src/python_types/tutorial009_py310.py | 5 + docs_src/python_types/tutorial009b.py | 8 + docs_src/python_types/tutorial009c.py | 5 + docs_src/python_types/tutorial009c_py310.py | 2 + docs_src/python_types/tutorial010.py | 7 + docs_src/python_types/tutorial011.py | 23 + docs_src/python_types/tutorial011_py310.py | 22 + docs_src/python_types/tutorial011_py39.py | 23 + docs_src/python_types/tutorial012.py | 8 + docs_src/python_types/tutorial013.py | 5 + docs_src/python_types/tutorial013_py39.py | 5 + docs_src/query_param_models/tutorial001.py | 19 + docs_src/query_param_models/tutorial001_an.py | 19 + .../tutorial001_an_py310.py | 18 + .../query_param_models/tutorial001_an_py39.py | 17 + .../query_param_models/tutorial001_py310.py | 18 + .../query_param_models/tutorial001_py39.py | 17 + docs_src/query_param_models/tutorial002.py | 21 + docs_src/query_param_models/tutorial002_an.py | 21 + .../tutorial002_an_py310.py | 20 + .../query_param_models/tutorial002_an_py39.py | 19 + .../query_param_models/tutorial002_pv1.py | 22 + .../query_param_models/tutorial002_pv1_an.py | 22 + .../tutorial002_pv1_an_py310.py | 21 + .../tutorial002_pv1_an_py39.py | 20 + .../tutorial002_pv1_py310.py | 21 + .../tutorial002_pv1_py39.py | 20 + .../query_param_models/tutorial002_py310.py | 20 + .../query_param_models/tutorial002_py39.py | 19 + docs_src/query_params/tutorial001.py | 10 + docs_src/query_params/tutorial002.py | 12 + docs_src/query_params/tutorial002_py310.py | 10 + docs_src/query_params/tutorial003.py | 17 + docs_src/query_params/tutorial003_py310.py | 15 + docs_src/query_params/tutorial004.py | 19 + docs_src/query_params/tutorial004_py310.py | 17 + docs_src/query_params/tutorial005.py | 9 + docs_src/query_params/tutorial006.py | 13 + docs_src/query_params/tutorial006_py310.py | 11 + docs_src/query_params/tutorial006b.py | 13 + .../tutorial001.py | 13 + .../tutorial001_py310.py | 11 + .../tutorial002.py | 13 + .../tutorial002_an.py | 14 + .../tutorial002_an_py310.py | 13 + .../tutorial002_py310.py | 11 + .../tutorial003.py | 15 + .../tutorial003_an.py | 16 + .../tutorial003_an_py310.py | 15 + .../tutorial003_an_py39.py | 15 + .../tutorial003_py310.py | 11 + .../tutorial004.py | 17 + .../tutorial004_an.py | 18 + .../tutorial004_an_py310.py | 17 + .../tutorial004_an_py39.py | 17 + .../tutorial004_py310.py | 15 + .../tutorial004_regex_an_py310.py | 17 + .../tutorial005.py | 11 + .../tutorial005_an.py | 12 + .../tutorial005_an_py39.py | 13 + .../tutorial006.py | 11 + .../tutorial006_an.py | 12 + .../tutorial006_an_py39.py | 13 + .../tutorial006c.py | 13 + .../tutorial006c_an.py | 14 + .../tutorial006c_an_py310.py | 13 + .../tutorial006c_an_py39.py | 13 + .../tutorial006c_py310.py | 11 + .../tutorial007.py | 15 + .../tutorial007_an.py | 16 + .../tutorial007_an_py310.py | 15 + .../tutorial007_an_py39.py | 15 + .../tutorial007_py310.py | 13 + .../tutorial008.py | 20 + .../tutorial008_an.py | 23 + .../tutorial008_an_py310.py | 22 + .../tutorial008_an_py39.py | 22 + .../tutorial008_py310.py | 18 + .../tutorial009.py | 13 + .../tutorial009_an.py | 14 + .../tutorial009_an_py310.py | 13 + .../tutorial009_an_py39.py | 13 + .../tutorial009_py310.py | 11 + .../tutorial010.py | 24 + .../tutorial010_an.py | 27 + .../tutorial010_an_py310.py | 26 + .../tutorial010_an_py39.py | 26 + .../tutorial010_py310.py | 22 + .../tutorial011.py | 11 + .../tutorial011_an.py | 12 + .../tutorial011_an_py310.py | 11 + .../tutorial011_an_py39.py | 11 + .../tutorial011_py310.py | 9 + .../tutorial011_py39.py | 11 + .../tutorial012.py | 11 + .../tutorial012_an.py | 12 + .../tutorial012_an_py39.py | 11 + .../tutorial012_py39.py | 9 + .../tutorial013.py | 9 + .../tutorial013_an.py | 10 + .../tutorial013_an_py39.py | 11 + .../tutorial014.py | 15 + .../tutorial014_an.py | 16 + .../tutorial014_an_py310.py | 15 + .../tutorial014_an_py39.py | 15 + .../tutorial014_py310.py | 13 + .../tutorial015_an.py | 31 + .../tutorial015_an_py310.py | 30 + .../tutorial015_an_py39.py | 30 + docs_src/request_files/tutorial001.py | 13 + docs_src/request_files/tutorial001_02.py | 21 + docs_src/request_files/tutorial001_02_an.py | 22 + .../request_files/tutorial001_02_an_py310.py | 21 + .../request_files/tutorial001_02_an_py39.py | 21 + .../request_files/tutorial001_02_py310.py | 19 + docs_src/request_files/tutorial001_03.py | 15 + docs_src/request_files/tutorial001_03_an.py | 16 + .../request_files/tutorial001_03_an_py39.py | 17 + docs_src/request_files/tutorial001_an.py | 14 + docs_src/request_files/tutorial001_an_py39.py | 15 + docs_src/request_files/tutorial002.py | 33 + docs_src/request_files/tutorial002_an.py | 34 + docs_src/request_files/tutorial002_an_py39.py | 33 + docs_src/request_files/tutorial002_py39.py | 31 + docs_src/request_files/tutorial003.py | 37 + docs_src/request_files/tutorial003_an.py | 40 + docs_src/request_files/tutorial003_an_py39.py | 39 + docs_src/request_files/tutorial003_py39.py | 35 + docs_src/request_form_models/tutorial001.py | 14 + .../request_form_models/tutorial001_an.py | 15 + .../tutorial001_an_py39.py | 16 + docs_src/request_form_models/tutorial002.py | 15 + .../request_form_models/tutorial002_an.py | 16 + .../tutorial002_an_py39.py | 17 + .../request_form_models/tutorial002_pv1.py | 17 + .../request_form_models/tutorial002_pv1_an.py | 18 + .../tutorial002_pv1_an_py39.py | 19 + docs_src/request_forms/tutorial001.py | 8 + docs_src/request_forms/tutorial001_an.py | 9 + docs_src/request_forms/tutorial001_an_py39.py | 10 + .../request_forms_and_files/tutorial001.py | 14 + .../request_forms_and_files/tutorial001_an.py | 17 + .../tutorial001_an_py39.py | 18 + .../tutorial001.py | 13 + docs_src/response_cookies/tutorial001.py | 12 + docs_src/response_cookies/tutorial002.py | 9 + docs_src/response_directly/tutorial001.py | 22 + docs_src/response_directly/tutorial002.py | 18 + docs_src/response_headers/tutorial001.py | 11 + docs_src/response_headers/tutorial002.py | 9 + docs_src/response_model/tutorial001.py | 27 + docs_src/response_model/tutorial001_01.py | 27 + .../response_model/tutorial001_01_py310.py | 25 + .../response_model/tutorial001_01_py39.py | 27 + docs_src/response_model/tutorial001_py310.py | 27 + docs_src/response_model/tutorial001_py39.py | 27 + docs_src/response_model/tutorial002.py | 19 + docs_src/response_model/tutorial002_py310.py | 17 + docs_src/response_model/tutorial003.py | 24 + docs_src/response_model/tutorial003_01.py | 21 + .../response_model/tutorial003_01_py310.py | 19 + docs_src/response_model/tutorial003_02.py | 11 + docs_src/response_model/tutorial003_03.py | 9 + docs_src/response_model/tutorial003_04.py | 13 + .../response_model/tutorial003_04_py310.py | 11 + docs_src/response_model/tutorial003_05.py | 13 + .../response_model/tutorial003_05_py310.py | 11 + docs_src/response_model/tutorial003_py310.py | 24 + docs_src/response_model/tutorial004.py | 26 + docs_src/response_model/tutorial004_py310.py | 24 + docs_src/response_model/tutorial004_py39.py | 26 + docs_src/response_model/tutorial005.py | 39 + docs_src/response_model/tutorial005_py310.py | 37 + docs_src/response_model/tutorial006.py | 39 + docs_src/response_model/tutorial006_py310.py | 37 + docs_src/response_status_code/tutorial001.py | 8 + docs_src/response_status_code/tutorial002.py | 8 + docs_src/schema_extra_example/tutorial001.py | 32 + .../schema_extra_example/tutorial001_pv1.py | 31 + .../tutorial001_pv1_py310.py | 29 + .../schema_extra_example/tutorial001_py310.py | 30 + docs_src/schema_extra_example/tutorial002.py | 19 + .../schema_extra_example/tutorial002_py310.py | 17 + docs_src/schema_extra_example/tutorial003.py | 31 + .../schema_extra_example/tutorial003_an.py | 35 + .../tutorial003_an_py310.py | 34 + .../tutorial003_an_py39.py | 34 + .../schema_extra_example/tutorial003_py310.py | 29 + docs_src/schema_extra_example/tutorial004.py | 40 + .../schema_extra_example/tutorial004_an.py | 44 + .../tutorial004_an_py310.py | 43 + .../tutorial004_an_py39.py | 43 + .../schema_extra_example/tutorial004_py310.py | 38 + docs_src/schema_extra_example/tutorial005.py | 51 + .../schema_extra_example/tutorial005_an.py | 55 + .../tutorial005_an_py310.py | 54 + .../tutorial005_an_py39.py | 54 + .../schema_extra_example/tutorial005_py310.py | 49 + docs_src/security/tutorial001.py | 11 + docs_src/security/tutorial001_an.py | 12 + docs_src/security/tutorial001_an_py39.py | 13 + docs_src/security/tutorial002.py | 32 + docs_src/security/tutorial002_an.py | 33 + docs_src/security/tutorial002_an_py310.py | 32 + docs_src/security/tutorial002_an_py39.py | 32 + docs_src/security/tutorial002_py310.py | 30 + docs_src/security/tutorial003.py | 90 + docs_src/security/tutorial003_an.py | 95 + docs_src/security/tutorial003_an_py310.py | 94 + docs_src/security/tutorial003_an_py39.py | 94 + docs_src/security/tutorial003_py310.py | 88 + docs_src/security/tutorial004.py | 141 + docs_src/security/tutorial004_an.py | 148 + docs_src/security/tutorial004_an_py310.py | 147 + docs_src/security/tutorial004_an_py39.py | 147 + docs_src/security/tutorial004_py310.py | 140 + docs_src/security/tutorial005.py | 177 + docs_src/security/tutorial005_an.py | 180 + docs_src/security/tutorial005_an_py310.py | 179 + docs_src/security/tutorial005_an_py39.py | 179 + docs_src/security/tutorial005_py310.py | 176 + docs_src/security/tutorial005_py39.py | 177 + docs_src/security/tutorial006.py | 11 + docs_src/security/tutorial006_an.py | 12 + docs_src/security/tutorial006_an_py39.py | 13 + docs_src/security/tutorial007.py | 33 + docs_src/security/tutorial007_an.py | 36 + docs_src/security/tutorial007_an_py39.py | 36 + .../separate_openapi_schemas/tutorial001.py | 28 + .../tutorial001_py310.py | 26 + .../tutorial001_py39.py | 28 + .../separate_openapi_schemas/tutorial002.py | 28 + .../tutorial002_py310.py | 26 + .../tutorial002_py39.py | 28 + docs_src/settings/app01/__init__.py | 0 docs_src/settings/app01/config.py | 10 + docs_src/settings/app01/main.py | 14 + docs_src/settings/app02/__init__.py | 0 docs_src/settings/app02/config.py | 7 + docs_src/settings/app02/main.py | 21 + docs_src/settings/app02/test_main.py | 23 + docs_src/settings/app02_an/__init__.py | 0 docs_src/settings/app02_an/config.py | 7 + docs_src/settings/app02_an/main.py | 22 + docs_src/settings/app02_an/test_main.py | 23 + docs_src/settings/app02_an_py39/__init__.py | 0 docs_src/settings/app02_an_py39/config.py | 7 + docs_src/settings/app02_an_py39/main.py | 22 + docs_src/settings/app02_an_py39/test_main.py | 23 + docs_src/settings/app03/__init__.py | 0 docs_src/settings/app03/config.py | 10 + docs_src/settings/app03/main.py | 21 + docs_src/settings/app03_an/__init__.py | 0 docs_src/settings/app03_an/config.py | 9 + docs_src/settings/app03_an/config_pv1.py | 10 + docs_src/settings/app03_an/main.py | 22 + docs_src/settings/app03_an_py39/__init__.py | 0 docs_src/settings/app03_an_py39/config.py | 10 + docs_src/settings/app03_an_py39/main.py | 22 + docs_src/settings/tutorial001.py | 21 + docs_src/settings/tutorial001_pv1.py | 21 + docs_src/sql_databases/__init__.py | 0 docs_src/sql_databases/tutorial001.py | 71 + docs_src/sql_databases/tutorial001_an.py | 74 + .../sql_databases/tutorial001_an_py310.py | 73 + docs_src/sql_databases/tutorial001_an_py39.py | 73 + docs_src/sql_databases/tutorial001_py310.py | 69 + docs_src/sql_databases/tutorial001_py39.py | 71 + docs_src/sql_databases/tutorial002.py | 104 + docs_src/sql_databases/tutorial002_an.py | 104 + .../sql_databases/tutorial002_an_py310.py | 103 + docs_src/sql_databases/tutorial002_an_py39.py | 103 + docs_src/sql_databases/tutorial002_py310.py | 102 + docs_src/sql_databases/tutorial002_py39.py | 104 + docs_src/static_files/tutorial001.py | 6 + docs_src/sub_applications/tutorial001.py | 19 + docs_src/templates/static/styles.css | 3 + docs_src/templates/templates/item.html | 9 + docs_src/templates/tutorial001.py | 18 + .../using_request_directly/tutorial001.py | 9 + docs_src/websockets/__init__.py | 0 docs_src/websockets/tutorial001.py | 51 + docs_src/websockets/tutorial002.py | 91 + docs_src/websockets/tutorial002_an.py | 93 + docs_src/websockets/tutorial002_an_py310.py | 92 + docs_src/websockets/tutorial002_an_py39.py | 92 + docs_src/websockets/tutorial002_py310.py | 89 + docs_src/websockets/tutorial003.py | 83 + docs_src/websockets/tutorial003_py39.py | 81 + docs_src/wsgi/tutorial001.py | 23 + fastapi/__init__.py | 25 + fastapi/__main__.py | 3 + fastapi/_compat/__init__.py | 50 + fastapi/_compat/main.py | 362 + fastapi/_compat/may_v1.py | 123 + fastapi/_compat/model_field.py | 53 + fastapi/_compat/shared.py | 211 + fastapi/_compat/v1.py | 312 + fastapi/_compat/v2.py | 499 ++ fastapi/applications.py | 4673 +++++++++++ fastapi/background.py | 60 + fastapi/cli.py | 13 + fastapi/concurrency.py | 39 + fastapi/datastructures.py | 204 + fastapi/dependencies/__init__.py | 0 fastapi/dependencies/models.py | 193 + fastapi/dependencies/utils.py | 1057 +++ fastapi/encoders.py | 356 + fastapi/exception_handlers.py | 34 + fastapi/exceptions.py | 233 + fastapi/logger.py | 3 + fastapi/middleware/__init__.py | 1 + fastapi/middleware/asyncexitstack.py | 18 + fastapi/middleware/cors.py | 1 + fastapi/middleware/gzip.py | 1 + fastapi/middleware/httpsredirect.py | 3 + fastapi/middleware/trustedhost.py | 3 + fastapi/middleware/wsgi.py | 1 + fastapi/openapi/__init__.py | 0 fastapi/openapi/constants.py | 3 + fastapi/openapi/docs.py | 345 + fastapi/openapi/models.py | 451 + fastapi/openapi/utils.py | 567 ++ fastapi/param_functions.py | 2381 ++++++ fastapi/params.py | 774 ++ fastapi/py.typed | 0 fastapi/requests.py | 2 + fastapi/responses.py | 48 + fastapi/routing.py | 4573 +++++++++++ fastapi/security/__init__.py | 15 + fastapi/security/api_key.py | 319 + fastapi/security/base.py | 6 + fastapi/security/http.py | 424 + fastapi/security/oauth2.py | 666 ++ fastapi/security/open_id_connect_url.py | 95 + fastapi/security/utils.py | 10 + fastapi/staticfiles.py | 1 + fastapi/temp_pydantic_v1_params.py | 724 ++ fastapi/templating.py | 1 + fastapi/testclient.py | 1 + fastapi/types.py | 11 + fastapi/utils.py | 260 + fastapi/websockets.py | 3 + pdm_build.py | 20 + pyproject.toml | 272 + requirements-docs-tests.txt | 4 + requirements-docs.txt | 21 + requirements-github-actions.txt | 6 + requirements-tests.txt | 16 + requirements-translations.txt | 2 + requirements.txt | 6 + scripts/contributors.py | 315 + scripts/coverage.sh | 8 + scripts/deploy_docs_status.py | 149 + scripts/docs.py | 542 ++ scripts/format.sh | 5 + scripts/label_approved.py | 60 + scripts/lint.sh | 8 + scripts/mkdocs_hooks.py | 154 + scripts/notify_translations.py | 432 + scripts/people.py | 402 + .../playwright/cookie_param_models/image01.py | 39 + .../playwright/header_param_models/image01.py | 38 + .../playwright/query_param_models/image01.py | 41 + .../playwright/request_form_models/image01.py | 38 + .../separate_openapi_schemas/image01.py | 32 + .../separate_openapi_schemas/image02.py | 33 + .../separate_openapi_schemas/image03.py | 33 + .../separate_openapi_schemas/image04.py | 32 + .../separate_openapi_schemas/image05.py | 32 + scripts/playwright/sql_databases/image01.py | 37 + scripts/playwright/sql_databases/image02.py | 37 + scripts/sponsors.py | 221 + scripts/test-cov-html.sh | 7 + scripts/test.sh | 7 + scripts/topic_repos.py | 80 + scripts/translate.py | 981 +++ tests/__init__.py | 0 tests/forward_reference_type.py | 9 + tests/main.py | 209 + tests/test_additional_properties.py | 109 + tests/test_additional_properties_bool.py | 133 + tests/test_additional_response_extra.py | 49 + tests/test_additional_responses_bad.py | 40 + ...onal_responses_custom_model_in_callback.py | 152 + ...tional_responses_custom_validationerror.py | 99 + ...ional_responses_default_validationerror.py | 84 + ...est_additional_responses_response_class.py | 116 + tests/test_additional_responses_router.py | 177 + tests/test_allow_inf_nan_in_enforcing.py | 83 + tests/test_ambiguous_params.py | 75 + tests/test_annotated.py | 312 + tests/test_application.py | 1287 +++ tests/test_callable_endpoint.py | 25 + tests/test_compat.py | 203 + tests/test_compat_params_v1.py | 1122 +++ tests/test_computed_fields.py | 101 + tests/test_custom_middleware_exception.py | 95 + tests/test_custom_route_class.py | 118 + tests/test_custom_schema_fields.py | 75 + tests/test_custom_swagger_ui_redirect.py | 38 + tests/test_datastructures.py | 72 + tests/test_datetime_custom_encoder.py | 57 + tests/test_default_response_class.py | 216 + tests/test_default_response_class_router.py | 206 + tests/test_dependency_after_yield_raise.py | 69 + .../test_dependency_after_yield_streaming.py | 130 + .../test_dependency_after_yield_websockets.py | 79 + tests/test_dependency_cache.py | 91 + tests/test_dependency_class.py | 154 + tests/test_dependency_contextmanager.py | 400 + tests/test_dependency_contextvars.py | 51 + tests/test_dependency_duplicates.py | 246 + tests/test_dependency_overrides.py | 540 ++ tests/test_dependency_paramless.py | 78 + tests/test_dependency_partial.py | 251 + tests/test_dependency_security_overrides.py | 65 + tests/test_dependency_wrapped.py | 449 + ...t_dependency_yield_except_httpexception.py | 72 + tests/test_dependency_yield_scope.py | 246 + .../test_dependency_yield_scope_websockets.py | 201 + tests/test_depends_hashable.py | 25 + tests/test_deprecated_openapi_prefix.py | 42 + tests/test_duplicate_models_openapi.py | 79 + tests/test_empty_router.py | 36 + tests/test_enforce_once_required_parameter.py | 111 + tests/test_exception_handlers.py | 88 + tests/test_extra_routes.py | 370 + tests/test_fastapi_cli.py | 34 + tests/test_file_and_form_order_issue_9116.py | 90 + .../__init__.py | 0 .../test_filter_pydantic_sub_model/app_pv1.py | 35 + .../test_filter_pydantic_sub_model_pv1.py | 130 + tests/test_filter_pydantic_sub_model_pv2.py | 184 + tests/test_form_default.py | 35 + tests/test_forms_from_non_typing_sequences.py | 46 + tests/test_forms_single_model.py | 180 + tests/test_forms_single_param.py | 99 + tests/test_generate_unique_id_function.py | 1634 ++++ tests/test_generic_parameterless_depends.py | 77 + ...t_get_model_definitions_formfeed_escape.py | 180 + tests/test_get_request_body.py | 107 + tests/test_http_connection_injection.py | 39 + tests/test_include_route.py | 22 + .../test_include_router_defaults_overrides.py | 7297 +++++++++++++++++ tests/test_infer_param_optionality.py | 357 + tests/test_inherited_custom_class.py | 111 + tests/test_invalid_path_param.py | 77 + tests/test_invalid_sequence_param.py | 53 + tests/test_jsonable_encoder.py | 336 + tests/test_local_docs.py | 67 + tests/test_modules_same_name_body/__init__.py | 0 .../app/__init__.py | 0 tests/test_modules_same_name_body/app/a.py | 8 + tests/test_modules_same_name_body/app/b.py | 8 + tests/test_modules_same_name_body/app/main.py | 8 + .../test_modules_same_name_body/test_main.py | 149 + tests/test_multi_body_errors.py | 239 + tests/test_multi_query_errors.py | 136 + tests/test_multipart_installation.py | 149 + tests/test_no_schema_split.py | 203 + tests/test_no_swagger_ui_redirect.py | 31 + tests/test_openapi_examples.py | 471 ++ ...napi_model_description_trim_on_formfeed.py | 31 + .../test_openapi_query_parameter_extension.py | 137 + tests/test_openapi_route_extensions.py | 42 + tests/test_openapi_schema_type.py | 26 + ...t_openapi_separate_input_output_schemas.py | 680 ++ tests/test_openapi_servers.py | 68 + tests/test_operations_signatures.py | 22 + tests/test_optional_file_list.py | 30 + tests/test_orjson_response_class.py | 21 + tests/test_param_class.py | 27 + tests/test_param_in_path_and_dependency.py | 93 + tests/test_param_include_in_schema.py | 242 + tests/test_params_repr.py | 143 + tests/test_path.py | 1242 +++ tests/test_put_no_body.py | 96 + tests/test_pydantic_v1_v2_01.py | 475 ++ tests/test_pydantic_v1_v2_list.py | 701 ++ tests/test_pydantic_v1_v2_mixed.py | 1499 ++++ .../test_pydantic_v1_v2_multifile/__init__.py | 0 tests/test_pydantic_v1_v2_multifile/main.py | 142 + .../test_pydantic_v1_v2_multifile/modelsv1.py | 19 + .../test_pydantic_v1_v2_multifile/modelsv2.py | 19 + .../modelsv2b.py | 19 + .../test_multifile.py | 1226 +++ tests/test_pydantic_v1_v2_noneable.py | 766 ++ tests/test_query.py | 421 + ..._query_cookie_header_model_extra_params.py | 111 + tests/test_read_with_orm_mode.py | 88 + tests/test_regex_deprecated_body.py | 180 + tests/test_regex_deprecated_params.py | 163 + tests/test_repeated_cookie_headers.py | 34 + tests/test_repeated_dependency_schema.py | 102 + tests/test_repeated_parameter_alias.py | 100 + tests/test_reponse_set_reponse_code_empty.py | 97 + ...test_request_body_parameters_media_type.py | 177 + tests/test_request_param_model_by_alias.py | 76 + tests/test_required_noneable.py | 62 + tests/test_response_by_alias.py | 336 + tests/test_response_change_status_code.py | 26 + tests/test_response_class_no_mediatype.py | 113 + tests/test_response_code_no_body.py | 114 + ...est_response_model_as_return_annotation.py | 1136 +++ tests/test_response_model_data_filter.py | 81 + ...sponse_model_data_filter_no_inheritance.py | 83 + tests/test_response_model_default_factory.py | 47 + tests/test_response_model_include_exclude.py | 175 + tests/test_response_model_invalid.py | 45 + tests/test_response_model_sub_types.py | 158 + ...est_return_none_stringified_annotations.py | 17 + tests/test_route_scope.py | 50 + tests/test_router_events.py | 242 + tests/test_router_prefix_with_template.py | 23 + tests/test_router_redirect_slashes.py | 40 + tests/test_schema_compat_pydantic_v2.py | 92 + tests/test_schema_extra_examples.py | 966 +++ tests/test_schema_ref_pydantic_v2.py | 72 + tests/test_security_api_key_cookie.py | 67 + ...est_security_api_key_cookie_description.py | 72 + .../test_security_api_key_cookie_optional.py | 73 + tests/test_security_api_key_header.py | 67 + ...est_security_api_key_header_description.py | 72 + .../test_security_api_key_header_optional.py | 72 + tests/test_security_api_key_query.py | 67 + ...test_security_api_key_query_description.py | 72 + tests/test_security_api_key_query_optional.py | 72 + tests/test_security_http_base.py | 55 + tests/test_security_http_base_description.py | 61 + tests/test_security_http_base_optional.py | 60 + tests/test_security_http_basic_optional.py | 77 + tests/test_security_http_basic_realm.py | 75 + ...t_security_http_basic_realm_description.py | 81 + tests/test_security_http_bearer.py | 62 + .../test_security_http_bearer_description.py | 68 + tests/test_security_http_bearer_optional.py | 66 + tests/test_security_http_digest.py | 64 + .../test_security_http_digest_description.py | 70 + tests/test_security_http_digest_optional.py | 68 + tests/test_security_oauth2.py | 332 + ...curity_oauth2_authorization_code_bearer.py | 75 + ...2_authorization_code_bearer_description.py | 79 + ...uthorization_code_bearer_scopes_openapi.py | 198 + ...ation_code_bearer_scopes_openapi_simple.py | 79 + tests/test_security_oauth2_optional.py | 335 + ...st_security_oauth2_optional_description.py | 337 + ...ecurity_oauth2_password_bearer_optional.py | 69 + ...h2_password_bearer_optional_description.py | 74 + tests/test_security_openid_connect.py | 76 + ...est_security_openid_connect_description.py | 79 + .../test_security_openid_connect_optional.py | 81 + tests/test_security_scopes.py | 46 + tests/test_security_scopes_dont_propagate.py | 45 + tests/test_security_scopes_sub_dependency.py | 107 + tests/test_serialize_response.py | 57 + tests/test_serialize_response_dataclass.py | 194 + tests/test_serialize_response_model.py | 154 + tests/test_skip_defaults.py | 95 + tests/test_starlette_exception.py | 202 + tests/test_starlette_urlconvertors.py | 63 + tests/test_stringified_annotations_simple.py | 26 + tests/test_sub_callbacks.py | 312 + tests/test_swagger_ui_init_oauth.py | 28 + ...st_top_level_security_scheme_in_openapi.py | 60 + tests/test_tuples.py | 310 + tests/test_tutorial/__init__.py | 0 .../test_additional_responses/__init__.py | 0 .../test_tutorial001.py | 116 + .../test_tutorial002.py | 125 + .../test_tutorial003.py | 120 + .../test_tutorial004.py | 128 + .../test_additional_status_codes/__init__.py | 0 .../test_tutorial001.py | 35 + .../test_advanced_middleware/__init__.py | 0 .../test_tutorial001.py | 14 + .../test_tutorial002.py | 15 + .../test_tutorial003.py | 22 + .../test_async_tests/__init__.py | 0 .../test_async_tests/test_main.py | 8 + .../__init__.py | 0 .../test_tutorial001.py | 69 + .../test_background_tasks/__init__.py | 0 .../test_background_tasks/test_tutorial001.py | 19 + .../test_background_tasks/test_tutorial002.py | 36 + .../test_behind_a_proxy/__init__.py | 0 .../test_behind_a_proxy/test_tutorial001.py | 35 + .../test_tutorial001_01.py | 21 + .../test_behind_a_proxy/test_tutorial002.py | 35 + .../test_behind_a_proxy/test_tutorial003.py | 54 + .../test_behind_a_proxy/test_tutorial004.py | 53 + .../test_bigger_applications/__init__.py | 0 .../test_bigger_applications/test_main.py | 726 ++ tests/test_tutorial/test_body/__init__.py | 0 .../test_body/test_tutorial001.py | 489 ++ .../test_body_fields/__init__.py | 0 .../test_body_fields/test_tutorial001.py | 216 + .../test_body_multiple_params/__init__.py | 0 .../test_tutorial001.py | 219 + .../test_tutorial003.py | 286 + .../test_body_nested_models/__init__.py | 0 .../test_tutorial009.py | 133 + .../test_body_updates/__init__.py | 0 .../test_body_updates/test_tutorial001.py | 322 + .../test_conditional_openapi/__init__.py | 0 .../test_tutorial001.py | 63 + .../test_configure_swagger_ui/__init__.py | 0 .../test_tutorial001.py | 41 + .../test_tutorial002.py | 44 + .../test_tutorial003.py | 44 + .../test_cookie_param_models/__init__.py | 0 .../test_tutorial001.py | 205 + .../test_tutorial002.py | 243 + .../test_cookie_params/__init__.py | 0 .../test_cookie_params/test_tutorial001.py | 127 + tests/test_tutorial/test_cors/__init__.py | 0 .../test_cors/test_tutorial001.py | 37 + .../test_custom_docs_ui/__init__.py | 0 .../test_custom_docs_ui/test_tutorial001.py | 42 + .../test_custom_docs_ui/test_tutorial002.py | 42 + .../test_custom_request_and_route/__init__.py | 0 .../test_tutorial001.py | 35 + .../test_tutorial002.py | 46 + .../test_tutorial003.py | 18 + .../test_custom_response/__init__.py | 0 .../test_custom_response/test_tutorial001.py | 34 + .../test_custom_response/test_tutorial001b.py | 34 + .../test_custom_response/test_tutorial004.py | 46 + .../test_custom_response/test_tutorial005.py | 34 + .../test_custom_response/test_tutorial006.py | 34 + .../test_custom_response/test_tutorial006b.py | 29 + .../test_custom_response/test_tutorial006c.py | 29 + .../test_custom_response/test_tutorial007.py | 11 + .../test_custom_response/test_tutorial008.py | 17 + .../test_custom_response/test_tutorial009.py | 17 + .../test_custom_response/test_tutorial009b.py | 17 + .../test_custom_response/test_tutorial009c.py | 10 + .../test_dataclasses/__init__.py | 0 .../test_dataclasses/test_tutorial001.py | 146 + .../test_dataclasses/test_tutorial002.py | 97 + .../test_dataclasses/test_tutorial003.py | 323 + .../test_dependencies/__init__.py | 0 .../test_dependencies/test_tutorial001.py | 200 + .../test_dependencies/test_tutorial004.py | 179 + .../test_dependencies/test_tutorial006.py | 165 + .../test_dependencies/test_tutorial008b.py | 39 + .../test_dependencies/test_tutorial008c.py | 50 + .../test_dependencies/test_tutorial008d.py | 51 + .../test_dependencies/test_tutorial008e.py | 27 + .../test_dependencies/test_tutorial012.py | 266 + tests/test_tutorial/test_events/__init__.py | 0 .../test_events/test_tutorial001.py | 92 + .../test_events/test_tutorial002.py | 43 + .../test_events/test_tutorial003.py | 92 + .../test_extending_openapi/__init__.py | 0 .../test_tutorial001.py | 47 + .../test_extra_data_types/__init__.py | 0 .../test_extra_data_types/test_tutorial001.py | 193 + .../test_extra_models/__init__.py | 0 .../test_extra_models/test_tutorial003.py | 149 + .../test_extra_models/test_tutorial004.py | 73 + .../test_extra_models/test_tutorial005.py | 57 + .../test_first_steps/__init__.py | 0 .../test_first_steps/test_tutorial001.py | 42 + .../test_generate_clients/__init__.py | 0 .../test_generate_clients/test_tutorial003.py | 187 + .../test_handling_errors/__init__.py | 0 .../test_handling_errors/test_tutorial001.py | 90 + .../test_handling_errors/test_tutorial002.py | 90 + .../test_handling_errors/test_tutorial003.py | 91 + .../test_handling_errors/test_tutorial004.py | 106 + .../test_handling_errors/test_tutorial005.py | 124 + .../test_handling_errors/test_tutorial006.py | 118 + .../test_header_param_models/__init__.py | 0 .../test_tutorial001.py | 238 + .../test_tutorial002.py | 249 + .../test_tutorial003.py | 285 + .../test_header_params/__init__.py | 0 .../test_header_params/test_tutorial001.py | 118 + .../test_header_params/test_tutorial002.py | 130 + .../test_header_params/test_tutorial003.py | 131 + tests/test_tutorial/test_metadata/__init__.py | 0 .../test_metadata/test_tutorial001.py | 49 + .../test_metadata/test_tutorial001_1.py | 49 + .../test_metadata/test_tutorial004.py | 63 + .../test_openapi_callbacks/__init__.py | 0 .../test_tutorial001.py | 200 + .../test_openapi_webhooks/__init__.py | 0 .../test_openapi_webhooks/test_tutorial001.py | 117 + .../__init__.py | 0 .../test_tutorial001.py | 34 + .../test_tutorial002.py | 34 + .../test_tutorial003.py | 21 + .../test_tutorial004.py | 218 + .../test_tutorial005.py | 34 + .../test_tutorial006.py | 57 + .../test_tutorial007.py | 112 + .../test_tutorial007_pv1.py | 106 + .../__init__.py | 0 .../test_tutorial002b.py | 54 + .../test_tutorial005.py | 234 + .../test_tutorial006.py | 71 + .../test_path_params/__init__.py | 0 .../test_path_params/test_tutorial004.py | 91 + .../test_path_params/test_tutorial005.py | 143 + .../test_pydantic_v1_in_v2/__init__.py | 0 .../test_tutorial001.py | 37 + .../test_tutorial002.py | 140 + .../test_tutorial003.py | 154 + .../test_tutorial004.py | 153 + .../test_query_param_models/__init__.py | 0 .../test_tutorial001.py | 260 + .../test_tutorial002.py | 282 + .../test_query_params/__init__.py | 0 .../test_query_params/test_tutorial005.py | 118 + .../test_query_params/test_tutorial006.py | 185 + .../__init__.py | 0 .../test_tutorial010.py | 183 + .../test_tutorial011.py | 129 + .../test_tutorial012.py | 115 + .../test_tutorial013.py | 114 + .../test_tutorial014.py | 101 + .../test_tutorial015.py | 143 + .../test_request_files/__init__.py | 0 .../test_request_files/test_tutorial001.py | 231 + .../test_request_files/test_tutorial001_02.py | 225 + .../test_request_files/test_tutorial001_03.py | 173 + .../test_request_files/test_tutorial002.py | 272 + .../test_request_files/test_tutorial003.py | 217 + .../test_request_form_models/__init__.py | 0 .../test_tutorial001.py | 243 + .../test_tutorial002.py | 205 + .../test_tutorial002_pv1.py | 205 + .../test_request_forms/__init__.py | 0 .../test_request_forms/test_tutorial001.py | 245 + .../test_request_forms_and_files/__init__.py | 0 .../test_tutorial001.py | 320 + .../__init__.py | 0 .../test_tutorial001.py | 15 + .../test_response_cookies/__init__.py | 0 .../test_response_cookies/test_tutorial001.py | 12 + .../test_response_cookies/test_tutorial002.py | 12 + .../test_response_headers/__init__.py | 0 .../test_response_headers/test_tutorial001.py | 13 + .../test_response_headers/test_tutorial002.py | 12 + .../test_response_model/__init__.py | 0 .../test_response_model/test_tutorial003.py | 166 + .../test_tutorial003_01.py | 166 + .../test_tutorial003_02.py | 93 + .../test_tutorial003_03.py | 34 + .../test_tutorial003_04.py | 18 + .../test_tutorial003_05.py | 108 + .../test_response_model/test_tutorial004.py | 154 + .../test_response_model/test_tutorial005.py | 171 + .../test_response_model/test_tutorial006.py | 171 + .../test_schema_extra_example/__init__.py | 0 .../test_tutorial001.py | 141 + .../test_tutorial001_pv1.py | 135 + .../test_tutorial004.py | 185 + .../test_tutorial005.py | 179 + tests/test_tutorial/test_security/__init__.py | 0 .../test_security/test_tutorial001.py | 73 + .../test_security/test_tutorial003.py | 234 + .../test_security/test_tutorial005.py | 456 + .../test_security/test_tutorial006.py | 80 + .../test_separate_openapi_schemas/__init__.py | 0 .../test_tutorial001.py | 142 + .../test_tutorial002.py | 142 + tests/test_tutorial/test_settings/__init__.py | 0 .../test_tutorial/test_settings/test_app02.py | 20 + .../test_settings/test_tutorial001.py | 31 + .../test_sql_databases/__init__.py | 0 .../test_sql_databases/test_tutorial001.py | 375 + .../test_sql_databases/test_tutorial002.py | 483 ++ .../test_sub_applications/__init__.py | 0 .../test_sub_applications/test_tutorial001.py | 67 + .../test_tutorial/test_templates/__init__.py | 0 .../test_templates/test_tutorial001.py | 27 + tests/test_tutorial/test_testing/__init__.py | 0 tests/test_tutorial/test_testing/test_main.py | 28 + .../test_tutorial/test_testing/test_main_b.py | 31 + .../test_testing/test_tutorial001.py | 28 + .../test_testing/test_tutorial002.py | 9 + .../test_testing/test_tutorial003.py | 7 + .../test_testing/test_tutorial004.py | 5 + .../test_testing_dependencies/__init__.py | 0 .../test_tutorial001.py | 83 + .../test_tutorial/test_websockets/__init__.py | 0 .../test_websockets/test_tutorial001.py | 26 + .../test_websockets/test_tutorial002.py | 107 + .../test_websockets/test_tutorial003.py | 27 + .../test_websockets/test_tutorial003_py39.py | 50 + tests/test_tutorial/test_wsgi/__init__.py | 0 .../test_wsgi/test_tutorial001.py | 17 + tests/test_typing_python39.py | 24 + tests/test_union_body.py | 136 + tests/test_union_body_discriminator.py | 188 + tests/test_union_forms.py | 156 + tests/test_union_inherited_body.py | 148 + tests/test_validate_response.py | 84 + tests/test_validate_response_dataclass.py | 53 + .../__init__.py | 0 tests/test_validate_response_recursive/app.py | 54 + .../test_validate_response_recursive.py | 30 + tests/test_validation_error_context.py | 168 + tests/test_webhooks_security.py | 126 + .../test_wrapped_method_forward_reference.py | 31 + tests/test_ws_dependencies.py | 73 + tests/test_ws_router.py | 271 + tests/utils.py | 43 + 2600 files changed, 301870 insertions(+) create mode 100644 .SYNC_INFO.md create mode 100644 .github/DISCUSSION_TEMPLATE/questions.yml create mode 100644 .github/DISCUSSION_TEMPLATE/translations.yml create mode 100644 .github/FUNDING.yml create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/privileged.yml create mode 100644 .github/dependabot.yml create mode 100644 .github/labeler.yml create mode 100644 .github/workflows/add-to-project.yml create mode 100644 .github/workflows/build-docs.yml create mode 100644 .github/workflows/contributors.yml create mode 100644 .github/workflows/deploy-docs.yml create mode 100644 .github/workflows/detect-conflicts.yml create mode 100644 .github/workflows/issue-manager.yml create mode 100644 .github/workflows/label-approved.yml create mode 100644 .github/workflows/labeler.yml create mode 100644 .github/workflows/latest-changes.yml create mode 100644 .github/workflows/notify-translations.yml create mode 100644 .github/workflows/people.yml create mode 100644 .github/workflows/pre-commit.yml create mode 100644 .github/workflows/publish.yml create mode 100644 .github/workflows/smokeshow.yml create mode 100644 .github/workflows/sponsors.yml create mode 100644 .github/workflows/test-redistribute.yml create mode 100644 .github/workflows/test.yml create mode 100644 .github/workflows/topic-repos.yml create mode 100644 .github/workflows/translate.yml create mode 100644 .gitignore create mode 100644 .pre-commit-config.yaml create mode 100644 CITATION.cff create mode 100644 CONTRIBUTING.md create mode 100644 LICENSE create mode 100644 README.md create mode 100644 SECURITY.md create mode 100644 docs/de/docs/_llm-test.md create mode 100644 docs/de/docs/about/index.md create mode 100644 docs/de/docs/advanced/additional-responses.md create mode 100644 docs/de/docs/advanced/additional-status-codes.md create mode 100644 docs/de/docs/advanced/advanced-dependencies.md create mode 100644 docs/de/docs/advanced/async-tests.md create mode 100644 docs/de/docs/advanced/behind-a-proxy.md create mode 100644 docs/de/docs/advanced/custom-response.md create mode 100644 docs/de/docs/advanced/dataclasses.md create mode 100644 docs/de/docs/advanced/events.md create mode 100644 docs/de/docs/advanced/generate-clients.md create mode 100644 docs/de/docs/advanced/index.md create mode 100644 docs/de/docs/advanced/middleware.md create mode 100644 docs/de/docs/advanced/openapi-callbacks.md create mode 100644 docs/de/docs/advanced/openapi-webhooks.md create mode 100644 docs/de/docs/advanced/path-operation-advanced-configuration.md create mode 100644 docs/de/docs/advanced/response-change-status-code.md create mode 100644 docs/de/docs/advanced/response-cookies.md create mode 100644 docs/de/docs/advanced/response-directly.md create mode 100644 docs/de/docs/advanced/response-headers.md create mode 100644 docs/de/docs/advanced/security/http-basic-auth.md create mode 100644 docs/de/docs/advanced/security/index.md create mode 100644 docs/de/docs/advanced/security/oauth2-scopes.md create mode 100644 docs/de/docs/advanced/settings.md create mode 100644 docs/de/docs/advanced/sub-applications.md create mode 100644 docs/de/docs/advanced/templates.md create mode 100644 docs/de/docs/advanced/testing-dependencies.md create mode 100644 docs/de/docs/advanced/testing-events.md create mode 100644 docs/de/docs/advanced/testing-websockets.md create mode 100644 docs/de/docs/advanced/using-request-directly.md create mode 100644 docs/de/docs/advanced/websockets.md create mode 100644 docs/de/docs/advanced/wsgi.md create mode 100644 docs/de/docs/alternatives.md create mode 100644 docs/de/docs/async.md create mode 100644 docs/de/docs/benchmarks.md create mode 100644 docs/de/docs/deployment/cloud.md create mode 100644 docs/de/docs/deployment/concepts.md create mode 100644 docs/de/docs/deployment/docker.md create mode 100644 docs/de/docs/deployment/fastapicloud.md create mode 100644 docs/de/docs/deployment/https.md create mode 100644 docs/de/docs/deployment/index.md create mode 100644 docs/de/docs/deployment/manually.md create mode 100644 docs/de/docs/deployment/server-workers.md create mode 100644 docs/de/docs/deployment/versions.md create mode 100644 docs/de/docs/environment-variables.md create mode 100644 docs/de/docs/fastapi-cli.md create mode 100644 docs/de/docs/features.md create mode 100644 docs/de/docs/help-fastapi.md create mode 100644 docs/de/docs/history-design-future.md create mode 100644 docs/de/docs/how-to/authentication-error-status-code.md create mode 100644 docs/de/docs/how-to/conditional-openapi.md create mode 100644 docs/de/docs/how-to/configure-swagger-ui.md create mode 100644 docs/de/docs/how-to/custom-docs-ui-assets.md create mode 100644 docs/de/docs/how-to/custom-request-and-route.md create mode 100644 docs/de/docs/how-to/extending-openapi.md create mode 100644 docs/de/docs/how-to/general.md create mode 100644 docs/de/docs/how-to/graphql.md create mode 100644 docs/de/docs/how-to/index.md create mode 100644 docs/de/docs/how-to/migrate-from-pydantic-v1-to-pydantic-v2.md create mode 100644 docs/de/docs/how-to/separate-openapi-schemas.md create mode 100644 docs/de/docs/how-to/testing-database.md create mode 100644 docs/de/docs/index.md create mode 100644 docs/de/docs/learn/index.md create mode 100644 docs/de/docs/project-generation.md create mode 100644 docs/de/docs/python-types.md create mode 100644 docs/de/docs/resources/index.md create mode 100644 docs/de/docs/tutorial/background-tasks.md create mode 100644 docs/de/docs/tutorial/bigger-applications.md create mode 100644 docs/de/docs/tutorial/body-fields.md create mode 100644 docs/de/docs/tutorial/body-multiple-params.md create mode 100644 docs/de/docs/tutorial/body-nested-models.md create mode 100644 docs/de/docs/tutorial/body-updates.md create mode 100644 docs/de/docs/tutorial/body.md create mode 100644 docs/de/docs/tutorial/cookie-param-models.md create mode 100644 docs/de/docs/tutorial/cookie-params.md create mode 100644 docs/de/docs/tutorial/cors.md create mode 100644 docs/de/docs/tutorial/debugging.md create mode 100644 docs/de/docs/tutorial/dependencies/classes-as-dependencies.md create mode 100644 docs/de/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md create mode 100644 docs/de/docs/tutorial/dependencies/dependencies-with-yield.md create mode 100644 docs/de/docs/tutorial/dependencies/global-dependencies.md create mode 100644 docs/de/docs/tutorial/dependencies/index.md create mode 100644 docs/de/docs/tutorial/dependencies/sub-dependencies.md create mode 100644 docs/de/docs/tutorial/encoder.md create mode 100644 docs/de/docs/tutorial/extra-data-types.md create mode 100644 docs/de/docs/tutorial/extra-models.md create mode 100644 docs/de/docs/tutorial/first-steps.md create mode 100644 docs/de/docs/tutorial/handling-errors.md create mode 100644 docs/de/docs/tutorial/header-param-models.md create mode 100644 docs/de/docs/tutorial/header-params.md create mode 100644 docs/de/docs/tutorial/index.md create mode 100644 docs/de/docs/tutorial/metadata.md create mode 100644 docs/de/docs/tutorial/middleware.md create mode 100644 docs/de/docs/tutorial/path-operation-configuration.md create mode 100644 docs/de/docs/tutorial/path-params-numeric-validations.md create mode 100644 docs/de/docs/tutorial/path-params.md create mode 100644 docs/de/docs/tutorial/query-param-models.md create mode 100644 docs/de/docs/tutorial/query-params-str-validations.md create mode 100644 docs/de/docs/tutorial/query-params.md create mode 100644 docs/de/docs/tutorial/request-files.md create mode 100644 docs/de/docs/tutorial/request-form-models.md create mode 100644 docs/de/docs/tutorial/request-forms-and-files.md create mode 100644 docs/de/docs/tutorial/request-forms.md create mode 100644 docs/de/docs/tutorial/response-model.md create mode 100644 docs/de/docs/tutorial/response-status-code.md create mode 100644 docs/de/docs/tutorial/schema-extra-example.md create mode 100644 docs/de/docs/tutorial/security/first-steps.md create mode 100644 docs/de/docs/tutorial/security/get-current-user.md create mode 100644 docs/de/docs/tutorial/security/index.md create mode 100644 docs/de/docs/tutorial/security/oauth2-jwt.md create mode 100644 docs/de/docs/tutorial/security/simple-oauth2.md create mode 100644 docs/de/docs/tutorial/sql-databases.md create mode 100644 docs/de/docs/tutorial/static-files.md create mode 100644 docs/de/docs/tutorial/testing.md create mode 100644 docs/de/docs/virtual-environments.md create mode 100644 docs/de/llm-prompt.md create mode 100644 docs/de/mkdocs.yml create mode 100644 docs/em/docs/advanced/additional-responses.md create mode 100644 docs/em/docs/advanced/additional-status-codes.md create mode 100644 docs/em/docs/advanced/advanced-dependencies.md create mode 100644 docs/em/docs/advanced/async-tests.md create mode 100644 docs/em/docs/advanced/behind-a-proxy.md create mode 100644 docs/em/docs/advanced/custom-response.md create mode 100644 docs/em/docs/advanced/dataclasses.md create mode 100644 docs/em/docs/advanced/events.md create mode 100644 docs/em/docs/advanced/generate-clients.md create mode 100644 docs/em/docs/advanced/index.md create mode 100644 docs/em/docs/advanced/middleware.md create mode 100644 docs/em/docs/advanced/openapi-callbacks.md create mode 100644 docs/em/docs/advanced/path-operation-advanced-configuration.md create mode 100644 docs/em/docs/advanced/response-change-status-code.md create mode 100644 docs/em/docs/advanced/response-cookies.md create mode 100644 docs/em/docs/advanced/response-directly.md create mode 100644 docs/em/docs/advanced/response-headers.md create mode 100644 docs/em/docs/advanced/security/http-basic-auth.md create mode 100644 docs/em/docs/advanced/security/index.md create mode 100644 docs/em/docs/advanced/security/oauth2-scopes.md create mode 100644 docs/em/docs/advanced/settings.md create mode 100644 docs/em/docs/advanced/sub-applications.md create mode 100644 docs/em/docs/advanced/templates.md create mode 100644 docs/em/docs/advanced/testing-dependencies.md create mode 100644 docs/em/docs/advanced/testing-events.md create mode 100644 docs/em/docs/advanced/testing-websockets.md create mode 100644 docs/em/docs/advanced/using-request-directly.md create mode 100644 docs/em/docs/advanced/websockets.md create mode 100644 docs/em/docs/advanced/wsgi.md create mode 100644 docs/em/docs/alternatives.md create mode 100644 docs/em/docs/async.md create mode 100644 docs/em/docs/benchmarks.md create mode 100644 docs/em/docs/deployment/concepts.md create mode 100644 docs/em/docs/deployment/docker.md create mode 100644 docs/em/docs/deployment/https.md create mode 100644 docs/em/docs/deployment/index.md create mode 100644 docs/em/docs/deployment/manually.md create mode 100644 docs/em/docs/deployment/server-workers.md create mode 100644 docs/em/docs/deployment/versions.md create mode 100644 docs/em/docs/features.md create mode 100644 docs/em/docs/help-fastapi.md create mode 100644 docs/em/docs/history-design-future.md create mode 100644 docs/em/docs/how-to/conditional-openapi.md create mode 100644 docs/em/docs/how-to/custom-request-and-route.md create mode 100644 docs/em/docs/how-to/extending-openapi.md create mode 100644 docs/em/docs/how-to/graphql.md create mode 100644 docs/em/docs/index.md create mode 100644 docs/em/docs/project-generation.md create mode 100644 docs/em/docs/python-types.md create mode 100644 docs/em/docs/tutorial/background-tasks.md create mode 100644 docs/em/docs/tutorial/bigger-applications.md create mode 100644 docs/em/docs/tutorial/body-fields.md create mode 100644 docs/em/docs/tutorial/body-multiple-params.md create mode 100644 docs/em/docs/tutorial/body-nested-models.md create mode 100644 docs/em/docs/tutorial/body-updates.md create mode 100644 docs/em/docs/tutorial/body.md create mode 100644 docs/em/docs/tutorial/cookie-params.md create mode 100644 docs/em/docs/tutorial/cors.md create mode 100644 docs/em/docs/tutorial/debugging.md create mode 100644 docs/em/docs/tutorial/dependencies/classes-as-dependencies.md create mode 100644 docs/em/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md create mode 100644 docs/em/docs/tutorial/dependencies/dependencies-with-yield.md create mode 100644 docs/em/docs/tutorial/dependencies/global-dependencies.md create mode 100644 docs/em/docs/tutorial/dependencies/index.md create mode 100644 docs/em/docs/tutorial/dependencies/sub-dependencies.md create mode 100644 docs/em/docs/tutorial/encoder.md create mode 100644 docs/em/docs/tutorial/extra-data-types.md create mode 100644 docs/em/docs/tutorial/extra-models.md create mode 100644 docs/em/docs/tutorial/first-steps.md create mode 100644 docs/em/docs/tutorial/handling-errors.md create mode 100644 docs/em/docs/tutorial/header-params.md create mode 100644 docs/em/docs/tutorial/index.md create mode 100644 docs/em/docs/tutorial/metadata.md create mode 100644 docs/em/docs/tutorial/middleware.md create mode 100644 docs/em/docs/tutorial/path-operation-configuration.md create mode 100644 docs/em/docs/tutorial/path-params-numeric-validations.md create mode 100644 docs/em/docs/tutorial/path-params.md create mode 100644 docs/em/docs/tutorial/query-params-str-validations.md create mode 100644 docs/em/docs/tutorial/query-params.md create mode 100644 docs/em/docs/tutorial/request-files.md create mode 100644 docs/em/docs/tutorial/request-forms-and-files.md create mode 100644 docs/em/docs/tutorial/request-forms.md create mode 100644 docs/em/docs/tutorial/response-model.md create mode 100644 docs/em/docs/tutorial/response-status-code.md create mode 100644 docs/em/docs/tutorial/schema-extra-example.md create mode 100644 docs/em/docs/tutorial/security/first-steps.md create mode 100644 docs/em/docs/tutorial/security/get-current-user.md create mode 100644 docs/em/docs/tutorial/security/index.md create mode 100644 docs/em/docs/tutorial/security/oauth2-jwt.md create mode 100644 docs/em/docs/tutorial/security/simple-oauth2.md create mode 100644 docs/em/docs/tutorial/static-files.md create mode 100644 docs/em/docs/tutorial/testing.md create mode 100644 docs/em/mkdocs.yml create mode 100644 docs/en/data/contributors.yml create mode 100644 docs/en/data/external_links.yml create mode 100644 docs/en/data/github_sponsors.yml create mode 100644 docs/en/data/members.yml create mode 100644 docs/en/data/people.yml create mode 100644 docs/en/data/skip_users.yml create mode 100644 docs/en/data/sponsors.yml create mode 100644 docs/en/data/sponsors_badge.yml create mode 100644 docs/en/data/topic_repos.yml create mode 100644 docs/en/data/translation_reviewers.yml create mode 100644 docs/en/data/translators.yml create mode 100644 docs/en/docs/_llm-test.md create mode 100644 docs/en/docs/about/index.md create mode 100644 docs/en/docs/advanced/additional-responses.md create mode 100644 docs/en/docs/advanced/additional-status-codes.md create mode 100644 docs/en/docs/advanced/advanced-dependencies.md create mode 100644 docs/en/docs/advanced/async-tests.md create mode 100644 docs/en/docs/advanced/behind-a-proxy.md create mode 100644 docs/en/docs/advanced/custom-response.md create mode 100644 docs/en/docs/advanced/dataclasses.md create mode 100644 docs/en/docs/advanced/events.md create mode 100644 docs/en/docs/advanced/generate-clients.md create mode 100644 docs/en/docs/advanced/index.md create mode 100644 docs/en/docs/advanced/middleware.md create mode 100644 docs/en/docs/advanced/openapi-callbacks.md create mode 100644 docs/en/docs/advanced/openapi-webhooks.md create mode 100644 docs/en/docs/advanced/path-operation-advanced-configuration.md create mode 100644 docs/en/docs/advanced/response-change-status-code.md create mode 100644 docs/en/docs/advanced/response-cookies.md create mode 100644 docs/en/docs/advanced/response-directly.md create mode 100644 docs/en/docs/advanced/response-headers.md create mode 100644 docs/en/docs/advanced/security/http-basic-auth.md create mode 100644 docs/en/docs/advanced/security/index.md create mode 100644 docs/en/docs/advanced/security/oauth2-scopes.md create mode 100644 docs/en/docs/advanced/settings.md create mode 100644 docs/en/docs/advanced/sub-applications.md create mode 100644 docs/en/docs/advanced/templates.md create mode 100644 docs/en/docs/advanced/testing-dependencies.md create mode 100644 docs/en/docs/advanced/testing-events.md create mode 100644 docs/en/docs/advanced/testing-websockets.md create mode 100644 docs/en/docs/advanced/using-request-directly.md create mode 100644 docs/en/docs/advanced/websockets.md create mode 100644 docs/en/docs/advanced/wsgi.md create mode 100644 docs/en/docs/alternatives.md create mode 100644 docs/en/docs/async.md create mode 100644 docs/en/docs/benchmarks.md create mode 100644 docs/en/docs/contributing.md create mode 100644 docs/en/docs/css/custom.css create mode 100644 docs/en/docs/css/termynal.css create mode 100644 docs/en/docs/deployment/cloud.md create mode 100644 docs/en/docs/deployment/concepts.md create mode 100644 docs/en/docs/deployment/docker.md create mode 100644 docs/en/docs/deployment/fastapicloud.md create mode 100644 docs/en/docs/deployment/https.md create mode 100644 docs/en/docs/deployment/index.md create mode 100644 docs/en/docs/deployment/manually.md create mode 100644 docs/en/docs/deployment/server-workers.md create mode 100644 docs/en/docs/deployment/versions.md create mode 100644 docs/en/docs/environment-variables.md create mode 100644 docs/en/docs/external-links.md create mode 100644 docs/en/docs/fastapi-cli.md create mode 100644 docs/en/docs/fastapi-people.md create mode 100644 docs/en/docs/features.md create mode 100644 docs/en/docs/help-fastapi.md create mode 100644 docs/en/docs/history-design-future.md create mode 100644 docs/en/docs/how-to/authentication-error-status-code.md create mode 100644 docs/en/docs/how-to/conditional-openapi.md create mode 100644 docs/en/docs/how-to/configure-swagger-ui.md create mode 100644 docs/en/docs/how-to/custom-docs-ui-assets.md create mode 100644 docs/en/docs/how-to/custom-request-and-route.md create mode 100644 docs/en/docs/how-to/extending-openapi.md create mode 100644 docs/en/docs/how-to/general.md create mode 100644 docs/en/docs/how-to/graphql.md create mode 100644 docs/en/docs/how-to/index.md create mode 100644 docs/en/docs/how-to/migrate-from-pydantic-v1-to-pydantic-v2.md create mode 100644 docs/en/docs/how-to/separate-openapi-schemas.md create mode 100644 docs/en/docs/how-to/testing-database.md create mode 100644 docs/en/docs/img/async/concurrent-burgers/concurrent-burgers-01.png create mode 100644 docs/en/docs/img/async/concurrent-burgers/concurrent-burgers-02.png create mode 100644 docs/en/docs/img/async/concurrent-burgers/concurrent-burgers-03.png create mode 100644 docs/en/docs/img/async/concurrent-burgers/concurrent-burgers-04.png create mode 100644 docs/en/docs/img/async/concurrent-burgers/concurrent-burgers-05.png create mode 100644 docs/en/docs/img/async/concurrent-burgers/concurrent-burgers-06.png create mode 100644 docs/en/docs/img/async/concurrent-burgers/concurrent-burgers-07.png create mode 100644 docs/en/docs/img/async/parallel-burgers/parallel-burgers-01.png create mode 100644 docs/en/docs/img/async/parallel-burgers/parallel-burgers-02.png create mode 100644 docs/en/docs/img/async/parallel-burgers/parallel-burgers-03.png create mode 100644 docs/en/docs/img/async/parallel-burgers/parallel-burgers-04.png create mode 100644 docs/en/docs/img/async/parallel-burgers/parallel-burgers-05.png create mode 100644 docs/en/docs/img/async/parallel-burgers/parallel-burgers-06.png create mode 100644 docs/en/docs/img/deployment/concepts/image01.png create mode 100644 docs/en/docs/img/deployment/concepts/process-ram.drawio.svg create mode 100644 docs/en/docs/img/deployment/deta/image01.png create mode 100644 docs/en/docs/img/deployment/deta/image02.png create mode 100644 docs/en/docs/img/deployment/deta/image03.png create mode 100644 docs/en/docs/img/deployment/deta/image04.png create mode 100644 docs/en/docs/img/deployment/deta/image05.png create mode 100644 docs/en/docs/img/deployment/deta/image06.png create mode 100644 docs/en/docs/img/deployment/https/https.drawio.svg create mode 100644 docs/en/docs/img/deployment/https/https01.drawio.svg create mode 100644 docs/en/docs/img/deployment/https/https02.drawio.svg create mode 100644 docs/en/docs/img/deployment/https/https03.drawio.svg create mode 100644 docs/en/docs/img/deployment/https/https04.drawio.svg create mode 100644 docs/en/docs/img/deployment/https/https05.drawio.svg create mode 100644 docs/en/docs/img/deployment/https/https06.drawio.svg create mode 100644 docs/en/docs/img/deployment/https/https07.drawio.svg create mode 100644 docs/en/docs/img/deployment/https/https08.drawio.svg create mode 100644 docs/en/docs/img/favicon.png create mode 100644 docs/en/docs/img/github-social-preview.png create mode 100644 docs/en/docs/img/github-social-preview.svg create mode 100644 docs/en/docs/img/icon-white.svg create mode 100644 docs/en/docs/img/index/index-01-swagger-ui-simple.png create mode 100644 docs/en/docs/img/index/index-02-redoc-simple.png create mode 100644 docs/en/docs/img/index/index-03-swagger-02.png create mode 100644 docs/en/docs/img/index/index-04-swagger-03.png create mode 100644 docs/en/docs/img/index/index-05-swagger-04.png create mode 100644 docs/en/docs/img/index/index-06-redoc-02.png create mode 100644 docs/en/docs/img/logo-margin/logo-teal-vector.svg create mode 100644 docs/en/docs/img/logo-margin/logo-teal.png create mode 100644 docs/en/docs/img/logo-margin/logo-teal.svg create mode 100644 docs/en/docs/img/logo-margin/logo-white-bg.png create mode 100644 docs/en/docs/img/logo-teal-vector.svg create mode 100644 docs/en/docs/img/logo-teal.svg create mode 100644 docs/en/docs/img/pycharm-completion.png create mode 100644 docs/en/docs/img/python-types/image01.png create mode 100644 docs/en/docs/img/python-types/image02.png create mode 100644 docs/en/docs/img/python-types/image03.png create mode 100644 docs/en/docs/img/python-types/image04.png create mode 100644 docs/en/docs/img/python-types/image05.png create mode 100644 docs/en/docs/img/python-types/image06.png create mode 100644 docs/en/docs/img/sponsors/blockbee-banner.png create mode 100644 docs/en/docs/img/sponsors/blockbee.png create mode 100644 docs/en/docs/img/sponsors/budget-insight.svg create mode 100755 docs/en/docs/img/sponsors/bump-sh-banner.png create mode 100644 docs/en/docs/img/sponsors/bump-sh-banner.svg create mode 100755 docs/en/docs/img/sponsors/bump-sh.png create mode 100644 docs/en/docs/img/sponsors/bump-sh.svg create mode 100644 docs/en/docs/img/sponsors/calmcode.jpg create mode 100644 docs/en/docs/img/sponsors/classiq-banner.png create mode 100644 docs/en/docs/img/sponsors/classiq.png create mode 100644 docs/en/docs/img/sponsors/codacy.png create mode 100644 docs/en/docs/img/sponsors/coderabbit-banner.png create mode 100644 docs/en/docs/img/sponsors/coderabbit.png create mode 100644 docs/en/docs/img/sponsors/coherence-banner.png create mode 100644 docs/en/docs/img/sponsors/coherence.png create mode 100644 docs/en/docs/img/sponsors/cryptapi-banner.svg create mode 100644 docs/en/docs/img/sponsors/cryptapi.svg create mode 100644 docs/en/docs/img/sponsors/databento.svg create mode 100644 docs/en/docs/img/sponsors/deta-banner.svg create mode 100644 docs/en/docs/img/sponsors/deta.svg create mode 100644 docs/en/docs/img/sponsors/docarray-top-banner.svg create mode 100644 docs/en/docs/img/sponsors/docarray.svg create mode 100644 docs/en/docs/img/sponsors/doist-banner.svg create mode 100644 docs/en/docs/img/sponsors/doist.svg create mode 100644 docs/en/docs/img/sponsors/dribia.png create mode 100644 docs/en/docs/img/sponsors/dropbase-banner.svg create mode 100644 docs/en/docs/img/sponsors/dropbase.svg create mode 100644 docs/en/docs/img/sponsors/exoflare.png create mode 100644 docs/en/docs/img/sponsors/fastapi-course-bundle-banner.png create mode 100644 docs/en/docs/img/sponsors/fastapi-course-bundle-banner.svg create mode 100644 docs/en/docs/img/sponsors/fastapicloud.png create mode 100644 docs/en/docs/img/sponsors/fern-banner.png create mode 100644 docs/en/docs/img/sponsors/fern-banner.svg create mode 100644 docs/en/docs/img/sponsors/fern.png create mode 100644 docs/en/docs/img/sponsors/fern.svg create mode 100644 docs/en/docs/img/sponsors/fine-banner.png create mode 100644 docs/en/docs/img/sponsors/fine.png create mode 100644 docs/en/docs/img/sponsors/flint.png create mode 100644 docs/en/docs/img/sponsors/greptile-banner.png create mode 100644 docs/en/docs/img/sponsors/greptile.png create mode 100644 docs/en/docs/img/sponsors/haystack-fastapi.svg create mode 100644 docs/en/docs/img/sponsors/imgwhale-banner.svg create mode 100644 docs/en/docs/img/sponsors/imgwhale.svg create mode 100644 docs/en/docs/img/sponsors/ines-course.jpg create mode 100644 docs/en/docs/img/sponsors/interviewpal.png create mode 100644 docs/en/docs/img/sponsors/investsuite.svg create mode 100644 docs/en/docs/img/sponsors/jina-ai-banner.png create mode 100644 docs/en/docs/img/sponsors/jina-ai.png create mode 100644 docs/en/docs/img/sponsors/jina-banner.svg create mode 100644 docs/en/docs/img/sponsors/jina-top-banner.svg create mode 100644 docs/en/docs/img/sponsors/jina.svg create mode 100644 docs/en/docs/img/sponsors/jina2.svg create mode 100644 docs/en/docs/img/sponsors/kong-banner.png create mode 100644 docs/en/docs/img/sponsors/kong.png create mode 100644 docs/en/docs/img/sponsors/lambdatest.png create mode 100644 docs/en/docs/img/sponsors/liblab-banner.png create mode 100644 docs/en/docs/img/sponsors/liblab.png create mode 100644 docs/en/docs/img/sponsors/mobbai-banner.png create mode 100644 docs/en/docs/img/sponsors/mobbai.png create mode 100755 docs/en/docs/img/sponsors/mongodb-banner.png create mode 100755 docs/en/docs/img/sponsors/mongodb.png create mode 100644 docs/en/docs/img/sponsors/permit.png create mode 100644 docs/en/docs/img/sponsors/platform-sh-banner.png create mode 100644 docs/en/docs/img/sponsors/platform-sh.png create mode 100755 docs/en/docs/img/sponsors/porter-banner.png create mode 100755 docs/en/docs/img/sponsors/porter.png create mode 100644 docs/en/docs/img/sponsors/powens.png create mode 100644 docs/en/docs/img/sponsors/propelauth-banner.png create mode 100644 docs/en/docs/img/sponsors/propelauth.png create mode 100644 docs/en/docs/img/sponsors/railway-banner.png create mode 100644 docs/en/docs/img/sponsors/railway.png create mode 100644 docs/en/docs/img/sponsors/reflex-banner.png create mode 100644 docs/en/docs/img/sponsors/reflex.png create mode 100644 docs/en/docs/img/sponsors/render-banner.svg create mode 100644 docs/en/docs/img/sponsors/render.svg create mode 100644 docs/en/docs/img/sponsors/requestly.png create mode 100644 docs/en/docs/img/sponsors/scalar-banner.svg create mode 100644 docs/en/docs/img/sponsors/scalar.svg create mode 100644 docs/en/docs/img/sponsors/serpapi-banner.png create mode 100644 docs/en/docs/img/sponsors/serpapi.png create mode 100644 docs/en/docs/img/sponsors/speakeasy.png create mode 100644 docs/en/docs/img/sponsors/stainless.png create mode 100644 docs/en/docs/img/sponsors/striveworks-banner.png create mode 100644 docs/en/docs/img/sponsors/striveworks.png create mode 100644 docs/en/docs/img/sponsors/striveworks2.png create mode 100644 docs/en/docs/img/sponsors/subtotal-banner.svg create mode 100644 docs/en/docs/img/sponsors/subtotal.svg create mode 100644 docs/en/docs/img/sponsors/svix.svg create mode 100644 docs/en/docs/img/sponsors/talkpython-v2.jpg create mode 100644 docs/en/docs/img/sponsors/talkpython.png create mode 100644 docs/en/docs/img/sponsors/testdriven.svg create mode 100644 docs/en/docs/img/sponsors/vimso.png create mode 100644 docs/en/docs/img/sponsors/wetransfer.svg create mode 100644 docs/en/docs/img/sponsors/zuplo-banner.png create mode 100644 docs/en/docs/img/sponsors/zuplo.png create mode 100644 docs/en/docs/img/tutorial/additional-responses/image01.png create mode 100644 docs/en/docs/img/tutorial/async-sql-databases/image01.png create mode 100644 docs/en/docs/img/tutorial/behind-a-proxy/image01.png create mode 100644 docs/en/docs/img/tutorial/behind-a-proxy/image02.png create mode 100644 docs/en/docs/img/tutorial/behind-a-proxy/image03.png create mode 100644 docs/en/docs/img/tutorial/bigger-applications/image01.png create mode 100644 docs/en/docs/img/tutorial/bigger-applications/package.drawio.svg create mode 100644 docs/en/docs/img/tutorial/body-fields/image01.png create mode 100644 docs/en/docs/img/tutorial/body-fields/image02.png create mode 100644 docs/en/docs/img/tutorial/body-nested-models/image01.png create mode 100644 docs/en/docs/img/tutorial/body/image01.png create mode 100644 docs/en/docs/img/tutorial/body/image02.png create mode 100644 docs/en/docs/img/tutorial/body/image03.png create mode 100644 docs/en/docs/img/tutorial/body/image04.png create mode 100644 docs/en/docs/img/tutorial/body/image05.png create mode 100644 docs/en/docs/img/tutorial/cookie-param-models/image01.png create mode 100644 docs/en/docs/img/tutorial/custom-response/image01.png create mode 100644 docs/en/docs/img/tutorial/dataclasses/image01.png create mode 100644 docs/en/docs/img/tutorial/debugging/image01.png create mode 100644 docs/en/docs/img/tutorial/debugging/image02.png create mode 100644 docs/en/docs/img/tutorial/dependencies/image01.png create mode 100644 docs/en/docs/img/tutorial/dependencies/image02.png create mode 100644 docs/en/docs/img/tutorial/extending-openapi/image01.png create mode 100644 docs/en/docs/img/tutorial/extending-openapi/image02.png create mode 100644 docs/en/docs/img/tutorial/extending-openapi/image03.png create mode 100644 docs/en/docs/img/tutorial/extending-openapi/image04.png create mode 100644 docs/en/docs/img/tutorial/generate-clients/image01.png create mode 100644 docs/en/docs/img/tutorial/generate-clients/image02.png create mode 100644 docs/en/docs/img/tutorial/generate-clients/image03.png create mode 100644 docs/en/docs/img/tutorial/generate-clients/image04.png create mode 100644 docs/en/docs/img/tutorial/generate-clients/image05.png create mode 100644 docs/en/docs/img/tutorial/generate-clients/image06.png create mode 100644 docs/en/docs/img/tutorial/generate-clients/image07.png create mode 100644 docs/en/docs/img/tutorial/generate-clients/image08.png create mode 100644 docs/en/docs/img/tutorial/graphql/image01.png create mode 100644 docs/en/docs/img/tutorial/header-param-models/image01.png create mode 100644 docs/en/docs/img/tutorial/metadata/image01.png create mode 100644 docs/en/docs/img/tutorial/metadata/image02.png create mode 100644 docs/en/docs/img/tutorial/openapi-callbacks/image01.png create mode 100644 docs/en/docs/img/tutorial/openapi-webhooks/image01.png create mode 100644 docs/en/docs/img/tutorial/path-operation-advanced-configuration/image01.png create mode 100644 docs/en/docs/img/tutorial/path-operation-configuration/image01.png create mode 100644 docs/en/docs/img/tutorial/path-operation-configuration/image02.png create mode 100644 docs/en/docs/img/tutorial/path-operation-configuration/image03.png create mode 100644 docs/en/docs/img/tutorial/path-operation-configuration/image04.png create mode 100644 docs/en/docs/img/tutorial/path-operation-configuration/image05.png create mode 100644 docs/en/docs/img/tutorial/path-params/image01.png create mode 100644 docs/en/docs/img/tutorial/path-params/image02.png create mode 100644 docs/en/docs/img/tutorial/path-params/image03.png create mode 100644 docs/en/docs/img/tutorial/query-param-models/image01.png create mode 100644 docs/en/docs/img/tutorial/query-params-str-validations/image01.png create mode 100644 docs/en/docs/img/tutorial/query-params-str-validations/image02.png create mode 100644 docs/en/docs/img/tutorial/request-form-models/image01.png create mode 100644 docs/en/docs/img/tutorial/response-model/image01.png create mode 100644 docs/en/docs/img/tutorial/response-model/image02.png create mode 100644 docs/en/docs/img/tutorial/response-status-code/image01.png create mode 100644 docs/en/docs/img/tutorial/response-status-code/image02.png create mode 100644 docs/en/docs/img/tutorial/security/image01.png create mode 100644 docs/en/docs/img/tutorial/security/image02.png create mode 100644 docs/en/docs/img/tutorial/security/image03.png create mode 100644 docs/en/docs/img/tutorial/security/image04.png create mode 100644 docs/en/docs/img/tutorial/security/image05.png create mode 100644 docs/en/docs/img/tutorial/security/image06.png create mode 100644 docs/en/docs/img/tutorial/security/image07.png create mode 100644 docs/en/docs/img/tutorial/security/image08.png create mode 100644 docs/en/docs/img/tutorial/security/image09.png create mode 100644 docs/en/docs/img/tutorial/security/image10.png create mode 100644 docs/en/docs/img/tutorial/security/image11.png create mode 100644 docs/en/docs/img/tutorial/security/image12.png create mode 100644 docs/en/docs/img/tutorial/separate-openapi-schemas/image01.png create mode 100644 docs/en/docs/img/tutorial/separate-openapi-schemas/image02.png create mode 100644 docs/en/docs/img/tutorial/separate-openapi-schemas/image03.png create mode 100644 docs/en/docs/img/tutorial/separate-openapi-schemas/image04.png create mode 100644 docs/en/docs/img/tutorial/separate-openapi-schemas/image05.png create mode 100644 docs/en/docs/img/tutorial/sql-databases/image01.png create mode 100644 docs/en/docs/img/tutorial/sql-databases/image02.png create mode 100644 docs/en/docs/img/tutorial/sub-applications/image01.png create mode 100644 docs/en/docs/img/tutorial/sub-applications/image02.png create mode 100644 docs/en/docs/img/tutorial/websockets/image01.png create mode 100644 docs/en/docs/img/tutorial/websockets/image02.png create mode 100644 docs/en/docs/img/tutorial/websockets/image03.png create mode 100644 docs/en/docs/img/tutorial/websockets/image04.png create mode 100644 docs/en/docs/img/tutorial/websockets/image05.png create mode 100644 docs/en/docs/img/vscode-completion.png create mode 100644 docs/en/docs/index.md create mode 100644 docs/en/docs/js/custom.js create mode 100644 docs/en/docs/js/termynal.js create mode 100644 docs/en/docs/learn/index.md create mode 100644 docs/en/docs/management-tasks.md create mode 100644 docs/en/docs/management.md create mode 100644 docs/en/docs/newsletter.md create mode 100644 docs/en/docs/project-generation.md create mode 100644 docs/en/docs/python-types.md create mode 100644 docs/en/docs/reference/apirouter.md create mode 100644 docs/en/docs/reference/background.md create mode 100644 docs/en/docs/reference/dependencies.md create mode 100644 docs/en/docs/reference/encoders.md create mode 100644 docs/en/docs/reference/exceptions.md create mode 100644 docs/en/docs/reference/fastapi.md create mode 100644 docs/en/docs/reference/httpconnection.md create mode 100644 docs/en/docs/reference/index.md create mode 100644 docs/en/docs/reference/middleware.md create mode 100644 docs/en/docs/reference/openapi/docs.md create mode 100644 docs/en/docs/reference/openapi/index.md create mode 100644 docs/en/docs/reference/openapi/models.md create mode 100644 docs/en/docs/reference/parameters.md create mode 100644 docs/en/docs/reference/request.md create mode 100644 docs/en/docs/reference/response.md create mode 100644 docs/en/docs/reference/responses.md create mode 100644 docs/en/docs/reference/security/index.md create mode 100644 docs/en/docs/reference/staticfiles.md create mode 100644 docs/en/docs/reference/status.md create mode 100644 docs/en/docs/reference/templating.md create mode 100644 docs/en/docs/reference/testclient.md create mode 100644 docs/en/docs/reference/uploadfile.md create mode 100644 docs/en/docs/reference/websockets.md create mode 100644 docs/en/docs/release-notes.md create mode 100644 docs/en/docs/resources/index.md create mode 100644 docs/en/docs/tutorial/background-tasks.md create mode 100644 docs/en/docs/tutorial/bigger-applications.md create mode 100644 docs/en/docs/tutorial/body-fields.md create mode 100644 docs/en/docs/tutorial/body-multiple-params.md create mode 100644 docs/en/docs/tutorial/body-nested-models.md create mode 100644 docs/en/docs/tutorial/body-updates.md create mode 100644 docs/en/docs/tutorial/body.md create mode 100644 docs/en/docs/tutorial/cookie-param-models.md create mode 100644 docs/en/docs/tutorial/cookie-params.md create mode 100644 docs/en/docs/tutorial/cors.md create mode 100644 docs/en/docs/tutorial/debugging.md create mode 100644 docs/en/docs/tutorial/dependencies/classes-as-dependencies.md create mode 100644 docs/en/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md create mode 100644 docs/en/docs/tutorial/dependencies/dependencies-with-yield.md create mode 100644 docs/en/docs/tutorial/dependencies/global-dependencies.md create mode 100644 docs/en/docs/tutorial/dependencies/index.md create mode 100644 docs/en/docs/tutorial/dependencies/sub-dependencies.md create mode 100644 docs/en/docs/tutorial/encoder.md create mode 100644 docs/en/docs/tutorial/extra-data-types.md create mode 100644 docs/en/docs/tutorial/extra-models.md create mode 100644 docs/en/docs/tutorial/first-steps.md create mode 100644 docs/en/docs/tutorial/handling-errors.md create mode 100644 docs/en/docs/tutorial/header-param-models.md create mode 100644 docs/en/docs/tutorial/header-params.md create mode 100644 docs/en/docs/tutorial/index.md create mode 100644 docs/en/docs/tutorial/metadata.md create mode 100644 docs/en/docs/tutorial/middleware.md create mode 100644 docs/en/docs/tutorial/path-operation-configuration.md create mode 100644 docs/en/docs/tutorial/path-params-numeric-validations.md create mode 100644 docs/en/docs/tutorial/path-params.md create mode 100644 docs/en/docs/tutorial/query-param-models.md create mode 100644 docs/en/docs/tutorial/query-params-str-validations.md create mode 100644 docs/en/docs/tutorial/query-params.md create mode 100644 docs/en/docs/tutorial/request-files.md create mode 100644 docs/en/docs/tutorial/request-form-models.md create mode 100644 docs/en/docs/tutorial/request-forms-and-files.md create mode 100644 docs/en/docs/tutorial/request-forms.md create mode 100644 docs/en/docs/tutorial/response-model.md create mode 100644 docs/en/docs/tutorial/response-status-code.md create mode 100644 docs/en/docs/tutorial/schema-extra-example.md create mode 100644 docs/en/docs/tutorial/security/first-steps.md create mode 100644 docs/en/docs/tutorial/security/get-current-user.md create mode 100644 docs/en/docs/tutorial/security/index.md create mode 100644 docs/en/docs/tutorial/security/oauth2-jwt.md create mode 100644 docs/en/docs/tutorial/security/simple-oauth2.md create mode 100644 docs/en/docs/tutorial/sql-databases.md create mode 100644 docs/en/docs/tutorial/static-files.md create mode 100644 docs/en/docs/tutorial/testing.md create mode 100644 docs/en/docs/virtual-environments.md create mode 100644 docs/en/mkdocs.env.yml create mode 100644 docs/en/mkdocs.yml create mode 100644 docs/en/overrides/main.html create mode 100644 docs/en/overrides/partials/copyright.html create mode 100644 docs/es/docs/about/index.md create mode 100644 docs/es/docs/advanced/additional-responses.md create mode 100644 docs/es/docs/advanced/additional-status-codes.md create mode 100644 docs/es/docs/advanced/advanced-dependencies.md create mode 100644 docs/es/docs/advanced/async-tests.md create mode 100644 docs/es/docs/advanced/behind-a-proxy.md create mode 100644 docs/es/docs/advanced/custom-response.md create mode 100644 docs/es/docs/advanced/dataclasses.md create mode 100644 docs/es/docs/advanced/events.md create mode 100644 docs/es/docs/advanced/generate-clients.md create mode 100644 docs/es/docs/advanced/index.md create mode 100644 docs/es/docs/advanced/middleware.md create mode 100644 docs/es/docs/advanced/openapi-callbacks.md create mode 100644 docs/es/docs/advanced/openapi-webhooks.md create mode 100644 docs/es/docs/advanced/path-operation-advanced-configuration.md create mode 100644 docs/es/docs/advanced/response-change-status-code.md create mode 100644 docs/es/docs/advanced/response-cookies.md create mode 100644 docs/es/docs/advanced/response-directly.md create mode 100644 docs/es/docs/advanced/response-headers.md create mode 100644 docs/es/docs/advanced/security/http-basic-auth.md create mode 100644 docs/es/docs/advanced/security/index.md create mode 100644 docs/es/docs/advanced/security/oauth2-scopes.md create mode 100644 docs/es/docs/advanced/settings.md create mode 100644 docs/es/docs/advanced/sub-applications.md create mode 100644 docs/es/docs/advanced/templates.md create mode 100644 docs/es/docs/advanced/testing-dependencies.md create mode 100644 docs/es/docs/advanced/testing-events.md create mode 100644 docs/es/docs/advanced/testing-websockets.md create mode 100644 docs/es/docs/advanced/using-request-directly.md create mode 100644 docs/es/docs/advanced/websockets.md create mode 100644 docs/es/docs/advanced/wsgi.md create mode 100644 docs/es/docs/alternatives.md create mode 100644 docs/es/docs/async.md create mode 100644 docs/es/docs/benchmarks.md create mode 100644 docs/es/docs/deployment/cloud.md create mode 100644 docs/es/docs/deployment/concepts.md create mode 100644 docs/es/docs/deployment/docker.md create mode 100644 docs/es/docs/deployment/https.md create mode 100644 docs/es/docs/deployment/index.md create mode 100644 docs/es/docs/deployment/manually.md create mode 100644 docs/es/docs/deployment/server-workers.md create mode 100644 docs/es/docs/deployment/versions.md create mode 100644 docs/es/docs/environment-variables.md create mode 100644 docs/es/docs/fastapi-cli.md create mode 100644 docs/es/docs/features.md create mode 100644 docs/es/docs/help-fastapi.md create mode 100644 docs/es/docs/history-design-future.md create mode 100644 docs/es/docs/how-to/conditional-openapi.md create mode 100644 docs/es/docs/how-to/configure-swagger-ui.md create mode 100644 docs/es/docs/how-to/custom-docs-ui-assets.md create mode 100644 docs/es/docs/how-to/custom-request-and-route.md create mode 100644 docs/es/docs/how-to/extending-openapi.md create mode 100644 docs/es/docs/how-to/general.md create mode 100644 docs/es/docs/how-to/graphql.md create mode 100644 docs/es/docs/how-to/index.md create mode 100644 docs/es/docs/how-to/separate-openapi-schemas.md create mode 100644 docs/es/docs/how-to/testing-database.md create mode 100644 docs/es/docs/index.md create mode 100644 docs/es/docs/learn/index.md create mode 100644 docs/es/docs/project-generation.md create mode 100644 docs/es/docs/python-types.md create mode 100644 docs/es/docs/resources/index.md create mode 100644 docs/es/docs/tutorial/background-tasks.md create mode 100644 docs/es/docs/tutorial/bigger-applications.md create mode 100644 docs/es/docs/tutorial/body-fields.md create mode 100644 docs/es/docs/tutorial/body-multiple-params.md create mode 100644 docs/es/docs/tutorial/body-nested-models.md create mode 100644 docs/es/docs/tutorial/body-updates.md create mode 100644 docs/es/docs/tutorial/body.md create mode 100644 docs/es/docs/tutorial/cookie-param-models.md create mode 100644 docs/es/docs/tutorial/cookie-params.md create mode 100644 docs/es/docs/tutorial/cors.md create mode 100644 docs/es/docs/tutorial/debugging.md create mode 100644 docs/es/docs/tutorial/dependencies/classes-as-dependencies.md create mode 100644 docs/es/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md create mode 100644 docs/es/docs/tutorial/dependencies/dependencies-with-yield.md create mode 100644 docs/es/docs/tutorial/dependencies/global-dependencies.md create mode 100644 docs/es/docs/tutorial/dependencies/index.md create mode 100644 docs/es/docs/tutorial/dependencies/sub-dependencies.md create mode 100644 docs/es/docs/tutorial/encoder.md create mode 100644 docs/es/docs/tutorial/extra-data-types.md create mode 100644 docs/es/docs/tutorial/extra-models.md create mode 100644 docs/es/docs/tutorial/first-steps.md create mode 100644 docs/es/docs/tutorial/handling-errors.md create mode 100644 docs/es/docs/tutorial/header-param-models.md create mode 100644 docs/es/docs/tutorial/header-params.md create mode 100644 docs/es/docs/tutorial/index.md create mode 100644 docs/es/docs/tutorial/metadata.md create mode 100644 docs/es/docs/tutorial/middleware.md create mode 100644 docs/es/docs/tutorial/path-operation-configuration.md create mode 100644 docs/es/docs/tutorial/path-params-numeric-validations.md create mode 100644 docs/es/docs/tutorial/path-params.md create mode 100644 docs/es/docs/tutorial/query-param-models.md create mode 100644 docs/es/docs/tutorial/query-params-str-validations.md create mode 100644 docs/es/docs/tutorial/query-params.md create mode 100644 docs/es/docs/tutorial/request-files.md create mode 100644 docs/es/docs/tutorial/request-form-models.md create mode 100644 docs/es/docs/tutorial/request-forms-and-files.md create mode 100644 docs/es/docs/tutorial/request-forms.md create mode 100644 docs/es/docs/tutorial/response-model.md create mode 100644 docs/es/docs/tutorial/response-status-code.md create mode 100644 docs/es/docs/tutorial/schema-extra-example.md create mode 100644 docs/es/docs/tutorial/security/first-steps.md create mode 100644 docs/es/docs/tutorial/security/get-current-user.md create mode 100644 docs/es/docs/tutorial/security/index.md create mode 100644 docs/es/docs/tutorial/security/oauth2-jwt.md create mode 100644 docs/es/docs/tutorial/security/simple-oauth2.md create mode 100644 docs/es/docs/tutorial/sql-databases.md create mode 100644 docs/es/docs/tutorial/static-files.md create mode 100644 docs/es/docs/tutorial/testing.md create mode 100644 docs/es/docs/virtual-environments.md create mode 100644 docs/es/llm-prompt.md create mode 100644 docs/es/mkdocs.yml create mode 100644 docs/fa/docs/advanced/sub-applications.md create mode 100644 docs/fa/docs/async.md create mode 100644 docs/fa/docs/environment-variables.md create mode 100644 docs/fa/docs/features.md create mode 100644 docs/fa/docs/index.md create mode 100644 docs/fa/docs/learn/index.md create mode 100644 docs/fa/docs/python-types.md create mode 100644 docs/fa/docs/tutorial/middleware.md create mode 100644 docs/fa/docs/tutorial/security/index.md create mode 100644 docs/fa/mkdocs.yml create mode 100644 docs/fr/docs/advanced/additional-responses.md create mode 100644 docs/fr/docs/advanced/additional-status-codes.md create mode 100644 docs/fr/docs/advanced/index.md create mode 100644 docs/fr/docs/advanced/path-operation-advanced-configuration.md create mode 100644 docs/fr/docs/advanced/response-directly.md create mode 100644 docs/fr/docs/alternatives.md create mode 100644 docs/fr/docs/async.md create mode 100644 docs/fr/docs/benchmarks.md create mode 100644 docs/fr/docs/deployment/docker.md create mode 100644 docs/fr/docs/deployment/https.md create mode 100644 docs/fr/docs/deployment/index.md create mode 100644 docs/fr/docs/deployment/manually.md create mode 100644 docs/fr/docs/deployment/versions.md create mode 100644 docs/fr/docs/features.md create mode 100644 docs/fr/docs/help-fastapi.md create mode 100644 docs/fr/docs/history-design-future.md create mode 100644 docs/fr/docs/index.md create mode 100644 docs/fr/docs/learn/index.md create mode 100644 docs/fr/docs/project-generation.md create mode 100644 docs/fr/docs/python-types.md create mode 100644 docs/fr/docs/tutorial/background-tasks.md create mode 100644 docs/fr/docs/tutorial/body-multiple-params.md create mode 100644 docs/fr/docs/tutorial/body.md create mode 100644 docs/fr/docs/tutorial/debugging.md create mode 100644 docs/fr/docs/tutorial/first-steps.md create mode 100644 docs/fr/docs/tutorial/index.md create mode 100644 docs/fr/docs/tutorial/path-params-numeric-validations.md create mode 100644 docs/fr/docs/tutorial/path-params.md create mode 100644 docs/fr/docs/tutorial/query-params-str-validations.md create mode 100644 docs/fr/docs/tutorial/query-params.md create mode 100644 docs/fr/mkdocs.yml create mode 100644 docs/ja/docs/advanced/additional-status-codes.md create mode 100644 docs/ja/docs/advanced/custom-response.md create mode 100644 docs/ja/docs/advanced/index.md create mode 100644 docs/ja/docs/advanced/path-operation-advanced-configuration.md create mode 100644 docs/ja/docs/advanced/response-directly.md create mode 100644 docs/ja/docs/advanced/websockets.md create mode 100644 docs/ja/docs/alternatives.md create mode 100644 docs/ja/docs/async.md create mode 100644 docs/ja/docs/benchmarks.md create mode 100644 docs/ja/docs/deployment/concepts.md create mode 100644 docs/ja/docs/deployment/docker.md create mode 100644 docs/ja/docs/deployment/https.md create mode 100644 docs/ja/docs/deployment/index.md create mode 100644 docs/ja/docs/deployment/manually.md create mode 100644 docs/ja/docs/deployment/server-workers.md create mode 100644 docs/ja/docs/deployment/versions.md create mode 100644 docs/ja/docs/environment-variables.md create mode 100644 docs/ja/docs/features.md create mode 100644 docs/ja/docs/help-fastapi.md create mode 100644 docs/ja/docs/history-design-future.md create mode 100644 docs/ja/docs/how-to/conditional-openapi.md create mode 100644 docs/ja/docs/index.md create mode 100644 docs/ja/docs/learn/index.md create mode 100644 docs/ja/docs/project-generation.md create mode 100644 docs/ja/docs/python-types.md create mode 100644 docs/ja/docs/tutorial/background-tasks.md create mode 100644 docs/ja/docs/tutorial/body-fields.md create mode 100644 docs/ja/docs/tutorial/body-multiple-params.md create mode 100644 docs/ja/docs/tutorial/body-nested-models.md create mode 100644 docs/ja/docs/tutorial/body-updates.md create mode 100644 docs/ja/docs/tutorial/body.md create mode 100644 docs/ja/docs/tutorial/cookie-param-models.md create mode 100644 docs/ja/docs/tutorial/cookie-params.md create mode 100644 docs/ja/docs/tutorial/cors.md create mode 100644 docs/ja/docs/tutorial/debugging.md create mode 100644 docs/ja/docs/tutorial/dependencies/classes-as-dependencies.md create mode 100644 docs/ja/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md create mode 100644 docs/ja/docs/tutorial/dependencies/dependencies-with-yield.md create mode 100644 docs/ja/docs/tutorial/dependencies/index.md create mode 100644 docs/ja/docs/tutorial/dependencies/sub-dependencies.md create mode 100644 docs/ja/docs/tutorial/encoder.md create mode 100644 docs/ja/docs/tutorial/extra-data-types.md create mode 100644 docs/ja/docs/tutorial/extra-models.md create mode 100644 docs/ja/docs/tutorial/first-steps.md create mode 100644 docs/ja/docs/tutorial/handling-errors.md create mode 100644 docs/ja/docs/tutorial/header-params.md create mode 100644 docs/ja/docs/tutorial/index.md create mode 100644 docs/ja/docs/tutorial/metadata.md create mode 100644 docs/ja/docs/tutorial/middleware.md create mode 100644 docs/ja/docs/tutorial/path-operation-configuration.md create mode 100644 docs/ja/docs/tutorial/path-params-numeric-validations.md create mode 100644 docs/ja/docs/tutorial/path-params.md create mode 100644 docs/ja/docs/tutorial/query-param-models.md create mode 100644 docs/ja/docs/tutorial/query-params-str-validations.md create mode 100644 docs/ja/docs/tutorial/query-params.md create mode 100644 docs/ja/docs/tutorial/request-forms-and-files.md create mode 100644 docs/ja/docs/tutorial/request-forms.md create mode 100644 docs/ja/docs/tutorial/response-model.md create mode 100644 docs/ja/docs/tutorial/response-status-code.md create mode 100644 docs/ja/docs/tutorial/schema-extra-example.md create mode 100644 docs/ja/docs/tutorial/security/first-steps.md create mode 100644 docs/ja/docs/tutorial/security/get-current-user.md create mode 100644 docs/ja/docs/tutorial/security/index.md create mode 100644 docs/ja/docs/tutorial/security/oauth2-jwt.md create mode 100644 docs/ja/docs/tutorial/static-files.md create mode 100644 docs/ja/docs/tutorial/testing.md create mode 100644 docs/ja/docs/virtual-environments.md create mode 100644 docs/ja/mkdocs.yml create mode 100644 docs/ko/docs/about/index.md create mode 100644 docs/ko/docs/advanced/additional-status-codes.md create mode 100644 docs/ko/docs/advanced/advanced-dependencies.md create mode 100644 docs/ko/docs/advanced/async-tests.md create mode 100644 docs/ko/docs/advanced/custom-response.md create mode 100644 docs/ko/docs/advanced/events.md create mode 100644 docs/ko/docs/advanced/index.md create mode 100644 docs/ko/docs/advanced/middlewares.md create mode 100644 docs/ko/docs/advanced/response-change-status-code.md create mode 100644 docs/ko/docs/advanced/response-cookies.md create mode 100644 docs/ko/docs/advanced/response-directly.md create mode 100644 docs/ko/docs/advanced/response-headers.md create mode 100644 docs/ko/docs/advanced/sub-applications.md create mode 100644 docs/ko/docs/advanced/templates.md create mode 100644 docs/ko/docs/advanced/testing-dependencies.md create mode 100644 docs/ko/docs/advanced/testing-events.md create mode 100644 docs/ko/docs/advanced/testing-websockets.md create mode 100644 docs/ko/docs/advanced/using-request-directly.md create mode 100644 docs/ko/docs/advanced/websockets.md create mode 100644 docs/ko/docs/advanced/wsgi.md create mode 100644 docs/ko/docs/async.md create mode 100644 docs/ko/docs/benchmarks.md create mode 100644 docs/ko/docs/deployment/cloud.md create mode 100644 docs/ko/docs/deployment/docker.md create mode 100644 docs/ko/docs/deployment/index.md create mode 100644 docs/ko/docs/deployment/server-workers.md create mode 100644 docs/ko/docs/deployment/versions.md create mode 100644 docs/ko/docs/environment-variables.md create mode 100644 docs/ko/docs/fastapi-cli.md create mode 100644 docs/ko/docs/features.md create mode 100644 docs/ko/docs/help-fastapi.md create mode 100644 docs/ko/docs/history-design-future.md create mode 100644 docs/ko/docs/how-to/conditional-openapi.md create mode 100644 docs/ko/docs/how-to/configure-swagger-ui.md create mode 100644 docs/ko/docs/index.md create mode 100644 docs/ko/docs/learn/index.md create mode 100644 docs/ko/docs/openapi-webhooks.md create mode 100644 docs/ko/docs/project-generation.md create mode 100644 docs/ko/docs/python-types.md create mode 100644 docs/ko/docs/resources/index.md create mode 100644 docs/ko/docs/security/index.md create mode 100644 docs/ko/docs/tutorial/background-tasks.md create mode 100644 docs/ko/docs/tutorial/body-fields.md create mode 100644 docs/ko/docs/tutorial/body-multiple-params.md create mode 100644 docs/ko/docs/tutorial/body-nested-models.md create mode 100644 docs/ko/docs/tutorial/body.md create mode 100644 docs/ko/docs/tutorial/cookie-param-models.md create mode 100644 docs/ko/docs/tutorial/cookie-params.md create mode 100644 docs/ko/docs/tutorial/cors.md create mode 100644 docs/ko/docs/tutorial/debugging.md create mode 100644 docs/ko/docs/tutorial/dependencies/classes-as-dependencies.md create mode 100644 docs/ko/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md create mode 100644 docs/ko/docs/tutorial/dependencies/dependencies-with-yield.md create mode 100644 docs/ko/docs/tutorial/dependencies/global-dependencies.md create mode 100644 docs/ko/docs/tutorial/dependencies/index.md create mode 100644 docs/ko/docs/tutorial/encoder.md create mode 100644 docs/ko/docs/tutorial/extra-data-types.md create mode 100644 docs/ko/docs/tutorial/extra-models.md create mode 100644 docs/ko/docs/tutorial/first-steps.md create mode 100644 docs/ko/docs/tutorial/header-param-models.md create mode 100644 docs/ko/docs/tutorial/header-params.md create mode 100644 docs/ko/docs/tutorial/index.md create mode 100644 docs/ko/docs/tutorial/metadata.md create mode 100644 docs/ko/docs/tutorial/middleware.md create mode 100644 docs/ko/docs/tutorial/path-operation-configuration.md create mode 100644 docs/ko/docs/tutorial/path-params-numeric-validations.md create mode 100644 docs/ko/docs/tutorial/path-params.md create mode 100644 docs/ko/docs/tutorial/query-param-models.md create mode 100644 docs/ko/docs/tutorial/query-params-str-validations.md create mode 100644 docs/ko/docs/tutorial/query-params.md create mode 100644 docs/ko/docs/tutorial/request-files.md create mode 100644 docs/ko/docs/tutorial/request-form-models.md create mode 100644 docs/ko/docs/tutorial/request-forms-and-files.md create mode 100644 docs/ko/docs/tutorial/request-forms.md create mode 100644 docs/ko/docs/tutorial/response-model.md create mode 100644 docs/ko/docs/tutorial/response-status-code.md create mode 100644 docs/ko/docs/tutorial/schema-extra-example.md create mode 100644 docs/ko/docs/tutorial/security/get-current-user.md create mode 100644 docs/ko/docs/tutorial/security/oauth2-jwt.md create mode 100644 docs/ko/docs/tutorial/security/simple-oauth2.md create mode 100644 docs/ko/docs/tutorial/sql-databases.md create mode 100644 docs/ko/docs/tutorial/static-files.md create mode 100644 docs/ko/docs/tutorial/testing.md create mode 100644 docs/ko/docs/virtual-environments.md create mode 100644 docs/ko/mkdocs.yml create mode 100644 docs/language_names.yml create mode 100644 docs/missing-translation.md create mode 100644 docs/pt/docs/_llm-test.md create mode 100644 docs/pt/docs/about/index.md create mode 100644 docs/pt/docs/advanced/additional-responses.md create mode 100644 docs/pt/docs/advanced/additional-status-codes.md create mode 100644 docs/pt/docs/advanced/advanced-dependencies.md create mode 100644 docs/pt/docs/advanced/async-tests.md create mode 100644 docs/pt/docs/advanced/behind-a-proxy.md create mode 100644 docs/pt/docs/advanced/custom-response.md create mode 100644 docs/pt/docs/advanced/dataclasses.md create mode 100644 docs/pt/docs/advanced/events.md create mode 100644 docs/pt/docs/advanced/generate-clients.md create mode 100644 docs/pt/docs/advanced/index.md create mode 100644 docs/pt/docs/advanced/middleware.md create mode 100644 docs/pt/docs/advanced/openapi-callbacks.md create mode 100644 docs/pt/docs/advanced/openapi-webhooks.md create mode 100644 docs/pt/docs/advanced/path-operation-advanced-configuration.md create mode 100644 docs/pt/docs/advanced/response-change-status-code.md create mode 100644 docs/pt/docs/advanced/response-cookies.md create mode 100644 docs/pt/docs/advanced/response-directly.md create mode 100644 docs/pt/docs/advanced/response-headers.md create mode 100644 docs/pt/docs/advanced/security/http-basic-auth.md create mode 100644 docs/pt/docs/advanced/security/index.md create mode 100644 docs/pt/docs/advanced/security/oauth2-scopes.md create mode 100644 docs/pt/docs/advanced/settings.md create mode 100644 docs/pt/docs/advanced/sub-applications.md create mode 100644 docs/pt/docs/advanced/templates.md create mode 100644 docs/pt/docs/advanced/testing-dependencies.md create mode 100644 docs/pt/docs/advanced/testing-events.md create mode 100644 docs/pt/docs/advanced/testing-websockets.md create mode 100644 docs/pt/docs/advanced/using-request-directly.md create mode 100644 docs/pt/docs/advanced/websockets.md create mode 100644 docs/pt/docs/advanced/wsgi.md create mode 100644 docs/pt/docs/alternatives.md create mode 100644 docs/pt/docs/async.md create mode 100644 docs/pt/docs/benchmarks.md create mode 100644 docs/pt/docs/deployment/cloud.md create mode 100644 docs/pt/docs/deployment/concepts.md create mode 100644 docs/pt/docs/deployment/docker.md create mode 100644 docs/pt/docs/deployment/https.md create mode 100644 docs/pt/docs/deployment/index.md create mode 100644 docs/pt/docs/deployment/manually.md create mode 100644 docs/pt/docs/deployment/server-workers.md create mode 100644 docs/pt/docs/deployment/versions.md create mode 100644 docs/pt/docs/environment-variables.md create mode 100644 docs/pt/docs/fastapi-cli.md create mode 100644 docs/pt/docs/features.md create mode 100644 docs/pt/docs/help-fastapi.md create mode 100644 docs/pt/docs/history-design-future.md create mode 100644 docs/pt/docs/how-to/conditional-openapi.md create mode 100644 docs/pt/docs/how-to/configure-swagger-ui.md create mode 100644 docs/pt/docs/how-to/custom-docs-ui-assets.md create mode 100644 docs/pt/docs/how-to/custom-request-and-route.md create mode 100644 docs/pt/docs/how-to/extending-openapi.md create mode 100644 docs/pt/docs/how-to/general.md create mode 100644 docs/pt/docs/how-to/graphql.md create mode 100644 docs/pt/docs/how-to/index.md create mode 100644 docs/pt/docs/how-to/migrate-from-pydantic-v1-to-pydantic-v2.md create mode 100644 docs/pt/docs/how-to/separate-openapi-schemas.md create mode 100644 docs/pt/docs/how-to/testing-database.md create mode 100644 docs/pt/docs/index.md create mode 100644 docs/pt/docs/learn/index.md create mode 100644 docs/pt/docs/project-generation.md create mode 100644 docs/pt/docs/python-types.md create mode 100644 docs/pt/docs/resources/index.md create mode 100644 docs/pt/docs/tutorial/background-tasks.md create mode 100644 docs/pt/docs/tutorial/bigger-applications.md create mode 100644 docs/pt/docs/tutorial/body-fields.md create mode 100644 docs/pt/docs/tutorial/body-multiple-params.md create mode 100644 docs/pt/docs/tutorial/body-nested-models.md create mode 100644 docs/pt/docs/tutorial/body-updates.md create mode 100644 docs/pt/docs/tutorial/body.md create mode 100644 docs/pt/docs/tutorial/cookie-param-models.md create mode 100644 docs/pt/docs/tutorial/cookie-params.md create mode 100644 docs/pt/docs/tutorial/cors.md create mode 100644 docs/pt/docs/tutorial/debugging.md create mode 100644 docs/pt/docs/tutorial/dependencies/classes-as-dependencies.md create mode 100644 docs/pt/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md create mode 100644 docs/pt/docs/tutorial/dependencies/dependencies-with-yield.md create mode 100644 docs/pt/docs/tutorial/dependencies/global-dependencies.md create mode 100644 docs/pt/docs/tutorial/dependencies/index.md create mode 100644 docs/pt/docs/tutorial/dependencies/sub-dependencies.md create mode 100644 docs/pt/docs/tutorial/encoder.md create mode 100644 docs/pt/docs/tutorial/extra-data-types.md create mode 100644 docs/pt/docs/tutorial/extra-models.md create mode 100644 docs/pt/docs/tutorial/first-steps.md create mode 100644 docs/pt/docs/tutorial/handling-errors.md create mode 100644 docs/pt/docs/tutorial/header-param-models.md create mode 100644 docs/pt/docs/tutorial/header-params.md create mode 100644 docs/pt/docs/tutorial/index.md create mode 100644 docs/pt/docs/tutorial/metadata.md create mode 100644 docs/pt/docs/tutorial/middleware.md create mode 100644 docs/pt/docs/tutorial/path-operation-configuration.md create mode 100644 docs/pt/docs/tutorial/path-params-numeric-validations.md create mode 100644 docs/pt/docs/tutorial/path-params.md create mode 100644 docs/pt/docs/tutorial/query-param-models.md create mode 100644 docs/pt/docs/tutorial/query-params-str-validations.md create mode 100644 docs/pt/docs/tutorial/query-params.md create mode 100644 docs/pt/docs/tutorial/request-files.md create mode 100644 docs/pt/docs/tutorial/request-form-models.md create mode 100644 docs/pt/docs/tutorial/request-forms-and-files.md create mode 100644 docs/pt/docs/tutorial/request-forms.md create mode 100644 docs/pt/docs/tutorial/response-model.md create mode 100644 docs/pt/docs/tutorial/response-status-code.md create mode 100644 docs/pt/docs/tutorial/schema-extra-example.md create mode 100644 docs/pt/docs/tutorial/security/first-steps.md create mode 100644 docs/pt/docs/tutorial/security/get-current-user.md create mode 100644 docs/pt/docs/tutorial/security/index.md create mode 100644 docs/pt/docs/tutorial/security/oauth2-jwt.md create mode 100644 docs/pt/docs/tutorial/security/simple-oauth2.md create mode 100644 docs/pt/docs/tutorial/sql-databases.md create mode 100644 docs/pt/docs/tutorial/static-files.md create mode 100644 docs/pt/docs/tutorial/testing.md create mode 100644 docs/pt/docs/virtual-environments.md create mode 100644 docs/pt/llm-prompt.md create mode 100644 docs/pt/mkdocs.yml create mode 100644 docs/ru/docs/_llm-test.md create mode 100644 docs/ru/docs/about/index.md create mode 100644 docs/ru/docs/advanced/additional-responses.md create mode 100644 docs/ru/docs/advanced/additional-status-codes.md create mode 100644 docs/ru/docs/advanced/advanced-dependencies.md create mode 100644 docs/ru/docs/advanced/async-tests.md create mode 100644 docs/ru/docs/advanced/behind-a-proxy.md create mode 100644 docs/ru/docs/advanced/custom-response.md create mode 100644 docs/ru/docs/advanced/dataclasses.md create mode 100644 docs/ru/docs/advanced/events.md create mode 100644 docs/ru/docs/advanced/generate-clients.md create mode 100644 docs/ru/docs/advanced/index.md create mode 100644 docs/ru/docs/advanced/middleware.md create mode 100644 docs/ru/docs/advanced/openapi-callbacks.md create mode 100644 docs/ru/docs/advanced/openapi-webhooks.md create mode 100644 docs/ru/docs/advanced/path-operation-advanced-configuration.md create mode 100644 docs/ru/docs/advanced/response-change-status-code.md create mode 100644 docs/ru/docs/advanced/response-cookies.md create mode 100644 docs/ru/docs/advanced/response-directly.md create mode 100644 docs/ru/docs/advanced/response-headers.md create mode 100644 docs/ru/docs/advanced/security/http-basic-auth.md create mode 100644 docs/ru/docs/advanced/security/index.md create mode 100644 docs/ru/docs/advanced/security/oauth2-scopes.md create mode 100644 docs/ru/docs/advanced/settings.md create mode 100644 docs/ru/docs/advanced/sub-applications.md create mode 100644 docs/ru/docs/advanced/templates.md create mode 100644 docs/ru/docs/advanced/testing-dependencies.md create mode 100644 docs/ru/docs/advanced/testing-events.md create mode 100644 docs/ru/docs/advanced/testing-websockets.md create mode 100644 docs/ru/docs/advanced/using-request-directly.md create mode 100644 docs/ru/docs/advanced/websockets.md create mode 100644 docs/ru/docs/advanced/wsgi.md create mode 100644 docs/ru/docs/alternatives.md create mode 100644 docs/ru/docs/async.md create mode 100644 docs/ru/docs/benchmarks.md create mode 100644 docs/ru/docs/deployment/cloud.md create mode 100644 docs/ru/docs/deployment/concepts.md create mode 100644 docs/ru/docs/deployment/docker.md create mode 100644 docs/ru/docs/deployment/https.md create mode 100644 docs/ru/docs/deployment/index.md create mode 100644 docs/ru/docs/deployment/manually.md create mode 100644 docs/ru/docs/deployment/server-workers.md create mode 100644 docs/ru/docs/deployment/versions.md create mode 100644 docs/ru/docs/environment-variables.md create mode 100644 docs/ru/docs/fastapi-cli.md create mode 100644 docs/ru/docs/features.md create mode 100644 docs/ru/docs/help-fastapi.md create mode 100644 docs/ru/docs/history-design-future.md create mode 100644 docs/ru/docs/how-to/conditional-openapi.md create mode 100644 docs/ru/docs/how-to/configure-swagger-ui.md create mode 100644 docs/ru/docs/how-to/custom-docs-ui-assets.md create mode 100644 docs/ru/docs/how-to/custom-request-and-route.md create mode 100644 docs/ru/docs/how-to/extending-openapi.md create mode 100644 docs/ru/docs/how-to/general.md create mode 100644 docs/ru/docs/how-to/graphql.md create mode 100644 docs/ru/docs/how-to/index.md create mode 100644 docs/ru/docs/how-to/migrate-from-pydantic-v1-to-pydantic-v2.md create mode 100644 docs/ru/docs/how-to/separate-openapi-schemas.md create mode 100644 docs/ru/docs/how-to/testing-database.md create mode 100644 docs/ru/docs/index.md create mode 100644 docs/ru/docs/learn/index.md create mode 100644 docs/ru/docs/project-generation.md create mode 100644 docs/ru/docs/python-types.md create mode 100644 docs/ru/docs/resources/index.md create mode 100644 docs/ru/docs/tutorial/background-tasks.md create mode 100644 docs/ru/docs/tutorial/bigger-applications.md create mode 100644 docs/ru/docs/tutorial/body-fields.md create mode 100644 docs/ru/docs/tutorial/body-multiple-params.md create mode 100644 docs/ru/docs/tutorial/body-nested-models.md create mode 100644 docs/ru/docs/tutorial/body-updates.md create mode 100644 docs/ru/docs/tutorial/body.md create mode 100644 docs/ru/docs/tutorial/cookie-param-models.md create mode 100644 docs/ru/docs/tutorial/cookie-params.md create mode 100644 docs/ru/docs/tutorial/cors.md create mode 100644 docs/ru/docs/tutorial/debugging.md create mode 100644 docs/ru/docs/tutorial/dependencies/classes-as-dependencies.md create mode 100644 docs/ru/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md create mode 100644 docs/ru/docs/tutorial/dependencies/dependencies-with-yield.md create mode 100644 docs/ru/docs/tutorial/dependencies/global-dependencies.md create mode 100644 docs/ru/docs/tutorial/dependencies/index.md create mode 100644 docs/ru/docs/tutorial/dependencies/sub-dependencies.md create mode 100644 docs/ru/docs/tutorial/encoder.md create mode 100644 docs/ru/docs/tutorial/extra-data-types.md create mode 100644 docs/ru/docs/tutorial/extra-models.md create mode 100644 docs/ru/docs/tutorial/first-steps.md create mode 100644 docs/ru/docs/tutorial/handling-errors.md create mode 100644 docs/ru/docs/tutorial/header-param-models.md create mode 100644 docs/ru/docs/tutorial/header-params.md create mode 100644 docs/ru/docs/tutorial/index.md create mode 100644 docs/ru/docs/tutorial/metadata.md create mode 100644 docs/ru/docs/tutorial/middleware.md create mode 100644 docs/ru/docs/tutorial/path-operation-configuration.md create mode 100644 docs/ru/docs/tutorial/path-params-numeric-validations.md create mode 100644 docs/ru/docs/tutorial/path-params.md create mode 100644 docs/ru/docs/tutorial/query-param-models.md create mode 100644 docs/ru/docs/tutorial/query-params-str-validations.md create mode 100644 docs/ru/docs/tutorial/query-params.md create mode 100644 docs/ru/docs/tutorial/request-files.md create mode 100644 docs/ru/docs/tutorial/request-form-models.md create mode 100644 docs/ru/docs/tutorial/request-forms-and-files.md create mode 100644 docs/ru/docs/tutorial/request-forms.md create mode 100644 docs/ru/docs/tutorial/response-model.md create mode 100644 docs/ru/docs/tutorial/response-status-code.md create mode 100644 docs/ru/docs/tutorial/schema-extra-example.md create mode 100644 docs/ru/docs/tutorial/security/first-steps.md create mode 100644 docs/ru/docs/tutorial/security/get-current-user.md create mode 100644 docs/ru/docs/tutorial/security/index.md create mode 100644 docs/ru/docs/tutorial/security/oauth2-jwt.md create mode 100644 docs/ru/docs/tutorial/security/simple-oauth2.md create mode 100644 docs/ru/docs/tutorial/sql-databases.md create mode 100644 docs/ru/docs/tutorial/static-files.md create mode 100644 docs/ru/docs/tutorial/testing.md create mode 100644 docs/ru/docs/virtual-environments.md create mode 100644 docs/ru/llm-prompt.md create mode 100644 docs/ru/mkdocs.yml create mode 100644 docs/tr/docs/about/index.md create mode 100644 docs/tr/docs/advanced/index.md create mode 100644 docs/tr/docs/advanced/security/index.md create mode 100644 docs/tr/docs/advanced/testing-websockets.md create mode 100644 docs/tr/docs/advanced/wsgi.md create mode 100644 docs/tr/docs/alternatives.md create mode 100644 docs/tr/docs/async.md create mode 100644 docs/tr/docs/benchmarks.md create mode 100644 docs/tr/docs/deployment/cloud.md create mode 100644 docs/tr/docs/deployment/index.md create mode 100644 docs/tr/docs/features.md create mode 100644 docs/tr/docs/history-design-future.md create mode 100644 docs/tr/docs/how-to/general.md create mode 100644 docs/tr/docs/how-to/index.md create mode 100644 docs/tr/docs/index.md create mode 100644 docs/tr/docs/learn/index.md create mode 100644 docs/tr/docs/project-generation.md create mode 100644 docs/tr/docs/python-types.md create mode 100644 docs/tr/docs/resources/index.md create mode 100644 docs/tr/docs/tutorial/cookie-params.md create mode 100644 docs/tr/docs/tutorial/first-steps.md create mode 100644 docs/tr/docs/tutorial/path-params.md create mode 100644 docs/tr/docs/tutorial/query-params.md create mode 100644 docs/tr/docs/tutorial/request-forms.md create mode 100644 docs/tr/docs/tutorial/static-files.md create mode 100644 docs/tr/mkdocs.yml create mode 100644 docs/uk/docs/alternatives.md create mode 100644 docs/uk/docs/fastapi-cli.md create mode 100644 docs/uk/docs/features.md create mode 100644 docs/uk/docs/index.md create mode 100644 docs/uk/docs/learn/index.md create mode 100644 docs/uk/docs/python-types.md create mode 100644 docs/uk/docs/tutorial/background-tasks.md create mode 100644 docs/uk/docs/tutorial/body-fields.md create mode 100644 docs/uk/docs/tutorial/body-multiple-params.md create mode 100644 docs/uk/docs/tutorial/body-nested-models.md create mode 100644 docs/uk/docs/tutorial/body-updates.md create mode 100644 docs/uk/docs/tutorial/body.md create mode 100644 docs/uk/docs/tutorial/cookie-param-models.md create mode 100644 docs/uk/docs/tutorial/cookie-params.md create mode 100644 docs/uk/docs/tutorial/cors.md create mode 100644 docs/uk/docs/tutorial/debugging.md create mode 100644 docs/uk/docs/tutorial/encoder.md create mode 100644 docs/uk/docs/tutorial/extra-data-types.md create mode 100644 docs/uk/docs/tutorial/first-steps.md create mode 100644 docs/uk/docs/tutorial/handling-errors.md create mode 100644 docs/uk/docs/tutorial/header-param-models.md create mode 100644 docs/uk/docs/tutorial/header-params.md create mode 100644 docs/uk/docs/tutorial/index.md create mode 100644 docs/uk/docs/tutorial/metadata.md create mode 100644 docs/uk/docs/tutorial/middleware.md create mode 100644 docs/uk/docs/tutorial/path-params-numeric-validations.md create mode 100644 docs/uk/docs/tutorial/path-params.md create mode 100644 docs/uk/docs/tutorial/query-param-models.md create mode 100644 docs/uk/docs/tutorial/query-params-str-validations.md create mode 100644 docs/uk/docs/tutorial/query-params.md create mode 100644 docs/uk/docs/tutorial/request-files.md create mode 100644 docs/uk/docs/tutorial/request-form-models.md create mode 100644 docs/uk/docs/tutorial/request-forms-and-files.md create mode 100644 docs/uk/docs/tutorial/request-forms.md create mode 100644 docs/uk/docs/tutorial/response-model.md create mode 100644 docs/uk/docs/tutorial/response-status-code.md create mode 100644 docs/uk/docs/tutorial/schema-extra-example.md create mode 100644 docs/uk/docs/tutorial/security/index.md create mode 100644 docs/uk/docs/tutorial/static-files.md create mode 100644 docs/uk/docs/tutorial/testing.md create mode 100644 docs/uk/mkdocs.yml create mode 100644 docs/vi/docs/deployment/cloud.md create mode 100644 docs/vi/docs/deployment/index.md create mode 100644 docs/vi/docs/deployment/versions.md create mode 100644 docs/vi/docs/environment-variables.md create mode 100644 docs/vi/docs/fastapi-cli.md create mode 100644 docs/vi/docs/features.md create mode 100644 docs/vi/docs/index.md create mode 100644 docs/vi/docs/python-types.md create mode 100644 docs/vi/docs/tutorial/first-steps.md create mode 100644 docs/vi/docs/tutorial/index.md create mode 100644 docs/vi/docs/tutorial/static-files.md create mode 100644 docs/vi/docs/virtual-environments.md create mode 100644 docs/vi/mkdocs.yml create mode 100644 docs/zh-hant/docs/about/index.md create mode 100644 docs/zh-hant/docs/async.md create mode 100644 docs/zh-hant/docs/benchmarks.md create mode 100644 docs/zh-hant/docs/deployment/cloud.md create mode 100644 docs/zh-hant/docs/deployment/index.md create mode 100644 docs/zh-hant/docs/environment-variables.md create mode 100644 docs/zh-hant/docs/fastapi-cli.md create mode 100644 docs/zh-hant/docs/features.md create mode 100644 docs/zh-hant/docs/how-to/index.md create mode 100644 docs/zh-hant/docs/index.md create mode 100644 docs/zh-hant/docs/learn/index.md create mode 100644 docs/zh-hant/docs/resources/index.md create mode 100644 docs/zh-hant/docs/tutorial/first-steps.md create mode 100644 docs/zh-hant/docs/tutorial/index.md create mode 100644 docs/zh-hant/docs/tutorial/query-param-models.md create mode 100644 docs/zh-hant/docs/virtual-environments.md create mode 100644 docs/zh-hant/mkdocs.yml create mode 100644 docs/zh/docs/advanced/additional-responses.md create mode 100644 docs/zh/docs/advanced/additional-status-codes.md create mode 100644 docs/zh/docs/advanced/advanced-dependencies.md create mode 100644 docs/zh/docs/advanced/async-tests.md create mode 100644 docs/zh/docs/advanced/behind-a-proxy.md create mode 100644 docs/zh/docs/advanced/custom-response.md create mode 100644 docs/zh/docs/advanced/dataclasses.md create mode 100644 docs/zh/docs/advanced/events.md create mode 100644 docs/zh/docs/advanced/generate-clients.md create mode 100644 docs/zh/docs/advanced/index.md create mode 100644 docs/zh/docs/advanced/middleware.md create mode 100644 docs/zh/docs/advanced/openapi-callbacks.md create mode 100644 docs/zh/docs/advanced/openapi-webhooks.md create mode 100644 docs/zh/docs/advanced/path-operation-advanced-configuration.md create mode 100644 docs/zh/docs/advanced/response-change-status-code.md create mode 100644 docs/zh/docs/advanced/response-cookies.md create mode 100644 docs/zh/docs/advanced/response-directly.md create mode 100644 docs/zh/docs/advanced/response-headers.md create mode 100644 docs/zh/docs/advanced/security/http-basic-auth.md create mode 100644 docs/zh/docs/advanced/security/index.md create mode 100644 docs/zh/docs/advanced/security/oauth2-scopes.md create mode 100644 docs/zh/docs/advanced/settings.md create mode 100644 docs/zh/docs/advanced/sub-applications.md create mode 100644 docs/zh/docs/advanced/templates.md create mode 100644 docs/zh/docs/advanced/testing-dependencies.md create mode 100644 docs/zh/docs/advanced/testing-events.md create mode 100644 docs/zh/docs/advanced/testing-websockets.md create mode 100644 docs/zh/docs/advanced/using-request-directly.md create mode 100644 docs/zh/docs/advanced/websockets.md create mode 100644 docs/zh/docs/advanced/wsgi.md create mode 100644 docs/zh/docs/async.md create mode 100644 docs/zh/docs/benchmarks.md create mode 100644 docs/zh/docs/deployment/cloud.md create mode 100644 docs/zh/docs/deployment/concepts.md create mode 100644 docs/zh/docs/deployment/docker.md create mode 100644 docs/zh/docs/deployment/https.md create mode 100644 docs/zh/docs/deployment/index.md create mode 100644 docs/zh/docs/deployment/manually.md create mode 100644 docs/zh/docs/deployment/server-workers.md create mode 100644 docs/zh/docs/deployment/versions.md create mode 100644 docs/zh/docs/environment-variables.md create mode 100644 docs/zh/docs/fastapi-cli.md create mode 100644 docs/zh/docs/features.md create mode 100644 docs/zh/docs/help-fastapi.md create mode 100644 docs/zh/docs/history-design-future.md create mode 100644 docs/zh/docs/how-to/configure-swagger-ui.md create mode 100644 docs/zh/docs/how-to/general.md create mode 100644 docs/zh/docs/how-to/index.md create mode 100644 docs/zh/docs/index.md create mode 100644 docs/zh/docs/learn/index.md create mode 100644 docs/zh/docs/project-generation.md create mode 100644 docs/zh/docs/python-types.md create mode 100644 docs/zh/docs/tutorial/background-tasks.md create mode 100644 docs/zh/docs/tutorial/bigger-applications.md create mode 100644 docs/zh/docs/tutorial/body-fields.md create mode 100644 docs/zh/docs/tutorial/body-multiple-params.md create mode 100644 docs/zh/docs/tutorial/body-nested-models.md create mode 100644 docs/zh/docs/tutorial/body-updates.md create mode 100644 docs/zh/docs/tutorial/body.md create mode 100644 docs/zh/docs/tutorial/cookie-param-models.md create mode 100644 docs/zh/docs/tutorial/cookie-params.md create mode 100644 docs/zh/docs/tutorial/cors.md create mode 100644 docs/zh/docs/tutorial/debugging.md create mode 100644 docs/zh/docs/tutorial/dependencies/classes-as-dependencies.md create mode 100644 docs/zh/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md create mode 100644 docs/zh/docs/tutorial/dependencies/dependencies-with-yield.md create mode 100644 docs/zh/docs/tutorial/dependencies/global-dependencies.md create mode 100644 docs/zh/docs/tutorial/dependencies/index.md create mode 100644 docs/zh/docs/tutorial/dependencies/sub-dependencies.md create mode 100644 docs/zh/docs/tutorial/encoder.md create mode 100644 docs/zh/docs/tutorial/extra-data-types.md create mode 100644 docs/zh/docs/tutorial/extra-models.md create mode 100644 docs/zh/docs/tutorial/first-steps.md create mode 100644 docs/zh/docs/tutorial/handling-errors.md create mode 100644 docs/zh/docs/tutorial/header-param-models.md create mode 100644 docs/zh/docs/tutorial/header-params.md create mode 100644 docs/zh/docs/tutorial/index.md create mode 100644 docs/zh/docs/tutorial/metadata.md create mode 100644 docs/zh/docs/tutorial/middleware.md create mode 100644 docs/zh/docs/tutorial/path-operation-configuration.md create mode 100644 docs/zh/docs/tutorial/path-params-numeric-validations.md create mode 100644 docs/zh/docs/tutorial/path-params.md create mode 100644 docs/zh/docs/tutorial/query-param-models.md create mode 100644 docs/zh/docs/tutorial/query-params-str-validations.md create mode 100644 docs/zh/docs/tutorial/query-params.md create mode 100644 docs/zh/docs/tutorial/request-files.md create mode 100644 docs/zh/docs/tutorial/request-form-models.md create mode 100644 docs/zh/docs/tutorial/request-forms-and-files.md create mode 100644 docs/zh/docs/tutorial/request-forms.md create mode 100644 docs/zh/docs/tutorial/response-model.md create mode 100644 docs/zh/docs/tutorial/response-status-code.md create mode 100644 docs/zh/docs/tutorial/schema-extra-example.md create mode 100644 docs/zh/docs/tutorial/security/first-steps.md create mode 100644 docs/zh/docs/tutorial/security/get-current-user.md create mode 100644 docs/zh/docs/tutorial/security/index.md create mode 100644 docs/zh/docs/tutorial/security/oauth2-jwt.md create mode 100644 docs/zh/docs/tutorial/security/simple-oauth2.md create mode 100644 docs/zh/docs/tutorial/sql-databases.md create mode 100644 docs/zh/docs/tutorial/static-files.md create mode 100644 docs/zh/docs/tutorial/testing.md create mode 100644 docs/zh/docs/virtual-environments.md create mode 100644 docs/zh/mkdocs.yml create mode 100644 docs_src/additional_responses/tutorial001.py create mode 100644 docs_src/additional_responses/tutorial002.py create mode 100644 docs_src/additional_responses/tutorial003.py create mode 100644 docs_src/additional_responses/tutorial004.py create mode 100644 docs_src/additional_status_codes/tutorial001.py create mode 100644 docs_src/additional_status_codes/tutorial001_an.py create mode 100644 docs_src/additional_status_codes/tutorial001_an_py310.py create mode 100644 docs_src/additional_status_codes/tutorial001_an_py39.py create mode 100644 docs_src/additional_status_codes/tutorial001_py310.py create mode 100644 docs_src/advanced_middleware/tutorial001.py create mode 100644 docs_src/advanced_middleware/tutorial002.py create mode 100644 docs_src/advanced_middleware/tutorial003.py create mode 100644 docs_src/app_testing/__init__.py create mode 100644 docs_src/app_testing/app_b/__init__.py create mode 100644 docs_src/app_testing/app_b/main.py create mode 100644 docs_src/app_testing/app_b/test_main.py create mode 100644 docs_src/app_testing/app_b_an/__init__.py create mode 100644 docs_src/app_testing/app_b_an/main.py create mode 100644 docs_src/app_testing/app_b_an/test_main.py create mode 100644 docs_src/app_testing/app_b_an_py310/__init__.py create mode 100644 docs_src/app_testing/app_b_an_py310/main.py create mode 100644 docs_src/app_testing/app_b_an_py310/test_main.py create mode 100644 docs_src/app_testing/app_b_an_py39/__init__.py create mode 100644 docs_src/app_testing/app_b_an_py39/main.py create mode 100644 docs_src/app_testing/app_b_an_py39/test_main.py create mode 100644 docs_src/app_testing/app_b_py310/__init__.py create mode 100644 docs_src/app_testing/app_b_py310/main.py create mode 100644 docs_src/app_testing/app_b_py310/test_main.py create mode 100644 docs_src/app_testing/main.py create mode 100644 docs_src/app_testing/test_main.py create mode 100644 docs_src/app_testing/tutorial001.py create mode 100644 docs_src/app_testing/tutorial002.py create mode 100644 docs_src/app_testing/tutorial003.py create mode 100644 docs_src/app_testing/tutorial004.py create mode 100644 docs_src/async_tests/__init__.py create mode 100644 docs_src/async_tests/main.py create mode 100644 docs_src/async_tests/test_main.py create mode 100644 docs_src/authentication_error_status_code/tutorial001_an.py create mode 100644 docs_src/authentication_error_status_code/tutorial001_an_py39.py create mode 100644 docs_src/background_tasks/tutorial001.py create mode 100644 docs_src/background_tasks/tutorial002.py create mode 100644 docs_src/background_tasks/tutorial002_an.py create mode 100644 docs_src/background_tasks/tutorial002_an_py310.py create mode 100644 docs_src/background_tasks/tutorial002_an_py39.py create mode 100644 docs_src/background_tasks/tutorial002_py310.py create mode 100644 docs_src/behind_a_proxy/tutorial001.py create mode 100644 docs_src/behind_a_proxy/tutorial001_01.py create mode 100644 docs_src/behind_a_proxy/tutorial002.py create mode 100644 docs_src/behind_a_proxy/tutorial003.py create mode 100644 docs_src/behind_a_proxy/tutorial004.py create mode 100644 docs_src/bigger_applications/__init__.py create mode 100644 docs_src/bigger_applications/app/__init__.py create mode 100644 docs_src/bigger_applications/app/dependencies.py create mode 100644 docs_src/bigger_applications/app/internal/__init__.py create mode 100644 docs_src/bigger_applications/app/internal/admin.py create mode 100644 docs_src/bigger_applications/app/main.py create mode 100644 docs_src/bigger_applications/app/routers/__init__.py create mode 100644 docs_src/bigger_applications/app/routers/items.py create mode 100644 docs_src/bigger_applications/app/routers/users.py create mode 100644 docs_src/bigger_applications/app_an/__init__.py create mode 100644 docs_src/bigger_applications/app_an/dependencies.py create mode 100644 docs_src/bigger_applications/app_an/internal/__init__.py create mode 100644 docs_src/bigger_applications/app_an/internal/admin.py create mode 100644 docs_src/bigger_applications/app_an/main.py create mode 100644 docs_src/bigger_applications/app_an/routers/__init__.py create mode 100644 docs_src/bigger_applications/app_an/routers/items.py create mode 100644 docs_src/bigger_applications/app_an/routers/users.py create mode 100644 docs_src/bigger_applications/app_an_py39/__init__.py create mode 100644 docs_src/bigger_applications/app_an_py39/dependencies.py create mode 100644 docs_src/bigger_applications/app_an_py39/internal/__init__.py create mode 100644 docs_src/bigger_applications/app_an_py39/internal/admin.py create mode 100644 docs_src/bigger_applications/app_an_py39/main.py create mode 100644 docs_src/bigger_applications/app_an_py39/routers/__init__.py create mode 100644 docs_src/bigger_applications/app_an_py39/routers/items.py create mode 100644 docs_src/bigger_applications/app_an_py39/routers/users.py create mode 100644 docs_src/body/tutorial001.py create mode 100644 docs_src/body/tutorial001_py310.py create mode 100644 docs_src/body/tutorial002.py create mode 100644 docs_src/body/tutorial002_py310.py create mode 100644 docs_src/body/tutorial003.py create mode 100644 docs_src/body/tutorial003_py310.py create mode 100644 docs_src/body/tutorial004.py create mode 100644 docs_src/body/tutorial004_py310.py create mode 100644 docs_src/body_fields/tutorial001.py create mode 100644 docs_src/body_fields/tutorial001_an.py create mode 100644 docs_src/body_fields/tutorial001_an_py310.py create mode 100644 docs_src/body_fields/tutorial001_an_py39.py create mode 100644 docs_src/body_fields/tutorial001_py310.py create mode 100644 docs_src/body_multiple_params/tutorial001.py create mode 100644 docs_src/body_multiple_params/tutorial001_an.py create mode 100644 docs_src/body_multiple_params/tutorial001_an_py310.py create mode 100644 docs_src/body_multiple_params/tutorial001_an_py39.py create mode 100644 docs_src/body_multiple_params/tutorial001_py310.py create mode 100644 docs_src/body_multiple_params/tutorial002.py create mode 100644 docs_src/body_multiple_params/tutorial002_py310.py create mode 100644 docs_src/body_multiple_params/tutorial003.py create mode 100644 docs_src/body_multiple_params/tutorial003_an.py create mode 100644 docs_src/body_multiple_params/tutorial003_an_py310.py create mode 100644 docs_src/body_multiple_params/tutorial003_an_py39.py create mode 100644 docs_src/body_multiple_params/tutorial003_py310.py create mode 100644 docs_src/body_multiple_params/tutorial004.py create mode 100644 docs_src/body_multiple_params/tutorial004_an.py create mode 100644 docs_src/body_multiple_params/tutorial004_an_py310.py create mode 100644 docs_src/body_multiple_params/tutorial004_an_py39.py create mode 100644 docs_src/body_multiple_params/tutorial004_py310.py create mode 100644 docs_src/body_multiple_params/tutorial005.py create mode 100644 docs_src/body_multiple_params/tutorial005_an.py create mode 100644 docs_src/body_multiple_params/tutorial005_an_py310.py create mode 100644 docs_src/body_multiple_params/tutorial005_an_py39.py create mode 100644 docs_src/body_multiple_params/tutorial005_py310.py create mode 100644 docs_src/body_nested_models/tutorial001.py create mode 100644 docs_src/body_nested_models/tutorial001_py310.py create mode 100644 docs_src/body_nested_models/tutorial002.py create mode 100644 docs_src/body_nested_models/tutorial002_py310.py create mode 100644 docs_src/body_nested_models/tutorial002_py39.py create mode 100644 docs_src/body_nested_models/tutorial003.py create mode 100644 docs_src/body_nested_models/tutorial003_py310.py create mode 100644 docs_src/body_nested_models/tutorial003_py39.py create mode 100644 docs_src/body_nested_models/tutorial004.py create mode 100644 docs_src/body_nested_models/tutorial004_py310.py create mode 100644 docs_src/body_nested_models/tutorial004_py39.py create mode 100644 docs_src/body_nested_models/tutorial005.py create mode 100644 docs_src/body_nested_models/tutorial005_py310.py create mode 100644 docs_src/body_nested_models/tutorial005_py39.py create mode 100644 docs_src/body_nested_models/tutorial006.py create mode 100644 docs_src/body_nested_models/tutorial006_py310.py create mode 100644 docs_src/body_nested_models/tutorial006_py39.py create mode 100644 docs_src/body_nested_models/tutorial007.py create mode 100644 docs_src/body_nested_models/tutorial007_py310.py create mode 100644 docs_src/body_nested_models/tutorial007_py39.py create mode 100644 docs_src/body_nested_models/tutorial008.py create mode 100644 docs_src/body_nested_models/tutorial008_py39.py create mode 100644 docs_src/body_nested_models/tutorial009.py create mode 100644 docs_src/body_nested_models/tutorial009_py39.py create mode 100644 docs_src/body_updates/tutorial001.py create mode 100644 docs_src/body_updates/tutorial001_py310.py create mode 100644 docs_src/body_updates/tutorial001_py39.py create mode 100644 docs_src/body_updates/tutorial002.py create mode 100644 docs_src/body_updates/tutorial002_py310.py create mode 100644 docs_src/body_updates/tutorial002_py39.py create mode 100644 docs_src/conditional_openapi/tutorial001.py create mode 100644 docs_src/configure_swagger_ui/tutorial001.py create mode 100644 docs_src/configure_swagger_ui/tutorial002.py create mode 100644 docs_src/configure_swagger_ui/tutorial003.py create mode 100644 docs_src/cookie_param_models/tutorial001.py create mode 100644 docs_src/cookie_param_models/tutorial001_an.py create mode 100644 docs_src/cookie_param_models/tutorial001_an_py310.py create mode 100644 docs_src/cookie_param_models/tutorial001_an_py39.py create mode 100644 docs_src/cookie_param_models/tutorial001_py310.py create mode 100644 docs_src/cookie_param_models/tutorial002.py create mode 100644 docs_src/cookie_param_models/tutorial002_an.py create mode 100644 docs_src/cookie_param_models/tutorial002_an_py310.py create mode 100644 docs_src/cookie_param_models/tutorial002_an_py39.py create mode 100644 docs_src/cookie_param_models/tutorial002_pv1.py create mode 100644 docs_src/cookie_param_models/tutorial002_pv1_an.py create mode 100644 docs_src/cookie_param_models/tutorial002_pv1_an_py310.py create mode 100644 docs_src/cookie_param_models/tutorial002_pv1_an_py39.py create mode 100644 docs_src/cookie_param_models/tutorial002_pv1_py310.py create mode 100644 docs_src/cookie_param_models/tutorial002_py310.py create mode 100644 docs_src/cookie_params/tutorial001.py create mode 100644 docs_src/cookie_params/tutorial001_an.py create mode 100644 docs_src/cookie_params/tutorial001_an_py310.py create mode 100644 docs_src/cookie_params/tutorial001_an_py39.py create mode 100644 docs_src/cookie_params/tutorial001_py310.py create mode 100644 docs_src/cors/tutorial001.py create mode 100644 docs_src/custom_docs_ui/tutorial001.py create mode 100644 docs_src/custom_docs_ui/tutorial002.py create mode 100644 docs_src/custom_request_and_route/tutorial001.py create mode 100644 docs_src/custom_request_and_route/tutorial002.py create mode 100644 docs_src/custom_request_and_route/tutorial003.py create mode 100644 docs_src/custom_response/tutorial001.py create mode 100644 docs_src/custom_response/tutorial001b.py create mode 100644 docs_src/custom_response/tutorial002.py create mode 100644 docs_src/custom_response/tutorial003.py create mode 100644 docs_src/custom_response/tutorial004.py create mode 100644 docs_src/custom_response/tutorial005.py create mode 100644 docs_src/custom_response/tutorial006.py create mode 100644 docs_src/custom_response/tutorial006b.py create mode 100644 docs_src/custom_response/tutorial006c.py create mode 100644 docs_src/custom_response/tutorial007.py create mode 100644 docs_src/custom_response/tutorial008.py create mode 100644 docs_src/custom_response/tutorial009.py create mode 100644 docs_src/custom_response/tutorial009b.py create mode 100644 docs_src/custom_response/tutorial009c.py create mode 100644 docs_src/custom_response/tutorial010.py create mode 100644 docs_src/dataclasses/tutorial001.py create mode 100644 docs_src/dataclasses/tutorial002.py create mode 100644 docs_src/dataclasses/tutorial003.py create mode 100644 docs_src/debugging/tutorial001.py create mode 100644 docs_src/dependencies/tutorial001.py create mode 100644 docs_src/dependencies/tutorial001_02_an.py create mode 100644 docs_src/dependencies/tutorial001_02_an_py310.py create mode 100644 docs_src/dependencies/tutorial001_02_an_py39.py create mode 100644 docs_src/dependencies/tutorial001_an.py create mode 100644 docs_src/dependencies/tutorial001_an_py310.py create mode 100644 docs_src/dependencies/tutorial001_an_py39.py create mode 100644 docs_src/dependencies/tutorial001_py310.py create mode 100644 docs_src/dependencies/tutorial002.py create mode 100644 docs_src/dependencies/tutorial002_an.py create mode 100644 docs_src/dependencies/tutorial002_an_py310.py create mode 100644 docs_src/dependencies/tutorial002_an_py39.py create mode 100644 docs_src/dependencies/tutorial002_py310.py create mode 100644 docs_src/dependencies/tutorial003.py create mode 100644 docs_src/dependencies/tutorial003_an.py create mode 100644 docs_src/dependencies/tutorial003_an_py310.py create mode 100644 docs_src/dependencies/tutorial003_an_py39.py create mode 100644 docs_src/dependencies/tutorial003_py310.py create mode 100644 docs_src/dependencies/tutorial004.py create mode 100644 docs_src/dependencies/tutorial004_an.py create mode 100644 docs_src/dependencies/tutorial004_an_py310.py create mode 100644 docs_src/dependencies/tutorial004_an_py39.py create mode 100644 docs_src/dependencies/tutorial004_py310.py create mode 100644 docs_src/dependencies/tutorial005.py create mode 100644 docs_src/dependencies/tutorial005_an.py create mode 100644 docs_src/dependencies/tutorial005_an_py310.py create mode 100644 docs_src/dependencies/tutorial005_an_py39.py create mode 100644 docs_src/dependencies/tutorial005_py310.py create mode 100644 docs_src/dependencies/tutorial006.py create mode 100644 docs_src/dependencies/tutorial006_an.py create mode 100644 docs_src/dependencies/tutorial006_an_py39.py create mode 100644 docs_src/dependencies/tutorial007.py create mode 100644 docs_src/dependencies/tutorial008.py create mode 100644 docs_src/dependencies/tutorial008_an.py create mode 100644 docs_src/dependencies/tutorial008_an_py39.py create mode 100644 docs_src/dependencies/tutorial008b.py create mode 100644 docs_src/dependencies/tutorial008b_an.py create mode 100644 docs_src/dependencies/tutorial008b_an_py39.py create mode 100644 docs_src/dependencies/tutorial008c.py create mode 100644 docs_src/dependencies/tutorial008c_an.py create mode 100644 docs_src/dependencies/tutorial008c_an_py39.py create mode 100644 docs_src/dependencies/tutorial008d.py create mode 100644 docs_src/dependencies/tutorial008d_an.py create mode 100644 docs_src/dependencies/tutorial008d_an_py39.py create mode 100644 docs_src/dependencies/tutorial008e.py create mode 100644 docs_src/dependencies/tutorial008e_an.py create mode 100644 docs_src/dependencies/tutorial008e_an_py39.py create mode 100644 docs_src/dependencies/tutorial009.py create mode 100644 docs_src/dependencies/tutorial010.py create mode 100644 docs_src/dependencies/tutorial011.py create mode 100644 docs_src/dependencies/tutorial011_an.py create mode 100644 docs_src/dependencies/tutorial011_an_py39.py create mode 100644 docs_src/dependencies/tutorial012.py create mode 100644 docs_src/dependencies/tutorial012_an.py create mode 100644 docs_src/dependencies/tutorial012_an_py39.py create mode 100644 docs_src/dependencies/tutorial013_an_py310.py create mode 100644 docs_src/dependencies/tutorial014_an_py310.py create mode 100644 docs_src/dependency_testing/tutorial001.py create mode 100644 docs_src/dependency_testing/tutorial001_an.py create mode 100644 docs_src/dependency_testing/tutorial001_an_py310.py create mode 100644 docs_src/dependency_testing/tutorial001_an_py39.py create mode 100644 docs_src/dependency_testing/tutorial001_py310.py create mode 100644 docs_src/encoder/tutorial001.py create mode 100644 docs_src/encoder/tutorial001_py310.py create mode 100644 docs_src/events/tutorial001.py create mode 100644 docs_src/events/tutorial002.py create mode 100644 docs_src/events/tutorial003.py create mode 100644 docs_src/extending_openapi/tutorial001.py create mode 100644 docs_src/extra_data_types/tutorial001.py create mode 100644 docs_src/extra_data_types/tutorial001_an.py create mode 100644 docs_src/extra_data_types/tutorial001_an_py310.py create mode 100644 docs_src/extra_data_types/tutorial001_an_py39.py create mode 100644 docs_src/extra_data_types/tutorial001_py310.py create mode 100644 docs_src/extra_models/tutorial001.py create mode 100644 docs_src/extra_models/tutorial001_py310.py create mode 100644 docs_src/extra_models/tutorial002.py create mode 100644 docs_src/extra_models/tutorial002_py310.py create mode 100644 docs_src/extra_models/tutorial003.py create mode 100644 docs_src/extra_models/tutorial003_py310.py create mode 100644 docs_src/extra_models/tutorial004.py create mode 100644 docs_src/extra_models/tutorial004_py39.py create mode 100644 docs_src/extra_models/tutorial005.py create mode 100644 docs_src/extra_models/tutorial005_py39.py create mode 100644 docs_src/first_steps/tutorial001.py create mode 100644 docs_src/first_steps/tutorial002.py create mode 100644 docs_src/first_steps/tutorial003.py create mode 100644 docs_src/generate_clients/tutorial001.py create mode 100644 docs_src/generate_clients/tutorial001_py39.py create mode 100644 docs_src/generate_clients/tutorial002.py create mode 100644 docs_src/generate_clients/tutorial002_py39.py create mode 100644 docs_src/generate_clients/tutorial003.py create mode 100644 docs_src/generate_clients/tutorial003_py39.py create mode 100644 docs_src/generate_clients/tutorial004.js create mode 100644 docs_src/generate_clients/tutorial004.py create mode 100644 docs_src/graphql/tutorial001.py create mode 100644 docs_src/handling_errors/tutorial001.py create mode 100644 docs_src/handling_errors/tutorial002.py create mode 100644 docs_src/handling_errors/tutorial003.py create mode 100644 docs_src/handling_errors/tutorial004.py create mode 100644 docs_src/handling_errors/tutorial005.py create mode 100644 docs_src/handling_errors/tutorial006.py create mode 100644 docs_src/header_param_models/tutorial001.py create mode 100644 docs_src/header_param_models/tutorial001_an.py create mode 100644 docs_src/header_param_models/tutorial001_an_py310.py create mode 100644 docs_src/header_param_models/tutorial001_an_py39.py create mode 100644 docs_src/header_param_models/tutorial001_py310.py create mode 100644 docs_src/header_param_models/tutorial001_py39.py create mode 100644 docs_src/header_param_models/tutorial002.py create mode 100644 docs_src/header_param_models/tutorial002_an.py create mode 100644 docs_src/header_param_models/tutorial002_an_py310.py create mode 100644 docs_src/header_param_models/tutorial002_an_py39.py create mode 100644 docs_src/header_param_models/tutorial002_pv1.py create mode 100644 docs_src/header_param_models/tutorial002_pv1_an.py create mode 100644 docs_src/header_param_models/tutorial002_pv1_an_py310.py create mode 100644 docs_src/header_param_models/tutorial002_pv1_an_py39.py create mode 100644 docs_src/header_param_models/tutorial002_pv1_py310.py create mode 100644 docs_src/header_param_models/tutorial002_pv1_py39.py create mode 100644 docs_src/header_param_models/tutorial002_py310.py create mode 100644 docs_src/header_param_models/tutorial002_py39.py create mode 100644 docs_src/header_param_models/tutorial003.py create mode 100644 docs_src/header_param_models/tutorial003_an.py create mode 100644 docs_src/header_param_models/tutorial003_an_py310.py create mode 100644 docs_src/header_param_models/tutorial003_an_py39.py create mode 100644 docs_src/header_param_models/tutorial003_py310.py create mode 100644 docs_src/header_param_models/tutorial003_py39.py create mode 100644 docs_src/header_params/tutorial001.py create mode 100644 docs_src/header_params/tutorial001_an.py create mode 100644 docs_src/header_params/tutorial001_an_py310.py create mode 100644 docs_src/header_params/tutorial001_an_py39.py create mode 100644 docs_src/header_params/tutorial001_py310.py create mode 100644 docs_src/header_params/tutorial002.py create mode 100644 docs_src/header_params/tutorial002_an.py create mode 100644 docs_src/header_params/tutorial002_an_py310.py create mode 100644 docs_src/header_params/tutorial002_an_py39.py create mode 100644 docs_src/header_params/tutorial002_py310.py create mode 100644 docs_src/header_params/tutorial003.py create mode 100644 docs_src/header_params/tutorial003_an.py create mode 100644 docs_src/header_params/tutorial003_an_py310.py create mode 100644 docs_src/header_params/tutorial003_an_py39.py create mode 100644 docs_src/header_params/tutorial003_py310.py create mode 100644 docs_src/header_params/tutorial003_py39.py create mode 100644 docs_src/metadata/tutorial001.py create mode 100644 docs_src/metadata/tutorial001_1.py create mode 100644 docs_src/metadata/tutorial002.py create mode 100644 docs_src/metadata/tutorial003.py create mode 100644 docs_src/metadata/tutorial004.py create mode 100644 docs_src/middleware/tutorial001.py create mode 100644 docs_src/openapi_callbacks/tutorial001.py create mode 100644 docs_src/openapi_webhooks/tutorial001.py create mode 100644 docs_src/path_operation_advanced_configuration/tutorial001.py create mode 100644 docs_src/path_operation_advanced_configuration/tutorial002.py create mode 100644 docs_src/path_operation_advanced_configuration/tutorial003.py create mode 100644 docs_src/path_operation_advanced_configuration/tutorial004.py create mode 100644 docs_src/path_operation_advanced_configuration/tutorial005.py create mode 100644 docs_src/path_operation_advanced_configuration/tutorial006.py create mode 100644 docs_src/path_operation_advanced_configuration/tutorial007.py create mode 100644 docs_src/path_operation_advanced_configuration/tutorial007_pv1.py create mode 100644 docs_src/path_operation_configuration/tutorial001.py create mode 100644 docs_src/path_operation_configuration/tutorial001_py310.py create mode 100644 docs_src/path_operation_configuration/tutorial001_py39.py create mode 100644 docs_src/path_operation_configuration/tutorial002.py create mode 100644 docs_src/path_operation_configuration/tutorial002_py310.py create mode 100644 docs_src/path_operation_configuration/tutorial002_py39.py create mode 100644 docs_src/path_operation_configuration/tutorial002b.py create mode 100644 docs_src/path_operation_configuration/tutorial003.py create mode 100644 docs_src/path_operation_configuration/tutorial003_py310.py create mode 100644 docs_src/path_operation_configuration/tutorial003_py39.py create mode 100644 docs_src/path_operation_configuration/tutorial004.py create mode 100644 docs_src/path_operation_configuration/tutorial004_py310.py create mode 100644 docs_src/path_operation_configuration/tutorial004_py39.py create mode 100644 docs_src/path_operation_configuration/tutorial005.py create mode 100644 docs_src/path_operation_configuration/tutorial005_py310.py create mode 100644 docs_src/path_operation_configuration/tutorial005_py39.py create mode 100644 docs_src/path_operation_configuration/tutorial006.py create mode 100644 docs_src/path_params/tutorial001.py create mode 100644 docs_src/path_params/tutorial002.py create mode 100644 docs_src/path_params/tutorial003.py create mode 100644 docs_src/path_params/tutorial003b.py create mode 100644 docs_src/path_params/tutorial004.py create mode 100644 docs_src/path_params/tutorial005.py create mode 100644 docs_src/path_params_numeric_validations/tutorial001.py create mode 100644 docs_src/path_params_numeric_validations/tutorial001_an.py create mode 100644 docs_src/path_params_numeric_validations/tutorial001_an_py310.py create mode 100644 docs_src/path_params_numeric_validations/tutorial001_an_py39.py create mode 100644 docs_src/path_params_numeric_validations/tutorial001_py310.py create mode 100644 docs_src/path_params_numeric_validations/tutorial002.py create mode 100644 docs_src/path_params_numeric_validations/tutorial002_an.py create mode 100644 docs_src/path_params_numeric_validations/tutorial002_an_py39.py create mode 100644 docs_src/path_params_numeric_validations/tutorial003.py create mode 100644 docs_src/path_params_numeric_validations/tutorial003_an.py create mode 100644 docs_src/path_params_numeric_validations/tutorial003_an_py39.py create mode 100644 docs_src/path_params_numeric_validations/tutorial004.py create mode 100644 docs_src/path_params_numeric_validations/tutorial004_an.py create mode 100644 docs_src/path_params_numeric_validations/tutorial004_an_py39.py create mode 100644 docs_src/path_params_numeric_validations/tutorial005.py create mode 100644 docs_src/path_params_numeric_validations/tutorial005_an.py create mode 100644 docs_src/path_params_numeric_validations/tutorial005_an_py39.py create mode 100644 docs_src/path_params_numeric_validations/tutorial006.py create mode 100644 docs_src/path_params_numeric_validations/tutorial006_an.py create mode 100644 docs_src/path_params_numeric_validations/tutorial006_an_py39.py create mode 100644 docs_src/pydantic_v1_in_v2/tutorial001_an.py create mode 100644 docs_src/pydantic_v1_in_v2/tutorial001_an_py310.py create mode 100644 docs_src/pydantic_v1_in_v2/tutorial002_an.py create mode 100644 docs_src/pydantic_v1_in_v2/tutorial002_an_py310.py create mode 100644 docs_src/pydantic_v1_in_v2/tutorial003_an.py create mode 100644 docs_src/pydantic_v1_in_v2/tutorial003_an_py310.py create mode 100644 docs_src/pydantic_v1_in_v2/tutorial004_an.py create mode 100644 docs_src/pydantic_v1_in_v2/tutorial004_an_py310.py create mode 100644 docs_src/pydantic_v1_in_v2/tutorial004_an_py39.py create mode 100644 docs_src/python_types/tutorial001.py create mode 100644 docs_src/python_types/tutorial002.py create mode 100644 docs_src/python_types/tutorial003.py create mode 100644 docs_src/python_types/tutorial004.py create mode 100644 docs_src/python_types/tutorial005.py create mode 100644 docs_src/python_types/tutorial006.py create mode 100644 docs_src/python_types/tutorial006_py39.py create mode 100644 docs_src/python_types/tutorial007.py create mode 100644 docs_src/python_types/tutorial007_py39.py create mode 100644 docs_src/python_types/tutorial008.py create mode 100644 docs_src/python_types/tutorial008_py39.py create mode 100644 docs_src/python_types/tutorial008b.py create mode 100644 docs_src/python_types/tutorial008b_py310.py create mode 100644 docs_src/python_types/tutorial009.py create mode 100644 docs_src/python_types/tutorial009_py310.py create mode 100644 docs_src/python_types/tutorial009b.py create mode 100644 docs_src/python_types/tutorial009c.py create mode 100644 docs_src/python_types/tutorial009c_py310.py create mode 100644 docs_src/python_types/tutorial010.py create mode 100644 docs_src/python_types/tutorial011.py create mode 100644 docs_src/python_types/tutorial011_py310.py create mode 100644 docs_src/python_types/tutorial011_py39.py create mode 100644 docs_src/python_types/tutorial012.py create mode 100644 docs_src/python_types/tutorial013.py create mode 100644 docs_src/python_types/tutorial013_py39.py create mode 100644 docs_src/query_param_models/tutorial001.py create mode 100644 docs_src/query_param_models/tutorial001_an.py create mode 100644 docs_src/query_param_models/tutorial001_an_py310.py create mode 100644 docs_src/query_param_models/tutorial001_an_py39.py create mode 100644 docs_src/query_param_models/tutorial001_py310.py create mode 100644 docs_src/query_param_models/tutorial001_py39.py create mode 100644 docs_src/query_param_models/tutorial002.py create mode 100644 docs_src/query_param_models/tutorial002_an.py create mode 100644 docs_src/query_param_models/tutorial002_an_py310.py create mode 100644 docs_src/query_param_models/tutorial002_an_py39.py create mode 100644 docs_src/query_param_models/tutorial002_pv1.py create mode 100644 docs_src/query_param_models/tutorial002_pv1_an.py create mode 100644 docs_src/query_param_models/tutorial002_pv1_an_py310.py create mode 100644 docs_src/query_param_models/tutorial002_pv1_an_py39.py create mode 100644 docs_src/query_param_models/tutorial002_pv1_py310.py create mode 100644 docs_src/query_param_models/tutorial002_pv1_py39.py create mode 100644 docs_src/query_param_models/tutorial002_py310.py create mode 100644 docs_src/query_param_models/tutorial002_py39.py create mode 100644 docs_src/query_params/tutorial001.py create mode 100644 docs_src/query_params/tutorial002.py create mode 100644 docs_src/query_params/tutorial002_py310.py create mode 100644 docs_src/query_params/tutorial003.py create mode 100644 docs_src/query_params/tutorial003_py310.py create mode 100644 docs_src/query_params/tutorial004.py create mode 100644 docs_src/query_params/tutorial004_py310.py create mode 100644 docs_src/query_params/tutorial005.py create mode 100644 docs_src/query_params/tutorial006.py create mode 100644 docs_src/query_params/tutorial006_py310.py create mode 100644 docs_src/query_params/tutorial006b.py create mode 100644 docs_src/query_params_str_validations/tutorial001.py create mode 100644 docs_src/query_params_str_validations/tutorial001_py310.py create mode 100644 docs_src/query_params_str_validations/tutorial002.py create mode 100644 docs_src/query_params_str_validations/tutorial002_an.py create mode 100644 docs_src/query_params_str_validations/tutorial002_an_py310.py create mode 100644 docs_src/query_params_str_validations/tutorial002_py310.py create mode 100644 docs_src/query_params_str_validations/tutorial003.py create mode 100644 docs_src/query_params_str_validations/tutorial003_an.py create mode 100644 docs_src/query_params_str_validations/tutorial003_an_py310.py create mode 100644 docs_src/query_params_str_validations/tutorial003_an_py39.py create mode 100644 docs_src/query_params_str_validations/tutorial003_py310.py create mode 100644 docs_src/query_params_str_validations/tutorial004.py create mode 100644 docs_src/query_params_str_validations/tutorial004_an.py create mode 100644 docs_src/query_params_str_validations/tutorial004_an_py310.py create mode 100644 docs_src/query_params_str_validations/tutorial004_an_py39.py create mode 100644 docs_src/query_params_str_validations/tutorial004_py310.py create mode 100644 docs_src/query_params_str_validations/tutorial004_regex_an_py310.py create mode 100644 docs_src/query_params_str_validations/tutorial005.py create mode 100644 docs_src/query_params_str_validations/tutorial005_an.py create mode 100644 docs_src/query_params_str_validations/tutorial005_an_py39.py create mode 100644 docs_src/query_params_str_validations/tutorial006.py create mode 100644 docs_src/query_params_str_validations/tutorial006_an.py create mode 100644 docs_src/query_params_str_validations/tutorial006_an_py39.py create mode 100644 docs_src/query_params_str_validations/tutorial006c.py create mode 100644 docs_src/query_params_str_validations/tutorial006c_an.py create mode 100644 docs_src/query_params_str_validations/tutorial006c_an_py310.py create mode 100644 docs_src/query_params_str_validations/tutorial006c_an_py39.py create mode 100644 docs_src/query_params_str_validations/tutorial006c_py310.py create mode 100644 docs_src/query_params_str_validations/tutorial007.py create mode 100644 docs_src/query_params_str_validations/tutorial007_an.py create mode 100644 docs_src/query_params_str_validations/tutorial007_an_py310.py create mode 100644 docs_src/query_params_str_validations/tutorial007_an_py39.py create mode 100644 docs_src/query_params_str_validations/tutorial007_py310.py create mode 100644 docs_src/query_params_str_validations/tutorial008.py create mode 100644 docs_src/query_params_str_validations/tutorial008_an.py create mode 100644 docs_src/query_params_str_validations/tutorial008_an_py310.py create mode 100644 docs_src/query_params_str_validations/tutorial008_an_py39.py create mode 100644 docs_src/query_params_str_validations/tutorial008_py310.py create mode 100644 docs_src/query_params_str_validations/tutorial009.py create mode 100644 docs_src/query_params_str_validations/tutorial009_an.py create mode 100644 docs_src/query_params_str_validations/tutorial009_an_py310.py create mode 100644 docs_src/query_params_str_validations/tutorial009_an_py39.py create mode 100644 docs_src/query_params_str_validations/tutorial009_py310.py create mode 100644 docs_src/query_params_str_validations/tutorial010.py create mode 100644 docs_src/query_params_str_validations/tutorial010_an.py create mode 100644 docs_src/query_params_str_validations/tutorial010_an_py310.py create mode 100644 docs_src/query_params_str_validations/tutorial010_an_py39.py create mode 100644 docs_src/query_params_str_validations/tutorial010_py310.py create mode 100644 docs_src/query_params_str_validations/tutorial011.py create mode 100644 docs_src/query_params_str_validations/tutorial011_an.py create mode 100644 docs_src/query_params_str_validations/tutorial011_an_py310.py create mode 100644 docs_src/query_params_str_validations/tutorial011_an_py39.py create mode 100644 docs_src/query_params_str_validations/tutorial011_py310.py create mode 100644 docs_src/query_params_str_validations/tutorial011_py39.py create mode 100644 docs_src/query_params_str_validations/tutorial012.py create mode 100644 docs_src/query_params_str_validations/tutorial012_an.py create mode 100644 docs_src/query_params_str_validations/tutorial012_an_py39.py create mode 100644 docs_src/query_params_str_validations/tutorial012_py39.py create mode 100644 docs_src/query_params_str_validations/tutorial013.py create mode 100644 docs_src/query_params_str_validations/tutorial013_an.py create mode 100644 docs_src/query_params_str_validations/tutorial013_an_py39.py create mode 100644 docs_src/query_params_str_validations/tutorial014.py create mode 100644 docs_src/query_params_str_validations/tutorial014_an.py create mode 100644 docs_src/query_params_str_validations/tutorial014_an_py310.py create mode 100644 docs_src/query_params_str_validations/tutorial014_an_py39.py create mode 100644 docs_src/query_params_str_validations/tutorial014_py310.py create mode 100644 docs_src/query_params_str_validations/tutorial015_an.py create mode 100644 docs_src/query_params_str_validations/tutorial015_an_py310.py create mode 100644 docs_src/query_params_str_validations/tutorial015_an_py39.py create mode 100644 docs_src/request_files/tutorial001.py create mode 100644 docs_src/request_files/tutorial001_02.py create mode 100644 docs_src/request_files/tutorial001_02_an.py create mode 100644 docs_src/request_files/tutorial001_02_an_py310.py create mode 100644 docs_src/request_files/tutorial001_02_an_py39.py create mode 100644 docs_src/request_files/tutorial001_02_py310.py create mode 100644 docs_src/request_files/tutorial001_03.py create mode 100644 docs_src/request_files/tutorial001_03_an.py create mode 100644 docs_src/request_files/tutorial001_03_an_py39.py create mode 100644 docs_src/request_files/tutorial001_an.py create mode 100644 docs_src/request_files/tutorial001_an_py39.py create mode 100644 docs_src/request_files/tutorial002.py create mode 100644 docs_src/request_files/tutorial002_an.py create mode 100644 docs_src/request_files/tutorial002_an_py39.py create mode 100644 docs_src/request_files/tutorial002_py39.py create mode 100644 docs_src/request_files/tutorial003.py create mode 100644 docs_src/request_files/tutorial003_an.py create mode 100644 docs_src/request_files/tutorial003_an_py39.py create mode 100644 docs_src/request_files/tutorial003_py39.py create mode 100644 docs_src/request_form_models/tutorial001.py create mode 100644 docs_src/request_form_models/tutorial001_an.py create mode 100644 docs_src/request_form_models/tutorial001_an_py39.py create mode 100644 docs_src/request_form_models/tutorial002.py create mode 100644 docs_src/request_form_models/tutorial002_an.py create mode 100644 docs_src/request_form_models/tutorial002_an_py39.py create mode 100644 docs_src/request_form_models/tutorial002_pv1.py create mode 100644 docs_src/request_form_models/tutorial002_pv1_an.py create mode 100644 docs_src/request_form_models/tutorial002_pv1_an_py39.py create mode 100644 docs_src/request_forms/tutorial001.py create mode 100644 docs_src/request_forms/tutorial001_an.py create mode 100644 docs_src/request_forms/tutorial001_an_py39.py create mode 100644 docs_src/request_forms_and_files/tutorial001.py create mode 100644 docs_src/request_forms_and_files/tutorial001_an.py create mode 100644 docs_src/request_forms_and_files/tutorial001_an_py39.py create mode 100644 docs_src/response_change_status_code/tutorial001.py create mode 100644 docs_src/response_cookies/tutorial001.py create mode 100644 docs_src/response_cookies/tutorial002.py create mode 100644 docs_src/response_directly/tutorial001.py create mode 100644 docs_src/response_directly/tutorial002.py create mode 100644 docs_src/response_headers/tutorial001.py create mode 100644 docs_src/response_headers/tutorial002.py create mode 100644 docs_src/response_model/tutorial001.py create mode 100644 docs_src/response_model/tutorial001_01.py create mode 100644 docs_src/response_model/tutorial001_01_py310.py create mode 100644 docs_src/response_model/tutorial001_01_py39.py create mode 100644 docs_src/response_model/tutorial001_py310.py create mode 100644 docs_src/response_model/tutorial001_py39.py create mode 100644 docs_src/response_model/tutorial002.py create mode 100644 docs_src/response_model/tutorial002_py310.py create mode 100644 docs_src/response_model/tutorial003.py create mode 100644 docs_src/response_model/tutorial003_01.py create mode 100644 docs_src/response_model/tutorial003_01_py310.py create mode 100644 docs_src/response_model/tutorial003_02.py create mode 100644 docs_src/response_model/tutorial003_03.py create mode 100644 docs_src/response_model/tutorial003_04.py create mode 100644 docs_src/response_model/tutorial003_04_py310.py create mode 100644 docs_src/response_model/tutorial003_05.py create mode 100644 docs_src/response_model/tutorial003_05_py310.py create mode 100644 docs_src/response_model/tutorial003_py310.py create mode 100644 docs_src/response_model/tutorial004.py create mode 100644 docs_src/response_model/tutorial004_py310.py create mode 100644 docs_src/response_model/tutorial004_py39.py create mode 100644 docs_src/response_model/tutorial005.py create mode 100644 docs_src/response_model/tutorial005_py310.py create mode 100644 docs_src/response_model/tutorial006.py create mode 100644 docs_src/response_model/tutorial006_py310.py create mode 100644 docs_src/response_status_code/tutorial001.py create mode 100644 docs_src/response_status_code/tutorial002.py create mode 100644 docs_src/schema_extra_example/tutorial001.py create mode 100644 docs_src/schema_extra_example/tutorial001_pv1.py create mode 100644 docs_src/schema_extra_example/tutorial001_pv1_py310.py create mode 100644 docs_src/schema_extra_example/tutorial001_py310.py create mode 100644 docs_src/schema_extra_example/tutorial002.py create mode 100644 docs_src/schema_extra_example/tutorial002_py310.py create mode 100644 docs_src/schema_extra_example/tutorial003.py create mode 100644 docs_src/schema_extra_example/tutorial003_an.py create mode 100644 docs_src/schema_extra_example/tutorial003_an_py310.py create mode 100644 docs_src/schema_extra_example/tutorial003_an_py39.py create mode 100644 docs_src/schema_extra_example/tutorial003_py310.py create mode 100644 docs_src/schema_extra_example/tutorial004.py create mode 100644 docs_src/schema_extra_example/tutorial004_an.py create mode 100644 docs_src/schema_extra_example/tutorial004_an_py310.py create mode 100644 docs_src/schema_extra_example/tutorial004_an_py39.py create mode 100644 docs_src/schema_extra_example/tutorial004_py310.py create mode 100644 docs_src/schema_extra_example/tutorial005.py create mode 100644 docs_src/schema_extra_example/tutorial005_an.py create mode 100644 docs_src/schema_extra_example/tutorial005_an_py310.py create mode 100644 docs_src/schema_extra_example/tutorial005_an_py39.py create mode 100644 docs_src/schema_extra_example/tutorial005_py310.py create mode 100644 docs_src/security/tutorial001.py create mode 100644 docs_src/security/tutorial001_an.py create mode 100644 docs_src/security/tutorial001_an_py39.py create mode 100644 docs_src/security/tutorial002.py create mode 100644 docs_src/security/tutorial002_an.py create mode 100644 docs_src/security/tutorial002_an_py310.py create mode 100644 docs_src/security/tutorial002_an_py39.py create mode 100644 docs_src/security/tutorial002_py310.py create mode 100644 docs_src/security/tutorial003.py create mode 100644 docs_src/security/tutorial003_an.py create mode 100644 docs_src/security/tutorial003_an_py310.py create mode 100644 docs_src/security/tutorial003_an_py39.py create mode 100644 docs_src/security/tutorial003_py310.py create mode 100644 docs_src/security/tutorial004.py create mode 100644 docs_src/security/tutorial004_an.py create mode 100644 docs_src/security/tutorial004_an_py310.py create mode 100644 docs_src/security/tutorial004_an_py39.py create mode 100644 docs_src/security/tutorial004_py310.py create mode 100644 docs_src/security/tutorial005.py create mode 100644 docs_src/security/tutorial005_an.py create mode 100644 docs_src/security/tutorial005_an_py310.py create mode 100644 docs_src/security/tutorial005_an_py39.py create mode 100644 docs_src/security/tutorial005_py310.py create mode 100644 docs_src/security/tutorial005_py39.py create mode 100644 docs_src/security/tutorial006.py create mode 100644 docs_src/security/tutorial006_an.py create mode 100644 docs_src/security/tutorial006_an_py39.py create mode 100644 docs_src/security/tutorial007.py create mode 100644 docs_src/security/tutorial007_an.py create mode 100644 docs_src/security/tutorial007_an_py39.py create mode 100644 docs_src/separate_openapi_schemas/tutorial001.py create mode 100644 docs_src/separate_openapi_schemas/tutorial001_py310.py create mode 100644 docs_src/separate_openapi_schemas/tutorial001_py39.py create mode 100644 docs_src/separate_openapi_schemas/tutorial002.py create mode 100644 docs_src/separate_openapi_schemas/tutorial002_py310.py create mode 100644 docs_src/separate_openapi_schemas/tutorial002_py39.py create mode 100644 docs_src/settings/app01/__init__.py create mode 100644 docs_src/settings/app01/config.py create mode 100644 docs_src/settings/app01/main.py create mode 100644 docs_src/settings/app02/__init__.py create mode 100644 docs_src/settings/app02/config.py create mode 100644 docs_src/settings/app02/main.py create mode 100644 docs_src/settings/app02/test_main.py create mode 100644 docs_src/settings/app02_an/__init__.py create mode 100644 docs_src/settings/app02_an/config.py create mode 100644 docs_src/settings/app02_an/main.py create mode 100644 docs_src/settings/app02_an/test_main.py create mode 100644 docs_src/settings/app02_an_py39/__init__.py create mode 100644 docs_src/settings/app02_an_py39/config.py create mode 100644 docs_src/settings/app02_an_py39/main.py create mode 100644 docs_src/settings/app02_an_py39/test_main.py create mode 100644 docs_src/settings/app03/__init__.py create mode 100644 docs_src/settings/app03/config.py create mode 100644 docs_src/settings/app03/main.py create mode 100644 docs_src/settings/app03_an/__init__.py create mode 100644 docs_src/settings/app03_an/config.py create mode 100644 docs_src/settings/app03_an/config_pv1.py create mode 100644 docs_src/settings/app03_an/main.py create mode 100644 docs_src/settings/app03_an_py39/__init__.py create mode 100644 docs_src/settings/app03_an_py39/config.py create mode 100644 docs_src/settings/app03_an_py39/main.py create mode 100644 docs_src/settings/tutorial001.py create mode 100644 docs_src/settings/tutorial001_pv1.py create mode 100644 docs_src/sql_databases/__init__.py create mode 100644 docs_src/sql_databases/tutorial001.py create mode 100644 docs_src/sql_databases/tutorial001_an.py create mode 100644 docs_src/sql_databases/tutorial001_an_py310.py create mode 100644 docs_src/sql_databases/tutorial001_an_py39.py create mode 100644 docs_src/sql_databases/tutorial001_py310.py create mode 100644 docs_src/sql_databases/tutorial001_py39.py create mode 100644 docs_src/sql_databases/tutorial002.py create mode 100644 docs_src/sql_databases/tutorial002_an.py create mode 100644 docs_src/sql_databases/tutorial002_an_py310.py create mode 100644 docs_src/sql_databases/tutorial002_an_py39.py create mode 100644 docs_src/sql_databases/tutorial002_py310.py create mode 100644 docs_src/sql_databases/tutorial002_py39.py create mode 100644 docs_src/static_files/tutorial001.py create mode 100644 docs_src/sub_applications/tutorial001.py create mode 100644 docs_src/templates/static/styles.css create mode 100644 docs_src/templates/templates/item.html create mode 100644 docs_src/templates/tutorial001.py create mode 100644 docs_src/using_request_directly/tutorial001.py create mode 100644 docs_src/websockets/__init__.py create mode 100644 docs_src/websockets/tutorial001.py create mode 100644 docs_src/websockets/tutorial002.py create mode 100644 docs_src/websockets/tutorial002_an.py create mode 100644 docs_src/websockets/tutorial002_an_py310.py create mode 100644 docs_src/websockets/tutorial002_an_py39.py create mode 100644 docs_src/websockets/tutorial002_py310.py create mode 100644 docs_src/websockets/tutorial003.py create mode 100644 docs_src/websockets/tutorial003_py39.py create mode 100644 docs_src/wsgi/tutorial001.py create mode 100644 fastapi/__init__.py create mode 100644 fastapi/__main__.py create mode 100644 fastapi/_compat/__init__.py create mode 100644 fastapi/_compat/main.py create mode 100644 fastapi/_compat/may_v1.py create mode 100644 fastapi/_compat/model_field.py create mode 100644 fastapi/_compat/shared.py create mode 100644 fastapi/_compat/v1.py create mode 100644 fastapi/_compat/v2.py create mode 100644 fastapi/applications.py create mode 100644 fastapi/background.py create mode 100644 fastapi/cli.py create mode 100644 fastapi/concurrency.py create mode 100644 fastapi/datastructures.py create mode 100644 fastapi/dependencies/__init__.py create mode 100644 fastapi/dependencies/models.py create mode 100644 fastapi/dependencies/utils.py create mode 100644 fastapi/encoders.py create mode 100644 fastapi/exception_handlers.py create mode 100644 fastapi/exceptions.py create mode 100644 fastapi/logger.py create mode 100644 fastapi/middleware/__init__.py create mode 100644 fastapi/middleware/asyncexitstack.py create mode 100644 fastapi/middleware/cors.py create mode 100644 fastapi/middleware/gzip.py create mode 100644 fastapi/middleware/httpsredirect.py create mode 100644 fastapi/middleware/trustedhost.py create mode 100644 fastapi/middleware/wsgi.py create mode 100644 fastapi/openapi/__init__.py create mode 100644 fastapi/openapi/constants.py create mode 100644 fastapi/openapi/docs.py create mode 100644 fastapi/openapi/models.py create mode 100644 fastapi/openapi/utils.py create mode 100644 fastapi/param_functions.py create mode 100644 fastapi/params.py create mode 100644 fastapi/py.typed create mode 100644 fastapi/requests.py create mode 100644 fastapi/responses.py create mode 100644 fastapi/routing.py create mode 100644 fastapi/security/__init__.py create mode 100644 fastapi/security/api_key.py create mode 100644 fastapi/security/base.py create mode 100644 fastapi/security/http.py create mode 100644 fastapi/security/oauth2.py create mode 100644 fastapi/security/open_id_connect_url.py create mode 100644 fastapi/security/utils.py create mode 100644 fastapi/staticfiles.py create mode 100644 fastapi/temp_pydantic_v1_params.py create mode 100644 fastapi/templating.py create mode 100644 fastapi/testclient.py create mode 100644 fastapi/types.py create mode 100644 fastapi/utils.py create mode 100644 fastapi/websockets.py create mode 100644 pdm_build.py create mode 100644 pyproject.toml create mode 100644 requirements-docs-tests.txt create mode 100644 requirements-docs.txt create mode 100644 requirements-github-actions.txt create mode 100644 requirements-tests.txt create mode 100644 requirements-translations.txt create mode 100644 requirements.txt create mode 100644 scripts/contributors.py create mode 100755 scripts/coverage.sh create mode 100644 scripts/deploy_docs_status.py create mode 100644 scripts/docs.py create mode 100755 scripts/format.sh create mode 100644 scripts/label_approved.py create mode 100755 scripts/lint.sh create mode 100644 scripts/mkdocs_hooks.py create mode 100644 scripts/notify_translations.py create mode 100644 scripts/people.py create mode 100644 scripts/playwright/cookie_param_models/image01.py create mode 100644 scripts/playwright/header_param_models/image01.py create mode 100644 scripts/playwright/query_param_models/image01.py create mode 100644 scripts/playwright/request_form_models/image01.py create mode 100644 scripts/playwright/separate_openapi_schemas/image01.py create mode 100644 scripts/playwright/separate_openapi_schemas/image02.py create mode 100644 scripts/playwright/separate_openapi_schemas/image03.py create mode 100644 scripts/playwright/separate_openapi_schemas/image04.py create mode 100644 scripts/playwright/separate_openapi_schemas/image05.py create mode 100644 scripts/playwright/sql_databases/image01.py create mode 100644 scripts/playwright/sql_databases/image02.py create mode 100644 scripts/sponsors.py create mode 100755 scripts/test-cov-html.sh create mode 100755 scripts/test.sh create mode 100644 scripts/topic_repos.py create mode 100644 scripts/translate.py create mode 100644 tests/__init__.py create mode 100644 tests/forward_reference_type.py create mode 100644 tests/main.py create mode 100644 tests/test_additional_properties.py create mode 100644 tests/test_additional_properties_bool.py create mode 100644 tests/test_additional_response_extra.py create mode 100644 tests/test_additional_responses_bad.py create mode 100644 tests/test_additional_responses_custom_model_in_callback.py create mode 100644 tests/test_additional_responses_custom_validationerror.py create mode 100644 tests/test_additional_responses_default_validationerror.py create mode 100644 tests/test_additional_responses_response_class.py create mode 100644 tests/test_additional_responses_router.py create mode 100644 tests/test_allow_inf_nan_in_enforcing.py create mode 100644 tests/test_ambiguous_params.py create mode 100644 tests/test_annotated.py create mode 100644 tests/test_application.py create mode 100644 tests/test_callable_endpoint.py create mode 100644 tests/test_compat.py create mode 100644 tests/test_compat_params_v1.py create mode 100644 tests/test_computed_fields.py create mode 100644 tests/test_custom_middleware_exception.py create mode 100644 tests/test_custom_route_class.py create mode 100644 tests/test_custom_schema_fields.py create mode 100644 tests/test_custom_swagger_ui_redirect.py create mode 100644 tests/test_datastructures.py create mode 100644 tests/test_datetime_custom_encoder.py create mode 100644 tests/test_default_response_class.py create mode 100644 tests/test_default_response_class_router.py create mode 100644 tests/test_dependency_after_yield_raise.py create mode 100644 tests/test_dependency_after_yield_streaming.py create mode 100644 tests/test_dependency_after_yield_websockets.py create mode 100644 tests/test_dependency_cache.py create mode 100644 tests/test_dependency_class.py create mode 100644 tests/test_dependency_contextmanager.py create mode 100644 tests/test_dependency_contextvars.py create mode 100644 tests/test_dependency_duplicates.py create mode 100644 tests/test_dependency_overrides.py create mode 100644 tests/test_dependency_paramless.py create mode 100644 tests/test_dependency_partial.py create mode 100644 tests/test_dependency_security_overrides.py create mode 100644 tests/test_dependency_wrapped.py create mode 100644 tests/test_dependency_yield_except_httpexception.py create mode 100644 tests/test_dependency_yield_scope.py create mode 100644 tests/test_dependency_yield_scope_websockets.py create mode 100644 tests/test_depends_hashable.py create mode 100644 tests/test_deprecated_openapi_prefix.py create mode 100644 tests/test_duplicate_models_openapi.py create mode 100644 tests/test_empty_router.py create mode 100644 tests/test_enforce_once_required_parameter.py create mode 100644 tests/test_exception_handlers.py create mode 100644 tests/test_extra_routes.py create mode 100644 tests/test_fastapi_cli.py create mode 100644 tests/test_file_and_form_order_issue_9116.py create mode 100644 tests/test_filter_pydantic_sub_model/__init__.py create mode 100644 tests/test_filter_pydantic_sub_model/app_pv1.py create mode 100644 tests/test_filter_pydantic_sub_model/test_filter_pydantic_sub_model_pv1.py create mode 100644 tests/test_filter_pydantic_sub_model_pv2.py create mode 100644 tests/test_form_default.py create mode 100644 tests/test_forms_from_non_typing_sequences.py create mode 100644 tests/test_forms_single_model.py create mode 100644 tests/test_forms_single_param.py create mode 100644 tests/test_generate_unique_id_function.py create mode 100644 tests/test_generic_parameterless_depends.py create mode 100644 tests/test_get_model_definitions_formfeed_escape.py create mode 100644 tests/test_get_request_body.py create mode 100644 tests/test_http_connection_injection.py create mode 100644 tests/test_include_route.py create mode 100644 tests/test_include_router_defaults_overrides.py create mode 100644 tests/test_infer_param_optionality.py create mode 100644 tests/test_inherited_custom_class.py create mode 100644 tests/test_invalid_path_param.py create mode 100644 tests/test_invalid_sequence_param.py create mode 100644 tests/test_jsonable_encoder.py create mode 100644 tests/test_local_docs.py create mode 100644 tests/test_modules_same_name_body/__init__.py create mode 100644 tests/test_modules_same_name_body/app/__init__.py create mode 100644 tests/test_modules_same_name_body/app/a.py create mode 100644 tests/test_modules_same_name_body/app/b.py create mode 100644 tests/test_modules_same_name_body/app/main.py create mode 100644 tests/test_modules_same_name_body/test_main.py create mode 100644 tests/test_multi_body_errors.py create mode 100644 tests/test_multi_query_errors.py create mode 100644 tests/test_multipart_installation.py create mode 100644 tests/test_no_schema_split.py create mode 100644 tests/test_no_swagger_ui_redirect.py create mode 100644 tests/test_openapi_examples.py create mode 100644 tests/test_openapi_model_description_trim_on_formfeed.py create mode 100644 tests/test_openapi_query_parameter_extension.py create mode 100644 tests/test_openapi_route_extensions.py create mode 100644 tests/test_openapi_schema_type.py create mode 100644 tests/test_openapi_separate_input_output_schemas.py create mode 100644 tests/test_openapi_servers.py create mode 100644 tests/test_operations_signatures.py create mode 100644 tests/test_optional_file_list.py create mode 100644 tests/test_orjson_response_class.py create mode 100644 tests/test_param_class.py create mode 100644 tests/test_param_in_path_and_dependency.py create mode 100644 tests/test_param_include_in_schema.py create mode 100644 tests/test_params_repr.py create mode 100644 tests/test_path.py create mode 100644 tests/test_put_no_body.py create mode 100644 tests/test_pydantic_v1_v2_01.py create mode 100644 tests/test_pydantic_v1_v2_list.py create mode 100644 tests/test_pydantic_v1_v2_mixed.py create mode 100644 tests/test_pydantic_v1_v2_multifile/__init__.py create mode 100644 tests/test_pydantic_v1_v2_multifile/main.py create mode 100644 tests/test_pydantic_v1_v2_multifile/modelsv1.py create mode 100644 tests/test_pydantic_v1_v2_multifile/modelsv2.py create mode 100644 tests/test_pydantic_v1_v2_multifile/modelsv2b.py create mode 100644 tests/test_pydantic_v1_v2_multifile/test_multifile.py create mode 100644 tests/test_pydantic_v1_v2_noneable.py create mode 100644 tests/test_query.py create mode 100644 tests/test_query_cookie_header_model_extra_params.py create mode 100644 tests/test_read_with_orm_mode.py create mode 100644 tests/test_regex_deprecated_body.py create mode 100644 tests/test_regex_deprecated_params.py create mode 100644 tests/test_repeated_cookie_headers.py create mode 100644 tests/test_repeated_dependency_schema.py create mode 100644 tests/test_repeated_parameter_alias.py create mode 100644 tests/test_reponse_set_reponse_code_empty.py create mode 100644 tests/test_request_body_parameters_media_type.py create mode 100644 tests/test_request_param_model_by_alias.py create mode 100644 tests/test_required_noneable.py create mode 100644 tests/test_response_by_alias.py create mode 100644 tests/test_response_change_status_code.py create mode 100644 tests/test_response_class_no_mediatype.py create mode 100644 tests/test_response_code_no_body.py create mode 100644 tests/test_response_model_as_return_annotation.py create mode 100644 tests/test_response_model_data_filter.py create mode 100644 tests/test_response_model_data_filter_no_inheritance.py create mode 100644 tests/test_response_model_default_factory.py create mode 100644 tests/test_response_model_include_exclude.py create mode 100644 tests/test_response_model_invalid.py create mode 100644 tests/test_response_model_sub_types.py create mode 100644 tests/test_return_none_stringified_annotations.py create mode 100644 tests/test_route_scope.py create mode 100644 tests/test_router_events.py create mode 100644 tests/test_router_prefix_with_template.py create mode 100644 tests/test_router_redirect_slashes.py create mode 100644 tests/test_schema_compat_pydantic_v2.py create mode 100644 tests/test_schema_extra_examples.py create mode 100644 tests/test_schema_ref_pydantic_v2.py create mode 100644 tests/test_security_api_key_cookie.py create mode 100644 tests/test_security_api_key_cookie_description.py create mode 100644 tests/test_security_api_key_cookie_optional.py create mode 100644 tests/test_security_api_key_header.py create mode 100644 tests/test_security_api_key_header_description.py create mode 100644 tests/test_security_api_key_header_optional.py create mode 100644 tests/test_security_api_key_query.py create mode 100644 tests/test_security_api_key_query_description.py create mode 100644 tests/test_security_api_key_query_optional.py create mode 100644 tests/test_security_http_base.py create mode 100644 tests/test_security_http_base_description.py create mode 100644 tests/test_security_http_base_optional.py create mode 100644 tests/test_security_http_basic_optional.py create mode 100644 tests/test_security_http_basic_realm.py create mode 100644 tests/test_security_http_basic_realm_description.py create mode 100644 tests/test_security_http_bearer.py create mode 100644 tests/test_security_http_bearer_description.py create mode 100644 tests/test_security_http_bearer_optional.py create mode 100644 tests/test_security_http_digest.py create mode 100644 tests/test_security_http_digest_description.py create mode 100644 tests/test_security_http_digest_optional.py create mode 100644 tests/test_security_oauth2.py create mode 100644 tests/test_security_oauth2_authorization_code_bearer.py create mode 100644 tests/test_security_oauth2_authorization_code_bearer_description.py create mode 100644 tests/test_security_oauth2_authorization_code_bearer_scopes_openapi.py create mode 100644 tests/test_security_oauth2_authorization_code_bearer_scopes_openapi_simple.py create mode 100644 tests/test_security_oauth2_optional.py create mode 100644 tests/test_security_oauth2_optional_description.py create mode 100644 tests/test_security_oauth2_password_bearer_optional.py create mode 100644 tests/test_security_oauth2_password_bearer_optional_description.py create mode 100644 tests/test_security_openid_connect.py create mode 100644 tests/test_security_openid_connect_description.py create mode 100644 tests/test_security_openid_connect_optional.py create mode 100644 tests/test_security_scopes.py create mode 100644 tests/test_security_scopes_dont_propagate.py create mode 100644 tests/test_security_scopes_sub_dependency.py create mode 100644 tests/test_serialize_response.py create mode 100644 tests/test_serialize_response_dataclass.py create mode 100644 tests/test_serialize_response_model.py create mode 100644 tests/test_skip_defaults.py create mode 100644 tests/test_starlette_exception.py create mode 100644 tests/test_starlette_urlconvertors.py create mode 100644 tests/test_stringified_annotations_simple.py create mode 100644 tests/test_sub_callbacks.py create mode 100644 tests/test_swagger_ui_init_oauth.py create mode 100644 tests/test_top_level_security_scheme_in_openapi.py create mode 100644 tests/test_tuples.py create mode 100644 tests/test_tutorial/__init__.py create mode 100644 tests/test_tutorial/test_additional_responses/__init__.py create mode 100644 tests/test_tutorial/test_additional_responses/test_tutorial001.py create mode 100644 tests/test_tutorial/test_additional_responses/test_tutorial002.py create mode 100644 tests/test_tutorial/test_additional_responses/test_tutorial003.py create mode 100644 tests/test_tutorial/test_additional_responses/test_tutorial004.py create mode 100644 tests/test_tutorial/test_additional_status_codes/__init__.py create mode 100644 tests/test_tutorial/test_additional_status_codes/test_tutorial001.py create mode 100644 tests/test_tutorial/test_advanced_middleware/__init__.py create mode 100644 tests/test_tutorial/test_advanced_middleware/test_tutorial001.py create mode 100644 tests/test_tutorial/test_advanced_middleware/test_tutorial002.py create mode 100644 tests/test_tutorial/test_advanced_middleware/test_tutorial003.py create mode 100644 tests/test_tutorial/test_async_tests/__init__.py create mode 100644 tests/test_tutorial/test_async_tests/test_main.py create mode 100644 tests/test_tutorial/test_authentication_error_status_code/__init__.py create mode 100644 tests/test_tutorial/test_authentication_error_status_code/test_tutorial001.py create mode 100644 tests/test_tutorial/test_background_tasks/__init__.py create mode 100644 tests/test_tutorial/test_background_tasks/test_tutorial001.py create mode 100644 tests/test_tutorial/test_background_tasks/test_tutorial002.py create mode 100644 tests/test_tutorial/test_behind_a_proxy/__init__.py create mode 100644 tests/test_tutorial/test_behind_a_proxy/test_tutorial001.py create mode 100644 tests/test_tutorial/test_behind_a_proxy/test_tutorial001_01.py create mode 100644 tests/test_tutorial/test_behind_a_proxy/test_tutorial002.py create mode 100644 tests/test_tutorial/test_behind_a_proxy/test_tutorial003.py create mode 100644 tests/test_tutorial/test_behind_a_proxy/test_tutorial004.py create mode 100644 tests/test_tutorial/test_bigger_applications/__init__.py create mode 100644 tests/test_tutorial/test_bigger_applications/test_main.py create mode 100644 tests/test_tutorial/test_body/__init__.py create mode 100644 tests/test_tutorial/test_body/test_tutorial001.py create mode 100644 tests/test_tutorial/test_body_fields/__init__.py create mode 100644 tests/test_tutorial/test_body_fields/test_tutorial001.py create mode 100644 tests/test_tutorial/test_body_multiple_params/__init__.py create mode 100644 tests/test_tutorial/test_body_multiple_params/test_tutorial001.py create mode 100644 tests/test_tutorial/test_body_multiple_params/test_tutorial003.py create mode 100644 tests/test_tutorial/test_body_nested_models/__init__.py create mode 100644 tests/test_tutorial/test_body_nested_models/test_tutorial009.py create mode 100644 tests/test_tutorial/test_body_updates/__init__.py create mode 100644 tests/test_tutorial/test_body_updates/test_tutorial001.py create mode 100644 tests/test_tutorial/test_conditional_openapi/__init__.py create mode 100644 tests/test_tutorial/test_conditional_openapi/test_tutorial001.py create mode 100644 tests/test_tutorial/test_configure_swagger_ui/__init__.py create mode 100644 tests/test_tutorial/test_configure_swagger_ui/test_tutorial001.py create mode 100644 tests/test_tutorial/test_configure_swagger_ui/test_tutorial002.py create mode 100644 tests/test_tutorial/test_configure_swagger_ui/test_tutorial003.py create mode 100644 tests/test_tutorial/test_cookie_param_models/__init__.py create mode 100644 tests/test_tutorial/test_cookie_param_models/test_tutorial001.py create mode 100644 tests/test_tutorial/test_cookie_param_models/test_tutorial002.py create mode 100644 tests/test_tutorial/test_cookie_params/__init__.py create mode 100644 tests/test_tutorial/test_cookie_params/test_tutorial001.py create mode 100644 tests/test_tutorial/test_cors/__init__.py create mode 100644 tests/test_tutorial/test_cors/test_tutorial001.py create mode 100644 tests/test_tutorial/test_custom_docs_ui/__init__.py create mode 100644 tests/test_tutorial/test_custom_docs_ui/test_tutorial001.py create mode 100644 tests/test_tutorial/test_custom_docs_ui/test_tutorial002.py create mode 100644 tests/test_tutorial/test_custom_request_and_route/__init__.py create mode 100644 tests/test_tutorial/test_custom_request_and_route/test_tutorial001.py create mode 100644 tests/test_tutorial/test_custom_request_and_route/test_tutorial002.py create mode 100644 tests/test_tutorial/test_custom_request_and_route/test_tutorial003.py create mode 100644 tests/test_tutorial/test_custom_response/__init__.py create mode 100644 tests/test_tutorial/test_custom_response/test_tutorial001.py create mode 100644 tests/test_tutorial/test_custom_response/test_tutorial001b.py create mode 100644 tests/test_tutorial/test_custom_response/test_tutorial004.py create mode 100644 tests/test_tutorial/test_custom_response/test_tutorial005.py create mode 100644 tests/test_tutorial/test_custom_response/test_tutorial006.py create mode 100644 tests/test_tutorial/test_custom_response/test_tutorial006b.py create mode 100644 tests/test_tutorial/test_custom_response/test_tutorial006c.py create mode 100644 tests/test_tutorial/test_custom_response/test_tutorial007.py create mode 100644 tests/test_tutorial/test_custom_response/test_tutorial008.py create mode 100644 tests/test_tutorial/test_custom_response/test_tutorial009.py create mode 100644 tests/test_tutorial/test_custom_response/test_tutorial009b.py create mode 100644 tests/test_tutorial/test_custom_response/test_tutorial009c.py create mode 100644 tests/test_tutorial/test_dataclasses/__init__.py create mode 100644 tests/test_tutorial/test_dataclasses/test_tutorial001.py create mode 100644 tests/test_tutorial/test_dataclasses/test_tutorial002.py create mode 100644 tests/test_tutorial/test_dataclasses/test_tutorial003.py create mode 100644 tests/test_tutorial/test_dependencies/__init__.py create mode 100644 tests/test_tutorial/test_dependencies/test_tutorial001.py create mode 100644 tests/test_tutorial/test_dependencies/test_tutorial004.py create mode 100644 tests/test_tutorial/test_dependencies/test_tutorial006.py create mode 100644 tests/test_tutorial/test_dependencies/test_tutorial008b.py create mode 100644 tests/test_tutorial/test_dependencies/test_tutorial008c.py create mode 100644 tests/test_tutorial/test_dependencies/test_tutorial008d.py create mode 100644 tests/test_tutorial/test_dependencies/test_tutorial008e.py create mode 100644 tests/test_tutorial/test_dependencies/test_tutorial012.py create mode 100644 tests/test_tutorial/test_events/__init__.py create mode 100644 tests/test_tutorial/test_events/test_tutorial001.py create mode 100644 tests/test_tutorial/test_events/test_tutorial002.py create mode 100644 tests/test_tutorial/test_events/test_tutorial003.py create mode 100644 tests/test_tutorial/test_extending_openapi/__init__.py create mode 100644 tests/test_tutorial/test_extending_openapi/test_tutorial001.py create mode 100644 tests/test_tutorial/test_extra_data_types/__init__.py create mode 100644 tests/test_tutorial/test_extra_data_types/test_tutorial001.py create mode 100644 tests/test_tutorial/test_extra_models/__init__.py create mode 100644 tests/test_tutorial/test_extra_models/test_tutorial003.py create mode 100644 tests/test_tutorial/test_extra_models/test_tutorial004.py create mode 100644 tests/test_tutorial/test_extra_models/test_tutorial005.py create mode 100644 tests/test_tutorial/test_first_steps/__init__.py create mode 100644 tests/test_tutorial/test_first_steps/test_tutorial001.py create mode 100644 tests/test_tutorial/test_generate_clients/__init__.py create mode 100644 tests/test_tutorial/test_generate_clients/test_tutorial003.py create mode 100644 tests/test_tutorial/test_handling_errors/__init__.py create mode 100644 tests/test_tutorial/test_handling_errors/test_tutorial001.py create mode 100644 tests/test_tutorial/test_handling_errors/test_tutorial002.py create mode 100644 tests/test_tutorial/test_handling_errors/test_tutorial003.py create mode 100644 tests/test_tutorial/test_handling_errors/test_tutorial004.py create mode 100644 tests/test_tutorial/test_handling_errors/test_tutorial005.py create mode 100644 tests/test_tutorial/test_handling_errors/test_tutorial006.py create mode 100644 tests/test_tutorial/test_header_param_models/__init__.py create mode 100644 tests/test_tutorial/test_header_param_models/test_tutorial001.py create mode 100644 tests/test_tutorial/test_header_param_models/test_tutorial002.py create mode 100644 tests/test_tutorial/test_header_param_models/test_tutorial003.py create mode 100644 tests/test_tutorial/test_header_params/__init__.py create mode 100644 tests/test_tutorial/test_header_params/test_tutorial001.py create mode 100644 tests/test_tutorial/test_header_params/test_tutorial002.py create mode 100644 tests/test_tutorial/test_header_params/test_tutorial003.py create mode 100644 tests/test_tutorial/test_metadata/__init__.py create mode 100644 tests/test_tutorial/test_metadata/test_tutorial001.py create mode 100644 tests/test_tutorial/test_metadata/test_tutorial001_1.py create mode 100644 tests/test_tutorial/test_metadata/test_tutorial004.py create mode 100644 tests/test_tutorial/test_openapi_callbacks/__init__.py create mode 100644 tests/test_tutorial/test_openapi_callbacks/test_tutorial001.py create mode 100644 tests/test_tutorial/test_openapi_webhooks/__init__.py create mode 100644 tests/test_tutorial/test_openapi_webhooks/test_tutorial001.py create mode 100644 tests/test_tutorial/test_path_operation_advanced_configurations/__init__.py create mode 100644 tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial001.py create mode 100644 tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial002.py create mode 100644 tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial003.py create mode 100644 tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial004.py create mode 100644 tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial005.py create mode 100644 tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial006.py create mode 100644 tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial007.py create mode 100644 tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial007_pv1.py create mode 100644 tests/test_tutorial/test_path_operation_configurations/__init__.py create mode 100644 tests/test_tutorial/test_path_operation_configurations/test_tutorial002b.py create mode 100644 tests/test_tutorial/test_path_operation_configurations/test_tutorial005.py create mode 100644 tests/test_tutorial/test_path_operation_configurations/test_tutorial006.py create mode 100644 tests/test_tutorial/test_path_params/__init__.py create mode 100644 tests/test_tutorial/test_path_params/test_tutorial004.py create mode 100644 tests/test_tutorial/test_path_params/test_tutorial005.py create mode 100644 tests/test_tutorial/test_pydantic_v1_in_v2/__init__.py create mode 100644 tests/test_tutorial/test_pydantic_v1_in_v2/test_tutorial001.py create mode 100644 tests/test_tutorial/test_pydantic_v1_in_v2/test_tutorial002.py create mode 100644 tests/test_tutorial/test_pydantic_v1_in_v2/test_tutorial003.py create mode 100644 tests/test_tutorial/test_pydantic_v1_in_v2/test_tutorial004.py create mode 100644 tests/test_tutorial/test_query_param_models/__init__.py create mode 100644 tests/test_tutorial/test_query_param_models/test_tutorial001.py create mode 100644 tests/test_tutorial/test_query_param_models/test_tutorial002.py create mode 100644 tests/test_tutorial/test_query_params/__init__.py create mode 100644 tests/test_tutorial/test_query_params/test_tutorial005.py create mode 100644 tests/test_tutorial/test_query_params/test_tutorial006.py create mode 100644 tests/test_tutorial/test_query_params_str_validations/__init__.py create mode 100644 tests/test_tutorial/test_query_params_str_validations/test_tutorial010.py create mode 100644 tests/test_tutorial/test_query_params_str_validations/test_tutorial011.py create mode 100644 tests/test_tutorial/test_query_params_str_validations/test_tutorial012.py create mode 100644 tests/test_tutorial/test_query_params_str_validations/test_tutorial013.py create mode 100644 tests/test_tutorial/test_query_params_str_validations/test_tutorial014.py create mode 100644 tests/test_tutorial/test_query_params_str_validations/test_tutorial015.py create mode 100644 tests/test_tutorial/test_request_files/__init__.py create mode 100644 tests/test_tutorial/test_request_files/test_tutorial001.py create mode 100644 tests/test_tutorial/test_request_files/test_tutorial001_02.py create mode 100644 tests/test_tutorial/test_request_files/test_tutorial001_03.py create mode 100644 tests/test_tutorial/test_request_files/test_tutorial002.py create mode 100644 tests/test_tutorial/test_request_files/test_tutorial003.py create mode 100644 tests/test_tutorial/test_request_form_models/__init__.py create mode 100644 tests/test_tutorial/test_request_form_models/test_tutorial001.py create mode 100644 tests/test_tutorial/test_request_form_models/test_tutorial002.py create mode 100644 tests/test_tutorial/test_request_form_models/test_tutorial002_pv1.py create mode 100644 tests/test_tutorial/test_request_forms/__init__.py create mode 100644 tests/test_tutorial/test_request_forms/test_tutorial001.py create mode 100644 tests/test_tutorial/test_request_forms_and_files/__init__.py create mode 100644 tests/test_tutorial/test_request_forms_and_files/test_tutorial001.py create mode 100644 tests/test_tutorial/test_response_change_status_code/__init__.py create mode 100644 tests/test_tutorial/test_response_change_status_code/test_tutorial001.py create mode 100644 tests/test_tutorial/test_response_cookies/__init__.py create mode 100644 tests/test_tutorial/test_response_cookies/test_tutorial001.py create mode 100644 tests/test_tutorial/test_response_cookies/test_tutorial002.py create mode 100644 tests/test_tutorial/test_response_headers/__init__.py create mode 100644 tests/test_tutorial/test_response_headers/test_tutorial001.py create mode 100644 tests/test_tutorial/test_response_headers/test_tutorial002.py create mode 100644 tests/test_tutorial/test_response_model/__init__.py create mode 100644 tests/test_tutorial/test_response_model/test_tutorial003.py create mode 100644 tests/test_tutorial/test_response_model/test_tutorial003_01.py create mode 100644 tests/test_tutorial/test_response_model/test_tutorial003_02.py create mode 100644 tests/test_tutorial/test_response_model/test_tutorial003_03.py create mode 100644 tests/test_tutorial/test_response_model/test_tutorial003_04.py create mode 100644 tests/test_tutorial/test_response_model/test_tutorial003_05.py create mode 100644 tests/test_tutorial/test_response_model/test_tutorial004.py create mode 100644 tests/test_tutorial/test_response_model/test_tutorial005.py create mode 100644 tests/test_tutorial/test_response_model/test_tutorial006.py create mode 100644 tests/test_tutorial/test_schema_extra_example/__init__.py create mode 100644 tests/test_tutorial/test_schema_extra_example/test_tutorial001.py create mode 100644 tests/test_tutorial/test_schema_extra_example/test_tutorial001_pv1.py create mode 100644 tests/test_tutorial/test_schema_extra_example/test_tutorial004.py create mode 100644 tests/test_tutorial/test_schema_extra_example/test_tutorial005.py create mode 100644 tests/test_tutorial/test_security/__init__.py create mode 100644 tests/test_tutorial/test_security/test_tutorial001.py create mode 100644 tests/test_tutorial/test_security/test_tutorial003.py create mode 100644 tests/test_tutorial/test_security/test_tutorial005.py create mode 100644 tests/test_tutorial/test_security/test_tutorial006.py create mode 100644 tests/test_tutorial/test_separate_openapi_schemas/__init__.py create mode 100644 tests/test_tutorial/test_separate_openapi_schemas/test_tutorial001.py create mode 100644 tests/test_tutorial/test_separate_openapi_schemas/test_tutorial002.py create mode 100644 tests/test_tutorial/test_settings/__init__.py create mode 100644 tests/test_tutorial/test_settings/test_app02.py create mode 100644 tests/test_tutorial/test_settings/test_tutorial001.py create mode 100644 tests/test_tutorial/test_sql_databases/__init__.py create mode 100644 tests/test_tutorial/test_sql_databases/test_tutorial001.py create mode 100644 tests/test_tutorial/test_sql_databases/test_tutorial002.py create mode 100644 tests/test_tutorial/test_sub_applications/__init__.py create mode 100644 tests/test_tutorial/test_sub_applications/test_tutorial001.py create mode 100644 tests/test_tutorial/test_templates/__init__.py create mode 100644 tests/test_tutorial/test_templates/test_tutorial001.py create mode 100644 tests/test_tutorial/test_testing/__init__.py create mode 100644 tests/test_tutorial/test_testing/test_main.py create mode 100644 tests/test_tutorial/test_testing/test_main_b.py create mode 100644 tests/test_tutorial/test_testing/test_tutorial001.py create mode 100644 tests/test_tutorial/test_testing/test_tutorial002.py create mode 100644 tests/test_tutorial/test_testing/test_tutorial003.py create mode 100644 tests/test_tutorial/test_testing/test_tutorial004.py create mode 100644 tests/test_tutorial/test_testing_dependencies/__init__.py create mode 100644 tests/test_tutorial/test_testing_dependencies/test_tutorial001.py create mode 100644 tests/test_tutorial/test_websockets/__init__.py create mode 100644 tests/test_tutorial/test_websockets/test_tutorial001.py create mode 100644 tests/test_tutorial/test_websockets/test_tutorial002.py create mode 100644 tests/test_tutorial/test_websockets/test_tutorial003.py create mode 100644 tests/test_tutorial/test_websockets/test_tutorial003_py39.py create mode 100644 tests/test_tutorial/test_wsgi/__init__.py create mode 100644 tests/test_tutorial/test_wsgi/test_tutorial001.py create mode 100644 tests/test_typing_python39.py create mode 100644 tests/test_union_body.py create mode 100644 tests/test_union_body_discriminator.py create mode 100644 tests/test_union_forms.py create mode 100644 tests/test_union_inherited_body.py create mode 100644 tests/test_validate_response.py create mode 100644 tests/test_validate_response_dataclass.py create mode 100644 tests/test_validate_response_recursive/__init__.py create mode 100644 tests/test_validate_response_recursive/app.py create mode 100644 tests/test_validate_response_recursive/test_validate_response_recursive.py create mode 100644 tests/test_validation_error_context.py create mode 100644 tests/test_webhooks_security.py create mode 100644 tests/test_wrapped_method_forward_reference.py create mode 100644 tests/test_ws_dependencies.py create mode 100644 tests/test_ws_router.py create mode 100644 tests/utils.py diff --git a/.SYNC_INFO.md b/.SYNC_INFO.md new file mode 100644 index 0000000..dd0377f --- /dev/null +++ b/.SYNC_INFO.md @@ -0,0 +1,14 @@ +# Sync Information + +This is a mirror of the Fastapi repository. + +**Synced from:** https://github.com/tiangolo/fastapi.git +**Branch:** master +**Commit:** b5ca13249e3f2002c70c3f2de528a128af2008f7 +**Sync Date:** 2025-12-07 +**Content:** Complete repository mirror + +--- + +This repository is automatically synced monthly by The Scheduler. +For the latest updates, visit the official repository. diff --git a/.github/DISCUSSION_TEMPLATE/questions.yml b/.github/DISCUSSION_TEMPLATE/questions.yml new file mode 100644 index 0000000..98424a3 --- /dev/null +++ b/.github/DISCUSSION_TEMPLATE/questions.yml @@ -0,0 +1,158 @@ +labels: [question] +body: + - type: markdown + attributes: + value: | + Thanks for your interest in FastAPI! 🚀 + + Please follow these instructions, fill every question, and do every step. 🙏 + + I'm asking this because answering questions and solving problems in GitHub is what consumes most of the time. + + I end up not being able to add new features, fix bugs, review pull requests, etc. as fast as I wish because I have to spend too much time handling questions. + + All that, on top of all the incredible help provided by a bunch of community members, the [FastAPI Experts](https://fastapi.tiangolo.com/fastapi-people/#experts), that give a lot of their time to come here and help others. + + That's a lot of work they are doing, but if more FastAPI users came to help others like them just a little bit more, it would be much less effort for them (and you and me 😅). + + By asking questions in a structured way (following this) it will be much easier to help you. + + And there's a high chance that you will find the solution along the way and you won't even have to submit it and wait for an answer. 😎 + + As there are too many questions, I'll have to discard and close the incomplete ones. That will allow me (and others) to focus on helping people like you that follow the whole process and help us help you. 🤓 + - type: checkboxes + id: checks + attributes: + label: First Check + description: Please confirm and check all the following options. + options: + - label: I added a very descriptive title here. + required: true + - label: I used the GitHub search to find a similar question and didn't find it. + required: true + - label: I searched the FastAPI documentation, with the integrated search. + required: true + - label: I already searched in Google "How to X in FastAPI" and didn't find any information. + required: true + - label: I already read and followed all the tutorial in the docs and didn't find an answer. + required: true + - label: I already checked if it is not related to FastAPI but to [Pydantic](https://github.com/pydantic/pydantic). + required: true + - label: I already checked if it is not related to FastAPI but to [Swagger UI](https://github.com/swagger-api/swagger-ui). + required: true + - label: I already checked if it is not related to FastAPI but to [ReDoc](https://github.com/Redocly/redoc). + required: true + - type: checkboxes + id: help + attributes: + label: Commit to Help + description: | + After submitting this, I commit to one of: + + * Read open questions until I find 2 where I can help someone and add a comment to help there. + * I already hit the "watch" button in this repository to receive notifications and I commit to help at least 2 people that ask questions in the future. + * Review one Pull Request by downloading the code and following [all the review process](https://fastapi.tiangolo.com/help-fastapi/#review-pull-requests). + + options: + - label: I commit to help with one of those options 👆 + required: true + - type: textarea + id: example + attributes: + label: Example Code + description: | + Please add a self-contained, [minimal, reproducible, example](https://stackoverflow.com/help/minimal-reproducible-example) with your use case. + + If I (or someone) can copy it, run it, and see it right away, there's a much higher chance I (or someone) will be able to help you. + + placeholder: | + from fastapi import FastAPI + + app = FastAPI() + + + @app.get("/") + def read_root(): + return {"Hello": "World"} + render: python + validations: + required: true + - type: textarea + id: description + attributes: + label: Description + description: | + What is the problem, question, or error? + + Write a short description telling me what you are doing, what you expect to happen, and what is currently happening. + placeholder: | + * Open the browser and call the endpoint `/`. + * It returns a JSON with `{"Hello": "World"}`. + * But I expected it to return `{"Hello": "Sara"}`. + validations: + required: true + - type: dropdown + id: os + attributes: + label: Operating System + description: What operating system are you on? + multiple: true + options: + - Linux + - Windows + - macOS + - Other + validations: + required: true + - type: textarea + id: os-details + attributes: + label: Operating System Details + description: You can add more details about your operating system here, in particular if you chose "Other". + - type: input + id: fastapi-version + attributes: + label: FastAPI Version + description: | + What FastAPI version are you using? + + You can find the FastAPI version with: + + ```bash + python -c "import fastapi; print(fastapi.__version__)" + ``` + validations: + required: true + - type: input + id: pydantic-version + attributes: + label: Pydantic Version + description: | + What Pydantic version are you using? + + You can find the Pydantic version with: + + ```bash + python -c "import pydantic; print(pydantic.version.VERSION)" + ``` + validations: + required: true + - type: input + id: python-version + attributes: + label: Python Version + description: | + What Python version are you using? + + You can find the Python version with: + + ```bash + python --version + ``` + validations: + required: true + - type: textarea + id: context + attributes: + label: Additional Context + description: Add any additional context information or screenshots you think are useful. diff --git a/.github/DISCUSSION_TEMPLATE/translations.yml b/.github/DISCUSSION_TEMPLATE/translations.yml new file mode 100644 index 0000000..16e304d --- /dev/null +++ b/.github/DISCUSSION_TEMPLATE/translations.yml @@ -0,0 +1,45 @@ +labels: [lang-all] +body: + - type: markdown + attributes: + value: | + Thanks for your interest in helping translate the FastAPI docs! 🌍 + + Please follow these instructions carefully to propose a new language translation. 🙏 + + This structured process helps ensure translations can be properly maintained long-term. + - type: checkboxes + id: checks + attributes: + label: Initial Checks + description: Please confirm and check all the following options. + options: + - label: I checked that this language is not already being translated in FastAPI docs. + required: true + - label: I searched existing discussions to ensure no one else proposed this language. + required: true + - label: I am a native speaker of the language I want to help translate. + required: true + - type: input + id: language + attributes: + label: Target Language + description: What language do you want to translate the FastAPI docs into? + placeholder: e.g. Latin + validations: + required: true + - type: textarea + id: additional_info + attributes: + label: Additional Information + description: Any other relevant information about your translation proposal + - type: markdown + attributes: + value: | + Translations are automatized with AI and then reviewed by native speakers. 🤖 🙋 + + This allows us to keep them consistent and up-to-date. + + If there are several native speakers commenting on this discussion and + committing to help review new translations, the FastAPI team will review it + and potentially make it an official translation. 😎 diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..0ffc101 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1 @@ +github: [tiangolo] diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..fd9f3b1 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,16 @@ +blank_issues_enabled: false +contact_links: + - name: Security Contact + about: Please report security vulnerabilities to security@tiangolo.com + - name: Question or Problem + about: Ask a question or ask about a problem in GitHub Discussions. + url: https://github.com/fastapi/fastapi/discussions/categories/questions + - name: Feature Request + about: To suggest an idea or ask about a feature, please start with a question saying what you would like to achieve. There might be a way to do it already. + url: https://github.com/fastapi/fastapi/discussions/categories/questions + - name: Show and tell + about: Show what you built with FastAPI or to be used with FastAPI. + url: https://github.com/fastapi/fastapi/discussions/categories/show-and-tell + - name: Translations + about: Coordinate translations in GitHub Discussions. + url: https://github.com/fastapi/fastapi/discussions/categories/translations diff --git a/.github/ISSUE_TEMPLATE/privileged.yml b/.github/ISSUE_TEMPLATE/privileged.yml new file mode 100644 index 0000000..2b85eb3 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/privileged.yml @@ -0,0 +1,22 @@ +name: Privileged +description: You are @tiangolo or he asked you directly to create an issue here. If not, check the other options. 👇 +body: + - type: markdown + attributes: + value: | + Thanks for your interest in FastAPI! 🚀 + + If you are not @tiangolo or he didn't ask you directly to create an issue here, please start the conversation in a [Question in GitHub Discussions](https://github.com/fastapi/fastapi/discussions/categories/questions) instead. + - type: checkboxes + id: privileged + attributes: + label: Privileged issue + description: Confirm that you are allowed to create an issue here. + options: + - label: I'm @tiangolo or he asked me directly to create an issue here. + required: true + - type: textarea + id: content + attributes: + label: Issue Content + description: Add the content of the issue here. diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..8979aab --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,16 @@ +version: 2 +updates: + # GitHub Actions + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "daily" + commit-message: + prefix: ⬆ + # Python + - package-ecosystem: "pip" + directory: "/" + schedule: + interval: "monthly" + commit-message: + prefix: ⬆ diff --git a/.github/labeler.yml b/.github/labeler.yml new file mode 100644 index 0000000..cdaefbf --- /dev/null +++ b/.github/labeler.yml @@ -0,0 +1,39 @@ +docs: + - all: + - changed-files: + - any-glob-to-any-file: + - docs/en/docs/** + - docs_src/** + - all-globs-to-all-files: + - '!fastapi/**' + - '!pyproject.toml' + - '!docs/en/data/sponsors.yml' + - '!docs/en/overrides/main.html' + +lang-all: + - all: + - changed-files: + - any-glob-to-any-file: + - docs/*/docs/** + - all-globs-to-all-files: + - '!docs/en/docs/**' + - '!docs/*/**/_*.md' + - '!fastapi/**' + - '!pyproject.toml' + +internal: + - all: + - changed-files: + - any-glob-to-any-file: + - .github/** + - scripts/** + - .gitignore + - .pre-commit-config.yaml + - pdm_build.py + - requirements*.txt + - docs/en/data/sponsors.yml + - docs/en/overrides/main.html + - all-globs-to-all-files: + - '!docs/*/docs/**' + - '!fastapi/**' + - '!pyproject.toml' diff --git a/.github/workflows/add-to-project.yml b/.github/workflows/add-to-project.yml new file mode 100644 index 0000000..dccea83 --- /dev/null +++ b/.github/workflows/add-to-project.yml @@ -0,0 +1,18 @@ +name: Add to Project + +on: + pull_request_target: + issues: + types: + - opened + - reopened + +jobs: + add-to-project: + name: Add to project + runs-on: ubuntu-latest + steps: + - uses: actions/add-to-project@v1.0.2 + with: + project-url: https://github.com/orgs/fastapi/projects/2 + github-token: ${{ secrets.PROJECTS_TOKEN }} diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml new file mode 100644 index 0000000..73e1c6b --- /dev/null +++ b/.github/workflows/build-docs.yml @@ -0,0 +1,124 @@ +name: Build Docs +on: + push: + branches: + - master + pull_request: + types: + - opened + - synchronize + +env: + UV_SYSTEM_PYTHON: 1 + +jobs: + changes: + runs-on: ubuntu-latest + # Required permissions + permissions: + pull-requests: read + # Set job outputs to values from filter step + outputs: + docs: ${{ steps.filter.outputs.docs }} + steps: + - uses: actions/checkout@v6 + # For pull requests it's not necessary to checkout the code but for the main branch it is + - uses: dorny/paths-filter@v3 + id: filter + with: + filters: | + docs: + - README.md + - docs/** + - docs_src/** + - requirements-docs.txt + - pyproject.toml + - mkdocs.yml + - mkdocs.env.yml + - .github/workflows/build-docs.yml + - .github/workflows/deploy-docs.yml + - scripts/mkdocs_hooks.py + langs: + needs: + - changes + runs-on: ubuntu-latest + outputs: + langs: ${{ steps.show-langs.outputs.langs }} + steps: + - uses: actions/checkout@v6 + - name: Set up Python + uses: actions/setup-python@v6 + with: + python-version: "3.11" + - name: Setup uv + uses: astral-sh/setup-uv@v7 + with: + version: "0.4.15" + enable-cache: true + cache-dependency-glob: | + requirements**.txt + pyproject.toml + - name: Install docs extras + run: uv pip install -r requirements-docs.txt + - name: Verify Docs + run: python ./scripts/docs.py verify-docs + - name: Export Language Codes + id: show-langs + run: | + echo "langs=$(python ./scripts/docs.py langs-json)" >> $GITHUB_OUTPUT + + build-docs: + needs: + - changes + - langs + if: ${{ needs.changes.outputs.docs == 'true' }} + runs-on: ubuntu-latest + strategy: + matrix: + lang: ${{ fromJson(needs.langs.outputs.langs) }} + steps: + - name: Dump GitHub context + env: + GITHUB_CONTEXT: ${{ toJson(github) }} + run: echo "$GITHUB_CONTEXT" + - uses: actions/checkout@v6 + - name: Set up Python + uses: actions/setup-python@v6 + with: + python-version: "3.11" + - name: Setup uv + uses: astral-sh/setup-uv@v7 + with: + version: "0.4.15" + enable-cache: true + cache-dependency-glob: | + requirements**.txt + pyproject.toml + - name: Install docs extras + run: uv pip install -r requirements-docs.txt + - name: Update Languages + run: python ./scripts/docs.py update-languages + - uses: actions/cache@v4 + with: + key: mkdocs-cards-${{ matrix.lang }}-${{ github.ref }} + path: docs/${{ matrix.lang }}/.cache + - name: Build Docs + run: python ./scripts/docs.py build-lang ${{ matrix.lang }} + - uses: actions/upload-artifact@v5 + with: + name: docs-site-${{ matrix.lang }} + path: ./site/** + include-hidden-files: true + + # https://github.com/marketplace/actions/alls-green#why + docs-all-green: # This job does nothing and is only used for the branch protection + if: always() + needs: + - build-docs + runs-on: ubuntu-latest + steps: + - name: Decide whether the needed jobs succeeded or failed + uses: re-actors/alls-green@release/v1 + with: + jobs: ${{ toJSON(needs) }} + allowed-skips: build-docs diff --git a/.github/workflows/contributors.yml b/.github/workflows/contributors.yml new file mode 100644 index 0000000..2abd2fd --- /dev/null +++ b/.github/workflows/contributors.yml @@ -0,0 +1,53 @@ +name: FastAPI People Contributors + +on: + schedule: + - cron: "0 3 1 * *" + workflow_dispatch: + inputs: + debug_enabled: + description: "Run the build with tmate debugging enabled (https://github.com/marketplace/actions/debugging-with-tmate)" + required: false + default: "false" + +env: + UV_SYSTEM_PYTHON: 1 + +jobs: + job: + if: github.repository_owner == 'fastapi' + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - name: Dump GitHub context + env: + GITHUB_CONTEXT: ${{ toJson(github) }} + run: echo "$GITHUB_CONTEXT" + - uses: actions/checkout@v6 + - name: Set up Python + uses: actions/setup-python@v6 + with: + python-version: "3.11" + - name: Setup uv + uses: astral-sh/setup-uv@v7 + with: + version: "0.4.15" + enable-cache: true + cache-dependency-glob: | + requirements**.txt + pyproject.toml + - name: Install Dependencies + run: uv pip install -r requirements-github-actions.txt + # Allow debugging with tmate + - name: Setup tmate session + uses: mxschmitt/action-tmate@v3 + if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.debug_enabled == 'true' }} + with: + limit-access-to-actor: true + env: + GITHUB_TOKEN: ${{ secrets.FASTAPI_PR_TOKEN }} + - name: FastAPI People Contributors + run: python ./scripts/contributors.py + env: + GITHUB_TOKEN: ${{ secrets.FASTAPI_PR_TOKEN }} diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml new file mode 100644 index 0000000..50662a1 --- /dev/null +++ b/.github/workflows/deploy-docs.yml @@ -0,0 +1,86 @@ +name: Deploy Docs +on: + workflow_run: + workflows: + - Build Docs + types: + - completed + +permissions: + deployments: write + issues: write + pull-requests: write + statuses: write + +env: + UV_SYSTEM_PYTHON: 1 + +jobs: + deploy-docs: + runs-on: ubuntu-latest + steps: + - name: Dump GitHub context + env: + GITHUB_CONTEXT: ${{ toJson(github) }} + run: echo "$GITHUB_CONTEXT" + - uses: actions/checkout@v6 + - name: Set up Python + uses: actions/setup-python@v6 + with: + python-version: "3.11" + - name: Setup uv + uses: astral-sh/setup-uv@v7 + with: + version: "0.4.15" + enable-cache: true + cache-dependency-glob: | + requirements**.txt + pyproject.toml + - name: Install GitHub Actions dependencies + run: uv pip install -r requirements-github-actions.txt + - name: Deploy Docs Status Pending + run: python ./scripts/deploy_docs_status.py + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + COMMIT_SHA: ${{ github.event.workflow_run.head_sha }} + RUN_ID: ${{ github.run_id }} + STATE: "pending" + - name: Clean site + run: | + rm -rf ./site + mkdir ./site + - uses: actions/download-artifact@v6 + with: + path: ./site/ + pattern: docs-site-* + merge-multiple: true + github-token: ${{ secrets.GITHUB_TOKEN }} + run-id: ${{ github.event.workflow_run.id }} + - name: Deploy to Cloudflare Pages + # hashFiles returns an empty string if there are no files + if: hashFiles('./site/*') + id: deploy + env: + PROJECT_NAME: fastapitiangolo + BRANCH: ${{ ( github.event.workflow_run.head_repository.full_name == github.repository && github.event.workflow_run.head_branch == 'master' && 'main' ) || ( github.event.workflow_run.head_sha ) }} + uses: cloudflare/wrangler-action@v3 + with: + apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} + accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} + command: pages deploy ./site --project-name=${{ env.PROJECT_NAME }} --branch=${{ env.BRANCH }} + - name: Deploy Docs Status Error + if: failure() + run: python ./scripts/deploy_docs_status.py + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + COMMIT_SHA: ${{ github.event.workflow_run.head_sha }} + RUN_ID: ${{ github.run_id }} + STATE: "error" + - name: Comment Deploy + run: python ./scripts/deploy_docs_status.py + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + DEPLOY_URL: ${{ steps.deploy.outputs.deployment-url }} + COMMIT_SHA: ${{ github.event.workflow_run.head_sha }} + RUN_ID: ${{ github.run_id }} + STATE: "success" diff --git a/.github/workflows/detect-conflicts.yml b/.github/workflows/detect-conflicts.yml new file mode 100644 index 0000000..aba329d --- /dev/null +++ b/.github/workflows/detect-conflicts.yml @@ -0,0 +1,19 @@ +name: "Conflict detector" +on: + push: + pull_request_target: + types: [synchronize] + +jobs: + main: + permissions: + contents: read + pull-requests: write + runs-on: ubuntu-latest + steps: + - name: Check if PRs have merge conflicts + uses: eps1lon/actions-label-merge-conflict@v3 + with: + dirtyLabel: "conflicts" + repoToken: "${{ secrets.GITHUB_TOKEN }}" + commentOnDirty: "This pull request has a merge conflict that needs to be resolved." diff --git a/.github/workflows/issue-manager.yml b/.github/workflows/issue-manager.yml new file mode 100644 index 0000000..f40ec4d --- /dev/null +++ b/.github/workflows/issue-manager.yml @@ -0,0 +1,51 @@ +name: Issue Manager + +on: + schedule: + - cron: "13 22 * * *" + issue_comment: + types: + - created + issues: + types: + - labeled + pull_request_target: + types: + - labeled + workflow_dispatch: + +permissions: + issues: write + pull-requests: write + +jobs: + issue-manager: + if: github.repository_owner == 'fastapi' + runs-on: ubuntu-latest + steps: + - name: Dump GitHub context + env: + GITHUB_CONTEXT: ${{ toJson(github) }} + run: echo "$GITHUB_CONTEXT" + - uses: tiangolo/issue-manager@0.6.0 + with: + token: ${{ secrets.GITHUB_TOKEN }} + config: > + { + "answered": { + "delay": 864000, + "message": "Assuming the original need was handled, this will be automatically closed now. But feel free to add more comments or create new issues or PRs." + }, + "waiting": { + "delay": 2628000, + "message": "As this PR has been waiting for the original user for a while but seems to be inactive, it's now going to be closed. But if there's anyone interested, feel free to create a new PR.", + "reminder": { + "before": "P3D", + "message": "Heads-up: this will be closed in 3 days unless there’s new activity." + } + }, + "invalid": { + "delay": 0, + "message": "This was marked as invalid and will be closed now. If this is an error, please provide additional details." + } + } diff --git a/.github/workflows/label-approved.yml b/.github/workflows/label-approved.yml new file mode 100644 index 0000000..7f16254 --- /dev/null +++ b/.github/workflows/label-approved.yml @@ -0,0 +1,49 @@ +name: Label Approved + +on: + schedule: + - cron: "0 12 * * *" + workflow_dispatch: + +permissions: + pull-requests: write + +env: + UV_SYSTEM_PYTHON: 1 + +jobs: + label-approved: + if: github.repository_owner == 'fastapi' + runs-on: ubuntu-latest + steps: + - name: Dump GitHub context + env: + GITHUB_CONTEXT: ${{ toJson(github) }} + run: echo "$GITHUB_CONTEXT" + - uses: actions/checkout@v6 + - name: Set up Python + uses: actions/setup-python@v6 + with: + python-version: "3.11" + - name: Setup uv + uses: astral-sh/setup-uv@v7 + with: + version: "0.4.15" + enable-cache: true + cache-dependency-glob: | + requirements**.txt + pyproject.toml + - name: Install GitHub Actions dependencies + run: uv pip install -r requirements-github-actions.txt + - name: Label Approved + run: python ./scripts/label_approved.py + env: + TOKEN: ${{ secrets.GITHUB_TOKEN }} + CONFIG: > + { + "approved-1": + { + "number": 1, + "await_label": "awaiting-review" + } + } diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml new file mode 100644 index 0000000..7aeb448 --- /dev/null +++ b/.github/workflows/labeler.yml @@ -0,0 +1,33 @@ +name: Labels +on: + pull_request_target: + types: + - opened + - synchronize + - reopened + # For label-checker + - labeled + - unlabeled + +jobs: + labeler: + permissions: + contents: read + pull-requests: write + runs-on: ubuntu-latest + steps: + - uses: actions/labeler@v6 + if: ${{ github.event.action != 'labeled' && github.event.action != 'unlabeled' }} + - run: echo "Done adding labels" + # Run this after labeler applied labels + check-labels: + needs: + - labeler + permissions: + pull-requests: read + runs-on: ubuntu-latest + steps: + - uses: docker://agilepathway/pull-request-label-checker:latest + with: + one_of: breaking,security,feature,bug,refactor,upgrade,docs,lang-all,internal + repo_token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/latest-changes.yml b/.github/workflows/latest-changes.yml new file mode 100644 index 0000000..b9e45ea --- /dev/null +++ b/.github/workflows/latest-changes.yml @@ -0,0 +1,46 @@ +name: Latest Changes + +on: + pull_request_target: + branches: + - master + types: + - closed + workflow_dispatch: + inputs: + number: + description: PR number + required: true + debug_enabled: + description: 'Run the build with tmate debugging enabled (https://github.com/marketplace/actions/debugging-with-tmate)' + required: false + default: 'false' + +jobs: + latest-changes: + runs-on: ubuntu-latest + steps: + - name: Dump GitHub context + env: + GITHUB_CONTEXT: ${{ toJson(github) }} + run: echo "$GITHUB_CONTEXT" + # pin to actions/checkout@v5 for compatibility with latest-changes + # Ref: https://github.com/actions/checkout/issues/2313 + - uses: actions/checkout@v5 + with: + # To allow latest-changes to commit to the main branch + token: ${{ secrets.FASTAPI_LATEST_CHANGES }} + # Allow debugging with tmate + - name: Setup tmate session + uses: mxschmitt/action-tmate@v3 + if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.debug_enabled == 'true' }} + with: + limit-access-to-actor: true + - uses: tiangolo/latest-changes@0.4.1 + with: + token: ${{ secrets.GITHUB_TOKEN }} + latest_changes_file: docs/en/docs/release-notes.md + latest_changes_header: '## Latest Changes' + end_regex: '^## ' + debug_logs: true + label_header_prefix: '### ' diff --git a/.github/workflows/notify-translations.yml b/.github/workflows/notify-translations.yml new file mode 100644 index 0000000..971e6bb --- /dev/null +++ b/.github/workflows/notify-translations.yml @@ -0,0 +1,59 @@ +name: Notify Translations + +on: + pull_request_target: + types: + - labeled + - closed + workflow_dispatch: + inputs: + number: + description: PR number + required: true + debug_enabled: + description: 'Run the build with tmate debugging enabled (https://github.com/marketplace/actions/debugging-with-tmate)' + required: false + default: 'false' + +env: + UV_SYSTEM_PYTHON: 1 + +jobs: + job: + runs-on: ubuntu-latest + permissions: + discussions: write + steps: + - name: Dump GitHub context + env: + GITHUB_CONTEXT: ${{ toJson(github) }} + run: echo "$GITHUB_CONTEXT" + - uses: actions/checkout@v6 + - name: Set up Python + uses: actions/setup-python@v6 + with: + python-version: "3.11" + - name: Setup uv + uses: astral-sh/setup-uv@v7 + with: + version: "0.4.15" + enable-cache: true + cache-dependency-glob: | + requirements**.txt + pyproject.toml + - name: Install Dependencies + run: uv pip install -r requirements-github-actions.txt + # Allow debugging with tmate + - name: Setup tmate session + uses: mxschmitt/action-tmate@v3 + if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.debug_enabled == 'true' }} + with: + limit-access-to-actor: true + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Notify Translations + run: python ./scripts/notify_translations.py + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NUMBER: ${{ github.event.inputs.number || null }} + DEBUG: ${{ github.event.inputs.debug_enabled || 'false' }} diff --git a/.github/workflows/people.yml b/.github/workflows/people.yml new file mode 100644 index 0000000..9b35a3d --- /dev/null +++ b/.github/workflows/people.yml @@ -0,0 +1,54 @@ +name: FastAPI People + +on: + schedule: + - cron: "0 14 1 * *" + workflow_dispatch: + inputs: + debug_enabled: + description: Run the build with tmate debugging enabled (https://github.com/marketplace/actions/debugging-with-tmate) + required: false + default: "false" + +env: + UV_SYSTEM_PYTHON: 1 + +jobs: + job: + if: github.repository_owner == 'fastapi' + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - name: Dump GitHub context + env: + GITHUB_CONTEXT: ${{ toJson(github) }} + run: echo "$GITHUB_CONTEXT" + - uses: actions/checkout@v6 + - name: Set up Python + uses: actions/setup-python@v6 + with: + python-version: "3.11" + - name: Setup uv + uses: astral-sh/setup-uv@v7 + with: + version: "0.4.15" + enable-cache: true + cache-dependency-glob: | + requirements**.txt + pyproject.toml + - name: Install Dependencies + run: uv pip install -r requirements-github-actions.txt + # Allow debugging with tmate + - name: Setup tmate session + uses: mxschmitt/action-tmate@v3 + if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.debug_enabled == 'true' }} + with: + limit-access-to-actor: true + env: + GITHUB_TOKEN: ${{ secrets.FASTAPI_PEOPLE }} + - name: FastAPI People Experts + run: python ./scripts/people.py + env: + GITHUB_TOKEN: ${{ secrets.FASTAPI_PEOPLE }} + SLEEP_INTERVAL: ${{ vars.PEOPLE_SLEEP_INTERVAL }} diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml new file mode 100644 index 0000000..fa0574d --- /dev/null +++ b/.github/workflows/pre-commit.yml @@ -0,0 +1,88 @@ +name: pre-commit + +on: + pull_request: + types: + - opened + - synchronize + +env: + IS_FORK: ${{ github.event.pull_request.head.repo.full_name != github.repository }} + +jobs: + pre-commit: + runs-on: ubuntu-latest + steps: + - name: Dump GitHub context + env: + GITHUB_CONTEXT: ${{ toJson(github) }} + run: echo "$GITHUB_CONTEXT" + - uses: actions/checkout@v5 + name: Checkout PR for own repo + if: env.IS_FORK == 'false' + with: + # To be able to commit it needs more than the last commit + ref: ${{ github.head_ref }} + # A token other than the default GITHUB_TOKEN is needed to be able to trigger CI + token: ${{ secrets.PRE_COMMIT }} + # pre-commit lite ci needs the default checkout configs to work + - uses: actions/checkout@v5 + name: Checkout PR for fork + if: env.IS_FORK == 'true' + - name: Set up Python + uses: actions/setup-python@v6 + with: + python-version: "3.14" + - name: Setup uv + uses: astral-sh/setup-uv@v7 + with: + cache-dependency-glob: | + requirements**.txt + pyproject.toml + uv.lock + - name: Install Dependencies + run: | + uv venv + uv pip install -r requirements.txt + - name: Run pre-commit + id: precommit + run: | + # Fetch the base branch for comparison + git fetch origin ${{ github.base_ref }} + uvx pre-commit run --from-ref origin/${{ github.base_ref }} --to-ref HEAD --show-diff-on-failure + continue-on-error: true + - name: Commit and push changes + if: env.IS_FORK == 'false' + run: | + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + git add -A + if git diff --staged --quiet; then + echo "No changes to commit" + else + git commit -m "🎨 Auto format" + git push + fi + - uses: pre-commit-ci/lite-action@v1.1.0 + if: env.IS_FORK == 'true' + with: + msg: 🎨 Auto format + - name: Error out on pre-commit errors + if: steps.precommit.outcome == 'failure' + run: exit 1 + + # https://github.com/marketplace/actions/alls-green#why + pre-commit-alls-green: # This job does nothing and is only used for the branch protection + if: always() + needs: + - pre-commit + runs-on: ubuntu-latest + steps: + - name: Dump GitHub context + env: + GITHUB_CONTEXT: ${{ toJson(github) }} + run: echo "$GITHUB_CONTEXT" + - name: Decide whether the needed jobs succeeded or failed + uses: re-actors/alls-green@release/v1 + with: + jobs: ${{ toJSON(needs) }} diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..6d9a00b --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,42 @@ +name: Publish + +on: + release: + types: + - created + +jobs: + publish: + runs-on: ubuntu-latest + strategy: + matrix: + package: + - fastapi + - fastapi-slim + permissions: + id-token: write + steps: + - name: Dump GitHub context + env: + GITHUB_CONTEXT: ${{ toJson(github) }} + run: echo "$GITHUB_CONTEXT" + - uses: actions/checkout@v6 + - name: Set up Python + uses: actions/setup-python@v6 + with: + python-version: "3.10" + # Issue ref: https://github.com/actions/setup-python/issues/436 + # cache: "pip" + # cache-dependency-path: pyproject.toml + - name: Install build dependencies + run: pip install build + - name: Build distribution + env: + TIANGOLO_BUILD_PACKAGE: ${{ matrix.package }} + run: python -m build + - name: Publish + uses: pypa/gh-action-pypi-publish@v1.13.0 + - name: Dump GitHub context + env: + GITHUB_CONTEXT: ${{ toJson(github) }} + run: echo "$GITHUB_CONTEXT" diff --git a/.github/workflows/smokeshow.yml b/.github/workflows/smokeshow.yml new file mode 100644 index 0000000..84c7430 --- /dev/null +++ b/.github/workflows/smokeshow.yml @@ -0,0 +1,60 @@ +name: Smokeshow + +on: + workflow_run: + workflows: [Test] + types: [completed] + +permissions: + statuses: write + +env: + UV_SYSTEM_PYTHON: 1 + +jobs: + smokeshow: + if: ${{ github.event.workflow_run.conclusion == 'success' }} + runs-on: ubuntu-latest + + steps: + - name: Dump GitHub context + env: + GITHUB_CONTEXT: ${{ toJson(github) }} + run: echo "$GITHUB_CONTEXT" + - uses: actions/checkout@v6 + - uses: actions/setup-python@v6 + with: + python-version: '3.9' + - name: Setup uv + uses: astral-sh/setup-uv@v7 + with: + version: "0.4.15" + enable-cache: true + cache-dependency-glob: | + requirements**.txt + pyproject.toml + - run: uv pip install -r requirements-github-actions.txt + - uses: actions/download-artifact@v6 + with: + name: coverage-html + path: htmlcov + github-token: ${{ secrets.GITHUB_TOKEN }} + run-id: ${{ github.event.workflow_run.id }} + # Try 5 times to upload coverage to smokeshow + - name: Upload coverage to Smokeshow + run: | + for i in 1 2 3 4 5; do + if smokeshow upload htmlcov; then + echo "Smokeshow upload success!" + break + fi + echo "Smokeshow upload error, sleep 1 sec and try again." + sleep 1 + done + env: + SMOKESHOW_GITHUB_STATUS_DESCRIPTION: Coverage {coverage-percentage} + SMOKESHOW_GITHUB_COVERAGE_THRESHOLD: 100 + SMOKESHOW_GITHUB_CONTEXT: coverage + SMOKESHOW_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + SMOKESHOW_GITHUB_PR_HEAD_SHA: ${{ github.event.workflow_run.head_sha }} + SMOKESHOW_AUTH_KEY: ${{ secrets.SMOKESHOW_AUTH_KEY }} diff --git a/.github/workflows/sponsors.yml b/.github/workflows/sponsors.yml new file mode 100644 index 0000000..8b02490 --- /dev/null +++ b/.github/workflows/sponsors.yml @@ -0,0 +1,52 @@ +name: FastAPI People Sponsors + +on: + schedule: + - cron: "0 6 1 * *" + workflow_dispatch: + inputs: + debug_enabled: + description: "Run the build with tmate debugging enabled (https://github.com/marketplace/actions/debugging-with-tmate)" + required: false + default: "false" + +env: + UV_SYSTEM_PYTHON: 1 + +jobs: + job: + if: github.repository_owner == 'fastapi' + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - name: Dump GitHub context + env: + GITHUB_CONTEXT: ${{ toJson(github) }} + run: echo "$GITHUB_CONTEXT" + - uses: actions/checkout@v6 + - name: Set up Python + uses: actions/setup-python@v6 + with: + python-version: "3.11" + - name: Setup uv + uses: astral-sh/setup-uv@v7 + with: + version: "0.4.15" + enable-cache: true + cache-dependency-glob: | + requirements**.txt + pyproject.toml + - name: Install Dependencies + run: uv pip install -r requirements-github-actions.txt + # Allow debugging with tmate + - name: Setup tmate session + uses: mxschmitt/action-tmate@v3 + if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.debug_enabled == 'true' }} + with: + limit-access-to-actor: true + - name: FastAPI People Sponsors + run: python ./scripts/sponsors.py + env: + SPONSORS_TOKEN: ${{ secrets.SPONSORS_TOKEN }} + PR_TOKEN: ${{ secrets.FASTAPI_PR_TOKEN }} diff --git a/.github/workflows/test-redistribute.yml b/.github/workflows/test-redistribute.yml new file mode 100644 index 0000000..653ab2a --- /dev/null +++ b/.github/workflows/test-redistribute.yml @@ -0,0 +1,69 @@ +name: Test Redistribute + +on: + push: + branches: + - master + pull_request: + types: + - opened + - synchronize + +jobs: + test-redistribute: + runs-on: ubuntu-latest + strategy: + matrix: + package: + - fastapi + - fastapi-slim + steps: + - name: Dump GitHub context + env: + GITHUB_CONTEXT: ${{ toJson(github) }} + run: echo "$GITHUB_CONTEXT" + - uses: actions/checkout@v6 + - name: Set up Python + uses: actions/setup-python@v6 + with: + python-version: "3.10" + - name: Install build dependencies + run: pip install build + - name: Build source distribution + env: + TIANGOLO_BUILD_PACKAGE: ${{ matrix.package }} + run: python -m build --sdist + - name: Decompress source distribution + run: | + cd dist + tar xvf fastapi*.tar.gz + - name: Install test dependencies + run: | + cd dist/fastapi*/ + pip install -r requirements-tests.txt + env: + TIANGOLO_BUILD_PACKAGE: ${{ matrix.package }} + - name: Run source distribution tests + run: | + cd dist/fastapi*/ + bash scripts/test.sh + - name: Build wheel distribution + run: | + cd dist + pip wheel --no-deps fastapi*.tar.gz + - name: Dump GitHub context + env: + GITHUB_CONTEXT: ${{ toJson(github) }} + run: echo "$GITHUB_CONTEXT" + + # https://github.com/marketplace/actions/alls-green#why + test-redistribute-alls-green: # This job does nothing and is only used for the branch protection + if: always() + needs: + - test-redistribute + runs-on: ubuntu-latest + steps: + - name: Decide whether the needed jobs succeeded or failed + uses: re-actors/alls-green@release/v1 + with: + jobs: ${{ toJSON(needs) }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..8157e36 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,159 @@ +name: Test + +on: + push: + branches: + - master + pull_request: + types: + - opened + - synchronize + schedule: + # cron every week on monday + - cron: "0 0 * * 1" + +env: + UV_SYSTEM_PYTHON: 1 + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - name: Dump GitHub context + env: + GITHUB_CONTEXT: ${{ toJson(github) }} + run: echo "$GITHUB_CONTEXT" + - uses: actions/checkout@v6 + - name: Set up Python + uses: actions/setup-python@v6 + with: + python-version: "3.11" + - name: Setup uv + uses: astral-sh/setup-uv@v7 + with: + version: "0.4.15" + enable-cache: true + cache-dependency-glob: | + requirements**.txt + pyproject.toml + - name: Install Dependencies + run: uv pip install -r requirements-tests.txt + - name: Install Pydantic v2 + run: uv pip install --upgrade "pydantic>=2.0.2,<3.0.0" + - name: Lint + run: bash scripts/lint.sh + + test: + runs-on: ubuntu-latest + strategy: + matrix: + python-version: + - "3.14" + - "3.13" + - "3.12" + - "3.11" + - "3.10" + - "3.9" + - "3.8" + pydantic-version: ["pydantic-v1", "pydantic-v2"] + exclude: + - python-version: "3.14" + pydantic-version: "pydantic-v1" + fail-fast: false + steps: + - name: Dump GitHub context + env: + GITHUB_CONTEXT: ${{ toJson(github) }} + run: echo "$GITHUB_CONTEXT" + - uses: actions/checkout@v6 + - name: Set up Python + uses: actions/setup-python@v6 + with: + python-version: ${{ matrix.python-version }} + - name: Setup uv + uses: astral-sh/setup-uv@v7 + with: + version: "0.4.15" + enable-cache: true + cache-dependency-glob: | + requirements**.txt + pyproject.toml + - name: Install Dependencies + run: uv pip install -r requirements-tests.txt + - name: Install Pydantic v1 + if: matrix.pydantic-version == 'pydantic-v1' + run: uv pip install "pydantic>=1.10.0,<2.0.0" + - name: Install Pydantic v2 + if: matrix.pydantic-version == 'pydantic-v2' + run: uv pip install --upgrade "pydantic>=2.0.2,<3.0.0" + # TODO: Remove this once Python 3.8 is no longer supported + - name: Install older AnyIO in Python 3.8 + if: matrix.python-version == '3.8' + run: uv pip install "anyio[trio]<4.0.0" + - run: mkdir coverage + - name: Test + run: bash scripts/test.sh + env: + COVERAGE_FILE: coverage/.coverage.${{ runner.os }}-py${{ matrix.python-version }} + CONTEXT: ${{ runner.os }}-py${{ matrix.python-version }} + - name: Store coverage files + uses: actions/upload-artifact@v5 + with: + name: coverage-${{ matrix.python-version }}-${{ matrix.pydantic-version }} + path: coverage + include-hidden-files: true + + coverage-combine: + needs: [test] + runs-on: ubuntu-latest + steps: + - name: Dump GitHub context + env: + GITHUB_CONTEXT: ${{ toJson(github) }} + run: echo "$GITHUB_CONTEXT" + - uses: actions/checkout@v6 + - uses: actions/setup-python@v6 + with: + python-version: '3.8' + - name: Setup uv + uses: astral-sh/setup-uv@v7 + with: + version: "0.4.15" + enable-cache: true + cache-dependency-glob: | + requirements**.txt + pyproject.toml + - name: Install Dependencies + run: uv pip install -r requirements-tests.txt + - name: Get coverage files + uses: actions/download-artifact@v6 + with: + pattern: coverage-* + path: coverage + merge-multiple: true + - run: ls -la coverage + - run: coverage combine coverage + - run: coverage report + - run: coverage html --title "Coverage for ${{ github.sha }}" + - name: Store coverage HTML + uses: actions/upload-artifact@v5 + with: + name: coverage-html + path: htmlcov + include-hidden-files: true + + # https://github.com/marketplace/actions/alls-green#why + check: # This job does nothing and is only used for the branch protection + if: always() + needs: + - coverage-combine + runs-on: ubuntu-latest + steps: + - name: Dump GitHub context + env: + GITHUB_CONTEXT: ${{ toJson(github) }} + run: echo "$GITHUB_CONTEXT" + - name: Decide whether the needed jobs succeeded or failed + uses: re-actors/alls-green@release/v1 + with: + jobs: ${{ toJSON(needs) }} diff --git a/.github/workflows/topic-repos.yml b/.github/workflows/topic-repos.yml new file mode 100644 index 0000000..41dabee --- /dev/null +++ b/.github/workflows/topic-repos.yml @@ -0,0 +1,40 @@ +name: Update Topic Repos + +on: + schedule: + - cron: "0 12 1 * *" + workflow_dispatch: + +env: + UV_SYSTEM_PYTHON: 1 + +jobs: + topic-repos: + if: github.repository_owner == 'fastapi' + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - name: Dump GitHub context + env: + GITHUB_CONTEXT: ${{ toJson(github) }} + run: echo "$GITHUB_CONTEXT" + - uses: actions/checkout@v6 + - name: Set up Python + uses: actions/setup-python@v6 + with: + python-version: "3.11" + - name: Setup uv + uses: astral-sh/setup-uv@v7 + with: + version: "0.4.15" + enable-cache: true + cache-dependency-glob: | + requirements**.txt + pyproject.toml + - name: Install GitHub Actions dependencies + run: uv pip install -r requirements-github-actions.txt + - name: Update Topic Repos + run: python ./scripts/topic_repos.py + env: + GITHUB_TOKEN: ${{ secrets.FASTAPI_PR_TOKEN }} diff --git a/.github/workflows/translate.yml b/.github/workflows/translate.yml new file mode 100644 index 0000000..6506b8e --- /dev/null +++ b/.github/workflows/translate.yml @@ -0,0 +1,77 @@ +name: Translate + +on: + workflow_dispatch: + inputs: + debug_enabled: + description: Run with tmate debugging enabled (https://github.com/marketplace/actions/debugging-with-tmate) + required: false + default: "false" + command: + description: Command to run + type: choice + options: + - translate-page + - translate-lang + - update-outdated + - add-missing + - update-and-add + - remove-all-removable + language: + description: Language to translate to as a letter code (e.g. "es" for Spanish) + type: string + required: false + default: "" + en_path: + description: File path in English to translate (e.g. docs/en/docs/index.md) + type: string + required: false + default: "" + +env: + UV_SYSTEM_PYTHON: 1 + +jobs: + job: + if: github.repository_owner == 'fastapi' + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - name: Dump GitHub context + env: + GITHUB_CONTEXT: ${{ toJson(github) }} + run: echo "$GITHUB_CONTEXT" + - uses: actions/checkout@v6 + - name: Set up Python + uses: actions/setup-python@v6 + with: + python-version: "3.11" + - name: Setup uv + uses: astral-sh/setup-uv@v7 + with: + version: "0.4.15" + enable-cache: true + cache-dependency-glob: | + requirements**.txt + pyproject.toml + - name: Install Dependencies + run: uv pip install -r requirements-github-actions.txt -r requirements-translations.txt + # Allow debugging with tmate + - name: Setup tmate session + uses: mxschmitt/action-tmate@v3 + if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.debug_enabled == 'true' }} + with: + limit-access-to-actor: true + env: + GITHUB_TOKEN: ${{ secrets.FASTAPI_TRANSLATIONS }} + OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} + - name: FastAPI Translate + run: | + python ./scripts/translate.py ${{ github.event.inputs.command }} + python ./scripts/translate.py make-pr + env: + GITHUB_TOKEN: ${{ secrets.FASTAPI_TRANSLATIONS }} + OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} + LANGUAGE: ${{ github.event.inputs.language }} + EN_PATH: ${{ github.event.inputs.en_path }} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6016ffa --- /dev/null +++ b/.gitignore @@ -0,0 +1,33 @@ +.idea +.ipynb_checkpoints +.mypy_cache +.vscode +__pycache__ +.pytest_cache +htmlcov +dist +site +.coverage* +coverage.xml +.netlify +test.db +log.txt +Pipfile.lock +env3.* +env +docs_build +site_build +venv +docs.zip +archive.zip + +# vim temporary files +*~ +.*.sw? +.cache + +# macOS +.DS_Store + +# Ignore while the setup still depends on requirements.txt files +uv.lock diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..8e6d93f --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,29 @@ +# See https://pre-commit.com for more information +# See https://pre-commit.com/hooks.html for more hooks +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v6.0.0 + hooks: + - id: check-added-large-files + - id: check-toml + - id: check-yaml + args: + - --unsafe + - id: end-of-file-fixer + - id: trailing-whitespace + - repo: https://github.com/astral-sh/ruff-pre-commit + rev: v0.14.3 + hooks: + - id: ruff + args: + - --fix + - id: ruff-format + - repo: local + hooks: + - id: local-script + language: unsupported + name: local script + entry: uv run ./scripts/docs.py add-permalinks-pages + args: + - --update-existing + files: ^docs/en/docs/.*\.md$ diff --git a/CITATION.cff b/CITATION.cff new file mode 100644 index 0000000..f147003 --- /dev/null +++ b/CITATION.cff @@ -0,0 +1,24 @@ +# This CITATION.cff file was generated with cffinit. +# Visit https://bit.ly/cffinit to generate yours today! + +cff-version: 1.2.0 +title: FastAPI +message: >- + If you use this software, please cite it using the + metadata from this file. +type: software +authors: + - given-names: Sebastián + family-names: Ramírez + email: tiangolo@gmail.com +identifiers: +repository-code: 'https://github.com/fastapi/fastapi' +url: 'https://fastapi.tiangolo.com' +abstract: >- + FastAPI framework, high performance, easy to learn, fast to code, + ready for production +keywords: + - fastapi + - pydantic + - starlette +license: MIT diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..7b94527 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1 @@ +Please read the [Development - Contributing](https://fastapi.tiangolo.com/contributing/) guidelines in the documentation site. diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..3e92463 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2018 Sebastián Ramírez + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..a42ceda --- /dev/null +++ b/README.md @@ -0,0 +1,562 @@ +

+ 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/fastapi/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 conducted by an internal development team, building production applications. + +## Sponsors + + +### Keystone Sponsor + + + +### Gold and Silver Sponsors + + + + + + + + + + + + + + + + + + + + + + +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 + +Create and activate a virtual environment and then install FastAPI: + +
+ +```console +$ pip install "fastapi[standard]" + +---> 100% +``` + +
+ +**Note**: Make sure you put `"fastapi[standard]"` in quotes to ensure it works in all terminals. + +## 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. + +### Deploy your app (optional) + +You can optionally deploy your FastAPI app to FastAPI Cloud, go and join the waiting list if you haven't. 🚀 + +If you already have a **FastAPI Cloud** account (we invited you from the waiting list 😉), you can deploy your application with one command. + +Before deploying, make sure you are logged in: + +
+ +```console +$ fastapi login + +You are logged in to FastAPI Cloud 🚀 +``` + +
+ +Then deploy your app: + +
+ +```console +$ fastapi deploy + +Deploying to FastAPI Cloud... + +✅ Deployment successful! + +🐔 Ready the chicken! Your app is ready at https://myapp.fastapicloud.dev +``` + +
+ +That's it! Now you can access your app at that URL. ✨ + +#### About FastAPI Cloud + +**FastAPI Cloud** is built by the same author and team behind **FastAPI**. + +It streamlines the process of **building**, **deploying**, and **accessing** an API with minimal effort. + +It brings the same **developer experience** of building apps with FastAPI to **deploying** them to the cloud. 🎉 + +FastAPI Cloud is the primary sponsor and funding provider for the *FastAPI and friends* open source projects. ✨ + +#### Deploy to other cloud providers + +FastAPI is open source and based on standards. You can deploy FastAPI apps to any cloud provider you choose. + +Follow your cloud provider's guides to deploy FastAPI apps with them. 🤓 + +## 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 + +FastAPI depends on Pydantic and Starlette. + +### `standard` Dependencies + +When you install FastAPI with `pip install "fastapi[standard]"` it comes with the `standard` group of optional dependencies: + +Used by Pydantic: + +* email-validator - for email validation. + +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: + +* uvicorn - for the server that loads and serves your application. This includes `uvicorn[standard]`, which includes some dependencies (e.g. `uvloop`) needed for high performance serving. +* `fastapi-cli[standard]` - to provide the `fastapi` command. + * This includes `fastapi-cloud-cli`, which allows you to deploy your FastAPI application to FastAPI Cloud. + +### Without `standard` Dependencies + +If you don't want to include the `standard` optional dependencies, you can install with `pip install fastapi` instead of `pip install "fastapi[standard]"`. + +### Without `fastapi-cloud-cli` + +If you want to install FastAPI with the standard dependencies but without the `fastapi-cloud-cli`, you can install with `pip install "fastapi[standard-no-fastapi-cloud-cli]"`. + +### Additional Optional Dependencies + +There are some additional dependencies you might want to install. + +Additional optional Pydantic dependencies: + +* pydantic-settings - for settings management. +* pydantic-extra-types - for extra types to be used with Pydantic. + +Additional optional FastAPI dependencies: + +* orjson - Required if you want to use `ORJSONResponse`. +* ujson - Required if you want to use `UJSONResponse`. + +## License + +This project is licensed under the terms of the MIT license. diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..87e87e0 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,31 @@ +# Security Policy + +Security is very important for FastAPI and its community. 🔒 + +Learn more about it below. 👇 + +## Versions + +The latest version of FastAPI is supported. + +You are encouraged to [write tests](https://fastapi.tiangolo.com/tutorial/testing/) for your application and update your FastAPI version frequently after ensuring that your tests are passing. This way you will benefit from the latest features, bug fixes, and **security fixes**. + +You can learn more about [FastAPI versions and how to pin and upgrade them](https://fastapi.tiangolo.com/deployment/versions/) for your project in the docs. + +## Reporting a Vulnerability + +If you think you found a vulnerability, and even if you are not sure about it, please report it right away by sending an email to: security@tiangolo.com. Please try to be as explicit as possible, describing all the steps and example code to reproduce the security issue. + +I (the author, [@tiangolo](https://x.com/tiangolo)) will review it thoroughly and get back to you. + +## Public Discussions + +Please restrain from publicly discussing a potential security vulnerability. 🙊 + +It's better to discuss privately and try to find a solution first, to limit the potential impact as much as possible. + +--- + +Thanks for your help! + +The FastAPI community and I thank you for that. 🙇 diff --git a/docs/de/docs/_llm-test.md b/docs/de/docs/_llm-test.md new file mode 100644 index 0000000..3a95f42 --- /dev/null +++ b/docs/de/docs/_llm-test.md @@ -0,0 +1,503 @@ +# LLM-Testdatei { #llm-test-file } + +Dieses Dokument testet, ob das LLM, das die Dokumentation übersetzt, den `general_prompt` in `scripts/translate.py` und den sprachspezifischen Prompt in `docs/{language code}/llm-prompt.md` versteht. Der sprachspezifische Prompt wird an `general_prompt` angehängt. + +Hier hinzugefügte Tests werden von allen Erstellern sprachspezifischer Prompts gesehen. + +So verwenden: + +* Einen sprachspezifischen Prompt haben – `docs/{language code}/llm-prompt.md`. +* Eine frische Übersetzung dieses Dokuments in die gewünschte Zielsprache durchführen (siehe z. B. das Kommando `translate-page` der `translate.py`). Dadurch wird die Übersetzung unter `docs/{language code}/docs/_llm-test.md` erstellt. +* Prüfen Sie, ob in der Übersetzung alles in Ordnung ist. +* Verbessern Sie bei Bedarf Ihren sprachsspezifischen Prompt, den allgemeinen Prompt oder das englische Dokument. +* Beheben Sie anschließend manuell die verbleibenden Probleme in der Übersetzung, sodass es eine gute Übersetzung ist. +* Übersetzen Sie erneut, nachdem die gute Übersetzung vorliegt. Das ideale Ergebnis wäre, dass das LLM an der Übersetzung keine Änderungen mehr vornimmt. Das bedeutet, dass der allgemeine Prompt und Ihr sprachsspezifischer Prompt so gut sind, wie sie sein können (Es wird manchmal ein paar scheinbar zufällige Änderungen machen, der Grund ist, dass LLMs keine deterministischen Algorithmen sind). + +Die Tests: + +## Codeschnipsel { #code-snippets} + +//// tab | Test + +Dies ist ein Codeschnipsel: `foo`. Und dies ist ein weiteres Codeschnipsel: `bar`. Und noch eins: `baz quux`. + +//// + +//// tab | Info + +Der Inhalt von Codeschnipseln sollte unverändert bleiben. + +Siehe Abschnitt `### Content of code snippets` im allgemeinen Prompt in `scripts/translate.py`. + +//// + +## Anführungszeichen { #quotes } + +//// tab | Test + +Gestern schrieb mein Freund: „Wenn man unkorrekt korrekt schreibt, hat man es unkorrekt geschrieben“. Worauf ich antwortete: „Korrekt, aber ‚unkorrekt‘ ist unkorrekterweise nicht ‚„unkorrekt“‘“. + +/// note | Hinweis + +Das LLM wird dies wahrscheinlich falsch übersetzen. Interessant ist nur, ob es die korrigierte Übersetzung bei einer erneuten Übersetzung beibehält. + +/// + +//// + +//// tab | Info + +Der Promptdesigner kann entscheiden, ob neutrale Anführungszeichen in typografische Anführungszeichen umgewandelt werden sollen. Es ist in Ordnung, sie unverändert zu lassen. + +Siehe zum Beispiel den Abschnitt `### Quotes` in `docs/de/llm-prompt.md`. + +//// + +## Anführungszeichen in Codeschnipseln { #quotes-in-code-snippets} + +//// tab | Test + +`pip install "foo[bar]"` + +Beispiele für Stringliterale in Codeschnipseln: `"this"`, `'that'`. + +Ein schwieriges Beispiel für Stringliterale in Codeschnipseln: `f"I like {'oranges' if orange else "apples"}"` + +Hardcore: `Yesterday, my friend wrote: "If you spell incorrectly correctly, you have spelled it incorrectly". To which I answered: "Correct, but 'incorrectly' is incorrectly not '"incorrectly"'"` + +//// + +//// tab | Info + +... Allerdings müssen Anführungszeichen in Codeschnipseln unverändert bleiben. + +//// + +## Codeblöcke { #code-blocks } + +//// tab | Test + +Ein Bash-Codebeispiel ... + +```bash +# Eine Begrüßung an das Universum ausgeben +echo "Hello universe" +``` + +... und ein Konsolen-Codebeispiel ... + +```console +$ fastapi run main.py + FastAPI Starting server + Searching for package file structure +``` + +... und noch ein Konsolen-Codebeispiel ... + +```console +// Ein Verzeichnis „Code“ erstellen +$ mkdir code +// In dieses Verzeichnis wechseln +$ cd code +``` + +... und ein Python-Codebeispiel ... + +```Python +wont_work() # Das wird nicht funktionieren 😱 +works(foo="bar") # Das funktioniert 🎉 +``` + +... und das war's. + +//// + +//// tab | Info + +Code in Codeblöcken sollte nicht verändert werden, mit Ausnahme von Kommentaren. + +Siehe Abschnitt `### Content of code blocks` im allgemeinen Prompt in `scripts/translate.py`. + +//// + +## Tabs und farbige Boxen { #tabs-and-colored-boxes } + +//// tab | Test + +/// info | Info +Etwas Text +/// + +/// note | Hinweis +Etwas Text +/// + +/// note | Technische Details +Etwas Text +/// + +/// check | Testen +Etwas Text +/// + +/// tip | Tipp +Etwas Text +/// + +/// warning | Achtung +Etwas Text +/// + +/// danger | Gefahr +Etwas Text +/// + +//// + +//// tab | Info + +Tabs und `Info`/`Note`/`Warning`/usw. Blöcke sollten die Übersetzung ihres Titels nach einem vertikalen Strich (`|`) erhalten. + +Siehe die Abschnitte `### Special blocks` und `### Tab blocks` im allgemeinen Prompt in `scripts/translate.py`. + +//// + +## Web- und interne Links { #web-and-internal-links } + +//// tab | Test + +Der Linktext sollte übersetzt werden, die Linkadresse sollte unverändert bleiben: + +* [Link zur Überschrift oben](#code-snippets) +* [Interner Link](index.md#installation){.internal-link target=_blank} +* Externer Link +* Link zu einem Stil +* Link zu einem Skript +* Link zu einem Bild + +Der Linktext sollte übersetzt werden, die Linkadresse sollte auf die Übersetzung zeigen: + +* FastAPI-Link + +//// + +//// tab | Info + +Links sollten übersetzt werden, aber ihre Adresse soll unverändert bleiben. Eine Ausnahme sind absolute Links zu Seiten der FastAPI-Dokumentation. In diesem Fall sollte auf die Übersetzung verlinkt werden. + +Siehe Abschnitt `### Links` im allgemeinen Prompt in `scripts/translate.py`. + +//// + +## HTML „abbr“-Elemente { #html-abbr-elements } + +//// tab | Test + +Hier einige Dinge, die in HTML-„abbr“-Elemente gepackt sind (einige sind erfunden): + +### Das abbr gibt eine vollständige Phrase { #the-abbr-gives-a-full-phrase } + +* GTD +* lt +* XWT +* PSGI + +### Das abbr gibt eine Erklärung { #the-abbr-gives-an-explanation } + +* Cluster +* Deep Learning + +### Das abbr gibt eine vollständige Phrase und eine Erklärung { #the-abbr-gives-a-full-phrase-and-an-explanation } + +* MDN +* I/O. + +//// + +//// tab | Info + +„title“-Attribute von „abbr“-Elementen werden nach bestimmten Anweisungen übersetzt. + +Übersetzungen können eigene „abbr“-Elemente hinzufügen, die das LLM nicht entfernen soll. Z. B. um englische Wörter zu erklären. + +Siehe Abschnitt `### HTML abbr elements` im allgemeinen Prompt in `scripts/translate.py`. + +//// + +## Überschriften { #headings } + +//// tab | Test + +### Eine Webapp entwickeln – ein Tutorial { #develop-a-webapp-a-tutorial } + +Hallo. + +### Typhinweise und -annotationen { #type-hints-and-annotations } + +Hallo wieder. + +### Super- und Subklassen { #super-and-subclasses } + +Hallo wieder. + +//// + +//// tab | Info + +Die einzige strenge Regel für Überschriften ist, dass das LLM den Hash-Teil in geschweiften Klammern unverändert lässt, damit Links nicht kaputtgehen. + +Siehe Abschnitt `### Headings` im allgemeinen Prompt in `scripts/translate.py`. + +Für einige sprachspezifische Anweisungen, siehe z. B. den Abschnitt `### Headings` in `docs/de/llm-prompt.md`. + +//// + +## In der Dokumentation verwendete Begriffe { #terms-used-in-the-docs } + +//// tab | Test + +* Sie +* Ihr + +* z. B. +* usw. + +* `foo` vom Typ `int` +* `bar` vom Typ `str` +* `baz` vom Typ `list` + +* das Tutorial – Benutzerhandbuch +* das Handbuch für fortgeschrittene Benutzer +* die SQLModel-Dokumentation +* die API-Dokumentation +* die automatische Dokumentation + +* Data Science +* Deep Learning +* Machine Learning +* Dependency Injection +* HTTP Basic-Authentifizierung +* HTTP Digest +* ISO-Format +* der JSON-Schema-Standard +* das JSON-Schema +* die Schema-Definition +* Password Flow +* Mobile + +* deprecatet +* designt +* ungültig +* on the fly +* Standard +* Default +* Groß-/Klein­schrei­bung ist relevant +* Groß-/Klein­schrei­bung ist nicht relevant + +* die Anwendung bereitstellen +* die Seite ausliefern + +* die App +* die Anwendung + +* der Request +* die Response +* die Error-Response + +* die Pfadoperation +* der Pfadoperation-Dekorator +* die Pfadoperation-Funktion + +* der Body +* der Requestbody +* der Responsebody +* der JSON-Body +* der Formularbody +* der Dateibody +* der Funktionskörper + +* der Parameter +* der Body-Parameter +* der Pfad-Parameter +* der Query-Parameter +* der Cookie-Parameter +* der Header-Parameter +* der Formular-Parameter +* der Funktionsparameter + +* das Event +* das Startup-Event +* das Hochfahren des Servers +* das Shutdown-Event +* das Lifespan-Event + +* der Handler +* der Eventhandler +* der Exceptionhandler +* handhaben + +* das Modell +* das Pydantic-Modell +* das Datenmodell +* das Datenbankmodell +* das Formularmodell +* das Modellobjekt + +* die Klasse +* die Basisklasse +* die Elternklasse +* die Subklasse +* die Kindklasse +* die Geschwisterklasse +* die Klassenmethode + +* der Header +* die Header +* der Autorisierungsheader +* der `Authorization`-Header +* der Forwarded-Header + +* das Dependency-Injection-System +* die Dependency +* das Dependable +* der Dependant + +* I/O-lastig +* CPU-lastig +* Nebenläufigkeit +* Parallelität +* Multiprocessing + +* die Umgebungsvariable +* die Umgebungsvariable +* der `PATH` +* die `PATH`-Umgebungsvariable + +* die Authentifizierung +* der Authentifizierungsanbieter +* die Autorisierung +* das Anmeldeformular +* der Autorisierungsanbieter +* der Benutzer authentisiert sich +* das System authentifiziert den Benutzer + +* Das CLI +* Das Kommandozeileninterface + +* der Server +* der Client + +* der Cloudanbieter +* der Clouddienst + +* die Entwicklung +* die Entwicklungsphasen + +* das Dict +* das Dictionary +* die Enumeration +* das Enum +* das Enum-Member + +* der Encoder +* der Decoder +* kodieren +* dekodieren + +* die Exception +* werfen + +* der Ausdruck +* die Anweisung + +* das Frontend +* das Backend + +* die GitHub-Diskussion +* das GitHub-Issue + +* die Leistung +* die Leistungsoptimierung + +* der Rückgabetyp +* der Rückgabewert + +* die Sicherheit +* das Sicherheitsschema + +* der Task +* der Hintergrundtask +* die Taskfunktion + +* das Template +* die Template-Engine + +* die Typannotation +* der Typhinweis + +* der Serverworker +* der Uvicorn-Worker +* der Gunicorn-Worker +* der Workerprozess +* die Workerklasse +* die Workload + +* das Deployment +* deployen + +* das SDK +* das Software Development Kit + +* der `APIRouter` +* die `requirements.txt` +* das Bearer-Token +* der Breaking Change +* der Bug +* der Button +* das Callable +* der Code +* der Commit +* der Contextmanager +* die Coroutine +* die Datenbanksession +* die Festplatte +* die Domain +* die Engine +* das Fake-X +* die HTTP-GET-Methode +* das Item +* die Bibliothek +* der Lifespan +* der Lock +* die Middleware +* die Mobile-Anwendung +* das Modul +* das Mounten +* das Netzwerk +* das Origin +* Die Überschreibung +* die Payload +* der Prozessor +* die Property +* der Proxy +* der Pull Request +* die Query +* der RAM +* der entfernte Rechner +* der Statuscode +* der String +* der Tag +* das Webframework +* die Wildcard +* zurückgeben +* validieren + +//// + +//// tab | Info + +Dies ist eine nicht vollständige und nicht normative Liste von (meist) technischen Begriffen, die in der Dokumentation vorkommen. Sie kann dem Promptdesigner helfen herauszufinden, bei welchen Begriffen das LLM Unterstützung braucht. Zum Beispiel, wenn es eine gute Übersetzung immer wieder auf eine suboptimale Übersetzung zurücksetzt. Oder wenn es Probleme hat, einen Begriff in Ihrer Sprache zu konjugieren/deklinieren. + +Siehe z. B. den Abschnitt `### List of English terms and their preferred German translations` in `docs/de/llm-prompt.md`. + +//// diff --git a/docs/de/docs/about/index.md b/docs/de/docs/about/index.md new file mode 100644 index 0000000..5e9c6b6 --- /dev/null +++ b/docs/de/docs/about/index.md @@ -0,0 +1,3 @@ +# Über { #about } + +Über FastAPI, sein Design, seine Inspiration und mehr. 🤓 diff --git a/docs/de/docs/advanced/additional-responses.md b/docs/de/docs/advanced/additional-responses.md new file mode 100644 index 0000000..218dd6c --- /dev/null +++ b/docs/de/docs/advanced/additional-responses.md @@ -0,0 +1,247 @@ +# Zusätzliche Responses in OpenAPI { #additional-responses-in-openapi } + +/// warning | Achtung + +Dies ist ein eher fortgeschrittenes Thema. + +Wenn Sie mit **FastAPI** beginnen, benötigen Sie dies möglicherweise nicht. + +/// + +Sie können zusätzliche Responses mit zusätzlichen Statuscodes, Medientypen, Beschreibungen, usw. deklarieren. + +Diese zusätzlichen Responses werden in das OpenAPI-Schema aufgenommen, sodass sie auch in der API-Dokumentation erscheinen. + +Für diese zusätzlichen Responses müssen Sie jedoch sicherstellen, dass Sie eine `Response`, wie etwa `JSONResponse`, direkt zurückgeben, mit Ihrem Statuscode und Inhalt. + +## Zusätzliche Response mit `model` { #additional-response-with-model } + +Sie können Ihren *Pfadoperation-Dekoratoren* einen Parameter `responses` übergeben. + +Der nimmt ein `dict` entgegen, die Schlüssel sind Statuscodes für jede Response, wie etwa `200`, und die Werte sind andere `dict`s mit den Informationen für jede Response. + +Jedes dieser Response-`dict`s kann einen Schlüssel `model` haben, welcher ein Pydantic-Modell enthält, genau wie `response_model`. + +**FastAPI** nimmt dieses Modell, generiert dessen JSON-Schema und fügt es an der richtigen Stelle in OpenAPI ein. + +Um beispielsweise eine weitere Response mit dem Statuscode `404` und einem Pydantic-Modell `Message` zu deklarieren, können Sie schreiben: + +{* ../../docs_src/additional_responses/tutorial001.py hl[18,22] *} + +/// note | Hinweis + +Beachten Sie, dass Sie die `JSONResponse` direkt zurückgeben müssen. + +/// + +/// info | Info + +Der `model`-Schlüssel ist nicht Teil von OpenAPI. + +**FastAPI** nimmt das Pydantic-Modell von dort, generiert das JSON-Schema und fügt es an der richtigen Stelle ein. + +Die richtige Stelle ist: + +* Im Schlüssel `content`, der als Wert ein weiteres JSON-Objekt (`dict`) hat, welches Folgendes enthält: + * Ein Schlüssel mit dem Medientyp, z. B. `application/json`, der als Wert ein weiteres JSON-Objekt hat, welches Folgendes enthält: + * Ein Schlüssel `schema`, der als Wert das JSON-Schema aus dem Modell hat, hier ist die richtige Stelle. + * **FastAPI** fügt hier eine Referenz auf die globalen JSON-Schemas an einer anderen Stelle in Ihrer OpenAPI hinzu, anstatt es direkt einzubinden. Auf diese Weise können andere Anwendungen und Clients diese JSON-Schemas direkt verwenden, bessere Tools zur Codegenerierung bereitstellen, usw. + +/// + +Die generierten Responses in der OpenAPI für diese *Pfadoperation* lauten: + +```JSON hl_lines="3-12" +{ + "responses": { + "404": { + "description": "Additional Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Message" + } + } + } + }, + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Item" + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + } +} +``` + +Die Schemas werden von einer anderen Stelle innerhalb des OpenAPI-Schemas referenziert: + +```JSON hl_lines="4-16" +{ + "components": { + "schemas": { + "Message": { + "title": "Message", + "required": [ + "message" + ], + "type": "object", + "properties": { + "message": { + "title": "Message", + "type": "string" + } + } + }, + "Item": { + "title": "Item", + "required": [ + "id", + "value" + ], + "type": "object", + "properties": { + "id": { + "title": "Id", + "type": "string" + }, + "value": { + "title": "Value", + "type": "string" + } + } + }, + "ValidationError": { + "title": "ValidationError", + "required": [ + "loc", + "msg", + "type" + ], + "type": "object", + "properties": { + "loc": { + "title": "Location", + "type": "array", + "items": { + "type": "string" + } + }, + "msg": { + "title": "Message", + "type": "string" + }, + "type": { + "title": "Error Type", + "type": "string" + } + } + }, + "HTTPValidationError": { + "title": "HTTPValidationError", + "type": "object", + "properties": { + "detail": { + "title": "Detail", + "type": "array", + "items": { + "$ref": "#/components/schemas/ValidationError" + } + } + } + } + } + } +} +``` + +## Zusätzliche Medientypen für die Haupt-Response { #additional-media-types-for-the-main-response } + +Sie können denselben `responses`-Parameter verwenden, um verschiedene Medientypen für dieselbe Haupt-Response hinzuzufügen. + +Sie können beispielsweise einen zusätzlichen Medientyp `image/png` hinzufügen und damit deklarieren, dass Ihre *Pfadoperation* ein JSON-Objekt (mit dem Medientyp `application/json`) oder ein PNG-Bild zurückgeben kann: + +{* ../../docs_src/additional_responses/tutorial002.py hl[19:24,28] *} + +/// note | Hinweis + +Beachten Sie, dass Sie das Bild direkt mit einer `FileResponse` zurückgeben müssen. + +/// + +/// info | Info + +Sofern Sie in Ihrem Parameter `responses` nicht explizit einen anderen Medientyp angeben, geht FastAPI davon aus, dass die Response denselben Medientyp wie die Haupt-Response-Klasse hat (Standardmäßig `application/json`). + +Wenn Sie jedoch eine benutzerdefinierte Response-Klasse mit `None` als Medientyp angegeben haben, verwendet FastAPI `application/json` für jede zusätzliche Response, die über ein zugehöriges Modell verfügt. + +/// + +## Informationen kombinieren { #combining-information } + +Sie können auch Response-Informationen von mehreren Stellen kombinieren, einschließlich der Parameter `response_model`, `status_code` und `responses`. + +Sie können ein `response_model` deklarieren, indem Sie den Standardstatuscode `200` (oder bei Bedarf einen benutzerdefinierten) verwenden und dann zusätzliche Informationen für dieselbe Response in `responses` direkt im OpenAPI-Schema deklarieren. + +**FastAPI** behält die zusätzlichen Informationen aus `responses` und kombiniert sie mit dem JSON-Schema aus Ihrem Modell. + +Sie können beispielsweise eine Response mit dem Statuscode `404` deklarieren, die ein Pydantic-Modell verwendet und über eine benutzerdefinierte Beschreibung (`description`) verfügt. + +Und eine Response mit dem Statuscode `200`, die Ihr `response_model` verwendet, aber ein benutzerdefiniertes Beispiel (`example`) enthält: + +{* ../../docs_src/additional_responses/tutorial003.py hl[20:31] *} + +Es wird alles kombiniert und in Ihre OpenAPI eingebunden und in der API-Dokumentation angezeigt: + + + +## Vordefinierte und benutzerdefinierte Responses kombinieren { #combine-predefined-responses-and-custom-ones } + +Möglicherweise möchten Sie einige vordefinierte Responses haben, die für viele *Pfadoperationen* gelten, Sie möchten diese jedoch mit benutzerdefinierten Responses kombinieren, die für jede *Pfadoperation* erforderlich sind. + +In diesen Fällen können Sie die Python-Technik zum „Entpacken“ eines `dict`s mit `**dict_to_unpack` verwenden: + +```Python +old_dict = { + "old key": "old value", + "second old key": "second old value", +} +new_dict = {**old_dict, "new key": "new value"} +``` + +Hier wird `new_dict` alle Schlüssel-Wert-Paare von `old_dict` plus das neue Schlüssel-Wert-Paar enthalten: + +```Python +{ + "old key": "old value", + "second old key": "second old value", + "new key": "new value", +} +``` + +Mit dieser Technik können Sie einige vordefinierte Responses in Ihren *Pfadoperationen* wiederverwenden und sie mit zusätzlichen benutzerdefinierten Responses kombinieren. + +Zum Beispiel: + +{* ../../docs_src/additional_responses/tutorial004.py hl[13:17,26] *} + +## Weitere Informationen zu OpenAPI-Responses { #more-information-about-openapi-responses } + +Um zu sehen, was genau Sie in die Responses aufnehmen können, können Sie die folgenden Abschnitte in der OpenAPI-Spezifikation überprüfen: + +* OpenAPI Responses Object, enthält das `Response Object`. +* OpenAPI Response Object, Sie können alles davon direkt in jede Response innerhalb Ihres `responses`-Parameter einfügen. Einschließlich `description`, `headers`, `content` (darin deklarieren Sie verschiedene Medientypen und JSON-Schemas) und `links`. diff --git a/docs/de/docs/advanced/additional-status-codes.md b/docs/de/docs/advanced/additional-status-codes.md new file mode 100644 index 0000000..f948e18 --- /dev/null +++ b/docs/de/docs/advanced/additional-status-codes.md @@ -0,0 +1,41 @@ +# Zusätzliche Statuscodes { #additional-status-codes } + +Standardmäßig liefert **FastAPI** die Responses als `JSONResponse` zurück und fügt den Inhalt, den Sie aus Ihrer *Pfadoperation* zurückgeben, in diese `JSONResponse` ein. + +Es wird der Default-Statuscode oder derjenige verwendet, den Sie in Ihrer *Pfadoperation* festgelegt haben. + +## Zusätzliche Statuscodes { #additional-status-codes_1 } + +Wenn Sie neben dem Hauptstatuscode weitere Statuscodes zurückgeben möchten, können Sie dies tun, indem Sie direkt eine `Response` zurückgeben, wie etwa eine `JSONResponse`, und den zusätzlichen Statuscode direkt festlegen. + +Angenommen, Sie möchten eine *Pfadoperation* haben, die das Aktualisieren von Artikeln ermöglicht und bei Erfolg den HTTP-Statuscode 200 „OK“ zurückgibt. + +Sie möchten aber auch, dass sie neue Artikel akzeptiert. Und wenn die Artikel vorher nicht vorhanden waren, werden diese Artikel erstellt und der HTTP-Statuscode 201 „Created“ zurückgegeben. + +Um dies zu erreichen, importieren Sie `JSONResponse`, und geben Sie Ihren Inhalt direkt zurück, indem Sie den gewünschten `status_code` setzen: + +{* ../../docs_src/additional_status_codes/tutorial001_an_py310.py hl[4,25] *} + +/// warning | Achtung + +Wenn Sie eine `Response` direkt zurückgeben, wie im obigen Beispiel, wird sie direkt zurückgegeben. + +Sie wird nicht mit einem Modell usw. serialisiert. + +Stellen Sie sicher, dass sie die gewünschten Daten enthält und dass die Werte gültiges JSON sind (wenn Sie `JSONResponse` verwenden). + +/// + +/// note | Technische Details + +Sie können auch `from starlette.responses import JSONResponse` verwenden. + +**FastAPI** bietet dieselben `starlette.responses` auch via `fastapi.responses` an, als Annehmlichkeit für Sie, den Entwickler. Die meisten verfügbaren Responses kommen aber direkt von Starlette. Dasselbe gilt für `status`. + +/// + +## OpenAPI- und API-Dokumentation { #openapi-and-api-docs } + +Wenn Sie zusätzliche Statuscodes und Responses direkt zurückgeben, werden diese nicht in das OpenAPI-Schema (die API-Dokumentation) aufgenommen, da FastAPI keine Möglichkeit hat, im Voraus zu wissen, was Sie zurückgeben werden. + +Sie können das jedoch in Ihrem Code dokumentieren, indem Sie Folgendes verwenden: [Zusätzliche Responses](additional-responses.md){.internal-link target=_blank}. diff --git a/docs/de/docs/advanced/advanced-dependencies.md b/docs/de/docs/advanced/advanced-dependencies.md new file mode 100644 index 0000000..e60df28 --- /dev/null +++ b/docs/de/docs/advanced/advanced-dependencies.md @@ -0,0 +1,163 @@ +# Fortgeschrittene Abhängigkeiten { #advanced-dependencies } + +## Parametrisierte Abhängigkeiten { #parameterized-dependencies } + +Alle Abhängigkeiten, die wir bisher gesehen haben, waren festgelegte Funktionen oder Klassen. + +Es kann jedoch Fälle geben, in denen Sie Parameter für eine Abhängigkeit festlegen möchten, ohne viele verschiedene Funktionen oder Klassen zu deklarieren. + +Stellen wir uns vor, wir möchten eine Abhängigkeit haben, die prüft, ob ein Query-Parameter `q` einen vordefinierten Inhalt hat. + +Aber wir wollen diesen vordefinierten Inhalt per Parameter festlegen können. + +## Eine „aufrufbare“ Instanz { #a-callable-instance } + +In Python gibt es eine Möglichkeit, eine Instanz einer Klasse „aufrufbar“ zu machen. + +Nicht die Klasse selbst (die bereits aufrufbar ist), sondern eine Instanz dieser Klasse. + +Dazu deklarieren wir eine Methode `__call__`: + +{* ../../docs_src/dependencies/tutorial011_an_py39.py hl[12] *} + +In diesem Fall ist dieses `__call__` das, was **FastAPI** verwendet, um nach zusätzlichen Parametern und Unterabhängigkeiten zu suchen, und das ist es auch, was später aufgerufen wird, um einen Wert an den Parameter in Ihrer *Pfadoperation-Funktion* zu übergeben. + +## Die Instanz parametrisieren { #parameterize-the-instance } + +Und jetzt können wir `__init__` verwenden, um die Parameter der Instanz zu deklarieren, die wir zum „Parametrisieren“ der Abhängigkeit verwenden können: + +{* ../../docs_src/dependencies/tutorial011_an_py39.py hl[9] *} + +In diesem Fall wird **FastAPI** `__init__` nie berühren oder sich darum kümmern, wir werden es direkt in unserem Code verwenden. + +## Eine Instanz erstellen { #create-an-instance } + +Wir könnten eine Instanz dieser Klasse erstellen mit: + +{* ../../docs_src/dependencies/tutorial011_an_py39.py hl[18] *} + +Und auf diese Weise können wir unsere Abhängigkeit „parametrisieren“, die jetzt `"bar"` enthält, als das Attribut `checker.fixed_content`. + +## Die Instanz als Abhängigkeit verwenden { #use-the-instance-as-a-dependency } + +Dann könnten wir diesen `checker` in einem `Depends(checker)` anstelle von `Depends(FixedContentQueryChecker)` verwenden, da die Abhängigkeit die Instanz `checker` und nicht die Klasse selbst ist. + +Und beim Auflösen der Abhängigkeit ruft **FastAPI** diesen `checker` wie folgt auf: + +```Python +checker(q="somequery") +``` + +... und übergibt, was immer das als Wert dieser Abhängigkeit in unserer *Pfadoperation-Funktion* zurückgibt, als den Parameter `fixed_content_included`: + +{* ../../docs_src/dependencies/tutorial011_an_py39.py hl[22] *} + +/// tip | Tipp + +Das alles mag gekünstelt wirken. Und es ist möglicherweise noch nicht ganz klar, welchen Nutzen das hat. + +Diese Beispiele sind bewusst einfach gehalten, zeigen aber, wie alles funktioniert. + +In den Kapiteln zum Thema Sicherheit gibt es Hilfsfunktionen, die auf die gleiche Weise implementiert werden. + +Wenn Sie das hier alles verstanden haben, wissen Sie bereits, wie diese Sicherheits-Hilfswerkzeuge unter der Haube funktionieren. + +/// + +## Abhängigkeiten mit `yield`, `HTTPException`, `except` und Hintergrundtasks { #dependencies-with-yield-httpexception-except-and-background-tasks } + +/// warning | Achtung + +Sie benötigen diese technischen Details höchstwahrscheinlich nicht. + +Diese Details sind hauptsächlich nützlich, wenn Sie eine FastAPI-Anwendung haben, die älter als 0.121.0 ist, und Sie auf Probleme mit Abhängigkeiten mit `yield` stoßen. + +/// + +Abhängigkeiten mit `yield` haben sich im Laufe der Zeit weiterentwickelt, um verschiedene Anwendungsfälle abzudecken und einige Probleme zu beheben, hier ist eine Zusammenfassung der Änderungen. + +### Abhängigkeiten mit `yield` und `scope` { #dependencies-with-yield-and-scope } + +In Version 0.121.0 hat FastAPI Unterstützung für `Depends(scope="function")` für Abhängigkeiten mit `yield` hinzugefügt. + +Mit `Depends(scope="function")` wird der Exit-Code nach `yield` direkt nach dem Ende der *Pfadoperation-Funktion* ausgeführt, bevor die Response an den Client gesendet wird. + +Und bei Verwendung von `Depends(scope="request")` (dem Default) wird der Exit-Code nach `yield` ausgeführt, nachdem die Response gesendet wurde. + +Mehr dazu finden Sie in der Dokumentation zu [Abhängigkeiten mit `yield` – Frühes Beenden und `scope`](../tutorial/dependencies/dependencies-with-yield.md#early-exit-and-scope). + +### Abhängigkeiten mit `yield` und `StreamingResponse`, Technische Details { #dependencies-with-yield-and-streamingresponse-technical-details } + +Vor FastAPI 0.118.0 wurde bei Verwendung einer Abhängigkeit mit `yield` der Exit-Code nach der *Pfadoperation-Funktion* ausgeführt, aber unmittelbar bevor die Response gesendet wurde. + +Die Absicht war, Ressourcen nicht länger als nötig zu halten, während darauf gewartet wird, dass die Response durchs Netzwerk reist. + +Diese Änderung bedeutete auch, dass bei Rückgabe einer `StreamingResponse` der Exit-Code der Abhängigkeit mit `yield` bereits ausgeführt worden wäre. + +Wenn Sie beispielsweise eine Datenbanksession in einer Abhängigkeit mit `yield` hatten, konnte die `StreamingResponse` diese Session während des Streamens von Daten nicht verwenden, weil die Session im Exit-Code nach `yield` bereits geschlossen worden wäre. + +Dieses Verhalten wurde in 0.118.0 zurückgenommen, sodass der Exit-Code nach `yield` ausgeführt wird, nachdem die Response gesendet wurde. + +/// info | Info + +Wie Sie unten sehen werden, ähnelt dies sehr dem Verhalten vor Version 0.106.0, jedoch mit mehreren Verbesserungen und Bugfixes für Sonderfälle. + +/// + +#### Anwendungsfälle mit frühem Exit-Code { #use-cases-with-early-exit-code } + +Es gibt einige Anwendungsfälle mit spezifischen Bedingungen, die vom alten Verhalten profitieren könnten, den Exit-Code von Abhängigkeiten mit `yield` vor dem Senden der Response auszuführen. + +Stellen Sie sich zum Beispiel vor, Sie haben Code, der in einer Abhängigkeit mit `yield` eine Datenbanksession verwendet, nur um einen Benutzer zu verifizieren, die Datenbanksession wird aber in der *Pfadoperation-Funktion* nie wieder verwendet, sondern nur in der Abhängigkeit, und die Response benötigt lange, um gesendet zu werden, wie eine `StreamingResponse`, die Daten langsam sendet, aus irgendeinem Grund aber die Datenbank nicht verwendet. + +In diesem Fall würde die Datenbanksession gehalten, bis das Senden der Response abgeschlossen ist, aber wenn Sie sie nicht verwenden, wäre es nicht notwendig, sie zu halten. + +So könnte es aussehen: + +{* ../../docs_src/dependencies/tutorial013_an_py310.py *} + +Der Exit-Code, das automatische Schließen der `Session` in: + +{* ../../docs_src/dependencies/tutorial013_an_py310.py ln[19:21] *} + +... würde ausgeführt, nachdem die Response das langsame Senden der Daten beendet: + +{* ../../docs_src/dependencies/tutorial013_an_py310.py ln[30:38] hl[31:33] *} + +Da `generate_stream()` die Datenbanksession jedoch nicht verwendet, ist es nicht wirklich notwendig, die Session während des Sendens der Response offen zu halten. + +Wenn Sie diesen spezifischen Anwendungsfall mit SQLModel (oder SQLAlchemy) haben, könnten Sie die Session explizit schließen, nachdem Sie sie nicht mehr benötigen: + +{* ../../docs_src/dependencies/tutorial014_an_py310.py ln[24:28] hl[28] *} + +Auf diese Weise würde die Session die Datenbankverbindung freigeben, sodass andere Requests sie verwenden könnten. + +Wenn Sie einen anderen Anwendungsfall haben, der ein frühes Beenden aus einer Abhängigkeit mit `yield` benötigt, erstellen Sie bitte eine GitHub-Diskussion-Frage mit Ihrem spezifischen Anwendungsfall und warum Sie von einem frühen Schließen für Abhängigkeiten mit `yield` profitieren würden. + +Wenn es überzeugende Anwendungsfälle für ein frühes Schließen bei Abhängigkeiten mit `yield` gibt, würde ich erwägen, eine neue Möglichkeit hinzuzufügen, um ein frühes Schließen optional zu aktivieren. + +### Abhängigkeiten mit `yield` und `except`, Technische Details { #dependencies-with-yield-and-except-technical-details } + +Vor FastAPI 0.110.0 war es so, dass wenn Sie eine Abhängigkeit mit `yield` verwendet und dann in dieser Abhängigkeit mit `except` eine Exception abgefangen haben und die Exception nicht erneut geworfen haben, die Exception automatisch an beliebige Exceptionhandler oder den Handler für interne Serverfehler weitergereicht/weitergeworfen wurde. + +Dies wurde in Version 0.110.0 geändert, um unbehandelten Speicherverbrauch durch weitergeleitete Exceptions ohne Handler (interne Serverfehler) zu beheben und um es mit dem Verhalten von normalem Python-Code konsistent zu machen. + +### Hintergrundtasks und Abhängigkeiten mit `yield`, Technische Details { #background-tasks-and-dependencies-with-yield-technical-details } + +Vor FastAPI 0.106.0 war das Werfen von Exceptions nach `yield` nicht möglich, der Exit-Code in Abhängigkeiten mit `yield` wurde ausgeführt, nachdem die Response gesendet wurde, sodass [Exceptionhandler](../tutorial/handling-errors.md#install-custom-exception-handlers){.internal-link target=_blank} bereits ausgeführt worden wären. + +Dies war so designt, hauptsächlich um die Verwendung derselben von Abhängigkeiten „geyieldeten“ Objekte in Hintergrundtasks zu ermöglichen, da der Exit-Code erst ausgeführt wurde, nachdem die Hintergrundtasks abgeschlossen waren. + +Dies wurde in FastAPI 0.106.0 geändert mit der Absicht, keine Ressourcen zu halten, während darauf gewartet wird, dass die Response durchs Netzwerk reist. + +/// tip | Tipp + +Zusätzlich ist ein Hintergrundtask normalerweise ein unabhängiger Logikblock, der separat gehandhabt werden sollte, mit eigenen Ressourcen (z. B. eigener Datenbankverbindung). + +So haben Sie wahrscheinlich saubereren Code. + +/// + +Wenn Sie sich bisher auf dieses Verhalten verlassen haben, sollten Sie jetzt die Ressourcen für Hintergrundtasks innerhalb des Hintergrundtasks selbst erstellen und intern nur Daten verwenden, die nicht von den Ressourcen von Abhängigkeiten mit `yield` abhängen. + +Anstatt beispielsweise dieselbe Datenbanksession zu verwenden, würden Sie innerhalb des Hintergrundtasks eine neue Datenbanksession erstellen und die Objekte aus der Datenbank mithilfe dieser neuen Session beziehen. Und anstatt das Objekt aus der Datenbank als Parameter an die Hintergrundtask-Funktion zu übergeben, würden Sie die ID dieses Objekts übergeben und das Objekt dann innerhalb der Hintergrundtask-Funktion erneut beziehen. diff --git a/docs/de/docs/advanced/async-tests.md b/docs/de/docs/advanced/async-tests.md new file mode 100644 index 0000000..ad82452 --- /dev/null +++ b/docs/de/docs/advanced/async-tests.md @@ -0,0 +1,99 @@ +# Asynchrone Tests { #async-tests } + +Sie haben bereits gesehen, wie Sie Ihre **FastAPI**-Anwendungen mit dem bereitgestellten `TestClient` testen. Bisher haben Sie nur gesehen, wie man synchrone Tests schreibt, ohne `async`-Funktionen zu verwenden. + +Die Möglichkeit, in Ihren Tests asynchrone Funktionen zu verwenden, könnte beispielsweise nützlich sein, wenn Sie Ihre Datenbank asynchron abfragen. Stellen Sie sich vor, Sie möchten das Senden von Requests an Ihre FastAPI-Anwendung testen und dann überprüfen, ob Ihr Backend die richtigen Daten erfolgreich in die Datenbank geschrieben hat, während Sie eine asynchrone Datenbankbibliothek verwenden. + +Schauen wir uns an, wie wir das machen können. + +## pytest.mark.anyio { #pytest-mark-anyio } + +Wenn wir in unseren Tests asynchrone Funktionen aufrufen möchten, müssen unsere Testfunktionen asynchron sein. AnyIO stellt hierfür ein nettes Plugin zur Verfügung, mit dem wir festlegen können, dass einige Testfunktionen asynchron aufgerufen werden sollen. + +## HTTPX { #httpx } + +Auch wenn Ihre **FastAPI**-Anwendung normale `def`-Funktionen anstelle von `async def` verwendet, handelt es sich darunter immer noch um eine `async`-Anwendung. + +Der `TestClient` betreibt unter der Haube etwas Magie, um die asynchrone FastAPI-Anwendung in Ihren normalen `def`-Testfunktionen, mithilfe von Standard-Pytest aufzurufen. Aber diese Magie funktioniert nicht mehr, wenn wir sie in asynchronen Funktionen verwenden. Durch die asynchrone Ausführung unserer Tests können wir den `TestClient` nicht mehr in unseren Testfunktionen verwenden. + +Der `TestClient` basiert auf HTTPX und glücklicherweise können wir es direkt verwenden, um die API zu testen. + +## Beispiel { #example } + +Betrachten wir als einfaches Beispiel eine Dateistruktur ähnlich der in [Größere Anwendungen](../tutorial/bigger-applications.md){.internal-link target=_blank} und [Testen](../tutorial/testing.md){.internal-link target=_blank}: + +``` +. +├── app +│   ├── __init__.py +│   ├── main.py +│   └── test_main.py +``` + +Die Datei `main.py` hätte als Inhalt: + +{* ../../docs_src/async_tests/main.py *} + +Die Datei `test_main.py` hätte die Tests für `main.py`, das könnte jetzt so aussehen: + +{* ../../docs_src/async_tests/test_main.py *} + +## Es ausführen { #run-it } + +Sie können Ihre Tests wie gewohnt ausführen mit: + +
+ +```console +$ pytest + +---> 100% +``` + +
+ +## Im Detail { #in-detail } + +Der Marker `@pytest.mark.anyio` teilt pytest mit, dass diese Testfunktion asynchron aufgerufen werden soll: + +{* ../../docs_src/async_tests/test_main.py hl[7] *} + +/// tip | Tipp + +Beachten Sie, dass die Testfunktion jetzt `async def` ist und nicht nur `def` wie zuvor, wenn Sie den `TestClient` verwenden. + +/// + +Dann können wir einen `AsyncClient` mit der App erstellen und mit `await` asynchrone Requests an ihn senden. + +{* ../../docs_src/async_tests/test_main.py hl[9:12] *} + +Das ist das Äquivalent zu: + +```Python +response = client.get('/') +``` + +... welches wir verwendet haben, um unsere Requests mit dem `TestClient` zu machen. + +/// tip | Tipp + +Beachten Sie, dass wir async/await mit dem neuen `AsyncClient` verwenden – der Request ist asynchron. + +/// + +/// warning | Achtung + +Falls Ihre Anwendung auf Lifespan-Events angewiesen ist, der `AsyncClient` löst diese Events nicht aus. Um sicherzustellen, dass sie ausgelöst werden, verwenden Sie `LifespanManager` von florimondmanca/asgi-lifespan. + +/// + +## Andere asynchrone Funktionsaufrufe { #other-asynchronous-function-calls } + +Da die Testfunktion jetzt asynchron ist, können Sie in Ihren Tests neben dem Senden von Requests an Ihre FastAPI-Anwendung jetzt auch andere `async`-Funktionen aufrufen (und `await`en), genau so, wie Sie diese an anderer Stelle in Ihrem Code aufrufen würden. + +/// tip | Tipp + +Wenn Sie einen `RuntimeError: Task attached to a different loop` erhalten, wenn Sie asynchrone Funktionsaufrufe in Ihre Tests integrieren (z. B. bei Verwendung von MongoDBs MotorClient), dann denken Sie daran, Objekte zu instanziieren, die einen Event Loop nur innerhalb asynchroner Funktionen benötigen, z. B. einen `@app.on_event("startup")`-Callback. + +/// diff --git a/docs/de/docs/advanced/behind-a-proxy.md b/docs/de/docs/advanced/behind-a-proxy.md new file mode 100644 index 0000000..183d0be --- /dev/null +++ b/docs/de/docs/advanced/behind-a-proxy.md @@ -0,0 +1,466 @@ +# Hinter einem Proxy { #behind-a-proxy } + +In vielen Situationen würden Sie einen **Proxy** wie Traefik oder Nginx vor Ihrer FastAPI-App verwenden. + +Diese Proxys könnten HTTPS-Zertifikate und andere Dinge handhaben. + +## Proxy-Forwarded-Header { #proxy-forwarded-headers } + +Ein **Proxy** vor Ihrer Anwendung würde normalerweise einige Header on-the-fly setzen, bevor er die Requests an den **Server** sendet, um den Server wissen zu lassen, dass der Request vom Proxy **weitergeleitet** wurde, einschließlich der ursprünglichen (öffentlichen) URL, inklusive der Domain, dass HTTPS verwendet wird, usw. + +Das **Server**-Programm (z. B. **Uvicorn** via **FastAPI CLI**) ist in der Lage, diese Header zu interpretieren und diese Information dann an Ihre Anwendung weiterzugeben. + +Aber aus Sicherheitsgründen, da der Server nicht weiß, dass er hinter einem vertrauenswürdigen Proxy läuft, wird er diese Header nicht interpretieren. + +/// note | Technische Details + +Die Proxy-Header sind: + +* X-Forwarded-For +* X-Forwarded-Proto +* X-Forwarded-Host + +/// + +### Proxy-Forwarded-Header aktivieren { #enable-proxy-forwarded-headers } + +Sie können FastAPI CLI mit der *CLI-Option* `--forwarded-allow-ips` starten und die IP-Adressen übergeben, denen vertraut werden soll, um diese Forwarded-Header zu lesen. + +Wenn Sie es auf `--forwarded-allow-ips="*"` setzen, würde es allen eingehenden IPs vertrauen. + +Wenn Ihr **Server** hinter einem vertrauenswürdigen **Proxy** sitzt und nur der Proxy mit ihm spricht, würde dies dazu führen, dass er die IP dieses **Proxys** akzeptiert, was auch immer sie ist. + +
+ +```console +$ fastapi run --forwarded-allow-ips="*" + +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +``` + +
+ +### Weiterleitungen mit HTTPS { #redirects-with-https } + +Angenommen, Sie definieren eine *Pfadoperation* `/items/`: + +{* ../../docs_src/behind_a_proxy/tutorial001_01.py hl[6] *} + +Wenn der Client versucht, zu `/items` zu gehen, würde er standardmäßig zu `/items/` umgeleitet. + +Aber bevor Sie die *CLI-Option* `--forwarded-allow-ips` setzen, könnte er zu `http://localhost:8000/items/` umleiten. + +Aber möglicherweise wird Ihre Anwendung unter `https://mysuperapp.com` gehostet, und die Weiterleitung sollte zu `https://mysuperapp.com/items/` erfolgen. + +Durch Setzen von `--proxy-headers` kann FastAPI jetzt an den richtigen Ort umleiten. 😎 + +``` +https://mysuperapp.com/items/ +``` + +/// tip | Tipp + +Wenn Sie mehr über HTTPS erfahren möchten, lesen Sie den Leitfaden [Über HTTPS](../deployment/https.md){.internal-link target=_blank}. + +/// + +### Wie Proxy-Forwarded-Header funktionieren { #how-proxy-forwarded-headers-work } + +Hier ist eine visuelle Darstellung, wie der **Proxy** weitergeleitete Header zwischen dem Client und dem **Anwendungsserver** hinzufügt: + +```mermaid +sequenceDiagram + participant Client + participant Proxy as Proxy/Loadbalancer + participant Server as FastAPI Server + + Client->>Proxy: HTTPS-Request
Host: mysuperapp.com
Pfad: /items + + Note over Proxy: Proxy fügt Forwarded-Header hinzu + + Proxy->>Server: HTTP-Request
X-Forwarded-For: [client IP]
X-Forwarded-Proto: https
X-Forwarded-Host: mysuperapp.com
Pfad: /items + + Note over Server: Server interpretiert die Header
(wenn --forwarded-allow-ips gesetzt ist) + + Server->>Proxy: HTTP-Response
mit correkten HTTPS-URLs + + Proxy->>Client: HTTPS-Response +``` + +Der **Proxy** fängt den ursprünglichen Client-Request ab und fügt die speziellen *Forwarded*-Header (`X-Forwarded-*`) hinzu, bevor er den Request an den **Anwendungsserver** weitergibt. + +Diese Header bewahren Informationen über den ursprünglichen Request, die sonst verloren gingen: + +* **X-Forwarded-For**: Die ursprüngliche IP-Adresse des Clients +* **X-Forwarded-Proto**: Das ursprüngliche Protokoll (`https`) +* **X-Forwarded-Host**: Der ursprüngliche Host (`mysuperapp.com`) + +Wenn **FastAPI CLI** mit `--forwarded-allow-ips` konfiguriert ist, vertraut es diesen Headern und verwendet sie, z. B. um die korrekten URLs in Weiterleitungen zu erzeugen. + +## Proxy mit einem abgetrennten Pfadpräfix { #proxy-with-a-stripped-path-prefix } + +Sie könnten einen Proxy haben, der Ihrer Anwendung ein Pfadpräfix hinzufügt. + +In diesen Fällen können Sie `root_path` verwenden, um Ihre Anwendung zu konfigurieren. + +Der `root_path` ist ein Mechanismus, der von der ASGI-Spezifikation bereitgestellt wird (auf der FastAPI via Starlette aufbaut). + +Der `root_path` wird verwendet, um diese speziellen Fälle zu handhaben. + +Und er wird auch intern beim Mounten von Unteranwendungen verwendet. + +Ein Proxy mit einem abgetrennten Pfadpräfix bedeutet in diesem Fall, dass Sie einen Pfad unter `/app` in Ihrem Code deklarieren könnten, dann aber, eine Ebene darüber, den Proxy hinzufügen, der Ihre **FastAPI**-Anwendung unter einem Pfad wie `/api/v1` platziert. + +In diesem Fall würde der ursprüngliche Pfad `/app` tatsächlich unter `/api/v1/app` bereitgestellt. + +Auch wenn Ihr gesamter Code unter der Annahme geschrieben ist, dass es nur `/app` gibt. + +{* ../../docs_src/behind_a_proxy/tutorial001.py hl[6] *} + +Und der Proxy würde das **Pfadpräfix** on-the-fly **„entfernen“**, bevor er den Request an den Anwendungsserver (wahrscheinlich Uvicorn via FastAPI CLI) übermittelt, dafür sorgend, dass Ihre Anwendung davon überzeugt ist, dass sie unter `/app` bereitgestellt wird, sodass Sie nicht Ihren gesamten Code dahingehend aktualisieren müssen, das Präfix `/api/v1` zu verwenden. + +Bis hierher würde alles wie gewohnt funktionieren. + +Wenn Sie dann jedoch die Benutzeroberfläche der integrierten Dokumentation (das Frontend) öffnen, wird angenommen, dass sich das OpenAPI-Schema unter `/openapi.json` anstelle von `/api/v1/openapi.json` befindet. + +Also würde das Frontend (das im Browser läuft) versuchen, `/openapi.json` zu erreichen und wäre nicht in der Lage, das OpenAPI-Schema abzurufen. + +Da wir für unsere Anwendung einen Proxy mit dem Pfadpräfix `/api/v1` haben, muss das Frontend das OpenAPI-Schema unter `/api/v1/openapi.json` abrufen. + +```mermaid +graph LR + +browser("Browser") +proxy["Proxy auf http://0.0.0.0:9999/api/v1/app"] +server["Server auf http://127.0.0.1:8000/app"] + +browser --> proxy +proxy --> server +``` + +/// tip | Tipp + +Die IP `0.0.0.0` wird üblicherweise verwendet, um anzudeuten, dass das Programm alle auf diesem Computer/Server verfügbaren IPs abhört. + +/// + +Die Benutzeroberfläche der Dokumentation würde benötigen, dass das OpenAPI-Schema deklariert, dass sich dieser API-`server` unter `/api/v1` (hinter dem Proxy) befindet. Zum Beispiel: + +```JSON hl_lines="4-8" +{ + "openapi": "3.1.0", + // Hier mehr Einstellungen + "servers": [ + { + "url": "/api/v1" + } + ], + "paths": { + // Hier mehr Einstellungen + } +} +``` + +In diesem Beispiel könnte der „Proxy“ etwa **Traefik** sein. Und der Server wäre etwas wie FastAPI CLI mit **Uvicorn**, auf dem Ihre FastAPI-Anwendung ausgeführt wird. + +### Bereitstellung des `root_path` { #providing-the-root-path } + +Um dies zu erreichen, können Sie die Kommandozeilenoption `--root-path` wie folgt verwenden: + +
+ +```console +$ fastapi run main.py --forwarded-allow-ips="*" --root-path /api/v1 + +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +``` + +
+ +Falls Sie Hypercorn verwenden, das hat auch die Option `--root-path`. + +/// note | Technische Details + +Die ASGI-Spezifikation definiert einen `root_path` für diesen Anwendungsfall. + +Und die Kommandozeilenoption `--root-path` stellt diesen `root_path` bereit. + +/// + +### Testen des aktuellen `root_path` { #checking-the-current-root-path } + +Sie können den aktuellen `root_path` abrufen, der von Ihrer Anwendung für jeden Request verwendet wird. Er ist Teil des `scope`-Dictionarys (das ist Teil der ASGI-Spezifikation). + +Hier fügen wir ihn, nur zu Demonstrationszwecken, in die Nachricht ein. + +{* ../../docs_src/behind_a_proxy/tutorial001.py hl[8] *} + +Wenn Sie Uvicorn dann starten mit: + +
+ +```console +$ fastapi run main.py --forwarded-allow-ips="*" --root-path /api/v1 + +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +``` + +
+ +wäre die Response etwa: + +```JSON +{ + "message": "Hello World", + "root_path": "/api/v1" +} +``` + +### Festlegen des `root_path` in der FastAPI-Anwendung { #setting-the-root-path-in-the-fastapi-app } + +Falls Sie keine Möglichkeit haben, eine Kommandozeilenoption wie `--root-path` oder ähnlich zu übergeben, können Sie, alternativ dazu, beim Erstellen Ihrer FastAPI-Anwendung den Parameter `root_path` setzen: + +{* ../../docs_src/behind_a_proxy/tutorial002.py hl[3] *} + +Die Übergabe des `root_path` an `FastAPI` wäre das Äquivalent zur Übergabe der `--root-path`-Kommandozeilenoption an Uvicorn oder Hypercorn. + +### Über `root_path` { #about-root-path } + +Beachten Sie, dass der Server (Uvicorn) diesen `root_path` für nichts anderes verwendet als für die Weitergabe an die Anwendung. + +Aber wenn Sie mit Ihrem Browser auf http://127.0.0.1:8000/app gehen, sehen Sie die normale Response: + +```JSON +{ + "message": "Hello World", + "root_path": "/api/v1" +} +``` + +Es wird also nicht erwartet, dass unter `http://127.0.0.1:8000/api/v1/app` darauf zugegriffen wird. + +Uvicorn erwartet, dass der Proxy unter `http://127.0.0.1:8000/app` auf Uvicorn zugreift, und dann liegt es in der Verantwortung des Proxys, das zusätzliche `/api/v1`-Präfix darüber hinzuzufügen. + +## Über Proxys mit einem abgetrennten Pfadpräfix { #about-proxies-with-a-stripped-path-prefix } + +Bedenken Sie, dass ein Proxy mit abgetrenntem Pfadpräfix nur eine von vielen Konfigurationsmöglichkeiten ist. + +Wahrscheinlich wird in vielen Fällen die Standardeinstellung sein, dass der Proxy kein abgetrenntes Pfadpräfix hat. + +In einem solchen Fall (ohne ein abgetrenntes Pfadpräfix) würde der Proxy auf etwas wie `https://myawesomeapp.com` lauschen, und wenn der Browser dann zu `https://myawesomeapp.com/api/v1/app` wechselt, und Ihr Server (z. B. Uvicorn) auf `http://127.0.0.1:8000` lauscht, würde der Proxy (ohne ein abgetrenntes Pfadpräfix) über denselben Pfad auf Uvicorn zugreifen: `http://127.0.0.1:8000/api/v1/app`. + +## Lokal testen mit Traefik { #testing-locally-with-traefik } + +Sie können das Experiment mit einem abgetrennten Pfadpräfix einfach lokal ausführen, indem Sie Traefik verwenden. + +Laden Sie Traefik herunter, es ist eine einzelne Binärdatei, Sie können die komprimierte Datei extrahieren und sie direkt vom Terminal aus ausführen. + +Dann erstellen Sie eine Datei `traefik.toml` mit: + +```TOML hl_lines="3" +[entryPoints] + [entryPoints.http] + address = ":9999" + +[providers] + [providers.file] + filename = "routes.toml" +``` + +Dadurch wird Traefik angewiesen, Port 9999 abzuhören und eine andere Datei `routes.toml` zu verwenden. + +/// tip | Tipp + +Wir verwenden Port 9999 anstelle des Standard-HTTP-Ports 80, damit Sie ihn nicht mit Administratorrechten (`sudo`) ausführen müssen. + +/// + +Erstellen Sie nun die andere Datei `routes.toml`: + +```TOML hl_lines="5 12 20" +[http] + [http.middlewares] + + [http.middlewares.api-stripprefix.stripPrefix] + prefixes = ["/api/v1"] + + [http.routers] + + [http.routers.app-http] + entryPoints = ["http"] + service = "app" + rule = "PathPrefix(`/api/v1`)" + middlewares = ["api-stripprefix"] + + [http.services] + + [http.services.app] + [http.services.app.loadBalancer] + [[http.services.app.loadBalancer.servers]] + url = "http://127.0.0.1:8000" +``` + +Diese Datei konfiguriert Traefik, das Pfadpräfix `/api/v1` zu verwenden. + +Und dann leitet Traefik seine Requests an Ihren Uvicorn weiter, der unter `http://127.0.0.1:8000` läuft. + +Starten Sie nun Traefik: + +
+ +```console +$ ./traefik --configFile=traefik.toml + +INFO[0000] Configuration loaded from file: /home/user/awesomeapi/traefik.toml +``` + +
+ +Und jetzt starten Sie Ihre Anwendung mit Uvicorn, indem Sie die Option `--root-path` verwenden: + +
+ +```console +$ fastapi run main.py --forwarded-allow-ips="*" --root-path /api/v1 + +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +``` + +
+ +### Die Responses testen { #check-the-responses } + +Wenn Sie nun zur URL mit dem Port für Uvicorn gehen: http://127.0.0.1:8000/app, sehen Sie die normale Response: + +```JSON +{ + "message": "Hello World", + "root_path": "/api/v1" +} +``` + +/// tip | Tipp + +Beachten Sie, dass, obwohl Sie unter `http://127.0.0.1:8000/app` darauf zugreifen, als `root_path` angezeigt wird `/api/v1`, welches aus der Option `--root-path` stammt. + +/// + +Öffnen Sie nun die URL mit dem Port für Traefik, einschließlich des Pfadpräfixes: http://127.0.0.1:9999/api/v1/app. + +Wir bekommen die gleiche Response: + +```JSON +{ + "message": "Hello World", + "root_path": "/api/v1" +} +``` + +Diesmal jedoch unter der URL mit dem vom Proxy bereitgestellten Präfixpfad: `/api/v1`. + +Die Idee hier ist natürlich, dass jeder über den Proxy auf die Anwendung zugreifen soll, daher ist die Version mit dem Pfadpräfix `/api/v1` die „korrekte“. + +Und die von Uvicorn direkt bereitgestellte Version ohne Pfadpräfix (`http://127.0.0.1:8000/app`) wäre ausschließlich für den Zugriff durch den _Proxy_ (Traefik) bestimmt. + +Dies demonstriert, wie der Proxy (Traefik) das Pfadpräfix verwendet und wie der Server (Uvicorn) den `root_path` aus der Option `--root-path` verwendet. + +### Es in der Dokumentationsoberfläche testen { #check-the-docs-ui } + +Jetzt folgt der spaßige Teil. ✨ + +Der „offizielle“ Weg, auf die Anwendung zuzugreifen, wäre über den Proxy mit dem von uns definierten Pfadpräfix. Wenn Sie also die von Uvicorn direkt bereitgestellte Dokumentationsoberfläche ohne das Pfadpräfix in der URL ausprobieren, wird es erwartungsgemäß nicht funktionieren, da erwartet wird, dass der Zugriff über den Proxy erfolgt. + +Sie können das unter http://127.0.0.1:8000/docs sehen: + + + +Wenn wir jedoch unter der „offiziellen“ URL, über den Proxy mit Port `9999`, unter `/api/v1/docs`, auf die Dokumentationsoberfläche zugreifen, funktioniert es ordnungsgemäß! 🎉 + +Sie können das unter http://127.0.0.1:9999/api/v1/docs testen: + + + +Genau so, wie wir es wollten. ✔️ + +Dies liegt daran, dass FastAPI diesen `root_path` verwendet, um den Default-`server` in OpenAPI mit der von `root_path` bereitgestellten URL zu erstellen. + +## Zusätzliche Server { #additional-servers } + +/// warning | Achtung + +Dies ist ein fortgeschrittener Anwendungsfall. Überspringen Sie das gerne. + +/// + +Standardmäßig erstellt **FastAPI** einen `server` im OpenAPI-Schema mit der URL für den `root_path`. + +Sie können aber auch andere alternative `servers` bereitstellen, beispielsweise wenn Sie möchten, dass *dieselbe* Dokumentationsoberfläche mit einer Staging- und Produktionsumgebung interagiert. + +Wenn Sie eine benutzerdefinierte Liste von Servern (`servers`) übergeben und es einen `root_path` gibt (da Ihre API hinter einem Proxy läuft), fügt **FastAPI** einen „Server“ mit diesem `root_path` am Anfang der Liste ein. + +Zum Beispiel: + +{* ../../docs_src/behind_a_proxy/tutorial003.py hl[4:7] *} + +Erzeugt ein OpenAPI-Schema, wie: + +```JSON hl_lines="5-7" +{ + "openapi": "3.1.0", + // Hier mehr Einstellungen + "servers": [ + { + "url": "/api/v1" + }, + { + "url": "https://stag.example.com", + "description": "Staging environment" + }, + { + "url": "https://prod.example.com", + "description": "Production environment" + } + ], + "paths": { + // Hier mehr Einstellungen + } +} +``` + +/// tip | Tipp + +Beachten Sie den automatisch generierten Server mit dem `URL`-Wert `/api/v1`, welcher vom `root_path` stammt. + +/// + +In der Dokumentationsoberfläche unter http://127.0.0.1:9999/api/v1/docs würde es so aussehen: + + + +/// tip | Tipp + +Die Dokumentationsoberfläche interagiert mit dem von Ihnen ausgewählten Server. + +/// + +/// note | Technische Details + +Die Eigenschaft `servers` in der OpenAPI-Spezifikation ist optional. + +Wenn Sie den Parameter `servers` nicht angeben und `root_path` den Wert `/` hat, wird die Eigenschaft `servers` im generierten OpenAPI-Schema standardmäßig vollständig weggelassen, was dem Äquivalent eines einzelnen Servers mit einem `url`-Wert von `/` entspricht. + +/// + +### Den automatischen Server von `root_path` deaktivieren { #disable-automatic-server-from-root-path } + +Wenn Sie nicht möchten, dass **FastAPI** einen automatischen Server inkludiert, welcher `root_path` verwendet, können Sie den Parameter `root_path_in_servers=False` verwenden: + +{* ../../docs_src/behind_a_proxy/tutorial004.py hl[9] *} + +Dann wird er nicht in das OpenAPI-Schema aufgenommen. + +## Mounten einer Unteranwendung { #mounting-a-sub-application } + +Wenn Sie gleichzeitig eine Unteranwendung mounten (wie beschrieben in [Unteranwendungen – Mounts](sub-applications.md){.internal-link target=_blank}) und einen Proxy mit `root_path` verwenden wollen, können Sie das normal tun, wie Sie es erwarten würden. + +FastAPI verwendet intern den `root_path` auf intelligente Weise, sodass es einfach funktioniert. ✨ diff --git a/docs/de/docs/advanced/custom-response.md b/docs/de/docs/advanced/custom-response.md new file mode 100644 index 0000000..8714086 --- /dev/null +++ b/docs/de/docs/advanced/custom-response.md @@ -0,0 +1,312 @@ +# Benutzerdefinierte Response – HTML, Stream, Datei, andere { #custom-response-html-stream-file-others } + +Standardmäßig gibt **FastAPI** die Responses mittels `JSONResponse` zurück. + +Sie können dies überschreiben, indem Sie direkt eine `Response` zurückgeben, wie in [Eine Response direkt zurückgeben](response-directly.md){.internal-link target=_blank} gezeigt. + +Wenn Sie jedoch direkt eine `Response` (oder eine Unterklasse wie `JSONResponse`) zurückgeben, werden die Daten nicht automatisch konvertiert (selbst wenn Sie ein `response_model` deklariert haben), und die Dokumentation wird nicht automatisch generiert (zum Beispiel wird der spezifische „Medientyp“, der im HTTP-Header `Content-Type` angegeben ist, nicht Teil der generierten OpenAPI). + +Sie können jedoch auch die `Response`, die Sie verwenden möchten (z. B. jede `Response`-Unterklasse), im *Pfadoperation-Dekorator* mit dem `response_class`-Parameter deklarieren. + +Der Inhalt, den Sie von Ihrer *Pfadoperation-Funktion* zurückgeben, wird in diese `Response` eingefügt. + +Und wenn diese `Response` einen JSON-Medientyp (`application/json`) hat, wie es bei `JSONResponse` und `UJSONResponse` der Fall ist, werden die von Ihnen zurückgegebenen Daten automatisch mit jedem Pydantic `response_model` konvertiert (und gefiltert), das Sie im *Pfadoperation-Dekorator* deklariert haben. + +/// note | Hinweis + +Wenn Sie eine Response-Klasse ohne Medientyp verwenden, erwartet FastAPI, dass Ihre Response keinen Inhalt hat, und dokumentiert daher das Format der Response nicht in deren generierter OpenAPI-Dokumentation. + +/// + +## `ORJSONResponse` verwenden { #use-orjsonresponse } + +Um beispielsweise noch etwas Leistung herauszuholen, können Sie `orjson` installieren und die Response als `ORJSONResponse` setzen. + +Importieren Sie die `Response`-Klasse (Unterklasse), die Sie verwenden möchten, und deklarieren Sie sie im *Pfadoperation-Dekorator*. + +Bei umfangreichen Responses ist die direkte Rückgabe einer `Response` wesentlich schneller als ein Dictionary zurückzugeben. + +Das liegt daran, dass FastAPI standardmäßig jedes enthaltene Element überprüft und sicherstellt, dass es als JSON serialisierbar ist, und zwar unter Verwendung desselben [JSON-kompatiblen Encoders](../tutorial/encoder.md){.internal-link target=_blank}, der im Tutorial erläutert wurde. Dadurch können Sie **beliebige Objekte** zurückgeben, zum Beispiel Datenbankmodelle. + +Wenn Sie jedoch sicher sind, dass der von Ihnen zurückgegebene Inhalt **mit JSON serialisierbar** ist, können Sie ihn direkt an die Response-Klasse übergeben und die zusätzliche Arbeit vermeiden, die FastAPI hätte, indem es Ihren zurückgegebenen Inhalt durch den `jsonable_encoder` leitet, bevor es ihn an die Response-Klasse übergibt. + +{* ../../docs_src/custom_response/tutorial001b.py hl[2,7] *} + +/// info | Info + +Der Parameter `response_class` wird auch verwendet, um den „Medientyp“ der Response zu definieren. + +In diesem Fall wird der HTTP-Header `Content-Type` auf `application/json` gesetzt. + +Und er wird als solcher in OpenAPI dokumentiert. + +/// + +/// tip | Tipp + +Die `ORJSONResponse` ist nur in FastAPI verfügbar, nicht in Starlette. + +/// + +## HTML-Response { #html-response } + +Um eine Response mit HTML direkt von **FastAPI** zurückzugeben, verwenden Sie `HTMLResponse`. + +* Importieren Sie `HTMLResponse`. +* Übergeben Sie `HTMLResponse` als den Parameter `response_class` Ihres *Pfadoperation-Dekorators*. + +{* ../../docs_src/custom_response/tutorial002.py hl[2,7] *} + +/// info | Info + +Der Parameter `response_class` wird auch verwendet, um den „Medientyp“ der Response zu definieren. + +In diesem Fall wird der HTTP-Header `Content-Type` auf `text/html` gesetzt. + +Und er wird als solcher in OpenAPI dokumentiert. + +/// + +### Eine `Response` zurückgeben { #return-a-response } + +Wie in [Eine Response direkt zurückgeben](response-directly.md){.internal-link target=_blank} gezeigt, können Sie die Response auch direkt in Ihrer *Pfadoperation* überschreiben, indem Sie diese zurückgeben. + +Das gleiche Beispiel von oben, das eine `HTMLResponse` zurückgibt, könnte so aussehen: + +{* ../../docs_src/custom_response/tutorial003.py hl[2,7,19] *} + +/// warning | Achtung + +Eine `Response`, die direkt von Ihrer *Pfadoperation-Funktion* zurückgegeben wird, wird in OpenAPI nicht dokumentiert (zum Beispiel wird der `Content-Type` nicht dokumentiert) und ist in der automatischen interaktiven Dokumentation nicht sichtbar. + +/// + +/// info | Info + +Natürlich stammen der eigentliche `Content-Type`-Header, der Statuscode, usw., aus dem `Response`-Objekt, das Sie zurückgegeben haben. + +/// + +### In OpenAPI dokumentieren und `Response` überschreiben { #document-in-openapi-and-override-response } + +Wenn Sie die Response innerhalb der Funktion überschreiben und gleichzeitig den „Medientyp“ in OpenAPI dokumentieren möchten, können Sie den `response_class`-Parameter verwenden UND ein `Response`-Objekt zurückgeben. + +Die `response_class` wird dann nur zur Dokumentation der OpenAPI-*Pfadoperation* verwendet, Ihre `Response` wird jedoch unverändert verwendet. + +#### Eine `HTMLResponse` direkt zurückgeben { #return-an-htmlresponse-directly } + +Es könnte zum Beispiel so etwas sein: + +{* ../../docs_src/custom_response/tutorial004.py hl[7,21,23] *} + +In diesem Beispiel generiert die Funktion `generate_html_response()` bereits eine `Response` und gibt sie zurück, anstatt das HTML in einem `str` zurückzugeben. + +Indem Sie das Ergebnis des Aufrufs von `generate_html_response()` zurückgeben, geben Sie bereits eine `Response` zurück, die das Standardverhalten von **FastAPI** überschreibt. + +Aber da Sie die `HTMLResponse` auch in der `response_class` übergeben haben, weiß **FastAPI**, dass sie in OpenAPI und der interaktiven Dokumentation als HTML mit `text/html` zu dokumentieren ist: + + + +## Verfügbare Responses { #available-responses } + +Hier sind einige der verfügbaren Responses. + +Bedenken Sie, dass Sie `Response` verwenden können, um alles andere zurückzugeben, oder sogar eine benutzerdefinierte Unterklasse zu erstellen. + +/// note | Technische Details + +Sie können auch `from starlette.responses import HTMLResponse` verwenden. + +**FastAPI** bietet dieselben `starlette.responses` auch via `fastapi.responses` an, als Annehmlichkeit für Sie, den Entwickler. Die meisten verfügbaren Responses kommen aber direkt von Starlette. + +/// + +### `Response` { #response } + +Die Hauptklasse `Response`, alle anderen Responses erben von ihr. + +Sie können sie direkt zurückgeben. + +Sie akzeptiert die folgenden Parameter: + +* `content` – Ein `str` oder `bytes`. +* `status_code` – Ein `int`-HTTP-Statuscode. +* `headers` – Ein `dict` von Strings. +* `media_type` – Ein `str`, der den Medientyp angibt. Z. B. `"text/html"`. + +FastAPI (eigentlich Starlette) fügt automatisch einen Content-Length-Header ein. Außerdem wird es einen Content-Type-Header einfügen, der auf dem media_type basiert, und für Texttypen einen Zeichensatz (charset) anfügen. + +{* ../../docs_src/response_directly/tutorial002.py hl[1,18] *} + +### `HTMLResponse` { #htmlresponse } + +Nimmt Text oder Bytes entgegen und gibt eine HTML-Response zurück, wie Sie oben gelesen haben. + +### `PlainTextResponse` { #plaintextresponse } + +Nimmt Text oder Bytes entgegen und gibt eine Plain-Text-Response zurück. + +{* ../../docs_src/custom_response/tutorial005.py hl[2,7,9] *} + +### `JSONResponse` { #jsonresponse } + +Nimmt einige Daten entgegen und gibt eine `application/json`-codierte Response zurück. + +Dies ist die Standard-Response, die in **FastAPI** verwendet wird, wie Sie oben gelesen haben. + +### `ORJSONResponse` { #orjsonresponse } + +Eine schnelle alternative JSON-Response mit `orjson`, wie Sie oben gelesen haben. + +/// info | Info + +Dazu muss `orjson` installiert werden, z. B. mit `pip install orjson`. + +/// + +### `UJSONResponse` { #ujsonresponse } + +Eine alternative JSON-Response mit `ujson`. + +/// info | Info + +Dazu muss `ujson` installiert werden, z. B. mit `pip install ujson`. + +/// + +/// warning | Achtung + +`ujson` ist bei der Behandlung einiger Sonderfälle weniger sorgfältig als Pythons eingebaute Implementierung. + +/// + +{* ../../docs_src/custom_response/tutorial001.py hl[2,7] *} + +/// tip | Tipp + +Möglicherweise ist `ORJSONResponse` eine schnellere Alternative. + +/// + +### `RedirectResponse` { #redirectresponse } + +Gibt eine HTTP-Weiterleitung (HTTP-Redirect) zurück. Verwendet standardmäßig den Statuscode 307 – Temporäre Weiterleitung (Temporary Redirect). + +Sie können eine `RedirectResponse` direkt zurückgeben: + +{* ../../docs_src/custom_response/tutorial006.py hl[2,9] *} + +--- + +Oder Sie können sie im Parameter `response_class` verwenden: + +{* ../../docs_src/custom_response/tutorial006b.py hl[2,7,9] *} + +Wenn Sie das tun, können Sie die URL direkt von Ihrer *Pfadoperation*-Funktion zurückgeben. + +In diesem Fall ist der verwendete `status_code` der Standardcode für die `RedirectResponse`, also `307`. + +--- + +Sie können den Parameter `status_code` auch in Kombination mit dem Parameter `response_class` verwenden: + +{* ../../docs_src/custom_response/tutorial006c.py hl[2,7,9] *} + +### `StreamingResponse` { #streamingresponse } + +Nimmt einen asynchronen Generator oder einen normalen Generator/Iterator und streamt den Responsebody. + +{* ../../docs_src/custom_response/tutorial007.py hl[2,14] *} + +#### Verwendung von `StreamingResponse` mit dateiartigen Objekten { #using-streamingresponse-with-file-like-objects } + +Wenn Sie ein dateiartiges (file-like) Objekt haben (z. B. das von `open()` zurückgegebene Objekt), können Sie eine Generatorfunktion erstellen, um über dieses dateiartige Objekt zu iterieren. + +Auf diese Weise müssen Sie nicht alles zuerst in den Arbeitsspeicher lesen und können diese Generatorfunktion an `StreamingResponse` übergeben und zurückgeben. + +Das umfasst viele Bibliotheken zur Interaktion mit Cloud-Speicher, Videoverarbeitung und anderen. + +{* ../../docs_src/custom_response/tutorial008.py hl[2,10:12,14] *} + +1. Das ist die Generatorfunktion. Es handelt sich um eine „Generatorfunktion“, da sie `yield`-Anweisungen enthält. +2. Durch die Verwendung eines `with`-Blocks stellen wir sicher, dass das dateiartige Objekt geschlossen wird, nachdem die Generatorfunktion fertig ist. Also, nachdem sie mit dem Senden der Response fertig ist. +3. Dieses `yield from` weist die Funktion an, über das Ding namens `file_like` zu iterieren. Und dann für jeden iterierten Teil, diesen Teil so zurückzugeben, als wenn er aus dieser Generatorfunktion (`iterfile`) stammen würde. + + Es handelt sich also hier um eine Generatorfunktion, die die „generierende“ Arbeit intern auf etwas anderes überträgt. + + Auf diese Weise können wir das Ganze in einen `with`-Block einfügen und so sicherstellen, dass das dateiartige Objekt nach Abschluss geschlossen wird. + +/// tip | Tipp + +Beachten Sie, dass wir, da wir Standard-`open()` verwenden, welches `async` und `await` nicht unterstützt, hier die Pfadoperation mit normalen `def` deklarieren. + +/// + +### `FileResponse` { #fileresponse } + +Streamt eine Datei asynchron als Response. + +Nimmt zur Instanziierung einen anderen Satz von Argumenten entgegen als die anderen Response-Typen: + +* `path` – Der Dateipfad zur Datei, die gestreamt werden soll. +* `headers` – Alle benutzerdefinierten Header, die inkludiert werden sollen, als Dictionary. +* `media_type` – Ein String, der den Medientyp angibt. Wenn nicht gesetzt, wird der Dateiname oder Pfad verwendet, um auf einen Medientyp zu schließen. +* `filename` – Wenn gesetzt, wird das in der `Content-Disposition` der Response eingefügt. + +Datei-Responses enthalten die entsprechenden `Content-Length`-, `Last-Modified`- und `ETag`-Header. + +{* ../../docs_src/custom_response/tutorial009.py hl[2,10] *} + +Sie können auch den Parameter `response_class` verwenden: + +{* ../../docs_src/custom_response/tutorial009b.py hl[2,8,10] *} + +In diesem Fall können Sie den Dateipfad direkt von Ihrer *Pfadoperation*-Funktion zurückgeben. + +## Benutzerdefinierte Response-Klasse { #custom-response-class } + +Sie können Ihre eigene benutzerdefinierte Response-Klasse erstellen, die von `Response` erbt und diese verwendet. + +Nehmen wir zum Beispiel an, dass Sie `orjson` verwenden möchten, aber mit einigen benutzerdefinierten Einstellungen, die in der enthaltenen `ORJSONResponse`-Klasse nicht verwendet werden. + +Sie möchten etwa, dass Ihre Response eingerücktes und formatiertes JSON zurückgibt. Dafür möchten Sie die orjson-Option `orjson.OPT_INDENT_2` verwenden. + +Sie könnten eine `CustomORJSONResponse` erstellen. Das Wichtigste, was Sie tun müssen, ist, eine `Response.render(content)`-Methode zu erstellen, die den Inhalt als `bytes` zurückgibt: + +{* ../../docs_src/custom_response/tutorial009c.py hl[9:14,17] *} + +Statt: + +```json +{"message": "Hello World"} +``` + +... wird die Response jetzt Folgendes zurückgeben: + +```json +{ + "message": "Hello World" +} +``` + +Natürlich werden Sie wahrscheinlich viel bessere Möglichkeiten finden, Vorteil daraus zu ziehen, als JSON zu formatieren. 😉 + +## Standard-Response-Klasse { #default-response-class } + +Beim Erstellen einer **FastAPI**-Klasseninstanz oder eines `APIRouter`s können Sie angeben, welche Response-Klasse standardmäßig verwendet werden soll. + +Der Parameter, der das definiert, ist `default_response_class`. + +Im folgenden Beispiel verwendet **FastAPI** standardmäßig `ORJSONResponse` in allen *Pfadoperationen*, anstelle von `JSONResponse`. + +{* ../../docs_src/custom_response/tutorial010.py hl[2,4] *} + +/// tip | Tipp + +Sie können dennoch weiterhin `response_class` in *Pfadoperationen* überschreiben, wie bisher. + +/// + +## Zusätzliche Dokumentation { #additional-documentation } + +Sie können auch den Medientyp und viele andere Details in OpenAPI mit `responses` deklarieren: [Zusätzliche Responses in OpenAPI](additional-responses.md){.internal-link target=_blank}. diff --git a/docs/de/docs/advanced/dataclasses.md b/docs/de/docs/advanced/dataclasses.md new file mode 100644 index 0000000..12ea8e9 --- /dev/null +++ b/docs/de/docs/advanced/dataclasses.md @@ -0,0 +1,95 @@ +# Verwendung von Datenklassen { #using-dataclasses } + +FastAPI basiert auf **Pydantic**, und ich habe Ihnen gezeigt, wie Sie Pydantic-Modelle verwenden können, um Requests und Responses zu deklarieren. + +Aber FastAPI unterstützt auf die gleiche Weise auch die Verwendung von `dataclasses`: + +{* ../../docs_src/dataclasses/tutorial001.py hl[1,7:12,19:20] *} + +Das ist dank **Pydantic** ebenfalls möglich, da es `dataclasses` intern unterstützt. + +Auch wenn im obigen Code Pydantic nicht explizit vorkommt, verwendet FastAPI Pydantic, um diese Standard-Datenklassen in Pydantics eigene Variante von Datenklassen zu konvertieren. + +Und natürlich wird das gleiche unterstützt: + +* Datenvalidierung +* Datenserialisierung +* Datendokumentation, usw. + +Das funktioniert genauso wie mit Pydantic-Modellen. Und tatsächlich wird es unter der Haube mittels Pydantic auf die gleiche Weise bewerkstelligt. + +/// info | Info + +Bedenken Sie, dass Datenklassen nicht alles können, was Pydantic-Modelle können. + +Daher müssen Sie möglicherweise weiterhin Pydantic-Modelle verwenden. + +Wenn Sie jedoch eine Menge Datenklassen herumliegen haben, ist dies ein guter Trick, um sie für eine Web-API mithilfe von FastAPI zu verwenden. 🤓 + +/// + +## Datenklassen in `response_model` { #dataclasses-in-response-model } + +Sie können `dataclasses` auch im Parameter `response_model` verwenden: + +{* ../../docs_src/dataclasses/tutorial002.py hl[1,7:13,19] *} + +Die Datenklasse wird automatisch in eine Pydantic-Datenklasse konvertiert. + +Auf diese Weise wird deren Schema in der Benutzeroberfläche der API-Dokumentation angezeigt: + + + +## Datenklassen in verschachtelten Datenstrukturen { #dataclasses-in-nested-data-structures } + +Sie können `dataclasses` auch mit anderen Typannotationen kombinieren, um verschachtelte Datenstrukturen zu erstellen. + +In einigen Fällen müssen Sie möglicherweise immer noch Pydantics Version von `dataclasses` verwenden. Zum Beispiel, wenn Sie Fehler in der automatisch generierten API-Dokumentation haben. + +In diesem Fall können Sie einfach die Standard-`dataclasses` durch `pydantic.dataclasses` ersetzen, was einen direkten Ersatz darstellt: + +{* ../../docs_src/dataclasses/tutorial003.py hl[1,5,8:11,14:17,23:25,28] *} + +1. Wir importieren `field` weiterhin von Standard-`dataclasses`. + +2. `pydantic.dataclasses` ist ein direkter Ersatz für `dataclasses`. + +3. Die Datenklasse `Author` enthält eine Liste von `Item`-Datenklassen. + +4. Die Datenklasse `Author` wird im `response_model`-Parameter verwendet. + +5. Sie können andere Standard-Typannotationen mit Datenklassen als Requestbody verwenden. + + In diesem Fall handelt es sich um eine Liste von `Item`-Datenklassen. + +6. Hier geben wir ein Dictionary zurück, das `items` enthält, welches eine Liste von Datenklassen ist. + + FastAPI ist weiterhin in der Lage, die Daten nach JSON zu serialisieren. + +7. Hier verwendet das `response_model` als Typannotation eine Liste von `Author`-Datenklassen. + + Auch hier können Sie `dataclasses` mit Standard-Typannotationen kombinieren. + +8. Beachten Sie, dass diese *Pfadoperation-Funktion* reguläres `def` anstelle von `async def` verwendet. + + Wie immer können Sie in FastAPI `def` und `async def` beliebig kombinieren. + + Wenn Sie eine Auffrischung darüber benötigen, wann welche Anwendung sinnvoll ist, lesen Sie den Abschnitt „In Eile?“ in der Dokumentation zu [`async` und `await`](../async.md#in-a-hurry){.internal-link target=_blank}. + +9. Diese *Pfadoperation-Funktion* gibt keine Datenklassen zurück (obwohl dies möglich wäre), sondern eine Liste von Dictionarys mit internen Daten. + + FastAPI verwendet den Parameter `response_model` (der Datenklassen enthält), um die Response zu konvertieren. + +Sie können `dataclasses` mit anderen Typannotationen auf vielfältige Weise kombinieren, um komplexe Datenstrukturen zu bilden. + +Weitere Einzelheiten finden Sie in den Bemerkungen im Quellcode oben. + +## Mehr erfahren { #learn-more } + +Sie können `dataclasses` auch mit anderen Pydantic-Modellen kombinieren, von ihnen erben, sie in Ihre eigenen Modelle einbinden, usw. + +Weitere Informationen finden Sie in der Pydantic-Dokumentation zu Datenklassen. + +## Version { #version } + +Dies ist verfügbar seit FastAPI-Version `0.67.0`. 🔖 diff --git a/docs/de/docs/advanced/events.md b/docs/de/docs/advanced/events.md new file mode 100644 index 0000000..f94526b --- /dev/null +++ b/docs/de/docs/advanced/events.md @@ -0,0 +1,165 @@ +# Lifespan-Events { #lifespan-events } + +Sie können Logik (Code) definieren, die ausgeführt werden soll, bevor die Anwendung **hochfährt**. Dies bedeutet, dass dieser Code **einmal** ausgeführt wird, **bevor** die Anwendung **beginnt, Requests entgegenzunehmen**. + +Auf die gleiche Weise können Sie Logik (Code) definieren, die ausgeführt werden soll, wenn die Anwendung **heruntergefahren** wird. In diesem Fall wird dieser Code **einmal** ausgeführt, **nachdem** möglicherweise **viele Requests** bearbeitet wurden. + +Da dieser Code ausgeführt wird, bevor die Anwendung **beginnt**, Requests entgegenzunehmen, und unmittelbar, nachdem sie die Bearbeitung von Requests **abgeschlossen hat**, deckt er den gesamten Anwendungs-**Lifespan** ab (das Wort „Lifespan“ wird gleich wichtig sein 😉). + +Dies kann sehr nützlich sein, um **Ressourcen** einzurichten, die Sie in der gesamten App verwenden wollen und die von Requests **gemeinsam genutzt** werden und/oder die Sie anschließend **aufräumen** müssen. Zum Beispiel ein Pool von Datenbankverbindungen oder das Laden eines gemeinsam genutzten Modells für maschinelles Lernen. + +## Anwendungsfall { #use-case } + +Beginnen wir mit einem Beispiel-**Anwendungsfall** und schauen uns dann an, wie wir ihn mit dieser Methode implementieren können. + +Stellen wir uns vor, Sie verfügen über einige **Modelle für maschinelles Lernen**, die Sie zur Bearbeitung von Requests verwenden möchten. 🤖 + +Die gleichen Modelle werden von den Requests gemeinsam genutzt, es handelt sich also nicht um ein Modell pro Request, pro Benutzer, oder ähnliches. + +Stellen wir uns vor, dass das Laden des Modells **eine ganze Weile dauern** kann, da viele **Daten von der Festplatte** gelesen werden müssen. Sie möchten das also nicht für jeden Request tun. + +Sie könnten das auf der obersten Ebene des Moduls/der Datei machen, aber das würde auch bedeuten, dass **das Modell geladen wird**, selbst wenn Sie nur einen einfachen automatisierten Test ausführen, dann wäre dieser Test **langsam**, weil er warten müsste, bis das Modell geladen ist, bevor er einen davon unabhängigen Teil des Codes ausführen könnte. + +Das wollen wir besser machen: Laden wir das Modell, bevor die Requests bearbeitet werden, aber unmittelbar bevor die Anwendung beginnt, Requests zu empfangen, und nicht, während der Code geladen wird. + +## Lifespan { #lifespan } + +Sie können diese Logik beim *Startup* und *Shutdown* mithilfe des `lifespan`-Parameters der `FastAPI`-App und eines „Kontextmanagers“ definieren (ich zeige Ihnen gleich, was das ist). + +Beginnen wir mit einem Beispiel und sehen es uns dann im Detail an. + +Wir erstellen eine asynchrone Funktion `lifespan()` mit `yield` wie folgt: + +{* ../../docs_src/events/tutorial003.py hl[16,19] *} + +Hier simulieren wir den langsamen *Startup*, das Laden des Modells, indem wir die (Fake-)Modellfunktion vor dem `yield` in das Dictionary mit Modellen für maschinelles Lernen einfügen. Dieser Code wird ausgeführt, **bevor** die Anwendung **beginnt, Requests entgegenzunehmen**, während des *Startups*. + +Und dann, direkt nach dem `yield`, entladen wir das Modell. Dieser Code wird ausgeführt, **nachdem** die Anwendung **die Bearbeitung von Requests abgeschlossen hat**, direkt vor dem *Shutdown*. Dadurch könnten beispielsweise Ressourcen wie Arbeitsspeicher oder eine GPU freigegeben werden. + +/// tip | Tipp + +Das `shutdown` würde erfolgen, wenn Sie die Anwendung **stoppen**. + +Möglicherweise müssen Sie eine neue Version starten, oder Sie haben es einfach satt, sie auszuführen. 🤷 + +/// + +### Lifespan-Funktion { #lifespan-function } + +Das Erste, was auffällt, ist, dass wir eine asynchrone Funktion mit `yield` definieren. Das ist sehr ähnlich zu Abhängigkeiten mit `yield`. + +{* ../../docs_src/events/tutorial003.py hl[14:19] *} + +Der erste Teil der Funktion, vor dem `yield`, wird ausgeführt **bevor** die Anwendung startet. + +Und der Teil nach `yield` wird ausgeführt, **nachdem** die Anwendung beendet ist. + +### Asynchroner Kontextmanager { #async-context-manager } + +Wie Sie sehen, ist die Funktion mit einem `@asynccontextmanager` versehen. + +Dadurch wird die Funktion in einen sogenannten „**asynchronen Kontextmanager**“ umgewandelt. + +{* ../../docs_src/events/tutorial003.py hl[1,13] *} + +Ein **Kontextmanager** in Python ist etwas, das Sie in einer `with`-Anweisung verwenden können, zum Beispiel kann `open()` als Kontextmanager verwendet werden: + +```Python +with open("file.txt") as file: + file.read() +``` + +In neueren Versionen von Python gibt es auch einen **asynchronen Kontextmanager**. Sie würden ihn mit `async with` verwenden: + +```Python +async with lifespan(app): + await do_stuff() +``` + +Wenn Sie wie oben einen Kontextmanager oder einen asynchronen Kontextmanager erstellen, führt dieser vor dem Betreten des `with`-Blocks den Code vor dem `yield` aus, und nach dem Verlassen des `with`-Blocks wird er den Code nach dem `yield` ausführen. + +In unserem obigen Codebeispiel verwenden wir ihn nicht direkt, sondern übergeben ihn an FastAPI, damit es ihn verwenden kann. + +Der Parameter `lifespan` der `FastAPI`-App benötigt einen **asynchronen Kontextmanager**, wir können ihm also unseren neuen asynchronen Kontextmanager `lifespan` übergeben. + +{* ../../docs_src/events/tutorial003.py hl[22] *} + +## Alternative Events (deprecatet) { #alternative-events-deprecated } + +/// warning | Achtung + +Der empfohlene Weg, den *Startup* und *Shutdown* zu handhaben, ist die Verwendung des `lifespan`-Parameters der `FastAPI`-App, wie oben beschrieben. Wenn Sie einen `lifespan`-Parameter übergeben, werden die `startup`- und `shutdown`-Eventhandler nicht mehr aufgerufen. Es ist entweder alles `lifespan` oder alles Events, nicht beides. + +Sie können diesen Teil wahrscheinlich überspringen. + +/// + +Es gibt eine alternative Möglichkeit, diese Logik zu definieren, sodass sie beim *Startup* und beim *Shutdown* ausgeführt wird. + +Sie können Eventhandler (Funktionen) definieren, die ausgeführt werden sollen, bevor die Anwendung hochgefahren wird oder wenn die Anwendung heruntergefahren wird. + +Diese Funktionen können mit `async def` oder normalem `def` deklariert werden. + +### `startup`-Event { #startup-event } + +Um eine Funktion hinzuzufügen, die vor dem Start der Anwendung ausgeführt werden soll, deklarieren Sie diese mit dem Event `startup`: + +{* ../../docs_src/events/tutorial001.py hl[8] *} + +In diesem Fall initialisiert die Eventhandler-Funktion `startup` die „Datenbank“ der Items (nur ein `dict`) mit einigen Werten. + +Sie können mehr als eine Eventhandler-Funktion hinzufügen. + +Und Ihre Anwendung empfängt erst dann Requests, wenn alle `startup`-Eventhandler abgeschlossen sind. + +### `shutdown`-Event { #shutdown-event } + +Um eine Funktion hinzuzufügen, die beim Shutdown der Anwendung ausgeführt werden soll, deklarieren Sie sie mit dem Event `shutdown`: + +{* ../../docs_src/events/tutorial002.py hl[6] *} + +Hier schreibt die `shutdown`-Eventhandler-Funktion eine Textzeile `"Application shutdown"` in eine Datei `log.txt`. + +/// info | Info + +In der Funktion `open()` bedeutet `mode="a"` „append“ („anhängen“), sodass die Zeile nach dem, was sich in dieser Datei befindet, hinzugefügt wird, ohne den vorherigen Inhalt zu überschreiben. + +/// + +/// tip | Tipp + +Beachten Sie, dass wir in diesem Fall eine Standard-Python-Funktion `open()` verwenden, die mit einer Datei interagiert. + +Es handelt sich also um I/O (Input/Output), welches „Warten“ erfordert, bis Dinge auf die Festplatte geschrieben werden. + +Aber `open()` verwendet nicht `async` und `await`. + +Daher deklarieren wir die Eventhandler-Funktion mit Standard-`def` statt mit `async def`. + +/// + +### `startup` und `shutdown` zusammen { #startup-and-shutdown-together } + +Es besteht eine hohe Wahrscheinlichkeit, dass die Logik für Ihr *Startup* und *Shutdown* miteinander verknüpft ist. Vielleicht möchten Sie etwas beginnen und es dann beenden, eine Ressource laden und sie dann freigeben usw. + +Bei getrennten Funktionen, die keine gemeinsame Logik oder Variablen haben, ist dies schwieriger, da Sie Werte in globalen Variablen speichern oder ähnliche Tricks verwenden müssen. + +Aus diesem Grund wird jetzt empfohlen, stattdessen `lifespan` wie oben erläutert zu verwenden. + +## Technische Details { #technical-details } + +Nur ein technisches Detail für die neugierigen Nerds. 🤓 + +In der technischen ASGI-Spezifikation ist dies Teil des Lifespan Protokolls und definiert Events namens `startup` und `shutdown`. + +/// info | Info + +Weitere Informationen zu Starlettes `lifespan`-Handlern finden Sie in Starlettes Lifespan-Dokumentation. + +Einschließlich, wie man Lifespan-Zustand handhabt, der in anderen Bereichen Ihres Codes verwendet werden kann. + +/// + +## Unteranwendungen { #sub-applications } + +🚨 Beachten Sie, dass diese Lifespan-Events (Startup und Shutdown) nur für die Hauptanwendung ausgeführt werden, nicht für [Unteranwendungen – Mounts](sub-applications.md){.internal-link target=_blank}. diff --git a/docs/de/docs/advanced/generate-clients.md b/docs/de/docs/advanced/generate-clients.md new file mode 100644 index 0000000..d883629 --- /dev/null +++ b/docs/de/docs/advanced/generate-clients.md @@ -0,0 +1,208 @@ +# SDKs generieren { #generating-sdks } + +Da **FastAPI** auf der **OpenAPI**-Spezifikation basiert, können dessen APIs in einem standardisierten Format beschrieben werden, das viele Tools verstehen. + +Dies vereinfacht es, aktuelle **Dokumentation** und Client-Bibliotheken (**SDKs**) in verschiedenen Sprachen zu generieren sowie **Test-** oder **Automatisierungs-Workflows**, die mit Ihrem Code synchron bleiben. + +In diesem Leitfaden erfahren Sie, wie Sie ein **TypeScript-SDK** für Ihr FastAPI-Backend generieren. + +## Open Source SDK-Generatoren { #open-source-sdk-generators } + +Eine vielseitige Möglichkeit ist der OpenAPI Generator, der **viele Programmiersprachen** unterstützt und SDKs aus Ihrer OpenAPI-Spezifikation generieren kann. + +Für **TypeScript-Clients** ist Hey API eine speziell entwickelte Lösung, die ein optimiertes Erlebnis für das TypeScript-Ökosystem bietet. + +Weitere SDK-Generatoren finden Sie auf OpenAPI.Tools. + +/// tip | Tipp + +FastAPI generiert automatisch **OpenAPI 3.1**-Spezifikationen, daher muss jedes von Ihnen verwendete Tool diese Version unterstützen. + +/// + +## SDK-Generatoren von FastAPI-Sponsoren { #sdk-generators-from-fastapi-sponsors } + +Dieser Abschnitt hebt **venture-unterstützte** und **firmengestützte** Lösungen hervor, die von Unternehmen entwickelt werden, welche FastAPI sponsern. Diese Produkte bieten **zusätzliche Funktionen** und **Integrationen** zusätzlich zu hochwertig generierten SDKs. + +Durch das ✨ [**Sponsoring von FastAPI**](../help-fastapi.md#sponsor-the-author){.internal-link target=_blank} ✨ helfen diese Unternehmen sicherzustellen, dass das Framework und sein **Ökosystem** gesund und **nachhaltig** bleiben. + +Ihr Sponsoring zeigt auch ein starkes Engagement für die FastAPI-**Community** (Sie), was bedeutet, dass sie nicht nur einen **großartigen Service** bieten möchten, sondern auch ein **robustes und florierendes Framework**, FastAPI, unterstützen möchten. 🙇 + +Zum Beispiel könnten Sie ausprobieren: + +* Speakeasy +* Stainless +* liblab + +Einige dieser Lösungen sind möglicherweise auch Open Source oder bieten kostenlose Tarife an, sodass Sie diese ohne finanzielle Verpflichtung ausprobieren können. Andere kommerzielle SDK-Generatoren sind online verfügbar und können dort gefunden werden. 🤓 + +## Ein TypeScript-SDK erstellen { #create-a-typescript-sdk } + +Beginnen wir mit einer einfachen FastAPI-Anwendung: + +{* ../../docs_src/generate_clients/tutorial001_py39.py hl[7:9,12:13,16:17,21] *} + +Beachten Sie, dass die *Pfadoperationen* die Modelle definieren, die sie für die Request- und Response-Payload verwenden, indem sie die Modelle `Item` und `ResponseMessage` verwenden. + +### API-Dokumentation { #api-docs } + +Wenn Sie zu `/docs` gehen, sehen Sie, dass es die **Schemas** für die Daten enthält, die in Requests gesendet und in Responses empfangen werden: + + + +Sie können diese Schemas sehen, da sie mit den Modellen in der App deklariert wurden. + +Diese Informationen sind im **OpenAPI-Schema** der Anwendung verfügbar und werden in der API-Dokumentation angezeigt. + +Diese Informationen aus den Modellen, die in OpenAPI enthalten sind, können verwendet werden, um **den Client-Code zu generieren**. + +### Hey API { #hey-api } + +Sobald wir eine FastAPI-App mit den Modellen haben, können wir Hey API verwenden, um einen TypeScript-Client zu generieren. Der schnellste Weg das zu tun, ist über npx. + +```sh +npx @hey-api/openapi-ts -i http://localhost:8000/openapi.json -o src/client +``` + +Dies generiert ein TypeScript-SDK in `./src/client`. + +Sie können lernen, wie man `@hey-api/openapi-ts` installiert und über die erzeugte Ausgabe auf deren Website lesen. + +### Das SDK verwenden { #using-the-sdk } + +Jetzt können Sie den Client-Code importieren und verwenden. Er könnte wie folgt aussehen, beachten Sie, dass Sie eine automatische Vervollständigung für die Methoden erhalten: + + + +Sie werden auch eine automatische Vervollständigung für die zu sendende Payload erhalten: + + + +/// tip | Tipp + +Beachten Sie die automatische Vervollständigung für `name` und `price`, die in der FastAPI-Anwendung im `Item`-Modell definiert wurden. + +/// + +Sie erhalten Inline-Fehlerberichte für die von Ihnen gesendeten Daten: + + + +Das Response-Objekt hat auch automatische Vervollständigung: + + + +## FastAPI-Anwendung mit Tags { #fastapi-app-with-tags } + +In vielen Fällen wird Ihre FastAPI-App größer sein und Sie werden wahrscheinlich Tags verwenden, um verschiedene Gruppen von *Pfadoperationen* zu separieren. + +Zum Beispiel könnten Sie einen Abschnitt für **Items (Artikel)** und einen weiteren Abschnitt für **Users (Benutzer)** haben, und diese könnten durch Tags getrennt sein: + +{* ../../docs_src/generate_clients/tutorial002_py39.py hl[21,26,34] *} + +### Einen TypeScript-Client mit Tags generieren { #generate-a-typescript-client-with-tags } + +Wenn Sie einen Client für eine FastAPI-App generieren, die Tags verwendet, wird normalerweise der Client-Code auch anhand der Tags getrennt. + +Auf diese Weise können Sie die Dinge für den Client-Code richtig ordnen und gruppieren: + + + +In diesem Fall haben Sie: + +* `ItemsService` +* `UsersService` + +### Client-Methodennamen { #client-method-names } + +Im Moment sehen die generierten Methodennamen wie `createItemItemsPost` nicht sehr sauber aus: + +```TypeScript +ItemsService.createItemItemsPost({name: "Plumbus", price: 5}) +``` + +... das liegt daran, dass der Client-Generator für jede *Pfadoperation* die OpenAPI-interne **Operation-ID** verwendet. + +OpenAPI erfordert, dass jede Operation-ID innerhalb aller *Pfadoperationen* einzigartig ist. Daher verwendet FastAPI den **Funktionsnamen**, den **Pfad** und die **HTTP-Methode/-Operation**, um diese Operation-ID zu generieren. Denn so kann sichergestellt werden, dass die Operation-IDs einzigartig sind. + +Aber ich zeige Ihnen als Nächstes, wie Sie das verbessern können. 🤓 + +## Benutzerdefinierte Operation-IDs und bessere Methodennamen { #custom-operation-ids-and-better-method-names } + +Sie können die Art und Weise, wie diese Operation-IDs **generiert** werden, **ändern**, um sie einfacher zu machen und **einfachere Methodennamen** in den Clients zu haben. + +In diesem Fall müssen Sie auf andere Weise sicherstellen, dass jede Operation-ID **einzigartig** ist. + +Zum Beispiel könnten Sie sicherstellen, dass jede *Pfadoperation* einen Tag hat, und dann die Operation-ID basierend auf dem **Tag** und dem *Pfadoperation*-**Namen** (dem Funktionsnamen) generieren. + +### Eine benutzerdefinierte Funktion zur Erzeugung einer eindeutigen ID erstellen { #custom-generate-unique-id-function } + +FastAPI verwendet eine **eindeutige ID** für jede *Pfadoperation*, die für die **Operation-ID** und auch für die Namen aller benötigten benutzerdefinierten Modelle für Requests oder Responses verwendet wird. + +Sie können diese Funktion anpassen. Sie nimmt ein `APIRoute` und gibt einen String zurück. + +Hier verwendet sie beispielsweise den ersten Tag (Sie werden wahrscheinlich nur einen Tag haben) und den *Pfadoperation*-Namen (den Funktionsnamen). + +Anschließend können Sie diese benutzerdefinierte Funktion als `generate_unique_id_function`-Parameter an **FastAPI** übergeben: + +{* ../../docs_src/generate_clients/tutorial003_py39.py hl[6:7,10] *} + +### Einen TypeScript-Client mit benutzerdefinierten Operation-IDs generieren { #generate-a-typescript-client-with-custom-operation-ids } + +Wenn Sie nun den Client erneut generieren, werden Sie feststellen, dass er über die verbesserten Methodennamen verfügt: + + + +Wie Sie sehen, haben die Methodennamen jetzt den Tag und dann den Funktionsnamen, aber keine Informationen aus dem URL-Pfad und der HTTP-Operation. + +### Die OpenAPI-Spezifikation für den Client-Generator vorab modifizieren { #preprocess-the-openapi-specification-for-the-client-generator } + +Der generierte Code enthält immer noch einige **verdoppelte Informationen**. + +Wir wissen bereits, dass diese Methode mit den **Items** zusammenhängt, weil dieses Wort in `ItemsService` enthalten ist (vom Tag übernommen), aber wir haben den Tag-Namen dennoch im Methodennamen vorangestellt. 😕 + +Wir werden das wahrscheinlich weiterhin für OpenAPI allgemein beibehalten wollen, da dadurch sichergestellt wird, dass die Operation-IDs **einzigartig** sind. + +Aber für den generierten Client könnten wir die OpenAPI-Operation-IDs direkt vor der Generierung der Clients **modifizieren**, um diese Methodennamen schöner und **sauberer** zu machen. + +Wir könnten das OpenAPI-JSON in eine Datei `openapi.json` herunterladen und dann mit einem Skript wie dem folgenden **den präfixierten Tag entfernen**: + +{* ../../docs_src/generate_clients/tutorial004.py *} + +//// tab | Node.js + +```Javascript +{!> ../../docs_src/generate_clients/tutorial004.js!} +``` + +//// + +Damit würden die Operation-IDs von Dingen wie `items-get_items` in `get_items` umbenannt, sodass der Client-Generator einfachere Methodennamen generieren kann. + +### Einen TypeScript-Client mit der modifizierten OpenAPI generieren { #generate-a-typescript-client-with-the-preprocessed-openapi } + +Da das Endergebnis nun in einer `openapi.json`-Datei vorliegt, müssen Sie Ihren Eingabeort aktualisieren: + +```sh +npx @hey-api/openapi-ts -i ./openapi.json -o src/client +``` + +Nach der Generierung des neuen Clients haben Sie jetzt **saubere Methodennamen**, mit allen **Autovervollständigungen**, **Inline-Fehlerberichten**, usw.: + + + +## Vorteile { #benefits } + +Wenn Sie die automatisch generierten Clients verwenden, erhalten Sie **Autovervollständigung** für: + +* Methoden. +* Request-Payloads im Body, Query-Parameter, usw. +* Response-Payloads. + +Sie erhalten auch **Inline-Fehlerberichte** für alles. + +Und wann immer Sie den Backend-Code aktualisieren und **das Frontend neu generieren**, stehen alle neuen *Pfadoperationen* als Methoden zur Verfügung, die alten werden entfernt und alle anderen Änderungen werden im generierten Code reflektiert. 🤓 + +Das bedeutet auch, dass, wenn sich etwas ändert, dies automatisch im Client-Code **reflektiert** wird. Und wenn Sie den Client **erstellen**, wird eine Fehlermeldung ausgegeben, wenn die verwendeten Daten **nicht übereinstimmen**. + +Sie würden also **viele Fehler sehr früh** im Entwicklungszyklus erkennen, anstatt darauf warten zu müssen, dass die Fehler Ihren Endbenutzern in der Produktion angezeigt werden, und dann zu versuchen, zu debuggen, wo das Problem liegt. ✨ diff --git a/docs/de/docs/advanced/index.md b/docs/de/docs/advanced/index.md new file mode 100644 index 0000000..98fc7bc --- /dev/null +++ b/docs/de/docs/advanced/index.md @@ -0,0 +1,21 @@ +# Handbuch für fortgeschrittene Benutzer { #advanced-user-guide } + +## Zusatzfunktionen { #additional-features } + +Das Haupt-[Tutorial – Benutzerhandbuch](../tutorial/index.md){.internal-link target=_blank} sollte ausreichen, um Ihnen einen Überblick über alle Hauptfunktionen von **FastAPI** zu geben. + +In den nächsten Abschnitten sehen Sie weitere Optionen, Konfigurationen und zusätzliche Funktionen. + +/// tip | Tipp + +Die nächsten Abschnitte sind **nicht unbedingt „fortgeschritten“**. + +Und es ist möglich, dass für Ihren Anwendungsfall die Lösung in einem davon liegt. + +/// + +## Das Tutorial zuerst lesen { #read-the-tutorial-first } + +Sie können immer noch die meisten Funktionen in **FastAPI** mit den Kenntnissen aus dem Haupt-[Tutorial – Benutzerhandbuch](../tutorial/index.md){.internal-link target=_blank} nutzen. + +Und die nächsten Abschnitte setzen voraus, dass Sie es bereits gelesen haben und dass Sie diese Hauptideen kennen. diff --git a/docs/de/docs/advanced/middleware.md b/docs/de/docs/advanced/middleware.md new file mode 100644 index 0000000..8396a62 --- /dev/null +++ b/docs/de/docs/advanced/middleware.md @@ -0,0 +1,97 @@ +# Fortgeschrittene Middleware { #advanced-middleware } + +Im Haupttutorial haben Sie gelesen, wie Sie Ihrer Anwendung [benutzerdefinierte Middleware](../tutorial/middleware.md){.internal-link target=_blank} hinzufügen können. + +Und dann auch, wie man [CORS mittels der `CORSMiddleware`](../tutorial/cors.md){.internal-link target=_blank} handhabt. + +In diesem Abschnitt werden wir sehen, wie man andere Middlewares verwendet. + +## ASGI-Middleware hinzufügen { #adding-asgi-middlewares } + +Da **FastAPI** auf Starlette basiert und die ASGI-Spezifikation implementiert, können Sie jede ASGI-Middleware verwenden. + +Eine Middleware muss nicht speziell für FastAPI oder Starlette gemacht sein, um zu funktionieren, solange sie der ASGI-Spezifikation genügt. + +Im Allgemeinen handelt es sich bei ASGI-Middleware um Klassen, die als erstes Argument eine ASGI-Anwendung erwarten. + +In der Dokumentation für ASGI-Middlewares von Drittanbietern wird Ihnen wahrscheinlich gesagt, dass Sie etwa Folgendes tun sollen: + +```Python +from unicorn import UnicornMiddleware + +app = SomeASGIApp() + +new_app = UnicornMiddleware(app, some_config="rainbow") +``` + +Aber FastAPI (eigentlich Starlette) bietet eine einfachere Möglichkeit, welche sicherstellt, dass die internen Middlewares zur Behandlung von Serverfehlern und benutzerdefinierten Exceptionhandlern ordnungsgemäß funktionieren. + +Dazu verwenden Sie `app.add_middleware()` (wie schon im Beispiel für CORS gesehen). + +```Python +from fastapi import FastAPI +from unicorn import UnicornMiddleware + +app = FastAPI() + +app.add_middleware(UnicornMiddleware, some_config="rainbow") +``` + +`app.add_middleware()` empfängt eine Middleware-Klasse als erstes Argument und dann alle weiteren Argumente, die an die Middleware übergeben werden sollen. + +## Integrierte Middleware { #integrated-middlewares } + +**FastAPI** enthält mehrere Middlewares für gängige Anwendungsfälle. Wir werden als Nächstes sehen, wie man sie verwendet. + +/// note | Technische Details + +Für die nächsten Beispiele könnten Sie auch `from starlette.middleware.something import SomethingMiddleware` verwenden. + +**FastAPI** bietet mehrere Middlewares via `fastapi.middleware` an, als Annehmlichkeit für Sie, den Entwickler. Die meisten verfügbaren Middlewares kommen aber direkt von Starlette. + +/// + +## `HTTPSRedirectMiddleware` { #httpsredirectmiddleware } + +Erzwingt, dass alle eingehenden Requests entweder `https` oder `wss` sein müssen. + +Alle eingehenden Requests an `http` oder `ws` werden stattdessen an das sichere Schema umgeleitet. + +{* ../../docs_src/advanced_middleware/tutorial001.py hl[2,6] *} + +## `TrustedHostMiddleware` { #trustedhostmiddleware } + +Erzwingt, dass alle eingehenden Requests einen korrekt gesetzten `Host`-Header haben, um sich vor HTTP-Host-Header-Angriffen zu schützen. + +{* ../../docs_src/advanced_middleware/tutorial002.py hl[2,6:8] *} + +Die folgenden Argumente werden unterstützt: + +* `allowed_hosts` – Eine Liste von Domain-Namen, die als Hostnamen zulässig sein sollten. Wildcard-Domains wie `*.example.com` werden unterstützt, um Subdomains zu matchen. Um jeden Hostnamen zu erlauben, verwenden Sie entweder `allowed_hosts=["*"]` oder lassen Sie diese Middleware weg. +* `www_redirect` – Wenn auf True gesetzt, werden Requests an Nicht-www-Versionen der erlaubten Hosts zu deren www-Gegenstücken umgeleitet. Der Defaultwert ist `True`. + +Wenn ein eingehender Request nicht korrekt validiert wird, wird eine `400`-Response gesendet. + +## `GZipMiddleware` { #gzipmiddleware } + +Verarbeitet GZip-Responses für alle Requests, die `"gzip"` im `Accept-Encoding`-Header enthalten. + +Diese Middleware verarbeitet sowohl Standard- als auch Streaming-Responses. + +{* ../../docs_src/advanced_middleware/tutorial003.py hl[2,6] *} + +Die folgenden Argumente werden unterstützt: + +* `minimum_size` – Responses, die kleiner als diese Mindestgröße in Bytes sind, nicht per GZip komprimieren. Der Defaultwert ist `500`. +* `compresslevel` – Wird während der GZip-Kompression verwendet. Es ist ein Ganzzahlwert zwischen 1 und 9. Der Defaultwert ist `9`. Ein niedrigerer Wert resultiert in schnellerer Kompression, aber größeren Dateigrößen, während ein höherer Wert langsamere Kompression, aber kleinere Dateigrößen zur Folge hat. + +## Andere Middlewares { #other-middlewares } + +Es gibt viele andere ASGI-Middlewares. + +Zum Beispiel: + +* Uvicorns `ProxyHeadersMiddleware` +* MessagePack + +Um mehr über weitere verfügbare Middlewares herauszufinden, besuchen Sie Starlettes Middleware-Dokumentation und die ASGI Awesome List. diff --git a/docs/de/docs/advanced/openapi-callbacks.md b/docs/de/docs/advanced/openapi-callbacks.md new file mode 100644 index 0000000..afc48bb --- /dev/null +++ b/docs/de/docs/advanced/openapi-callbacks.md @@ -0,0 +1,186 @@ +# OpenAPI-Callbacks { #openapi-callbacks } + +Sie könnten eine API mit einer *Pfadoperation* erstellen, die einen Request an eine *externe API* auslösen könnte, welche von jemand anderem erstellt wurde (wahrscheinlich derselbe Entwickler, der Ihre API *verwenden* würde). + +Der Vorgang, der stattfindet, wenn Ihre API-Anwendung die *externe API* aufruft, wird als „Callback“ bezeichnet. Denn die Software, die der externe Entwickler geschrieben hat, sendet einen Request an Ihre API und dann *ruft Ihre API zurück* (*calls back*) und sendet einen Request an eine *externe API* (die wahrscheinlich vom selben Entwickler erstellt wurde). + +In diesem Fall möchten Sie möglicherweise dokumentieren, wie diese externe API aussehen *sollte*. Welche *Pfadoperation* sie haben sollte, welchen Body sie erwarten sollte, welche Response sie zurückgeben sollte, usw. + +## Eine Anwendung mit Callbacks { #an-app-with-callbacks } + +Sehen wir uns das alles anhand eines Beispiels an. + +Stellen Sie sich vor, Sie entwickeln eine Anwendung, mit der Sie Rechnungen erstellen können. + +Diese Rechnungen haben eine `id`, einen optionalen `title`, einen `customer` (Kunde) und ein `total` (Gesamtsumme). + +Der Benutzer Ihrer API (ein externer Entwickler) erstellt mit einem POST-Request eine Rechnung in Ihrer API. + +Dann wird Ihre API (stellen wir uns vor): + +* die Rechnung an einen Kunden des externen Entwicklers senden. +* das Geld einsammeln. +* eine Benachrichtigung an den API-Benutzer (den externen Entwickler) zurücksenden. + * Dies erfolgt durch Senden eines POST-Requests (von *Ihrer API*) an eine *externe API*, die von diesem externen Entwickler bereitgestellt wird (das ist der „Callback“). + +## Die normale **FastAPI**-Anwendung { #the-normal-fastapi-app } + +Sehen wir uns zunächst an, wie die normale API-Anwendung aussehen würde, bevor wir den Callback hinzufügen. + +Sie verfügt über eine *Pfadoperation*, die einen `Invoice`-Body empfängt, und einen Query-Parameter `callback_url`, der die URL für den Callback enthält. + +Dieser Teil ist ziemlich normal, der größte Teil des Codes ist Ihnen wahrscheinlich bereits bekannt: + +{* ../../docs_src/openapi_callbacks/tutorial001.py hl[9:13,36:53] *} + +/// tip | Tipp + +Der Query-Parameter `callback_url` verwendet einen Pydantic-Url-Typ. + +/// + +Das einzig Neue ist `callbacks=invoices_callback_router.routes` als Argument für den *Pfadoperation-Dekorator*. Wir werden als Nächstes sehen, was das ist. + +## Dokumentation des Callbacks { #documenting-the-callback } + +Der tatsächliche Callback-Code hängt stark von Ihrer eigenen API-Anwendung ab. + +Und er wird wahrscheinlich von Anwendung zu Anwendung sehr unterschiedlich sein. + +Es könnten nur eine oder zwei Codezeilen sein, wie zum Beispiel: + +```Python +callback_url = "https://example.com/api/v1/invoices/events/" +httpx.post(callback_url, json={"description": "Invoice paid", "paid": True}) +``` + +Der möglicherweise wichtigste Teil des Callbacks besteht jedoch darin, sicherzustellen, dass Ihr API-Benutzer (der externe Entwickler) die *externe API* gemäß den Daten, die *Ihre API* im Requestbody des Callbacks senden wird, korrekt implementiert, usw. + +Als Nächstes fügen wir den Code hinzu, um zu dokumentieren, wie diese *externe API* aussehen sollte, um den Callback von *Ihrer API* zu empfangen. + +Diese Dokumentation wird in der Swagger-Oberfläche unter `/docs` in Ihrer API angezeigt und zeigt externen Entwicklern, wie diese die *externe API* erstellen sollten. + +In diesem Beispiel wird nicht der Callback selbst implementiert (das könnte nur eine Codezeile sein), sondern nur der Dokumentationsteil. + +/// tip | Tipp + +Der eigentliche Callback ist nur ein HTTP-Request. + +Wenn Sie den Callback selbst implementieren, können Sie beispielsweise HTTPX oder Requests verwenden. + +/// + +## Schreiben des Codes, der den Callback dokumentiert { #write-the-callback-documentation-code } + +Dieser Code wird nicht in Ihrer Anwendung ausgeführt, wir benötigen ihn nur, um zu *dokumentieren*, wie diese *externe API* aussehen soll. + +Sie wissen jedoch bereits, wie Sie mit **FastAPI** ganz einfach eine automatische Dokumentation für eine API erstellen. + +Daher werden wir dasselbe Wissen nutzen, um zu dokumentieren, wie die *externe API* aussehen sollte ... indem wir die *Pfadoperation(en)* erstellen, welche die externe API implementieren soll (die, welche Ihre API aufruft). + +/// tip | Tipp + +Wenn Sie den Code zum Dokumentieren eines Callbacks schreiben, kann es hilfreich sein, sich vorzustellen, dass Sie dieser *externe Entwickler* sind. Und dass Sie derzeit die *externe API* implementieren, nicht *Ihre API*. + +Wenn Sie diese Sichtweise (des *externen Entwicklers*) vorübergehend übernehmen, wird es offensichtlicher, wo die Parameter, das Pydantic-Modell für den Body, die Response, usw. für diese *externe API* hingehören. + +/// + +### Einen Callback-`APIRouter` erstellen { #create-a-callback-apirouter } + +Erstellen Sie zunächst einen neuen `APIRouter`, der einen oder mehrere Callbacks enthält. + +{* ../../docs_src/openapi_callbacks/tutorial001.py hl[3,25] *} + +### Die Callback-*Pfadoperation* erstellen { #create-the-callback-path-operation } + +Um die Callback-*Pfadoperation* zu erstellen, verwenden Sie denselben `APIRouter`, den Sie oben erstellt haben. + +Sie sollte wie eine normale FastAPI-*Pfadoperation* aussehen: + +* Sie sollte wahrscheinlich eine Deklaration des Bodys enthalten, die sie erhalten soll, z. B. `body: InvoiceEvent`. +* Und sie könnte auch eine Deklaration der Response enthalten, die zurückgegeben werden soll, z. B. `response_model=InvoiceEventReceived`. + +{* ../../docs_src/openapi_callbacks/tutorial001.py hl[16:18,21:22,28:32] *} + +Es gibt zwei Hauptunterschiede zu einer normalen *Pfadoperation*: + +* Es muss kein tatsächlicher Code vorhanden sein, da Ihre Anwendung diesen Code niemals aufruft. Sie wird nur zur Dokumentation der *externen API* verwendet. Die Funktion könnte also einfach `pass` enthalten. +* Der *Pfad* kann einen OpenAPI-3-Ausdruck enthalten (mehr dazu weiter unten), wo er Variablen mit Parametern und Teilen des ursprünglichen Requests verwenden kann, der an *Ihre API* gesendet wurde. + +### Der Callback-Pfadausdruck { #the-callback-path-expression } + +Der Callback-*Pfad* kann einen OpenAPI-3-Ausdruck enthalten, welcher Teile des ursprünglichen Requests enthalten kann, der an *Ihre API* gesendet wurde. + +In diesem Fall ist es der `str`: + +```Python +"{$callback_url}/invoices/{$request.body.id}" +``` + +Wenn Ihr API-Benutzer (der externe Entwickler) also einen Request an *Ihre API* sendet, via: + +``` +https://yourapi.com/invoices/?callback_url=https://www.external.org/events +``` + +mit einem JSON-Körper: + +```JSON +{ + "id": "2expen51ve", + "customer": "Mr. Richie Rich", + "total": "9999" +} +``` + +dann verarbeitet *Ihre API* die Rechnung und sendet irgendwann später einen Callback-Request an die `callback_url` (die *externe API*): + +``` +https://www.external.org/events/invoices/2expen51ve +``` + +mit einem JSON-Body, der etwa Folgendes enthält: + +```JSON +{ + "description": "Payment celebration", + "paid": true +} +``` + +und sie würde eine Response von dieser *externen API* mit einem JSON-Body wie dem folgenden erwarten: + +```JSON +{ + "ok": true +} +``` + +/// tip | Tipp + +Beachten Sie, dass die verwendete Callback-URL die URL enthält, die als Query-Parameter in `callback_url` (`https://www.external.org/events`) empfangen wurde, und auch die Rechnungs-`id` aus dem JSON-Body (`2expen51ve`). + +/// + +### Den Callback-Router hinzufügen { #add-the-callback-router } + +An diesem Punkt haben Sie die benötigte(n) *Callback-Pfadoperation(en)* (diejenige(n), die der *externe Entwickler* in der *externen API* implementieren sollte) im Callback-Router, den Sie oben erstellt haben. + +Verwenden Sie nun den Parameter `callbacks` im *Pfadoperation-Dekorator Ihrer API*, um das Attribut `.routes` (das ist eigentlich nur eine `list`e von Routen/*Pfadoperationen*) dieses Callback-Routers zu übergeben: + +{* ../../docs_src/openapi_callbacks/tutorial001.py hl[35] *} + +/// tip | Tipp + +Beachten Sie, dass Sie nicht den Router selbst (`invoices_callback_router`) an `callback=` übergeben, sondern das Attribut `.routes`, wie in `invoices_callback_router.routes`. + +/// + +### Es in der Dokumentation testen { #check-the-docs } + +Jetzt können Sie Ihre Anwendung starten und auf http://127.0.0.1:8000/docs gehen. + +Sie sehen Ihre Dokumentation, einschließlich eines Abschnitts „Callbacks“ für Ihre *Pfadoperation*, der zeigt, wie die *externe API* aussehen sollte: + + diff --git a/docs/de/docs/advanced/openapi-webhooks.md b/docs/de/docs/advanced/openapi-webhooks.md new file mode 100644 index 0000000..a09a675 --- /dev/null +++ b/docs/de/docs/advanced/openapi-webhooks.md @@ -0,0 +1,55 @@ +# OpenAPI Webhooks { #openapi-webhooks } + +Es gibt Fälle, in denen Sie Ihren API-**Benutzern** mitteilen möchten, dass Ihre App *deren* App mit einigen Daten aufrufen (einen Request senden) könnte, normalerweise um über ein bestimmtes **Event** zu **benachrichtigen**. + +Das bedeutet, dass anstelle des normalen Prozesses, bei dem Ihre Benutzer Requests an Ihre API senden, **Ihre API** (oder Ihre App) **Requests an deren System** (an deren API, deren App) senden könnte. + +Das wird normalerweise als **Webhook** bezeichnet. + +## Webhooks-Schritte { #webhooks-steps } + +Der Prozess besteht normalerweise darin, dass **Sie in Ihrem Code definieren**, welche Nachricht Sie senden möchten, den **Body des Requests**. + +Sie definieren auch auf irgendeine Weise, in welchen **Momenten** Ihre App diese Requests oder Events senden wird. + +Und **Ihre Benutzer** definieren auf irgendeine Weise (zum Beispiel irgendwo in einem Web-Dashboard) die **URL**, an die Ihre App diese Requests senden soll. + +Die gesamte **Logik** zur Registrierung der URLs für Webhooks und der Code zum tatsächlichen Senden dieser Requests liegt bei Ihnen. Sie schreiben es so, wie Sie möchten, in **Ihrem eigenen Code**. + +## Webhooks mit **FastAPI** und OpenAPI dokumentieren { #documenting-webhooks-with-fastapi-and-openapi } + +Mit **FastAPI**, mithilfe von OpenAPI, können Sie die Namen dieser Webhooks, die Arten von HTTP-Operationen, die Ihre App senden kann (z. B. `POST`, `PUT`, usw.) und die Request**bodys** definieren, die Ihre App senden würde. + +Dies kann es Ihren Benutzern viel einfacher machen, **deren APIs zu implementieren**, um Ihre **Webhook**-Requests zu empfangen. Möglicherweise können diese sogar einen Teil ihres eigenen API-Codes automatisch generieren. + +/// info | Info + +Webhooks sind in OpenAPI 3.1.0 und höher verfügbar und werden von FastAPI `0.99.0` und höher unterstützt. + +/// + +## Eine App mit Webhooks { #an-app-with-webhooks } + +Wenn Sie eine **FastAPI**-Anwendung erstellen, gibt es ein `webhooks`-Attribut, das Sie verwenden können, um *Webhooks* zu definieren, genauso wie Sie *Pfadoperationen* definieren würden, zum Beispiel mit `@app.webhooks.post()`. + +{* ../../docs_src/openapi_webhooks/tutorial001.py hl[9:13,36:53] *} + +Die von Ihnen definierten Webhooks landen im **OpenAPI**-Schema und der automatischen **Dokumentations-Oberfläche**. + +/// info | Info + +Das `app.webhooks`-Objekt ist eigentlich nur ein `APIRouter`, derselbe Typ, den Sie verwenden würden, wenn Sie Ihre App mit mehreren Dateien strukturieren. + +/// + +Beachten Sie, dass Sie bei Webhooks tatsächlich keinen *Pfad* (wie `/items/`) deklarieren, der Text, den Sie dort übergeben, ist lediglich eine **Kennzeichnung** des Webhooks (der Name des Events). Zum Beispiel ist in `@app.webhooks.post("new-subscription")` der Webhook-Name `new-subscription`. + +Das liegt daran, dass erwartet wird, dass **Ihre Benutzer** den tatsächlichen **URL-Pfad**, an dem sie den Webhook-Request empfangen möchten, auf andere Weise definieren (z. B. über ein Web-Dashboard). + +### Die Dokumentation testen { #check-the-docs } + +Jetzt können Sie Ihre App starten und auf http://127.0.0.1:8000/docs gehen. + +Sie werden sehen, dass Ihre Dokumentation die normalen *Pfadoperationen* und jetzt auch einige **Webhooks** enthält: + + diff --git a/docs/de/docs/advanced/path-operation-advanced-configuration.md b/docs/de/docs/advanced/path-operation-advanced-configuration.md new file mode 100644 index 0000000..f5ec7c4 --- /dev/null +++ b/docs/de/docs/advanced/path-operation-advanced-configuration.md @@ -0,0 +1,204 @@ +# Fortgeschrittene Konfiguration der Pfadoperation { #path-operation-advanced-configuration } + +## OpenAPI operationId { #openapi-operationid } + +/// warning | Achtung + +Wenn Sie kein „Experte“ für OpenAPI sind, brauchen Sie dies wahrscheinlich nicht. + +/// + +Mit dem Parameter `operation_id` können Sie die OpenAPI `operationId` festlegen, die in Ihrer *Pfadoperation* verwendet werden soll. + +Sie müssten sicherstellen, dass sie für jede Operation eindeutig ist. + +{* ../../docs_src/path_operation_advanced_configuration/tutorial001.py hl[6] *} + +### Verwendung des Namens der *Pfadoperation-Funktion* als operationId { #using-the-path-operation-function-name-as-the-operationid } + +Wenn Sie die Funktionsnamen Ihrer API als `operationId`s verwenden möchten, können Sie über alle iterieren und die `operation_id` jeder *Pfadoperation* mit deren `APIRoute.name` überschreiben. + +Sie sollten dies tun, nachdem Sie alle Ihre *Pfadoperationen* hinzugefügt haben. + +{* ../../docs_src/path_operation_advanced_configuration/tutorial002.py hl[2, 12:21, 24] *} + +/// tip | Tipp + +Wenn Sie `app.openapi()` manuell aufrufen, sollten Sie vorher die `operationId`s aktualisiert haben. + +/// + +/// warning | Achtung + +Wenn Sie dies tun, müssen Sie sicherstellen, dass jede Ihrer *Pfadoperation-Funktionen* einen eindeutigen Namen hat. + +Auch wenn diese sich in unterschiedlichen Modulen (Python-Dateien) befinden. + +/// + +## Von OpenAPI ausschließen { #exclude-from-openapi } + +Um eine *Pfadoperation* aus dem generierten OpenAPI-Schema (und damit aus den automatischen Dokumentationssystemen) auszuschließen, verwenden Sie den Parameter `include_in_schema` und setzen Sie ihn auf `False`: + +{* ../../docs_src/path_operation_advanced_configuration/tutorial003.py hl[6] *} + +## Fortgeschrittene Beschreibung mittels Docstring { #advanced-description-from-docstring } + +Sie können die verwendeten Zeilen aus dem Docstring einer *Pfadoperation-Funktion* einschränken, die für OpenAPI verwendet werden. + +Das Hinzufügen eines `\f` (ein maskiertes „Form Feed“-Zeichen) führt dazu, dass **FastAPI** die für OpenAPI verwendete Ausgabe an dieser Stelle abschneidet. + +Sie wird nicht in der Dokumentation angezeigt, aber andere Tools (z. B. Sphinx) können den Rest verwenden. + +{* ../../docs_src/path_operation_advanced_configuration/tutorial004.py hl[19:29] *} + +## Zusätzliche Responses { #additional-responses } + +Sie haben wahrscheinlich gesehen, wie man das `response_model` und den `status_code` für eine *Pfadoperation* deklariert. + +Das definiert die Metadaten der Haupt-Response einer *Pfadoperation*. + +Sie können auch zusätzliche Responses mit deren Modellen, Statuscodes usw. deklarieren. + +Es gibt hier in der Dokumentation ein ganzes Kapitel darüber, Sie können es unter [Zusätzliche Responses in OpenAPI](additional-responses.md){.internal-link target=_blank} lesen. + +## OpenAPI-Extra { #openapi-extra } + +Wenn Sie in Ihrer Anwendung eine *Pfadoperation* deklarieren, generiert **FastAPI** automatisch die relevanten Metadaten dieser *Pfadoperation*, die in das OpenAPI-Schema aufgenommen werden sollen. + +/// note | Technische Details + +In der OpenAPI-Spezifikation wird das Operationsobjekt genannt. + +/// + +Es hat alle Informationen zur *Pfadoperation* und wird zur Erstellung der automatischen Dokumentation verwendet. + +Es enthält `tags`, `parameters`, `requestBody`, `responses`, usw. + +Dieses *Pfadoperation*-spezifische OpenAPI-Schema wird normalerweise automatisch von **FastAPI** generiert, Sie können es aber auch erweitern. + +/// tip | Tipp + +Dies ist ein Low-Level-Erweiterungspunkt. + +Wenn Sie nur zusätzliche Responses deklarieren müssen, können Sie dies bequemer mit [Zusätzliche Responses in OpenAPI](additional-responses.md){.internal-link target=_blank} tun. + +/// + +Sie können das OpenAPI-Schema für eine *Pfadoperation* erweitern, indem Sie den Parameter `openapi_extra` verwenden. + +### OpenAPI-Erweiterungen { #openapi-extensions } + +Dieses `openapi_extra` kann beispielsweise hilfreich sein, um [OpenAPI-Erweiterungen](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#specificationExtensions) zu deklarieren: + +{* ../../docs_src/path_operation_advanced_configuration/tutorial005.py hl[6] *} + +Wenn Sie die automatische API-Dokumentation öffnen, wird Ihre Erweiterung am Ende der spezifischen *Pfadoperation* angezeigt. + + + +Und wenn Sie die resultierende OpenAPI sehen (unter `/openapi.json` in Ihrer API), sehen Sie Ihre Erweiterung auch als Teil der spezifischen *Pfadoperation*: + +```JSON hl_lines="22" +{ + "openapi": "3.1.0", + "info": { + "title": "FastAPI", + "version": "0.1.0" + }, + "paths": { + "/items/": { + "get": { + "summary": "Read Items", + "operationId": "read_items_items__get", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": {} + } + } + } + }, + "x-aperture-labs-portal": "blue" + } + } + } +} +``` + +### Benutzerdefiniertes OpenAPI-*Pfadoperation*-Schema { #custom-openapi-path-operation-schema } + +Das Dictionary in `openapi_extra` wird mit dem automatisch generierten OpenAPI-Schema für die *Pfadoperation* zusammengeführt (mittels Deep Merge). + +Sie können dem automatisch generierten Schema also zusätzliche Daten hinzufügen. + +Sie könnten sich beispielsweise dafür entscheiden, den Request mit Ihrem eigenen Code zu lesen und zu validieren, ohne die automatischen Funktionen von FastAPI mit Pydantic zu verwenden, aber Sie könnten den Request trotzdem im OpenAPI-Schema definieren wollen. + +Das könnte man mit `openapi_extra` machen: + +{* ../../docs_src/path_operation_advanced_configuration/tutorial006.py hl[19:36, 39:40] *} + +In diesem Beispiel haben wir kein Pydantic-Modell deklariert. Tatsächlich wird der Requestbody nicht einmal als JSON geparst, sondern direkt als `bytes` gelesen und die Funktion `magic_data_reader()` wäre dafür verantwortlich, ihn in irgendeiner Weise zu parsen. + +Dennoch können wir das zu erwartende Schema für den Requestbody deklarieren. + +### Benutzerdefinierter OpenAPI-Content-Type { #custom-openapi-content-type } + +Mit demselben Trick könnten Sie ein Pydantic-Modell verwenden, um das JSON-Schema zu definieren, das dann im benutzerdefinierten Abschnitt des OpenAPI-Schemas für die *Pfadoperation* enthalten ist. + +Und Sie könnten dies auch tun, wenn der Datentyp im Request nicht JSON ist. + +In der folgenden Anwendung verwenden wir beispielsweise weder die integrierte Funktionalität von FastAPI zum Extrahieren des JSON-Schemas aus Pydantic-Modellen noch die automatische Validierung für JSON. Tatsächlich deklarieren wir den Request-Content-Type als YAML und nicht als JSON: + +//// tab | Pydantic v2 + +{* ../../docs_src/path_operation_advanced_configuration/tutorial007.py hl[17:22, 24] *} + +//// + +//// tab | Pydantic v1 + +{* ../../docs_src/path_operation_advanced_configuration/tutorial007_pv1.py hl[17:22, 24] *} + +//// + +/// info | Info + +In Pydantic Version 1 hieß die Methode zum Abrufen des JSON-Schemas für ein Modell `Item.schema()`, in Pydantic Version 2 heißt die Methode `Item.model_json_schema()`. + +/// + +Obwohl wir nicht die standardmäßig integrierte Funktionalität verwenden, verwenden wir dennoch ein Pydantic-Modell, um das JSON-Schema für die Daten, die wir in YAML empfangen möchten, manuell zu generieren. + +Dann verwenden wir den Request direkt und extrahieren den Body als `bytes`. Das bedeutet, dass FastAPI nicht einmal versucht, den Request-Payload als JSON zu parsen. + +Und dann parsen wir in unserem Code diesen YAML-Inhalt direkt und verwenden dann wieder dasselbe Pydantic-Modell, um den YAML-Inhalt zu validieren: + +//// tab | Pydantic v2 + +{* ../../docs_src/path_operation_advanced_configuration/tutorial007.py hl[26:33] *} + +//// + +//// tab | Pydantic v1 + +{* ../../docs_src/path_operation_advanced_configuration/tutorial007_pv1.py hl[26:33] *} + +//// + +/// info | Info + +In Pydantic Version 1 war die Methode zum Parsen und Validieren eines Objekts `Item.parse_obj()`, in Pydantic Version 2 heißt die Methode `Item.model_validate()`. + +/// + +/// tip | Tipp + +Hier verwenden wir dasselbe Pydantic-Modell wieder. + +Aber genauso hätten wir es auch auf andere Weise validieren können. + +/// diff --git a/docs/de/docs/advanced/response-change-status-code.md b/docs/de/docs/advanced/response-change-status-code.md new file mode 100644 index 0000000..b079e24 --- /dev/null +++ b/docs/de/docs/advanced/response-change-status-code.md @@ -0,0 +1,31 @@ +# Response – Statuscode ändern { #response-change-status-code } + +Sie haben wahrscheinlich schon vorher gelesen, dass Sie einen Default-[Response-Statuscode](../tutorial/response-status-code.md){.internal-link target=_blank} festlegen können. + +In manchen Fällen müssen Sie jedoch einen anderen als den Default-Statuscode zurückgeben. + +## Anwendungsfall { #use-case } + +Stellen Sie sich zum Beispiel vor, Sie möchten standardmäßig den HTTP-Statuscode „OK“ `200` zurückgeben. + +Wenn die Daten jedoch nicht vorhanden sind, möchten Sie diese erstellen und den HTTP-Statuscode „CREATED“ `201` zurückgeben. + +Sie möchten aber dennoch in der Lage sein, die von Ihnen zurückgegebenen Daten mit einem `response_model` zu filtern und zu konvertieren. + +In diesen Fällen können Sie einen `Response`-Parameter verwenden. + +## Einen `Response`-Parameter verwenden { #use-a-response-parameter } + +Sie können einen Parameter vom Typ `Response` in Ihrer *Pfadoperation-Funktion* deklarieren (wie Sie es auch für Cookies und Header tun können). + +Anschließend können Sie den `status_code` in diesem *vorübergehenden* Response-Objekt festlegen. + +{* ../../docs_src/response_change_status_code/tutorial001.py hl[1,9,12] *} + +Und dann können Sie jedes benötigte Objekt zurückgeben, wie Sie es normalerweise tun würden (ein `dict`, ein Datenbankmodell usw.). + +Und wenn Sie ein `response_model` deklariert haben, wird es weiterhin zum Filtern und Konvertieren des von Ihnen zurückgegebenen Objekts verwendet. + +**FastAPI** verwendet diese *vorübergehende* Response, um den Statuscode (auch Cookies und Header) zu extrahieren und fügt diese in die endgültige Response ein, die den von Ihnen zurückgegebenen Wert enthält, gefiltert nach einem beliebigen `response_model`. + +Sie können den Parameter `Response` auch in Abhängigkeiten deklarieren und den Statuscode darin festlegen. Bedenken Sie jedoch, dass der zuletzt gesetzte gewinnt. diff --git a/docs/de/docs/advanced/response-cookies.md b/docs/de/docs/advanced/response-cookies.md new file mode 100644 index 0000000..02fe99c --- /dev/null +++ b/docs/de/docs/advanced/response-cookies.md @@ -0,0 +1,51 @@ +# Response-Cookies { #response-cookies } + +## Einen `Response`-Parameter verwenden { #use-a-response-parameter } + +Sie können einen Parameter vom Typ `Response` in Ihrer *Pfadoperation-Funktion* deklarieren. + +Und dann können Sie Cookies in diesem *vorübergehenden* Response-Objekt setzen. + +{* ../../docs_src/response_cookies/tutorial002.py hl[1, 8:9] *} + +Anschließend können Sie wie gewohnt jedes gewünschte Objekt zurückgeben (ein `dict`, ein Datenbankmodell, usw.). + +Und wenn Sie ein `response_model` deklariert haben, wird es weiterhin zum Filtern und Konvertieren des von Ihnen zurückgegebenen Objekts verwendet. + +**FastAPI** verwendet diese *vorübergehende* Response, um die Cookies (auch Header und Statuscode) zu extrahieren und fügt diese in die endgültige Response ein, die den von Ihnen zurückgegebenen Wert enthält, gefiltert nach einem beliebigen `response_model`. + +Sie können den `Response`-Parameter auch in Abhängigkeiten deklarieren und darin Cookies (und Header) setzen. + +## Eine `Response` direkt zurückgeben { #return-a-response-directly } + +Sie können Cookies auch erstellen, wenn Sie eine `Response` direkt in Ihrem Code zurückgeben. + +Dazu können Sie eine Response erstellen, wie unter [Eine Response direkt zurückgeben](response-directly.md){.internal-link target=_blank} beschrieben. + +Setzen Sie dann Cookies darin und geben Sie sie dann zurück: + +{* ../../docs_src/response_cookies/tutorial001.py hl[10:12] *} + +/// tip | Tipp + +Beachten Sie, dass, wenn Sie eine Response direkt zurückgeben, anstatt den `Response`-Parameter zu verwenden, FastAPI diese direkt zurückgibt. + +Sie müssen also sicherstellen, dass Ihre Daten vom richtigen Typ sind. Z. B. sollten diese mit JSON kompatibel sein, wenn Sie eine `JSONResponse` zurückgeben. + +Und auch, dass Sie keine Daten senden, die durch ein `response_model` hätten gefiltert werden sollen. + +/// + +### Mehr Informationen { #more-info } + +/// note | Technische Details + +Sie können auch `from starlette.responses import Response` oder `from starlette.responses import JSONResponse` verwenden. + +**FastAPI** bietet dieselben `starlette.responses` auch via `fastapi.responses` an, als Annehmlichkeit für Sie, den Entwickler. Die meisten verfügbaren Responses kommen aber direkt von Starlette. + +Und da die `Response` häufig zum Setzen von Headern und Cookies verwendet wird, stellt **FastAPI** diese auch unter `fastapi.Response` bereit. + +/// + +Um alle verfügbaren Parameter und Optionen anzuzeigen, sehen Sie sich deren Dokumentation in Starlette an. diff --git a/docs/de/docs/advanced/response-directly.md b/docs/de/docs/advanced/response-directly.md new file mode 100644 index 0000000..d995173 --- /dev/null +++ b/docs/de/docs/advanced/response-directly.md @@ -0,0 +1,65 @@ +# Eine Response direkt zurückgeben { #return-a-response-directly } + +Wenn Sie eine **FastAPI** *Pfadoperation* erstellen, können Sie normalerweise beliebige Daten davon zurückgeben: ein `dict`, eine `list`, ein Pydantic-Modell, ein Datenbankmodell, usw. + +Standardmäßig konvertiert **FastAPI** diesen Rückgabewert automatisch nach JSON, mithilfe des `jsonable_encoder`, der in [JSON-kompatibler Encoder](../tutorial/encoder.md){.internal-link target=_blank} erläutert wird. + +Dann würde es hinter den Kulissen diese JSON-kompatiblen Daten (z. B. ein `dict`) in eine `JSONResponse` einfügen, die zum Senden der Response an den Client verwendet wird. + +Sie können jedoch direkt eine `JSONResponse` von Ihren *Pfadoperationen* zurückgeben. + +Das kann beispielsweise nützlich sein, um benutzerdefinierte Header oder Cookies zurückzugeben. + +## Eine `Response` zurückgeben { #return-a-response } + +Tatsächlich können Sie jede `Response` oder jede Unterklasse davon zurückgeben. + +/// tip | Tipp + +`JSONResponse` selbst ist eine Unterklasse von `Response`. + +/// + +Und wenn Sie eine `Response` zurückgeben, wird **FastAPI** diese direkt weiterleiten. + +Es wird keine Datenkonvertierung mit Pydantic-Modellen durchführen, es wird den Inhalt nicht in irgendeinen Typ konvertieren, usw. + +Dadurch haben Sie viel Flexibilität. Sie können jeden Datentyp zurückgeben, jede Datendeklaration oder -validierung überschreiben, usw. + +## Verwendung des `jsonable_encoder` in einer `Response` { #using-the-jsonable-encoder-in-a-response } + +Da **FastAPI** keine Änderungen an einer von Ihnen zurückgegebenen `Response` vornimmt, müssen Sie sicherstellen, dass deren Inhalt dafür bereit ist. + +Sie können beispielsweise kein Pydantic-Modell in eine `JSONResponse` einfügen, ohne es zuvor in ein `dict` zu konvertieren, bei dem alle Datentypen (wie `datetime`, `UUID`, usw.) in JSON-kompatible Typen konvertiert wurden. + +In diesen Fällen können Sie den `jsonable_encoder` verwenden, um Ihre Daten zu konvertieren, bevor Sie sie an eine Response übergeben: + +{* ../../docs_src/response_directly/tutorial001.py hl[6:7,21:22] *} + +/// note | Technische Details + +Sie könnten auch `from starlette.responses import JSONResponse` verwenden. + +**FastAPI** bietet dieselben `starlette.responses` auch via `fastapi.responses` an, als Annehmlichkeit für Sie, den Entwickler. Die meisten verfügbaren Responses kommen aber direkt von Starlette. + +/// + +## Eine benutzerdefinierte `Response` zurückgeben { #returning-a-custom-response } + +Das obige Beispiel zeigt alle Teile, die Sie benötigen, ist aber noch nicht sehr nützlich, da Sie das `item` einfach direkt hätten zurückgeben können, und **FastAPI** würde es für Sie in eine `JSONResponse` einfügen, es in ein `dict` konvertieren, usw. All das standardmäßig. + +Sehen wir uns nun an, wie Sie damit eine benutzerdefinierte Response zurückgeben können. + +Nehmen wir an, Sie möchten eine XML-Response zurückgeben. + +Sie könnten Ihren XML-Inhalt als String in eine `Response` einfügen und sie zurückgeben: + +{* ../../docs_src/response_directly/tutorial002.py hl[1,18] *} + +## Anmerkungen { #notes } + +Wenn Sie eine `Response` direkt zurücksenden, werden deren Daten weder validiert, konvertiert (serialisiert), noch automatisch dokumentiert. + +Sie können sie aber trotzdem wie unter [Zusätzliche Responses in OpenAPI](additional-responses.md){.internal-link target=_blank} beschrieben dokumentieren. + +In späteren Abschnitten erfahren Sie, wie Sie diese benutzerdefinierten `Response`s verwenden/deklarieren und gleichzeitig über automatische Datenkonvertierung, Dokumentation, usw. verfügen. diff --git a/docs/de/docs/advanced/response-headers.md b/docs/de/docs/advanced/response-headers.md new file mode 100644 index 0000000..1dc7c06 --- /dev/null +++ b/docs/de/docs/advanced/response-headers.md @@ -0,0 +1,41 @@ +# Response-Header { #response-headers } + +## Einen `Response`-Parameter verwenden { #use-a-response-parameter } + +Sie können einen Parameter vom Typ `Response` in Ihrer *Pfadoperation-Funktion* deklarieren (wie Sie es auch für Cookies tun können). + +Und dann können Sie Header in diesem *vorübergehenden* Response-Objekt festlegen. + +{* ../../docs_src/response_headers/tutorial002.py hl[1, 7:8] *} + +Anschließend können Sie wie gewohnt jedes gewünschte Objekt zurückgeben (ein `dict`, ein Datenbankmodell, usw.). + +Und wenn Sie ein `response_model` deklariert haben, wird es weiterhin zum Filtern und Konvertieren des von Ihnen zurückgegebenen Objekts verwendet. + +**FastAPI** verwendet diese *vorübergehende* Response, um die Header (auch Cookies und Statuscode) zu extrahieren und fügt diese in die endgültige Response ein, die den von Ihnen zurückgegebenen Wert enthält, gefiltert nach einem beliebigen `response_model`. + +Sie können den Parameter `Response` auch in Abhängigkeiten deklarieren und darin Header (und Cookies) festlegen. + +## Eine `Response` direkt zurückgeben { #return-a-response-directly } + +Sie können auch Header hinzufügen, wenn Sie eine `Response` direkt zurückgeben. + +Erstellen Sie eine Response wie in [Eine Response direkt zurückgeben](response-directly.md){.internal-link target=_blank} beschrieben und übergeben Sie die Header als zusätzlichen Parameter: + +{* ../../docs_src/response_headers/tutorial001.py hl[10:12] *} + +/// note | Technische Details + +Sie können auch `from starlette.responses import Response` oder `from starlette.responses import JSONResponse` verwenden. + +**FastAPI** bietet dieselben `starlette.responses` auch via `fastapi.responses` an, als Annehmlichkeit für Sie, den Entwickler. Die meisten verfügbaren Responses kommen aber direkt von Starlette. + +Und da die `Response` häufig zum Setzen von Headern und Cookies verwendet wird, stellt **FastAPI** diese auch unter `fastapi.Response` bereit. + +/// + +## Benutzerdefinierte Header { #custom-headers } + +Beachten Sie, dass benutzerdefinierte proprietäre Header mittels des Präfix `X-` hinzugefügt werden können. + +Wenn Sie jedoch benutzerdefinierte Header haben, die ein Client in einem Browser sehen können soll, müssen Sie diese zu Ihrer CORS-Konfiguration hinzufügen (weitere Informationen finden Sie unter [CORS (Cross-Origin Resource Sharing)](../tutorial/cors.md){.internal-link target=_blank}), unter Verwendung des Parameters `expose_headers`, dokumentiert in Starlettes CORS-Dokumentation. diff --git a/docs/de/docs/advanced/security/http-basic-auth.md b/docs/de/docs/advanced/security/http-basic-auth.md new file mode 100644 index 0000000..f906ecd --- /dev/null +++ b/docs/de/docs/advanced/security/http-basic-auth.md @@ -0,0 +1,107 @@ +# HTTP Basic Auth { #http-basic-auth } + +Für die einfachsten Fälle können Sie HTTP Basic Auth verwenden. + +Bei HTTP Basic Auth erwartet die Anwendung einen Header, der einen Benutzernamen und ein Passwort enthält. + +Wenn sie diesen nicht empfängt, gibt sie den HTTP-Error 401 „Unauthorized“ zurück. + +Und gibt einen Header `WWW-Authenticate` mit dem Wert `Basic` und einem optionalen `realm`-Parameter zurück. + +Dadurch wird der Browser angewiesen, die integrierte Eingabeaufforderung für einen Benutzernamen und ein Passwort anzuzeigen. + +Wenn Sie dann den Benutzernamen und das Passwort eingeben, sendet der Browser diese automatisch im Header. + +## Einfaches HTTP Basic Auth { #simple-http-basic-auth } + +* Importieren Sie `HTTPBasic` und `HTTPBasicCredentials`. +* Erstellen Sie mit `HTTPBasic` ein „`security`-Schema“. +* Verwenden Sie dieses `security` mit einer Abhängigkeit in Ihrer *Pfadoperation*. +* Diese gibt ein Objekt vom Typ `HTTPBasicCredentials` zurück: + * Es enthält den gesendeten `username` und das gesendete `password`. + +{* ../../docs_src/security/tutorial006_an_py39.py hl[4,8,12] *} + +Wenn Sie versuchen, die URL zum ersten Mal zu öffnen (oder in der Dokumentation auf den Button „Execute“ zu klicken), wird der Browser Sie nach Ihrem Benutzernamen und Passwort fragen: + + + +## Den Benutzernamen überprüfen { #check-the-username } + +Hier ist ein vollständigeres Beispiel. + +Verwenden Sie eine Abhängigkeit, um zu überprüfen, ob Benutzername und Passwort korrekt sind. + +Verwenden Sie dazu das Python-Standardmodul `secrets`, um den Benutzernamen und das Passwort zu überprüfen. + +`secrets.compare_digest()` benötigt `bytes` oder einen `str`, welcher nur ASCII-Zeichen (solche der englischen Sprache) enthalten darf, das bedeutet, dass es nicht mit Zeichen wie `á`, wie in `Sebastián`, funktionieren würde. + +Um dies zu lösen, konvertieren wir zunächst den `username` und das `password` in UTF-8-codierte `bytes`. + +Dann können wir `secrets.compare_digest()` verwenden, um sicherzustellen, dass `credentials.username` `"stanleyjobson"` und `credentials.password` `"swordfish"` ist. + +{* ../../docs_src/security/tutorial007_an_py39.py hl[1,12:24] *} + +Dies wäre das gleiche wie: + +```Python +if not (credentials.username == "stanleyjobson") or not (credentials.password == "swordfish"): + # Einen Error zurückgeben + ... +``` + +Aber durch die Verwendung von `secrets.compare_digest()` ist dieser Code sicher vor einer Art von Angriffen, die „Timing-Angriffe“ genannt werden. + +### Timing-Angriffe { #timing-attacks } + +Aber was ist ein „Timing-Angriff“? + +Stellen wir uns vor, dass einige Angreifer versuchen, den Benutzernamen und das Passwort zu erraten. + +Und sie senden einen Request mit dem Benutzernamen `johndoe` und dem Passwort `love123`. + +Dann würde der Python-Code in Ihrer Anwendung etwa so aussehen: + +```Python +if "johndoe" == "stanleyjobson" and "love123" == "swordfish": + ... +``` + +Aber genau in dem Moment, in dem Python das erste `j` in `johndoe` mit dem ersten `s` in `stanleyjobson` vergleicht, gibt es `False` zurück, da es bereits weiß, dass diese beiden Strings nicht identisch sind, und denkt, „Es besteht keine Notwendigkeit, weitere Berechnungen mit dem Vergleich der restlichen Buchstaben zu verschwenden“. Und Ihre Anwendung wird zurückgeben „Incorrect username or password“. + +Doch dann versuchen es die Angreifer mit dem Benutzernamen `stanleyjobsox` und dem Passwort `love123`. + +Und Ihr Anwendungscode macht etwa Folgendes: + +```Python +if "stanleyjobsox" == "stanleyjobson" and "love123" == "swordfish": + ... +``` + +Python muss das gesamte `stanleyjobso` in `stanleyjobsox` und `stanleyjobson` vergleichen, bevor es erkennt, dass beide Zeichenfolgen nicht gleich sind. Daher wird es einige zusätzliche Mikrosekunden dauern, bis die Response „Incorrect username or password“ erfolgt. + +#### Die Zeit zum Antworten hilft den Angreifern { #the-time-to-answer-helps-the-attackers } + +Wenn die Angreifer zu diesem Zeitpunkt feststellen, dass der Server einige Mikrosekunden länger braucht, um die Response „Incorrect username or password“ zu senden, wissen sie, dass sie _etwas_ richtig gemacht haben, einige der Anfangsbuchstaben waren richtig. + +Und dann können sie es noch einmal versuchen, wohl wissend, dass es wahrscheinlich eher etwas mit `stanleyjobsox` als mit `johndoe` zu tun hat. + +#### Ein „professioneller“ Angriff { #a-professional-attack } + +Natürlich würden die Angreifer das alles nicht von Hand versuchen, sondern ein Programm dafür schreiben, möglicherweise mit Tausenden oder Millionen Tests pro Sekunde. Und würden jeweils nur einen zusätzlichen richtigen Buchstaben erhalten. + +Aber so hätten die Angreifer in wenigen Minuten oder Stunden mit der „Hilfe“ unserer Anwendung den richtigen Benutzernamen und das richtige Passwort erraten, indem sie die Zeitspanne zur Hilfe nehmen, die diese zur Beantwortung benötigt. + +#### Das Problem beheben mittels `secrets.compare_digest()` { #fix-it-with-secrets-compare-digest } + +Aber in unserem Code verwenden wir tatsächlich `secrets.compare_digest()`. + +Damit wird, kurz gesagt, der Vergleich von `stanleyjobsox` mit `stanleyjobson` genauso lange dauern wie der Vergleich von `johndoe` mit `stanleyjobson`. Und das Gleiche gilt für das Passwort. + +So ist Ihr Anwendungscode, dank der Verwendung von `secrets.compare_digest()`, vor dieser ganzen Klasse von Sicherheitsangriffen geschützt. + +### Den Error zurückgeben { #return-the-error } + +Nachdem Sie festgestellt haben, dass die Anmeldeinformationen falsch sind, geben Sie eine `HTTPException` mit dem Statuscode 401 zurück (derselbe, der auch zurückgegeben wird, wenn keine Anmeldeinformationen angegeben werden) und fügen den Header `WWW-Authenticate` hinzu, damit der Browser die Anmeldeaufforderung erneut anzeigt: + +{* ../../docs_src/security/tutorial007_an_py39.py hl[26:30] *} diff --git a/docs/de/docs/advanced/security/index.md b/docs/de/docs/advanced/security/index.md new file mode 100644 index 0000000..d7e6332 --- /dev/null +++ b/docs/de/docs/advanced/security/index.md @@ -0,0 +1,19 @@ +# Fortgeschrittene Sicherheit { #advanced-security } + +## Zusatzfunktionen { #additional-features } + +Neben den in [Tutorial – Benutzerhandbuch: Sicherheit](../../tutorial/security/index.md){.internal-link target=_blank} behandelten Funktionen gibt es noch einige zusätzliche Funktionen zur Handhabung der Sicherheit. + +/// tip | Tipp + +Die nächsten Abschnitte sind **nicht unbedingt „fortgeschritten“**. + +Und es ist möglich, dass für Ihren Anwendungsfall die Lösung in einem davon liegt. + +/// + +## Das Tutorial zuerst lesen { #read-the-tutorial-first } + +Die nächsten Abschnitte setzen voraus, dass Sie das Haupt-[Tutorial – Benutzerhandbuch: Sicherheit](../../tutorial/security/index.md){.internal-link target=_blank} bereits gelesen haben. + +Sie basieren alle auf den gleichen Konzepten, ermöglichen jedoch einige zusätzliche Funktionalitäten. diff --git a/docs/de/docs/advanced/security/oauth2-scopes.md b/docs/de/docs/advanced/security/oauth2-scopes.md new file mode 100644 index 0000000..b96715d --- /dev/null +++ b/docs/de/docs/advanced/security/oauth2-scopes.md @@ -0,0 +1,274 @@ +# OAuth2-Scopes { #oauth2-scopes } + +Sie können OAuth2-Scopes direkt in **FastAPI** verwenden, sie sind nahtlos integriert. + +Das ermöglicht es Ihnen, ein feingranuliertes Berechtigungssystem nach dem OAuth2-Standard in Ihre OpenAPI-Anwendung (und deren API-Dokumentation) zu integrieren. + +OAuth2 mit Scopes ist der Mechanismus, der von vielen großen Authentifizierungsanbietern wie Facebook, Google, GitHub, Microsoft, X (Twitter) usw. verwendet wird. Sie verwenden ihn, um Benutzern und Anwendungen spezifische Berechtigungen zu erteilen. + +Jedes Mal, wenn Sie sich mit Facebook, Google, GitHub, Microsoft oder X (Twitter) anmelden („log in with“), verwendet die entsprechende Anwendung OAuth2 mit Scopes. + +In diesem Abschnitt erfahren Sie, wie Sie Authentifizierung und Autorisierung mit demselben OAuth2, mit Scopes in Ihrer **FastAPI**-Anwendung verwalten. + +/// warning | Achtung + +Dies ist ein mehr oder weniger fortgeschrittener Abschnitt. Wenn Sie gerade erst anfangen, können Sie ihn überspringen. + +Sie benötigen nicht unbedingt OAuth2-Scopes, und Sie können die Authentifizierung und Autorisierung handhaben wie Sie möchten. + +Aber OAuth2 mit Scopes kann bequem in Ihre API (mit OpenAPI) und deren API-Dokumentation integriert werden. + +Dennoch, verwenden Sie solche Scopes oder andere Sicherheits-/Autorisierungsanforderungen in Ihrem Code so wie Sie es möchten. + +In vielen Fällen kann OAuth2 mit Scopes ein Overkill sein. + +Aber wenn Sie wissen, dass Sie es brauchen oder neugierig sind, lesen Sie weiter. + +/// + +## OAuth2-Scopes und OpenAPI { #oauth2-scopes-and-openapi } + +Die OAuth2-Spezifikation definiert „Scopes“ als eine Liste von durch Leerzeichen getrennten Strings. + +Der Inhalt jedes dieser Strings kann ein beliebiges Format haben, sollte jedoch keine Leerzeichen enthalten. + +Diese Scopes stellen „Berechtigungen“ dar. + +In OpenAPI (z. B. der API-Dokumentation) können Sie „Sicherheitsschemas“ definieren. + +Wenn eines dieser Sicherheitsschemas OAuth2 verwendet, können Sie auch Scopes deklarieren und verwenden. + +Jeder „Scope“ ist nur ein String (ohne Leerzeichen). + +Er wird normalerweise verwendet, um bestimmte Sicherheitsberechtigungen zu deklarieren, zum Beispiel: + +* `users:read` oder `users:write` sind gängige Beispiele. +* `instagram_basic` wird von Facebook / Instagram verwendet. +* `https://www.googleapis.com/auth/drive` wird von Google verwendet. + +/// info | Info + +In OAuth2 ist ein „Scope“ nur ein String, der eine bestimmte erforderliche Berechtigung deklariert. + +Es spielt keine Rolle, ob er andere Zeichen wie `:` enthält oder ob es eine URL ist. + +Diese Details sind implementierungsspezifisch. + +Für OAuth2 sind es einfach nur Strings. + +/// + +## Gesamtübersicht { #global-view } + +Sehen wir uns zunächst kurz die Teile an, die sich gegenüber den Beispielen im Haupt-**Tutorial – Benutzerhandbuch** für [OAuth2 mit Password (und Hashing), Bearer mit JWT-Tokens](../../tutorial/security/oauth2-jwt.md){.internal-link target=_blank} ändern. Diesmal verwenden wir OAuth2-Scopes: + +{* ../../docs_src/security/tutorial005_an_py310.py hl[5,9,13,47,65,106,108:116,122:126,130:136,141,157] *} + +Sehen wir uns diese Änderungen nun Schritt für Schritt an. + +## OAuth2-Sicherheitsschema { #oauth2-security-scheme } + +Die erste Änderung ist, dass wir jetzt das OAuth2-Sicherheitsschema mit zwei verfügbaren Scopes deklarieren: `me` und `items`. + +Der `scopes`-Parameter erhält ein `dict` mit jedem Scope als Schlüssel und dessen Beschreibung als Wert: + +{* ../../docs_src/security/tutorial005_an_py310.py hl[63:66] *} + +Da wir diese Scopes jetzt deklarieren, werden sie in der API-Dokumentation angezeigt, wenn Sie sich einloggen/autorisieren. + +Und Sie können auswählen, auf welche Scopes Sie Zugriff haben möchten: `me` und `items`. + +Das ist derselbe Mechanismus, der verwendet wird, wenn Sie beim Anmelden mit Facebook, Google, GitHub, usw. Berechtigungen erteilen: + + + +## JWT-Token mit Scopes { #jwt-token-with-scopes } + +Ändern Sie nun die Token-*Pfadoperation*, um die angeforderten Scopes zurückzugeben. + +Wir verwenden immer noch dasselbe `OAuth2PasswordRequestForm`. Es enthält eine Eigenschaft `scopes` mit einer `list`e von `str`s für jeden Scope, den es im Request erhalten hat. + +Und wir geben die Scopes als Teil des JWT-Tokens zurück. + +/// danger | Gefahr + +Der Einfachheit halber fügen wir hier die empfangenen Scopes direkt zum Token hinzu. + +Aus Sicherheitsgründen sollten Sie jedoch sicherstellen, dass Sie in Ihrer Anwendung nur die Scopes hinzufügen, die der Benutzer tatsächlich haben kann, oder die Sie vordefiniert haben. + +/// + +{* ../../docs_src/security/tutorial005_an_py310.py hl[157] *} + +## Scopes in *Pfadoperationen* und Abhängigkeiten deklarieren { #declare-scopes-in-path-operations-and-dependencies } + +Jetzt deklarieren wir, dass die *Pfadoperation* für `/users/me/items/` den Scope `items` erfordert. + +Dazu importieren und verwenden wir `Security` von `fastapi`. + +Sie können `Security` verwenden, um Abhängigkeiten zu deklarieren (genau wie `Depends`), aber `Security` erhält auch einen Parameter `scopes` mit einer Liste von Scopes (Strings). + +In diesem Fall übergeben wir eine Abhängigkeitsfunktion `get_current_active_user` an `Security` (genauso wie wir es mit `Depends` tun würden). + +Wir übergeben aber auch eine `list`e von Scopes, in diesem Fall mit nur einem Scope: `items` (es könnten mehrere sein). + +Und die Abhängigkeitsfunktion `get_current_active_user` kann auch Unterabhängigkeiten deklarieren, nicht nur mit `Depends`, sondern auch mit `Security`. Ihre eigene Unterabhängigkeitsfunktion (`get_current_user`) und weitere Scope-Anforderungen deklarierend. + +In diesem Fall erfordert sie den Scope `me` (sie könnte mehr als einen Scope erfordern). + +/// note | Hinweis + +Sie müssen nicht unbedingt an verschiedenen Stellen verschiedene Scopes hinzufügen. + +Wir tun dies hier, um zu demonstrieren, wie **FastAPI** auf verschiedenen Ebenen deklarierte Scopes verarbeitet. + +/// + +{* ../../docs_src/security/tutorial005_an_py310.py hl[5,141,172] *} + +/// info | Technische Details + +`Security` ist tatsächlich eine Unterklasse von `Depends` und hat nur noch einen zusätzlichen Parameter, den wir später kennenlernen werden. + +Durch die Verwendung von `Security` anstelle von `Depends` weiß **FastAPI** jedoch, dass es Sicherheits-Scopes deklarieren, intern verwenden und die API mit OpenAPI dokumentieren kann. + +Wenn Sie jedoch `Query`, `Path`, `Depends`, `Security` und andere von `fastapi` importieren, handelt es sich tatsächlich um Funktionen, die spezielle Klassen zurückgeben. + +/// + +## `SecurityScopes` verwenden { #use-securityscopes } + +Aktualisieren Sie nun die Abhängigkeit `get_current_user`. + +Das ist diejenige, die von den oben genannten Abhängigkeiten verwendet wird. + +Hier verwenden wir dasselbe OAuth2-Schema, das wir zuvor erstellt haben, und deklarieren es als Abhängigkeit: `oauth2_scheme`. + +Da diese Abhängigkeitsfunktion selbst keine Scope-Anforderungen hat, können wir `Depends` mit `oauth2_scheme` verwenden. Wir müssen `Security` nicht verwenden, wenn wir keine Sicherheits-Scopes angeben müssen. + +Wir deklarieren auch einen speziellen Parameter vom Typ `SecurityScopes`, der aus `fastapi.security` importiert wird. + +Diese `SecurityScopes`-Klasse ähnelt `Request` (`Request` wurde verwendet, um das Request-Objekt direkt zu erhalten). + +{* ../../docs_src/security/tutorial005_an_py310.py hl[9,106] *} + +## Die `scopes` verwenden { #use-the-scopes } + +Der Parameter `security_scopes` wird vom Typ `SecurityScopes` sein. + +Dieses verfügt über ein Attribut `scopes` mit einer Liste, die alle von ihm selbst benötigten Scopes enthält und ferner alle Abhängigkeiten, die dieses als Unterabhängigkeit verwenden. Sprich, alle „Dependanten“ ... das mag verwirrend klingen, wird aber später noch einmal erklärt. + +Das `security_scopes`-Objekt (der Klasse `SecurityScopes`) stellt außerdem ein `scope_str`-Attribut mit einem einzelnen String bereit, der die durch Leerzeichen getrennten Scopes enthält (den werden wir verwenden). + +Wir erstellen eine `HTTPException`, die wir später an mehreren Stellen wiederverwenden (`raise`n) können. + +In diese Exception fügen wir (falls vorhanden) die erforderlichen Scopes als durch Leerzeichen getrennten String ein (unter Verwendung von `scope_str`). Wir fügen diesen String mit den Scopes in den Header `WWW-Authenticate` ein (das ist Teil der Spezifikation). + +{* ../../docs_src/security/tutorial005_an_py310.py hl[106,108:116] *} + +## Den `username` und das Format der Daten überprüfen { #verify-the-username-and-data-shape } + +Wir verifizieren, dass wir einen `username` erhalten, und extrahieren die Scopes. + +Und dann validieren wir diese Daten mit dem Pydantic-Modell (wobei wir die `ValidationError`-Exception abfangen), und wenn wir beim Lesen des JWT-Tokens oder beim Validieren der Daten mit Pydantic einen Fehler erhalten, lösen wir die zuvor erstellte `HTTPException` aus. + +Dazu aktualisieren wir das Pydantic-Modell `TokenData` mit einem neuen Attribut `scopes`. + +Durch die Validierung der Daten mit Pydantic können wir sicherstellen, dass wir beispielsweise präzise eine `list`e von `str`s mit den Scopes und einen `str` mit dem `username` haben. + +Anstelle beispielsweise eines `dict`s oder etwas anderem, was später in der Anwendung zu Fehlern führen könnte und darum ein Sicherheitsrisiko darstellt. + +Wir verifizieren auch, dass wir einen Benutzer mit diesem Benutzernamen haben, und wenn nicht, lösen wir dieselbe Exception aus, die wir zuvor erstellt haben. + +{* ../../docs_src/security/tutorial005_an_py310.py hl[47,117:129] *} + +## Die `scopes` verifizieren { #verify-the-scopes } + +Wir überprüfen nun, ob das empfangene Token alle Scopes enthält, die von dieser Abhängigkeit und deren Verwendern (einschließlich *Pfadoperationen*) gefordert werden. Andernfalls lösen wir eine `HTTPException` aus. + +Hierzu verwenden wir `security_scopes.scopes`, das eine `list`e mit allen diesen Scopes als `str` enthält. + +{* ../../docs_src/security/tutorial005_an_py310.py hl[130:136] *} + +## Abhängigkeitsbaum und Scopes { #dependency-tree-and-scopes } + +Sehen wir uns diesen Abhängigkeitsbaum und die Scopes noch einmal an. + +Da die Abhängigkeit `get_current_active_user` von `get_current_user` abhängt, wird der bei `get_current_active_user` deklarierte Scope `"me"` in die Liste der erforderlichen Scopes in `security_scopes.scopes` aufgenommen, das an `get_current_user` übergeben wird. + +Die *Pfadoperation* selbst deklariert auch einen Scope, `"items"`, sodass dieser auch in der Liste der `security_scopes.scopes` enthalten ist, die an `get_current_user` übergeben wird. + +So sieht die Hierarchie der Abhängigkeiten und Scopes aus: + +* Die *Pfadoperation* `read_own_items` hat: + * Erforderliche Scopes `["items"]` mit der Abhängigkeit: + * `get_current_active_user`: + * Die Abhängigkeitsfunktion `get_current_active_user` hat: + * Erforderliche Scopes `["me"]` mit der Abhängigkeit: + * `get_current_user`: + * Die Abhängigkeitsfunktion `get_current_user` hat: + * Selbst keine erforderlichen Scopes. + * Eine Abhängigkeit, die `oauth2_scheme` verwendet. + * Einen `security_scopes`-Parameter vom Typ `SecurityScopes`: + * Dieser `security_scopes`-Parameter hat ein Attribut `scopes` mit einer `list`e, die alle oben deklarierten Scopes enthält, sprich: + * `security_scopes.scopes` enthält `["me", "items"]` für die *Pfadoperation* `read_own_items`. + * `security_scopes.scopes` enthält `["me"]` für die *Pfadoperation* `read_users_me`, da das in der Abhängigkeit `get_current_active_user` deklariert ist. + * `security_scopes.scopes` wird `[]` (nichts) für die *Pfadoperation* `read_system_status` enthalten, da diese keine `Security` mit `scopes` deklariert hat, und deren Abhängigkeit `get_current_user` ebenfalls keinerlei `scopes` deklariert. + +/// tip | Tipp + +Das Wichtige und „Magische“ hier ist, dass `get_current_user` für jede *Pfadoperation* eine andere Liste von `scopes` hat, die überprüft werden. + +Alles hängt von den „Scopes“ ab, die in jeder *Pfadoperation* und jeder Abhängigkeit im Abhängigkeitsbaum für diese bestimmte *Pfadoperation* deklariert wurden. + +/// + +## Weitere Details zu `SecurityScopes` { #more-details-about-securityscopes } + +Sie können `SecurityScopes` an jeder Stelle und an mehreren Stellen verwenden, es muss sich nicht in der „Wurzel“-Abhängigkeit befinden. + +Es wird immer die Sicherheits-Scopes enthalten, die in den aktuellen `Security`-Abhängigkeiten deklariert sind und in allen Abhängigkeiten für **diese spezifische** *Pfadoperation* und **diesen spezifischen** Abhängigkeitsbaum. + +Da die `SecurityScopes` alle von den Verwendern der Abhängigkeiten deklarierten Scopes enthalten, können Sie damit überprüfen, ob ein Token in einer zentralen Abhängigkeitsfunktion über die erforderlichen Scopes verfügt, und dann unterschiedliche Scope-Anforderungen in unterschiedlichen *Pfadoperationen* deklarieren. + +Diese werden für jede *Pfadoperation* unabhängig überprüft. + +## Es testen { #check-it } + +Wenn Sie die API-Dokumentation öffnen, können Sie sich authentisieren und angeben, welche Scopes Sie autorisieren möchten. + + + +Wenn Sie keinen Scope auswählen, werden Sie „authentifiziert“, aber wenn Sie versuchen, auf `/users/me/` oder `/users/me/items/` zuzugreifen, wird eine Fehlermeldung angezeigt, die sagt, dass Sie nicht über genügend Berechtigungen verfügen. Sie können aber auf `/status/` zugreifen. + +Und wenn Sie den Scope `me`, aber nicht den Scope `items` auswählen, können Sie auf `/users/me/` zugreifen, aber nicht auf `/users/me/items/`. + +Das würde einer Drittanbieteranwendung passieren, die versucht, auf eine dieser *Pfadoperationen* mit einem Token zuzugreifen, das von einem Benutzer bereitgestellt wurde, abhängig davon, wie viele Berechtigungen der Benutzer dieser Anwendung erteilt hat. + +## Über Integrationen von Drittanbietern { #about-third-party-integrations } + +In diesem Beispiel verwenden wir den OAuth2-Flow „Password“. + +Das ist angemessen, wenn wir uns bei unserer eigenen Anwendung anmelden, wahrscheinlich mit unserem eigenen Frontend. + +Weil wir darauf vertrauen können, dass es den `username` und das `password` erhält, welche wir kontrollieren. + +Wenn Sie jedoch eine OAuth2-Anwendung erstellen, mit der andere eine Verbindung herstellen würden (d.h. wenn Sie einen Authentifizierungsanbieter erstellen, der Facebook, Google, GitHub usw. entspricht), sollten Sie einen der anderen Flows verwenden. + +Am häufigsten ist der „Implicit“-Flow. + +Am sichersten ist der „Code“-Flow, die Implementierung ist jedoch komplexer, da mehr Schritte erforderlich sind. Da er komplexer ist, schlagen viele Anbieter letztendlich den „Implicit“-Flow vor. + +/// note | Hinweis + +Es ist üblich, dass jeder Authentifizierungsanbieter seine Flows anders benennt, um sie zu einem Teil seiner Marke zu machen. + +Aber am Ende implementieren sie denselben OAuth2-Standard. + +/// + +**FastAPI** enthält Werkzeuge für alle diese OAuth2-Authentifizierungs-Flows in `fastapi.security.oauth2`. + +## `Security` in Dekorator-`dependencies` { #security-in-decorator-dependencies } + +Auf die gleiche Weise können Sie eine `list`e von `Depends` im Parameter `dependencies` des Dekorators definieren (wie in [Abhängigkeiten in Pfadoperation-Dekoratoren](../../tutorial/dependencies/dependencies-in-path-operation-decorators.md){.internal-link target=_blank} erläutert), Sie könnten auch dort `Security` mit `scopes` verwenden. diff --git a/docs/de/docs/advanced/settings.md b/docs/de/docs/advanced/settings.md new file mode 100644 index 0000000..ccd7f37 --- /dev/null +++ b/docs/de/docs/advanced/settings.md @@ -0,0 +1,346 @@ +# Einstellungen und Umgebungsvariablen { #settings-and-environment-variables } + +In vielen Fällen benötigt Ihre Anwendung möglicherweise einige externe Einstellungen oder Konfigurationen, zum Beispiel geheime Schlüssel, Datenbank-Anmeldeinformationen, Anmeldeinformationen für E-Mail-Dienste, usw. + +Die meisten dieser Einstellungen sind variabel (können sich ändern), wie z. B. Datenbank-URLs. Und vieles könnten schützenswerte, geheime Daten sein. + +Aus diesem Grund werden diese üblicherweise in Umgebungsvariablen bereitgestellt, die von der Anwendung gelesen werden. + +/// tip | Tipp + +Um Umgebungsvariablen zu verstehen, können Sie [Umgebungsvariablen](../environment-variables.md){.internal-link target=_blank} lesen. + +/// + +## Typen und Validierung { #types-and-validation } + +Diese Umgebungsvariablen können nur Text-Zeichenketten verarbeiten, da sie außerhalb von Python liegen und mit anderen Programmen und dem Rest des Systems (und sogar mit verschiedenen Betriebssystemen wie Linux, Windows, macOS) kompatibel sein müssen. + +Das bedeutet, dass jeder in Python aus einer Umgebungsvariablen gelesene Wert ein `str` ist und jede Konvertierung in einen anderen Typ oder jede Validierung im Code erfolgen muss. + +## Pydantic `Settings` { #pydantic-settings } + +Glücklicherweise bietet Pydantic ein großartiges Werkzeug zur Verarbeitung dieser Einstellungen, die von Umgebungsvariablen stammen, mit Pydantic: Settings Management. + +### `pydantic-settings` installieren { #install-pydantic-settings } + +Stellen Sie zunächst sicher, dass Sie Ihre [virtuelle Umgebung](../virtual-environments.md){.internal-link target=_blank} erstellt und aktiviert haben, und installieren Sie dann das Package `pydantic-settings`: + +
+ +```console +$ pip install pydantic-settings +---> 100% +``` + +
+ +Es ist bereits enthalten, wenn Sie die `all`-Extras installiert haben, mit: + +
+ +```console +$ pip install "fastapi[all]" +---> 100% +``` + +
+ +/// info | Info + +In Pydantic v1 war es im Hauptpackage enthalten. Jetzt wird es als unabhängiges Package verteilt, sodass Sie wählen können, ob Sie es installieren möchten oder nicht, falls Sie die Funktionalität nicht benötigen. + +/// + +### Das `Settings`-Objekt erstellen { #create-the-settings-object } + +Importieren Sie `BaseSettings` aus Pydantic und erstellen Sie eine Unterklasse, ganz ähnlich wie bei einem Pydantic-Modell. + +Auf die gleiche Weise wie bei Pydantic-Modellen deklarieren Sie Klassenattribute mit Typannotationen und möglicherweise Defaultwerten. + +Sie können dieselben Validierungs-Funktionen und -Tools verwenden, die Sie für Pydantic-Modelle verwenden, z. B. verschiedene Datentypen und zusätzliche Validierungen mit `Field()`. + +//// tab | Pydantic v2 + +{* ../../docs_src/settings/tutorial001.py hl[2,5:8,11] *} + +//// + +//// tab | Pydantic v1 + +/// info | Info + +In Pydantic v1 würden Sie `BaseSettings` direkt von `pydantic` statt von `pydantic_settings` importieren. + +/// + +{* ../../docs_src/settings/tutorial001_pv1.py hl[2,5:8,11] *} + +//// + +/// tip | Tipp + +Für ein schnelles Copy-and-paste verwenden Sie nicht dieses Beispiel, sondern das letzte unten. + +/// + +Wenn Sie dann eine Instanz dieser `Settings`-Klasse erstellen (in diesem Fall als `settings`-Objekt), liest Pydantic die Umgebungsvariablen ohne Berücksichtigung der Groß- und Kleinschreibung. Eine Variable `APP_NAME` in Großbuchstaben wird also als Attribut `app_name` gelesen. + +Als Nächstes werden die Daten konvertiert und validiert. Wenn Sie also dieses `settings`-Objekt verwenden, verfügen Sie über Daten mit den von Ihnen deklarierten Typen (z. B. ist `items_per_user` ein `int`). + +### `settings` verwenden { #use-the-settings } + +Dann können Sie das neue `settings`-Objekt in Ihrer Anwendung verwenden: + +{* ../../docs_src/settings/tutorial001.py hl[18:20] *} + +### Den Server ausführen { #run-the-server } + +Als Nächstes würden Sie den Server ausführen und die Konfigurationen als Umgebungsvariablen übergeben. Sie könnten beispielsweise `ADMIN_EMAIL` und `APP_NAME` festlegen mit: + +
+ +```console +$ ADMIN_EMAIL="deadpool@example.com" APP_NAME="ChimichangApp" fastapi run main.py + +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +``` + +
+ +/// tip | Tipp + +Um mehrere Umgebungsvariablen für einen einzelnen Befehl festzulegen, trennen Sie diese einfach durch ein Leerzeichen und fügen Sie alle vor dem Befehl ein. + +/// + +Und dann würde die Einstellung `admin_email` auf `"deadpool@example.com"` gesetzt. + +Der `app_name` wäre `"ChimichangApp"`. + +Und `items_per_user` würde seinen Defaultwert von `50` behalten. + +## Einstellungen in einem anderen Modul { #settings-in-another-module } + +Sie könnten diese Einstellungen in eine andere Moduldatei einfügen, wie Sie in [Größere Anwendungen – mehrere Dateien](../tutorial/bigger-applications.md){.internal-link target=_blank} gesehen haben. + +Sie könnten beispielsweise eine Datei `config.py` haben mit: + +{* ../../docs_src/settings/app01/config.py *} + +Und dann verwenden Sie diese in einer Datei `main.py`: + +{* ../../docs_src/settings/app01/main.py hl[3,11:13] *} + +/// tip | Tipp + +Sie benötigen außerdem eine Datei `__init__.py`, wie in [Größere Anwendungen – mehrere Dateien](../tutorial/bigger-applications.md){.internal-link target=_blank} gesehen. + +/// + +## Einstellungen in einer Abhängigkeit { #settings-in-a-dependency } + +In manchen Fällen kann es nützlich sein, die Einstellungen mit einer Abhängigkeit bereitzustellen, anstatt ein globales Objekt `settings` zu haben, das überall verwendet wird. + +Dies könnte besonders beim Testen nützlich sein, da es sehr einfach ist, eine Abhängigkeit mit Ihren eigenen benutzerdefinierten Einstellungen zu überschreiben. + +### Die Konfigurationsdatei { #the-config-file } + +Ausgehend vom vorherigen Beispiel könnte Ihre Datei `config.py` so aussehen: + +{* ../../docs_src/settings/app02/config.py hl[10] *} + +Beachten Sie, dass wir jetzt keine Standardinstanz `settings = Settings()` erstellen. + +### Die Haupt-Anwendungsdatei { #the-main-app-file } + +Jetzt erstellen wir eine Abhängigkeit, die ein neues `config.Settings()` zurückgibt. + +{* ../../docs_src/settings/app02_an_py39/main.py hl[6,12:13] *} + +/// tip | Tipp + +Wir werden das `@lru_cache` in Kürze besprechen. + +Im Moment nehmen Sie an, dass `get_settings()` eine normale Funktion ist. + +/// + +Und dann können wir das von der *Pfadoperation-Funktion* als Abhängigkeit einfordern und es überall dort verwenden, wo wir es brauchen. + +{* ../../docs_src/settings/app02_an_py39/main.py hl[17,19:21] *} + +### Einstellungen und Tests { #settings-and-testing } + +Dann wäre es sehr einfach, beim Testen ein anderes Einstellungsobjekt bereitzustellen, indem man eine Abhängigkeitsüberschreibung für `get_settings` erstellt: + +{* ../../docs_src/settings/app02/test_main.py hl[9:10,13,21] *} + +Bei der Abhängigkeitsüberschreibung legen wir einen neuen Wert für `admin_email` fest, wenn wir das neue `Settings`-Objekt erstellen, und geben dann dieses neue Objekt zurück. + +Dann können wir testen, ob das verwendet wird. + +## Lesen einer `.env`-Datei { #reading-a-env-file } + +Wenn Sie viele Einstellungen haben, die sich möglicherweise oft ändern, vielleicht in verschiedenen Umgebungen, kann es nützlich sein, diese in eine Datei zu schreiben und sie dann daraus zu lesen, als wären sie Umgebungsvariablen. + +Diese Praxis ist so weit verbreitet, dass sie einen Namen hat. Diese Umgebungsvariablen werden üblicherweise in einer Datei `.env` abgelegt und die Datei wird „dotenv“ genannt. + +/// tip | Tipp + +Eine Datei, die mit einem Punkt (`.`) beginnt, ist eine versteckte Datei in Unix-ähnlichen Systemen wie Linux und macOS. + +Aber eine dotenv-Datei muss nicht unbedingt genau diesen Dateinamen haben. + +/// + +Pydantic unterstützt das Lesen dieser Dateitypen mithilfe einer externen Bibliothek. Weitere Informationen finden Sie unter Pydantic Settings: Dotenv (.env) support. + +/// tip | Tipp + +Damit das funktioniert, müssen Sie `pip install python-dotenv` ausführen. + +/// + +### Die `.env`-Datei { #the-env-file } + +Sie könnten eine `.env`-Datei haben, mit: + +```bash +ADMIN_EMAIL="deadpool@example.com" +APP_NAME="ChimichangApp" +``` + +### Einstellungen aus `.env` lesen { #read-settings-from-env } + +Und dann aktualisieren Sie Ihre `config.py` mit: + +//// tab | Pydantic v2 + +{* ../../docs_src/settings/app03_an/config.py hl[9] *} + +/// tip | Tipp + +Das Attribut `model_config` wird nur für die Pydantic-Konfiguration verwendet. Weitere Informationen finden Sie unter Pydantic: Concepts: Configuration. + +/// + +//// + +//// tab | Pydantic v1 + +{* ../../docs_src/settings/app03_an/config_pv1.py hl[9:10] *} + +/// tip | Tipp + +Die Klasse `Config` wird nur für die Pydantic-Konfiguration verwendet. Weitere Informationen finden Sie unter Pydantic Model Config. + +/// + +//// + +/// info | Info + +In Pydantic Version 1 erfolgte die Konfiguration in einer internen Klasse `Config`, in Pydantic Version 2 erfolgt sie in einem Attribut `model_config`. Dieses Attribut akzeptiert ein `dict`. Um automatische Codevervollständigung und Inline-Fehlerberichte zu erhalten, können Sie `SettingsConfigDict` importieren und verwenden, um dieses `dict` zu definieren. + +/// + +Hier definieren wir die Konfiguration `env_file` innerhalb Ihrer Pydantic-`Settings`-Klasse und setzen den Wert auf den Dateinamen mit der dotenv-Datei, die wir verwenden möchten. + +### Die `Settings` nur einmal laden mittels `lru_cache` { #creating-the-settings-only-once-with-lru-cache } + +Das Lesen einer Datei von der Festplatte ist normalerweise ein kostspieliger (langsamer) Vorgang, daher möchten Sie ihn wahrscheinlich nur einmal ausführen und dann dasselbe Einstellungsobjekt erneut verwenden, anstatt es für jeden Request zu lesen. + +Aber jedes Mal, wenn wir ausführen: + +```Python +Settings() +``` + +würde ein neues `Settings`-Objekt erstellt und bei der Erstellung würde die `.env`-Datei erneut ausgelesen. + +Wenn die Abhängigkeitsfunktion wie folgt wäre: + +```Python +def get_settings(): + return Settings() +``` + +würden wir dieses Objekt für jeden Request erstellen und die `.env`-Datei für jeden Request lesen. ⚠️ + +Da wir jedoch den `@lru_cache`-Dekorator oben verwenden, wird das `Settings`-Objekt nur einmal erstellt, nämlich beim ersten Aufruf. ✔️ + +{* ../../docs_src/settings/app03_an_py39/main.py hl[1,11] *} + +Dann wird bei allen nachfolgenden Aufrufen von `get_settings()`, in den Abhängigkeiten für darauffolgende Requests, dasselbe Objekt zurückgegeben, das beim ersten Aufruf zurückgegeben wurde, anstatt den Code von `get_settings()` erneut auszuführen und ein neues `Settings`-Objekt zu erstellen. + +#### Technische Details zu `lru_cache` { #lru-cache-technical-details } + +`@lru_cache` ändert die Funktion, die es dekoriert, dahingehend, denselben Wert zurückzugeben, der beim ersten Mal zurückgegeben wurde, anstatt ihn erneut zu berechnen und den Code der Funktion jedes Mal auszuführen. + +Die darunter liegende Funktion wird also für jede Argumentkombination einmal ausgeführt. Und dann werden die von jeder dieser Argumentkombinationen zurückgegebenen Werte immer wieder verwendet, wenn die Funktion mit genau derselben Argumentkombination aufgerufen wird. + +Wenn Sie beispielsweise eine Funktion haben: + +```Python +@lru_cache +def say_hi(name: str, salutation: str = "Ms."): + return f"Hello {salutation} {name}" +``` + +könnte Ihr Programm so ausgeführt werden: + +```mermaid +sequenceDiagram + +participant code as Code +participant function as say_hi() +participant execute as Funktion ausführen + + rect rgba(0, 255, 0, .1) + code ->> function: say_hi(name="Camila") + function ->> execute: führe Code der Funktion aus + execute ->> code: gib das Resultat zurück + end + + rect rgba(0, 255, 255, .1) + code ->> function: say_hi(name="Camila") + function ->> code: gib das gespeicherte Resultat zurück + end + + rect rgba(0, 255, 0, .1) + code ->> function: say_hi(name="Rick") + function ->> execute: führe Code der Funktion aus + execute ->> code: gib das Resultat zurück + end + + rect rgba(0, 255, 0, .1) + code ->> function: say_hi(name="Rick", salutation="Mr.") + function ->> execute: führe Code der Funktion aus + execute ->> code: gib das Resultat zurück + end + + rect rgba(0, 255, 255, .1) + code ->> function: say_hi(name="Rick") + function ->> code: gib das gespeicherte Resultat zurück + end + + rect rgba(0, 255, 255, .1) + code ->> function: say_hi(name="Camila") + function ->> code: gib das gespeicherte Resultat zurück + end +``` + +Im Fall unserer Abhängigkeit `get_settings()` akzeptiert die Funktion nicht einmal Argumente, sodass sie immer den gleichen Wert zurückgibt. + +Auf diese Weise verhält es sich fast so, als wäre es nur eine globale Variable. Da es jedoch eine Abhängigkeitsfunktion verwendet, können wir diese zu Testzwecken problemlos überschreiben. + +`@lru_cache` ist Teil von `functools`, welches Teil von Pythons Standardbibliothek ist. Weitere Informationen dazu finden Sie in der Python Dokumentation für `@lru_cache`. + +## Zusammenfassung { #recap } + +Mit Pydantic Settings können Sie die Einstellungen oder Konfigurationen für Ihre Anwendung verwalten und dabei die gesamte Leistungsfähigkeit der Pydantic-Modelle nutzen. + +* Durch die Verwendung einer Abhängigkeit können Sie das Testen vereinfachen. +* Sie können `.env`-Dateien damit verwenden. +* Durch die Verwendung von `@lru_cache` können Sie vermeiden, die dotenv-Datei bei jedem Request erneut zu lesen, während Sie sie während des Testens überschreiben können. diff --git a/docs/de/docs/advanced/sub-applications.md b/docs/de/docs/advanced/sub-applications.md new file mode 100644 index 0000000..d634aac --- /dev/null +++ b/docs/de/docs/advanced/sub-applications.md @@ -0,0 +1,67 @@ +# Unteranwendungen – Mounts { #sub-applications-mounts } + +Wenn Sie zwei unabhängige FastAPI-Anwendungen mit deren eigenen unabhängigen OpenAPI und deren eigenen Dokumentationsoberflächen benötigen, können Sie eine Hauptanwendung haben und dann eine (oder mehrere) Unteranwendung(en) „mounten“. + +## Eine **FastAPI**-Anwendung mounten { #mounting-a-fastapi-application } + +„Mounten“ („Einhängen“) bedeutet das Hinzufügen einer völlig „unabhängigen“ Anwendung an einem bestimmten Pfad, die sich dann um die Handhabung aller unter diesem Pfad liegenden _Pfadoperationen_ kümmert, welche in dieser Unteranwendung deklariert sind. + +### Hauptanwendung { #top-level-application } + +Erstellen Sie zunächst die Hauptanwendung **FastAPI** und deren *Pfadoperationen*: + +{* ../../docs_src/sub_applications/tutorial001.py hl[3, 6:8] *} + +### Unteranwendung { #sub-application } + +Erstellen Sie dann Ihre Unteranwendung und deren *Pfadoperationen*. + +Diese Unteranwendung ist nur eine weitere Standard-FastAPI-Anwendung, aber diese wird „gemountet“: + +{* ../../docs_src/sub_applications/tutorial001.py hl[11, 14:16] *} + +### Die Unteranwendung mounten { #mount-the-sub-application } + +Mounten Sie in Ihrer Top-Level-Anwendung `app` die Unteranwendung `subapi`. + +In diesem Fall wird sie im Pfad `/subapi` gemountet: + +{* ../../docs_src/sub_applications/tutorial001.py hl[11, 19] *} + +### Die automatische API-Dokumentation testen { #check-the-automatic-api-docs } + +Führen Sie nun den `fastapi`-Befehl mit Ihrer Datei aus: + +
+ +```console +$ fastapi dev main.py + +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +``` + +
+ +Und öffnen Sie die Dokumentation unter http://127.0.0.1:8000/docs. + +Sie sehen die automatische API-Dokumentation für die Hauptanwendung, welche nur deren eigene _Pfadoperationen_ anzeigt: + + + +Öffnen Sie dann die Dokumentation für die Unteranwendung unter http://127.0.0.1:8000/subapi/docs. + +Sie sehen die automatische API-Dokumentation für die Unteranwendung, welche nur deren eigene _Pfadoperationen_ anzeigt, alle unter dem korrekten Unterpfad-Präfix `/subapi`: + + + +Wenn Sie versuchen, mit einer der beiden Benutzeroberflächen zu interagieren, funktionieren diese ordnungsgemäß, da der Browser mit jeder spezifischen Anwendung oder Unteranwendung kommunizieren kann. + +### Technische Details: `root_path` { #technical-details-root-path } + +Wenn Sie eine Unteranwendung wie oben beschrieben mounten, kümmert sich FastAPI darum, den Mount-Pfad für die Unteranwendung zu kommunizieren, mithilfe eines Mechanismus aus der ASGI-Spezifikation namens `root_path`. + +Auf diese Weise weiß die Unteranwendung, dass sie dieses Pfadpräfix für die Benutzeroberfläche der Dokumentation verwenden soll. + +Und die Unteranwendung könnte auch ihre eigenen gemounteten Unteranwendungen haben und alles würde korrekt funktionieren, da FastAPI sich um alle diese `root_path`s automatisch kümmert. + +Mehr über den `root_path` und dessen explizite Verwendung erfahren Sie im Abschnitt [Hinter einem Proxy](behind-a-proxy.md){.internal-link target=_blank}. diff --git a/docs/de/docs/advanced/templates.md b/docs/de/docs/advanced/templates.md new file mode 100644 index 0000000..65c7998 --- /dev/null +++ b/docs/de/docs/advanced/templates.md @@ -0,0 +1,126 @@ +# Templates { #templates } + +Sie können jede gewünschte Template-Engine mit **FastAPI** verwenden. + +Eine häufige Wahl ist Jinja2, dasselbe, was auch von Flask und anderen Tools verwendet wird. + +Es gibt Werkzeuge zur einfachen Konfiguration, die Sie direkt in Ihrer **FastAPI**-Anwendung verwenden können (bereitgestellt von Starlette). + +## Abhängigkeiten installieren { #install-dependencies } + +Stellen Sie sicher, dass Sie eine [virtuelle Umgebung](../virtual-environments.md){.internal-link target=_blank} erstellen, sie aktivieren und `jinja2` installieren: + +
+ +```console +$ pip install jinja2 + +---> 100% +``` + +
+ +## `Jinja2Templates` verwenden { #using-jinja2templates } + +* Importieren Sie `Jinja2Templates`. +* Erstellen Sie ein `templates`-Objekt, das Sie später wiederverwenden können. +* Deklarieren Sie einen `Request`-Parameter in der *Pfadoperation*, welcher ein Template zurückgibt. +* Verwenden Sie die von Ihnen erstellten `templates`, um eine `TemplateResponse` zu rendern und zurückzugeben, übergeben Sie den Namen des Templates, das Requestobjekt und ein „Kontext“-Dictionary mit Schlüssel-Wert-Paaren, die innerhalb des Jinja2-Templates verwendet werden sollen. + +{* ../../docs_src/templates/tutorial001.py hl[4,11,15:18] *} + +/// note | Hinweis + +Vor FastAPI 0.108.0 und Starlette 0.29.0 war `name` der erste Parameter. + +Außerdem wurde in früheren Versionen das `request`-Objekt als Teil der Schlüssel-Wert-Paare im Kontext für Jinja2 übergeben. + +/// + +/// tip | Tipp + +Durch die Deklaration von `response_class=HTMLResponse` kann die Dokumentationsoberfläche erkennen, dass die Response HTML sein wird. + +/// + +/// note | Technische Details + +Sie können auch `from starlette.templating import Jinja2Templates` verwenden. + +**FastAPI** bietet dasselbe `starlette.templating` auch via `fastapi.templating` an, als Annehmlichkeit für Sie, den Entwickler. Aber die meisten der verfügbaren Responses kommen direkt von Starlette. Das Gleiche gilt für `Request` und `StaticFiles`. + +/// + +## Templates erstellen { #writing-templates } + +Dann können Sie unter `templates/item.html` ein Template erstellen, mit z. B. folgendem Inhalt: + +```jinja hl_lines="7" +{!../../docs_src/templates/templates/item.html!} +``` + +### Template-Kontextwerte { #template-context-values } + +Im HTML, welches enthält: + +{% raw %} + +```jinja +Item ID: {{ id }} +``` + +{% endraw %} + +... wird die `id` angezeigt, welche dem „Kontext“-`dict` entnommen wird, welches Sie übergeben haben: + +```Python +{"id": id} +``` + +Mit beispielsweise einer ID `42` würde das wie folgt gerendert werden: + +```html +Item ID: 42 +``` + +### Template-`url_for`-Argumente { #template-url-for-arguments } + +Sie können `url_for()` auch innerhalb des Templates verwenden, es nimmt als Argumente dieselben Argumente, die von Ihrer *Pfadoperation-Funktion* verwendet werden. + +Der Abschnitt mit: + +{% raw %} + +```jinja + +``` + +{% endraw %} + +... generiert also einen Link zu derselben URL, welche von der *Pfadoperation-Funktion* `read_item(id=id)` gehandhabt werden würde. + +Mit beispielsweise der ID `42` würde dies Folgendes ergeben: + +```html + +``` + +## Templates und statische Dateien { #templates-and-static-files } + +Sie können `url_for()` innerhalb des Templates auch beispielsweise mit den `StaticFiles` verwenden, die Sie mit `name="static"` gemountet haben. + +```jinja hl_lines="4" +{!../../docs_src/templates/templates/item.html!} +``` + +In diesem Beispiel würde das zu einer CSS-Datei unter `static/styles.css` verlinken, mit folgendem Inhalt: + +```CSS hl_lines="4" +{!../../docs_src/templates/static/styles.css!} +``` + +Und da Sie `StaticFiles` verwenden, wird diese CSS-Datei automatisch von Ihrer **FastAPI**-Anwendung unter der URL `/static/styles.css` ausgeliefert. + +## Mehr Details { #more-details } + +Weitere Informationen, einschließlich, wie man Templates testet, finden Sie in Starlettes Dokumentation zu Templates. diff --git a/docs/de/docs/advanced/testing-dependencies.md b/docs/de/docs/advanced/testing-dependencies.md new file mode 100644 index 0000000..4fc653f --- /dev/null +++ b/docs/de/docs/advanced/testing-dependencies.md @@ -0,0 +1,54 @@ +# Testen mit Überschreibungen für Abhängigkeiten { #testing-dependencies-with-overrides } + +## Abhängigkeiten beim Testen überschreiben { #overriding-dependencies-during-testing } + +Es gibt einige Szenarien, in denen Sie beim Testen möglicherweise eine Abhängigkeit überschreiben möchten. + +Sie möchten nicht, dass die ursprüngliche Abhängigkeit ausgeführt wird (und auch keine der möglicherweise vorhandenen Unterabhängigkeiten). + +Stattdessen möchten Sie eine andere Abhängigkeit bereitstellen, die nur während Tests (möglicherweise nur bei einigen bestimmten Tests) verwendet wird und einen Wert bereitstellt, der dort verwendet werden kann, wo der Wert der ursprünglichen Abhängigkeit verwendet wurde. + +### Anwendungsfälle: Externer Service { #use-cases-external-service } + +Ein Beispiel könnte sein, dass Sie einen externen Authentifizierungsanbieter haben, mit dem Sie sich verbinden müssen. + +Sie senden ihm ein Token und er gibt einen authentifizierten Benutzer zurück. + +Dieser Anbieter berechnet Ihnen möglicherweise Gebühren pro Request, und der Aufruf könnte etwas länger dauern, als wenn Sie einen vordefinierten Mock-Benutzer für Tests hätten. + +Sie möchten den externen Anbieter wahrscheinlich einmal testen, ihn aber nicht unbedingt bei jedem weiteren ausgeführten Test aufrufen. + +In diesem Fall können Sie die Abhängigkeit, die diesen Anbieter aufruft, überschreiben und eine benutzerdefinierte Abhängigkeit verwenden, die einen Mock-Benutzer zurückgibt, nur für Ihre Tests. + +### Das Attribut `app.dependency_overrides` verwenden { #use-the-app-dependency-overrides-attribute } + +Für diese Fälle verfügt Ihre **FastAPI**-Anwendung über das Attribut `app.dependency_overrides`, bei diesem handelt sich um ein einfaches `dict`. + +Um eine Abhängigkeit für das Testen zu überschreiben, geben Sie als Schlüssel die ursprüngliche Abhängigkeit (eine Funktion) und als Wert Ihre Überschreibung der Abhängigkeit (eine andere Funktion) ein. + +Und dann ruft **FastAPI** diese Überschreibung anstelle der ursprünglichen Abhängigkeit auf. + +{* ../../docs_src/dependency_testing/tutorial001_an_py310.py hl[26:27,30] *} + +/// tip | Tipp + +Sie können eine Überschreibung für eine Abhängigkeit festlegen, die an einer beliebigen Stelle in Ihrer **FastAPI**-Anwendung verwendet wird. + +Die ursprüngliche Abhängigkeit könnte in einer *Pfadoperation-Funktion*, einem *Pfadoperation-Dekorator* (wenn Sie den Rückgabewert nicht verwenden), einem `.include_router()`-Aufruf, usw. verwendet werden. + +FastAPI kann sie in jedem Fall überschreiben. + +/// + +Anschließend können Sie Ihre Überschreibungen zurücksetzen (entfernen), indem Sie `app.dependency_overrides` auf ein leeres `dict` setzen: + +```Python +app.dependency_overrides = {} +``` + + +/// tip | Tipp + +Wenn Sie eine Abhängigkeit nur während einiger Tests überschreiben möchten, können Sie die Überschreibung zu Beginn des Tests (innerhalb der Testfunktion) festlegen und am Ende (am Ende der Testfunktion) zurücksetzen. + +/// diff --git a/docs/de/docs/advanced/testing-events.md b/docs/de/docs/advanced/testing-events.md new file mode 100644 index 0000000..569518c --- /dev/null +++ b/docs/de/docs/advanced/testing-events.md @@ -0,0 +1,12 @@ +# Events testen: Lifespan und Startup – Shutdown { #testing-events-lifespan-and-startup-shutdown } + +Wenn Sie `lifespan` in Ihren Tests ausführen müssen, können Sie den `TestClient` mit einer `with`-Anweisung verwenden: + +{* ../../docs_src/app_testing/tutorial004.py hl[9:15,18,27:28,30:32,41:43] *} + + +Sie können mehr Details unter [„Lifespan in Tests ausführen in der offiziellen Starlette-Dokumentation.“](https://www.starlette.dev/lifespan/#running-lifespan-in-tests) nachlesen. + +Für die deprecateten Events `startup` und `shutdown` können Sie den `TestClient` wie folgt verwenden: + +{* ../../docs_src/app_testing/tutorial003.py hl[9:12,20:24] *} diff --git a/docs/de/docs/advanced/testing-websockets.md b/docs/de/docs/advanced/testing-websockets.md new file mode 100644 index 0000000..f25aa4f --- /dev/null +++ b/docs/de/docs/advanced/testing-websockets.md @@ -0,0 +1,13 @@ +# WebSockets testen { #testing-websockets } + +Sie können den schon bekannten `TestClient` zum Testen von WebSockets verwenden. + +Dazu verwenden Sie den `TestClient` in einer `with`-Anweisung, eine Verbindung zum WebSocket herstellend: + +{* ../../docs_src/app_testing/tutorial002.py hl[27:31] *} + +/// note | Hinweis + +Weitere Informationen finden Sie in Starlettes Dokumentation zum Testen von WebSockets. + +/// diff --git a/docs/de/docs/advanced/using-request-directly.md b/docs/de/docs/advanced/using-request-directly.md new file mode 100644 index 0000000..8ec6741 --- /dev/null +++ b/docs/de/docs/advanced/using-request-directly.md @@ -0,0 +1,56 @@ +# Den Request direkt verwenden { #using-the-request-directly } + +Bisher haben Sie die Teile des Requests, die Sie benötigen, mithilfe von deren Typen deklariert. + +Daten nehmend von: + +* Dem Pfad als Parameter. +* Headern. +* Cookies. +* usw. + +Und indem Sie das tun, validiert **FastAPI** diese Daten, konvertiert sie und generiert automatisch Dokumentation für Ihre API. + +Es gibt jedoch Situationen, in denen Sie möglicherweise direkt auf das `Request`-Objekt zugreifen müssen. + +## Details zum `Request`-Objekt { #details-about-the-request-object } + +Da **FastAPI** unter der Haube eigentlich **Starlette** ist, mit einer Ebene von mehreren Tools darüber, können Sie Starlettes `Request`-Objekt direkt verwenden, wenn Sie es benötigen. + +Das bedeutet allerdings auch, dass, wenn Sie Daten direkt vom `Request`-Objekt nehmen (z. B. dessen Body lesen), diese von FastAPI nicht validiert, konvertiert oder dokumentiert werden (mit OpenAPI, für die automatische API-Benutzeroberfläche). + +Obwohl jeder andere normal deklarierte Parameter (z. B. der Body, mit einem Pydantic-Modell) dennoch validiert, konvertiert, annotiert, usw. werden würde. + +Es gibt jedoch bestimmte Fälle, in denen es nützlich ist, auf das `Request`-Objekt zuzugreifen. + +## Das `Request`-Objekt direkt verwenden { #use-the-request-object-directly } + +Angenommen, Sie möchten auf die IP-Adresse/den Host des Clients in Ihrer *Pfadoperation-Funktion* zugreifen. + +Dazu müssen Sie direkt auf den Request zugreifen. + +{* ../../docs_src/using_request_directly/tutorial001.py hl[1,7:8] *} + +Durch die Deklaration eines *Pfadoperation-Funktionsparameters*, dessen Typ der `Request` ist, weiß **FastAPI**, dass es den `Request` diesem Parameter übergeben soll. + +/// tip | Tipp + +Beachten Sie, dass wir in diesem Fall einen Pfad-Parameter zusätzlich zum Request-Parameter deklarieren. + +Der Pfad-Parameter wird also extrahiert, validiert, in den spezifizierten Typ konvertiert und mit OpenAPI annotiert. + +Auf die gleiche Weise können Sie wie gewohnt jeden anderen Parameter deklarieren und zusätzlich auch den `Request` erhalten. + +/// + +## `Request`-Dokumentation { #request-documentation } + +Weitere Details zum `Request`-Objekt finden Sie in der offiziellen Starlette-Dokumentation. + +/// note | Technische Details + +Sie können auch `from starlette.requests import Request` verwenden. + +**FastAPI** stellt es direkt zur Verfügung, als Komfort für Sie, den Entwickler. Es kommt aber direkt von Starlette. + +/// diff --git a/docs/de/docs/advanced/websockets.md b/docs/de/docs/advanced/websockets.md new file mode 100644 index 0000000..5f66277 --- /dev/null +++ b/docs/de/docs/advanced/websockets.md @@ -0,0 +1,186 @@ +# WebSockets { #websockets } + +Sie können WebSockets mit **FastAPI** verwenden. + +## `websockets` installieren { #install-websockets } + +Stellen Sie sicher, dass Sie eine [virtuelle Umgebung](../virtual-environments.md){.internal-link target=_blank} erstellen, sie aktivieren und `websockets` installieren (eine Python-Bibliothek, die die Verwendung des „WebSocket“-Protokolls erleichtert): + +
+ +```console +$ pip install websockets + +---> 100% +``` + +
+ +## WebSockets-Client { #websockets-client } + +### In Produktion { #in-production } + +In Ihrem Produktionssystem haben Sie wahrscheinlich ein Frontend, das mit einem modernen Framework wie React, Vue.js oder Angular erstellt wurde. + +Und um über WebSockets mit Ihrem Backend zu kommunizieren, würden Sie wahrscheinlich die Werkzeuge Ihres Frontends verwenden. + +Oder Sie verfügen möglicherweise über eine native Mobile-Anwendung, die direkt in nativem Code mit Ihrem WebSocket-Backend kommuniziert. + +Oder Sie haben andere Möglichkeiten, mit dem WebSocket-Endpunkt zu kommunizieren. + +--- + +Für dieses Beispiel verwenden wir jedoch ein sehr einfaches HTML-Dokument mit etwas JavaScript, alles in einem langen String. + +Das ist natürlich nicht optimal und man würde das nicht in der Produktion machen. + +In der Produktion hätten Sie eine der oben genannten Optionen. + +Aber es ist der einfachste Weg, sich auf die Serverseite von WebSockets zu konzentrieren und ein funktionierendes Beispiel zu haben: + +{* ../../docs_src/websockets/tutorial001.py hl[2,6:38,41:43] *} + +## Einen `websocket` erstellen { #create-a-websocket } + +Erstellen Sie in Ihrer **FastAPI**-Anwendung einen `websocket`: + +{* ../../docs_src/websockets/tutorial001.py hl[1,46:47] *} + +/// note | Technische Details + +Sie könnten auch `from starlette.websockets import WebSocket` verwenden. + +**FastAPI** stellt den gleichen `WebSocket` direkt zur Verfügung, als Annehmlichkeit für Sie, den Entwickler. Er kommt aber direkt von Starlette. + +/// + +## Nachrichten erwarten und Nachrichten senden { #await-for-messages-and-send-messages } + +In Ihrer WebSocket-Route können Sie Nachrichten `await`en und Nachrichten senden. + +{* ../../docs_src/websockets/tutorial001.py hl[48:52] *} + +Sie können Binär-, Text- und JSON-Daten empfangen und senden. + +## Es ausprobieren { #try-it } + +Wenn Ihre Datei `main.py` heißt, führen Sie Ihre Anwendung so aus: + +
+ +```console +$ fastapi dev main.py + +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +``` + +
+ +Öffnen Sie Ihren Browser unter http://127.0.0.1:8000. + +Sie sehen eine einfache Seite wie: + + + +Sie können Nachrichten in das Eingabefeld tippen und absenden: + + + +Und Ihre **FastAPI**-Anwendung mit WebSockets antwortet: + + + +Sie können viele Nachrichten senden (und empfangen): + + + +Und alle verwenden dieselbe WebSocket-Verbindung. + +## Verwendung von `Depends` und anderen { #using-depends-and-others } + +In WebSocket-Endpunkten können Sie Folgendes aus `fastapi` importieren und verwenden: + +* `Depends` +* `Security` +* `Cookie` +* `Header` +* `Path` +* `Query` + +Diese funktionieren auf die gleiche Weise wie für andere FastAPI-Endpunkte/*Pfadoperationen*: + +{* ../../docs_src/websockets/tutorial002_an_py310.py hl[68:69,82] *} + +/// info | Info + +Da es sich um einen WebSocket handelt, macht es keinen Sinn, eine `HTTPException` auszulösen, stattdessen lösen wir eine `WebSocketException` aus. + +Sie können einen „Closing“-Code verwenden, aus den gültigen Codes, die in der Spezifikation definiert sind. + +/// + +### WebSockets mit Abhängigkeiten ausprobieren { #try-the-websockets-with-dependencies } + +Wenn Ihre Datei `main.py` heißt, führen Sie Ihre Anwendung mit Folgendem aus: + +
+ +```console +$ fastapi dev main.py + +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +``` + +
+ +Öffnen Sie Ihren Browser unter http://127.0.0.1:8000. + +Dort können Sie einstellen: + +* Die „Item ID“, die im Pfad verwendet wird. +* Das „Token“, das als Query-Parameter verwendet wird. + +/// tip | Tipp + +Beachten Sie, dass die Query `token` von einer Abhängigkeit verarbeitet wird. + +/// + +Damit können Sie den WebSocket verbinden und dann Nachrichten senden und empfangen: + + + +## Verbindungsabbrüche und mehrere Clients handhaben { #handling-disconnections-and-multiple-clients } + +Wenn eine WebSocket-Verbindung geschlossen wird, löst `await websocket.receive_text()` eine `WebSocketDisconnect`-Exception aus, die Sie dann wie in folgendem Beispiel abfangen und behandeln können. + +{* ../../docs_src/websockets/tutorial003_py39.py hl[79:81] *} + +Zum Ausprobieren: + +* Öffnen Sie die Anwendung mit mehreren Browser-Tabs. +* Schreiben Sie Nachrichten in den Tabs. +* Schließen Sie dann einen der Tabs. + +Das wird die Ausnahme `WebSocketDisconnect` auslösen und alle anderen Clients erhalten eine Nachricht wie: + +``` +Client #1596980209979 left the chat +``` + +/// tip | Tipp + +Die obige Anwendung ist ein minimales und einfaches Beispiel, das zeigt, wie Nachrichten verarbeitet und an mehrere WebSocket-Verbindungen gesendet werden. + +Beachten Sie jedoch, dass, da alles nur im Speicher in einer einzigen Liste verwaltet wird, es nur funktioniert, während der Prozess ausgeführt wird, und nur mit einem einzelnen Prozess. + +Wenn Sie etwas benötigen, das sich leicht in FastAPI integrieren lässt, aber robuster ist und von Redis, PostgreSQL und anderen unterstützt wird, sehen Sie sich encode/broadcaster an. + +/// + +## Mehr Informationen { #more-info } + +Weitere Informationen zu Optionen finden Sie in der Dokumentation von Starlette: + +* Die `WebSocket`-Klasse. +* Klassen-basierte Handhabung von WebSockets. diff --git a/docs/de/docs/advanced/wsgi.md b/docs/de/docs/advanced/wsgi.md new file mode 100644 index 0000000..1de9739 --- /dev/null +++ b/docs/de/docs/advanced/wsgi.md @@ -0,0 +1,35 @@ +# WSGI inkludieren – Flask, Django und andere { #including-wsgi-flask-django-others } + +Sie können WSGI-Anwendungen mounten, wie Sie es in [Unteranwendungen – Mounts](sub-applications.md){.internal-link target=_blank}, [Hinter einem Proxy](behind-a-proxy.md){.internal-link target=_blank} gesehen haben. + +Dazu können Sie die `WSGIMiddleware` verwenden und damit Ihre WSGI-Anwendung wrappen, zum Beispiel Flask, Django usw. + +## `WSGIMiddleware` verwenden { #using-wsgimiddleware } + +Sie müssen `WSGIMiddleware` importieren. + +Wrappen Sie dann die WSGI-Anwendung (z. B. Flask) mit der Middleware. + +Und dann mounten Sie das auf einem Pfad. + +{* ../../docs_src/wsgi/tutorial001.py hl[2:3,3] *} + +## Es testen { #check-it } + +Jetzt wird jeder Request unter dem Pfad `/v1/` von der Flask-Anwendung verarbeitet. + +Und der Rest wird von **FastAPI** gehandhabt. + +Wenn Sie das ausführen und auf http://localhost:8000/v1/ gehen, sehen Sie die Response von Flask: + +```txt +Hello, World from Flask! +``` + +Und wenn Sie auf http://localhost:8000/v2 gehen, sehen Sie die Response von FastAPI: + +```JSON +{ + "message": "Hello World" +} +``` diff --git a/docs/de/docs/alternatives.md b/docs/de/docs/alternatives.md new file mode 100644 index 0000000..4dd127d --- /dev/null +++ b/docs/de/docs/alternatives.md @@ -0,0 +1,485 @@ +# Alternativen, Inspiration und Vergleiche { #alternatives-inspiration-and-comparisons } + +Was hat **FastAPI** inspiriert, wie es sich im Vergleich zu Alternativen verhält und was es von ihnen gelernt hat. + +## Einführung { #intro } + +**FastAPI** würde ohne die frühere Arbeit anderer nicht existieren. + +Es wurden zuvor viele Tools entwickelt, die als Inspiration für seine Entwicklung dienten. + +Ich habe die Schaffung eines neuen Frameworks viele Jahre lang vermieden. Zuerst habe ich versucht, alle von **FastAPI** abgedeckten Funktionen mithilfe vieler verschiedener Frameworks, Plugins und Tools zu lösen. + +Aber irgendwann gab es keine andere Möglichkeit, als etwas zu schaffen, das all diese Funktionen bereitstellte, die besten Ideen früherer Tools aufnahm und diese auf die bestmögliche Weise kombinierte, wobei Sprachfunktionen verwendet wurden, die vorher noch nicht einmal verfügbar waren (Python 3.6+ Typhinweise). + +## Vorherige Tools { #previous-tools } + +### Django { #django } + +Es ist das beliebteste Python-Framework und genießt großes Vertrauen. Es wird zum Aufbau von Systemen wie Instagram verwendet. + +Es ist relativ eng mit relationalen Datenbanken (wie MySQL oder PostgreSQL) gekoppelt, daher ist es nicht sehr einfach, eine NoSQL-Datenbank (wie Couchbase, MongoDB, Cassandra, usw.) als Hauptspeicherengine zu verwenden. + +Es wurde erstellt, um den HTML-Code im Backend zu generieren, nicht um APIs zu erstellen, die von einem modernen Frontend (wie React, Vue.js und Angular) oder von anderen Systemen (wie IoT-Geräten) verwendet werden, um mit ihm zu kommunizieren. + +### Django REST Framework { #django-rest-framework } + +Das Django REST Framework wurde als flexibles Toolkit zum Erstellen von Web-APIs unter Verwendung von Django entwickelt, um dessen API-Möglichkeiten zu verbessern. + +Es wird von vielen Unternehmen verwendet, darunter Mozilla, Red Hat und Eventbrite. + +Es war eines der ersten Beispiele für **automatische API-Dokumentation**, und dies war insbesondere eine der ersten Ideen, welche „die Suche nach“ **FastAPI** inspirierten. + +/// note | Hinweis + +Das Django REST Framework wurde von Tom Christie erstellt. Derselbe Schöpfer von Starlette und Uvicorn, auf denen **FastAPI** basiert. + +/// + +/// check | Inspirierte **FastAPI** + +Eine automatische API-Dokumentationsoberfläche zu haben. + +/// + +### Flask { #flask } + +Flask ist ein „Mikroframework“, es enthält weder Datenbankintegration noch viele der Dinge, die standardmäßig in Django enthalten sind. + +Diese Einfachheit und Flexibilität ermöglichen beispielsweise die Verwendung von NoSQL-Datenbanken als Hauptdatenspeichersystem. + +Da es sehr einfach ist, ist es relativ intuitiv zu erlernen, obwohl die Dokumentation an einigen Stellen etwas technisch wird. + +Es wird auch häufig für andere Anwendungen verwendet, die nicht unbedingt eine Datenbank, Benutzerverwaltung oder eine der vielen in Django enthaltenen Funktionen benötigen. Obwohl viele dieser Funktionen mit Plugins hinzugefügt werden können. + +Diese Entkopplung der Teile und die Tatsache, dass es sich um ein „Mikroframework“ handelt, welches so erweitert werden kann, dass es genau das abdeckt, was benötigt wird, war ein Schlüsselmerkmal, das ich beibehalten wollte. + +Angesichts der Einfachheit von Flask schien es eine gute Ergänzung zum Erstellen von APIs zu sein. Als Nächstes musste ein „Django REST Framework“ für Flask gefunden werden. + +/// check | Inspirierte **FastAPI** + +Ein Mikroframework zu sein. Es einfach zu machen, die benötigten Tools und Teile zu kombinieren. + +Über ein einfaches und benutzerfreundliches Routingsystem zu verfügen. + +/// + +### Requests { #requests } + +**FastAPI** ist eigentlich keine Alternative zu **Requests**. Der Umfang der beiden ist sehr unterschiedlich. + +Es wäre tatsächlich üblich, Requests *innerhalb* einer FastAPI-Anwendung zu verwenden. + +Dennoch erhielt FastAPI von Requests einiges an Inspiration. + +**Requests** ist eine Bibliothek zur *Interaktion* mit APIs (als Client), während **FastAPI** eine Bibliothek zum *Erstellen* von APIs (als Server) ist. + +Die beiden stehen mehr oder weniger an entgegengesetzten Enden und ergänzen sich. + +Requests hat ein sehr einfaches und intuitives Design, ist sehr einfach zu bedienen und verfügt über sinnvolle Standardeinstellungen. Aber gleichzeitig ist es sehr leistungsstark und anpassbar. + +Aus diesem Grund heißt es auf der offiziellen Website: + +> Requests ist eines der am häufigsten heruntergeladenen Python-Packages aller Zeiten + +Die Art und Weise, wie Sie es verwenden, ist sehr einfach. Um beispielsweise einen `GET`-Request zu machen, würden Sie schreiben: + +```Python +response = requests.get("http://example.com/some/url") +``` + +Die entsprechende *Pfadoperation* der FastAPI-API könnte wie folgt aussehen: + +```Python hl_lines="1" +@app.get("/some/url") +def read_url(): + return {"message": "Hello World"} +``` + +Sehen Sie sich die Ähnlichkeiten in `requests.get(...)` und `@app.get(...)` an. + +/// check | Inspirierte **FastAPI** + +* Über eine einfache und intuitive API zu verfügen. +* HTTP-Methodennamen (Operationen) direkt, auf einfache und intuitive Weise zu verwenden. +* Vernünftige Standardeinstellungen zu haben, aber auch mächtige Einstellungsmöglichkeiten. + +/// + +### Swagger / OpenAPI { #swagger-openapi } + +Die Hauptfunktion, die ich vom Django REST Framework haben wollte, war die automatische API-Dokumentation. + +Dann fand ich heraus, dass es einen Standard namens Swagger gab, zur Dokumentation von APIs unter Verwendung von JSON (oder YAML, einer Erweiterung von JSON). + +Und es gab bereits eine Web-Oberfläche für Swagger-APIs. Die Möglichkeit, Swagger-Dokumentation für eine API zu generieren, würde die automatische Nutzung dieser Web-Oberfläche ermöglichen. + +Irgendwann wurde Swagger an die Linux Foundation übergeben und in OpenAPI umbenannt. + +Aus diesem Grund spricht man bei Version 2.0 häufig von „Swagger“ und ab Version 3 von „OpenAPI“. + +/// check | Inspirierte **FastAPI** + +Einen offenen Standard für API-Spezifikationen zu übernehmen und zu verwenden, anstelle eines benutzerdefinierten Schemas. + +Und Standard-basierte Tools für die Oberfläche zu integrieren: + +* Swagger UI +* ReDoc + +Diese beiden wurden ausgewählt, weil sie ziemlich beliebt und stabil sind, aber bei einer schnellen Suche könnten Sie Dutzende alternativer Benutzeroberflächen für OpenAPI finden (welche Sie mit **FastAPI** verwenden können). + +/// + +### Flask REST Frameworks { #flask-rest-frameworks } + +Es gibt mehrere Flask REST Frameworks, aber nachdem ich die Zeit und Arbeit investiert habe, sie zu untersuchen, habe ich festgestellt, dass viele nicht mehr unterstützt werden oder abgebrochen wurden und dass mehrere fortbestehende Probleme sie unpassend machten. + +### Marshmallow { #marshmallow } + +Eine der von API-Systemen benötigten Hauptfunktionen ist die Daten-„Serialisierung“, welche Daten aus dem Code (Python) entnimmt und in etwas umwandelt, was durch das Netzwerk gesendet werden kann. Beispielsweise das Konvertieren eines Objekts, welches Daten aus einer Datenbank enthält, in ein JSON-Objekt. Konvertieren von `datetime`-Objekten in Strings, usw. + +Eine weitere wichtige Funktion, benötigt von APIs, ist die Datenvalidierung, welche sicherstellt, dass die Daten unter gegebenen Umständen gültig sind. Zum Beispiel, dass ein Feld ein `int` ist und kein zufälliger String. Das ist besonders nützlich für hereinkommende Daten. + +Ohne ein Datenvalidierungssystem müssten Sie alle Prüfungen manuell im Code durchführen. + +Für diese Funktionen wurde Marshmallow entwickelt. Es ist eine großartige Bibliothek und ich habe sie schon oft genutzt. + +Aber sie wurde erstellt, bevor Typhinweise in Python existierten. Um also ein Schema zu definieren, müssen Sie bestimmte Werkzeuge und Klassen verwenden, die von Marshmallow bereitgestellt werden. + +/// check | Inspirierte **FastAPI** + +Code zu verwenden, um „Schemas“ zu definieren, welche Datentypen und Validierung automatisch bereitstellen. + +/// + +### Webargs { #webargs } + +Eine weitere wichtige Funktion, die von APIs benötigt wird, ist das Parsen von Daten aus eingehenden Requests. + +Webargs wurde entwickelt, um dieses für mehrere Frameworks, einschließlich Flask, bereitzustellen. + +Es verwendet unter der Haube Marshmallow, um die Datenvalidierung durchzuführen. Und es wurde von denselben Entwicklern erstellt. + +Es ist ein großartiges Tool und ich habe es auch oft verwendet, bevor ich **FastAPI** hatte. + +/// info | Info + +Webargs wurde von denselben Marshmallow-Entwicklern erstellt. + +/// + +/// check | Inspirierte **FastAPI** + +Eingehende Requestdaten automatisch zu validieren. + +/// + +### APISpec { #apispec } + +Marshmallow und Webargs bieten Validierung, Parsen und Serialisierung als Plugins. + +Es fehlt jedoch noch die Dokumentation. Dann wurde APISpec erstellt. + +Es ist ein Plugin für viele Frameworks (und es gibt auch ein Plugin für Starlette). + +Die Funktionsweise besteht darin, dass Sie die Definition des Schemas im YAML-Format im Docstring jeder Funktion schreiben, die eine Route verarbeitet. + +Und es generiert OpenAPI-Schemas. + +So funktioniert es in Flask, Starlette, Responder, usw. + +Aber dann haben wir wieder das Problem einer Mikrosyntax innerhalb eines Python-Strings (eines großen YAML). + +Der Texteditor kann dabei nicht viel helfen. Und wenn wir Parameter oder Marshmallow-Schemas ändern und vergessen, auch den YAML-Docstring zu ändern, wäre das generierte Schema veraltet. + +/// info | Info + +APISpec wurde von denselben Marshmallow-Entwicklern erstellt. + +/// + +/// check | Inspirierte **FastAPI** + +Den offenen Standard für APIs, OpenAPI, zu unterstützen. + +/// + +### Flask-apispec { #flask-apispec } + +Hierbei handelt es sich um ein Flask-Plugin, welches Webargs, Marshmallow und APISpec miteinander verbindet. + +Es nutzt die Informationen von Webargs und Marshmallow, um mithilfe von APISpec automatisch OpenAPI-Schemas zu generieren. + +Ein großartiges Tool, sehr unterbewertet. Es sollte weitaus populärer als viele andere Flask-Plugins sein. Möglicherweise liegt es daran, dass die Dokumentation zu kompakt und abstrakt ist. + +Das löste das Problem, YAML (eine andere Syntax) in Python-Docstrings schreiben zu müssen. + +Diese Kombination aus Flask, Flask-apispec mit Marshmallow und Webargs war bis zur Entwicklung von **FastAPI** mein Lieblings-Backend-Stack. + +Die Verwendung führte zur Entwicklung mehrerer Flask-Full-Stack-Generatoren. Dies sind die Hauptstacks, die ich (und mehrere externe Teams) bisher verwendet haben: + +* https://github.com/tiangolo/full-stack +* https://github.com/tiangolo/full-stack-flask-couchbase +* https://github.com/tiangolo/full-stack-flask-couchdb + +Und dieselben Full-Stack-Generatoren bildeten die Basis der [**FastAPI**-Projektgeneratoren](project-generation.md){.internal-link target=_blank}. + +/// info | Info + +Flask-apispec wurde von denselben Marshmallow-Entwicklern erstellt. + +/// + +/// check | Inspirierte **FastAPI** + +Das OpenAPI-Schema automatisch zu generieren, aus demselben Code, welcher die Serialisierung und Validierung definiert. + +/// + +### NestJS (und Angular) { #nestjs-and-angular } + +Dies ist nicht einmal Python, NestJS ist ein von Angular inspiriertes JavaScript (TypeScript) NodeJS Framework. + +Es erreicht etwas Ähnliches wie Flask-apispec. + +Es verfügt über ein integriertes Dependency Injection System, welches von Angular 2 inspiriert ist. Erfordert ein Vorab-Registrieren der „Injectables“ (wie alle anderen Dependency Injection Systeme, welche ich kenne), sodass der Code ausschweifender wird und es mehr Codeverdoppelung gibt. + +Da die Parameter mit TypeScript-Typen beschrieben werden (ähnlich den Python-Typhinweisen), ist die Editorunterstützung ziemlich gut. + +Da TypeScript-Daten jedoch nach der Kompilierung nach JavaScript nicht erhalten bleiben, können die Typen nicht gleichzeitig die Validierung, Serialisierung und Dokumentation definieren. Aus diesem Grund und aufgrund einiger Designentscheidungen ist es für die Validierung, Serialisierung und automatische Schemagenerierung erforderlich, an vielen Stellen Dekoratoren hinzuzufügen. Es wird also ziemlich ausführlich. + +Es kann nicht sehr gut mit verschachtelten Modellen umgehen. Wenn es sich beim JSON-Body im Request also um ein JSON-Objekt mit inneren Feldern handelt, die wiederum verschachtelte JSON-Objekte sind, kann er nicht richtig dokumentiert und validiert werden. + +/// check | Inspirierte **FastAPI** + +Python-Typen zu verwenden, um eine hervorragende Editorunterstützung zu erhalten. + +Über ein leistungsstarkes Dependency Injection System zu verfügen. Eine Möglichkeit zu finden, Codeverdoppelung zu minimieren. + +/// + +### Sanic { #sanic } + +Es war eines der ersten extrem schnellen Python-Frameworks, welches auf `asyncio` basierte. Es wurde so gestaltet, dass es Flask sehr ähnlich ist. + +/// note | Technische Details + +Es verwendete `uvloop` anstelle der standardmäßigen Python-`asyncio`-Schleife. Das hat es so schnell gemacht. + +Hat eindeutig Uvicorn und Starlette inspiriert, welche derzeit in offenen Benchmarks schneller als Sanic sind. + +/// + +/// check | Inspirierte **FastAPI** + +Einen Weg zu finden, eine hervorragende Performanz zu haben. + +Aus diesem Grund basiert **FastAPI** auf Starlette, da dieses das schnellste verfügbare Framework ist (getestet in Benchmarks von Dritten). + +/// + +### Falcon { #falcon } + +Falcon ist ein weiteres leistungsstarkes Python-Framework. Es ist minimalistisch konzipiert und dient als Grundlage für andere Frameworks wie Hug. + +Es ist so konzipiert, dass es über Funktionen verfügt, welche zwei Parameter empfangen, einen „Request“ und eine „Response“. Dann „lesen“ Sie Teile des Requests und „schreiben“ Teile der Response. Aufgrund dieses Designs ist es nicht möglich, Request-Parameter und -Bodys mit Standard-Python-Typhinweisen als Funktionsparameter zu deklarieren. + +Daher müssen Datenvalidierung, Serialisierung und Dokumentation im Code und nicht automatisch erfolgen. Oder sie müssen als Framework oberhalb von Falcon implementiert werden, so wie Hug. Dieselbe Unterscheidung findet auch in anderen Frameworks statt, die vom Design von Falcon inspiriert sind und ein Requestobjekt und ein Responseobjekt als Parameter haben. + +/// check | Inspirierte **FastAPI** + +Wege zu finden, eine großartige Performanz zu erzielen. + +Zusammen mit Hug (da Hug auf Falcon basiert), einen `response`-Parameter in Funktionen zu deklarieren. + +Obwohl er in FastAPI optional ist und hauptsächlich zum Festlegen von Headern, Cookies und alternativen Statuscodes verwendet wird. + +/// + +### Molten { #molten } + +Ich habe Molten in den ersten Phasen der Entwicklung von **FastAPI** entdeckt. Und es hat ganz ähnliche Ideen: + +* Basierend auf Python-Typhinweisen. +* Validierung und Dokumentation aus diesen Typen. +* Dependency Injection System. + +Es verwendet keine Datenvalidierungs-, Serialisierungs- und Dokumentationsbibliothek eines Dritten wie Pydantic, sondern verfügt über eine eigene. Daher wären diese Datentyp-Definitionen nicht so einfach wiederverwendbar. + +Es erfordert eine etwas ausführlichere Konfiguration. Und da es auf WSGI (anstelle von ASGI) basiert, ist es nicht darauf ausgelegt, die hohe Leistung von Tools wie Uvicorn, Starlette und Sanic zu nutzen. + +Das Dependency Injection System erfordert eine Vorab-Registrierung der Abhängigkeiten und die Abhängigkeiten werden basierend auf den deklarierten Typen aufgelöst. Daher ist es nicht möglich, mehr als eine „Komponente“ zu deklarieren, welche einen bestimmten Typ bereitstellt. + +Routen werden an einer einzigen Stelle deklariert, indem Funktionen verwendet werden, die an anderen Stellen deklariert wurden (anstatt Dekoratoren zu verwenden, welche direkt über der Funktion platziert werden können, welche den Endpunkt verarbeitet). Dies ähnelt eher der Vorgehensweise von Django als der Vorgehensweise von Flask (und Starlette). Es trennt im Code Dinge, die relativ eng miteinander gekoppelt sind. + +/// check | Inspirierte **FastAPI** + +Zusätzliche Validierungen für Datentypen zu definieren, mithilfe des „Default“-Werts von Modellattributen. Dies verbessert die Editorunterstützung und war zuvor in Pydantic nicht verfügbar. + +Das hat tatsächlich dazu geführt, dass Teile von Pydantic aktualisiert wurden, um denselben Validierungsdeklarationsstil zu unterstützen (diese gesamte Funktionalität ist jetzt bereits in Pydantic verfügbar). + +/// + +### Hug { #hug } + +Hug war eines der ersten Frameworks, welches die Deklaration von API-Parametertypen mithilfe von Python-Typhinweisen implementierte. Das war eine großartige Idee, die andere Tools dazu inspirierte, dasselbe zu tun. + +Es verwendete benutzerdefinierte Typen in seinen Deklarationen anstelle von Standard-Python-Typen, es war aber dennoch ein großer Fortschritt. + +Außerdem war es eines der ersten Frameworks, welches ein benutzerdefiniertes Schema generierte, welches die gesamte API in JSON deklarierte. + +Es basierte nicht auf einem Standard wie OpenAPI und JSON Schema. Daher wäre es nicht einfach, es in andere Tools wie Swagger UI zu integrieren. Aber, nochmal, es war eine sehr innovative Idee. + +Es verfügt über eine interessante, ungewöhnliche Funktion: Mit demselben Framework ist es möglich, APIs und auch CLIs zu erstellen. + +Da es auf dem bisherigen Standard für synchrone Python-Webframeworks (WSGI) basiert, kann es nicht mit Websockets und anderen Dingen umgehen, verfügt aber dennoch über eine hohe Performanz. + +/// info | Info + +Hug wurde von Timothy Crosley erstellt, demselben Schöpfer von `isort`, einem großartigen Tool zum automatischen Sortieren von Importen in Python-Dateien. + +/// + +/// check | Ideen, die **FastAPI** inspiriert haben + +Hug inspirierte Teile von APIStar und war eines der Tools, die ich am vielversprechendsten fand, neben APIStar. + +Hug hat dazu beigetragen, **FastAPI** dazu zu inspirieren, Python-Typhinweise zum Deklarieren von Parametern zu verwenden und ein Schema zu generieren, das die API automatisch definiert. + +Hug inspirierte **FastAPI** dazu, einen `response`-Parameter in Funktionen zu deklarieren, um Header und Cookies zu setzen. + +/// + +### APIStar (≦ 0.5) { #apistar-0-5 } + +Kurz bevor ich mich entschied, **FastAPI** zu erstellen, fand ich den **APIStar**-Server. Er hatte fast alles, was ich suchte, und ein tolles Design. + +Er war eine der ersten Implementierungen eines Frameworks, die ich je gesehen hatte (vor NestJS und Molten), welches Python-Typhinweise zur Deklaration von Parametern und Requests verwendeten. Ich habe ihn mehr oder weniger zeitgleich mit Hug gefunden. Aber APIStar nutzte den OpenAPI-Standard. + +Er verfügte an mehreren Stellen über automatische Datenvalidierung, Datenserialisierung und OpenAPI-Schemagenerierung, basierend auf denselben Typhinweisen. + +Body-Schemadefinitionen verwendeten nicht die gleichen Python-Typhinweise wie Pydantic, er war Marshmallow etwas ähnlicher, sodass die Editorunterstützung nicht so gut war, aber dennoch war APIStar die beste verfügbare Option. + +Er hatte zu dieser Zeit die besten Leistungsbenchmarks (nur übertroffen von Starlette). + +Anfangs gab es keine Web-Oberfläche für die automatische API-Dokumentation, aber ich wusste, dass ich Swagger UI hinzufügen konnte. + +Er verfügte über ein Dependency Injection System. Es erforderte eine Vorab-Registrierung der Komponenten, wie auch bei anderen oben besprochenen Tools. Aber dennoch, es war ein tolles Feature. + +Ich konnte ihn nie in einem vollständigen Projekt verwenden, da er keine Sicherheitsintegration hatte, sodass ich nicht alle Funktionen, die ich hatte, durch die auf Flask-apispec basierenden Full-Stack-Generatoren ersetzen konnte. Ich hatte in meinem Projekte-Backlog den Eintrag, einen Pull Request zu erstellen, welcher diese Funktionalität hinzufügte. + +Doch dann verlagerte sich der Schwerpunkt des Projekts. + +Es handelte sich nicht länger um ein API-Webframework, da sich der Entwickler auf Starlette konzentrieren musste. + +Jetzt handelt es sich bei APIStar um eine Reihe von Tools zur Validierung von OpenAPI-Spezifikationen, nicht um ein Webframework. + +/// info | Info + +APIStar wurde von Tom Christie erstellt. Derselbe, welcher Folgendes erstellt hat: + +* Django REST Framework +* Starlette (auf welchem **FastAPI** basiert) +* Uvicorn (verwendet von Starlette und **FastAPI**) + +/// + +/// check | Inspirierte **FastAPI** + +Zu existieren. + +Die Idee, mehrere Dinge (Datenvalidierung, Serialisierung und Dokumentation) mit denselben Python-Typen zu deklarieren, welche gleichzeitig eine hervorragende Editorunterstützung bieten, hielt ich für eine brillante Idee. + +Und nach einer langen Suche nach einem ähnlichen Framework und dem Testen vieler verschiedener Alternativen, war APIStar die beste verfügbare Option. + +Dann hörte APIStar auf, als Server zu existieren, und Starlette wurde geschaffen, welches eine neue, bessere Grundlage für ein solches System bildete. Das war die finale Inspiration für die Entwicklung von **FastAPI**. + +Ich betrachte **FastAPI** als einen „spirituellen Nachfolger“ von APIStar, welcher die Funktionen, das Typsystem und andere Teile verbessert und erweitert, basierend auf den Erkenntnissen aus all diesen früheren Tools. + +/// + +## Verwendet von **FastAPI** { #used-by-fastapi } + +### Pydantic { #pydantic } + +Pydantic ist eine Bibliothek zum Definieren von Datenvalidierung, Serialisierung und Dokumentation (unter Verwendung von JSON Schema) basierend auf Python-Typhinweisen. + +Das macht es äußerst intuitiv. + +Es ist vergleichbar mit Marshmallow. Obwohl es in Benchmarks schneller als Marshmallow ist. Und da es auf den gleichen Python-Typhinweisen basiert, ist die Editorunterstützung großartig. + +/// check | **FastAPI** verwendet es, um + +Die gesamte Datenvalidierung, Datenserialisierung und automatische Modelldokumentation (basierend auf JSON Schema) zu erledigen. + +**FastAPI** nimmt dann, abgesehen von all den anderen Dingen, die es tut, dieses JSON-Schema und fügt es in OpenAPI ein. + +/// + +### Starlette { #starlette } + +Starlette ist ein leichtgewichtiges ASGI-Framework/Toolkit, welches sich ideal für die Erstellung hochperformanter asynchroner Dienste eignet. + +Es ist sehr einfach und intuitiv. Es ist so konzipiert, dass es leicht erweiterbar ist und über modulare Komponenten verfügt. + +Es bietet: + +* Eine sehr beeindruckende Leistung. +* WebSocket-Unterstützung. +* Hintergrundtasks im selben Prozess. +* Startup- und Shutdown-Events. +* Testclient basierend auf HTTPX. +* CORS, GZip, statische Dateien, Responses streamen. +* Session- und Cookie-Unterstützung. +* 100 % Testabdeckung. +* 100 % Typannotierte Codebasis. +* Wenige starke Abhängigkeiten. + +Starlette ist derzeit das schnellste getestete Python-Framework. Nur übertroffen von Uvicorn, welches kein Framework, sondern ein Server ist. + +Starlette bietet alle grundlegenden Funktionen eines Web-Microframeworks. + +Es bietet jedoch keine automatische Datenvalidierung, Serialisierung oder Dokumentation. + +Das ist eines der wichtigsten Dinge, welche **FastAPI** hinzufügt, alles basierend auf Python-Typhinweisen (mit Pydantic). Das, plus, das Dependency Injection System, Sicherheitswerkzeuge, OpenAPI-Schemagenerierung, usw. + +/// note | Technische Details + +ASGI ist ein neuer „Standard“, welcher von Mitgliedern des Django-Kernteams entwickelt wird. Es handelt sich immer noch nicht um einen „Python-Standard“ (ein PEP), obwohl sie gerade dabei sind, das zu tun. + +Dennoch wird es bereits von mehreren Tools als „Standard“ verwendet. Das verbessert die Interoperabilität erheblich, da Sie Uvicorn mit jeden anderen ASGI-Server (wie Daphne oder Hypercorn) tauschen oder ASGI-kompatible Tools wie `python-socketio` hinzufügen können. + +/// + +/// check | **FastAPI** verwendet es, um + +Alle Kern-Webaspekte zu handhaben. Und fügt Funktionen obenauf. + +Die Klasse `FastAPI` selbst erbt direkt von der Klasse `Starlette`. + +Alles, was Sie also mit Starlette machen können, können Sie direkt mit **FastAPI** machen, da es sich im Grunde um Starlette auf Steroiden handelt. + +/// + +### Uvicorn { #uvicorn } + +Uvicorn ist ein blitzschneller ASGI-Server, der auf uvloop und httptools basiert. + +Es handelt sich nicht um ein Webframework, sondern um einen Server. Beispielsweise werden keine Tools für das Routing von Pfaden bereitgestellt. Das ist etwas, was ein Framework wie Starlette (oder **FastAPI**) zusätzlich bieten würde. + +Es ist der empfohlene Server für Starlette und **FastAPI**. + +/// check | **FastAPI** empfiehlt es als + +Hauptwebserver zum Ausführen von **FastAPI**-Anwendungen. + +Sie können auch die Kommandozeilenoption `--workers` verwenden, um einen asynchronen Multiprozess-Server zu erhalten. + +Weitere Details finden Sie im Abschnitt [Deployment](deployment/index.md){.internal-link target=_blank}. + +/// + +## Benchmarks und Geschwindigkeit { #benchmarks-and-speed } + +Um den Unterschied zwischen Uvicorn, Starlette und FastAPI zu verstehen, zu vergleichen und zu sehen, lesen Sie den Abschnitt über [Benchmarks](benchmarks.md){.internal-link target=_blank}. diff --git a/docs/de/docs/async.md b/docs/de/docs/async.md new file mode 100644 index 0000000..3dbd442 --- /dev/null +++ b/docs/de/docs/async.md @@ -0,0 +1,444 @@ +# Nebenläufigkeit und async / await { #concurrency-and-async-await } + +Details zur `async def`-Syntax für *Pfadoperation-Funktionen* und Hintergrundinformationen zu asynchronem Code, Nebenläufigkeit und Parallelität. + +## In Eile? { #in-a-hurry } + +TL;DR: + +Wenn Sie Bibliotheken von Dritten verwenden, die mit `await` aufgerufen werden müssen, wie zum Beispiel: + +```Python +results = await some_library() +``` + +Dann deklarieren Sie Ihre *Pfadoperation-Funktionen* mit `async def`, wie in: + +```Python hl_lines="2" +@app.get('/') +async def read_results(): + results = await some_library() + return results +``` + +/// note | Hinweis + +Sie können `await` nur innerhalb von Funktionen verwenden, die mit `async def` erstellt wurden. + +/// + +--- + +Wenn Sie eine Bibliothek eines Dritten verwenden, die mit etwas kommuniziert (einer Datenbank, einer API, dem Dateisystem, usw.) und welche die Verwendung von `await` nicht unterstützt (dies ist derzeit bei den meisten Datenbankbibliotheken der Fall), dann deklarieren Sie Ihre *Pfadoperation-Funktionen* ganz normal nur mit `def`, wie in: + +```Python hl_lines="2" +@app.get('/') +def results(): + results = some_library() + return results +``` + +--- + +Wenn Ihre Anwendung (irgendwie) nicht mit etwas anderem kommunizieren und auf dessen Antwort warten muss, verwenden Sie `async def`, auch wenn Sie `await` im Inneren nicht verwenden müssen. + +--- + +Wenn Sie sich unsicher sind, verwenden Sie einfach `def`. + +--- + +**Hinweis**: Sie können `def` und `async def` in Ihren *Pfadoperation-Funktionen* beliebig mischen, so wie Sie es benötigen, und jede einzelne Funktion in der für Sie besten Variante erstellen. FastAPI wird damit das Richtige tun. + +Wie dem auch sei, in jedem der oben genannten Fälle wird FastAPI immer noch asynchron arbeiten und extrem schnell sein. + +Wenn Sie jedoch den oben genannten Schritten folgen, können einige Performanz-Optimierungen vorgenommen werden. + +## Technische Details { #technical-details } + +Moderne Versionen von Python unterstützen **„asynchronen Code“** unter Verwendung sogenannter **„Coroutinen“** mithilfe der Syntax **`async` und `await`**. + +Nehmen wir obigen Satz in den folgenden Abschnitten Schritt für Schritt unter die Lupe: + +* **Asynchroner Code** +* **`async` und `await`** +* **Coroutinen** + +## Asynchroner Code { #asynchronous-code } + +Asynchroner Code bedeutet lediglich, dass die Sprache 💬 eine Möglichkeit hat, dem Computer / Programm 🤖 mitzuteilen, dass es 🤖 an einem bestimmten Punkt im Code darauf warten muss, dass *etwas anderes* irgendwo anders fertig wird. Nehmen wir an, *etwas anderes* ist hier „Langsam-Datei“ 📝. + +Während der Zeit, die „Langsam-Datei“ 📝 benötigt, kann das System also andere Aufgaben erledigen. + +Dann kommt der Computer / das Programm 🤖 bei jeder Gelegenheit zurück, weil es entweder wieder wartet oder wann immer es 🤖 die ganze Arbeit erledigt hat, die zu diesem Zeitpunkt zu tun war. Und es 🤖 wird nachschauen, ob eine der Aufgaben, auf die es gewartet hat, fertig ist. + +Dann nimmt es 🤖 die erste erledigte Aufgabe (sagen wir, unsere „Langsam-Datei“ 📝) und bearbeitet sie weiter. + +Das „Warten auf etwas anderes“ bezieht sich normalerweise auf I/O-Operationen, die relativ „langsam“ sind (im Vergleich zur Geschwindigkeit des Prozessors und des Arbeitsspeichers), wie etwa das Warten darauf, dass: + +* die Daten des Clients über das Netzwerk empfangen wurden +* die von Ihrem Programm gesendeten Daten vom Client über das Netzwerk empfangen wurden +* der Inhalt einer Datei vom System von der Festplatte gelesen und an Ihr Programm übergeben wurde +* der Inhalt, den Ihr Programm dem System übergeben hat, auf die Festplatte geschrieben wurde +* eine Remote-API-Operation beendet wurde +* Eine Datenbankoperation abgeschlossen wurde +* eine Datenbankabfrage die Ergebnisse zurückgegeben hat +* usw. + +Da die Ausführungszeit hier hauptsächlich durch das Warten auf I/O-Operationen verbraucht wird, nennt man dies auch „I/O-lastige“ („I/O bound“) Operationen. + +„Asynchron“, sagt man, weil der Computer / das Programm nicht mit einer langsamen Aufgabe „synchronisiert“ werden muss und nicht auf den genauen Moment warten muss, in dem die Aufgabe beendet ist, ohne dabei etwas zu tun, um schließlich das Ergebnis der Aufgabe zu übernehmen und die Arbeit fortsetzen zu können. + +Da es sich stattdessen um ein „asynchrones“ System handelt, kann die Aufgabe nach Abschluss ein wenig (einige Mikrosekunden) in der Schlange warten, bis der Computer / das Programm seine anderen Dinge erledigt hat und zurückkommt, um die Ergebnisse entgegenzunehmen und mit ihnen weiterzuarbeiten. + +Für „synchron“ (im Gegensatz zu „asynchron“) wird auch oft der Begriff „sequentiell“ verwendet, da der Computer / das Programm alle Schritte in einer Sequenz („der Reihe nach“) ausführt, bevor es zu einer anderen Aufgabe wechselt, auch wenn diese Schritte mit Warten verbunden sind. + +### Nebenläufigkeit und Hamburger { #concurrency-and-burgers } + +Diese oben beschriebene Idee von **asynchronem** Code wird manchmal auch **„Nebenläufigkeit“** genannt. Sie unterscheidet sich von **„Parallelität“**. + +**Nebenläufigkeit** und **Parallelität** beziehen sich beide auf „verschiedene Dinge, die mehr oder weniger gleichzeitig passieren“. + +Aber die Details zwischen *Nebenläufigkeit* und *Parallelität* sind ziemlich unterschiedlich. + +Um den Unterschied zu erkennen, stellen Sie sich die folgende Geschichte über Hamburger vor: + +### Nebenläufige Hamburger { #concurrent-burgers } + +Sie gehen mit Ihrem Schwarm Fastfood holen, stehen in der Schlange, während der Kassierer die Bestellungen der Leute vor Ihnen entgegennimmt. 😍 + + + +Dann sind Sie an der Reihe und Sie bestellen zwei sehr schmackhafte Burger für Ihren Schwarm und Sie. 🍔🍔 + + + +Der Kassierer sagt etwas zum Koch in der Küche, damit dieser weiß, dass er Ihre Burger zubereiten muss (obwohl er gerade die für die vorherigen Kunden zubereitet). + + + +Sie bezahlen. 💸 + +Der Kassierer gibt Ihnen die Nummer Ihrer Bestellung. + + + +Während Sie warten, suchen Sie sich mit Ihrem Schwarm einen Tisch aus, Sie sitzen da und reden lange mit Ihrem Schwarm (da Ihre Burger sehr aufwändig sind und die Zubereitung einige Zeit dauert). + +Während Sie mit Ihrem Schwarm am Tisch sitzen und auf die Burger warten, können Sie die Zeit damit verbringen, zu bewundern, wie großartig, süß und klug Ihr Schwarm ist ✨😍✨. + + + +Während Sie warten und mit Ihrem Schwarm sprechen, überprüfen Sie von Zeit zu Zeit die auf dem Zähler angezeigte Nummer, um zu sehen, ob Sie bereits an der Reihe sind. + +Dann, irgendwann, sind Sie endlich an der Reihe. Sie gehen zur Theke, holen sich die Burger und kommen zurück an den Tisch. + + + +Sie und Ihr Schwarm essen die Burger und haben eine schöne Zeit. ✨ + + + +/// info | Info + +Die wunderschönen Illustrationen stammen von Ketrina Thompson. 🎨 + +/// + +--- + +Stellen Sie sich vor, Sie wären der Computer / das Programm 🤖 in dieser Geschichte. + +Während Sie an der Schlange stehen, sind Sie einfach untätig 😴, warten darauf, dass Sie an die Reihe kommen, und tun nichts sehr „Produktives“. Aber die Schlange ist schnell abgearbeitet, weil der Kassierer nur die Bestellungen entgegennimmt (und nicht zubereitet), also ist das vertretbar. + +Wenn Sie dann an der Reihe sind, erledigen Sie tatsächliche „produktive“ Arbeit, Sie gehen das Menü durch, entscheiden sich, was Sie möchten, bekunden Ihre und die Wahl Ihres Schwarms, bezahlen, prüfen, ob Sie die richtige Menge Geld oder die richtige Karte geben, prüfen, ob die Rechnung korrekt ist, prüfen, dass die Bestellung die richtigen Artikel enthält, usw. + +Aber dann, auch wenn Sie Ihre Burger noch nicht haben, ist Ihre Interaktion mit dem Kassierer erst mal „auf Pause“ ⏸, weil Sie warten müssen 🕙, bis Ihre Burger fertig sind. + +Aber wenn Sie sich von der Theke entfernt haben und mit der Nummer für die Bestellung an einem Tisch sitzen, können Sie Ihre Aufmerksamkeit auf Ihren Schwarm lenken und an dieser Aufgabe „arbeiten“ ⏯ 🤓. Sie machen wieder etwas sehr „Produktives“ und flirten mit Ihrem Schwarm 😍. + +Dann sagt der Kassierer 💁 „Ich bin mit dem Burger fertig“, indem er Ihre Nummer auf dem Display über der Theke anzeigt, aber Sie springen nicht sofort wie verrückt auf, wenn das Display auf Ihre Nummer springt. Sie wissen, dass niemand Ihnen Ihre Burger wegnimmt, denn Sie haben die Nummer Ihrer Bestellung, und andere Leute haben andere Nummern. + +Also warten Sie darauf, dass Ihr Schwarm ihre Geschichte zu Ende erzählt (die aktuelle Arbeit ⏯ / bearbeitete Aufgabe beendet 🤓), lächeln sanft und sagen, dass Sie die Burger holen ⏸. + +Dann gehen Sie zur Theke 🔀, zur ursprünglichen Aufgabe, die nun erledigt ist ⏯, nehmen die Burger auf, sagen Danke, und bringen sie zum Tisch. Damit ist dieser Schritt / diese Aufgabe der Interaktion mit der Theke abgeschlossen ⏹. Das wiederum schafft eine neue Aufgabe, „Burger essen“ 🔀 ⏯, aber die vorherige Aufgabe „Burger holen“ ist erledigt ⏹. + +### Parallele Hamburger { #parallel-burgers } + +Stellen wir uns jetzt vor, dass es sich hierbei nicht um „nebenläufige Hamburger“, sondern um „parallele Hamburger“ handelt. + +Sie gehen los mit Ihrem Schwarm, um paralleles Fast Food zu bekommen. + +Sie stehen in der Schlange, während mehrere (sagen wir acht) Kassierer, die gleichzeitig Köche sind, die Bestellungen der Leute vor Ihnen entgegennehmen. + +Alle vor Ihnen warten darauf, dass ihre Burger fertig sind, bevor sie die Theke verlassen, denn jeder der 8 Kassierer geht los und bereitet den Burger sofort zu, bevor er die nächste Bestellung entgegennimmt. + + + +Dann sind Sie endlich an der Reihe und bestellen zwei sehr leckere Burger für Ihren Schwarm und Sie. + +Sie zahlen 💸. + + + +Der Kassierer geht in die Küche. + +Sie warten, vor der Theke stehend 🕙, damit niemand außer Ihnen Ihre Burger entgegennimmt, da es keine Nummern für die Reihenfolge gibt. + + + +Da Sie und Ihr Schwarm damit beschäftigt sind, niemanden vor sich zu lassen, der Ihre Burger nimmt, wenn sie ankommen, können Sie Ihrem Schwarm keine Aufmerksamkeit schenken. 😞 + +Das ist „synchrone“ Arbeit, Sie sind mit dem Kassierer/Koch „synchronisiert“ 👨‍🍳. Sie müssen warten 🕙 und genau in dem Moment da sein, in dem der Kassierer/Koch 👨‍🍳 die Burger zubereitet hat und Ihnen gibt, sonst könnte jemand anderes sie nehmen. + + + +Dann kommt Ihr Kassierer/Koch 👨‍🍳 endlich mit Ihren Burgern zurück, nachdem Sie lange vor der Theke gewartet 🕙 haben. + + + +Sie nehmen Ihre Burger und gehen mit Ihrem Schwarm an den Tisch. + +Sie essen sie und sind fertig. ⏹ + + + +Es wurde nicht viel geredet oder geflirtet, da die meiste Zeit mit Warten 🕙 vor der Theke verbracht wurde. 😞 + +/// info | Info + +Die wunderschönen Illustrationen stammen von Ketrina Thompson. 🎨 + +/// + +--- + +In diesem Szenario der parallelen Hamburger sind Sie ein Computersystem / Programm 🤖 mit zwei Prozessoren (Sie und Ihr Schwarm), die beide warten 🕙 und ihre Aufmerksamkeit darauf verwenden, „lange Zeit vor der Theke zu warten“ 🕙. + +Der Fast-Food-Laden verfügt über 8 Prozessoren (Kassierer/Köche). Während der nebenläufige Burger-Laden nur zwei hatte (einen Kassierer und einen Koch). + +Dennoch ist das schlussendliche Benutzererlebnis nicht das Beste. 😞 + +--- + +Dies wäre die parallele äquivalente Geschichte für Hamburger. 🍔 + +Für ein „realeres“ Beispiel hierfür, stellen Sie sich eine Bank vor. + +Bis vor kurzem hatten die meisten Banken mehrere Kassierer 👨‍💼👨‍💼👨‍💼👨‍💼 und eine große Warteschlange 🕙🕙🕙🕙🕙🕙🕙🕙. + +Alle Kassierer erledigen die ganze Arbeit mit einem Kunden nach dem anderen 👨‍💼⏯. + +Und man muss lange in der Schlange warten 🕙 sonst kommt man nicht an die Reihe. + +Sie würden Ihren Schwarm 😍 wahrscheinlich nicht mitnehmen wollen, um Besorgungen bei der Bank zu erledigen 🏦. + +### Hamburger Schlussfolgerung { #burger-conclusion } + +In diesem Szenario „Fastfood-Burger mit Ihrem Schwarm“ ist es viel sinnvoller, ein nebenläufiges System zu haben ⏸🔀⏯, da viel gewartet wird 🕙. + +Das ist auch bei den meisten Webanwendungen der Fall. + +Viele, viele Benutzer, aber Ihr Server wartet 🕙 darauf, dass deren nicht so gute Internetverbindungen die Requests übermitteln. + +Und dann wieder warten 🕙, bis die Responses zurückkommen. + +Dieses „Warten“ 🕙 wird in Mikrosekunden gemessen, aber zusammenfassend lässt sich sagen, dass am Ende eine Menge gewartet wird. + +Deshalb ist es sehr sinnvoll, asynchronen ⏸🔀⏯ Code für Web-APIs zu verwenden. + +Diese Art der Asynchronität hat NodeJS populär gemacht (auch wenn NodeJS nicht parallel ist) und darin liegt die Stärke von Go als Programmiersprache. + +Und das ist das gleiche Leistungsniveau, das Sie mit **FastAPI** erhalten. + +Und da Sie Parallelität und Asynchronität gleichzeitig haben können, erzielen Sie eine höhere Performanz als die meisten getesteten NodeJS-Frameworks und sind mit Go auf Augenhöhe, einer kompilierten Sprache, die näher an C liegt (alles dank Starlette). + +### Ist Nebenläufigkeit besser als Parallelität? { #is-concurrency-better-than-parallelism } + +Nein! Das ist nicht die Moral der Geschichte. + +Nebenläufigkeit unterscheidet sich von Parallelität. Und sie ist besser bei **bestimmten** Szenarien, die viel Warten erfordern. Aus diesem Grund ist sie im Allgemeinen viel besser als Parallelität für die Entwicklung von Webanwendungen. Aber das stimmt nicht für alle Anwendungen. + +Um die Dinge auszugleichen, stellen Sie sich die folgende Kurzgeschichte vor: + +> Sie müssen ein großes, schmutziges Haus aufräumen. + +*Yup, das ist die ganze Geschichte*. + +--- + +Es gibt kein Warten 🕙, nur viel Arbeit an mehreren Stellen im Haus. + +Sie könnten wie im Hamburger-Beispiel hin- und herspringen, zuerst das Wohnzimmer, dann die Küche, aber da Sie auf nichts warten 🕙, sondern nur putzen und putzen, hätte das Hin- und Herspringen keine Auswirkungen. + +Es würde mit oder ohne Hin- und Herspringen (Nebenläufigkeit) die gleiche Zeit in Anspruch nehmen, um fertig zu werden, und Sie hätten die gleiche Menge an Arbeit erledigt. + +Aber wenn Sie in diesem Fall die acht Ex-Kassierer/Köche/jetzt Reinigungskräfte mitbringen würden und jeder von ihnen (plus Sie) würde einen Bereich des Hauses reinigen, könnten Sie die ganze Arbeit **parallel** erledigen, und würden mit dieser zusätzlichen Hilfe viel schneller fertig werden. + +In diesem Szenario wäre jede einzelne Reinigungskraft (einschließlich Ihnen) ein Prozessor, der seinen Teil der Arbeit erledigt. + +Und da die meiste Ausführungszeit durch tatsächliche Arbeit (anstatt durch Warten) in Anspruch genommen wird und die Arbeit in einem Computer von einer CPU erledigt wird, werden diese Probleme als „CPU-lastig“ („CPU bound“) bezeichnet. + +--- + +Typische Beispiele für CPU-lastige Vorgänge sind Dinge, die komplexe mathematische Berechnungen erfordern. + +Zum Beispiel: + +* **Audio-** oder **Bildbearbeitung**. +* **Computer Vision**: Ein Bild besteht aus Millionen von Pixeln, jedes Pixel hat 3 Werte / Farben, die Verarbeitung erfordert normalerweise, Berechnungen mit diesen Pixeln durchzuführen, alles zur gleichen Zeit. +* **Maschinelles Lernen**: Normalerweise sind viele „Matrix“- und „Vektor“-Multiplikationen erforderlich. Stellen Sie sich eine riesige Tabelle mit Zahlen vor, in der Sie alle Zahlen gleichzeitig multiplizieren. +* **Deep Learning**: Dies ist ein Teilgebiet des maschinellen Lernens, daher gilt das Gleiche. Es ist nur so, dass es nicht eine einzige Tabelle mit Zahlen zum Multiplizieren gibt, sondern eine riesige Menge davon, und in vielen Fällen verwendet man einen speziellen Prozessor, um diese Modelle zu erstellen und / oder zu verwenden. + +### Nebenläufigkeit + Parallelität: Web + maschinelles Lernen { #concurrency-parallelism-web-machine-learning } + +Mit **FastAPI** können Sie die Vorteile der Nebenläufigkeit nutzen, die in der Webentwicklung weit verbreitet ist (derselbe Hauptvorteil von NodeJS). + +Sie können aber auch die Vorteile von Parallelität und Multiprocessing (mehrere Prozesse werden parallel ausgeführt) für **CPU-lastige** Workloads wie in Systemen für maschinelles Lernen nutzen. + +Dies und die einfache Tatsache, dass Python die Hauptsprache für **Data Science**, maschinelles Lernen und insbesondere Deep Learning ist, machen FastAPI zu einem sehr passenden Werkzeug für Web-APIs und Anwendungen für Data Science / maschinelles Lernen (neben vielen anderen). + +Wie Sie diese Parallelität in der Produktion erreichen, erfahren Sie im Abschnitt über [Deployment](deployment/index.md){.internal-link target=_blank}. + +## `async` und `await` { #async-and-await } + +Moderne Versionen von Python verfügen über eine sehr intuitive Möglichkeit, asynchronen Code zu schreiben. Dadurch sieht es wie normaler „sequentieller“ Code aus und übernimmt im richtigen Moment das „Warten“ für Sie. + +Wenn es einen Vorgang gibt, der erfordert, dass gewartet wird, bevor die Ergebnisse zurückgegeben werden, und der diese neue Python-Funktionalität unterstützt, können Sie ihn wie folgt schreiben: + +```Python +burgers = await get_burgers(2) +``` + +Der Schlüssel hier ist das `await`. Es teilt Python mit, dass es warten ⏸ muss, bis `get_burgers(2)` seine Aufgabe erledigt hat 🕙, bevor die Ergebnisse in `burgers` gespeichert werden. Damit weiß Python, dass es in der Zwischenzeit etwas anderes tun kann 🔀 ⏯ (z. B. einen weiteren Request empfangen). + +Damit `await` funktioniert, muss es sich in einer Funktion befinden, die diese Asynchronität unterstützt. Dazu deklarieren Sie sie einfach mit `async def`: + +```Python hl_lines="1" +async def get_burgers(number: int): + # Mache hier etwas Asynchrones, um die Burger zu erstellen + return burgers +``` + +... statt mit `def`: + +```Python hl_lines="2" +# Dies ist nicht asynchron +def get_sequential_burgers(number: int): + # Mache hier etwas Sequentielles, um die Burger zu erstellen + return burgers +``` + +Mit `async def` weiß Python, dass es innerhalb dieser Funktion auf `await`-Ausdrücke achten muss und dass es die Ausführung dieser Funktion „anhalten“ ⏸ und etwas anderes tun kann 🔀, bevor es zurückkommt. + +Wenn Sie eine `async def`-Funktion aufrufen möchten, müssen Sie sie „erwarten“ („await“). Das folgende wird also nicht funktionieren: + +```Python +# Das funktioniert nicht, weil get_burgers definiert wurde mit: async def +burgers = get_burgers(2) +``` + +--- + +Wenn Sie also eine Bibliothek verwenden, die Ihnen sagt, dass Sie sie mit `await` aufrufen können, müssen Sie die *Pfadoperation-Funktionen*, die diese Bibliothek verwenden, mittels `async def` erstellen, wie in: + +```Python hl_lines="2-3" +@app.get('/burgers') +async def read_burgers(): + burgers = await get_burgers(2) + return burgers +``` + +### Weitere technische Details { #more-technical-details } + +Ihnen ist wahrscheinlich aufgefallen, dass `await` nur innerhalb von Funktionen verwendet werden kann, die mit `async def` definiert sind. + +Gleichzeitig müssen aber mit `async def` definierte Funktionen „erwartet“ („awaited“) werden. Daher können Funktionen mit `async def` nur innerhalb von Funktionen aufgerufen werden, die auch mit `async def` definiert sind. + +Daraus resultiert das Ei-und-Huhn-Problem: Wie ruft man die erste `async` Funktion auf? + +Wenn Sie mit **FastAPI** arbeiten, müssen Sie sich darüber keine Sorgen machen, da diese „erste“ Funktion Ihre *Pfadoperation-Funktion* sein wird und FastAPI weiß, was zu tun ist. + +Wenn Sie jedoch `async` / `await` ohne FastAPI verwenden möchten, können Sie dies auch tun. + +### Schreiben Sie Ihren eigenen asynchronen Code { #write-your-own-async-code } + +Starlette (und **FastAPI**) basieren auf AnyIO, was bedeutet, dass es sowohl kompatibel mit der Python-Standardbibliothek asyncio als auch mit Trio ist. + +Insbesondere können Sie AnyIO direkt verwenden für Ihre fortgeschrittenen nebenläufigen Anwendungsfälle, die fortgeschrittenere Muster in Ihrem eigenen Code erfordern. + +Und auch wenn Sie FastAPI nicht verwenden würden, könnten Sie Ihre eigenen asynchronen Anwendungen mit AnyIO schreiben, um hochkompatibel zu sein und dessen Vorteile zu nutzen (z. B. *strukturierte Nebenläufigkeit*). + +Ich habe eine weitere Bibliothek auf Basis von AnyIO erstellt, als dünne Schicht obendrauf, um die Typannotationen etwas zu verbessern und bessere **Autovervollständigung**, **Inline-Fehler** usw. zu erhalten. Sie hat auch eine freundliche Einführung und ein Tutorial, um Ihnen zu helfen, **Ihren eigenen asynchronen Code zu verstehen** und zu schreiben: Asyncer. Sie ist insbesondere nützlich, wenn Sie **asynchronen Code mit regulärem** (blockierendem/synchronem) Code kombinieren müssen. + +### Andere Formen von asynchronem Code { #other-forms-of-asynchronous-code } + +Diese Art der Verwendung von `async` und `await` ist in der Sprache relativ neu. + +Aber sie erleichtert die Arbeit mit asynchronem Code erheblich. + +Die gleiche Syntax (oder fast identisch) wurde kürzlich auch in moderne Versionen von JavaScript (im Browser und in NodeJS) aufgenommen. + +Davor war der Umgang mit asynchronem Code jedoch deutlich komplexer und schwieriger. + +In früheren Versionen von Python hätten Sie Threads oder Gevent verwenden können. Der Code ist jedoch viel komplexer zu verstehen, zu debuggen und nachzuvollziehen. + +In früheren Versionen von NodeJS / Browser JavaScript hätten Sie „Callbacks“ verwendet. Was zur „Callback-Hölle“ führt. + +## Coroutinen { #coroutines } + +**Coroutine** ist nur ein schicker Begriff für dasjenige, was von einer `async def`-Funktion zurückgegeben wird. Python weiß, dass es so etwas wie eine Funktion ist, die es starten kann und die irgendwann endet, aber auch dass sie pausiert ⏸ werden kann, wann immer darin ein `await` steht. + +Aber all diese Funktionalität der Verwendung von asynchronem Code mit `async` und `await` wird oft als Verwendung von „Coroutinen“ zusammengefasst. Es ist vergleichbar mit dem Hauptmerkmal von Go, den „Goroutinen“. + +## Fazit { #conclusion } + +Sehen wir uns den gleichen Satz von oben noch mal an: + +> Moderne Versionen von Python unterstützen **„asynchronen Code“** unter Verwendung sogenannter **„Coroutinen“** mithilfe der Syntax **`async` und `await`**. + +Das sollte jetzt mehr Sinn ergeben. ✨ + +All das ist es, was FastAPI (via Starlette) befeuert und es eine so beeindruckende Performanz haben lässt. + +## Sehr technische Details { #very-technical-details } + +/// warning | Achtung + +Das folgende können Sie wahrscheinlich überspringen. + +Dies sind sehr technische Details darüber, wie **FastAPI** unter der Haube funktioniert. + +Wenn Sie über gute technische Kenntnisse verfügen (Coroutinen, Threads, Blocking, usw.) und neugierig sind, wie FastAPI mit `async def`s im Vergleich zu normalen `def`s umgeht, fahren Sie fort. + +/// + +### Pfadoperation-Funktionen { #path-operation-functions } + +Wenn Sie eine *Pfadoperation-Funktion* mit normalem `def` anstelle von `async def` deklarieren, wird sie in einem externen Threadpool ausgeführt, der dann `await`et wird, anstatt direkt aufgerufen zu werden (da dies den Server blockieren würde). + +Wenn Sie von einem anderen asynchronen Framework kommen, das nicht auf die oben beschriebene Weise funktioniert, und Sie es gewohnt sind, triviale, nur-berechnende *Pfadoperation-Funktionen* mit einfachem `def` zu definieren, um einen geringfügigen Geschwindigkeitsgewinn (etwa 100 Nanosekunden) zu erzielen, beachten Sie bitte, dass der Effekt in **FastAPI** genau gegenteilig wäre. In solchen Fällen ist es besser, `async def` zu verwenden, es sei denn, Ihre *Pfadoperation-Funktionen* verwenden Code, der blockierende I/O-Operationen durchführt. + +Dennoch besteht in beiden Fällen eine gute Chance, dass **FastAPI** [immer noch schneller](index.md#performance){.internal-link target=_blank} als Ihr bisheriges Framework (oder zumindest damit vergleichbar) ist. + +### Abhängigkeiten { #dependencies } + +Das Gleiche gilt für [Abhängigkeiten](tutorial/dependencies/index.md){.internal-link target=_blank}. Wenn eine Abhängigkeit eine normale `def`-Funktion anstelle einer `async def` ist, wird sie im externen Threadpool ausgeführt. + +### Unterabhängigkeiten { #sub-dependencies } + +Sie können mehrere Abhängigkeiten und [Unterabhängigkeiten](tutorial/dependencies/sub-dependencies.md){.internal-link target=_blank} haben, die einander bedingen (als Parameter der Funktionsdefinitionen), einige davon könnten erstellt werden mit `async def` und einige mit normalem `def`. Es würde immer noch funktionieren, und diejenigen, die mit normalem `def` erstellt wurden, würden in einem externen Thread (vom Threadpool stammend) aufgerufen werden, anstatt `await`et zu werden. + +### Andere Hilfsfunktionen { #other-utility-functions } + +Jede andere Hilfsfunktion, die Sie direkt aufrufen, kann mit normalem `def` oder `async def` erstellt werden, und FastAPI beeinflusst nicht die Art und Weise, wie Sie sie aufrufen. + +Dies steht im Gegensatz zu den Funktionen, die FastAPI für Sie aufruft: *Pfadoperation-Funktionen* und Abhängigkeiten. + +Wenn Ihre Hilfsfunktion eine normale Funktion mit `def` ist, wird sie direkt aufgerufen (so wie Sie es in Ihrem Code schreiben), nicht in einem Threadpool. Wenn die Funktion mit `async def` erstellt wurde, sollten Sie sie `await`en, wenn Sie sie in Ihrem Code aufrufen. + +--- + +Nochmal, es handelt sich hier um sehr technische Details, die Ihnen helfen, falls Sie danach gesucht haben. + +Andernfalls liegen Sie richtig, wenn Sie sich an die Richtlinien aus dem obigen Abschnitt halten: In Eile?. diff --git a/docs/de/docs/benchmarks.md b/docs/de/docs/benchmarks.md new file mode 100644 index 0000000..09126c5 --- /dev/null +++ b/docs/de/docs/benchmarks.md @@ -0,0 +1,34 @@ +# Benchmarks { #benchmarks } + +Unabhängige TechEmpower-Benchmarks zeigen **FastAPI**-Anwendungen, die unter Uvicorn ausgeführt werden, als eines der schnellsten verfügbaren Python-Frameworks, nur unterhalb von Starlette und Uvicorn selbst (die intern von FastAPI verwendet werden). + +Aber bei der Betrachtung von Benchmarks und Vergleichen sollten Sie Folgendes beachten. + +## Benchmarks und Geschwindigkeit { #benchmarks-and-speed } + +Wenn Sie die Benchmarks ansehen, ist es üblich, dass mehrere Tools unterschiedlichen Typs als gleichwertig verglichen werden. + +Insbesondere dass Uvicorn, Starlette und FastAPI zusammen verglichen werden (neben vielen anderen Tools). + +Je einfacher das Problem, das durch das Tool gelöst wird, desto besser wird die Performanz sein. Und die meisten Benchmarks testen nicht die zusätzlichen Funktionen, die das Tool bietet. + +Die Hierarchie ist wie folgt: + +* **Uvicorn**: ein ASGI-Server + * **Starlette**: (verwendet Uvicorn) ein Web-Mikroframework + * **FastAPI**: (verwendet Starlette) ein API-Mikroframework mit mehreren zusätzlichen Funktionen zum Erstellen von APIs, mit Datenvalidierung, usw. + +* **Uvicorn**: + * Wird die beste Performanz haben, da außer dem Server selbst nicht viel zusätzlicher Code vorhanden ist. + * Sie würden eine Anwendung nicht direkt in Uvicorn schreiben. Das würde bedeuten, dass Ihr Code zumindest mehr oder weniger den gesamten von Starlette (oder **FastAPI**) bereitgestellten Code enthalten müsste. Und wenn Sie das täten, hätte Ihre endgültige Anwendung den gleichen Overhead wie bei der Verwendung eines Frameworks und der Minimierung Ihres Anwendungscodes und der Fehler. + * Wenn Sie Uvicorn vergleichen, vergleichen Sie es mit Anwendungsservern wie Daphne, Hypercorn, uWSGI, usw. +* **Starlette**: + * Wird nach Uvicorn die nächstbeste Performanz erbringen. Tatsächlich verwendet Starlette intern Uvicorn, um zu laufen. Daher kann es wahrscheinlich nur „langsamer“ als Uvicorn werden, weil mehr Code ausgeführt werden muss. + * Aber es bietet Ihnen die Werkzeuge, um einfache Webanwendungen zu erstellen, mit Routing basierend auf Pfaden, usw. + * Wenn Sie Starlette vergleichen, vergleichen Sie es mit Webframeworks (oder Mikroframeworks) wie Sanic, Flask, Django, usw. +* **FastAPI**: + * So wie Starlette Uvicorn verwendet und nicht schneller als dieses sein kann, verwendet **FastAPI** Starlette, sodass es nicht schneller als dieses sein kann. + * FastAPI bietet zusätzliche Funktionen auf Basis von Starlette. Funktionen, die Sie beim Erstellen von APIs fast immer benötigen, wie Datenvalidierung und Serialisierung. Und wenn Sie es verwenden, erhalten Sie kostenlose automatische Dokumentation (die automatische Dokumentation verursacht nicht einmal zusätzlichen Overhead für laufende Anwendungen, sie wird beim Starten generiert). + * Wenn Sie FastAPI nicht verwenden und stattdessen Starlette direkt (oder ein anderes Tool wie Sanic, Flask, Responder, usw.) verwenden würden, müssten Sie die gesamte Datenvalidierung und Serialisierung selbst implementieren. Ihre finale Anwendung hätte also immer noch den gleichen Overhead, als ob sie mit FastAPI erstellt worden wäre. Und in vielen Fällen ist diese Datenvalidierung und Serialisierung der größte Teil des in Anwendungen geschriebenen Codes. + * Durch die Verwendung von FastAPI sparen Sie also Entwicklungszeit, Fehler und Codezeilen und würden wahrscheinlich die gleiche Performanz (oder eine bessere) erzielen, die Sie hätten, wenn Sie es nicht verwenden würden (da Sie alles in Ihrem Code implementieren müssten). + * Wenn Sie FastAPI vergleichen, vergleichen Sie es mit einem Webanwendungs-Framework (oder einer Reihe von Tools), das Datenvalidierung, Serialisierung und Dokumentation bereitstellt, wie Flask-apispec, NestJS, Molten, usw. – Frameworks mit integrierter automatischer Datenvalidierung, Serialisierung und Dokumentation. diff --git a/docs/de/docs/deployment/cloud.md b/docs/de/docs/deployment/cloud.md new file mode 100644 index 0000000..ad3ff76 --- /dev/null +++ b/docs/de/docs/deployment/cloud.md @@ -0,0 +1,24 @@ +# FastAPI bei Cloudanbietern deployen { #deploy-fastapi-on-cloud-providers } + +Sie können praktisch **jeden Cloudanbieter** verwenden, um Ihre FastAPI-Anwendung bereitzustellen. + +In den meisten Fällen bieten die großen Cloudanbieter Anleitungen zum Deployment von FastAPI an. + +## FastAPI Cloud { #fastapi-cloud } + +**FastAPI Cloud** wurde vom selben Autor und Team hinter **FastAPI** entwickelt. + +Es vereinfacht den Prozess des **Erstellens**, **Deployens** und **Zugreifens** auf eine API mit minimalem Aufwand. + +Es bringt die gleiche **Developer-Experience** beim Erstellen von Apps mit FastAPI auch zum **Deployment** in der Cloud. 🎉 + +FastAPI Cloud ist der Hauptsponsor und Finanzierungsgeber für die *FastAPI and friends* Open-Source-Projekte. ✨ + +## Cloudanbieter – Sponsoren { #cloud-providers-sponsors } + +Einige andere Cloudanbieter ✨ [**sponsern FastAPI**](../help-fastapi.md#sponsor-the-author){.internal-link target=_blank} ✨ ebenfalls. 🙇 + +Sie könnten diese ebenfalls in Betracht ziehen, deren Anleitungen folgen und ihre Dienste ausprobieren: + +* Render +* Railway diff --git a/docs/de/docs/deployment/concepts.md b/docs/de/docs/deployment/concepts.md new file mode 100644 index 0000000..dde9228 --- /dev/null +++ b/docs/de/docs/deployment/concepts.md @@ -0,0 +1,321 @@ +# Deployment-Konzepte { #deployments-concepts } + +Bei dem Deployment – der Bereitstellung – einer **FastAPI**-Anwendung, oder eigentlich jeder Art von Web-API, gibt es mehrere Konzepte, die Sie wahrscheinlich interessieren, und mithilfe der Sie die **am besten geeignete** Methode zum **Deployment Ihrer Anwendung** finden können. + +Einige wichtige Konzepte sind: + +* Sicherheit – HTTPS +* Beim Hochfahren ausführen +* Neustarts +* Replikation (die Anzahl der laufenden Prozesse) +* Arbeitsspeicher +* Schritte vor dem Start + +Wir werden sehen, wie diese sich auf das **Deployment** auswirken. + +Letztendlich besteht das ultimative Ziel darin, **Ihre API-Clients** auf **sichere** Weise zu versorgen, um **Unterbrechungen** zu vermeiden und die **Rechenressourcen** (z. B. entfernte Server/virtuelle Maschinen) so effizient wie möglich zu nutzen. 🚀 + +Ich erzähle Ihnen hier etwas mehr über diese **Konzepte**, was Ihnen hoffentlich die **Intuition** gibt, die Sie benötigen, um zu entscheiden, wie Sie Ihre API in sehr unterschiedlichen Umgebungen deployen, möglicherweise sogar in **zukünftigen**, die jetzt noch nicht existieren. + +Durch die Berücksichtigung dieser Konzepte können Sie die beste Variante des Deployments **Ihrer eigenen APIs** **evaluieren und konzipieren**. + +In den nächsten Kapiteln werde ich Ihnen mehr **konkrete Rezepte** für das Deployment von FastAPI-Anwendungen geben. + +Aber schauen wir uns zunächst einmal diese grundlegenden **konzeptionellen Ideen** an. Diese Konzepte gelten auch für jede andere Art von Web-API. 💡 + +## Sicherheit – HTTPS { #security-https } + +Im [vorherigen Kapitel über HTTPS](https.md){.internal-link target=_blank} haben wir erfahren, wie HTTPS Verschlüsselung für Ihre API bereitstellt. + +Wir haben auch gesehen, dass HTTPS normalerweise von einer Komponente **außerhalb** Ihres Anwendungsservers bereitgestellt wird, einem **TLS-Terminierungsproxy**. + +Und es muss etwas geben, das für die **Erneuerung der HTTPS-Zertifikate** zuständig ist, es könnte sich um dieselbe Komponente handeln oder um etwas anderes. + +### Beispieltools für HTTPS { #example-tools-for-https } + +Einige der Tools, die Sie als TLS-Terminierungsproxy verwenden können, sind: + +* Traefik + * Handhabt automatisch Zertifikat-Erneuerungen ✨ +* Caddy + * Handhabt automatisch Zertifikat-Erneuerungen ✨ +* Nginx + * Mit einer externen Komponente wie Certbot für Zertifikat-Erneuerungen +* HAProxy + * Mit einer externen Komponente wie Certbot für Zertifikat-Erneuerungen +* Kubernetes mit einem Ingress Controller wie Nginx + * Mit einer externen Komponente wie cert-manager für Zertifikat-Erneuerungen +* Es wird intern von einem Cloud-Anbieter als Teil seiner Dienste verwaltet (siehe unten 👇) + +Eine andere Möglichkeit besteht darin, dass Sie einen **Cloud-Dienst** verwenden, der den größten Teil der Arbeit übernimmt, einschließlich der Einrichtung von HTTPS. Er könnte einige Einschränkungen haben oder Ihnen mehr in Rechnung stellen, usw. In diesem Fall müssten Sie jedoch nicht selbst einen TLS-Terminierungsproxy einrichten. + +In den nächsten Kapiteln zeige ich Ihnen einige konkrete Beispiele. + +--- + +Die nächsten zu berücksichtigenden Konzepte drehen sich dann um das Programm, das Ihre eigentliche API ausführt (z. B. Uvicorn). + +## Programm und Prozess { #program-and-process } + +Wir werden viel über den laufenden „**Prozess**“ sprechen, daher ist es nützlich, Klarheit darüber zu haben, was das bedeutet und was der Unterschied zum Wort „**Programm**“ ist. + +### Was ist ein Programm { #what-is-a-program } + +Das Wort **Programm** wird häufig zur Beschreibung vieler Dinge verwendet: + +* Der **Code**, den Sie schreiben, die **Python-Dateien**. +* Die **Datei**, die vom Betriebssystem **ausgeführt** werden kann, zum Beispiel: `python`, `python.exe` oder `uvicorn`. +* Ein bestimmtes Programm, während es auf dem Betriebssystem **läuft**, die CPU nutzt und Dinge im Arbeitsspeicher ablegt. Dies wird auch als **Prozess** bezeichnet. + +### Was ist ein Prozess { #what-is-a-process } + +Das Wort **Prozess** wird normalerweise spezifischer verwendet und bezieht sich nur auf das, was im Betriebssystem ausgeführt wird (wie im letzten Punkt oben): + +* Ein bestimmtes Programm, während es auf dem Betriebssystem **ausgeführt** wird. + * Dies bezieht sich weder auf die Datei noch auf den Code, sondern **speziell** auf das, was vom Betriebssystem **ausgeführt** und verwaltet wird. +* Jedes Programm, jeder Code **kann nur dann Dinge tun**, wenn er **ausgeführt** wird, wenn also ein **Prozess läuft**. +* Der Prozess kann von Ihnen oder vom Betriebssystem **terminiert** („beendet“, „gekillt“) werden. An diesem Punkt hört es auf zu laufen/ausgeführt zu werden und kann **keine Dinge mehr tun**. +* Hinter jeder Anwendung, die Sie auf Ihrem Computer ausführen, steckt ein Prozess, jedes laufende Programm, jedes Fenster usw. Und normalerweise laufen viele Prozesse **gleichzeitig**, während ein Computer eingeschaltet ist. +* Es können **mehrere Prozesse** desselben **Programms** gleichzeitig ausgeführt werden. + +Wenn Sie sich den „Task-Manager“ oder „Systemmonitor“ (oder ähnliche Tools) in Ihrem Betriebssystem ansehen, können Sie viele dieser laufenden Prozesse sehen. + +Und Sie werden beispielsweise wahrscheinlich feststellen, dass mehrere Prozesse dasselbe Browserprogramm ausführen (Firefox, Chrome, Edge, usw.). Normalerweise führen diese einen Prozess pro Browsertab sowie einige andere zusätzliche Prozesse aus. + + + +--- + +Nachdem wir nun den Unterschied zwischen den Begriffen **Prozess** und **Programm** kennen, sprechen wir weiter über das Deployment. + +## Beim Hochfahren ausführen { #running-on-startup } + +Wenn Sie eine Web-API erstellen, möchten Sie in den meisten Fällen, dass diese **immer läuft**, ununterbrochen, damit Ihre Clients immer darauf zugreifen können. Es sei denn natürlich, Sie haben einen bestimmten Grund, warum Sie möchten, dass diese nur in bestimmten Situationen ausgeführt wird. Meistens möchten Sie jedoch, dass sie ständig ausgeführt wird und **verfügbar** ist. + +### Auf einem entfernten Server { #in-a-remote-server } + +Wenn Sie einen entfernten Server (einen Cloud-Server, eine virtuelle Maschine, usw.) einrichten, können Sie am einfachsten `fastapi run` (welches Uvicorn verwendet) oder etwas Ähnliches manuell ausführen, genau wie bei der lokalen Entwicklung. + +Und es wird funktionieren und **während der Entwicklung** nützlich sein. + +Wenn Ihre Verbindung zum Server jedoch unterbrochen wird, wird der **laufende Prozess** wahrscheinlich abstürzen. + +Und wenn der Server neu gestartet wird (z. B. nach Updates oder Migrationen vom Cloud-Anbieter), werden Sie das wahrscheinlich **nicht bemerken**. Und deshalb wissen Sie nicht einmal, dass Sie den Prozess manuell neu starten müssen. Ihre API bleibt also einfach tot. 😱 + +### Beim Hochfahren automatisch ausführen { #run-automatically-on-startup } + +Im Allgemeinen möchten Sie wahrscheinlich, dass das Serverprogramm (z. B. Uvicorn) beim Hochfahren des Servers automatisch gestartet wird und kein **menschliches Eingreifen** erforderlich ist, sodass immer ein Prozess mit Ihrer API ausgeführt wird (z. B. Uvicorn, welches Ihre FastAPI-Anwendung ausführt). + +### Separates Programm { #separate-program } + +Um dies zu erreichen, haben Sie normalerweise ein **separates Programm**, welches sicherstellt, dass Ihre Anwendung beim Hochfahren ausgeführt wird. Und in vielen Fällen würde es auch sicherstellen, dass auch andere Komponenten oder Anwendungen ausgeführt werden, beispielsweise eine Datenbank. + +### Beispieltools zur Ausführung beim Hochfahren { #example-tools-to-run-at-startup } + +Einige Beispiele für Tools, die diese Aufgabe übernehmen können, sind: + +* Docker +* Kubernetes +* Docker Compose +* Docker im Schwarm-Modus +* Systemd +* Supervisor +* Es wird intern von einem Cloud-Anbieter im Rahmen seiner Dienste verwaltet +* Andere ... + +In den nächsten Kapiteln werde ich Ihnen konkretere Beispiele geben. + +## Neustart { #restarts } + +Ähnlich wie Sie sicherstellen möchten, dass Ihre Anwendung beim Hochfahren ausgeführt wird, möchten Sie wahrscheinlich auch sicherstellen, dass diese nach Fehlern **neu gestartet** wird. + +### Wir machen Fehler { #we-make-mistakes } + +Wir, als Menschen, machen ständig **Fehler**. Software hat fast *immer* **Bugs**, die an verschiedenen Stellen versteckt sind. 🐛 + +Und wir als Entwickler verbessern den Code ständig, wenn wir diese Bugs finden und neue Funktionen implementieren (und möglicherweise auch neue Bugs hinzufügen 😅). + +### Kleine Fehler automatisch handhaben { #small-errors-automatically-handled } + +Wenn beim Erstellen von Web-APIs mit FastAPI ein Fehler in unserem Code auftritt, wird FastAPI ihn normalerweise dem einzelnen Request zurückgeben, der den Fehler ausgelöst hat. 🛡 + +Der Client erhält für diesen Request einen **500 Internal Server Error**, aber die Anwendung arbeitet bei den nächsten Requests weiter, anstatt einfach komplett abzustürzen. + +### Größere Fehler – Abstürze { #bigger-errors-crashes } + +Dennoch kann es vorkommen, dass wir Code schreiben, der **die gesamte Anwendung zum Absturz bringt** und so zum Absturz von Uvicorn und Python führt. 💥 + +Und dennoch möchten Sie wahrscheinlich nicht, dass die Anwendung tot bleibt, weil an einer Stelle ein Fehler aufgetreten ist. Sie möchten wahrscheinlich, dass sie zumindest für die *Pfadoperationen*, die nicht fehlerhaft sind, **weiterläuft**. + +### Neustart nach Absturz { #restart-after-crash } + +Aber in den Fällen mit wirklich schwerwiegenden Fehlern, die den laufenden **Prozess** zum Absturz bringen, benötigen Sie eine externe Komponente, die den Prozess **neu startet**, zumindest ein paar Mal ... + +/// tip | Tipp + +... Obwohl es wahrscheinlich keinen Sinn macht, sie immer wieder neu zu starten, wenn die gesamte Anwendung einfach **sofort abstürzt**. Aber in diesen Fällen werden Sie es wahrscheinlich während der Entwicklung oder zumindest direkt nach dem Deployment bemerken. + +Konzentrieren wir uns also auf die Hauptfälle, in denen die Anwendung in bestimmten Fällen **in der Zukunft** völlig abstürzen könnte und es dann dennoch sinnvoll ist, sie neu zu starten. + +/// + +Sie möchten wahrscheinlich, dass eine **externe Komponente** für den Neustart Ihrer Anwendung verantwortlich ist, da zu diesem Zeitpunkt dieselbe Anwendung mit Uvicorn und Python bereits abgestürzt ist und es daher nichts im selben Code derselben Anwendung gibt, was etwas dagegen tun kann. + +### Beispieltools zum automatischen Neustart { #example-tools-to-restart-automatically } + +In den meisten Fällen wird dasselbe Tool, das zum **Ausführen des Programms beim Hochfahren** verwendet wird, auch für automatische **Neustarts** verwendet. + +Dies könnte zum Beispiel erledigt werden durch: + +* Docker +* Kubernetes +* Docker Compose +* Docker im Schwarm-Modus +* Systemd +* Supervisor +* Intern von einem Cloud-Anbieter im Rahmen seiner Dienste +* Andere ... + +## Replikation – Prozesse und Arbeitsspeicher { #replication-processes-and-memory } + +Wenn Sie eine FastAPI-Anwendung verwenden und ein Serverprogramm wie den `fastapi`-Befehl, der Uvicorn ausführt, kann **ein einzelner Prozess** an mehrere Clients gleichzeitig ausliefern. + +In vielen Fällen möchten Sie jedoch mehrere Workerprozesse gleichzeitig ausführen. + +### Mehrere Prozesse – Worker { #multiple-processes-workers } + +Wenn Sie mehr Clients haben, als ein einzelner Prozess verarbeiten kann (z. B. wenn die virtuelle Maschine nicht sehr groß ist) und die CPU des Servers **mehrere Kerne** hat, dann könnten **mehrere Prozesse** gleichzeitig mit derselben Anwendung laufen und alle Requests unter sich verteilen. + +Wenn Sie mit **mehreren Prozessen** dasselbe API-Programm ausführen, werden diese üblicherweise als **Worker** bezeichnet. + +### Workerprozesse und Ports { #worker-processes-and-ports } + +Erinnern Sie sich aus der Dokumentation [Über HTTPS](https.md){.internal-link target=_blank}, dass nur ein Prozess auf einer Kombination aus Port und IP-Adresse auf einem Server lauschen kann? + +Das ist immer noch wahr. + +Um also **mehrere Prozesse** gleichzeitig zu haben, muss es einen **einzelnen Prozess geben, der einen Port überwacht**, welcher dann die Kommunikation auf irgendeine Weise an jeden Workerprozess überträgt. + +### Arbeitsspeicher pro Prozess { #memory-per-process } + +Wenn das Programm nun Dinge in den Arbeitsspeicher lädt, zum Beispiel ein Modell für maschinelles Lernen in einer Variablen oder den Inhalt einer großen Datei in einer Variablen, verbraucht das alles **einen Teil des Arbeitsspeichers (RAM – Random Access Memory)** des Servers. + +Und mehrere Prozesse teilen sich normalerweise keinen Speicher. Das bedeutet, dass jeder laufende Prozess seine eigenen Dinge, eigenen Variablen und eigenen Speicher hat. Und wenn Sie in Ihrem Code viel Speicher verbrauchen, verbraucht **jeder Prozess** die gleiche Menge Speicher. + +### Serverspeicher { #server-memory } + +Wenn Ihr Code beispielsweise ein Machine-Learning-Modell mit **1 GB Größe** lädt und Sie einen Prozess mit Ihrer API ausführen, verbraucht dieser mindestens 1 GB RAM. Und wenn Sie **4 Prozesse** (4 Worker) starten, verbraucht jeder 1 GB RAM. Insgesamt verbraucht Ihre API also **4 GB RAM**. + +Und wenn Ihr entfernter Server oder Ihre virtuelle Maschine nur über 3 GB RAM verfügt, führt der Versuch, mehr als 4 GB RAM zu laden, zu Problemen. 🚨 + +### Mehrere Prozesse – Ein Beispiel { #multiple-processes-an-example } + +Im folgenden Beispiel gibt es einen **Manager-Prozess**, welcher zwei **Workerprozesse** startet und steuert. + +Dieser Manager-Prozess wäre wahrscheinlich derjenige, welcher der IP am **Port** lauscht. Und er würde die gesamte Kommunikation an die Workerprozesse weiterleiten. + +Diese Workerprozesse würden Ihre Anwendung ausführen, sie würden die Hauptberechnungen durchführen, um einen **Request** entgegenzunehmen und eine **Response** zurückzugeben, und sie würden alles, was Sie in Variablen einfügen, in den RAM laden. + + + +Und natürlich würden auf derselben Maschine neben Ihrer Anwendung wahrscheinlich **andere Prozesse** laufen. + +Ein interessantes Detail ist dabei, dass der Prozentsatz der von jedem Prozess verwendeten **CPU** im Laufe der Zeit stark **variieren** kann, der **Arbeitsspeicher (RAM)** jedoch normalerweise mehr oder weniger **stabil** bleibt. + +Wenn Sie eine API haben, die jedes Mal eine vergleichbare Menge an Berechnungen durchführt, und Sie viele Clients haben, dann wird die **CPU-Auslastung** wahrscheinlich *ebenfalls stabil sein* (anstatt ständig schnell zu steigen und zu fallen). + +### Beispiele für Replikation-Tools und -Strategien { #examples-of-replication-tools-and-strategies } + +Es gibt mehrere Ansätze, um dies zu erreichen, und ich werde Ihnen in den nächsten Kapiteln mehr über bestimmte Strategien erzählen, beispielsweise wenn es um Docker und Container geht. + +Die wichtigste zu berücksichtigende Einschränkung besteht darin, dass es eine **einzelne** Komponente geben muss, welche die **öffentliche IP** auf dem **Port** verwaltet. Und dann muss diese irgendwie die Kommunikation **weiterleiten**, an die replizierten **Prozesse/Worker**. + +Hier sind einige mögliche Kombinationen und Strategien: + +* **Uvicorn** mit `--workers` + * Ein Uvicorn-**Prozessmanager** würde der **IP** am **Port** lauschen, und er würde **mehrere Uvicorn-Workerprozesse** starten. +* **Kubernetes** und andere verteilte **Containersysteme** + * Etwas in der **Kubernetes**-Ebene würde die **IP** und den **Port** abhören. Die Replikation hätte **mehrere Container**, in jedem wird jeweils **ein Uvicorn-Prozess** ausgeführt. +* **Cloud-Dienste**, welche das für Sie erledigen + * Der Cloud-Dienst wird wahrscheinlich **die Replikation für Sie übernehmen**. Er würde Sie möglicherweise **einen auszuführenden Prozess** oder ein **zu verwendendes Container-Image** definieren lassen, in jedem Fall wäre es höchstwahrscheinlich **ein einzelner Uvicorn-Prozess**, und der Cloud-Dienst wäre auch verantwortlich für die Replikation. + +/// tip | Tipp + +Machen Sie sich keine Sorgen, wenn einige dieser Punkte zu **Containern**, Docker oder Kubernetes noch nicht viel Sinn ergeben. + +Ich werde Ihnen in einem zukünftigen Kapitel mehr über Container-Images, Docker, Kubernetes, usw. erzählen: [FastAPI in Containern – Docker](docker.md){.internal-link target=_blank}. + +/// + +## Schritte vor dem Start { #previous-steps-before-starting } + +Es gibt viele Fälle, in denen Sie, **bevor Sie Ihre Anwendung starten**, einige Schritte ausführen möchten. + +Beispielsweise möchten Sie möglicherweise **Datenbankmigrationen** ausführen. + +In den meisten Fällen möchten Sie diese Schritte jedoch nur **einmal** ausführen. + +Sie möchten also einen **einzelnen Prozess** haben, um diese **Vorab-Schritte** auszuführen, bevor Sie die Anwendung starten. + +Und Sie müssen sicherstellen, dass es sich um einen einzelnen Prozess handelt, der die Vorab-Schritte ausführt, *auch* wenn Sie anschließend **mehrere Prozesse** (mehrere Worker) für die Anwendung selbst starten. Wenn diese Schritte von **mehreren Prozessen** ausgeführt würden, würden diese die Arbeit **verdoppeln**, indem sie sie **parallel** ausführen, und wenn es sich bei den Schritten um etwas Delikates wie eine Datenbankmigration handelt, könnte das miteinander Konflikte verursachen. + +Natürlich gibt es Fälle, in denen es kein Problem darstellt, die Vorab-Schritte mehrmals auszuführen. In diesem Fall ist die Handhabung viel einfacher. + +/// tip | Tipp + +Bedenken Sie außerdem, dass Sie, abhängig von Ihrer Einrichtung, in manchen Fällen **gar keine Vorab-Schritte** benötigen, bevor Sie die Anwendung starten. + +In diesem Fall müssen Sie sich darüber keine Sorgen machen. 🤷 + +/// + +### Beispiele für Strategien für Vorab-Schritte { #examples-of-previous-steps-strategies } + +Es hängt **stark** davon ab, wie Sie **Ihr System deployen**, und hängt wahrscheinlich mit der Art und Weise zusammen, wie Sie Programme starten, Neustarts durchführen, usw. + +Hier sind einige mögliche Ideen: + +* Ein „Init-Container“ in Kubernetes, der vor Ihrem Anwendungs-Container ausgeführt wird +* Ein Bash-Skript, das die Vorab-Schritte ausführt und dann Ihre Anwendung startet + * Sie benötigen immer noch eine Möglichkeit, *dieses* Bash-Skript zu starten/neu zu starten, Fehler zu erkennen, usw. + +/// tip | Tipp + +Konkretere Beispiele hierfür mit Containern gebe ich Ihnen in einem späteren Kapitel: [FastAPI in Containern – Docker](docker.md){.internal-link target=_blank}. + +/// + +## Ressourcennutzung { #resource-utilization } + +Ihr(e) Server ist (sind) eine **Ressource**, welche Sie mit Ihren Programmen, der Rechenzeit auf den CPUs und dem verfügbaren RAM-Speicher verbrauchen oder **nutzen** können. + +Wie viele Systemressourcen möchten Sie verbrauchen/nutzen? Sie mögen „nicht viel“ denken, aber in Wirklichkeit möchten Sie tatsächlich **so viel wie möglich ohne Absturz** verwenden. + +Wenn Sie für drei Server bezahlen, aber nur wenig von deren RAM und CPU nutzen, **verschwenden Sie wahrscheinlich Geld** 💸 und wahrscheinlich **Strom für den Server** 🌎, usw. + +In diesem Fall könnte es besser sein, nur zwei Server zu haben und einen höheren Prozentsatz von deren Ressourcen zu nutzen (CPU, Arbeitsspeicher, Festplatte, Netzwerkbandbreite, usw.). + +Wenn Sie andererseits über zwei Server verfügen und **100 % ihrer CPU und ihres RAM** nutzen, wird irgendwann ein Prozess nach mehr Speicher fragen und der Server muss die Festplatte als „Speicher“ verwenden (was tausendmal langsamer sein kann) oder er könnte sogar **abstürzen**. Oder ein Prozess muss möglicherweise einige Berechnungen durchführen und müsste warten, bis die CPU wieder frei ist. + +In diesem Fall wäre es besser, **einen zusätzlichen Server** zu besorgen und einige Prozesse darauf auszuführen, damit alle über **genug RAM und CPU-Zeit** verfügen. + +Es besteht auch die Möglichkeit, dass es aus irgendeinem Grund zu **Spitzen** in der Nutzung Ihrer API kommt. Vielleicht ist diese viral gegangen, oder vielleicht haben andere Dienste oder Bots damit begonnen, sie zu nutzen. Und vielleicht möchten Sie in solchen Fällen über zusätzliche Ressourcen verfügen, um auf der sicheren Seite zu sein. + +Sie können eine **beliebige Zahl** festlegen, um beispielsweise eine Ressourcenauslastung zwischen **50 % und 90 %** anzustreben. Der Punkt ist, dass dies wahrscheinlich die wichtigen Dinge sind, die Sie messen und verwenden sollten, um Ihre Deployments zu optimieren. + +Sie können einfache Tools wie `htop` verwenden, um die in Ihrem Server verwendete CPU und den RAM oder die von jedem Prozess verwendete Menge anzuzeigen. Oder Sie können komplexere Überwachungstools verwenden, die möglicherweise auf mehrere Server usw. verteilt sind. + +## Zusammenfassung { #recap } + +Sie haben hier einige der wichtigsten Konzepte gelesen, die Sie wahrscheinlich berücksichtigen müssen, wenn Sie entscheiden, wie Sie Ihre Anwendung deployen: + +* Sicherheit – HTTPS +* Beim Hochfahren ausführen +* Neustarts +* Replikation (die Anzahl der laufenden Prozesse) +* Arbeitsspeicher +* Schritte vor dem Start + +Das Verständnis dieser Ideen und deren Anwendung sollte Ihnen die nötige Intuition vermitteln, um bei der Konfiguration und Optimierung Ihrer Deployments Entscheidungen zu treffen. 🤓 + +In den nächsten Abschnitten gebe ich Ihnen konkretere Beispiele für mögliche Strategien, die Sie verfolgen können. 🚀 diff --git a/docs/de/docs/deployment/docker.md b/docs/de/docs/deployment/docker.md new file mode 100644 index 0000000..d4b7463 --- /dev/null +++ b/docs/de/docs/deployment/docker.md @@ -0,0 +1,620 @@ +# FastAPI in Containern – Docker { #fastapi-in-containers-docker } + +Beim Deployment von FastAPI-Anwendungen besteht ein gängiger Ansatz darin, ein **Linux-Containerimage** zu erstellen. Normalerweise erfolgt dies mit **Docker**. Sie können dieses Containerimage dann auf eine von mehreren möglichen Arten deployen. + +Die Verwendung von Linux-Containern bietet mehrere Vorteile, darunter **Sicherheit**, **Replizierbarkeit**, **Einfachheit** und andere. + +/// tip | Tipp + +Sie haben es eilig und kennen sich bereits aus? Springen Sie zum [`Dockerfile` unten 👇](#build-a-docker-image-for-fastapi). + +/// + +
+Dockerfile-Vorschau 👀 + +```Dockerfile +FROM python:3.9 + +WORKDIR /code + +COPY ./requirements.txt /code/requirements.txt + +RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt + +COPY ./app /code/app + +CMD ["fastapi", "run", "app/main.py", "--port", "80"] + +# Wenn Sie hinter einem Proxy wie Nginx oder Traefik sind, fügen Sie --proxy-headers hinzu +# CMD ["fastapi", "run", "app/main.py", "--port", "80", "--proxy-headers"] +``` + +
+ +## Was ist ein Container { #what-is-a-container } + +Container (hauptsächlich Linux-Container) sind eine sehr **leichtgewichtige** Möglichkeit, Anwendungen einschließlich aller ihrer Abhängigkeiten und erforderlichen Dateien zu verpacken und sie gleichzeitig von anderen Containern (anderen Anwendungen oder Komponenten) im selben System isoliert zu halten. + +Linux-Container werden mit demselben Linux-Kernel des Hosts (Maschine, virtuellen Maschine, Cloud-Servers, usw.) ausgeführt. Das bedeutet einfach, dass sie sehr leichtgewichtig sind (im Vergleich zu vollständigen virtuellen Maschinen, die ein gesamtes Betriebssystem emulieren). + +Auf diese Weise verbrauchen Container **wenig Ressourcen**, eine Menge vergleichbar mit der direkten Ausführung der Prozesse (eine virtuelle Maschine würde viel mehr verbrauchen). + +Container verfügen außerdem über ihre eigenen **isoliert** laufenden Prozesse (üblicherweise nur einen Prozess), über ihr eigenes Dateisystem und ihr eigenes Netzwerk, was Deployment, Sicherheit, Entwicklung usw. vereinfacht. + +## Was ist ein Containerimage { #what-is-a-container-image } + +Ein **Container** wird von einem **Containerimage** ausgeführt. + +Ein Containerimage ist eine **statische** Version aller Dateien, Umgebungsvariablen und des Standardbefehls/-programms, welche in einem Container vorhanden sein sollten. **Statisch** bedeutet hier, dass das Container-**Image** nicht läuft, nicht ausgeführt wird, sondern nur die gepackten Dateien und Metadaten enthält. + +Im Gegensatz zu einem „**Containerimage**“, bei dem es sich um den gespeicherten statischen Inhalt handelt, bezieht sich ein „**Container**“ normalerweise auf die laufende Instanz, das Ding, das **ausgeführt** wird. + +Wenn der **Container** gestartet und ausgeführt wird (gestartet von einem **Containerimage**), kann er Dateien, Umgebungsvariablen usw. erstellen oder ändern. Diese Änderungen sind nur in diesem Container vorhanden, nicht im zugrunde liegenden Containerimage (werden nicht auf der Festplatte gespeichert). + +Ein Containerimage ist vergleichbar mit der **Programmdatei** und ihrem Inhalt, z. B. `python` und eine Datei `main.py`. + +Und der **Container** selbst (im Gegensatz zum **Containerimage**) ist die tatsächlich laufende Instanz des Images, vergleichbar mit einem **Prozess**. Tatsächlich läuft ein Container nur, wenn er einen **laufenden Prozess** hat (und normalerweise ist es nur ein einzelner Prozess). Der Container stoppt, wenn kein Prozess darin ausgeführt wird. + +## Containerimages { #container-images } + +Docker ist eines der wichtigsten Tools zum Erstellen und Verwalten von **Containerimages** und **Containern**. + +Und es gibt einen öffentlichen Docker Hub mit vorgefertigten **offiziellen Containerimages** für viele Tools, Umgebungen, Datenbanken und Anwendungen. + +Beispielsweise gibt es ein offizielles Python-Image. + +Und es gibt viele andere Images für verschiedene Dinge wie Datenbanken, zum Beispiel für: + +* PostgreSQL +* MySQL +* MongoDB +* Redis, usw. + +Durch die Verwendung eines vorgefertigten Containerimages ist es sehr einfach, verschiedene Tools zu **kombinieren** und zu verwenden. Zum Beispiel, um eine neue Datenbank auszuprobieren. In den meisten Fällen können Sie die **offiziellen Images** verwenden und diese einfach mit Umgebungsvariablen konfigurieren. + +Auf diese Weise können Sie in vielen Fällen etwas über Container und Docker lernen und dieses Wissen mit vielen verschiedenen Tools und Komponenten wiederverwenden. + +Sie würden also **mehrere Container** mit unterschiedlichen Dingen ausführen, wie einer Datenbank, einer Python-Anwendung, einem Webserver mit einer React-Frontend-Anwendung, und diese über ihr internes Netzwerk miteinander verbinden. + +In alle Containerverwaltungssysteme (wie Docker oder Kubernetes) sind diese Netzwerkfunktionen integriert. + +## Container und Prozesse { #containers-and-processes } + +Ein **Containerimage** enthält normalerweise in seinen Metadaten das Standardprogramm oder den Standardbefehl, der ausgeführt werden soll, wenn der **Container** gestartet wird, sowie die Parameter, die an dieses Programm übergeben werden sollen. Sehr ähnlich zu dem, was wäre, wenn es über die Befehlszeile gestartet werden würde. + +Wenn ein **Container** gestartet wird, führt er diesen Befehl/dieses Programm aus (Sie können ihn jedoch überschreiben und einen anderen Befehl/ein anderes Programm ausführen lassen). + +Ein Container läuft, solange der **Hauptprozess** (Befehl oder Programm) läuft. + +Ein Container hat normalerweise einen **einzelnen Prozess**, aber es ist auch möglich, Unterprozesse vom Hauptprozess aus zu starten, und auf diese Weise haben Sie **mehrere Prozesse** im selben Container. + +Es ist jedoch nicht möglich, einen laufenden Container, ohne **mindestens einen laufenden Prozess** zu haben. Wenn der Hauptprozess stoppt, stoppt der Container. + +## Ein Docker-Image für FastAPI erstellen { #build-a-docker-image-for-fastapi } + +Okay, wollen wir jetzt etwas bauen! 🚀 + +Ich zeige Ihnen, wie Sie ein **Docker-Image** für FastAPI **von Grund auf** erstellen, basierend auf dem **offiziellen Python**-Image. + +Das ist, was Sie in **den meisten Fällen** tun möchten, zum Beispiel: + +* Bei Verwendung von **Kubernetes** oder ähnlichen Tools +* Beim Betrieb auf einem **Raspberry Pi** +* Bei Verwendung eines Cloud-Dienstes, der ein Containerimage für Sie ausführt, usw. + +### Paketanforderungen { #package-requirements } + +Normalerweise befinden sich die **Paketanforderungen** für Ihre Anwendung in einer Datei. + +Dies hängt hauptsächlich von dem Tool ab, mit dem Sie diese Anforderungen **installieren**. + +Die gebräuchlichste Methode besteht darin, eine Datei `requirements.txt` mit den Namen der Packages und deren Versionen zu erstellen, eine pro Zeile. + +Sie würden natürlich die gleichen Ideen verwenden, die Sie in [Über FastAPI-Versionen](versions.md){.internal-link target=_blank} gelesen haben, um die Versionsbereiche festzulegen. + +Ihre `requirements.txt` könnte beispielsweise so aussehen: + +``` +fastapi[standard]>=0.113.0,<0.114.0 +pydantic>=2.7.0,<3.0.0 +``` + +Und normalerweise würden Sie diese Paketabhängigkeiten mit `pip` installieren, zum Beispiel: + +
+ +```console +$ pip install -r requirements.txt +---> 100% +Successfully installed fastapi pydantic +``` + +
+ +/// info | Info + +Es gibt andere Formate und Tools zum Definieren und Installieren von Paketabhängigkeiten. + +/// + +### Den **FastAPI**-Code erstellen { #create-the-fastapi-code } + +* Erstellen Sie ein `app`-Verzeichnis und betreten Sie es. +* Erstellen Sie eine leere Datei `__init__.py`. +* Erstellen Sie eine `main.py`-Datei mit: + +```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} +``` + +### Dockerfile { #dockerfile } + +Erstellen Sie nun im selben Projektverzeichnis eine Datei `Dockerfile` mit: + +```{ .dockerfile .annotate } +# (1)! +FROM python:3.9 + +# (2)! +WORKDIR /code + +# (3)! +COPY ./requirements.txt /code/requirements.txt + +# (4)! +RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt + +# (5)! +COPY ./app /code/app + +# (6)! +CMD ["fastapi", "run", "app/main.py", "--port", "80"] +``` + +1. Beginne mit dem offiziellen Python-Basisimage. + +2. Setze das aktuelle Arbeitsverzeichnis auf `/code`. + + Hier platzieren wir die Datei `requirements.txt` und das Verzeichnis `app`. + +3. Kopiere die Datei mit den Paketanforderungen in das Verzeichnis `/code`. + + Kopieren Sie zuerst **nur** die Datei mit den Anforderungen, nicht den Rest des Codes. + + Da sich diese Datei **nicht oft ändert**, erkennt Docker das und verwendet den **Cache** für diesen Schritt, wodurch der Cache auch für den nächsten Schritt aktiviert wird. + +4. Installiere die Paketabhängigkeiten aus der Anforderungsdatei. + + Die Option `--no-cache-dir` weist `pip` an, die heruntergeladenen Pakete nicht lokal zu speichern, da dies nur benötigt wird, sollte `pip` erneut ausgeführt werden, um dieselben Pakete zu installieren, aber das ist beim Arbeiten mit Containern nicht der Fall. + + /// note | Hinweis + + Das `--no-cache-dir` bezieht sich nur auf `pip`, es hat nichts mit Docker oder Containern zu tun. + + /// + + Die Option `--upgrade` weist `pip` an, die Packages zu aktualisieren, wenn sie bereits installiert sind. + + Da der vorherige Schritt des Kopierens der Datei vom **Docker-Cache** erkannt werden konnte, wird dieser Schritt auch **den Docker-Cache verwenden**, sofern verfügbar. + + Durch die Verwendung des Caches in diesem Schritt **sparen** Sie viel **Zeit**, wenn Sie das Image während der Entwicklung immer wieder erstellen, anstatt **jedes Mal** alle Abhängigkeiten **herunterzuladen und zu installieren**. + +5. Kopiere das Verzeichnis `./app` in das Verzeichnis `/code`. + + Da hier der gesamte Code enthalten ist, der sich **am häufigsten ändert**, wird der Docker-**Cache** nicht ohne weiteres für diesen oder andere **folgende Schritte** verwendet. + + Daher ist es wichtig, dies **nahe dem Ende** des `Dockerfile`s zu platzieren, um die Erstellungszeiten des Containerimages zu optimieren. + +6. Lege den **Befehl** fest, um `fastapi run` zu nutzen, welches Uvicorn darunter verwendet. + + `CMD` nimmt eine Liste von Zeichenfolgen entgegen. Jede dieser Zeichenfolgen entspricht dem, was Sie durch Leerzeichen getrennt in die Befehlszeile eingeben würden. + + Dieser Befehl wird aus dem **aktuellen Arbeitsverzeichnis** ausgeführt, dem gleichen `/code`-Verzeichnis, das Sie oben mit `WORKDIR /code` festgelegt haben. + +/// tip | Tipp + +Lernen Sie, was jede Zeile bewirkt, indem Sie auf die Zahlenblasen im Code klicken. 👆 + +/// + +/// warning | Achtung + +Stellen Sie sicher, dass Sie **immer** die **exec form** der Anweisung `CMD` verwenden, wie unten erläutert. + +/// + +#### `CMD` – Exec Form verwenden { #use-cmd-exec-form } + +Die `CMD` Docker-Anweisung kann in zwei Formen geschrieben werden: + +✅ **Exec** form: + +```Dockerfile +# ✅ Tun Sie das +CMD ["fastapi", "run", "app/main.py", "--port", "80"] +``` + +⛔️ **Shell** form: + +```Dockerfile +# ⛔️ Tun Sie das nicht +CMD fastapi run app/main.py --port 80 +``` + +Achten Sie darauf, stets die **exec** form zu verwenden, um sicherzustellen, dass FastAPI ordnungsgemäß heruntergefahren wird und [Lifespan-Events](../advanced/events.md){.internal-link target=_blank} ausgelöst werden. + +Sie können mehr darüber in der Docker-Dokumentation für Shell und Exec Form lesen. + +Dies kann insbesondere bei der Verwendung von `docker compose` deutlich spürbar sein. Sehen Sie sich diesen Abschnitt in der Docker Compose-FAQ für technische Details an: Warum benötigen meine Dienste 10 Sekunden, um neu erstellt oder gestoppt zu werden?. + +#### Verzeichnisstruktur { #directory-structure } + +Sie sollten jetzt eine Verzeichnisstruktur wie diese haben: + +``` +. +├── app +│   ├── __init__.py +│ └── main.py +├── Dockerfile +└── requirements.txt +``` + +#### Hinter einem TLS-Terminierungsproxy { #behind-a-tls-termination-proxy } + +Wenn Sie Ihren Container hinter einem TLS-Terminierungsproxy (Load Balancer) wie Nginx oder Traefik ausführen, fügen Sie die Option `--proxy-headers` hinzu. Das sagt Uvicorn (durch das FastAPI CLI), den von diesem Proxy gesendeten Headern zu vertrauen und dass die Anwendung hinter HTTPS ausgeführt wird, usw. + +```Dockerfile +CMD ["fastapi", "run", "app/main.py", "--proxy-headers", "--port", "80"] +``` + +#### Docker-Cache { #docker-cache } + +In diesem `Dockerfile` gibt es einen wichtigen Trick: Wir kopieren zuerst die **Datei nur mit den Abhängigkeiten**, nicht den Rest des Codes. Lassen Sie mich Ihnen erklären, warum. + +```Dockerfile +COPY ./requirements.txt /code/requirements.txt +``` + +Docker und andere Tools **erstellen** diese Containerimages **inkrementell**, fügen **eine Ebene über der anderen** hinzu, beginnend am Anfang des `Dockerfile`s und fügen alle durch die einzelnen Anweisungen des `Dockerfile`s erstellten Dateien hinzu. + +Docker und ähnliche Tools verwenden beim Erstellen des Images auch einen **internen Cache**. Wenn sich eine Datei seit der letzten Erstellung des Containerimages nicht geändert hat, wird **dieselbe Ebene wiederverwendet**, die beim letzten Mal erstellt wurde, anstatt die Datei erneut zu kopieren und eine neue Ebene von Grund auf zu erstellen. + +Das bloße Vermeiden des Kopierens von Dateien führt nicht unbedingt zu einer großen Verbesserung, aber da der Cache für diesen Schritt verwendet wurde, kann **der Cache für den nächsten Schritt verwendet werden**. Beispielsweise könnte der Cache verwendet werden für die Anweisung, welche die Abhängigkeiten installiert mit: + +```Dockerfile +RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt +``` + +Die Datei mit den Paketanforderungen wird sich **nicht häufig ändern**. Wenn Docker also nur diese Datei kopiert, kann es für diesen Schritt **den Cache verwenden**. + +Und dann kann Docker **den Cache für den nächsten Schritt verwenden**, der diese Abhängigkeiten herunterlädt und installiert. Und hier **sparen wir viel Zeit**. ✨ ... und vermeiden die Langeweile beim Warten. 😪😆 + +Das Herunterladen und Installieren der Paketabhängigkeiten **könnte Minuten dauern**, aber die Verwendung des **Cache** würde höchstens **Sekunden** dauern. + +Und da Sie das Containerimage während der Entwicklung immer wieder erstellen würden, um zu überprüfen, ob Ihre Codeänderungen funktionieren, würde dies viel Zeit sparen. + +Dann, gegen Ende des `Dockerfile`s, kopieren wir den gesamten Code. Da sich der **am häufigsten ändert**, platzieren wir das am Ende, da fast immer alles nach diesem Schritt nicht mehr in der Lage sein wird, den Cache zu verwenden. + +```Dockerfile +COPY ./app /code/app +``` + +### Das Docker-Image erstellen { #build-the-docker-image } + +Nachdem nun alle Dateien vorhanden sind, erstellen wir das Containerimage. + +* Gehen Sie zum Projektverzeichnis (dort, wo sich Ihr `Dockerfile` und Ihr `app`-Verzeichnis befindet). +* Erstellen Sie Ihr FastAPI-Image: + +
+ +```console +$ docker build -t myimage . + +---> 100% +``` + +
+ +/// tip | Tipp + +Beachten Sie das `.` am Ende, es entspricht `./` und teilt Docker mit, welches Verzeichnis zum Erstellen des Containerimages verwendet werden soll. + +In diesem Fall handelt es sich um dasselbe aktuelle Verzeichnis (`.`). + +/// + +### Den Docker-Container starten { #start-the-docker-container } + +* Führen Sie einen Container basierend auf Ihrem Image aus: + +
+ +```console +$ docker run -d --name mycontainer -p 80:80 myimage +``` + +
+ +## Es testen { #check-it } + +Sie sollten es in der URL Ihres Docker-Containers überprüfen können, zum Beispiel: http://192.168.99.100/items/5?q=somequery oder http://127.0.0.1/items/5?q=somequery (oder gleichwertig, unter Verwendung Ihres Docker-Hosts). + +Sie werden etwas sehen wie: + +```JSON +{"item_id": 5, "q": "somequery"} +``` + +## Interaktive API-Dokumentation { #interactive-api-docs } + +Jetzt können Sie auf http://192.168.99.100/docs oder http://127.0.0.1/docs gehen (oder ähnlich, unter Verwendung Ihres Docker-Hosts). + +Sie sehen die automatische interaktive API-Dokumentation (bereitgestellt von Swagger UI): + +![Swagger-Oberfläche](https://fastapi.tiangolo.com/img/index/index-01-swagger-ui-simple.png) + +## Alternative API-Dokumentation { #alternative-api-docs } + +Sie können auch auf http://192.168.99.100/redoc oder http://127.0.0.1/redoc gehen (oder ähnlich, unter Verwendung Ihres Docker-Hosts). + +Sie sehen die alternative automatische Dokumentation (bereitgestellt von ReDoc): + +![ReDoc](https://fastapi.tiangolo.com/img/index/index-02-redoc-simple.png) + +## Ein Docker-Image mit einem Single-File-FastAPI erstellen { #build-a-docker-image-with-a-single-file-fastapi } + +Wenn Ihr FastAPI eine einzelne Datei ist, zum Beispiel `main.py` ohne ein `./app`-Verzeichnis, könnte Ihre Dateistruktur wie folgt aussehen: + +``` +. +├── Dockerfile +├── main.py +└── requirements.txt +``` + +Dann müssten Sie nur noch die entsprechenden Pfade ändern, um die Datei im `Dockerfile` zu kopieren: + +```{ .dockerfile .annotate hl_lines="10 13" } +FROM python:3.9 + +WORKDIR /code + +COPY ./requirements.txt /code/requirements.txt + +RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt + +# (1)! +COPY ./main.py /code/ + +# (2)! +CMD ["fastapi", "run", "main.py", "--port", "80"] +``` + +1. Kopiere die Datei `main.py` direkt in das Verzeichnis `/code` (ohne ein Verzeichnis `./app`). + +2. Verwenden Sie `fastapi run`, um Ihre Anwendung in der einzelnen Datei `main.py` bereitzustellen. + +Indem Sie die Datei an `fastapi run` übergeben, wird automatisch erkannt, dass es sich um eine einzelne Datei handelt und nicht um den Teil eines Packages, und es wird wissen, wie es zu importieren ist und Ihre FastAPI-App bereitzustellen. 😎 + +## Deployment-Konzepte { #deployment-concepts } + +Lassen Sie uns noch einmal über einige der gleichen [Deployment-Konzepte](concepts.md){.internal-link target=_blank} in Bezug auf Container sprechen. + +Container sind hauptsächlich ein Werkzeug, um den Prozess des **Erstellens und Deployments** einer Anwendung zu vereinfachen, sie erzwingen jedoch keinen bestimmten Ansatz für die Handhabung dieser **Deployment-Konzepte**, und es gibt mehrere mögliche Strategien. + +Die **gute Nachricht** ist, dass es mit jeder unterschiedlichen Strategie eine Möglichkeit gibt, alle Deployment-Konzepte abzudecken. 🎉 + +Sehen wir uns diese **Deployment-Konzepte** im Hinblick auf Container noch einmal an: + +* HTTPS +* Beim Hochfahren ausführen +* Neustarts +* Replikation (die Anzahl der laufenden Prozesse) +* Arbeitsspeicher +* Schritte vor dem Start + +## HTTPS { #https } + +Wenn wir uns nur auf das **Containerimage** für eine FastAPI-Anwendung (und später auf den laufenden **Container**) konzentrieren, würde HTTPS normalerweise **extern** von einem anderen Tool verarbeitet. + +Es könnte sich um einen anderen Container handeln, zum Beispiel mit Traefik, welcher **HTTPS** und **automatischen** Erwerb von **Zertifikaten** handhabt. + +/// tip | Tipp + +Traefik verfügt über Integrationen mit Docker, Kubernetes und anderen, sodass Sie damit ganz einfach HTTPS für Ihre Container einrichten und konfigurieren können. + +/// + +Alternativ könnte HTTPS von einem Cloud-Anbieter als einer seiner Dienste gehandhabt werden (während die Anwendung weiterhin in einem Container ausgeführt wird). + +## Beim Hochfahren ausführen und Neustarts { #running-on-startup-and-restarts } + +Normalerweise gibt es ein anderes Tool, das für das **Starten und Ausführen** Ihres Containers zuständig ist. + +Es könnte sich um **Docker** direkt, **Docker Compose**, **Kubernetes**, einen **Cloud-Dienst**, usw. handeln. + +In den meisten (oder allen) Fällen gibt es eine einfache Option, um die Ausführung des Containers beim Hochfahren und Neustarts bei Fehlern zu ermöglichen. In Docker ist es beispielsweise die Befehlszeilenoption `--restart`. + +Ohne die Verwendung von Containern kann es umständlich und schwierig sein, Anwendungen beim Hochfahren auszuführen und neu zu starten. Bei der **Arbeit mit Containern** ist diese Funktionalität jedoch in den meisten Fällen standardmäßig enthalten. ✨ + +## Replikation – Anzahl der Prozesse { #replication-number-of-processes } + +Wenn Sie einen Cluster von Maschinen mit **Kubernetes**, Docker Swarm Mode, Nomad verwenden, oder einem anderen, ähnlich komplexen System zur Verwaltung verteilter Container auf mehreren Maschinen, möchten Sie wahrscheinlich die **Replikation auf Cluster-Ebene abwickeln**, anstatt in jedem Container einen **Prozessmanager** (wie Uvicorn mit Workern) zu verwenden. + +Diese verteilten Containerverwaltungssysteme wie Kubernetes verfügen normalerweise über eine integrierte Möglichkeit, die **Replikation von Containern** zu handhaben und gleichzeitig **Load Balancing** für die eingehenden Requests zu unterstützen. Alles auf **Cluster-Ebene**. + +In diesen Fällen möchten Sie wahrscheinlich ein **Docker-Image von Grund auf** erstellen, wie [oben erklärt](#dockerfile), Ihre Abhängigkeiten installieren und **einen einzelnen Uvicorn-Prozess** ausführen, anstatt mehrere Uvicorn-Worker zu verwenden. + +### Load Balancer { #load-balancer } + +Bei der Verwendung von Containern ist normalerweise eine Komponente vorhanden, **die am Hauptport lauscht**. Es könnte sich um einen anderen Container handeln, der auch ein **TLS-Terminierungsproxy** ist, um **HTTPS** zu verarbeiten, oder ein ähnliches Tool. + +Da diese Komponente die **Last** an Requests aufnehmen und diese (hoffentlich) **ausgewogen** auf die Worker verteilen würde, wird sie üblicherweise auch **Load Balancer** genannt. + +/// tip | Tipp + +Die gleiche **TLS-Terminierungsproxy**-Komponente, die für HTTPS verwendet wird, wäre wahrscheinlich auch ein **Load Balancer**. + +/// + +Und wenn Sie mit Containern arbeiten, verfügt das gleiche System, mit dem Sie diese starten und verwalten, bereits über interne Tools, um die **Netzwerkkommunikation** (z. B. HTTP-Requests) von diesem **Load Balancer** (das könnte auch ein **TLS-Terminierungsproxy** sein) zu den Containern mit Ihrer Anwendung weiterzuleiten. + +### Ein Load Balancer – mehrere Workercontainer { #one-load-balancer-multiple-worker-containers } + +Bei der Arbeit mit **Kubernetes** oder ähnlichen verteilten Containerverwaltungssystemen würde die Verwendung ihrer internen Netzwerkmechanismen es dem einzelnen **Load Balancer**, der den Haupt-**Port** überwacht, ermöglichen, Kommunikation (Requests) an möglicherweise **mehrere Container** weiterzuleiten, in denen Ihre Anwendung ausgeführt wird. + +Jeder dieser Container, in denen Ihre Anwendung ausgeführt wird, verfügt normalerweise über **nur einen Prozess** (z. B. einen Uvicorn-Prozess, der Ihre FastAPI-Anwendung ausführt). Es wären alles **identische Container**, die das Gleiche ausführen, welche aber jeweils über einen eigenen Prozess, Speicher, usw. verfügen. Auf diese Weise würden Sie die **Parallelisierung** in **verschiedenen Kernen** der CPU nutzen. Oder sogar in **verschiedenen Maschinen**. + +Und das verteilte Containersystem mit dem **Load Balancer** würde **die Requests abwechselnd** an jeden einzelnen Container mit Ihrer Anwendung verteilen. Jeder Request könnte also von einem der mehreren **replizierten Container** verarbeitet werden, in denen Ihre Anwendung ausgeführt wird. + +Und normalerweise wäre dieser **Load Balancer** in der Lage, Requests zu verarbeiten, die an *andere* Anwendungen in Ihrem Cluster gerichtet sind (z. B. eine andere Domain oder unter einem anderen URL-Pfad-Präfix), und würde diese Kommunikation an die richtigen Container weiterleiten für *diese andere* Anwendung, die in Ihrem Cluster ausgeführt wird. + +### Ein Prozess pro Container { #one-process-per-container } + +In einem solchen Szenario möchten Sie wahrscheinlich **einen einzelnen (Uvicorn-)Prozess pro Container** haben, da Sie die Replikation bereits auf Cluster-Ebene durchführen würden. + +In diesem Fall möchten Sie also **nicht** mehrere Worker im Container haben, z. B. mit der `--workers` Befehlszeilenoption. Sie möchten nur einen **einzelnen Uvicorn-Prozess** pro Container haben (wahrscheinlich aber mehrere Container). + +Ein weiterer Prozessmanager im Container (wie es bei mehreren Workern der Fall wäre) würde nur **unnötige Komplexität** hinzufügen, um welche Sie sich höchstwahrscheinlich bereits mit Ihrem Clustersystem kümmern. + +### Container mit mehreren Prozessen und Sonderfälle { #containers-with-multiple-processes-and-special-cases } + +Natürlich gibt es **Sonderfälle**, in denen Sie **einen Container** mit mehreren **Uvicorn-Workerprozessen** haben möchten. + +In diesen Fällen können Sie die `--workers` Befehlszeilenoption verwenden, um die Anzahl der zu startenden Worker festzulegen: + +```{ .dockerfile .annotate } +FROM python:3.9 + +WORKDIR /code + +COPY ./requirements.txt /code/requirements.txt + +RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt + +COPY ./app /code/app + +# (1)! +CMD ["fastapi", "run", "app/main.py", "--port", "80", "--workers", "4"] +``` + +1. Hier verwenden wir die `--workers` Befehlszeilenoption, um die Anzahl der Worker auf 4 festzulegen. + +Hier sind einige Beispiele, wann das sinnvoll sein könnte: + +#### Eine einfache Anwendung { #a-simple-app } + +Sie könnten einen Prozessmanager im Container haben wollen, wenn Ihre Anwendung **einfach genug** ist, sodass Sie es auf einem **einzelnen Server** ausführen können, nicht auf einem Cluster. + +#### Docker Compose { #docker-compose } + +Sie könnten das Deployment auf einem **einzelnen Server** (kein Cluster) mit **Docker Compose** durchführen, sodass Sie keine einfache Möglichkeit hätten, die Replikation von Containern (mit Docker Compose) zu verwalten und gleichzeitig das gemeinsame Netzwerk mit **Load Balancing** zu haben. + +Dann möchten Sie vielleicht **einen einzelnen Container** mit einem **Prozessmanager** haben, der darin **mehrere Workerprozesse** startet. + +--- + +Der Hauptpunkt ist, dass **keine** dieser Regeln **in Stein gemeißelt** ist, der man blind folgen muss. Sie können diese Ideen verwenden, um **Ihren eigenen Anwendungsfall zu evaluieren**, zu entscheiden, welcher Ansatz für Ihr System am besten geeignet ist und herauszufinden, wie Sie folgende Konzepte verwalten: + +* Sicherheit – HTTPS +* Beim Hochfahren ausführen +* Neustarts +* Replikation (die Anzahl der laufenden Prozesse) +* Arbeitsspeicher +* Schritte vor dem Start + +## Arbeitsspeicher { #memory } + +Wenn Sie **einen einzelnen Prozess pro Container** ausführen, wird von jedem dieser Container (mehr als einer, wenn sie repliziert werden) eine mehr oder weniger klar definierte, stabile und begrenzte Menge an Arbeitsspeicher verbraucht. + +Und dann können Sie dieselben Speichergrenzen und -anforderungen in Ihren Konfigurationen für Ihr Container-Management-System festlegen (z. B. in **Kubernetes**). Auf diese Weise ist es in der Lage, die Container auf den **verfügbaren Maschinen** zu replizieren, wobei die von diesen benötigte Speichermenge und die auf den Maschinen im Cluster verfügbare Menge berücksichtigt werden. + +Wenn Ihre Anwendung **einfach** ist, wird dies wahrscheinlich **kein Problem darstellen** und Sie müssen möglicherweise keine festen Speichergrenzen angeben. Wenn Sie jedoch **viel Speicher verbrauchen** (z. B. bei **Modellen für maschinelles Lernen**), sollten Sie überprüfen, wie viel Speicher Sie verbrauchen, und die **Anzahl der Container** anpassen, die in **jeder Maschine** ausgeführt werden (und möglicherweise weitere Maschinen zu Ihrem Cluster hinzufügen). + +Wenn Sie **mehrere Prozesse pro Container** ausführen, müssen Sie sicherstellen, dass die Anzahl der gestarteten Prozesse nicht **mehr Speicher verbraucht** als verfügbar ist. + +## Schritte vor dem Start und Container { #previous-steps-before-starting-and-containers } + +Wenn Sie Container (z. B. Docker, Kubernetes) verwenden, können Sie hauptsächlich zwei Ansätze verwenden. + +### Mehrere Container { #multiple-containers } + +Wenn Sie **mehrere Container** haben, von denen wahrscheinlich jeder einen **einzelnen Prozess** ausführt (z. B. in einem **Kubernetes**-Cluster), dann möchten Sie wahrscheinlich einen **separaten Container** haben, welcher die Arbeit der **Vorab-Schritte** in einem einzelnen Container, mit einem einzelnen Prozess ausführt, **bevor** die replizierten Workercontainer ausgeführt werden. + +/// info | Info + +Wenn Sie Kubernetes verwenden, wäre dies wahrscheinlich ein Init-Container. + +/// + +Wenn es in Ihrem Anwendungsfall kein Problem darstellt, diese vorherigen Schritte **mehrmals parallel** auszuführen (z. B. wenn Sie keine Datenbankmigrationen ausführen, sondern nur prüfen, ob die Datenbank bereits bereit ist), können Sie sie auch einfach in jedem Container direkt vor dem Start des Hauptprozesses einfügen. + +### Einzelner Container { #single-container } + +Wenn Sie ein einfaches Setup mit einem **einzelnen Container** haben, welcher dann mehrere **Workerprozesse** (oder auch nur einen Prozess) startet, können Sie die Vorab-Schritte im selben Container direkt vor dem Starten des Prozesses mit der Anwendung ausführen. + +### Docker-Basisimage { #base-docker-image } + +Es gab ein offizielles FastAPI-Docker-Image: tiangolo/uvicorn-gunicorn-fastapi. Dieses ist jedoch jetzt veraltet. ⛔️ + +Sie sollten wahrscheinlich **nicht** dieses Basis-Docker-Image (oder ein anderes ähnliches) verwenden. + +Wenn Sie **Kubernetes** (oder andere) verwenden und bereits **Replikation** auf Cluster-Ebene mit mehreren **Containern** eingerichtet haben. In diesen Fällen ist es besser, **ein Image von Grund auf neu zu erstellen**, wie oben beschrieben: [Ein Docker-Image für FastAPI erstellen](#build-a-docker-image-for-fastapi). + +Und wenn Sie mehrere Worker benötigen, können Sie einfach die `--workers` Befehlszeilenoption verwenden. + +/// note | Technische Details + +Das Docker-Image wurde erstellt, als Uvicorn das Verwalten und Neustarten von ausgefallenen Workern noch nicht unterstützte, weshalb es notwendig war, Gunicorn mit Uvicorn zu verwenden, was zu einer erheblichen Komplexität führte, nur damit Gunicorn die Uvicorn-Workerprozesse verwaltet und neu startet. + +Aber jetzt, da Uvicorn (und der `fastapi`-Befehl) die Verwendung von `--workers` unterstützen, gibt es keinen Grund, ein Basis-Docker-Image an Stelle eines eigenen (das praktisch denselben Code enthält 😅) zu verwenden. + +/// + +## Deployment des Containerimages { #deploy-the-container-image } + +Nachdem Sie ein Containerimage (Docker) haben, gibt es mehrere Möglichkeiten, es bereitzustellen. + +Zum Beispiel: + +* Mit **Docker Compose** auf einem einzelnen Server +* Mit einem **Kubernetes**-Cluster +* Mit einem Docker Swarm Mode-Cluster +* Mit einem anderen Tool wie Nomad +* Mit einem Cloud-Dienst, der Ihr Containerimage nimmt und es deployt + +## Docker-Image mit `uv` { #docker-image-with-uv } + +Wenn Sie uv verwenden, um Ihr Projekt zu installieren und zu verwalten, können Sie deren uv-Docker-Leitfaden befolgen. + +## Zusammenfassung { #recap } + +Mithilfe von Containersystemen (z. B. mit **Docker** und **Kubernetes**) ist es ziemlich einfach, alle **Deployment-Konzepte** zu handhaben: + +* HTTPS +* Beim Hochfahren ausführen +* Neustarts +* Replikation (die Anzahl der laufenden Prozesse) +* Arbeitsspeicher +* Schritte vor dem Start + +In den meisten Fällen möchten Sie wahrscheinlich kein Basisimage verwenden und stattdessen **ein Containerimage von Grund auf erstellen**, eines basierend auf dem offiziellen Python-Docker-Image. + +Indem Sie auf die **Reihenfolge** der Anweisungen im `Dockerfile` und den **Docker-Cache** achten, können Sie **die Build-Zeiten minimieren**, um Ihre Produktivität zu erhöhen (und Langeweile zu vermeiden). 😎 diff --git a/docs/de/docs/deployment/fastapicloud.md b/docs/de/docs/deployment/fastapicloud.md new file mode 100644 index 0000000..18c3bb8 --- /dev/null +++ b/docs/de/docs/deployment/fastapicloud.md @@ -0,0 +1,65 @@ +# FastAPI Cloud { #fastapi-cloud } + +Sie können Ihre FastAPI-App in der FastAPI Cloud mit **einem einzigen Befehl** deployen – tragen Sie sich in die Warteliste ein, falls noch nicht geschehen. 🚀 + +## Anmelden { #login } + +Stellen Sie sicher, dass Sie bereits ein **FastAPI-Cloud-Konto** haben (wir haben Sie von der Warteliste eingeladen 😉). + +Melden Sie sich dann an: + +
+ +```console +$ fastapi login + +You are logged in to FastAPI Cloud 🚀 +``` + +
+ +## Deployen { #deploy } + +Stellen Sie Ihre App jetzt mit **einem einzigen Befehl** bereit: + +
+ +```console +$ fastapi deploy + +Deploying to FastAPI Cloud... + +✅ Deployment successful! + +🐔 Ready the chicken! Your app is ready at https://myapp.fastapicloud.dev +``` + +
+ +Das war’s! Jetzt können Sie Ihre App unter dieser URL aufrufen. ✨ + +## Über FastAPI Cloud { #about-fastapi-cloud } + +**FastAPI Cloud** wird vom gleichen Autor und Team hinter **FastAPI** entwickelt. + +Es vereinfacht den Prozess des **Erstellens**, **Deployens** und **Nutzens** einer API mit minimalem Aufwand. + +Es bringt die gleiche **Developer-Experience** beim Erstellen von Apps mit FastAPI auch zum **Deployment** in der Cloud. 🎉 + +Es kümmert sich außerdem um das meiste, was beim Deployen einer App nötig ist, zum Beispiel: + +* HTTPS +* Replikation, mit Autoscaling basierend auf Requests +* usw. + +FastAPI Cloud ist Hauptsponsor und Finanzierer der Open-Source-Projekte *FastAPI and friends*. ✨ + +## Bei anderen Cloudanbietern deployen { #deploy-to-other-cloud-providers } + +FastAPI ist Open Source und basiert auf Standards. Sie können FastAPI-Apps bei jedem Cloudanbieter Ihrer Wahl deployen. + +Folgen Sie den Anleitungen Ihres Cloudanbieters, um dort FastAPI-Apps zu deployen. 🤓 + +## Auf den eigenen Server deployen { #deploy-your-own-server } + +Ich werde Ihnen später in diesem **Deployment-Leitfaden** auch alle Details zeigen, sodass Sie verstehen, was passiert, was geschehen muss und wie Sie FastAPI-Apps selbst deployen können, auch auf Ihre eigenen Server. 🤓 diff --git a/docs/de/docs/deployment/https.md b/docs/de/docs/deployment/https.md new file mode 100644 index 0000000..1c4ce6b --- /dev/null +++ b/docs/de/docs/deployment/https.md @@ -0,0 +1,231 @@ +# Über HTTPS { #about-https } + +Es ist leicht anzunehmen, dass HTTPS etwas ist, was einfach nur „aktiviert“ wird oder nicht. + +Aber es ist viel komplexer als das. + +/// tip | Tipp + +Wenn Sie es eilig haben oder es Ihnen egal ist, fahren Sie mit den nächsten Abschnitten fort, um Schritt-für-Schritt-Anleitungen für die Einrichtung der verschiedenen Technologien zu erhalten. + +/// + +Um **die Grundlagen von HTTPS** aus Sicht des Benutzers zu erlernen, schauen Sie sich https://howhttps.works/ an. + +Aus **Sicht des Entwicklers** sollten Sie beim Nachdenken über HTTPS Folgendes beachten: + +* Für HTTPS muss **der Server** über von einem **Dritten** generierte **„Zertifikate“** verfügen. + * Diese Zertifikate werden tatsächlich vom Dritten **erworben** und nicht „generiert“. +* Zertifikate haben eine **Lebensdauer**. + * Sie **verfallen**. + * Und dann müssen sie vom Dritten **erneuert**, **erneut erworben** werden. +* Die Verschlüsselung der Verbindung erfolgt auf **TCP-Ebene**. + * Das ist eine Schicht **unter HTTP**. + * Die Handhabung von **Zertifikaten und Verschlüsselung** erfolgt also **vor HTTP**. +* **TCP weiß nichts über „Domains“**. Nur über IP-Adressen. + * Die Informationen über die angeforderte **spezifische Domain** befinden sich in den **HTTP-Daten**. +* Die **HTTPS-Zertifikate** „zertifizieren“ eine **bestimmte Domain**, aber das Protokoll und die Verschlüsselung erfolgen auf TCP-Ebene, **ohne zu wissen**, um welche Domain es sich handelt. +* **Standardmäßig** bedeutet das, dass Sie nur **ein HTTPS-Zertifikat pro IP-Adresse** haben können. + * Ganz gleich, wie groß Ihr Server ist oder wie klein die einzelnen Anwendungen darauf sind. + * Hierfür gibt es jedoch eine **Lösung**. +* Es gibt eine **Erweiterung** zum **TLS**-Protokoll (dasjenige, das die Verschlüsselung auf TCP-Ebene, vor HTTP, verwaltet) namens **SNI**. + * Mit dieser SNI-Erweiterung kann ein einzelner Server (mit einer **einzelnen IP-Adresse**) über **mehrere HTTPS-Zertifikate** verfügen und **mehrere HTTPS-Domains/Anwendungen bereitstellen**. + * Damit das funktioniert, muss eine **einzelne** Komponente (Programm), die auf dem Server ausgeführt wird und welche die **öffentliche IP-Adresse** überwacht, **alle HTTPS-Zertifikate** des Servers haben. +* **Nachdem** eine sichere Verbindung hergestellt wurde, ist das Kommunikationsprotokoll **immer noch HTTP**. + * Die Inhalte sind **verschlüsselt**, auch wenn sie mit dem **HTTP-Protokoll** gesendet werden. + +Es ist eine gängige Praxis, **ein Programm/HTTP-Server** auf dem Server (der Maschine, dem Host usw.) laufen zu lassen, welches **alle HTTPS-Aspekte verwaltet**: Empfangen der **verschlüsselten HTTPS-Requests**, Senden der **entschlüsselten HTTP-Requests** an die eigentliche HTTP-Anwendung die auf demselben Server läuft (in diesem Fall die **FastAPI**-Anwendung), entgegennehmen der **HTTP-Response** von der Anwendung, **verschlüsseln derselben** mithilfe des entsprechenden **HTTPS-Zertifikats** und Zurücksenden zum Client über **HTTPS**. Dieser Server wird oft als **TLS-Terminierungsproxy** bezeichnet. + +Einige der Optionen, die Sie als TLS-Terminierungsproxy verwenden können, sind: + +* Traefik (kann auch Zertifikat-Erneuerungen durchführen) +* Caddy (kann auch Zertifikat-Erneuerungen durchführen) +* Nginx +* HAProxy + +## Let's Encrypt { #lets-encrypt } + +Vor Let's Encrypt wurden diese **HTTPS-Zertifikate** von vertrauenswürdigen Dritten verkauft. + +Der Prozess zum Erwerb eines dieser Zertifikate war früher umständlich, erforderte viel Papierarbeit und die Zertifikate waren ziemlich teuer. + +Aber dann wurde **Let's Encrypt** geschaffen. + +Es ist ein Projekt der Linux Foundation. Es stellt **kostenlose HTTPS-Zertifikate** automatisiert zur Verfügung. Diese Zertifikate nutzen standardmäßig die gesamte kryptografische Sicherheit und sind kurzlebig (circa 3 Monate), sodass die **Sicherheit tatsächlich besser ist**, aufgrund der kürzeren Lebensdauer. + +Die Domains werden sicher verifiziert und die Zertifikate werden automatisch generiert. Das ermöglicht auch die automatische Erneuerung dieser Zertifikate. + +Die Idee besteht darin, den Erwerb und die Erneuerung der Zertifikate zu automatisieren, sodass Sie **sicheres HTTPS, kostenlos und für immer** haben können. + +## HTTPS für Entwickler { #https-for-developers } + +Hier ist ein Beispiel, wie eine HTTPS-API aussehen könnte, Schritt für Schritt, wobei vor allem die für Entwickler wichtigen Ideen berücksichtigt werden. + +### Domainname { #domain-name } + +Alles beginnt wahrscheinlich damit, dass Sie einen **Domainnamen erwerben**. Anschließend konfigurieren Sie ihn in einem DNS-Server (wahrscheinlich beim selben Cloudanbieter). + +Sie würden wahrscheinlich einen Cloud-Server (eine virtuelle Maschine) oder etwas Ähnliches bekommen, und dieser hätte eine feste **öffentliche IP-Adresse**. + +In dem oder den DNS-Server(n) würden Sie einen Eintrag (einen „`A record`“) konfigurieren, um mit **Ihrer Domain** auf die öffentliche **IP-Adresse Ihres Servers** zu verweisen. + +Sie würden dies wahrscheinlich nur einmal tun, beim ersten Mal, wenn Sie alles einrichten. + +/// tip | Tipp + +Dieser Domainnamen-Aspekt liegt weit vor HTTPS, aber da alles von der Domain und der IP-Adresse abhängt, lohnt es sich, das hier zu erwähnen. + +/// + +### DNS { #dns } + +Konzentrieren wir uns nun auf alle tatsächlichen HTTPS-Aspekte. + +Zuerst würde der Browser mithilfe der **DNS-Server** herausfinden, welches die **IP für die Domain** ist, in diesem Fall `someapp.example.com`. + +Die DNS-Server geben dem Browser eine bestimmte **IP-Adresse** zurück. Das wäre die von Ihrem Server verwendete öffentliche IP-Adresse, die Sie in den DNS-Servern konfiguriert haben. + + + +### TLS-Handshake-Start { #tls-handshake-start } + +Der Browser kommuniziert dann mit dieser IP-Adresse über **Port 443** (den HTTPS-Port). + +Der erste Teil der Kommunikation besteht lediglich darin, die Verbindung zwischen dem Client und dem Server herzustellen und die zu verwendenden kryptografischen Schlüssel usw. zu vereinbaren. + + + +Diese Interaktion zwischen dem Client und dem Server zum Aufbau der TLS-Verbindung wird als **TLS-Handshake** bezeichnet. + +### TLS mit SNI-Erweiterung { #tls-with-sni-extension } + +**Nur ein Prozess** im Server kann an einem bestimmten **Port** einer bestimmten **IP-Adresse** lauschen. Möglicherweise gibt es andere Prozesse, die an anderen Ports dieselbe IP-Adresse abhören, jedoch nur einen für jede Kombination aus IP-Adresse und Port. + +TLS (HTTPS) verwendet standardmäßig den spezifischen Port `443`. Das ist also der Port, den wir brauchen. + +Da an diesem Port nur ein Prozess lauschen kann, wäre der Prozess, der dies tun würde, der **TLS-Terminierungsproxy**. + +Der TLS-Terminierungsproxy hätte Zugriff auf ein oder mehrere **TLS-Zertifikate** (HTTPS-Zertifikate). + +Mithilfe der oben beschriebenen **SNI-Erweiterung** würde der TLS-Terminierungsproxy herausfinden, welches der verfügbaren TLS-Zertifikate (HTTPS) er für diese Verbindung verwenden muss, und zwar das, welches mit der vom Client erwarteten Domain übereinstimmt. + +In diesem Fall würde er das Zertifikat für `someapp.example.com` verwenden. + + + +Der Client **vertraut** bereits der Entität, die das TLS-Zertifikat generiert hat (in diesem Fall Let's Encrypt, aber wir werden später mehr darüber erfahren), sodass er **verifizieren** kann, dass das Zertifikat gültig ist. + +Mithilfe des Zertifikats entscheiden der Client und der TLS-Terminierungsproxy dann, **wie der Rest der TCP-Kommunikation verschlüsselt werden soll**. Damit ist der **TLS-Handshake** abgeschlossen. + +Danach verfügen der Client und der Server über eine **verschlüsselte TCP-Verbindung**, via TLS. Und dann können sie diese Verbindung verwenden, um die eigentliche **HTTP-Kommunikation** zu beginnen. + +Und genau das ist **HTTPS**, es ist einfach **HTTP** innerhalb einer **sicheren TLS-Verbindung**, statt einer puren (unverschlüsselten) TCP-Verbindung. + +/// tip | Tipp + +Beachten Sie, dass die Verschlüsselung der Kommunikation auf der **TCP-Ebene** und nicht auf der HTTP-Ebene erfolgt. + +/// + +### HTTPS-Request { #https-request } + +Da Client und Server (sprich, der Browser und der TLS-Terminierungsproxy) nun über eine **verschlüsselte TCP-Verbindung** verfügen, können sie die **HTTP-Kommunikation** starten. + +Der Client sendet also einen **HTTPS-Request**. Das ist einfach ein HTTP-Request über eine verschlüsselte TLS-Verbindung. + + + +### Den Request entschlüsseln { #decrypt-the-request } + +Der TLS-Terminierungsproxy würde die vereinbarte Verschlüsselung zum **Entschlüsseln des Requests** verwenden und den **einfachen (entschlüsselten) HTTP-Request** an den Prozess weiterleiten, der die Anwendung ausführt (z. B. einen Prozess, bei dem Uvicorn die FastAPI-Anwendung ausführt). + + + +### HTTP-Response { #http-response } + +Die Anwendung würde den Request verarbeiten und eine **einfache (unverschlüsselte) HTTP-Response** an den TLS-Terminierungsproxy senden. + + + +### HTTPS-Response { #https-response } + +Der TLS-Terminierungsproxy würde dann die Response mithilfe der zuvor vereinbarten Kryptografie (als das Zertifikat für `someapp.example.com` verhandelt wurde) **verschlüsseln** und sie an den Browser zurücksenden. + +Als Nächstes überprüft der Browser, ob die Response gültig und mit dem richtigen kryptografischen Schlüssel usw. verschlüsselt ist. Anschließend **entschlüsselt er die Response** und verarbeitet sie. + + + +Der Client (Browser) weiß, dass die Response vom richtigen Server kommt, da dieser die Kryptografie verwendet, die zuvor mit dem **HTTPS-Zertifikat** vereinbart wurde. + +### Mehrere Anwendungen { #multiple-applications } + +Auf demselben Server (oder denselben Servern) könnten sich **mehrere Anwendungen** befinden, beispielsweise andere API-Programme oder eine Datenbank. + +Nur ein Prozess kann diese spezifische IP und den Port verarbeiten (in unserem Beispiel der TLS-Terminierungsproxy), aber die anderen Anwendungen/Prozesse können auch auf dem/den Server(n) ausgeführt werden, solange sie nicht versuchen, dieselbe **Kombination aus öffentlicher IP und Port** zu verwenden. + + + +Auf diese Weise könnte der TLS-Terminierungsproxy HTTPS und Zertifikate für **mehrere Domains**, für mehrere Anwendungen, verarbeiten und die Requests dann jeweils an die richtige Anwendung weiterleiten. + +### Verlängerung des Zertifikats { #certificate-renewal } + +Irgendwann in der Zukunft würde jedes Zertifikat **ablaufen** (etwa 3 Monate nach dem Erwerb). + +Und dann gäbe es ein anderes Programm (in manchen Fällen ist es ein anderes Programm, in manchen Fällen ist es derselbe TLS-Terminierungsproxy), das mit Let's Encrypt kommuniziert und das/die Zertifikat(e) erneuert. + + + +Die **TLS-Zertifikate** sind **einem Domainnamen zugeordnet**, nicht einer IP-Adresse. + +Um die Zertifikate zu erneuern, muss das erneuernde Programm der Behörde (Let's Encrypt) **nachweisen**, dass es diese Domain tatsächlich **besitzt und kontrolliert**. + +Um dies zu erreichen und den unterschiedlichen Anwendungsanforderungen gerecht zu werden, gibt es mehrere Möglichkeiten. Einige beliebte Methoden sind: + +* **Einige DNS-Einträge ändern**. + * Hierfür muss das erneuernde Programm die APIs des DNS-Anbieters unterstützen. Je nachdem, welchen DNS-Anbieter Sie verwenden, kann dies eine Option sein oder auch nicht. +* **Als Server ausführen** (zumindest während des Zertifikatserwerbsvorgangs), auf der öffentlichen IP-Adresse, die der Domain zugeordnet ist. + * Wie oben erwähnt, kann nur ein Prozess eine bestimmte IP und einen bestimmten Port überwachen. + * Das ist einer der Gründe, warum es sehr nützlich ist, wenn derselbe TLS-Terminierungsproxy auch den Zertifikats-Erneuerungsprozess übernimmt. + * Andernfalls müssen Sie möglicherweise den TLS-Terminierungsproxy vorübergehend stoppen, das Programm starten, welches die neuen Zertifikate beschafft, diese dann mit dem TLS-Terminierungsproxy konfigurieren und dann den TLS-Terminierungsproxy neu starten. Das ist nicht ideal, da Ihre Anwendung(en) während der Zeit, in der der TLS-Terminierungsproxy ausgeschaltet ist, nicht erreichbar ist/sind. + +Dieser ganze Erneuerungsprozess, während die Anwendung weiterhin bereitgestellt wird, ist einer der Hauptgründe, warum Sie ein **separates System zur Verarbeitung von HTTPS** mit einem TLS-Terminierungsproxy haben möchten, anstatt einfach die TLS-Zertifikate direkt mit dem Anwendungsserver zu verwenden (z. B. Uvicorn). + +## Proxy-Forwarded-Header { #proxy-forwarded-headers } + +Wenn Sie einen Proxy zur Verarbeitung von HTTPS verwenden, weiß Ihr **Anwendungsserver** (z. B. Uvicorn über das FastAPI CLI) nichts über den HTTPS-Prozess, er kommuniziert per einfachem HTTP mit dem **TLS-Terminierungsproxy**. + +Dieser **Proxy** würde normalerweise unmittelbar vor dem Übermitteln der Anfrage an den **Anwendungsserver** einige HTTP-Header dynamisch setzen, um dem Anwendungsserver mitzuteilen, dass der Request vom Proxy **weitergeleitet** wird. + +/// note | Technische Details + +Die Proxy-Header sind: + +* X-Forwarded-For +* X-Forwarded-Proto +* X-Forwarded-Host + +/// + +Trotzdem, da der **Anwendungsserver** nicht weiß, dass er sich hinter einem vertrauenswürdigen **Proxy** befindet, würde er diesen Headern standardmäßig nicht vertrauen. + +Sie können den **Anwendungsserver** jedoch so konfigurieren, dass er den vom **Proxy** gesendeten *Forwarded*-Headern vertraut. Wenn Sie das FastAPI CLI verwenden, können Sie die *CLI-Option* `--forwarded-allow-ips` nutzen, um anzugeben, von welchen IPs er diesen *Forwarded*-Headern vertrauen soll. + +Wenn der **Anwendungsserver** beispielsweise nur Kommunikation vom vertrauenswürdigen **Proxy** empfängt, können Sie `--forwarded-allow-ips="*"` setzen, um allen eingehenden IPs zu vertrauen, da er nur Requests von der vom **Proxy** verwendeten IP erhalten wird. + +Auf diese Weise kann die Anwendung ihre eigene öffentliche URL, ob sie HTTPS verwendet, die Domain, usw. erkennen. + +Das ist z. B. nützlich, um Redirects korrekt zu handhaben. + +/// tip | Tipp + +Mehr dazu finden Sie in der Dokumentation zu [Hinter einem Proxy – Proxy-Forwarded-Header aktivieren](../advanced/behind-a-proxy.md#enable-proxy-forwarded-headers){.internal-link target=_blank} + +/// + +## Zusammenfassung { #recap } + +**HTTPS** zu haben ist sehr wichtig und in den meisten Fällen eine **kritische Anforderung**. Die meiste Arbeit, die Sie als Entwickler in Bezug auf HTTPS aufwenden müssen, besteht lediglich darin, **diese Konzepte zu verstehen** und wie sie funktionieren. + +Sobald Sie jedoch die grundlegenden Informationen zu **HTTPS für Entwickler** kennen, können Sie verschiedene Tools problemlos kombinieren und konfigurieren, um alles auf einfache Weise zu verwalten. + +In einigen der nächsten Kapitel zeige ich Ihnen einige konkrete Beispiele für die Einrichtung von **HTTPS** für **FastAPI**-Anwendungen. 🔒 diff --git a/docs/de/docs/deployment/index.md b/docs/de/docs/deployment/index.md new file mode 100644 index 0000000..cb3e537 --- /dev/null +++ b/docs/de/docs/deployment/index.md @@ -0,0 +1,23 @@ +# Deployment { #deployment } + +Das Deployment einer **FastAPI**-Anwendung ist relativ einfach. + +## Was bedeutet Deployment { #what-does-deployment-mean } + +**Deployment** bedeutet, die notwendigen Schritte durchzuführen, um die Anwendung **für die Endbenutzer verfügbar** zu machen. + +Bei einer **Web-API** bedeutet das normalerweise, diese auf einem **entfernten Rechner** zu platzieren, mit einem **Serverprogramm**, welches gute Leistung, Stabilität, usw. bietet, damit Ihre **Benutzer** auf die Anwendung effizient und ohne Unterbrechungen oder Probleme **zugreifen** können. + +Das steht im Gegensatz zu den **Entwicklungsphasen**, in denen Sie ständig den Code ändern, kaputt machen, reparieren, den Entwicklungsserver stoppen und neu starten, usw. + +## Deployment-Strategien { #deployment-strategies } + +Es gibt mehrere Möglichkeiten, dies zu tun, abhängig von Ihrem spezifischen Anwendungsfall und den von Ihnen verwendeten Tools. + +Sie könnten mithilfe einer Kombination von Tools selbst **einen Server deployen**, Sie könnten einen **Cloud-Dienst** nutzen, der einen Teil der Arbeit für Sie erledigt, oder andere mögliche Optionen. + +Zum Beispiel haben wir, das Team hinter FastAPI, **FastAPI Cloud** entwickelt, um das Deployment von FastAPI-Apps in der Cloud so reibungslos wie möglich zu gestalten, mit derselben Developer-Experience wie beim Arbeiten mit FastAPI. + +Ich zeige Ihnen einige der wichtigsten Konzepte, die Sie beim Deployment einer **FastAPI**-Anwendung wahrscheinlich berücksichtigen sollten (obwohl das meiste davon auch für jede andere Art von Webanwendung gilt). + +In den nächsten Abschnitten erfahren Sie mehr über die zu beachtenden Details und über die Techniken, das zu tun. ✨ diff --git a/docs/de/docs/deployment/manually.md b/docs/de/docs/deployment/manually.md new file mode 100644 index 0000000..2de2913 --- /dev/null +++ b/docs/de/docs/deployment/manually.md @@ -0,0 +1,157 @@ +# Einen Server manuell ausführen { #run-a-server-manually } + +## Den `fastapi run` Befehl verwenden { #use-the-fastapi-run-command } + +Kurz gesagt, nutzen Sie `fastapi run`, um Ihre FastAPI-Anwendung bereitzustellen: + +
+ +```console +$ fastapi run main.py + + FastAPI Starting production server 🚀 + + Searching for package file structure from directories + with __init__.py files + Importing from /home/user/code/awesomeapp + + module 🐍 main.py + + code Importing the FastAPI app object from the module with + the following code: + + from main import app + + app Using import string: main:app + + server Server started at http://0.0.0.0:8000 + server Documentation at http://0.0.0.0:8000/docs + + Logs: + + INFO Started server process [2306215] + INFO Waiting for application startup. + INFO Application startup complete. + INFO Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C + to quit) +``` + +
+ +Das würde in den meisten Fällen funktionieren. 😎 + +Sie könnten diesen Befehl beispielsweise verwenden, um Ihre **FastAPI**-App in einem Container, auf einem Server usw. zu starten. + +## ASGI-Server { #asgi-servers } + +Lassen Sie uns ein wenig tiefer in die Details eintauchen. + +FastAPI verwendet einen Standard zum Erstellen von Python-Webframeworks und -Servern, der als ASGI bekannt ist. FastAPI ist ein ASGI-Webframework. + +Das Wichtigste, was Sie benötigen, um eine **FastAPI**-Anwendung (oder eine andere ASGI-Anwendung) auf einer entfernten Servermaschine auszuführen, ist ein ASGI-Serverprogramm wie **Uvicorn**, der standardmäßig im `fastapi`-Kommando enthalten ist. + +Es gibt mehrere Alternativen, einschließlich: + +* Uvicorn: ein hochperformanter ASGI-Server. +* Hypercorn: ein ASGI-Server, der unter anderem kompatibel mit HTTP/2 und Trio ist. +* Daphne: der für Django Channels entwickelte ASGI-Server. +* Granian: Ein Rust HTTP-Server für Python-Anwendungen. +* NGINX Unit: NGINX Unit ist eine leichte und vielseitige Laufzeitumgebung für Webanwendungen. + +## Servermaschine und Serverprogramm { #server-machine-and-server-program } + +Es gibt ein kleines Detail bei den Namen, das Sie beachten sollten. 💡 + +Das Wort „**Server**“ wird häufig verwendet, um sowohl den entfernten/Cloud-Computer (die physische oder virtuelle Maschine) als auch das Programm zu bezeichnen, das auf dieser Maschine läuft (z. B. Uvicorn). + +Denken Sie einfach daran, dass sich „Server“ im Allgemeinen auf eines dieser beiden Dinge beziehen kann. + +Wenn man sich auf die entfernte Maschine bezieht, wird sie üblicherweise als **Server**, aber auch als **Maschine**, **VM** (virtuelle Maschine) oder **Knoten** bezeichnet. Diese Begriffe beziehen sich auf irgendeine Art von entfernten Rechner, normalerweise unter Linux, auf dem Sie Programme ausführen. + +## Das Serverprogramm installieren { #install-the-server-program } + +Wenn Sie FastAPI installieren, wird es mit einem Produktionsserver, Uvicorn, geliefert, und Sie können ihn mit dem `fastapi run` Befehl starten. + +Aber Sie können auch ein ASGI-Serverprogramm manuell installieren. + +Stellen Sie sicher, dass Sie eine [virtuelle Umgebung](../virtual-environments.md){.internal-link target=_blank} erstellen, sie aktivieren und dann die Serveranwendung installieren. + +Zum Beispiel, um Uvicorn zu installieren: + +
+ +```console +$ pip install "uvicorn[standard]" + +---> 100% +``` + +
+ +Ein ähnlicher Prozess würde für jedes andere ASGI-Serverprogramm gelten. + +/// tip | Tipp + +Durch das Hinzufügen von `standard` installiert und verwendet Uvicorn einige empfohlene zusätzliche Abhängigkeiten. + +Dazu gehört `uvloop`, der hochperformante Drop-in-Ersatz für `asyncio`, der den großen Nebenläufigkeits-Performanz-Schub bietet. + +Wenn Sie FastAPI mit etwas wie `pip install "fastapi[standard]"` installieren, erhalten Sie auch `uvicorn[standard]`. + +/// + +## Das Serverprogramm ausführen { #run-the-server-program } + +Wenn Sie einen ASGI-Server manuell installiert haben, müssen Sie normalerweise einen Importstring in einem speziellen Format übergeben, damit er Ihre FastAPI-Anwendung importiert: + +
+ +```console +$ uvicorn main:app --host 0.0.0.0 --port 80 + +INFO: Uvicorn running on http://0.0.0.0:80 (Press CTRL+C to quit) +``` + +
+ +/// note | Hinweis + +Der Befehl `uvicorn main:app` bezieht sich auf: + +* `main`: die Datei `main.py` (das Python-„Modul“). +* `app`: das Objekt, das innerhalb von `main.py` mit der Zeile `app = FastAPI()` erstellt wurde. + +Es ist äquivalent zu: + +```Python +from main import app +``` + +/// + +Jedes alternative ASGI-Serverprogramm hätte einen ähnlichen Befehl, Sie können in deren jeweiligen Dokumentationen mehr lesen. + +/// warning | Achtung + +Uvicorn und andere Server unterstützen eine `--reload`-Option, die während der Entwicklung nützlich ist. + +Die `--reload`-Option verbraucht viel mehr Ressourcen, ist instabiler, usw. + +Sie hilft während der **Entwicklung**, Sie sollten sie jedoch **nicht** in der **Produktion** verwenden. + +/// + +## Deployment-Konzepte { #deployment-concepts } + +Diese Beispiele führen das Serverprogramm (z. B. Uvicorn) aus, starten **einen einzelnen Prozess** und überwachen alle IPs (`0.0.0.0`) an einem vordefinierten Port (z. B. `80`). + +Das ist die Grundidee. Aber Sie möchten sich wahrscheinlich um einige zusätzliche Dinge kümmern, wie zum Beispiel: + +* Sicherheit – HTTPS +* Beim Hochfahren ausführen +* Neustarts +* Replikation (die Anzahl der laufenden Prozesse) +* Speicher +* Schritte vor dem Start + +In den nächsten Kapiteln erzähle ich Ihnen mehr über jedes dieser Konzepte, wie Sie über diese nachdenken, und gebe Ihnen einige konkrete Beispiele mit Strategien für den Umgang damit. 🚀 diff --git a/docs/de/docs/deployment/server-workers.md b/docs/de/docs/deployment/server-workers.md new file mode 100644 index 0000000..7b68f1b --- /dev/null +++ b/docs/de/docs/deployment/server-workers.md @@ -0,0 +1,139 @@ +# Serverworker – Uvicorn mit Workern { #server-workers-uvicorn-with-workers } + +Schauen wir uns die Deployment-Konzepte von früher noch einmal an: + +* Sicherheit – HTTPS +* Beim Hochfahren ausführen +* Neustarts +* **Replikation (die Anzahl der laufenden Prozesse)** +* Arbeitsspeicher +* Schritte vor dem Start + +Bis zu diesem Punkt, in allen Tutorials in der Dokumentation, haben Sie wahrscheinlich ein **Serverprogramm** ausgeführt, zum Beispiel mit dem `fastapi`-Befehl, der Uvicorn startet, und einen **einzelnen Prozess** ausführt. + +Wenn Sie Anwendungen deployen, möchten Sie wahrscheinlich eine gewisse **Replikation von Prozessen**, um **mehrere Kerne** zu nutzen und mehr Requests bearbeiten zu können. + +Wie Sie im vorherigen Kapitel über [Deployment-Konzepte](concepts.md){.internal-link target=_blank} gesehen haben, gibt es mehrere Strategien, die Sie anwenden können. + +Hier zeige ich Ihnen, wie Sie **Uvicorn** mit **Workerprozessen** verwenden, indem Sie den `fastapi`-Befehl oder den `uvicorn`-Befehl direkt verwenden. + +/// info | Info + +Wenn Sie Container verwenden, beispielsweise mit Docker oder Kubernetes, erzähle ich Ihnen mehr darüber im nächsten Kapitel: [FastAPI in Containern – Docker](docker.md){.internal-link target=_blank}. + +Insbesondere wenn die Anwendung auf **Kubernetes** läuft, werden Sie wahrscheinlich **keine** Worker verwenden wollen, und stattdessen **einen einzelnen Uvicorn-Prozess pro Container** ausführen wollen, aber ich werde Ihnen später in diesem Kapitel mehr darüber erzählen. + +/// + +## Mehrere Worker { #multiple-workers } + +Sie können mehrere Worker mit der `--workers`-Befehlszeilenoption starten: + +//// tab | `fastapi` + +Wenn Sie den `fastapi`-Befehl verwenden: + +
+ +```console +$ fastapi run --workers 4 main.py + + FastAPI Starting production server 🚀 + + Searching for package file structure from directories with + __init__.py files + Importing from /home/user/code/awesomeapp + + module 🐍 main.py + + code Importing the FastAPI app object from the module with the + following code: + + from main import app + + app Using import string: main:app + + server Server started at http://0.0.0.0:8000 + server Documentation at http://0.0.0.0:8000/docs + + Logs: + + INFO Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to + quit) + INFO Started parent process [27365] + INFO Started server process [27368] + INFO Started server process [27369] + INFO Started server process [27370] + INFO Started server process [27367] + INFO Waiting for application startup. + INFO Waiting for application startup. + INFO Waiting for application startup. + INFO Waiting for application startup. + INFO Application startup complete. + INFO Application startup complete. + INFO Application startup complete. + INFO Application startup complete. +``` + +
+ +//// + +//// tab | `uvicorn` + +Wenn Sie den `uvicorn`-Befehl direkt verwenden möchten: + +
+ +```console +$ uvicorn main:app --host 0.0.0.0 --port 8080 --workers 4 +INFO: Uvicorn running on http://0.0.0.0:8080 (Press CTRL+C to quit) +INFO: Started parent process [27365] +INFO: Started server process [27368] +INFO: Waiting for application startup. +INFO: Application startup complete. +INFO: Started server process [27369] +INFO: Waiting for application startup. +INFO: Application startup complete. +INFO: Started server process [27370] +INFO: Waiting for application startup. +INFO: Application startup complete. +INFO: Started server process [27367] +INFO: Waiting for application startup. +INFO: Application startup complete. +``` + +
+ +//// + +Die einzige neue Option hier ist `--workers`, die Uvicorn anweist, 4 Workerprozesse zu starten. + +Sie können auch sehen, dass die **PID** jedes Prozesses angezeigt wird, `27365` für den übergeordneten Prozess (dies ist der **Prozessmanager**) und eine für jeden Workerprozess: `27368`, `27369`, `27370` und `27367`. + +## Deployment-Konzepte { #deployment-concepts } + +Hier haben Sie gesehen, wie Sie mehrere **Worker** verwenden, um die Ausführung der Anwendung zu **parallelisieren**, **mehrere Kerne** der CPU zu nutzen und in der Lage zu sein, **mehr Requests** zu bearbeiten. + +In der Liste der Deployment-Konzepte von oben würde die Verwendung von Workern hauptsächlich bei der **Replikation** und ein wenig bei **Neustarts** helfen, aber Sie müssen sich trotzdem um die anderen kümmern: + +* **Sicherheit – HTTPS** +* **Beim Hochfahren ausführen** +* **Neustarts** +* Replikation (die Anzahl der laufenden Prozesse) +* **Arbeitsspeicher** +* **Schritte vor dem Start** + +## Container und Docker { #containers-and-docker } + +Im nächsten Kapitel über [FastAPI in Containern – Docker](docker.md){.internal-link target=_blank} werde ich einige Strategien erläutern, die Sie für den Umgang mit den anderen **Deployment-Konzepten** verwenden können. + +Ich zeige Ihnen, wie Sie **Ihr eigenes Image von Grund auf erstellen**, um einen einzelnen Uvicorn-Prozess auszuführen. Es ist ein einfacher Vorgang und wahrscheinlich das, was Sie tun möchten, wenn Sie ein verteiltes Containerverwaltungssystem wie **Kubernetes** verwenden. + +## Zusammenfassung { #recap } + +Sie können mehrere Workerprozesse mit der `--workers`-CLI-Option über die `fastapi`- oder `uvicorn`-Befehle nutzen, um **Multikern-CPUs** auszunutzen und **mehrere Prozesse parallel** auszuführen. + +Sie könnten diese Tools und Ideen nutzen, wenn Sie **Ihr eigenes Deployment-System** einrichten und sich dabei selbst um die anderen Deployment-Konzepte kümmern. + +Schauen Sie sich das nächste Kapitel an, um mehr über **FastAPI** mit Containern (z. B. Docker und Kubernetes) zu erfahren. Sie werden sehen, dass diese Tools auch einfache Möglichkeiten bieten, die anderen **Deployment-Konzepte** zu lösen. ✨ diff --git a/docs/de/docs/deployment/versions.md b/docs/de/docs/deployment/versions.md new file mode 100644 index 0000000..d7ecb76 --- /dev/null +++ b/docs/de/docs/deployment/versions.md @@ -0,0 +1,93 @@ +# Über FastAPI-Versionen { #about-fastapi-versions } + +**FastAPI** wird bereits in vielen Anwendungen und Systemen produktiv eingesetzt. Und die Testabdeckung wird bei 100 % gehalten. Aber seine Entwicklung geht immer noch schnell voran. + +Es werden regelmäßig neue Funktionen hinzugefügt, Fehler werden regelmäßig behoben und der Code wird weiterhin kontinuierlich verbessert. + +Aus diesem Grund sind die aktuellen Versionen immer noch `0.x.x`, was darauf hindeutet, dass jede Version möglicherweise nicht abwärtskompatible Änderungen haben könnte. Dies folgt den Konventionen der semantischen Versionierung. + +Sie können jetzt Produktionsanwendungen mit **FastAPI** erstellen (und das tun Sie wahrscheinlich schon seit einiger Zeit), Sie müssen nur sicherstellen, dass Sie eine Version verwenden, die korrekt mit dem Rest Ihres Codes funktioniert. + +## Ihre `fastapi`-Version pinnen { #pin-your-fastapi-version } + +Als Erstes sollten Sie die Version von **FastAPI**, die Sie verwenden, an die höchste Version „pinnen“, von der Sie wissen, dass sie für Ihre Anwendung korrekt funktioniert. + +Angenommen, Sie verwenden in Ihrer App die Version `0.112.0`. + +Wenn Sie eine `requirements.txt`-Datei verwenden, können Sie die Version wie folgt angeben: + +```txt +fastapi[standard]==0.112.0 +``` + +Das würde bedeuten, dass Sie genau die Version `0.112.0` verwenden. + +Oder Sie können sie auch anpinnen mit: + +```txt +fastapi[standard]>=0.112.0,<0.113.0 +``` + +Das würde bedeuten, dass Sie eine Version `0.112.0` oder höher verwenden würden, aber kleiner als `0.113.0`, beispielsweise würde eine Version `0.112.2` immer noch akzeptiert. + +Wenn Sie zum Verwalten Ihrer Installationen andere Tools wie `uv`, Poetry, Pipenv oder andere verwenden, sie verfügen alle über eine Möglichkeit, bestimmte Versionen für Ihre Packages zu definieren. + +## Verfügbare Versionen { #available-versions } + +Die verfügbaren Versionen können Sie in den [Versionshinweisen](../release-notes.md){.internal-link target=_blank} einsehen (z. B. um zu überprüfen, welches die neueste Version ist). + +## Über Versionen { #about-versions } + +Gemäß den Konventionen zur semantischen Versionierung könnte jede Version unter `1.0.0` potenziell nicht abwärtskompatible Änderungen hinzufügen. + +FastAPI folgt auch der Konvention, dass jede „PATCH“-Versionsänderung für Bugfixes und abwärtskompatible Änderungen gedacht ist. + +/// tip | Tipp + +Der „PATCH“ ist die letzte Zahl, zum Beispiel ist in `0.2.3` die PATCH-Version `3`. + +/// + +Sie sollten also in der Lage sein, eine Version wie folgt anzupinnen: + +```txt +fastapi>=0.45.0,<0.46.0 +``` + +Nicht abwärtskompatible Änderungen und neue Funktionen werden in „MINOR“-Versionen hinzugefügt. + +/// tip | Tipp + +„MINOR“ ist die Zahl in der Mitte, zum Beispiel ist in `0.2.3` die MINOR-Version `2`. + +/// + +## Upgrade der FastAPI-Versionen { #upgrading-the-fastapi-versions } + +Sie sollten Tests für Ihre App hinzufügen. + +Mit **FastAPI** ist das sehr einfach (dank Starlette), schauen Sie sich die Dokumentation an: [Testen](../tutorial/testing.md){.internal-link target=_blank} + +Nachdem Sie Tests erstellt haben, können Sie die **FastAPI**-Version auf eine neuere Version aktualisieren und sicherstellen, dass Ihr gesamter Code ordnungsgemäß funktioniert, indem Sie Ihre Tests ausführen. + +Wenn alles funktioniert oder nachdem Sie die erforderlichen Änderungen vorgenommen haben und alle Ihre Tests bestehen, können Sie Ihr `fastapi` an die neue aktuelle Version pinnen. + +## Über Starlette { #about-starlette } + +Sie sollten die Version von `starlette` nicht pinnen. + +Verschiedene Versionen von **FastAPI** verwenden eine bestimmte neuere Version von Starlette. + +Sie können **FastAPI** also einfach die korrekte Starlette-Version verwenden lassen. + +## Über Pydantic { #about-pydantic } + +Pydantic integriert die Tests für **FastAPI** in seine eigenen Tests, sodass neue Versionen von Pydantic (über `1.0.0`) immer mit FastAPI kompatibel sind. + +Sie können Pydantic an jede für Sie geeignete Version über `1.0.0` anpinnen. + +Zum Beispiel: + +```txt +pydantic>=2.7.0,<3.0.0 +``` diff --git a/docs/de/docs/environment-variables.md b/docs/de/docs/environment-variables.md new file mode 100644 index 0000000..9d8c9f7 --- /dev/null +++ b/docs/de/docs/environment-variables.md @@ -0,0 +1,298 @@ +# Umgebungsvariablen { #environment-variables } + +/// tip | Tipp + +Wenn Sie bereits wissen, was „Umgebungsvariablen“ sind und wie man sie verwendet, können Sie dies überspringen. + +/// + +Eine Umgebungsvariable (auch bekannt als „**env var**“) ist eine Variable, die **außerhalb** des Python-Codes im **Betriebssystem** lebt und von Ihrem Python-Code (oder auch von anderen Programmen) gelesen werden kann. + +Umgebungsvariablen können nützlich sein, um **Einstellungen** der Anwendung zu handhaben, als Teil der **Installation** von Python usw. + +## Umgebungsvariablen erstellen und verwenden { #create-and-use-env-vars } + +Sie können Umgebungsvariablen in der **Shell (Terminal)** erstellen und verwenden, ohne Python zu benötigen: + +//// tab | Linux, macOS, Windows Bash + +
+ +```console +// Sie können eine Umgebungsvariable MY_NAME erstellen mit +$ export MY_NAME="Wade Wilson" + +// Dann können Sie sie mit anderen Programmen verwenden, etwa +$ echo "Hello $MY_NAME" + +Hello Wade Wilson +``` + +
+ +//// + +//// tab | Windows PowerShell + +
+ +```console +// Erstellen Sie eine Umgebungsvariable MY_NAME +$ $Env:MY_NAME = "Wade Wilson" + +// Verwenden Sie sie mit anderen Programmen, etwa +$ echo "Hello $Env:MY_NAME" + +Hello Wade Wilson +``` + +
+ +//// + +## Umgebungsvariablen in Python lesen { #read-env-vars-in-python } + +Sie können auch Umgebungsvariablen **außerhalb** von Python erstellen, im Terminal (oder mit jeder anderen Methode) und sie dann **in Python** lesen. + +Zum Beispiel könnten Sie eine Datei `main.py` haben mit: + +```Python hl_lines="3" +import os + +name = os.getenv("MY_NAME", "World") +print(f"Hello {name} from Python") +``` + +/// tip | Tipp + +Das zweite Argument von `os.getenv()` ist der Defaultwert, der zurückgegeben wird. + +Wenn er nicht angegeben wird, ist er standardmäßig `None`. Hier geben wir `"World"` als den zu verwendenden Defaultwert an. + +/// + +Dann könnten Sie das Python-Programm aufrufen: + +//// tab | Linux, macOS, Windows Bash + +
+ +```console +// Hier setzen wir die Umgebungsvariable noch nicht +$ python main.py + +// Da wir die Umgebungsvariable nicht gesetzt haben, erhalten wir den Defaultwert + +Hello World from Python + +// Aber wenn wir zuerst eine Umgebungsvariable erstellen +$ export MY_NAME="Wade Wilson" + +// Und dann das Programm erneut aufrufen +$ python main.py + +// Jetzt kann es die Umgebungsvariable lesen + +Hello Wade Wilson from Python +``` + +
+ +//// + +//// tab | Windows PowerShell + +
+ +```console +// Hier setzen wir die Umgebungsvariable noch nicht +$ python main.py + +// Da wir die Umgebungsvariable nicht gesetzt haben, erhalten wir den Defaultwert + +Hello World from Python + +// Aber wenn wir zuerst eine Umgebungsvariable erstellen +$ $Env:MY_NAME = "Wade Wilson" + +// Und dann das Programm erneut aufrufen +$ python main.py + +// Jetzt kann es die Umgebungsvariable lesen + +Hello Wade Wilson from Python +``` + +
+ +//// + +Da Umgebungsvariablen außerhalb des Codes gesetzt werden können, aber vom Code gelesen werden können und nicht mit den restlichen Dateien gespeichert (in `git` committet) werden müssen, werden sie häufig für Konfigurationen oder **Einstellungen** verwendet. + +Sie können auch eine Umgebungsvariable nur für einen **spezifischen Programmaufruf** erstellen, die nur für dieses Programm und nur für dessen Dauer verfügbar ist. + +Um dies zu tun, erstellen Sie sie direkt vor dem Programmaufruf, in derselben Zeile: + +
+ +```console +// Erstellen Sie eine Umgebungsvariable MY_NAME in der Zeile für diesen Programmaufruf +$ MY_NAME="Wade Wilson" python main.py + +// Jetzt kann es die Umgebungsvariable lesen + +Hello Wade Wilson from Python + +// Die Umgebungsvariable existiert danach nicht mehr +$ python main.py + +Hello World from Python +``` + +
+ +/// tip | Tipp + +Sie können mehr darüber lesen auf The Twelve-Factor App: Config. + +/// + +## Typen und Validierung { #types-and-validation } + +Diese Umgebungsvariablen können nur **Textstrings** handhaben, da sie extern zu Python sind und kompatibel mit anderen Programmen und dem Rest des Systems (und sogar mit verschiedenen Betriebssystemen, wie Linux, Windows, macOS) sein müssen. + +Das bedeutet, dass **jeder Wert**, der in Python von einer Umgebungsvariable gelesen wird, **ein `str` sein wird**, und jede Konvertierung in einen anderen Typ oder jede Validierung muss im Code vorgenommen werden. + +Sie werden mehr darüber lernen, wie man Umgebungsvariablen zur Handhabung von **Anwendungseinstellungen** verwendet, im [Handbuch für fortgeschrittene Benutzer – Einstellungen und Umgebungsvariablen](./advanced/settings.md){.internal-link target=_blank}. + +## `PATH`-Umgebungsvariable { #path-environment-variable } + +Es gibt eine **spezielle** Umgebungsvariable namens **`PATH`**, die von den Betriebssystemen (Linux, macOS, Windows) verwendet wird, um Programme zu finden, die ausgeführt werden sollen. + +Der Wert der Variable `PATH` ist ein langer String, der aus Verzeichnissen besteht, die auf Linux und macOS durch einen Doppelpunkt `:` und auf Windows durch ein Semikolon `;` getrennt sind. + +Zum Beispiel könnte die `PATH`-Umgebungsvariable so aussehen: + +//// tab | Linux, macOS + +```plaintext +/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin +``` + +Das bedeutet, dass das System nach Programmen in den Verzeichnissen suchen sollte: + +* `/usr/local/bin` +* `/usr/bin` +* `/bin` +* `/usr/sbin` +* `/sbin` + +//// + +//// tab | Windows + +```plaintext +C:\Program Files\Python312\Scripts;C:\Program Files\Python312;C:\Windows\System32 +``` + +Das bedeutet, dass das System nach Programmen in den Verzeichnissen suchen sollte: + +* `C:\Program Files\Python312\Scripts` +* `C:\Program Files\Python312` +* `C:\Windows\System32` + +//// + +Wenn Sie einen **Befehl** im Terminal eingeben, **sucht** das Betriebssystem nach dem Programm in **jedem dieser Verzeichnisse**, die in der `PATH`-Umgebungsvariablen aufgeführt sind. + +Zum Beispiel, wenn Sie `python` im Terminal eingeben, sucht das Betriebssystem nach einem Programm namens `python` im **ersten Verzeichnis** in dieser Liste. + +Wenn es es findet, wird es **benutzt**. Andernfalls sucht es weiter in den **anderen Verzeichnissen**. + +### Python installieren und den `PATH` aktualisieren { #installing-python-and-updating-the-path } + +Wenn Sie Python installieren, könnten Sie gefragt werden, ob Sie die `PATH`-Umgebungsvariable aktualisieren möchten. + +//// tab | Linux, macOS + +Angenommen, Sie installieren Python und es landet in einem Verzeichnis `/opt/custompython/bin`. + +Wenn Sie erlauben, die `PATH`-Umgebungsvariable zu aktualisieren, fügt der Installer `/opt/custompython/bin` zur `PATH`-Umgebungsvariable hinzu. + +Das könnte so aussehen: + +```plaintext +/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/custompython/bin +``` + +Auf diese Weise, wenn Sie `python` im Terminal eingeben, findet das System das Python-Programm in `/opt/custompython/bin` (das letzte Verzeichnis) und verwendet dieses. + +//// + +//// tab | Windows + +Angenommen, Sie installieren Python und es landet in einem Verzeichnis `C:\opt\custompython\bin`. + +Wenn Sie erlauben, die `PATH`-Umgebungsvariable zu aktualisieren, fügt der Installer `C:\opt\custompython\bin` zur `PATH`-Umgebungsvariable hinzu. + +```plaintext +C:\Program Files\Python312\Scripts;C:\Program Files\Python312;C:\Windows\System32;C:\opt\custompython\bin +``` + +Auf diese Weise, wenn Sie `python` im Terminal eingeben, findet das System das Python-Programm in `C:\opt\custompython\bin` (das letzte Verzeichnis) und verwendet dieses. + +//// + +Also, wenn Sie tippen: + +
+ +```console +$ python +``` + +
+ +//// tab | Linux, macOS + +Das System wird das `python` Programm in `/opt/custompython/bin` **finden** und es ausführen. + +Es wäre ungefähr gleichbedeutend mit der Eingabe von: + +
+ +```console +$ /opt/custompython/bin/python +``` + +
+ +//// + +//// tab | Windows + +Das System wird das `python` Programm in `C:\opt\custompython\bin\python` **finden** und es ausführen. + +Es wäre ungefähr gleichbedeutend mit der Eingabe von: + +
+ +```console +$ C:\opt\custompython\bin\python +``` + +
+ +//// + +Diese Informationen werden nützlich sein, wenn Sie über [Virtuelle Umgebungen](virtual-environments.md){.internal-link target=_blank} lernen. + +## Fazit { #conclusion } + +Mit diesem Wissen sollten Sie ein grundlegendes Verständnis davon haben, was **Umgebungsvariablen** sind und wie man sie in Python verwendet. + +Sie können auch mehr darüber in der Wikipedia zu Umgebungsvariablen lesen. + +In vielen Fällen ist es nicht sehr offensichtlich, wie Umgebungsvariablen nützlich und sofort anwendbar sein könnten. Aber sie tauchen immer wieder in vielen verschiedenen Szenarien auf, wenn Sie entwickeln, deshalb ist es gut, darüber Bescheid zu wissen. + +Zum Beispiel werden Sie diese Informationen im nächsten Abschnitt über [Virtuelle Umgebungen](virtual-environments.md) benötigen. diff --git a/docs/de/docs/fastapi-cli.md b/docs/de/docs/fastapi-cli.md new file mode 100644 index 0000000..86a797a --- /dev/null +++ b/docs/de/docs/fastapi-cli.md @@ -0,0 +1,75 @@ +# FastAPI CLI { #fastapi-cli } + +**FastAPI CLI** ist ein Kommandozeilenprogramm, mit dem Sie Ihre FastAPI-App bereitstellen, Ihr FastAPI-Projekt verwalten und mehr. + +Wenn Sie FastAPI installieren (z. B. mit `pip install "fastapi[standard]"`), wird ein Package namens `fastapi-cli` mitgeliefert, das den Befehl `fastapi` im Terminal bereitstellt. + +Um Ihre FastAPI-App für die Entwicklung auszuführen, können Sie den Befehl `fastapi dev` verwenden: + +
+ +```console +$ fastapi dev main.py + + FastAPI Starting development server 🚀 + + Searching for package file structure from directories with + __init__.py files + Importing from /home/user/code/awesomeapp + + module 🐍 main.py + + code Importing the FastAPI app object from the module with the + following code: + + from main import app + + app Using import string: main:app + + server Server started at http://127.0.0.1:8000 + server Documentation at http://127.0.0.1:8000/docs + + tip Running in development mode, for production use: + fastapi run + + Logs: + + 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 [383138] using WatchFiles + INFO Started server process [383153] + INFO Waiting for application startup. + INFO Application startup complete. +``` + +
+ +Das Kommandozeilenprogramm namens `fastapi` ist das **FastAPI CLI**. + +FastAPI CLI nimmt den Pfad zu Ihrem Python-Programm (z. B. `main.py`), erkennt automatisch die `FastAPI`-Instanz (häufig `app` genannt), bestimmt den korrekten Importprozess und stellt sie dann bereit. + +Für die Produktion würden Sie stattdessen `fastapi run` verwenden. 🚀 + +Intern verwendet das **FastAPI CLI** Uvicorn, einen leistungsstarken, produktionsreifen, ASGI-Server. 😎 + +## `fastapi dev` { #fastapi-dev } + +Das Ausführen von `fastapi dev` startet den Entwicklermodus. + +Standardmäßig ist **Autoreload** aktiviert, das den Server automatisch neu lädt, wenn Sie Änderungen an Ihrem Code vornehmen. Dies ist ressourcenintensiv und könnte weniger stabil sein als wenn es deaktiviert ist. Sie sollten es nur für die Entwicklung verwenden. Es horcht auch auf der IP-Adresse `127.0.0.1`, die die IP für Ihre Maschine ist, um nur mit sich selbst zu kommunizieren (`localhost`). + +## `fastapi run` { #fastapi-run } + +Das Ausführen von `fastapi run` startet FastAPI standardmäßig im Produktionsmodus. + +Standardmäßig ist **Autoreload** deaktiviert. Es horcht auch auf der IP-Adresse `0.0.0.0`, was alle verfügbaren IP-Adressen bedeutet, so wird es öffentlich zugänglich für jeden, der mit der Maschine kommunizieren kann. So würden Sie es normalerweise in der Produktion ausführen, beispielsweise in einem Container. + +In den meisten Fällen würden (und sollten) Sie einen „Terminierungsproxy“ haben, der HTTPS für Sie verwaltet. Dies hängt davon ab, wie Sie Ihre Anwendung deployen. Ihr Anbieter könnte dies für Sie erledigen, oder Sie müssen es selbst einrichten. + +/// tip | Tipp + +Sie können mehr darüber in der [Deployment-Dokumentation](deployment/index.md){.internal-link target=_blank} erfahren. + +/// diff --git a/docs/de/docs/features.md b/docs/de/docs/features.md new file mode 100644 index 0000000..0b51e97 --- /dev/null +++ b/docs/de/docs/features.md @@ -0,0 +1,201 @@ +# Merkmale { #features } + +## FastAPI Merkmale { #fastapi-features } + +**FastAPI** ermöglicht Ihnen Folgendes: + +### Basiert auf offenen Standards { #based-on-open-standards } + +* OpenAPI für die Erstellung von APIs, inklusive Deklarationen von Pfad-Operationen, Parametern, Requestbodys, Sicherheit, usw. +* Automatische Dokumentation der Datenmodelle mit JSON Schema (da OpenAPI selbst auf JSON Schema basiert). +* Um diese Standards herum entworfen, nach sorgfältigem Studium. Statt einer nachträglichen Schicht darüber. +* Dies ermöglicht auch automatische **Client-Code-Generierung** in vielen Sprachen. + +### Automatische Dokumentation { #automatic-docs } + +Interaktive API-Dokumentation und erkundbare Web-Benutzeroberflächen. Da das Framework auf OpenAPI basiert, gibt es mehrere Optionen, zwei sind standardmäßig vorhanden. + +* Swagger UI, bietet interaktive Erkundung, testen und rufen Sie Ihre API direkt im Webbrowser auf. + +![Swagger UI Interaktion](https://fastapi.tiangolo.com/img/index/index-03-swagger-02.png) + +* Alternative API-Dokumentation mit ReDoc. + +![ReDoc](https://fastapi.tiangolo.com/img/index/index-06-redoc-02.png) + +### Nur modernes Python { #just-modern-python } + +Alles basiert auf Standard-**Python-Typ**deklarationen (dank Pydantic). Es muss keine neue Syntax gelernt werden, nur standardisiertes modernes Python. + +Wenn Sie eine zweiminütige Auffrischung benötigen, wie man Python-Typen verwendet (auch wenn Sie FastAPI nicht benutzen), schauen Sie sich das kurze Tutorial an: [Einführung in Python-Typen](python-types.md){.internal-link target=_blank}. + +Sie schreiben Standard-Python mit Typen: + +```Python +from datetime import date + +from pydantic import BaseModel + +# Deklarieren Sie eine Variable als ein str +# und bekommen Sie Editor-Unterstützung innerhalb der Funktion +def main(user_id: str): + return user_id + + +# Ein Pydantic-Modell +class User(BaseModel): + id: int + name: str + joined: date +``` + +Das kann nun wie folgt verwendet werden: + +```Python +my_user: User = User(id=3, name="John Doe", joined="2018-07-19") + +second_user_data = { + "id": 4, + "name": "Mary", + "joined": "2018-11-30", +} + +my_second_user: User = User(**second_user_data) +``` + +/// info | Info + +`**second_user_data` bedeutet: + +Nimm die Schlüssel-Wert-Paare des `second_user_data` Dicts und übergebe sie direkt als Schlüsselwort-Argumente. Äquivalent zu: `User(id=4, name="Mary", joined="2018-11-30")` + +/// + +### Editor Unterstützung { #editor-support } + +Das ganze Framework wurde so entworfen, dass es einfach und intuitiv zu benutzen ist; alle Entscheidungen wurden auf mehreren Editoren getestet, sogar vor der Implementierung, um die bestmögliche Entwicklererfahrung zu gewährleisten. + +In den Python-Entwickler-Umfragen wird klar, dass die meist genutzte Funktion die „Autovervollständigung“ ist. + +Das gesamte **FastAPI**-Framework ist darauf ausgelegt, das zu erfüllen. Autovervollständigung funktioniert überall. + +Sie werden selten noch mal in der Dokumentation nachschauen müssen. + +So kann Ihr Editor Sie unterstützen: + +* in Visual Studio Code: + +![Editor Unterstützung](https://fastapi.tiangolo.com/img/vscode-completion.png) + +* in PyCharm: + +![Editor Unterstützung](https://fastapi.tiangolo.com/img/pycharm-completion.png) + +Sie bekommen sogar Autovervollständigung an Stellen, an denen Sie dies vorher nicht für möglich gehalten hätten. Zum Beispiel der `price` Schlüssel in einem JSON Datensatz (dieser könnte auch verschachtelt sein), der aus einem Request kommt. + +Nie wieder falsche Schlüsselnamen tippen, Hin und Herhüpfen zwischen der Dokumentation, Hoch- und Runterscrollen, um herauszufinden, ob es `username` oder `user_name` war. + +### Kompakt { #short } + +Es gibt für alles sensible **Defaultwerte**, mit optionaler Konfiguration überall. Alle Parameter können feinjustiert werden, damit sie tun, was Sie benötigen, und die API definieren, die Sie brauchen. + +Aber standardmäßig **„funktioniert einfach alles“**. + +### Validierung { #validation } + +* Validierung für die meisten (oder alle?) Python-**Datentypen**, hierzu gehören: + * JSON Objekte (`dict`). + * JSON Listen (`list`), die den Typ ihrer Elemente definieren. + * Strings (`str`) mit definierter minimaler und maximaler Länge. + * Zahlen (`int`, `float`) mit Mindest- und Maximalwerten, usw. + +* Validierung für mehr exotische Typen, wie: + * URL. + * E-Mail. + * UUID. + * ... und andere. + +Die gesamte Validierung übernimmt das gut etablierte und robuste **Pydantic**. + +### Sicherheit und Authentifizierung { #security-and-authentication } + +Sicherheit und Authentifizierung sind integriert. Ohne Kompromisse bei Datenbanken oder Datenmodellen. + +Alle in OpenAPI definierten Sicherheitsschemas, inklusive: + +* HTTP Basic. +* **OAuth2** (auch mit **JWT Tokens**). Siehe dazu das Tutorial zu [OAuth2 mit JWT](tutorial/security/oauth2-jwt.md){.internal-link target=_blank}. +* API Schlüssel in: + * Headern. + * Query-Parametern. + * Cookies, usw. + +Zusätzlich alle Sicherheitsfunktionen von Starlette (inklusive **Session Cookies**). + +Alles als wiederverwendbare Tools und Komponenten gebaut, die einfach in Ihre Systeme, Datenspeicher, relationale und nicht-relationale Datenbanken, usw., integriert werden können. + +### Dependency Injection { #dependency-injection } + +FastAPI enthält ein extrem einfach zu verwendendes, aber extrem mächtiges Dependency Injection System. + +* Selbst Abhängigkeiten können Abhängigkeiten haben, woraus eine Hierarchie oder ein **„Graph“ von Abhängigkeiten** entsteht. +* Alles **automatisch gehandhabt** durch das Framework. +* Alle Abhängigkeiten können Daten von Requests anfordern und das Verhalten von **Pfadoperationen** und der automatisierten Dokumentation **modifizieren**. +* **Automatische Validierung** selbst für solche Parameter von *Pfadoperationen*, welche in Abhängigkeiten definiert sind. +* Unterstützung für komplexe Authentifizierungssysteme, **Datenbankverbindungen**, usw. +* **Keine Kompromisse** bei Datenbanken, Frontends, usw., sondern einfache Integration mit allen. + +### Unbegrenzte Erweiterungen { #unlimited-plug-ins } + +Oder mit anderen Worten, sie werden nicht benötigt. Importieren und nutzen Sie den Code, den Sie brauchen. + +Jede Integration wurde so entworfen, dass sie so einfach zu nutzen ist (mit Abhängigkeiten), dass Sie eine Erweiterung für Ihre Anwendung mit nur zwei Zeilen Code erstellen können. Hierbei nutzen Sie die gleiche Struktur und Syntax, wie bei *Pfadoperationen*. + +### Getestet { #tested } + +* 100 % Testabdeckung. +* 100 % Typen annotiert. +* Verwendet in Produktionsanwendungen. + +## Starlette Merkmale { #starlette-features } + +**FastAPI** ist vollkommen kompatibel (und basiert auf) Starlette. Das bedeutet, wenn Sie eigenen Starlette Quellcode haben, funktioniert der. + +`FastAPI` ist tatsächlich eine Unterklasse von `Starlette`. Wenn Sie also bereits Starlette kennen oder benutzen, das meiste funktioniert genau so. + +Mit **FastAPI** bekommen Sie alles von **Starlette** (da FastAPI nur Starlette auf Steroiden ist): + +* Schwer beeindruckende Performanz. Es ist eines der schnellsten Python-Frameworks, auf Augenhöhe mit **NodeJS** und **Go**. +* **WebSocket**-Unterstützung. +* Hintergrundtasks im selben Prozess. +* Startup- und Shutdown-Events. +* Testclient basierend auf HTTPX. +* **CORS**, GZip, statische Dateien, Responses streamen. +* **Sitzungs- und Cookie**-Unterstützung. +* 100 % Testabdeckung. +* 100 % Typen annotierte Codebasis. + +## Pydantic Merkmale { #pydantic-features } + +**FastAPI** ist vollkommen kompatibel (und basiert auf) Pydantic. Das bedeutet, wenn Sie eigenen Pydantic Quellcode haben, funktioniert der. + +Inklusive externer Bibliotheken, die auf Pydantic basieren, wie ORMs, ODMs für Datenbanken. + +Daher können Sie in vielen Fällen das Objekt eines Requests **direkt zur Datenbank** schicken, weil alles automatisch validiert wird. + +Das gleiche gilt auch für die andere Richtung: Sie können in vielen Fällen das Objekt aus der Datenbank **direkt zum Client** senden. + +Mit **FastAPI** bekommen Sie alle Funktionen von **Pydantic** (da FastAPI für die gesamte Datenverarbeitung Pydantic nutzt): + +* **Kein Kopfzerbrechen**: + * Keine neue Schemadefinition-Mikrosprache zu lernen. + * Wenn Sie Pythons Typen kennen, wissen Sie, wie man Pydantic verwendet. +* Gutes Zusammenspiel mit Ihrer/Ihrem **IDE/Linter/Gehirn**: + * Weil Pydantics Datenstrukturen einfach nur Instanzen ihrer definierten Klassen sind; Autovervollständigung, Linting, mypy und Ihre Intuition sollten alle einwandfrei mit Ihren validierten Daten funktionieren. +* Validierung von **komplexen Strukturen**: + * Benutzung von hierarchischen Pydantic-Modellen, Python-`typing`s `List` und `Dict`, etc. + * Die Validierer erlauben es, komplexe Datenschemen klar und einfach zu definieren, überprüft und dokumentiert als JSON Schema. + * Sie können tief **verschachtelte JSON** Objekte haben, die alle validiert und annotiert sind. +* **Erweiterbar**: + * Pydantic erlaubt die Definition von eigenen Datentypen oder sie können die Validierung mit einer `validator`-dekorierten Methode im Modell erweitern. +* 100 % Testabdeckung. diff --git a/docs/de/docs/help-fastapi.md b/docs/de/docs/help-fastapi.md new file mode 100644 index 0000000..6cbafca --- /dev/null +++ b/docs/de/docs/help-fastapi.md @@ -0,0 +1,256 @@ +# FastAPI helfen – Hilfe erhalten { #help-fastapi-get-help } + +Mögen Sie **FastAPI**? + +Möchten Sie FastAPI, anderen Benutzern und dem Autor helfen? + +Oder möchten Sie Hilfe zu **FastAPI** erhalten? + +Es gibt sehr einfache Möglichkeiten zu helfen (einige erfordern nur ein oder zwei Klicks). + +Und es gibt auch mehrere Möglichkeiten, Hilfe zu bekommen. + +## Newsletter abonnieren { #subscribe-to-the-newsletter } + +Sie können den (unregelmäßigen) [**FastAPI and friends**-Newsletter](newsletter.md){.internal-link target=_blank} abonnieren, um über folgende Themen informiert zu bleiben: + +* Neuigkeiten über FastAPI und Freunde 🚀 +* Anleitungen 📝 +* Funktionen ✨ +* Breaking Changes 🚨 +* Tipps und Tricks ✅ + +## FastAPI auf X (Twitter) folgen { #follow-fastapi-on-x-twitter } + +Folgen Sie @fastapi auf **X (Twitter)**, um die neuesten Nachrichten über **FastAPI** zu erhalten. 🐦 + +## **FastAPI** auf GitHub einen Stern geben { #star-fastapi-in-github } + +Sie können FastAPI auf GitHub „starren“ (klicken Sie auf den Stern-Button oben rechts): https://github.com/fastapi/fastapi. ⭐️ + +Durch das Hinzufügen eines Sterns können andere Benutzer es leichter finden und sehen, dass es für andere bereits nützlich war. + +## Das GitHub-Repository auf Releases überwachen { #watch-the-github-repository-for-releases } + +Sie können FastAPI auf GitHub „beobachten“ (klicken Sie auf den „watch“-Button oben rechts): https://github.com/fastapi/fastapi. 👀 + +Dort können Sie „Releases only“ auswählen. + +Auf diese Weise erhalten Sie Benachrichtigungen (per E-Mail), wenn es ein neues Release (eine neue Version) von **FastAPI** mit Bugfixes und neuen Funktionen gibt. + +## Mit dem Autor vernetzen { #connect-with-the-author } + +Sie können sich mit mir (Sebastián Ramírez / `tiangolo`), dem Autor, vernetzen. + +Sie können: + +* Mir auf **GitHub** folgen. + * Andere Open-Source-Projekte sehen, die ich erstellt habe und die Ihnen helfen könnten. + * Mir folgen, um zu sehen, wenn ich ein neues Open-Source-Projekt erstelle. +* Mir auf **X (Twitter)** folgen oder Mastodon. + * Mir mitteilen, wie Sie FastAPI verwenden (ich höre das gerne). + * Mitbekommen, wenn ich Ankündigungen mache oder neue Tools veröffentliche. + * Sie können auch @fastapi auf X (Twitter) folgen (ein separates Konto). +* Mir auf **LinkedIn** folgen. + * Mitbekommen, wenn ich Ankündigungen mache oder neue Tools veröffentliche (obwohl ich X (Twitter) häufiger verwende 🤷‍♂). +* Lesen, was ich schreibe (oder mir folgen) auf **Dev.to** oder **Medium**. + * Andere Ideen, Artikel lesen und mehr über die von mir erstellten Tools erfahren. + * Mir folgen, um zu lesen, wenn ich etwas Neues veröffentliche. + +## Über **FastAPI** tweeten { #tweet-about-fastapi } + +Tweeten Sie über **FastAPI** und teilen Sie mir und anderen mit, warum es Ihnen gefällt. 🎉 + +Ich höre gerne, wie **FastAPI** verwendet wird, was Ihnen daran gefallen hat, in welchem Projekt/Unternehmen Sie es verwenden, usw. + +## Für FastAPI abstimmen { #vote-for-fastapi } + +* Stimmen Sie für **FastAPI** auf Slant. +* Stimmen Sie für **FastAPI** auf AlternativeTo. +* Sagen Sie auf StackShare, dass Sie **FastAPI** verwenden. + +## Anderen bei Fragen auf GitHub helfen { #help-others-with-questions-in-github } + +Sie können versuchen, anderen bei ihren Fragen zu helfen: + +* GitHub-Diskussionen +* GitHub-Issues + +In vielen Fällen kennen Sie möglicherweise bereits die Antwort auf diese Fragen. 🤓 + +Wenn Sie vielen Menschen bei ihren Fragen helfen, werden Sie offizieller [FastAPI-Experte](fastapi-people.md#fastapi-experts){.internal-link target=_blank}. 🎉 + +Denken Sie daran, der wichtigste Punkt ist: Versuchen Sie, freundlich zu sein. Die Leute bringen ihre Frustrationen mit und fragen in vielen Fällen nicht auf die beste Art und Weise, aber versuchen Sie dennoch so gut wie möglich, freundlich zu sein. 🤗 + +Die **FastAPI**-Community soll freundlich und einladend sein. Akzeptieren Sie gleichzeitig kein Mobbing oder respektloses Verhalten gegenüber anderen. Wir müssen uns umeinander kümmern. + +--- + +So helfen Sie anderen bei Fragen (in Diskussionen oder Issues): + +### Die Frage verstehen { #understand-the-question } + +* Prüfen Sie, ob Sie verstehen können, was der **Zweck** und der Anwendungsfall der fragenden Person ist. + +* Überprüfen Sie dann, ob die Frage (die überwiegende Mehrheit sind Fragen) **klar** ist. + +* In vielen Fällen handelt es sich bei der gestellten Frage um eine Lösung, die der Benutzer sich vorstellt, aber es könnte eine **bessere** Lösung geben. Wenn Sie das Problem und den Anwendungsfall besser verstehen, können Sie eine bessere **Alternativlösung** vorschlagen. + +* Wenn Sie die Frage nicht verstehen können, fragen Sie nach weiteren **Details**. + +### Das Problem reproduzieren { #reproduce-the-problem } + +In den meisten Fällen und bei den meisten Fragen gibt es etwas in Bezug auf den **originalen Code** der Person. + +In vielen Fällen wird nur ein Fragment des Codes gepostet, aber das reicht nicht aus, um **das Problem zu reproduzieren**. + +* Sie können die Person bitten, ein minimales, reproduzierbares Beispiel bereitzustellen, welches Sie **kopieren, einfügen** und lokal ausführen können, um den gleichen Fehler oder das gleiche Verhalten zu sehen, das die Person sieht, oder um ihren Anwendungsfall besser zu verstehen. + +* Wenn Sie in Geberlaune sind, können Sie ein solches Beispiel selbst erstellen, nur basierend auf der Beschreibung des Problems. Denken Sie jedoch daran, dass dies viel Zeit in Anspruch nehmen kann und dass es besser sein kann, zunächst um eine Klärung des Problems zu bitten. + +### Lösungen vorschlagen { #suggest-solutions } + +* Nachdem Sie die Frage verstanden haben, können Sie eine mögliche **Antwort** geben. + +* In vielen Fällen ist es besser, das **zugrunde liegende Problem oder den Anwendungsfall** zu verstehen, da es möglicherweise einen besseren Weg zur Lösung gibt als das, was die Person versucht. + +### Um Schließung bitten { #ask-to-close } + +Wenn die Person antwortet, besteht eine hohe Chance, dass Sie ihr Problem gelöst haben. Herzlichen Glückwunsch, **Sie sind ein Held**! 🦸 + +* Wenn es tatsächlich das Problem gelöst hat, können Sie sie darum bitten: + + * In GitHub-Diskussionen: den Kommentar als **Antwort** zu markieren. + * In GitHub-Issues: Das Issue zu **schließen**. + +## Das GitHub-Repository beobachten { #watch-the-github-repository } + +Sie können FastAPI auf GitHub „beobachten“ (klicken Sie auf den „watch“-Button oben rechts): https://github.com/fastapi/fastapi. 👀 + +Wenn Sie dann „Watching“ statt „Releases only“ auswählen, erhalten Sie Benachrichtigungen, wenn jemand ein neues Issue eröffnet oder eine neue Frage stellt. Sie können auch spezifizieren, dass Sie nur über neue Issues, Diskussionen, PRs usw. benachrichtigt werden möchten. + +Dann können Sie versuchen, bei der Lösung solcher Fragen zu helfen. + +## Fragen stellen { #ask-questions } + +Sie können im GitHub-Repository eine neue Frage erstellen, zum Beispiel: + +* Stellen Sie eine **Frage** oder bitten Sie um Hilfe mit einem **Problem**. +* Schlagen Sie eine neue **Funktionalität** vor. + +**Hinweis**: Wenn Sie das tun, bitte ich Sie, auch anderen zu helfen. 😉 + +## Pull Requests prüfen { #review-pull-requests } + +Sie können mir helfen, Pull Requests von anderen zu überprüfen. + +Noch einmal, bitte versuchen Sie Ihr Bestes, freundlich zu sein. 🤗 + +--- + +Hier ist, was Sie beachten sollten und wie Sie einen Pull Request überprüfen: + +### Das Problem verstehen { #understand-the-problem } + +* Stellen Sie zunächst sicher, dass Sie **das Problem verstehen**, welches der Pull Request zu lösen versucht. Möglicherweise gibt es eine längere Diskussion dazu in einer GitHub-Diskussion oder einem GitHub-Issue. + +* Es besteht auch eine gute Chance, dass der Pull Request nicht wirklich benötigt wird, da das Problem auf **andere Weise** gelöst werden kann. Dann können Sie das vorschlagen oder danach fragen. + +### Keine Panik wegen des Stils { #dont-worry-about-style } + +* Machen Sie sich keine Sorgen über Dinge wie den Stil von Commit-Nachrichten. Ich werde den Commit zusammenführen und manuell anpassen. + +* Außerdem, keine Sorgen über Stilregeln, es gibt bereits automatisierte Tools, die das überprüfen. + +Und wenn es irgendeinen anderen Stil- oder Konsistenzbedarf gibt, werde ich direkt danach fragen oder zusätzliche Commits mit den erforderlichen Änderungen hinzufügen. + +### Den Code testen { #check-the-code } + +* Prüfen und lesen Sie den Code, fragen Sie sich, ob er Sinn macht, **führen Sie ihn lokal aus** und testen Sie, ob er das Problem tatsächlich löst. + +* Schreiben Sie dann einen **Kommentar** und berichten, dass Sie das getan haben. So weiß ich, dass Sie ihn wirklich überprüft haben. + +/// info | Info + +Leider kann ich PRs, nur weil sie von mehreren gutgeheißen wurden, nicht einfach vertrauen. + +Es ist mehrmals passiert, dass es PRs mit drei, fünf oder mehr Zustimmungen gibt, wahrscheinlich weil die Beschreibung ansprechend ist, aber wenn ich die PRs überprüfe, sind sie tatsächlich fehlerhaft, haben einen Bug, oder lösen das Problem nicht, welches sie behaupten, zu lösen. 😅 + +Daher ist es wirklich wichtig, dass Sie den Code wirklich lesen und ausführen und mir in den Kommentaren mitteilen, dass Sie dies getan haben. 🤓 + +/// + +* Wenn der PR in irgendeiner Weise vereinfacht werden kann, können Sie danach fragen, aber es gibt keinen Grund, zu wählerisch zu sein. Es gibt viele subjektive Standpunkte (und ich habe auch meinen eigenen 🙈), also ist es besser, wenn man sich auf die grundlegenden Dinge konzentriert. + +### Tests { #tests } + +* Helfen Sie mir zu überprüfen, dass der PR **Tests** hat. + +* Überprüfen Sie, dass diese Tests vor dem PR **fehlschlagen**. 🚨 + +* Überprüfen Sie dann, dass diese Tests nach dem PR **bestanden** werden. ✅ + +* Viele PRs haben keine Tests. Sie können den Autor daran **erinnern**, Tests hinzuzufügen, oder Sie können sogar selbst einige Tests **vorschlagen**. Das ist eines der Dinge, die am meisten Zeit in Anspruch nehmen, und Sie können dabei viel helfen. + +* Kommentieren Sie auch hier anschließend, was Sie versucht haben, sodass ich weiß, dass Sie es überprüft haben. 🤓 + +## Einen Pull Request erstellen { #create-a-pull-request } + +Sie können [zum Quellcode mit Pull Requests beitragen](contributing.md){.internal-link target=_blank}, zum Beispiel: + +* Um einen Tippfehler zu beheben, den Sie in der Dokumentation gefunden haben. +* Um einen Artikel, ein Video oder einen Podcast über FastAPI zu teilen, den Sie erstellt oder gefunden haben, indem Sie diese Datei bearbeiten. + * Stellen Sie sicher, dass Sie Ihren Link am Anfang des entsprechenden Abschnitts einfügen. +* Um zu helfen, [die Dokumentation in Ihre Sprache zu übersetzen](contributing.md#translations){.internal-link target=_blank}. + * Sie können auch dabei helfen, die von anderen erstellten Übersetzungen zu überprüfen (Review). +* Um neue Dokumentationsabschnitte vorzuschlagen. +* Um ein bestehendes Problem/Bug zu beheben. + * Stellen Sie sicher, dass Sie Tests hinzufügen. +* Um eine neue Funktionalität hinzuzufügen. + * Stellen Sie sicher, dass Sie Tests hinzufügen. + * Stellen Sie sicher, dass Sie Dokumentation hinzufügen, falls das notwendig ist. + +## FastAPI pflegen { #help-maintain-fastapi } + +Helfen Sie mir, **FastAPI** zu pflegen! 🤓 + +Es gibt viel zu tun, und das meiste davon können **SIE** tun. + +Die Hauptaufgaben, die Sie jetzt erledigen können, sind: + +* [Anderen bei Fragen auf GitHub helfen](#help-others-with-questions-in-github){.internal-link target=_blank} (siehe Abschnitt oben). +* [Pull Requests prüfen](#review-pull-requests){.internal-link target=_blank} (siehe Abschnitt oben). + +Diese beiden Aufgaben sind die Dinge, die **am meisten Zeit verbrauchen**. Das ist die Hauptarbeit bei der Wartung von FastAPI. + +Wenn Sie mir dabei helfen können, **helfen Sie mir, FastAPI zu pflegen** und Sie stellen sicher, dass es weiterhin **schneller und besser voranschreitet**. 🚀 + +## Am Chat teilnehmen { #join-the-chat } + +Treten Sie dem 👥 Discord-Chatserver 👥 bei und treffen Sie sich mit anderen Mitgliedern der FastAPI-Community. + +/// tip | Tipp + +Bei Fragen stellen Sie sie in GitHub-Diskussionen, dort besteht eine viel größere Chance, dass Sie Hilfe von den [FastAPI-Experten](fastapi-people.md#fastapi-experts){.internal-link target=_blank} erhalten. + +Nutzen Sie den Chat nur für andere allgemeine Gespräche. + +/// + +### Den Chat nicht für Fragen verwenden { #dont-use-the-chat-for-questions } + +Bedenken Sie, dass Sie in Chats, die „freie Konversation“ erlauben, leicht Fragen stellen können, die zu allgemein und schwer zu beantworten sind, sodass Sie möglicherweise keine Antworten erhalten. + +Auf GitHub hilft Ihnen die Vorlage dabei, die richtige Frage zu stellen, sodass Sie leichter eine gute Antwort erhalten können, oder sogar das Problem selbst lösen, bevor Sie überhaupt fragen. Und auf GitHub kann ich sicherstellen, dass ich immer alles beantworte, auch wenn es einige Zeit dauert. Persönlich kann ich das mit den Chat-Systemen nicht machen. 😅 + +Unterhaltungen in den Chat-Systemen sind auch nicht so leicht durchsuchbar wie auf GitHub, sodass Fragen und Antworten möglicherweise im Gespräch verloren gehen. Und nur die auf GitHub machen einen [FastAPI-Experten](fastapi-people.md#fastapi-experts){.internal-link target=_blank}, Sie werden also höchstwahrscheinlich mehr Aufmerksamkeit auf GitHub erhalten. + +Auf der anderen Seite gibt es Tausende von Benutzern in den Chat-Systemen, sodass die Wahrscheinlichkeit hoch ist, dass Sie dort fast immer jemanden zum Reden finden. 😄 + +## Den Autor sponsern { #sponsor-the-author } + +Wenn Ihr **Produkt/Firma** auf **FastAPI** angewiesen ist oder in Zusammenhang steht und Sie seine Benutzer erreichen möchten, können Sie den Autor (mich) über GitHub-Sponsoren unterstützen. Je nach Stufe können Sie einige zusätzliche Vorteile erhalten, wie z. B. ein Abzeichen in der Dokumentation. 🎁 + +--- + +Danke! 🚀 diff --git a/docs/de/docs/history-design-future.md b/docs/de/docs/history-design-future.md new file mode 100644 index 0000000..45198ff --- /dev/null +++ b/docs/de/docs/history-design-future.md @@ -0,0 +1,79 @@ +# Geschichte, Design und Zukunft { #history-design-and-future } + +Vor einiger Zeit fragte ein **FastAPI**-Benutzer: + +> Was ist die Geschichte dieses Projekts? Es scheint aus dem Nichts in ein paar Wochen zu etwas Großartigem geworden zu sein [...] + +Hier ist ein wenig über diese Geschichte. + +## Alternativen { #alternatives } + +Ich habe seit mehreren Jahren APIs mit komplexen Anforderungen (maschinelles Lernen, verteilte Systeme, asynchrone Jobs, NoSQL-Datenbanken, usw.) erstellt und leitete mehrere Entwicklerteams. + +Dabei musste ich viele Alternativen untersuchen, testen und nutzen. + +Die Geschichte von **FastAPI** ist zu einem großen Teil die Geschichte seiner Vorgänger. + +Wie im Abschnitt [Alternativen](alternatives.md){.internal-link target=_blank} gesagt: + +
+ +**FastAPI** würde ohne die frühere Arbeit anderer nicht existieren. + +Es wurden zuvor viele Tools entwickelt, die als Inspiration für seine Entwicklung dienten. + +Ich habe die Schaffung eines neuen Frameworks viele Jahre lang vermieden. Zuerst habe ich versucht, alle von **FastAPI** abgedeckten Funktionen mithilfe vieler verschiedener Frameworks, Plugins und Tools zu lösen. + +Aber irgendwann gab es keine andere Möglichkeit, als etwas zu schaffen, das all diese Funktionen bereitstellte, die besten Ideen früherer Tools aufnahm und diese auf die bestmögliche Weise kombinierte, wobei Sprachfunktionen verwendet wurden, die vorher noch nicht einmal verfügbar waren (Python 3.6+ Typhinweise). + +
+ +## Untersuchung { #investigation } + +Durch die Nutzung all dieser vorherigen Alternativen hatte ich die Möglichkeit, von allen zu lernen, Ideen aufzunehmen und sie auf die beste Weise zu kombinieren, die ich für mich und die Entwicklerteams, mit denen ich zusammengearbeitet habe, finden konnte. + +Es war beispielsweise klar, dass es idealerweise auf Standard-Python-Typhinweisen basieren sollte. + +Der beste Ansatz bestand außerdem darin, bereits bestehende Standards zu nutzen. + +Bevor ich also überhaupt angefangen habe, **FastAPI** zu schreiben, habe ich mehrere Monate damit verbracht, die Spezifikationen für OpenAPI, JSON Schema, OAuth2, usw. zu studieren und deren Beziehungen, Überschneidungen und Unterschiede zu verstehen. + +## Design { #design } + +Dann habe ich einige Zeit damit verbracht, die Entwickler-„API“ zu entwerfen, die ich als Benutzer haben wollte (als Entwickler, welcher FastAPI verwendet). + +Ich habe mehrere Ideen in den beliebtesten Python-Editoren getestet: PyCharm, VS Code, Jedi-basierte Editoren. + +Laut der letzten Python-Entwickler-Umfrage deckt das etwa 80 % der Benutzer ab. + +Das bedeutet, dass **FastAPI** speziell mit den Editoren getestet wurde, die von 80 % der Python-Entwickler verwendet werden. Und da die meisten anderen Editoren in der Regel ähnlich funktionieren, sollten alle diese Vorteile für praktisch alle Editoren funktionieren. + +Auf diese Weise konnte ich die besten Möglichkeiten finden, die Codeverdoppelung so weit wie möglich zu reduzieren, überall Autovervollständigung, Typ- und Fehlerprüfungen, usw. zu gewährleisten. + +Alles auf eine Weise, die allen Entwicklern das beste Entwicklungserlebnis bot. + +## Anforderungen { #requirements } + +Nachdem ich mehrere Alternativen getestet hatte, entschied ich, dass ich **Pydantic** wegen seiner Vorteile verwenden würde. + +Dann habe ich zu dessen Code beigetragen, um es vollständig mit JSON Schema kompatibel zu machen, und so verschiedene Möglichkeiten zum Definieren von einschränkenden Deklarationen (Constraints) zu unterstützen, und die Editorunterstützung (Typprüfungen, Codevervollständigung) zu verbessern, basierend auf den Tests in mehreren Editoren. + +Während der Entwicklung habe ich auch zu **Starlette** beigetragen, der anderen Schlüsselanforderung. + +## Entwicklung { #development } + +Als ich mit der Erstellung von **FastAPI** selbst begann, waren die meisten Teile bereits vorhanden, das Design definiert, die Anforderungen und Tools bereit und das Wissen über die Standards und Spezifikationen klar und frisch. + +## Zukunft { #future } + +Zu diesem Zeitpunkt ist bereits klar, dass **FastAPI** mit seinen Ideen für viele Menschen nützlich ist. + +Es wird gegenüber früheren Alternativen gewählt, da es für viele Anwendungsfälle besser geeignet ist. + +Viele Entwickler und Teams verlassen sich bei ihren Projekten bereits auf **FastAPI** (einschließlich mir und meinem Team). + +Dennoch stehen uns noch viele Verbesserungen und Funktionen bevor. + +**FastAPI** hat eine große Zukunft vor sich. + +Und [Ihre Hilfe](help-fastapi.md){.internal-link target=_blank} wird sehr geschätzt. diff --git a/docs/de/docs/how-to/authentication-error-status-code.md b/docs/de/docs/how-to/authentication-error-status-code.md new file mode 100644 index 0000000..c743b54 --- /dev/null +++ b/docs/de/docs/how-to/authentication-error-status-code.md @@ -0,0 +1,17 @@ +# Alte 403-Authentifizierungsfehler-Statuscodes verwenden { #use-old-403-authentication-error-status-codes } + +Vor FastAPI-Version `0.122.0` verwendeten die integrierten Sicherheits-Utilities den HTTP-Statuscode `403 Forbidden`, wenn sie dem Client nach einer fehlgeschlagenen Authentifizierung einen Fehler zurückgaben. + +Ab FastAPI-Version `0.122.0` verwenden sie den passenderen HTTP-Statuscode `401 Unauthorized` und geben in der Response einen sinnvollen `WWW-Authenticate`-Header zurück, gemäß den HTTP-Spezifikationen, RFC 7235, RFC 9110. + +Aber falls Ihre Clients aus irgendeinem Grund vom alten Verhalten abhängen, können Sie darauf zurückgreifen, indem Sie in Ihren Sicherheitsklassen die Methode `make_not_authenticated_error` überschreiben. + +Sie können beispielsweise eine Unterklasse von `HTTPBearer` erstellen, die einen Fehler `403 Forbidden` zurückgibt, statt des Default-`401 Unauthorized`-Fehlers: + +{* ../../docs_src/authentication_error_status_code/tutorial001_an_py39.py hl[9:13] *} + +/// tip | Tipp + +Beachten Sie, dass die Funktion die Exception-Instanz zurückgibt; sie wirft sie nicht. Das Werfen erfolgt im restlichen internen Code. + +/// diff --git a/docs/de/docs/how-to/conditional-openapi.md b/docs/de/docs/how-to/conditional-openapi.md new file mode 100644 index 0000000..f6a2fad --- /dev/null +++ b/docs/de/docs/how-to/conditional-openapi.md @@ -0,0 +1,56 @@ +# Bedingte OpenAPI { #conditional-openapi } + +Bei Bedarf können Sie OpenAPI mithilfe von Einstellungen und Umgebungsvariablen abhängig von der Umgebung bedingt konfigurieren und sogar vollständig deaktivieren. + +## Über Sicherheit, APIs und Dokumentation { #about-security-apis-and-docs } + +Das Verstecken Ihrer Dokumentationsoberflächen in der Produktion *sollte nicht* die Methode sein, Ihre API zu schützen. + +Dadurch wird Ihrer API keine zusätzliche Sicherheit hinzugefügt, die *Pfadoperationen* sind weiterhin dort verfügbar, wo sie sich befinden. + +Wenn Ihr Code eine Sicherheitslücke aufweist, ist diese weiterhin vorhanden. + +Das Verstecken der Dokumentation macht es nur schwieriger zu verstehen, wie mit Ihrer API interagiert werden kann, und könnte es auch schwieriger machen, diese in der Produktion zu debuggen. Man könnte es einfach als eine Form von Sicherheit durch Verschleierung betrachten. + +Wenn Sie Ihre API sichern möchten, gibt es mehrere bessere Dinge, die Sie tun können, zum Beispiel: + +* Stellen Sie sicher, dass Sie über gut definierte Pydantic-Modelle für Ihre Requestbodys und Responses verfügen. +* Konfigurieren Sie alle erforderlichen Berechtigungen und Rollen mithilfe von Abhängigkeiten. +* Speichern Sie niemals Klartext-Passwörter, sondern nur Passwort-Hashes. +* Implementieren und verwenden Sie gängige kryptografische Tools wie pwdlib und JWT-Tokens, usw. +* Fügen Sie bei Bedarf detailliertere Berechtigungskontrollen mit OAuth2-Scopes hinzu. +* ... usw. + +Dennoch kann es sein, dass Sie einen ganz bestimmten Anwendungsfall haben, bei dem Sie die API-Dokumentation für eine bestimmte Umgebung (z. B. für die Produktion) oder abhängig von Konfigurationen aus Umgebungsvariablen wirklich deaktivieren müssen. + +## Bedingte OpenAPI aus Einstellungen und Umgebungsvariablen { #conditional-openapi-from-settings-and-env-vars } + +Sie können problemlos dieselben Pydantic-Einstellungen verwenden, um Ihre generierte OpenAPI und die Dokumentationsoberflächen zu konfigurieren. + +Zum Beispiel: + +{* ../../docs_src/conditional_openapi/tutorial001.py hl[6,11] *} + +Hier deklarieren wir die Einstellung `openapi_url` mit dem gleichen Defaultwert `"/openapi.json"`. + +Und dann verwenden wir es beim Erstellen der `FastAPI`-App. + +Dann könnten Sie OpenAPI (einschließlich der Dokumentationsoberflächen) deaktivieren, indem Sie die Umgebungsvariable `OPENAPI_URL` auf einen leeren String setzen, wie zum Beispiel: + +
+ +```console +$ OPENAPI_URL= uvicorn main:app + +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +``` + +
+ +Wenn Sie dann zu den URLs unter `/openapi.json`, `/docs` oder `/redoc` gehen, erhalten Sie lediglich einen `404 Not Found`-Fehler, wie: + +```JSON +{ + "detail": "Not Found" +} +``` diff --git a/docs/de/docs/how-to/configure-swagger-ui.md b/docs/de/docs/how-to/configure-swagger-ui.md new file mode 100644 index 0000000..351cb99 --- /dev/null +++ b/docs/de/docs/how-to/configure-swagger-ui.md @@ -0,0 +1,70 @@ +# Swagger-Oberfläche konfigurieren { #configure-swagger-ui } + +Sie können einige zusätzliche Parameter der Swagger-Oberfläche konfigurieren. + +Um diese zu konfigurieren, übergeben Sie das Argument `swagger_ui_parameters` beim Erstellen des `FastAPI()`-App-Objekts oder an die Funktion `get_swagger_ui_html()`. + +`swagger_ui_parameters` empfängt ein Dictionary mit den Konfigurationen, die direkt an die Swagger-Oberfläche übergeben werden. + +FastAPI konvertiert die Konfigurationen nach **JSON**, um diese mit JavaScript kompatibel zu machen, da die Swagger-Oberfläche das benötigt. + +## Syntaxhervorhebung deaktivieren { #disable-syntax-highlighting } + +Sie könnten beispielsweise die Syntaxhervorhebung in der Swagger-Oberfläche deaktivieren. + +Ohne Änderung der Einstellungen ist die Syntaxhervorhebung standardmäßig aktiviert: + + + +Sie können sie jedoch deaktivieren, indem Sie `syntaxHighlight` auf `False` setzen: + +{* ../../docs_src/configure_swagger_ui/tutorial001.py hl[3] *} + +... und dann zeigt die Swagger-Oberfläche die Syntaxhervorhebung nicht mehr an: + + + +## Das Theme ändern { #change-the-theme } + +Auf die gleiche Weise könnten Sie das Theme der Syntaxhervorhebung mit dem Schlüssel `"syntaxHighlight.theme"` festlegen (beachten Sie, dass er einen Punkt in der Mitte hat): + +{* ../../docs_src/configure_swagger_ui/tutorial002.py hl[3] *} + +Obige Konfiguration würde das Theme für die Farbe der Syntaxhervorhebung ändern: + + + +## Defaultparameter der Swagger-Oberfläche ändern { #change-default-swagger-ui-parameters } + +FastAPI enthält einige Defaultkonfigurationsparameter, die für die meisten Anwendungsfälle geeignet sind. + +Es umfasst die folgenden Defaultkonfigurationen: + +{* ../../fastapi/openapi/docs.py ln[8:23] hl[17:23] *} + +Sie können jede davon überschreiben, indem Sie im Argument `swagger_ui_parameters` einen anderen Wert festlegen. + +Um beispielsweise `deepLinking` zu deaktivieren, könnten Sie folgende Einstellungen an `swagger_ui_parameters` übergeben: + +{* ../../docs_src/configure_swagger_ui/tutorial003.py hl[3] *} + +## Andere Parameter der Swagger-Oberfläche { #other-swagger-ui-parameters } + +Um alle anderen möglichen Konfigurationen zu sehen, die Sie verwenden können, lesen Sie die offizielle Dokumentation für die Parameter der Swagger-Oberfläche. + +## Nur-JavaScript-Einstellungen { #javascript-only-settings } + +Die Swagger-Oberfläche erlaubt, dass andere Konfigurationen auch **Nur-JavaScript**-Objekte sein können (z. B. JavaScript-Funktionen). + +FastAPI umfasst auch diese Nur-JavaScript-`presets`-Einstellungen: + +```JavaScript +presets: [ + SwaggerUIBundle.presets.apis, + SwaggerUIBundle.SwaggerUIStandalonePreset +] +``` + +Dabei handelt es sich um **JavaScript**-Objekte, nicht um Strings, daher können Sie diese nicht direkt vom Python-Code aus übergeben. + +Wenn Sie solche JavaScript-Konfigurationen verwenden müssen, können Sie einen der früher genannten Wege verwenden. Überschreiben Sie alle *Pfadoperationen* der Swagger-Oberfläche und schreiben Sie manuell jedes benötigte JavaScript. diff --git a/docs/de/docs/how-to/custom-docs-ui-assets.md b/docs/de/docs/how-to/custom-docs-ui-assets.md new file mode 100644 index 0000000..6b8b1a1 --- /dev/null +++ b/docs/de/docs/how-to/custom-docs-ui-assets.md @@ -0,0 +1,185 @@ +# Statische Assets der Dokumentationsoberfläche (Selbst-Hosting) { #custom-docs-ui-static-assets-self-hosting } + +Die API-Dokumentation verwendet **Swagger UI** und **ReDoc**, und jede dieser Dokumentationen benötigt einige JavaScript- und CSS-Dateien. + +Standardmäßig werden diese Dateien von einem CDN bereitgestellt. + +Es ist jedoch möglich, das anzupassen, ein bestimmtes CDN festzulegen oder die Dateien selbst bereitzustellen. + +## Benutzerdefiniertes CDN für JavaScript und CSS { #custom-cdn-for-javascript-and-css } + +Nehmen wir an, Sie möchten ein anderes CDN verwenden, zum Beispiel möchten Sie `https://unpkg.com/` verwenden. + +Das kann nützlich sein, wenn Sie beispielsweise in einem Land leben, in dem bestimmte URLs eingeschränkt sind. + +### Die automatischen Dokumentationen deaktivieren { #disable-the-automatic-docs } + +Der erste Schritt besteht darin, die automatischen Dokumentationen zu deaktivieren, da diese standardmäßig das Standard-CDN verwenden. + +Um diese zu deaktivieren, setzen Sie deren URLs beim Erstellen Ihrer `FastAPI`-App auf `None`: + +{* ../../docs_src/custom_docs_ui/tutorial001.py hl[8] *} + +### Die benutzerdefinierten Dokumentationen hinzufügen { #include-the-custom-docs } + +Jetzt können Sie die *Pfadoperationen* für die benutzerdefinierten Dokumentationen erstellen. + +Sie können die internen Funktionen von FastAPI wiederverwenden, um die HTML-Seiten für die Dokumentation zu erstellen und ihnen die erforderlichen Argumente zu übergeben: + +* `openapi_url`: die URL, unter welcher die HTML-Seite für die Dokumentation das OpenAPI-Schema für Ihre API abrufen kann. Sie können hier das Attribut `app.openapi_url` verwenden. +* `title`: der Titel Ihrer API. +* `oauth2_redirect_url`: Sie können hier `app.swagger_ui_oauth2_redirect_url` verwenden, um die Standardeinstellung zu verwenden. +* `swagger_js_url`: die URL, unter welcher der HTML-Code für Ihre Swagger-UI-Dokumentation die **JavaScript**-Datei abrufen kann. Dies ist die benutzerdefinierte CDN-URL. +* `swagger_css_url`: die URL, unter welcher der HTML-Code für Ihre Swagger-UI-Dokumentation die **CSS**-Datei abrufen kann. Dies ist die benutzerdefinierte CDN-URL. + +Und ähnlich für ReDoc ... + +{* ../../docs_src/custom_docs_ui/tutorial001.py hl[2:6,11:19,22:24,27:33] *} + +/// tip | Tipp + +Die *Pfadoperation* für `swagger_ui_redirect` ist ein Hilfsmittel bei der Verwendung von OAuth2. + +Wenn Sie Ihre API mit einem OAuth2-Anbieter integrieren, können Sie sich authentifizieren und mit den erworbenen Anmeldeinformationen zur API-Dokumentation zurückkehren. Und mit ihr interagieren, die echte OAuth2-Authentifizierung verwendend. + +Swagger UI erledigt das hinter den Kulissen für Sie, benötigt aber diesen „Umleitungs“-Helfer. + +/// + +### Eine *Pfadoperation* erstellen, um es zu testen { #create-a-path-operation-to-test-it } + +Um nun testen zu können, ob alles funktioniert, erstellen Sie eine *Pfadoperation*: + +{* ../../docs_src/custom_docs_ui/tutorial001.py hl[36:38] *} + +### Es testen { #test-it } + +Jetzt sollten Sie in der Lage sein, zu Ihrer Dokumentation auf http://127.0.0.1:8000/docs zu gehen und die Seite neu zu laden, die Assets werden nun vom neuen CDN geladen. + +## JavaScript und CSS für die Dokumentation selbst hosten { #self-hosting-javascript-and-css-for-docs } + +Das Selbst-Hosting von JavaScript und CSS kann nützlich sein, wenn Sie beispielsweise möchten, dass Ihre Anwendung auch offline, ohne bestehenden Internetzugang oder in einem lokalen Netzwerk weiter funktioniert. + +Hier erfahren Sie, wie Sie diese Dateien selbst in derselben FastAPI-App bereitstellen und die Dokumentation für deren Verwendung konfigurieren. + +### Projektdateistruktur { #project-file-structure } + +Nehmen wir an, die Dateistruktur Ihres Projekts sieht folgendermaßen aus: + +``` +. +├── app +│ ├── __init__.py +│ ├── main.py +``` + +Erstellen Sie jetzt ein Verzeichnis zum Speichern dieser statischen Dateien. + +Ihre neue Dateistruktur könnte so aussehen: + +``` +. +├── app +│   ├── __init__.py +│   ├── main.py +└── static/ +``` + +### Die Dateien herunterladen { #download-the-files } + +Laden Sie die für die Dokumentation benötigten statischen Dateien herunter und legen Sie diese im Verzeichnis `static/` ab. + +Sie können wahrscheinlich mit der rechten Maustaste auf jeden Link klicken und eine Option wie etwa „Link speichern unter ...“ auswählen. + +**Swagger UI** verwendet folgende Dateien: + +* `swagger-ui-bundle.js` +* `swagger-ui.css` + +Und **ReDoc** verwendet diese Datei: + +* `redoc.standalone.js` + +Danach könnte Ihre Dateistruktur wie folgt aussehen: + +``` +. +├── app +│   ├── __init__.py +│   ├── main.py +└── static + ├── redoc.standalone.js + ├── swagger-ui-bundle.js + └── swagger-ui.css +``` + +### Die statischen Dateien bereitstellen { #serve-the-static-files } + +* Importieren Sie `StaticFiles`. +* „Mounten“ Sie eine `StaticFiles()`-Instanz in einem bestimmten Pfad. + +{* ../../docs_src/custom_docs_ui/tutorial002.py hl[7,11] *} + +### Die statischen Dateien testen { #test-the-static-files } + +Starten Sie Ihre Anwendung und gehen Sie auf http://127.0.0.1:8000/static/redoc.standalone.js. + +Sie sollten eine sehr lange JavaScript-Datei für **ReDoc** sehen. + +Sie könnte beginnen mit etwas wie: + +```JavaScript +/*! For license information please see redoc.standalone.js.LICENSE.txt */ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("null")): +... +``` + +Das zeigt, dass Sie statische Dateien aus Ihrer Anwendung bereitstellen können und dass Sie die statischen Dateien für die Dokumentation an der richtigen Stelle platziert haben. + +Jetzt können wir die Anwendung so konfigurieren, dass sie diese statischen Dateien für die Dokumentation verwendet. + +### Die automatischen Dokumentationen für statische Dateien deaktivieren { #disable-the-automatic-docs-for-static-files } + +Wie bei der Verwendung eines benutzerdefinierten CDN besteht der erste Schritt darin, die automatischen Dokumentationen zu deaktivieren, da diese standardmäßig das CDN verwenden. + +Um sie zu deaktivieren, setzen Sie deren URLs beim Erstellen Ihrer `FastAPI`-App auf `None`: + +{* ../../docs_src/custom_docs_ui/tutorial002.py hl[9] *} + +### Die benutzerdefinierten Dokumentationen für statische Dateien hinzufügen { #include-the-custom-docs-for-static-files } + +Und genau wie bei einem benutzerdefinierten CDN können Sie jetzt die *Pfadoperationen* für die benutzerdefinierten Dokumentationen erstellen. + +Auch hier können Sie die internen Funktionen von FastAPI wiederverwenden, um die HTML-Seiten für die Dokumentationen zu erstellen und ihnen die erforderlichen Argumente zu übergeben: + +* `openapi_url`: die URL, unter der die HTML-Seite für die Dokumentation das OpenAPI-Schema für Ihre API abrufen kann. Sie können hier das Attribut `app.openapi_url` verwenden. +* `title`: der Titel Ihrer API. +* `oauth2_redirect_url`: Sie können hier `app.swagger_ui_oauth2_redirect_url` verwenden, um die Standardeinstellung zu verwenden. +* `swagger_js_url`: die URL, unter welcher der HTML-Code für Ihre Swagger-UI-Dokumentation die **JavaScript**-Datei abrufen kann. **Das ist die, welche jetzt von Ihrer eigenen Anwendung bereitgestellt wird**. +* `swagger_css_url`: die URL, unter welcher der HTML-Code für Ihre Swagger-UI-Dokumentation die **CSS**-Datei abrufen kann. **Das ist die, welche jetzt von Ihrer eigenen Anwendung bereitgestellt wird**. + +Und ähnlich für ReDoc ... + +{* ../../docs_src/custom_docs_ui/tutorial002.py hl[2:6,14:22,25:27,30:36] *} + +/// tip | Tipp + +Die *Pfadoperation* für `swagger_ui_redirect` ist ein Hilfsmittel bei der Verwendung von OAuth2. + +Wenn Sie Ihre API mit einem OAuth2-Anbieter integrieren, können Sie sich authentifizieren und mit den erworbenen Anmeldeinformationen zur API-Dokumentation zurückkehren. Und mit ihr interagieren, die echte OAuth2-Authentifizierung verwendend. + +Swagger UI erledigt das hinter den Kulissen für Sie, benötigt aber diesen „Umleitungs“-Helfer. + +/// + +### Eine *Pfadoperation* erstellen, um statische Dateien zu testen { #create-a-path-operation-to-test-static-files } + +Um nun testen zu können, ob alles funktioniert, erstellen Sie eine *Pfadoperation*: + +{* ../../docs_src/custom_docs_ui/tutorial002.py hl[39:41] *} + +### Benutzeroberfläche mit statischen Dateien testen { #test-static-files-ui } + +Jetzt sollten Sie in der Lage sein, Ihr WLAN zu trennen, gehen Sie zu Ihrer Dokumentation unter http://127.0.0.1:8000/docs und laden Sie die Seite neu. + +Und selbst ohne Internet können Sie die Dokumentation für Ihre API sehen und mit ihr interagieren. diff --git a/docs/de/docs/how-to/custom-request-and-route.md b/docs/de/docs/how-to/custom-request-and-route.md new file mode 100644 index 0000000..246717c --- /dev/null +++ b/docs/de/docs/how-to/custom-request-and-route.md @@ -0,0 +1,109 @@ +# Benutzerdefinierte Request- und APIRoute-Klasse { #custom-request-and-apiroute-class } + +In einigen Fällen möchten Sie möglicherweise die von den Klassen `Request` und `APIRoute` verwendete Logik überschreiben. + +Das kann insbesondere eine gute Alternative zur Logik in einer Middleware sein. + +Wenn Sie beispielsweise den Requestbody lesen oder manipulieren möchten, bevor er von Ihrer Anwendung verarbeitet wird. + +/// danger | Gefahr + +Dies ist eine „fortgeschrittene“ Funktion. + +Wenn Sie gerade erst mit **FastAPI** beginnen, möchten Sie diesen Abschnitt vielleicht überspringen. + +/// + +## Anwendungsfälle { #use-cases } + +Einige Anwendungsfälle sind: + +* Konvertieren von Nicht-JSON-Requestbodys nach JSON (z. B. `msgpack`). +* Dekomprimierung gzip-komprimierter Requestbodys. +* Automatisches Loggen aller Requestbodys. + +## Handhaben von benutzerdefinierten Requestbody-Kodierungen { #handling-custom-request-body-encodings } + +Sehen wir uns an, wie Sie eine benutzerdefinierte `Request`-Unterklasse verwenden, um gzip-Requests zu dekomprimieren. + +Und eine `APIRoute`-Unterklasse zur Verwendung dieser benutzerdefinierten Requestklasse. + +### Eine benutzerdefinierte `GzipRequest`-Klasse erstellen { #create-a-custom-gziprequest-class } + +/// tip | Tipp + +Dies ist nur ein einfaches Beispiel, um zu demonstrieren, wie es funktioniert. Wenn Sie Gzip-Unterstützung benötigen, können Sie die bereitgestellte [`GzipMiddleware`](../advanced/middleware.md#gzipmiddleware){.internal-link target=_blank} verwenden. + +/// + +Zuerst erstellen wir eine `GzipRequest`-Klasse, welche die Methode `Request.body()` überschreibt, um den Body bei Vorhandensein eines entsprechenden Headers zu dekomprimieren. + +Wenn der Header kein `gzip` enthält, wird nicht versucht, den Body zu dekomprimieren. + +Auf diese Weise kann dieselbe Routenklasse gzip-komprimierte oder unkomprimierte Requests verarbeiten. + +{* ../../docs_src/custom_request_and_route/tutorial001.py hl[8:15] *} + +### Eine benutzerdefinierte `GzipRoute`-Klasse erstellen { #create-a-custom-gziproute-class } + +Als Nächstes erstellen wir eine benutzerdefinierte Unterklasse von `fastapi.routing.APIRoute`, welche `GzipRequest` nutzt. + +Dieses Mal wird die Methode `APIRoute.get_route_handler()` überschrieben. + +Diese Methode gibt eine Funktion zurück. Und diese Funktion empfängt einen Request und gibt eine Response zurück. + +Hier verwenden wir sie, um aus dem ursprünglichen Request einen `GzipRequest` zu erstellen. + +{* ../../docs_src/custom_request_and_route/tutorial001.py hl[18:26] *} + +/// note | Technische Details + +Ein `Request` hat ein `request.scope`-Attribut, welches einfach ein Python-`dict` ist, welches die mit dem Request verbundenen Metadaten enthält. + +Ein `Request` hat auch ein `request.receive`, welches eine Funktion ist, die den Body des Requests empfängt. + +Das `scope`-`dict` und die `receive`-Funktion sind beide Teil der ASGI-Spezifikation. + +Und diese beiden Dinge, `scope` und `receive`, werden benötigt, um eine neue `Request`-Instanz zu erstellen. + +Um mehr über den `Request` zu erfahren, schauen Sie sich Starlettes Dokumentation zu Requests an. + +/// + +Das Einzige, was die von `GzipRequest.get_route_handler` zurückgegebene Funktion anders macht, ist die Konvertierung von `Request` in ein `GzipRequest`. + +Dabei kümmert sich unser `GzipRequest` um die Dekomprimierung der Daten (falls erforderlich), bevor diese an unsere *Pfadoperationen* weitergegeben werden. + +Danach ist die gesamte Verarbeitungslogik dieselbe. + +Aufgrund unserer Änderungen in `GzipRequest.body` wird der Requestbody jedoch bei Bedarf automatisch dekomprimiert, wenn er von **FastAPI** geladen wird. + +## Zugriff auf den Requestbody in einem Exceptionhandler { #accessing-the-request-body-in-an-exception-handler } + +/// tip | Tipp + +Um dasselbe Problem zu lösen, ist es wahrscheinlich viel einfacher, den `body` in einem benutzerdefinierten Handler für `RequestValidationError` zu verwenden ([Fehlerbehandlung](../tutorial/handling-errors.md#use-the-requestvalidationerror-body){.internal-link target=_blank}). + +Dieses Beispiel ist jedoch immer noch gültig und zeigt, wie mit den internen Komponenten interagiert wird. + +/// + +Wir können denselben Ansatz auch verwenden, um in einem Exceptionhandler auf den Requestbody zuzugreifen. + +Alles, was wir tun müssen, ist, den Request innerhalb eines `try`/`except`-Blocks zu handhaben: + +{* ../../docs_src/custom_request_and_route/tutorial002.py hl[13,15] *} + +Wenn eine Exception auftritt, befindet sich die `Request`-Instanz weiterhin im Gültigkeitsbereich, sodass wir den Requestbody lesen und bei der Fehlerbehandlung verwenden können: + +{* ../../docs_src/custom_request_and_route/tutorial002.py hl[16:18] *} + +## Benutzerdefinierte `APIRoute`-Klasse in einem Router { #custom-apiroute-class-in-a-router } + +Sie können auch den Parameter `route_class` eines `APIRouter` festlegen: + +{* ../../docs_src/custom_request_and_route/tutorial003.py hl[26] *} + +In diesem Beispiel verwenden die *Pfadoperationen* unter dem `router` die benutzerdefinierte `TimedRoute`-Klasse und haben in der Response einen zusätzlichen `X-Response-Time`-Header mit der Zeit, die zum Generieren der Response benötigt wurde: + +{* ../../docs_src/custom_request_and_route/tutorial003.py hl[13:20] *} diff --git a/docs/de/docs/how-to/extending-openapi.md b/docs/de/docs/how-to/extending-openapi.md new file mode 100644 index 0000000..146ee09 --- /dev/null +++ b/docs/de/docs/how-to/extending-openapi.md @@ -0,0 +1,80 @@ +# OpenAPI erweitern { #extending-openapi } + +Es gibt einige Fälle, in denen Sie das generierte OpenAPI-Schema ändern müssen. + +In diesem Abschnitt erfahren Sie, wie. + +## Der normale Vorgang { #the-normal-process } + +Der normale (Standard-)Prozess ist wie folgt. + +Eine `FastAPI`-Anwendung (Instanz) verfügt über eine `.openapi()`-Methode, von der erwartet wird, dass sie das OpenAPI-Schema zurückgibt. + +Als Teil der Erstellung des Anwendungsobjekts wird eine *Pfadoperation* für `/openapi.json` (oder welcher Wert für den Parameter `openapi_url` gesetzt wurde) registriert. + +Diese gibt lediglich eine JSON-Response zurück, mit dem Ergebnis der Methode `.openapi()` der Anwendung. + +Standardmäßig überprüft die Methode `.openapi()` die Eigenschaft `.openapi_schema`, um zu sehen, ob diese Inhalt hat, und gibt diesen zurück. + +Ist das nicht der Fall, wird der Inhalt mithilfe der Hilfsfunktion unter `fastapi.openapi.utils.get_openapi` generiert. + +Diese Funktion `get_openapi()` erhält als Parameter: + +* `title`: Der OpenAPI-Titel, der in der Dokumentation angezeigt wird. +* `version`: Die Version Ihrer API, z. B. `2.5.0`. +* `openapi_version`: Die Version der verwendeten OpenAPI-Spezifikation. Standardmäßig die neueste Version: `3.1.0`. +* `summary`: Eine kurze Zusammenfassung der API. +* `description`: Die Beschreibung Ihrer API. Dies kann Markdown enthalten und wird in der Dokumentation angezeigt. +* `routes`: Eine Liste von Routen, dies sind alle registrierten *Pfadoperationen*. Sie stammen von `app.routes`. + +/// info | Info + +Der Parameter `summary` ist in OpenAPI 3.1.0 und höher verfügbar und wird von FastAPI 0.99.0 und höher unterstützt. + +/// + +## Überschreiben der Standardeinstellungen { #overriding-the-defaults } + +Mithilfe der oben genannten Informationen können Sie dieselbe Hilfsfunktion verwenden, um das OpenAPI-Schema zu generieren und jeden benötigten Teil zu überschreiben. + +Fügen wir beispielsweise ReDocs OpenAPI-Erweiterung zum Einbinden eines benutzerdefinierten Logos hinzu. + +### Normales **FastAPI** { #normal-fastapi } + +Schreiben Sie zunächst wie gewohnt Ihre ganze **FastAPI**-Anwendung: + +{* ../../docs_src/extending_openapi/tutorial001.py hl[1,4,7:9] *} + +### Das OpenAPI-Schema generieren { #generate-the-openapi-schema } + +Verwenden Sie dann dieselbe Hilfsfunktion, um das OpenAPI-Schema innerhalb einer `custom_openapi()`-Funktion zu generieren: + +{* ../../docs_src/extending_openapi/tutorial001.py hl[2,15:21] *} + +### Das OpenAPI-Schema ändern { #modify-the-openapi-schema } + +Jetzt können Sie die ReDoc-Erweiterung hinzufügen und dem `info`-„Objekt“ im OpenAPI-Schema ein benutzerdefiniertes `x-logo` hinzufügen: + +{* ../../docs_src/extending_openapi/tutorial001.py hl[22:24] *} + +### Zwischenspeichern des OpenAPI-Schemas { #cache-the-openapi-schema } + +Sie können die Eigenschaft `.openapi_schema` als „Cache“ verwenden, um Ihr generiertes Schema zu speichern. + +Auf diese Weise muss Ihre Anwendung das Schema nicht jedes Mal generieren, wenn ein Benutzer Ihre API-Dokumentation öffnet. + +Es wird nur einmal generiert und dann wird dasselbe zwischengespeicherte Schema für die nächsten Requests verwendet. + +{* ../../docs_src/extending_openapi/tutorial001.py hl[13:14,25:26] *} + +### Die Methode überschreiben { #override-the-method } + +Jetzt können Sie die Methode `.openapi()` durch Ihre neue Funktion ersetzen. + +{* ../../docs_src/extending_openapi/tutorial001.py hl[29] *} + +### Es testen { #check-it } + +Sobald Sie auf http://127.0.0.1:8000/redoc gehen, werden Sie sehen, dass Ihr benutzerdefiniertes Logo verwendet wird (in diesem Beispiel das Logo von **FastAPI**): + + diff --git a/docs/de/docs/how-to/general.md b/docs/de/docs/how-to/general.md new file mode 100644 index 0000000..0045eab --- /dev/null +++ b/docs/de/docs/how-to/general.md @@ -0,0 +1,39 @@ +# Allgemeines – How-To – Rezepte { #general-how-to-recipes } + +Hier finden Sie mehrere Verweise auf andere Stellen in der Dokumentation, für allgemeine oder häufige Fragen. + +## Daten filtern – Sicherheit { #filter-data-security } + +Um sicherzustellen, dass Sie nicht mehr Daten zurückgeben, als Sie sollten, lesen Sie die Dokumentation unter [Tutorial – Responsemodell – Rückgabetyp](../tutorial/response-model.md){.internal-link target=_blank}. + +## Dokumentations-Tags – OpenAPI { #documentation-tags-openapi } + +Um Tags zu Ihren *Pfadoperationen* hinzuzufügen und diese in der Oberfläche der Dokumentation zu gruppieren, lesen Sie die Dokumentation unter [Tutorial – Pfadoperation-Konfiguration – Tags](../tutorial/path-operation-configuration.md#tags){.internal-link target=_blank}. + +## Zusammenfassung und Beschreibung in der Dokumentation – OpenAPI { #documentation-summary-and-description-openapi } + +Um Ihren *Pfadoperationen* eine Zusammenfassung und Beschreibung hinzuzufügen und diese in der Oberfläche der Dokumentation anzuzeigen, lesen Sie die Dokumentation unter [Tutorial – Pfadoperation-Konfiguration – Zusammenfassung und Beschreibung](../tutorial/path-operation-configuration.md#summary-and-description){.internal-link target=_blank}. + +## Beschreibung der Response in der Dokumentation – OpenAPI { #documentation-response-description-openapi } + +Um die Beschreibung der Response zu definieren, welche in der Oberfläche der Dokumentation angezeigt wird, lesen Sie die Dokumentation unter [Tutorial – Pfadoperation-Konfiguration – Beschreibung der Response](../tutorial/path-operation-configuration.md#response-description){.internal-link target=_blank}. + +## *Pfadoperation* in der Dokumentation deprecaten – OpenAPI { #documentation-deprecate-a-path-operation-openapi } + +Um eine *Pfadoperation* zu deprecaten und das in der Oberfläche der Dokumentation anzuzeigen, lesen Sie die Dokumentation unter [Tutorial – Pfadoperation-Konfiguration – Deprecaten](../tutorial/path-operation-configuration.md#deprecate-a-path-operation){.internal-link target=_blank}. + +## Daten in etwas JSON-kompatibles konvertieren { #convert-any-data-to-json-compatible } + +Um Daten in etwas JSON-kompatibles zu konvertieren, lesen Sie die Dokumentation unter [Tutorial – JSON-kompatibler Encoder](../tutorial/encoder.md){.internal-link target=_blank}. + +## OpenAPI-Metadaten – Dokumentation { #openapi-metadata-docs } + +Um Metadaten zu Ihrem OpenAPI-Schema hinzuzufügen, einschließlich einer Lizenz, Version, Kontakt, usw., lesen Sie die Dokumentation unter [Tutorial – Metadaten und URLs der Dokumentation](../tutorial/metadata.md){.internal-link target=_blank}. + +## Benutzerdefinierte OpenAPI-URL { #openapi-custom-url } + +Um die OpenAPI-URL anzupassen (oder zu entfernen), lesen Sie die Dokumentation unter [Tutorial – Metadaten und URLs der Dokumentation](../tutorial/metadata.md#openapi-url){.internal-link target=_blank}. + +## URLs der OpenAPI-Dokumentationen { #openapi-docs-urls } + +Um die URLs zu aktualisieren, die für die automatisch generierten Dokumentations-Oberflächen verwendet werden, lesen Sie die Dokumentation unter [Tutorial – Metadaten und URLs der Dokumentation](../tutorial/metadata.md#docs-urls){.internal-link target=_blank}. diff --git a/docs/de/docs/how-to/graphql.md b/docs/de/docs/how-to/graphql.md new file mode 100644 index 0000000..d2958dc --- /dev/null +++ b/docs/de/docs/how-to/graphql.md @@ -0,0 +1,60 @@ +# GraphQL { #graphql } + +Da **FastAPI** auf dem **ASGI**-Standard basiert, ist es sehr einfach, jede **GraphQL**-Bibliothek zu integrieren, die auch mit ASGI kompatibel ist. + +Sie können normale FastAPI-*Pfadoperationen* mit GraphQL in derselben Anwendung kombinieren. + +/// tip | Tipp + +**GraphQL** löst einige sehr spezifische Anwendungsfälle. + +Es hat **Vorteile** und **Nachteile** im Vergleich zu gängigen **Web-APIs**. + +Stellen Sie sicher, dass Sie prüfen, ob die **Vorteile** für Ihren Anwendungsfall die **Nachteile** ausgleichen. 🤓 + +/// + +## GraphQL-Bibliotheken { #graphql-libraries } + +Hier sind einige der **GraphQL**-Bibliotheken, die **ASGI**-Unterstützung haben. Sie könnten sie mit **FastAPI** verwenden: + +* Strawberry 🍓 + * Mit Dokumentation für FastAPI +* Ariadne + * Mit Dokumentation für FastAPI +* Tartiflette + * Mit Tartiflette ASGI für ASGI-Integration +* Graphene + * Mit starlette-graphene3 + +## GraphQL mit Strawberry { #graphql-with-strawberry } + +Wenn Sie mit **GraphQL** arbeiten möchten oder müssen, ist **Strawberry** die **empfohlene** Bibliothek, da deren Design **FastAPIs** Design am nächsten kommt und alles auf **Typannotationen** basiert. + +Abhängig von Ihrem Anwendungsfall könnten Sie eine andere Bibliothek vorziehen, aber wenn Sie mich fragen würden, würde ich Ihnen wahrscheinlich empfehlen, **Strawberry** auszuprobieren. + +Hier ist eine kleine Vorschau, wie Sie Strawberry mit FastAPI integrieren können: + +{* ../../docs_src/graphql/tutorial001.py hl[3,22,25] *} + +Weitere Informationen zu Strawberry finden Sie in der Strawberry-Dokumentation. + +Und auch in der Dokumentation zu Strawberry mit FastAPI. + +## Ältere `GraphQLApp` von Starlette { #older-graphqlapp-from-starlette } + +Frühere Versionen von Starlette enthielten eine `GraphQLApp`-Klasse zur Integration mit Graphene. + +Das wurde von Starlette deprecatet, aber wenn Sie Code haben, der das verwendet, können Sie einfach zu starlette-graphene3 **migrieren**, das denselben Anwendungsfall abdeckt und eine **fast identische Schnittstelle** hat. + +/// tip | Tipp + +Wenn Sie GraphQL benötigen, würde ich Ihnen trotzdem empfehlen, sich Strawberry anzuschauen, da es auf Typannotationen basiert, statt auf benutzerdefinierten Klassen und Typen. + +/// + +## Mehr darüber lernen { #learn-more } + +Weitere Informationen zu **GraphQL** finden Sie in der offiziellen GraphQL-Dokumentation. + +Sie können auch mehr über jede der oben beschriebenen Bibliotheken in den jeweiligen Links lesen. diff --git a/docs/de/docs/how-to/index.md b/docs/de/docs/how-to/index.md new file mode 100644 index 0000000..36229dc --- /dev/null +++ b/docs/de/docs/how-to/index.md @@ -0,0 +1,13 @@ +# How-To – Rezepte { #how-to-recipes } + +Hier finden Sie verschiedene Rezepte und „How-To“-Anleitungen zu **verschiedenen Themen**. + +Die meisten dieser Ideen sind mehr oder weniger **unabhängig**, und in den meisten Fällen müssen Sie diese nur studieren, wenn sie direkt auf **Ihr Projekt** anwendbar sind. + +Wenn etwas für Ihr Projekt interessant und nützlich erscheint, lesen Sie es, andernfalls überspringen Sie es einfach. + +/// tip | Tipp + +Wenn Sie strukturiert **FastAPI lernen** möchten (empfohlen), lesen Sie stattdessen Kapitel für Kapitel das [Tutorial – Benutzerhandbuch](../tutorial/index.md){.internal-link target=_blank}. + +/// diff --git a/docs/de/docs/how-to/migrate-from-pydantic-v1-to-pydantic-v2.md b/docs/de/docs/how-to/migrate-from-pydantic-v1-to-pydantic-v2.md new file mode 100644 index 0000000..7f60492 --- /dev/null +++ b/docs/de/docs/how-to/migrate-from-pydantic-v1-to-pydantic-v2.md @@ -0,0 +1,133 @@ +# Von Pydantic v1 zu Pydantic v2 migrieren { #migrate-from-pydantic-v1-to-pydantic-v2 } + +Wenn Sie eine ältere FastAPI-App haben, nutzen Sie möglicherweise Pydantic Version 1. + +FastAPI unterstützt seit Version 0.100.0 sowohl Pydantic v1 als auch v2. + +Wenn Sie Pydantic v2 installiert hatten, wurde dieses verwendet. Wenn stattdessen Pydantic v1 installiert war, wurde jenes verwendet. + +Pydantic v1 ist jetzt deprecatet und die Unterstützung dafür wird in den nächsten Versionen von FastAPI entfernt, Sie sollten also zu **Pydantic v2 migrieren**. Auf diese Weise erhalten Sie die neuesten Features, Verbesserungen und Fixes. + +/// warning | Achtung + +Außerdem hat das Pydantic-Team die Unterstützung für Pydantic v1 in den neuesten Python-Versionen eingestellt, beginnend mit **Python 3.14**. + +Wenn Sie die neuesten Features von Python nutzen möchten, müssen Sie sicherstellen, dass Sie Pydantic v2 verwenden. + +/// + +Wenn Sie eine ältere FastAPI-App mit Pydantic v1 haben, zeige ich Ihnen hier, wie Sie sie zu Pydantic v2 migrieren, und die **neuen Features in FastAPI 0.119.0**, die Ihnen bei einer schrittweisen Migration helfen. + +## Offizieller Leitfaden { #official-guide } + +Pydantic hat einen offiziellen Migrationsleitfaden von v1 zu v2. + +Er enthält auch, was sich geändert hat, wie Validierungen nun korrekter und strikter sind, mögliche Stolpersteine, usw. + +Sie können ihn lesen, um besser zu verstehen, was sich geändert hat. + +## Tests { #tests } + +Stellen Sie sicher, dass Sie [Tests](../tutorial/testing.md){.internal-link target=_blank} für Ihre App haben und diese in Continuous Integration (CI) ausführen. + +Auf diese Weise können Sie das Update durchführen und sicherstellen, dass weiterhin alles wie erwartet funktioniert. + +## `bump-pydantic` { #bump-pydantic } + +In vielen Fällen, wenn Sie reguläre Pydantic-Modelle ohne Anpassungen verwenden, können Sie den Großteil des Prozesses der Migration von Pydantic v1 auf Pydantic v2 automatisieren. + +Sie können `bump-pydantic` vom selben Pydantic-Team verwenden. + +Dieses Tool hilft Ihnen, den Großteil des zu ändernden Codes automatisch anzupassen. + +Danach können Sie die Tests ausführen und prüfen, ob alles funktioniert. Falls ja, sind Sie fertig. 😎 + +## Pydantic v1 in v2 { #pydantic-v1-in-v2 } + +Pydantic v2 enthält alles aus Pydantic v1 als Untermodul `pydantic.v1`. + +Das bedeutet, Sie können die neueste Version von Pydantic v2 installieren und die alten Pydantic‑v1‑Komponenten aus diesem Untermodul importieren und verwenden, als hätten Sie das alte Pydantic v1 installiert. + +{* ../../docs_src/pydantic_v1_in_v2/tutorial001_an_py310.py hl[1,4] *} + +### FastAPI-Unterstützung für Pydantic v1 in v2 { #fastapi-support-for-pydantic-v1-in-v2 } + +Seit FastAPI 0.119.0 gibt es außerdem eine teilweise Unterstützung für Pydantic v1 innerhalb von Pydantic v2, um die Migration auf v2 zu erleichtern. + +Sie könnten also Pydantic auf die neueste Version 2 aktualisieren und die Importe so ändern, dass das Untermodul `pydantic.v1` verwendet wird, und in vielen Fällen würde es einfach funktionieren. + +{* ../../docs_src/pydantic_v1_in_v2/tutorial002_an_py310.py hl[2,5,15] *} + +/// warning | Achtung + +Beachten Sie, dass, da das Pydantic‑Team Pydantic v1 in neueren Python‑Versionen nicht mehr unterstützt, beginnend mit Python 3.14, auch die Verwendung von `pydantic.v1` unter Python 3.14 und höher nicht unterstützt wird. + +/// + +### Pydantic v1 und v2 in derselben App { #pydantic-v1-and-v2-on-the-same-app } + +Es wird von Pydantic **nicht unterstützt**, dass ein Pydantic‑v2‑Modell Felder hat, die als Pydantic‑v1‑Modelle definiert sind, und umgekehrt. + +```mermaid +graph TB + subgraph "❌ Nicht unterstützt" + direction TB + subgraph V2["Pydantic-v2-Modell"] + V1Field["Pydantic-v1-Modell"] + end + subgraph V1["Pydantic-v1-Modell"] + V2Field["Pydantic-v2-Modell"] + end + end + + style V2 fill:#f9fff3 + style V1 fill:#fff6f0 + style V1Field fill:#fff6f0 + style V2Field fill:#f9fff3 +``` + +... aber Sie können getrennte Modelle, die Pydantic v1 bzw. v2 nutzen, in derselben App verwenden. + +```mermaid +graph TB + subgraph "✅ Unterstützt" + direction TB + subgraph V2["Pydantic-v2-Modell"] + V2Field["Pydantic-v2-Modell"] + end + subgraph V1["Pydantic-v1-Modell"] + V1Field["Pydantic-v1-Modell"] + end + end + + style V2 fill:#f9fff3 + style V1 fill:#fff6f0 + style V1Field fill:#fff6f0 + style V2Field fill:#f9fff3 +``` + +In einigen Fällen ist es sogar möglich, sowohl Pydantic‑v1‑ als auch Pydantic‑v2‑Modelle in derselben **Pfadoperation** Ihrer FastAPI‑App zu verwenden: + +{* ../../docs_src/pydantic_v1_in_v2/tutorial003_an_py310.py hl[2:3,6,12,21:22] *} + +Im obigen Beispiel ist das Eingabemodell ein Pydantic‑v1‑Modell, und das Ausgabemodell (definiert in `response_model=ItemV2`) ist ein Pydantic‑v2‑Modell. + +### Pydantic v1 Parameter { #pydantic-v1-parameters } + +Wenn Sie einige der FastAPI-spezifischen Tools für Parameter wie `Body`, `Query`, `Form`, usw. zusammen mit Pydantic‑v1‑Modellen verwenden müssen, können Sie die aus `fastapi.temp_pydantic_v1_params` importieren, während Sie die Migration zu Pydantic v2 abschließen: + +{* ../../docs_src/pydantic_v1_in_v2/tutorial004_an_py310.py hl[4,18] *} + +### In Schritten migrieren { #migrate-in-steps } + +/// tip | Tipp + +Probieren Sie zuerst `bump-pydantic` aus. Wenn Ihre Tests erfolgreich sind und das funktioniert, sind Sie mit einem einzigen Befehl fertig. ✨ + +/// + +Wenn `bump-pydantic` für Ihren Anwendungsfall nicht funktioniert, können Sie die Unterstützung für Pydantic‑v1‑ und Pydantic‑v2‑Modelle in derselben App nutzen, um die Migration zu Pydantic v2 schrittweise durchzuführen. + +Sie könnten zuerst Pydantic auf die neueste Version 2 aktualisieren und die Importe so ändern, dass für all Ihre Modelle `pydantic.v1` verwendet wird. + +Anschließend können Sie beginnen, Ihre Modelle gruppenweise von Pydantic v1 auf v2 zu migrieren – in kleinen, schrittweisen Etappen. 🚶 diff --git a/docs/de/docs/how-to/separate-openapi-schemas.md b/docs/de/docs/how-to/separate-openapi-schemas.md new file mode 100644 index 0000000..3165359 --- /dev/null +++ b/docs/de/docs/how-to/separate-openapi-schemas.md @@ -0,0 +1,104 @@ +# Separate OpenAPI-Schemas für Eingabe und Ausgabe oder nicht { #separate-openapi-schemas-for-input-and-output-or-not } + +Bei Verwendung von **Pydantic v2** ist die generierte OpenAPI etwas genauer und **korrekter** als zuvor. 😎 + +Tatsächlich gibt es in einigen Fällen sogar **zwei JSON-Schemas** in OpenAPI für dasselbe Pydantic-Modell, für Eingabe und Ausgabe, je nachdem, ob sie **Defaultwerte** haben. + +Sehen wir uns an, wie das funktioniert und wie Sie es bei Bedarf ändern können. + +## Pydantic-Modelle für Eingabe und Ausgabe { #pydantic-models-for-input-and-output } + +Nehmen wir an, Sie haben ein Pydantic-Modell mit Defaultwerten wie dieses: + +{* ../../docs_src/separate_openapi_schemas/tutorial001_py310.py ln[1:7] hl[7] *} + +### Modell für Eingabe { #model-for-input } + +Wenn Sie dieses Modell wie hier als Eingabe verwenden: + +{* ../../docs_src/separate_openapi_schemas/tutorial001_py310.py ln[1:15] hl[14] *} + +... dann ist das Feld `description` **nicht erforderlich**. Weil es den Defaultwert `None` hat. + +### Eingabemodell in der Dokumentation { #input-model-in-docs } + +Sie können überprüfen, dass das Feld `description` in der Dokumentation kein **rotes Sternchen** enthält, es ist nicht als erforderlich markiert: + +
+ +
+ +### Modell für die Ausgabe { #model-for-output } + +Wenn Sie jedoch dasselbe Modell als Ausgabe verwenden, wie hier: + +{* ../../docs_src/separate_openapi_schemas/tutorial001_py310.py hl[19] *} + +... dann, weil `description` einen Defaultwert hat, wird es, wenn Sie für dieses Feld **nichts zurückgeben**, immer noch diesen **Defaultwert** haben. + +### Modell für Ausgabe-Responsedaten { #model-for-output-response-data } + +Wenn Sie mit der Dokumentation interagieren und die Response überprüfen, enthält die JSON-Response den Defaultwert (`null`), obwohl der Code nichts in eines der `description`-Felder geschrieben hat: + +
+ +
+ +Das bedeutet, dass es **immer einen Wert** hat, der Wert kann jedoch manchmal `None` sein (oder `null` in JSON). + +Das bedeutet, dass Clients, die Ihre API verwenden, nicht prüfen müssen, ob der Wert vorhanden ist oder nicht. Sie können davon ausgehen, dass das Feld immer vorhanden ist. In einigen Fällen hat es jedoch nur den Defaultwert `None`. + +Um dies in OpenAPI zu kennzeichnen, markieren Sie dieses Feld als **erforderlich**, da es immer vorhanden sein wird. + +Aus diesem Grund kann das JSON-Schema für ein Modell unterschiedlich sein, je nachdem, ob es für **Eingabe oder Ausgabe** verwendet wird: + +* für die **Eingabe** ist `description` **nicht erforderlich** +* für die **Ausgabe** ist es **erforderlich** (und möglicherweise `None` oder, in JSON-Begriffen, `null`) + +### Ausgabemodell in der Dokumentation { #model-for-output-in-docs } + +Sie können das Ausgabemodell auch in der Dokumentation überprüfen. **Sowohl** `name` **als auch** `description` sind mit einem **roten Sternchen** als **erforderlich** markiert: + +
+ +
+ +### Eingabe- und Ausgabemodell in der Dokumentation { #model-for-input-and-output-in-docs } + +Und wenn Sie alle verfügbaren Schemas (JSON-Schemas) in OpenAPI überprüfen, werden Sie feststellen, dass es zwei gibt, ein `Item-Input` und ein `Item-Output`. + +Für `Item-Input` ist `description` **nicht erforderlich**, es hat kein rotes Sternchen. + +Aber für `Item-Output` ist `description` **erforderlich**, es hat ein rotes Sternchen. + +
+ +
+ +Mit dieser Funktion von **Pydantic v2** ist Ihre API-Dokumentation **präziser**, und wenn Sie über automatisch generierte Clients und SDKs verfügen, sind diese auch präziser, mit einer besseren **Entwicklererfahrung** und Konsistenz. 🎉 + +## Schemas nicht trennen { #do-not-separate-schemas } + +Nun gibt es einige Fälle, in denen Sie möglicherweise **dasselbe Schema für Eingabe und Ausgabe** haben möchten. + +Der Hauptanwendungsfall hierfür besteht wahrscheinlich darin, dass Sie das mal tun möchten, wenn Sie bereits über einige automatisch generierte Client-Codes/SDKs verfügen und im Moment nicht alle automatisch generierten Client-Codes/SDKs aktualisieren möchten, möglicherweise später, aber nicht jetzt. + +In diesem Fall können Sie diese Funktion in **FastAPI** mit dem Parameter `separate_input_output_schemas=False` deaktivieren. + +/// info | Info + +Unterstützung für `separate_input_output_schemas` wurde in FastAPI `0.102.0` hinzugefügt. 🤓 + +/// + +{* ../../docs_src/separate_openapi_schemas/tutorial002_py310.py hl[10] *} + +### Gleiches Schema für Eingabe- und Ausgabemodelle in der Dokumentation { #same-schema-for-input-and-output-models-in-docs } + +Und jetzt wird es ein einziges Schema für die Eingabe und Ausgabe des Modells geben, nur `Item`, und es wird `description` als **nicht erforderlich** kennzeichnen: + +
+ +
+ +Dies ist das gleiche Verhalten wie in Pydantic v1. 🤓 diff --git a/docs/de/docs/how-to/testing-database.md b/docs/de/docs/how-to/testing-database.md new file mode 100644 index 0000000..1a6095e --- /dev/null +++ b/docs/de/docs/how-to/testing-database.md @@ -0,0 +1,7 @@ +# Eine Datenbank testen { #testing-a-database } + +Sie können sich über Datenbanken, SQL und SQLModel in der SQLModel-Dokumentation informieren. 🤓 + +Es gibt ein kurzes Tutorial zur Verwendung von SQLModel mit FastAPI. ✨ + +Dieses Tutorial enthält einen Abschnitt über das Testen von SQL-Datenbanken. 😎 diff --git a/docs/de/docs/index.md b/docs/de/docs/index.md new file mode 100644 index 0000000..efa3465 --- /dev/null +++ b/docs/de/docs/index.md @@ -0,0 +1,559 @@ +# FastAPI { #fastapi } + + + +

+ FastAPI +

+

+ FastAPI-Framework, hohe Performanz, leicht zu lernen, schnell zu entwickeln, produktionsreif +

+

+ + Test + + + Testabdeckung + + + Package-Version + + + Unterstützte Python-Versionen + +

+ +--- + +**Dokumentation**: https://fastapi.tiangolo.com/de + +**Quellcode**: https://github.com/fastapi/fastapi + +--- + +FastAPI ist ein modernes, schnelles (hoch performantes) Webframework zur Erstellung von APIs mit Python auf Basis von Standard-Python-Typhinweisen. + +Seine Schlüssel-Merkmale sind: + +* **Schnell**: Sehr hohe Performanz, auf Augenhöhe mit **NodeJS** und **Go** (dank Starlette und Pydantic). [Eines der schnellsten verfügbaren Python-Frameworks](#performance). +* **Schnell zu entwickeln**: Erhöhen Sie die Geschwindigkeit bei der Entwicklung von Features um etwa 200 % bis 300 %. * +* **Weniger Bugs**: Verringern Sie die von Menschen (Entwicklern) verursachten Fehler um etwa 40 %. * +* **Intuitiv**: Hervorragende Editor-Unterstützung. Code-Vervollständigung überall. Weniger Zeit mit Debuggen verbringen. +* **Einfach**: So konzipiert, dass es einfach zu benutzen und zu erlernen ist. Weniger Zeit mit dem Lesen von Dokumentation verbringen. +* **Kurz**: Minimieren Sie die Verdoppelung von Code. Mehrere Features aus jeder Parameterdeklaration. Weniger Bugs. +* **Robust**: Erhalten Sie produktionsreifen Code. Mit automatischer, interaktiver Dokumentation. +* **Standards-basiert**: Basierend auf (und vollständig kompatibel mit) den offenen Standards für APIs: OpenAPI (früher bekannt als Swagger) und JSON Schema. + +* Schätzung basierend auf Tests, die von einem internen Entwicklungsteam durchgeführt wurden, das Produktionsanwendungen erstellt. + +## Sponsoren { #sponsors } + + + +### Keystone-Sponsor + +{% for sponsor in sponsors.keystone -%} + +{% endfor -%} + +### Gold- und Silber-Sponsoren + +{% for sponsor in sponsors.gold -%} + +{% endfor -%} +{%- for sponsor in sponsors.silver -%} + +{% endfor %} + + + +Andere Sponsoren + +## Meinungen { #opinions } + +„_[...] Ich verwende **FastAPI** heutzutage sehr oft. [...] Ich habe tatsächlich vor, es für alle **ML-Services meines Teams bei Microsoft** zu verwenden. Einige davon werden in das Kernprodukt **Windows** und einige **Office**-Produkte integriert._“ + +
Kabir Khan – Microsoft (Ref.)
+ +--- + +„_Wir haben die **FastAPI**-Bibliothek übernommen, um einen **REST**-Server zu erstellen, der für **Vorhersagen** abgefragt werden kann. [für Ludwig]_“ + +
Piero Molino, Yaroslav Dudin, und Sai Sumanth Miryala – Uber (Ref.)
+ +--- + +„_**Netflix** freut sich, die Open-Source-Veröffentlichung unseres **Krisenmanagement**-Orchestrierung-Frameworks bekannt zu geben: **Dispatch**! [erstellt mit **FastAPI**]_“ + +
Kevin Glisson, Marc Vilanova, Forest Monsen – Netflix (Ref.)
+ +--- + +„_Ich bin hellauf begeistert von **FastAPI**. Es macht so viel Spaß!_“ + +
Brian Okken – Python Bytes Podcast-Host (Ref.)
+ +--- + +„_Ehrlich, was Du gebaut hast, sieht super solide und poliert aus. In vielerlei Hinsicht ist es so, wie ich **Hug** haben wollte – es ist wirklich inspirierend, jemanden so etwas bauen zu sehen._“ + +
Timothy Crosley – Hug-Autor (Ref.)
+ +--- + +„_Wenn Sie ein **modernes Framework** zum Erstellen von REST-APIs erlernen möchten, schauen Sie sich **FastAPI** an. [...] Es ist schnell, einfach zu verwenden und leicht zu lernen [...]_“ + +„_Wir haben zu **FastAPI** für unsere **APIs** gewechselt [...] Ich denke, es wird Ihnen gefallen [...]_“ + +
Ines Montani – Matthew Honnibal – Explosion AI-Gründer – spaCy-Autoren (Ref.)(Ref.)
+ +--- + +„_Falls irgendjemand eine Produktions-Python-API erstellen möchte, kann ich **FastAPI** wärmstens empfehlen. Es ist **wunderschön konzipiert**, **einfach zu verwenden** und **hoch skalierbar**; es ist zu einer **Schlüsselkomponente** unserer API-First-Entwicklungsstrategie geworden und treibt viele Automatisierungen und Services an, wie etwa unseren Virtual TAC Engineer._“ + +
Deon Pillsbury – Cisco (Ref.)
+ +--- + +## **Typer**, das FastAPI der CLIs { #typer-the-fastapi-of-clis } + + + +Wenn Sie eine CLI-Anwendung für das Terminal erstellen, anstelle einer Web-API, schauen Sie sich **Typer** an. + +**Typer** ist die kleine Schwester von FastAPI. Und es soll das **FastAPI der CLIs** sein. ⌨️ 🚀 + +## Anforderungen { #requirements } + +FastAPI steht auf den Schultern von Giganten: + +* Starlette für die Webanteile. +* Pydantic für die Datenanteile. + +## Installation { #installation } + +Erstellen und aktivieren Sie eine virtuelle Umgebung und installieren Sie dann FastAPI: + +
+ +```console +$ pip install "fastapi[standard]" + +---> 100% +``` + +
+ +**Hinweis**: Stellen Sie sicher, dass Sie `"fastapi[standard]"` in Anführungszeichen setzen, damit es in allen Terminals funktioniert. + +## Beispiel { #example } + +### Erstellung { #create-it } + +Erstellen Sie eine Datei `main.py` mit: + +```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} +``` + +
+Oder verwenden Sie async def ... + +Wenn Ihr Code `async` / `await` verwendet, benutzen Sie `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} +``` + +**Hinweis**: + +Wenn Sie das nicht kennen, schauen Sie sich den Abschnitt _„In Eile?“_ über `async` und `await` in der Dokumentation an. + +
+ +### Starten { #run-it } + +Starten Sie den Server mit: + +
+ +```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. +``` + +
+ +
+Was der Befehl fastapi dev main.py macht ... + +Der Befehl `fastapi dev` liest Ihre `main.py`-Datei, erkennt die **FastAPI**-App darin und startet einen Server mit Uvicorn. + +Standardmäßig wird `fastapi dev` mit aktiviertem Auto-Reload für die lokale Entwicklung gestartet. + +Sie können mehr darüber in der FastAPI CLI Dokumentation lesen. + +
+ +### Es testen { #check-it } + +Öffnen Sie Ihren Browser unter http://127.0.0.1:8000/items/5?q=somequery. + +Sie sehen die JSON-Response als: + +```JSON +{"item_id": 5, "q": "somequery"} +``` + +Sie haben bereits eine API erstellt, welche: + +* HTTP-Requests auf den _Pfaden_ `/` und `/items/{item_id}` entgegennimmt. +* Beide _Pfade_ nehmen `GET` Operationen (auch bekannt als HTTP-_Methoden_) entgegen. +* Der _Pfad_ `/items/{item_id}` hat einen _Pfad-Parameter_ `item_id`, der ein `int` sein sollte. +* Der _Pfad_ `/items/{item_id}` hat einen optionalen `str`-_Query-Parameter_ `q`. + +### Interaktive API-Dokumentation { #interactive-api-docs } + +Gehen Sie nun auf http://127.0.0.1:8000/docs. + +Sie sehen die automatische interaktive API-Dokumentation (bereitgestellt von Swagger UI): + +![Swagger UI](https://fastapi.tiangolo.com/img/index/index-01-swagger-ui-simple.png) + +### Alternative API-Dokumentation { #alternative-api-docs } + +Und jetzt gehen Sie auf http://127.0.0.1:8000/redoc. + +Sie sehen die alternative automatische Dokumentation (bereitgestellt von ReDoc): + +![ReDoc](https://fastapi.tiangolo.com/img/index/index-02-redoc-simple.png) + +## Beispiel Aktualisierung { #example-upgrade } + +Ändern Sie jetzt die Datei `main.py`, um den Body eines `PUT`-Requests zu empfangen. + +Deklarieren Sie den Body mit Standard-Python-Typen, dank 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} +``` + +Der `fastapi dev`-Server sollte automatisch neu laden. + +### Interaktive API-Dokumentation aktualisieren { #interactive-api-docs-upgrade } + +Gehen Sie jetzt auf http://127.0.0.1:8000/docs. + +* Die interaktive API-Dokumentation wird automatisch aktualisiert, einschließlich des neuen Bodys: + +![Swagger UI](https://fastapi.tiangolo.com/img/index/index-03-swagger-02.png) + +* Klicken Sie auf den Button „Try it out“, damit können Sie die Parameter ausfüllen und direkt mit der API interagieren: + +![Swagger UI Interaktion](https://fastapi.tiangolo.com/img/index/index-04-swagger-03.png) + +* Klicken Sie dann auf den Button „Execute“, die Benutzeroberfläche wird mit Ihrer API kommunizieren, sendet die Parameter, holt die Ergebnisse und zeigt sie auf dem Bildschirm an: + +![Swagger UI Interaktion](https://fastapi.tiangolo.com/img/index/index-05-swagger-04.png) + +### Alternative API-Dokumentation aktualisieren { #alternative-api-docs-upgrade } + +Und jetzt gehen Sie auf http://127.0.0.1:8000/redoc. + +* Die alternative Dokumentation wird ebenfalls den neuen Query-Parameter und Body widerspiegeln: + +![ReDoc](https://fastapi.tiangolo.com/img/index/index-06-redoc-02.png) + +### Zusammenfassung { #recap } + +Zusammengefasst deklarieren Sie **einmal** die Typen von Parametern, Body, usw. als Funktionsparameter. + +Das machen Sie mit modernen Standard-Python-Typen. + +Sie müssen keine neue Syntax, Methoden oder Klassen einer bestimmten Bibliothek usw. lernen. + +Nur Standard-**Python**. + +Zum Beispiel für ein `int`: + +```Python +item_id: int +``` + +oder für ein komplexeres `Item`-Modell: + +```Python +item: Item +``` + +... und mit dieser einen Deklaration erhalten Sie: + +* Editor-Unterstützung, einschließlich: + * Code-Vervollständigung. + * Typprüfungen. +* Validierung von Daten: + * Automatische und eindeutige Fehler, wenn die Daten ungültig sind. + * Validierung sogar für tief verschachtelte JSON-Objekte. +* Konvertierung von Eingabedaten: Aus dem Netzwerk kommend, zu Python-Daten und -Typen. Lesen von: + * JSON. + * Pfad-Parametern. + * Query-Parametern. + * Cookies. + * Headern. + * Formularen. + * Dateien. +* Konvertierung von Ausgabedaten: Konvertierung von Python-Daten und -Typen zu Netzwerkdaten (als JSON): + * Konvertieren von Python-Typen (`str`, `int`, `float`, `bool`, `list`, usw.). + * `datetime`-Objekte. + * `UUID`-Objekte. + * Datenbankmodelle. + * ... und viele mehr. +* Automatische interaktive API-Dokumentation, einschließlich zwei alternativer Benutzeroberflächen: + * Swagger UI. + * ReDoc. + +--- + +Um auf das vorherige Codebeispiel zurückzukommen, **FastAPI** wird: + +* Validieren, dass es eine `item_id` im Pfad für `GET`- und `PUT`-Requests gibt. +* Validieren, ob die `item_id` vom Typ `int` für `GET`- und `PUT`-Requests ist. + * Falls nicht, sieht der Client einen hilfreichen, klaren Fehler. +* Prüfen, ob es einen optionalen Query-Parameter namens `q` (wie in `http://127.0.0.1:8000/items/foo?q=somequery`) für `GET`-Requests gibt. + * Da der `q`-Parameter mit `= None` deklariert ist, ist er optional. + * Ohne das `None` wäre er erforderlich (wie der Body im Fall von `PUT`). +* Bei `PUT`-Requests an `/items/{item_id}` den Body als JSON lesen: + * Prüfen, ob er ein erforderliches Attribut `name` hat, das ein `str` sein muss. + * Prüfen, ob er ein erforderliches Attribut `price` hat, das ein `float` sein muss. + * Prüfen, ob er ein optionales Attribut `is_offer` hat, das ein `bool` sein muss, falls vorhanden. + * All dies würde auch für tief verschachtelte JSON-Objekte funktionieren. +* Automatisch von und nach JSON konvertieren. +* Alles mit OpenAPI dokumentieren, welches verwendet werden kann von: + * Interaktiven Dokumentationssystemen. + * Automatisch Client-Code generierenden Systemen für viele Sprachen. +* Zwei interaktive Dokumentations-Weboberflächen direkt bereitstellen. + +--- + +Wir haben nur an der Oberfläche gekratzt, aber Sie bekommen schon eine Vorstellung davon, wie das Ganze funktioniert. + +Versuchen Sie, diese Zeile zu ändern: + +```Python + return {"item_name": item.name, "item_id": item_id} +``` + +... von: + +```Python + ... "item_name": item.name ... +``` + +... zu: + +```Python + ... "item_price": item.price ... +``` + +... und sehen Sie, wie Ihr Editor die Attribute automatisch vervollständigt und ihre Typen kennt: + +![Editor Unterstützung](https://fastapi.tiangolo.com/img/vscode-completion.png) + +Für ein vollständigeres Beispiel, mit weiteren Funktionen, siehe das Tutorial – Benutzerhandbuch. + +**Spoiler-Alarm**: Das Tutorial – Benutzerhandbuch enthält: + +* Deklaration von **Parametern** von anderen verschiedenen Stellen wie: **Header**, **Cookies**, **Formularfelder** und **Dateien**. +* Wie man **Validierungs-Constraints** wie `maximum_length` oder `regex` setzt. +* Ein sehr leistungsfähiges und einfach zu bedienendes System für **Dependency Injection**. +* Sicherheit und Authentifizierung, einschließlich Unterstützung für **OAuth2** mit **JWT-Tokens** und **HTTP Basic** Authentifizierung. +* Fortgeschrittenere (aber ebenso einfache) Techniken zur Deklaration **tief verschachtelter JSON-Modelle** (dank Pydantic). +* **GraphQL**-Integration mit Strawberry und anderen Bibliotheken. +* Viele zusätzliche Features (dank Starlette) wie: + * **WebSockets** + * extrem einfache Tests auf Basis von HTTPX und `pytest` + * **CORS** + * **Cookie-Sessions** + * ... und mehr. + +### Ihre App deployen (optional) { #deploy-your-app-optional } + +Optional können Sie Ihre FastAPI-App in die FastAPI Cloud deployen, treten Sie der Warteliste bei, falls noch nicht geschehen. 🚀 + +Wenn Sie bereits ein **FastAPI Cloud**-Konto haben (wir haben Sie von der Warteliste eingeladen 😉), können Sie Ihre Anwendung mit einem einzigen Befehl deployen. + +Stellen Sie vor dem Deployen sicher, dass Sie eingeloggt sind: + +
+ +```console +$ fastapi login + +You are logged in to FastAPI Cloud 🚀 +``` + +
+ +Stellen Sie dann Ihre App bereit: + +
+ +```console +$ fastapi deploy + +Deploying to FastAPI Cloud... + +✅ Deployment successful! + +🐔 Ready the chicken! Your app is ready at https://myapp.fastapicloud.dev +``` + +
+ +Das war’s! Jetzt können Sie unter dieser URL auf Ihre App zugreifen. ✨ + +#### Über FastAPI Cloud { #about-fastapi-cloud } + +**FastAPI Cloud** wird vom selben Autor und Team hinter **FastAPI** entwickelt. + +Es vereinfacht den Prozess des **Erstellens**, **Deployens** und **Zugreifens** auf eine API mit minimalem Aufwand. + +Es bringt die gleiche **Developer-Experience** beim Erstellen von Apps mit FastAPI auch zum **Deployment** in der Cloud. 🎉 + +FastAPI Cloud ist der Hauptsponsor und Finanzierer der „FastAPI and friends“ Open-Source-Projekte. ✨ + +#### Bei anderen Cloudanbietern deployen { #deploy-to-other-cloud-providers } + +FastAPI ist Open Source und basiert auf Standards. Sie können FastAPI-Apps bei jedem Cloudanbieter Ihrer Wahl deployen. + +Folgen Sie den Anleitungen Ihres Cloudanbieters, um FastAPI-Apps dort bereitzustellen. 🤓 + +## Performanz { #performance } + +Unabhängige TechEmpower-Benchmarks zeigen **FastAPI**-Anwendungen, die unter Uvicorn laufen, als eines der schnellsten verfügbaren Python-Frameworks, nur hinter Starlette und Uvicorn selbst (intern von FastAPI verwendet). (*) + +Um mehr darüber zu erfahren, siehe den Abschnitt Benchmarks. + +## Abhängigkeiten { #dependencies } + +FastAPI hängt von Pydantic und Starlette ab. + +### `standard`-Abhängigkeiten { #standard-dependencies } + +Wenn Sie FastAPI mit `pip install "fastapi[standard]"` installieren, kommt es mit der `standard`-Gruppe optionaler Abhängigkeiten: + +Verwendet von Pydantic: + +* email-validator – für E-Mail-Validierung. + +Verwendet von Starlette: + +* httpx – erforderlich, wenn Sie den `TestClient` verwenden möchten. +* jinja2 – erforderlich, wenn Sie die Default-Template-Konfiguration verwenden möchten. +* python-multipart – erforderlich, wenn Sie Formulare mittels `request.form()` „parsen“ möchten. + +Verwendet von FastAPI: + +* uvicorn – für den Server, der Ihre Anwendung lädt und bereitstellt. Dies umfasst `uvicorn[standard]`, das einige Abhängigkeiten (z. B. `uvloop`) beinhaltet, die für eine Bereitstellung mit hoher Performanz benötigt werden. +* `fastapi-cli[standard]` – um den `fastapi`-Befehl bereitzustellen. + * Dies beinhaltet `fastapi-cloud-cli`, das es Ihnen ermöglicht, Ihre FastAPI-Anwendung auf FastAPI Cloud bereitzustellen. + +### Ohne `standard`-Abhängigkeiten { #without-standard-dependencies } + +Wenn Sie die `standard` optionalen Abhängigkeiten nicht einschließen möchten, können Sie mit `pip install fastapi` statt `pip install "fastapi[standard]"` installieren. + +### Ohne `fastapi-cloud-cli` { #without-fastapi-cloud-cli } + +Wenn Sie FastAPI mit den Standardabhängigkeiten, aber ohne das `fastapi-cloud-cli` installieren möchten, können Sie mit `pip install "fastapi[standard-no-fastapi-cloud-cli]"` installieren. + +### Zusätzliche optionale Abhängigkeiten { #additional-optional-dependencies } + +Es gibt einige zusätzliche Abhängigkeiten, die Sie installieren möchten. + +Zusätzliche optionale Pydantic-Abhängigkeiten: + +* pydantic-settings – für die Verwaltung von Einstellungen. +* pydantic-extra-types – für zusätzliche Typen zur Verwendung mit Pydantic. + +Zusätzliche optionale FastAPI-Abhängigkeiten: + +* orjson – erforderlich, wenn Sie `ORJSONResponse` verwenden möchten. +* ujson – erforderlich, wenn Sie `UJSONResponse` verwenden möchten. + +## Lizenz { #license } + +Dieses Projekt ist unter den Bedingungen der MIT-Lizenz lizenziert. diff --git a/docs/de/docs/learn/index.md b/docs/de/docs/learn/index.md new file mode 100644 index 0000000..e1f583f --- /dev/null +++ b/docs/de/docs/learn/index.md @@ -0,0 +1,5 @@ +# Lernen { #learn } + +Hier sind die einführenden Abschnitte und Tutorials, um **FastAPI** zu lernen. + +Sie könnten dies als **Buch**, als **Kurs**, als **offizielle** und empfohlene Methode zum Erlernen von FastAPI betrachten. 😎 diff --git a/docs/de/docs/project-generation.md b/docs/de/docs/project-generation.md new file mode 100644 index 0000000..f830f0f --- /dev/null +++ b/docs/de/docs/project-generation.md @@ -0,0 +1,28 @@ +# Full Stack FastAPI Template { #full-stack-fastapi-template } + +Vorlagen, die normalerweise mit einem bestimmten Setup geliefert werden, sind so konzipiert, dass sie flexibel und anpassbar sind. Dies ermöglicht es Ihnen, sie zu ändern und an die Anforderungen Ihres Projekts anzupassen und sie somit zu einem hervorragenden Ausgangspunkt zu machen. 🏁 + +Sie können diese Vorlage verwenden, um loszulegen, da sie bereits vieles der anfänglichen Einrichtung, Sicherheit, Datenbank und einige API-Endpunkte für Sie eingerichtet hat. + +GitHub-Repository: Full Stack FastAPI Template + +## Full Stack FastAPI Template – Technologiestack und Funktionen { #full-stack-fastapi-template-technology-stack-and-features } + +- ⚡ [**FastAPI**](https://fastapi.tiangolo.com/de) für die Python-Backend-API. + - 🧰 [SQLModel](https://sqlmodel.tiangolo.com) für die Interaktion mit der Python-SQL-Datenbank (ORM). + - 🔍 [Pydantic](https://docs.pydantic.dev), verwendet von FastAPI, für die Datenvalidierung und das Einstellungsmanagement. + - 💾 [PostgreSQL](https://www.postgresql.org) als SQL-Datenbank. +- 🚀 [React](https://react.dev) für das Frontend. + - 💃 Verwendung von TypeScript, Hooks, [Vite](https://vitejs.dev) und anderen Teilen eines modernen Frontend-Stacks. + - 🎨 [Chakra UI](https://chakra-ui.com) für die Frontend-Komponenten. + - 🤖 Ein automatisch generierter Frontend-Client. + - 🧪 [Playwright](https://playwright.dev) für End-to-End-Tests. + - 🦇 Unterstützung des Dunkelmodus. +- 🐋 [Docker Compose](https://www.docker.com) für Entwicklung und Produktion. +- 🔒 Sicheres Passwort-Hashing standardmäßig. +- 🔑 JWT-Token-Authentifizierung. +- 📫 E-Mail-basierte Passwortwiederherstellung. +- ✅ Tests mit [Pytest](https://pytest.org). +- 📞 [Traefik](https://traefik.io) als Reverse-Proxy / Load Balancer. +- 🚢 Deployment-Anleitungen unter Verwendung von Docker Compose, einschließlich der Einrichtung eines Frontend-Traefik-Proxys zur Handhabung automatischer HTTPS-Zertifikate. +- 🏭 CI (kontinuierliche Integration) und CD (kontinuierliches Deployment) basierend auf GitHub Actions. diff --git a/docs/de/docs/python-types.md b/docs/de/docs/python-types.md new file mode 100644 index 0000000..317ee4e --- /dev/null +++ b/docs/de/docs/python-types.md @@ -0,0 +1,576 @@ +# Einführung in Python-Typen { #python-types-intro } + +Python hat Unterstützung für optionale „Typhinweise“ (auch „Typannotationen“ genannt). + +Diese **„Typhinweise“** oder -Annotationen sind eine spezielle Syntax, die es erlaubt, den Typ einer Variablen zu deklarieren. + +Durch das Deklarieren von Typen für Ihre Variablen können Editoren und Tools bessere Unterstützung bieten. + +Dies ist lediglich eine **schnelle Anleitung / Auffrischung** über Pythons Typhinweise. Sie deckt nur das Minimum ab, das nötig ist, um diese mit **FastAPI** zu verwenden ... was tatsächlich sehr wenig ist. + +**FastAPI** basiert vollständig auf diesen Typhinweisen, sie geben der Anwendung viele Vorteile und Möglichkeiten. + +Aber selbst wenn Sie **FastAPI** nie verwenden, wird es für Sie nützlich sein, ein wenig darüber zu lernen. + +/// note | Hinweis + +Wenn Sie ein Python-Experte sind und bereits alles über Typhinweise wissen, überspringen Sie dieses Kapitel und fahren Sie mit dem nächsten fort. + +/// + +## Motivation { #motivation } + +Fangen wir mit einem einfachen Beispiel an: + +{* ../../docs_src/python_types/tutorial001.py *} + +Dieses Programm gibt aus: + +``` +John Doe +``` + +Die Funktion macht Folgendes: + +* Nimmt einen `first_name` und `last_name`. +* Schreibt den ersten Buchstaben eines jeden Wortes groß, mithilfe von `title()`. +* Verkettet sie mit einem Leerzeichen in der Mitte. + +{* ../../docs_src/python_types/tutorial001.py hl[2] *} + +### Es bearbeiten { #edit-it } + +Es ist ein sehr einfaches Programm. + +Aber nun stellen Sie sich vor, Sie würden es selbst schreiben. + +Irgendwann sind die Funktions-Parameter fertig, Sie starten mit der Definition des Körpers ... + +Aber dann müssen Sie „diese Methode aufrufen, die den ersten Buchstaben in Großbuchstaben umwandelt“. + +War es `upper`? War es `uppercase`? `first_uppercase`? `capitalize`? + +Dann versuchen Sie es mit dem langjährigen Freund des Programmierers, der Editor-Autovervollständigung. + +Sie geben den ersten Parameter der Funktion ein, `first_name`, dann einen Punkt (`.`) und drücken `Strg+Leertaste`, um die Vervollständigung auszulösen. + +Aber leider erhalten Sie nichts Nützliches: + + + +### Typen hinzufügen { #add-types } + +Lassen Sie uns eine einzelne Zeile aus der vorherigen Version ändern. + +Wir ändern den folgenden Teil, die Parameter der Funktion, von: + +```Python + first_name, last_name +``` + +zu: + +```Python + first_name: str, last_name: str +``` + +Das war's. + +Das sind die „Typhinweise“: + +{* ../../docs_src/python_types/tutorial002.py hl[1] *} + +Das ist nicht das gleiche wie das Deklarieren von Defaultwerten, wie es hier der Fall ist: + +```Python + first_name="john", last_name="doe" +``` + +Das ist eine andere Sache. + +Wir verwenden Doppelpunkte (`:`), nicht Gleichheitszeichen (`=`). + +Und das Hinzufügen von Typhinweisen ändert normalerweise nichts an dem, was ohne sie passieren würde. + +Aber jetzt stellen Sie sich vor, Sie sind wieder mitten in der Erstellung dieser Funktion, aber mit Typhinweisen. + +An derselben Stelle versuchen Sie, die Autovervollständigung mit „Strg+Leertaste“ auszulösen, und Sie sehen: + + + +Hier können Sie durch die Optionen blättern, bis Sie diejenige finden, bei der es „Klick“ macht: + + + +## Mehr Motivation { #more-motivation } + +Sehen Sie sich diese Funktion an, sie hat bereits Typhinweise: + +{* ../../docs_src/python_types/tutorial003.py hl[1] *} + +Da der Editor die Typen der Variablen kennt, erhalten Sie nicht nur Code-Vervollständigung, sondern auch eine Fehlerprüfung: + + + +Jetzt, da Sie wissen, dass Sie das reparieren müssen, konvertieren Sie `age` mittels `str(age)` in einen String: + +{* ../../docs_src/python_types/tutorial004.py hl[2] *} + +## Deklarieren von Typen { #declaring-types } + +Sie haben gerade den Haupt-Einsatzort für die Deklaration von Typhinweisen gesehen. Als Funktionsparameter. + +Das ist auch meistens, wie sie in **FastAPI** verwendet werden. + +### Einfache Typen { #simple-types } + +Sie können alle Standard-Python-Typen deklarieren, nicht nur `str`. + +Zum Beispiel diese: + +* `int` +* `float` +* `bool` +* `bytes` + +{* ../../docs_src/python_types/tutorial005.py hl[1] *} + +### Generische Typen mit Typ-Parametern { #generic-types-with-type-parameters } + +Es gibt Datenstrukturen, die andere Werte enthalten können, wie etwa `dict`, `list`, `set` und `tuple`. Die inneren Werte können auch ihren eigenen Typ haben. + +Diese Typen mit inneren Typen werden „**generische**“ Typen genannt. Es ist möglich, sie mit ihren inneren Typen zu deklarieren. + +Um diese Typen und die inneren Typen zu deklarieren, können Sie Pythons Standardmodul `typing` verwenden. Es existiert speziell für die Unterstützung dieser Typhinweise. + +#### Neuere Python-Versionen { #newer-versions-of-python } + +Die Syntax, welche `typing` verwendet, ist **kompatibel** mit allen Versionen, von Python 3.6 aufwärts zu den neuesten, inklusive Python 3.9, Python 3.10, usw. + +Mit der Weiterentwicklung von Python kommen **neuere Versionen** heraus, mit verbesserter Unterstützung für Typannotationen, und in vielen Fällen müssen Sie gar nicht mehr das `typing`-Modul importieren, um Typannotationen zu schreiben. + +Wenn Sie eine neuere Python-Version für Ihr Projekt wählen können, werden Sie aus dieser zusätzlichen Vereinfachung Nutzen ziehen können. + +In der gesamten Dokumentation gibt es Beispiele, welche kompatibel mit unterschiedlichen Python-Versionen sind (wenn es Unterschiede gibt). + +Zum Beispiel bedeutet „**Python 3.6+**“, dass das Beispiel kompatibel mit Python 3.6 oder höher ist (inklusive 3.7, 3.8, 3.9, 3.10, usw.). Und „**Python 3.9+**“ bedeutet, es ist kompatibel mit Python 3.9 oder höher (inklusive 3.10, usw.). + +Wenn Sie über die **neueste Version von Python** verfügen, verwenden Sie die Beispiele für die neueste Version, diese werden die **beste und einfachste Syntax** haben, zum Beispiel, „**Python 3.10+**“. + +#### Liste { #list } + +Definieren wir zum Beispiel eine Variable, die eine `list` von `str` – eine Liste von Strings – sein soll. + +//// tab | Python 3.9+ + +Deklarieren Sie die Variable mit der gleichen Doppelpunkt-Syntax (`:`). + +Als Typ nehmen Sie `list`. + +Da die Liste ein Typ ist, welcher innere Typen enthält, werden diese von eckigen Klammern umfasst: + +```Python hl_lines="1" +{!> ../../docs_src/python_types/tutorial006_py39.py!} +``` + +//// + +//// tab | Python 3.8+ + +Von `typing` importieren Sie `List` (mit Großbuchstaben `L`): + +```Python hl_lines="1" +{!> ../../docs_src/python_types/tutorial006.py!} +``` + +Deklarieren Sie die Variable mit der gleichen Doppelpunkt-Syntax (`:`). + +Als Typ nehmen Sie das `List`, das Sie von `typing` importiert haben. + +Da die Liste ein Typ ist, welcher innere Typen enthält, werden diese von eckigen Klammern umfasst: + +```Python hl_lines="4" +{!> ../../docs_src/python_types/tutorial006.py!} +``` + +//// + +/// info | Info + +Die inneren Typen in den eckigen Klammern werden als „Typ-Parameter“ bezeichnet. + +In diesem Fall ist `str` der Typ-Parameter, der an `List` übergeben wird (oder `list` in Python 3.9 und darüber). + +/// + +Das bedeutet: Die Variable `items` ist eine Liste – `list` – und jedes der Elemente in dieser Liste ist ein String – `str`. + +/// tip | Tipp + +Wenn Sie Python 3.9 oder höher verwenden, müssen Sie `List` nicht von `typing` importieren, Sie können stattdessen den regulären `list`-Typ verwenden. + +/// + +Auf diese Weise kann Ihr Editor Sie auch bei der Bearbeitung von Einträgen aus der Liste unterstützen: + + + +Ohne Typen ist das fast unmöglich zu erreichen. + +Beachten Sie, dass die Variable `item` eines der Elemente in der Liste `items` ist. + +Und trotzdem weiß der Editor, dass es sich um ein `str` handelt, und bietet entsprechende Unterstützung. + +#### Tupel und Menge { #tuple-and-set } + +Das Gleiche gilt für die Deklaration eines Tupels – `tuple` – und einer Menge – `set`: + +//// tab | Python 3.9+ + +```Python hl_lines="1" +{!> ../../docs_src/python_types/tutorial007_py39.py!} +``` + +//// + +//// tab | Python 3.8+ + +```Python hl_lines="1 4" +{!> ../../docs_src/python_types/tutorial007.py!} +``` + +//// + +Das bedeutet: + +* Die Variable `items_t` ist ein `tuple` mit 3 Elementen, einem `int`, einem weiteren `int` und einem `str`. +* Die Variable `items_s` ist ein `set`, und jedes seiner Elemente ist vom Typ `bytes`. + +#### Dict { #dict } + +Um ein `dict` zu definieren, übergeben Sie zwei Typ-Parameter, getrennt durch Kommas. + +Der erste Typ-Parameter ist für die Schlüssel des `dict`. + +Der zweite Typ-Parameter ist für die Werte des `dict`: + +//// tab | Python 3.9+ + +```Python hl_lines="1" +{!> ../../docs_src/python_types/tutorial008_py39.py!} +``` + +//// + +//// tab | Python 3.8+ + +```Python hl_lines="1 4" +{!> ../../docs_src/python_types/tutorial008.py!} +``` + +//// + +Das bedeutet: + +* Die Variable `prices` ist ein `dict`: + * Die Schlüssel dieses `dict` sind vom Typ `str` (z. B. die Namen der einzelnen Artikel). + * Die Werte dieses `dict` sind vom Typ `float` (z. B. der Preis jedes Artikels). + +#### Union { #union } + +Sie können deklarieren, dass eine Variable einer von **verschiedenen Typen** sein kann, zum Beispiel ein `int` oder ein `str`. + +In Python 3.6 und höher (inklusive Python 3.10) können Sie den `Union`-Typ von `typing` verwenden und die möglichen Typen innerhalb der eckigen Klammern auflisten. + +In Python 3.10 gibt es zusätzlich eine **neue Syntax**, die es erlaubt, die möglichen Typen getrennt von einem vertikalen Balken (`|`) aufzulisten. + +//// tab | Python 3.10+ + +```Python hl_lines="1" +{!> ../../docs_src/python_types/tutorial008b_py310.py!} +``` + +//// + +//// tab | Python 3.8+ + +```Python hl_lines="1 4" +{!> ../../docs_src/python_types/tutorial008b.py!} +``` + +//// + +In beiden Fällen bedeutet das, dass `item` ein `int` oder ein `str` sein kann. + +#### Vielleicht `None` { #possibly-none } + +Sie können deklarieren, dass ein Wert ein `str`, aber vielleicht auch `None` sein kann. + +In Python 3.6 und darüber (inklusive Python 3.10) können Sie das deklarieren, indem Sie `Optional` vom `typing` Modul importieren und verwenden. + +```Python hl_lines="1 4" +{!../../docs_src/python_types/tutorial009.py!} +``` + +Wenn Sie `Optional[str]` anstelle von nur `str` verwenden, wird Ihr Editor Ihnen dabei helfen, Fehler zu erkennen, bei denen Sie annehmen könnten, dass ein Wert immer eine String (`str`) ist, obwohl er auch `None` sein könnte. + +`Optional[Something]` ist tatsächlich eine Abkürzung für `Union[Something, None]`, diese beiden sind äquivalent. + +Das bedeutet auch, dass Sie in Python 3.10 `Something | None` verwenden können: + +//// tab | Python 3.10+ + +```Python hl_lines="1" +{!> ../../docs_src/python_types/tutorial009_py310.py!} +``` + +//// + +//// tab | Python 3.8+ + +```Python hl_lines="1 4" +{!> ../../docs_src/python_types/tutorial009.py!} +``` + +//// + +//// tab | Python 3.8+ Alternative + +```Python hl_lines="1 4" +{!> ../../docs_src/python_types/tutorial009b.py!} +``` + +//// + +#### `Union` oder `Optional` verwenden? { #using-union-or-optional } + +Wenn Sie eine Python-Version unterhalb 3.10 verwenden, hier ist mein sehr **subjektiver** Standpunkt dazu: + +* 🚨 Vermeiden Sie `Optional[SomeType]` +* Stattdessen ✨ **verwenden Sie `Union[SomeType, None]`** ✨. + +Beide sind äquivalent und im Hintergrund dasselbe, aber ich empfehle `Union` statt `Optional`, weil das Wort „**optional**“ impliziert, dass dieser Wert, zum Beispiel als Funktionsparameter, optional ist. Tatsächlich bedeutet es aber nur „Der Wert kann `None` sein“, selbst wenn der Wert nicht optional ist und benötigt wird. + +Ich denke, `Union[SomeType, None]` ist expliziter bezüglich seiner Bedeutung. + +Es geht nur um Wörter und Namen. Aber diese Worte können beeinflussen, wie Sie und Ihre Teamkollegen über den Code denken. + +Nehmen wir zum Beispiel diese Funktion: + +{* ../../docs_src/python_types/tutorial009c.py hl[1,4] *} + +Der Parameter `name` ist definiert als `Optional[str]`, aber er ist **nicht optional**, Sie können die Funktion nicht ohne diesen Parameter aufrufen: + +```Python +say_hi() # Oh, nein, das löst einen Fehler aus! 😱 +``` + +Der `name` Parameter wird **immer noch benötigt** (nicht *optional*), weil er keinen Default-Wert hat. `name` akzeptiert aber dennoch `None` als Wert: + +```Python +say_hi(name=None) # Das funktioniert, None ist gültig 🎉 +``` + +Die gute Nachricht ist, dass Sie sich darüber keine Sorgen mehr machen müssen, wenn Sie Python 3.10 verwenden, da Sie einfach `|` verwenden können, um Vereinigungen von Typen zu definieren: + +{* ../../docs_src/python_types/tutorial009c_py310.py hl[1,4] *} + +Und dann müssen Sie sich nicht mehr um Namen wie `Optional` und `Union` kümmern. 😎 + +#### Generische Typen { #generic-types } + +Diese Typen, die Typ-Parameter in eckigen Klammern akzeptieren, werden **generische Typen** oder **Generics** genannt. + +//// tab | Python 3.10+ + +Sie können die eingebauten Typen als Generics verwenden (mit eckigen Klammern und Typen darin): + +* `list` +* `tuple` +* `set` +* `dict` + +Verwenden Sie für den Rest, wie unter Python 3.8, das `typing`-Modul: + +* `Union` +* `Optional` (so wie unter Python 3.8) +* ... und andere. + +In Python 3.10 können Sie als Alternative zu den Generics `Union` und `Optional` den vertikalen Balken (`|`) verwenden, um Vereinigungen von Typen zu deklarieren, das ist besser und einfacher. + +//// + +//// tab | Python 3.9+ + +Sie können die eingebauten Typen als Generics verwenden (mit eckigen Klammern und Typen darin): + +* `list` +* `tuple` +* `set` +* `dict` + +Verwenden Sie für den Rest, wie unter Python 3.8, das `typing`-Modul: + +* `Union` +* `Optional` +* ... und andere. + +//// + +//// tab | Python 3.8+ + +* `List` +* `Tuple` +* `Set` +* `Dict` +* `Union` +* `Optional` +* ... und andere. + +//// + +### Klassen als Typen { #classes-as-types } + +Sie können auch eine Klasse als Typ einer Variablen deklarieren. + +Nehmen wir an, Sie haben eine Klasse `Person`, mit einem Namen: + +{* ../../docs_src/python_types/tutorial010.py hl[1:3] *} + +Dann können Sie eine Variable vom Typ `Person` deklarieren: + +{* ../../docs_src/python_types/tutorial010.py hl[6] *} + +Und wiederum bekommen Sie die volle Editor-Unterstützung: + + + +Beachten Sie, das bedeutet: „`one_person` ist eine **Instanz** der Klasse `Person`“. + +Es bedeutet nicht: „`one_person` ist die **Klasse** genannt `Person`“. + +## Pydantic-Modelle { #pydantic-models } + +Pydantic ist eine Python-Bibliothek für die Validierung von Daten. + +Sie deklarieren die „Form“ der Daten als Klassen mit Attributen. + +Und jedes Attribut hat einen Typ. + +Dann erzeugen Sie eine Instanz dieser Klasse mit einigen Werten, und Pydantic validiert die Werte, konvertiert sie in den passenden Typ (falls notwendig) und gibt Ihnen ein Objekt mit allen Daten. + +Und Sie erhalten volle Editor-Unterstützung für dieses Objekt. + +Ein Beispiel aus der offiziellen Pydantic Dokumentation: + +//// tab | Python 3.10+ + +```Python +{!> ../../docs_src/python_types/tutorial011_py310.py!} +``` + +//// + +//// tab | Python 3.9+ + +```Python +{!> ../../docs_src/python_types/tutorial011_py39.py!} +``` + +//// + +//// tab | Python 3.8+ + +```Python +{!> ../../docs_src/python_types/tutorial011.py!} +``` + +//// + +/// info | Info + +Um mehr über Pydantic zu erfahren, schauen Sie sich dessen Dokumentation an. + +/// + +**FastAPI** basiert vollständig auf Pydantic. + +Viel mehr von all dem werden Sie in praktischer Anwendung im [Tutorial – Benutzerhandbuch](tutorial/index.md){.internal-link target=_blank} sehen. + +/// tip | Tipp + +Pydantic verhält sich speziell, wenn Sie `Optional` oder `Union[Something, None]` ohne einen Defaultwert verwenden. Sie können darüber in der Pydantic Dokumentation unter Erforderliche optionale Felder mehr erfahren. + +/// + +## Typhinweise mit Metadaten-Annotationen { #type-hints-with-metadata-annotations } + +Python bietet auch die Möglichkeit, **zusätzliche Metadaten** in Typhinweisen unterzubringen, mittels `Annotated`. + +//// tab | Python 3.9+ + +In Python 3.9 ist `Annotated` ein Teil der Standardbibliothek, Sie können es von `typing` importieren. + +```Python hl_lines="1 4" +{!> ../../docs_src/python_types/tutorial013_py39.py!} +``` + +//// + +//// tab | Python 3.8+ + +In Versionen niedriger als Python 3.9 importieren Sie `Annotated` von `typing_extensions`. + +Es wird bereits mit **FastAPI** installiert sein. + +```Python hl_lines="1 4" +{!> ../../docs_src/python_types/tutorial013.py!} +``` + +//// + +Python selbst macht nichts mit `Annotated`. Für Editoren und andere Tools ist der Typ immer noch `str`. + +Aber Sie können `Annotated` nutzen, um **FastAPI** mit Metadaten zu versorgen, die ihm sagen, wie sich Ihre Anwendung verhalten soll. + +Wichtig ist, dass **der erste *Typ-Parameter***, den Sie `Annotated` übergeben, der **tatsächliche Typ** ist. Der Rest sind Metadaten für andere Tools. + +Im Moment müssen Sie nur wissen, dass `Annotated` existiert, und dass es Standard-Python ist. 😎 + +Später werden Sie sehen, wie **mächtig** es sein kann. + +/// tip | Tipp + +Der Umstand, dass es **Standard-Python** ist, bedeutet, dass Sie immer noch die **bestmögliche Entwickler-Erfahrung** in Ihrem Editor haben, sowie mit den Tools, die Sie nutzen, um Ihren Code zu analysieren, zu refaktorisieren, usw. ✨ + +Und ebenfalls, dass Ihr Code sehr kompatibel mit vielen anderen Python-Tools und -Bibliotheken sein wird. 🚀 + +/// + +## Typhinweise in **FastAPI** { #type-hints-in-fastapi } + +**FastAPI** macht sich diese Typhinweise zunutze, um mehrere Dinge zu tun. + +Mit **FastAPI** deklarieren Sie Parameter mit Typhinweisen, und Sie erhalten: + +* **Editorunterstützung**. +* **Typ-Prüfungen**. + +... und **FastAPI** verwendet dieselben Deklarationen, um: + +* **Anforderungen** zu definieren: aus Request-Pfadparametern, Query-Parametern, Header-Feldern, Bodys, Abhängigkeiten, usw. +* **Daten umzuwandeln**: aus dem Request in den erforderlichen Typ. +* **Daten zu validieren**: aus jedem Request: + * **Automatische Fehler** generieren, die an den Client zurückgegeben werden, wenn die Daten ungültig sind. +* Die API mit OpenAPI zu **dokumentieren**: + * Die dann von den Benutzeroberflächen der automatisch generierten interaktiven Dokumentation verwendet wird. + +Das mag alles abstrakt klingen. Machen Sie sich keine Sorgen. Sie werden all das in Aktion sehen im [Tutorial – Benutzerhandbuch](tutorial/index.md){.internal-link target=_blank}. + +Das Wichtigste ist, dass **FastAPI** durch die Verwendung von Standard-Python-Typen an einer einzigen Stelle (anstatt weitere Klassen, Dekoratoren usw. hinzuzufügen) einen Großteil der Arbeit für Sie erledigt. + +/// info | Info + +Wenn Sie bereits das ganze Tutorial durchgearbeitet haben und mehr über Typen erfahren wollen, dann ist eine gute Ressource der „Cheat Sheet“ von `mypy`. + +/// diff --git a/docs/de/docs/resources/index.md b/docs/de/docs/resources/index.md new file mode 100644 index 0000000..2c5046c --- /dev/null +++ b/docs/de/docs/resources/index.md @@ -0,0 +1,3 @@ +# Ressourcen { #resources } + +Zusätzliche Ressourcen, externe Links, Artikel und mehr. ✈️ diff --git a/docs/de/docs/tutorial/background-tasks.md b/docs/de/docs/tutorial/background-tasks.md new file mode 100644 index 0000000..2c381cc --- /dev/null +++ b/docs/de/docs/tutorial/background-tasks.md @@ -0,0 +1,86 @@ +# Hintergrundtasks { #background-tasks } + +Sie können Hintergrundtasks definieren, die *nach* der Rückgabe einer Response ausgeführt werden sollen. + +Das ist nützlich für Vorgänge, die nach einem Request ausgeführt werden müssen, bei denen der Client jedoch nicht unbedingt auf den Abschluss des Vorgangs warten muss, bevor er die Response erhält. + +Hierzu zählen beispielsweise: + +* E-Mail-Benachrichtigungen, die nach dem Ausführen einer Aktion gesendet werden: + * Da die Verbindung zu einem E-Mail-Server und das Senden einer E-Mail in der Regel „langsam“ ist (einige Sekunden), können Sie die Response sofort zurücksenden und die E-Mail-Benachrichtigung im Hintergrund senden. +* Daten verarbeiten: + * Angenommen, Sie erhalten eine Datei, die einen langsamen Prozess durchlaufen muss. Sie können als Response „Accepted“ (HTTP 202) zurückgeben und die Datei im Hintergrund verarbeiten. + +## `BackgroundTasks` verwenden { #using-backgroundtasks } + +Importieren Sie zunächst `BackgroundTasks` und definieren Sie einen Parameter in Ihrer *Pfadoperation-Funktion* mit der Typdeklaration `BackgroundTasks`: + +{* ../../docs_src/background_tasks/tutorial001.py hl[1,13] *} + +**FastAPI** erstellt für Sie das Objekt vom Typ `BackgroundTasks` und übergibt es als diesen Parameter. + +## Eine Taskfunktion erstellen { #create-a-task-function } + +Erstellen Sie eine Funktion, die als Hintergrundtask ausgeführt werden soll. + +Es handelt sich schlicht um eine Standard-Funktion, die Parameter empfangen kann. + +Es kann sich um eine `async def`- oder normale `def`-Funktion handeln. **FastAPI** weiß, wie damit zu verfahren ist. + +In diesem Fall schreibt die Taskfunktion in eine Datei (den Versand einer E-Mail simulierend). + +Und da der Schreibvorgang nicht `async` und `await` verwendet, definieren wir die Funktion mit normalem `def`: + +{* ../../docs_src/background_tasks/tutorial001.py hl[6:9] *} + +## Den Hintergrundtask hinzufügen { #add-the-background-task } + +Übergeben Sie innerhalb Ihrer *Pfadoperation-Funktion* Ihre Taskfunktion mit der Methode `.add_task()` an das *Hintergrundtasks*-Objekt: + +{* ../../docs_src/background_tasks/tutorial001.py hl[14] *} + +`.add_task()` erhält als Argumente: + +* Eine Taskfunktion, die im Hintergrund ausgeführt wird (`write_notification`). +* Eine beliebige Folge von Argumenten, die der Reihe nach an die Taskfunktion übergeben werden sollen (`email`). +* Alle Schlüsselwort-Argumente, die an die Taskfunktion übergeben werden sollen (`message="some notification"`). + +## Dependency Injection { #dependency-injection } + +Die Verwendung von `BackgroundTasks` funktioniert auch mit dem Dependency Injection System. Sie können einen Parameter vom Typ `BackgroundTasks` auf mehreren Ebenen deklarieren: in einer *Pfadoperation-Funktion*, in einer Abhängigkeit (Dependable), in einer Unterabhängigkeit usw. + +**FastAPI** weiß, was jeweils zu tun ist und wie dasselbe Objekt wiederverwendet werden kann, sodass alle Hintergrundtasks zusammengeführt und anschließend im Hintergrund ausgeführt werden: + + +{* ../../docs_src/background_tasks/tutorial002_an_py310.py hl[13,15,22,25] *} + + +In obigem Beispiel werden die Nachrichten, *nachdem* die Response gesendet wurde, in die Datei `log.txt` geschrieben. + +Wenn im Request ein Query-Parameter enthalten war, wird dieser in einem Hintergrundtask in das Log geschrieben. + +Und dann schreibt ein weiterer Hintergrundtask, der in der *Pfadoperation-Funktion* erstellt wird, eine Nachricht unter Verwendung des Pfad-Parameters `email`. + +## Technische Details { #technical-details } + +Die Klasse `BackgroundTasks` stammt direkt von `starlette.background`. + +Sie wird direkt in FastAPI importiert/inkludiert, sodass Sie sie von `fastapi` importieren können und vermeiden, versehentlich das alternative `BackgroundTask` (ohne das `s` am Ende) von `starlette.background` zu importieren. + +Indem Sie nur `BackgroundTasks` (und nicht `BackgroundTask`) verwenden, ist es dann möglich, es als *Pfadoperation-Funktion*-Parameter zu verwenden und **FastAPI** den Rest für Sie erledigen zu lassen, genau wie bei der direkten Verwendung des `Request`-Objekts. + +Es ist immer noch möglich, `BackgroundTask` allein in FastAPI zu verwenden, aber Sie müssen das Objekt in Ihrem Code erstellen und eine Starlette-`Response` zurückgeben, die es enthält. + +Weitere Details finden Sie in Starlettes offizieller Dokumentation für Hintergrundtasks. + +## Vorbehalt { #caveat } + +Wenn Sie umfangreiche Hintergrundberechnungen durchführen müssen und diese nicht unbedingt vom selben Prozess ausgeführt werden müssen (z. B. müssen Sie Speicher, Variablen, usw. nicht gemeinsam nutzen), könnte die Verwendung anderer größerer Tools wie z. B. Celery von Vorteil sein. + +Sie erfordern in der Regel komplexere Konfigurationen und einen Nachrichten-/Job-Queue-Manager wie RabbitMQ oder Redis, ermöglichen Ihnen jedoch die Ausführung von Hintergrundtasks in mehreren Prozessen und insbesondere auf mehreren Servern. + +Wenn Sie jedoch über dieselbe **FastAPI**-App auf Variablen und Objekte zugreifen oder kleine Hintergrundtasks ausführen müssen (z. B. das Senden einer E-Mail-Benachrichtigung), können Sie einfach `BackgroundTasks` verwenden. + +## Zusammenfassung { #recap } + +Importieren und verwenden Sie `BackgroundTasks` mit Parametern in *Pfadoperation-Funktionen* und Abhängigkeiten, um Hintergrundtasks hinzuzufügen. diff --git a/docs/de/docs/tutorial/bigger-applications.md b/docs/de/docs/tutorial/bigger-applications.md new file mode 100644 index 0000000..928d50a --- /dev/null +++ b/docs/de/docs/tutorial/bigger-applications.md @@ -0,0 +1,556 @@ +# Größere Anwendungen – mehrere Dateien { #bigger-applications-multiple-files } + +Wenn Sie eine Anwendung oder eine Web-API erstellen, ist es selten der Fall, dass Sie alles in einer einzigen Datei unterbringen können. + +**FastAPI** bietet ein praktisches Werkzeug zur Strukturierung Ihrer Anwendung bei gleichzeitiger Wahrung der Flexibilität. + +/// info | Info + +Wenn Sie von Flask kommen, wäre dies das Äquivalent zu Flasks Blueprints. + +/// + +## Eine Beispiel-Dateistruktur { #an-example-file-structure } + +Nehmen wir an, Sie haben eine Dateistruktur wie diese: + +``` +. +├── app +│   ├── __init__.py +│   ├── main.py +│   ├── dependencies.py +│   └── routers +│   │ ├── __init__.py +│   │ ├── items.py +│   │ └── users.py +│   └── internal +│   ├── __init__.py +│   └── admin.py +``` + +/// tip | Tipp + +Es gibt mehrere `__init__.py`-Dateien: eine in jedem Verzeichnis oder Unterverzeichnis. + +Das ermöglicht den Import von Code aus einer Datei in eine andere. + +In `app/main.py` könnten Sie beispielsweise eine Zeile wie diese haben: + +``` +from app.routers import items +``` + +/// + +* Das Verzeichnis `app` enthält alles. Und es hat eine leere Datei `app/__init__.py`, es handelt sich also um ein „Python-Package“ (eine Sammlung von „Python-Modulen“): `app`. +* Es enthält eine Datei `app/main.py`. Da sie sich in einem Python-Package (einem Verzeichnis mit einer Datei `__init__.py`) befindet, ist sie ein „Modul“ dieses Packages: `app.main`. +* Es gibt auch eine Datei `app/dependencies.py`, genau wie `app/main.py` ist sie ein „Modul“: `app.dependencies`. +* Es gibt ein Unterverzeichnis `app/routers/` mit einer weiteren Datei `__init__.py`, es handelt sich also um ein „Python-Subpackage“: `app.routers`. +* Die Datei `app/routers/items.py` befindet sich in einem Package, `app/routers/`, also ist sie ein Submodul: `app.routers.items`. +* Das Gleiche gilt für `app/routers/users.py`, es ist ein weiteres Submodul: `app.routers.users`. +* Es gibt auch ein Unterverzeichnis `app/internal/` mit einer weiteren Datei `__init__.py`, es handelt sich also um ein weiteres „Python-Subpackage“: `app.internal`. +* Und die Datei `app/internal/admin.py` ist ein weiteres Submodul: `app.internal.admin`. + + + +Die gleiche Dateistruktur mit Kommentaren: + +``` +. +├── app # „app“ ist ein Python-Package +│   ├── __init__.py # diese Datei macht „app“ zu einem „Python-Package“ +│   ├── main.py # „main“-Modul, z. B. import app.main +│   ├── dependencies.py # „dependencies“-Modul, z. B. import app.dependencies +│   └── routers # „routers“ ist ein „Python-Subpackage“ +│   │ ├── __init__.py # macht „routers“ zu einem „Python-Subpackage“ +│   │ ├── items.py # „items“-Submodul, z. B. import app.routers.items +│   │ └── users.py # „users“-Submodul, z. B. import app.routers.users +│   └── internal # „internal“ ist ein „Python-Subpackage“ +│   ├── __init__.py # macht „internal“ zu einem „Python-Subpackage“ +│   └── admin.py # „admin“-Submodul, z. B. import app.internal.admin +``` + +## `APIRouter` { #apirouter } + +Nehmen wir an, die Datei, die nur für die Verwaltung von Benutzern zuständig ist, ist das Submodul unter `/app/routers/users.py`. + +Sie möchten die *Pfadoperationen* für Ihre Benutzer vom Rest des Codes trennen, um ihn organisiert zu halten. + +Aber es ist immer noch Teil derselben **FastAPI**-Anwendung/Web-API (es ist Teil desselben „Python-Packages“). + +Sie können die *Pfadoperationen* für dieses Modul mit `APIRouter` erstellen. + +### `APIRouter` importieren { #import-apirouter } + +Sie importieren ihn und erstellen eine „Instanz“ auf die gleiche Weise wie mit der Klasse `FastAPI`: + +```Python hl_lines="1 3" title="app/routers/users.py" +{!../../docs_src/bigger_applications/app/routers/users.py!} +``` + +### *Pfadoperationen* mit `APIRouter` { #path-operations-with-apirouter } + +Und dann verwenden Sie ihn, um Ihre *Pfadoperationen* zu deklarieren. + +Verwenden Sie ihn auf die gleiche Weise wie die Klasse `FastAPI`: + +```Python hl_lines="6 11 16" title="app/routers/users.py" +{!../../docs_src/bigger_applications/app/routers/users.py!} +``` + +Sie können sich `APIRouter` als eine „Mini-`FastAPI`“-Klasse vorstellen. + +Alle die gleichen Optionen werden unterstützt. + +Alle die gleichen `parameters`, `responses`, `dependencies`, `tags`, usw. + +/// tip | Tipp + +In diesem Beispiel heißt die Variable `router`, aber Sie können ihr einen beliebigen Namen geben. + +/// + +Wir werden diesen `APIRouter` in die Hauptanwendung `FastAPI` einbinden, aber zuerst kümmern wir uns um die Abhängigkeiten und einen anderen `APIRouter`. + +## Abhängigkeiten { #dependencies } + +Wir sehen, dass wir einige Abhängigkeiten benötigen, die an mehreren Stellen der Anwendung verwendet werden. + +Also fügen wir sie in ihr eigenes `dependencies`-Modul (`app/dependencies.py`) ein. + +Wir werden nun eine einfache Abhängigkeit verwenden, um einen benutzerdefinierten `X-Token`-Header zu lesen: + +//// tab | Python 3.9+ + +```Python hl_lines="3 6-8" title="app/dependencies.py" +{!> ../../docs_src/bigger_applications/app_an_py39/dependencies.py!} +``` + +//// + +//// tab | Python 3.8+ + +```Python hl_lines="1 5-7" title="app/dependencies.py" +{!> ../../docs_src/bigger_applications/app_an/dependencies.py!} +``` + +//// + +//// tab | Python 3.8+ nicht annotiert + +/// tip | Tipp + +Bevorzugen Sie die `Annotated`-Version, falls möglich. + +/// + +```Python hl_lines="1 4-6" title="app/dependencies.py" +{!> ../../docs_src/bigger_applications/app/dependencies.py!} +``` + +//// + +/// tip | Tipp + +Um dieses Beispiel zu vereinfachen, verwenden wir einen erfundenen Header. + +Aber in der Praxis werden Sie mit den integrierten [Sicherheits-Werkzeugen](security/index.md){.internal-link target=_blank} bessere Ergebnisse erzielen. + +/// + +## Ein weiteres Modul mit `APIRouter` { #another-module-with-apirouter } + +Nehmen wir an, Sie haben im Modul unter `app/routers/items.py` auch die Endpunkte, die für die Verarbeitung von Artikeln („Items“) aus Ihrer Anwendung vorgesehen sind. + +Sie haben *Pfadoperationen* für: + +* `/items/` +* `/items/{item_id}` + +Es ist alles die gleiche Struktur wie bei `app/routers/users.py`. + +Aber wir wollen schlauer sein und den Code etwas vereinfachen. + +Wir wissen, dass alle *Pfadoperationen* in diesem Modul folgendes haben: + +* Pfad-`prefix`: `/items`. +* `tags`: (nur ein Tag: `items`). +* Zusätzliche `responses`. +* `dependencies`: Sie alle benötigen die von uns erstellte `X-Token`-Abhängigkeit. + +Anstatt also alles zu jeder *Pfadoperation* hinzuzufügen, können wir es dem `APIRouter` hinzufügen. + +```Python hl_lines="5-10 16 21" title="app/routers/items.py" +{!../../docs_src/bigger_applications/app/routers/items.py!} +``` + +Da der Pfad jeder *Pfadoperation* mit `/` beginnen muss, wie in: + +```Python hl_lines="1" +@router.get("/{item_id}") +async def read_item(item_id: str): + ... +``` + +... darf das Präfix kein abschließendes `/` enthalten. + +Das Präfix lautet in diesem Fall also `/items`. + +Wir können auch eine Liste von `tags` und zusätzliche `responses` hinzufügen, die auf alle in diesem Router enthaltenen *Pfadoperationen* angewendet werden. + +Und wir können eine Liste von `dependencies` hinzufügen, die allen *Pfadoperationen* im Router hinzugefügt und für jeden an sie gerichteten Request ausgeführt/aufgelöst werden. + +/// tip | Tipp + +Beachten Sie, dass ähnlich wie bei [Abhängigkeiten in *Pfadoperation-Dekoratoren*](dependencies/dependencies-in-path-operation-decorators.md){.internal-link target=_blank} kein Wert an Ihre *Pfadoperation-Funktion* übergeben wird. + +/// + +Das Endergebnis ist, dass die Pfade für diese Artikel jetzt wie folgt lauten: + +* `/items/` +* `/items/{item_id}` + +... wie wir es beabsichtigt hatten. + +* Sie werden mit einer Liste von Tags gekennzeichnet, die einen einzelnen String `"items"` enthält. + * Diese „Tags“ sind besonders nützlich für die automatischen interaktiven Dokumentationssysteme (unter Verwendung von OpenAPI). +* Alle enthalten die vordefinierten `responses`. +* Für alle diese *Pfadoperationen* wird die Liste der `dependencies` ausgewertet/ausgeführt, bevor sie selbst ausgeführt werden. + * Wenn Sie außerdem Abhängigkeiten in einer bestimmten *Pfadoperation* deklarieren, **werden diese ebenfalls ausgeführt**. + * Zuerst werden die Router-Abhängigkeiten ausgeführt, dann die [`dependencies` im Dekorator](dependencies/dependencies-in-path-operation-decorators.md){.internal-link target=_blank} und dann die normalen Parameterabhängigkeiten. + * Sie können auch [`Security`-Abhängigkeiten mit `scopes`](../advanced/security/oauth2-scopes.md){.internal-link target=_blank} hinzufügen. + +/// tip | Tipp + +`dependencies` im `APIRouter` können beispielsweise verwendet werden, um eine Authentifizierung für eine ganze Gruppe von *Pfadoperationen* zu erfordern. Selbst wenn die Abhängigkeiten nicht jeder einzeln hinzugefügt werden. + +/// + +/// check | Testen + +Die Parameter `prefix`, `tags`, `responses` und `dependencies` sind (wie in vielen anderen Fällen) nur ein Feature von **FastAPI**, um Ihnen dabei zu helfen, Codeverdoppelung zu vermeiden. + +/// + +### Die Abhängigkeiten importieren { #import-the-dependencies } + +Der folgende Code befindet sich im Modul `app.routers.items`, also in der Datei `app/routers/items.py`. + +Und wir müssen die Abhängigkeitsfunktion aus dem Modul `app.dependencies` importieren, also aus der Datei `app/dependencies.py`. + +Daher verwenden wir einen relativen Import mit `..` für die Abhängigkeiten: + +```Python hl_lines="3" title="app/routers/items.py" +{!../../docs_src/bigger_applications/app/routers/items.py!} +``` + +#### Wie relative Importe funktionieren { #how-relative-imports-work } + +/// tip | Tipp + +Wenn Sie genau wissen, wie Importe funktionieren, fahren Sie mit dem nächsten Abschnitt unten fort. + +/// + +Ein einzelner Punkt `.`, wie in: + +```Python +from .dependencies import get_token_header +``` + +würde bedeuten: + +* Beginnend im selben Package, in dem sich dieses Modul (die Datei `app/routers/items.py`) befindet (das Verzeichnis `app/routers/`) ... +* finde das Modul `dependencies` (eine imaginäre Datei unter `app/routers/dependencies.py`) ... +* und importiere daraus die Funktion `get_token_header`. + +Aber diese Datei existiert nicht, unsere Abhängigkeiten befinden sich in einer Datei unter `app/dependencies.py`. + +Erinnern Sie sich, wie unsere Anwendungs-/Dateistruktur aussieht: + + + +--- + +Die beiden Punkte `..`, wie in: + +```Python +from ..dependencies import get_token_header +``` + +bedeuten: + +* Beginnend im selben Package, in dem sich dieses Modul (die Datei `app/routers/items.py`) befindet (das Verzeichnis `app/routers/`) ... +* gehe zum übergeordneten Package (das Verzeichnis `app/`) ... +* und finde dort das Modul `dependencies` (die Datei unter `app/dependencies.py`) ... +* und importiere daraus die Funktion `get_token_header`. + +Das funktioniert korrekt! 🎉 + +--- + +Das Gleiche gilt, wenn wir drei Punkte `...` verwendet hätten, wie in: + +```Python +from ...dependencies import get_token_header +``` + +Das würde bedeuten: + +* Beginnend im selben Package, in dem sich dieses Modul (die Datei `app/routers/items.py`) befindet (das Verzeichnis `app/routers/`) ... +* gehe zum übergeordneten Package (das Verzeichnis `app/`) ... +* gehe dann zum übergeordneten Package dieses Packages (es gibt kein übergeordnetes Package, `app` ist die oberste Ebene 😱) ... +* und finde dort das Modul `dependencies` (die Datei unter `app/dependencies.py`) ... +* und importiere daraus die Funktion `get_token_header`. + +Das würde sich auf ein Paket oberhalb von `app/` beziehen, mit seiner eigenen Datei `__init__.py`, usw. Aber das haben wir nicht. Das würde in unserem Beispiel also einen Fehler auslösen. 🚨 + +Aber jetzt wissen Sie, wie es funktioniert, sodass Sie relative Importe in Ihren eigenen Anwendungen verwenden können, egal wie komplex diese sind. 🤓 + +### Einige benutzerdefinierte `tags`, `responses`, und `dependencies` hinzufügen { #add-some-custom-tags-responses-and-dependencies } + +Wir fügen weder das Präfix `/items` noch `tags=["items"]` zu jeder *Pfadoperation* hinzu, da wir sie zum `APIRouter` hinzugefügt haben. + +Aber wir können immer noch _mehr_ `tags` hinzufügen, die auf eine bestimmte *Pfadoperation* angewendet werden, sowie einige zusätzliche `responses`, die speziell für diese *Pfadoperation* gelten: + +```Python hl_lines="30-31" title="app/routers/items.py" +{!../../docs_src/bigger_applications/app/routers/items.py!} +``` + +/// tip | Tipp + +Diese letzte Pfadoperation wird eine Kombination von Tags haben: `["items", "custom"]`. + +Und sie wird auch beide Responses in der Dokumentation haben, eine für `404` und eine für `403`. + +/// + +## Das Haupt-`FastAPI` { #the-main-fastapi } + +Sehen wir uns nun das Modul unter `app/main.py` an. + +Hier importieren und verwenden Sie die Klasse `FastAPI`. + +Dies ist die Hauptdatei Ihrer Anwendung, die alles zusammenfügt. + +Und da sich der Großteil Ihrer Logik jetzt in seinem eigenen spezifischen Modul befindet, wird die Hauptdatei recht einfach sein. + +### `FastAPI` importieren { #import-fastapi } + +Sie importieren und erstellen wie gewohnt eine `FastAPI`-Klasse. + +Und wir können sogar [globale Abhängigkeiten](dependencies/global-dependencies.md){.internal-link target=_blank} deklarieren, die mit den Abhängigkeiten für jeden `APIRouter` kombiniert werden: + +```Python hl_lines="1 3 7" title="app/main.py" +{!../../docs_src/bigger_applications/app/main.py!} +``` + +### Den `APIRouter` importieren { #import-the-apirouter } + +Jetzt importieren wir die anderen Submodule, die `APIRouter` haben: + +```Python hl_lines="4-5" title="app/main.py" +{!../../docs_src/bigger_applications/app/main.py!} +``` + +Da es sich bei den Dateien `app/routers/users.py` und `app/routers/items.py` um Submodule handelt, die Teil desselben Python-Packages `app` sind, können wir einen einzelnen Punkt `.` verwenden, um sie mit „relativen Imports“ zu importieren. + +### Wie das Importieren funktioniert { #how-the-importing-works } + +Die Sektion: + +```Python +from .routers import items, users +``` + +bedeutet: + +* Beginnend im selben Package, in dem sich dieses Modul (die Datei `app/main.py`) befindet (das Verzeichnis `app/`) ... +* Suche nach dem Subpackage `routers` (das Verzeichnis unter `app/routers/`) ... +* und importiere daraus die Submodule `items` (die Datei unter `app/routers/items.py`) und `users` (die Datei unter `app/routers/users.py`) ... + +Das Modul `items` verfügt über eine Variable `router` (`items.router`). Das ist dieselbe, die wir in der Datei `app/routers/items.py` erstellt haben, es ist ein `APIRouter`-Objekt. + +Und dann machen wir das gleiche für das Modul `users`. + +Wir könnten sie auch wie folgt importieren: + +```Python +from app.routers import items, users +``` + +/// info | Info + +Die erste Version ist ein „relativer Import“: + +```Python +from .routers import items, users +``` + +Die zweite Version ist ein „absoluter Import“: + +```Python +from app.routers import items, users +``` + +Um mehr über Python-Packages und -Module zu erfahren, lesen Sie die offizielle Python-Dokumentation über Module. + +/// + +### Namenskollisionen vermeiden { #avoid-name-collisions } + +Wir importieren das Submodul `items` direkt, anstatt nur seine Variable `router` zu importieren. + +Das liegt daran, dass wir im Submodul `users` auch eine weitere Variable namens `router` haben. + +Wenn wir eine nach der anderen importiert hätten, etwa: + +```Python +from .routers.items import router +from .routers.users import router +``` + +würde der `router` von `users` den von `items` überschreiben und wir könnten sie nicht gleichzeitig verwenden. + +Um also beide in derselben Datei verwenden zu können, importieren wir die Submodule direkt: + +```Python hl_lines="5" title="app/main.py" +{!../../docs_src/bigger_applications/app/main.py!} +``` + +### Die `APIRouter` für `users` und `items` inkludieren { #include-the-apirouters-for-users-and-items } + +Inkludieren wir nun die `router` aus diesen Submodulen `users` und `items`: + +```Python hl_lines="10-11" title="app/main.py" +{!../../docs_src/bigger_applications/app/main.py!} +``` + +/// info | Info + +`users.router` enthält den `APIRouter` in der Datei `app/routers/users.py`. + +Und `items.router` enthält den `APIRouter` in der Datei `app/routers/items.py`. + +/// + +Mit `app.include_router()` können wir jeden `APIRouter` zur Hauptanwendung `FastAPI` hinzufügen. + +Es wird alle Routen von diesem Router als Teil von dieser inkludieren. + +/// note | Technische Details + +Tatsächlich wird intern eine *Pfadoperation* für jede *Pfadoperation* erstellt, die im `APIRouter` deklariert wurde. + +Hinter den Kulissen wird es also tatsächlich so funktionieren, als ob alles dieselbe einzige Anwendung wäre. + +/// + +/// check | Testen + +Bei der Einbindung von Routern müssen Sie sich keine Gedanken über die Performanz machen. + +Dies dauert Mikrosekunden und geschieht nur beim Start. + +Es hat also keinen Einfluss auf die Leistung. ⚡ + +/// + +### Einen `APIRouter` mit benutzerdefinierten `prefix`, `tags`, `responses` und `dependencies` einfügen { #include-an-apirouter-with-a-custom-prefix-tags-responses-and-dependencies } + +Stellen wir uns nun vor, dass Ihre Organisation Ihnen die Datei `app/internal/admin.py` gegeben hat. + +Sie enthält einen `APIRouter` mit einigen administrativen *Pfadoperationen*, die Ihre Organisation zwischen mehreren Projekten teilt. + +In diesem Beispiel wird es ganz einfach sein. Nehmen wir jedoch an, dass wir, da sie mit anderen Projekten in der Organisation geteilt wird, sie nicht ändern und kein `prefix`, `dependencies`, `tags`, usw. direkt zum `APIRouter` hinzufügen können: + +```Python hl_lines="3" title="app/internal/admin.py" +{!../../docs_src/bigger_applications/app/internal/admin.py!} +``` + +Aber wir möchten immer noch ein benutzerdefiniertes `prefix` festlegen, wenn wir den `APIRouter` einbinden, sodass alle seine *Pfadoperationen* mit `/admin` beginnen, wir möchten es mit den `dependencies` sichern, die wir bereits für dieses Projekt haben, und wir möchten `tags` und `responses` hinzufügen. + +Wir können das alles deklarieren, ohne den ursprünglichen `APIRouter` ändern zu müssen, indem wir diese Parameter an `app.include_router()` übergeben: + +```Python hl_lines="14-17" title="app/main.py" +{!../../docs_src/bigger_applications/app/main.py!} +``` + +Auf diese Weise bleibt der ursprüngliche `APIRouter` unverändert, sodass wir dieselbe `app/internal/admin.py`-Datei weiterhin mit anderen Projekten in der Organisation teilen können. + +Das Ergebnis ist, dass in unserer Anwendung jede der *Pfadoperationen* aus dem Modul `admin` Folgendes haben wird: + +* Das Präfix `/admin`. +* Den Tag `admin`. +* Die Abhängigkeit `get_token_header`. +* Die Response `418`. 🍵 + +Dies wirkt sich jedoch nur auf diesen `APIRouter` in unserer Anwendung aus, nicht auf anderen Code, der ihn verwendet. + +So könnten beispielsweise andere Projekte denselben `APIRouter` mit einer anderen Authentifizierungsmethode verwenden. + +### Eine *Pfadoperation* hinzufügen { #include-a-path-operation } + +Wir können *Pfadoperationen* auch direkt zur `FastAPI`-App hinzufügen. + +Hier machen wir es ... nur um zu zeigen, dass wir es können 🤷: + +```Python hl_lines="21-23" title="app/main.py" +{!../../docs_src/bigger_applications/app/main.py!} +``` + +und es wird korrekt funktionieren, zusammen mit allen anderen *Pfadoperationen*, die mit `app.include_router()` hinzugefügt wurden. + +/// info | Sehr technische Details + +**Hinweis**: Dies ist ein sehr technisches Detail, das Sie wahrscheinlich **einfach überspringen** können. + +--- + +Die `APIRouter` sind nicht „gemountet“, sie sind nicht vom Rest der Anwendung isoliert. + +Das liegt daran, dass wir deren *Pfadoperationen* in das OpenAPI-Schema und die Benutzeroberflächen einbinden möchten. + +Da wir sie nicht einfach isolieren und unabhängig vom Rest „mounten“ können, werden die *Pfadoperationen* „geklont“ (neu erstellt) und nicht direkt einbezogen. + +/// + +## Es in der automatischen API-Dokumentation testen { #check-the-automatic-api-docs } + +Führen Sie nun Ihre App aus: + +
+ +```console +$ fastapi dev app/main.py + +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +``` + +
+ +und öffnen Sie die Dokumentation unter http://127.0.0.1:8000/docs. + +Sie sehen die automatische API-Dokumentation, einschließlich der Pfade aller Submodule, mit den richtigen Pfaden (und Präfixen) und den richtigen Tags: + + + +## Den gleichen Router mehrmals mit unterschiedlichem `prefix` inkludieren { #include-the-same-router-multiple-times-with-different-prefix } + +Sie können `.include_router()` auch mehrmals mit *demselben* Router und unterschiedlichen Präfixen verwenden. + +Dies könnte beispielsweise nützlich sein, um dieselbe API unter verschiedenen Präfixen verfügbar zu machen, z. B. `/api/v1` und `/api/latest`. + +Dies ist eine fortgeschrittene Verwendung, die Sie möglicherweise nicht wirklich benötigen, aber für den Fall, dass Sie sie benötigen, ist sie vorhanden. + +## Einen `APIRouter` in einen anderen einfügen { #include-an-apirouter-in-another } + +Auf die gleiche Weise, wie Sie einen `APIRouter` in eine `FastAPI`-Anwendung einbinden können, können Sie einen `APIRouter` in einen anderen `APIRouter` einbinden, indem Sie Folgendes verwenden: + +```Python +router.include_router(other_router) +``` + +Stellen Sie sicher, dass Sie dies tun, bevor Sie `router` in die `FastAPI`-App einbinden, damit auch die *Pfadoperationen* von `other_router` inkludiert werden. diff --git a/docs/de/docs/tutorial/body-fields.md b/docs/de/docs/tutorial/body-fields.md new file mode 100644 index 0000000..b73d57d --- /dev/null +++ b/docs/de/docs/tutorial/body-fields.md @@ -0,0 +1,59 @@ +# Body – Felder { #body-fields } + +So wie Sie zusätzliche Validierung und Metadaten in Parametern der *Pfadoperation-Funktion* mittels `Query`, `Path` und `Body` deklarieren, können Sie auch innerhalb von Pydantic-Modellen zusätzliche Validierung und Metadaten deklarieren, mittels Pydantics `Field`. + +## `Field` importieren { #import-field } + +Importieren Sie es zuerst: + +{* ../../docs_src/body_fields/tutorial001_an_py310.py hl[4] *} + +/// warning | Achtung + +Beachten Sie, dass `Field` direkt von `pydantic` importiert wird, nicht von `fastapi`, wie die anderen (`Query`, `Path`, `Body`, usw.) + +/// + +## Modellattribute deklarieren { #declare-model-attributes } + +Dann können Sie `Field` mit Modellattributen deklarieren: + +{* ../../docs_src/body_fields/tutorial001_an_py310.py hl[11:14] *} + +`Field` funktioniert genauso wie `Query`, `Path` und `Body`, es hat die gleichen Parameter, usw. + +/// note | Technische Details + +Tatsächlich erstellen `Query`, `Path` und andere, die Sie als nächstes sehen werden, Instanzen von Unterklassen einer allgemeinen Klasse `Param`, welche selbst eine Unterklasse von Pydantics `FieldInfo`-Klasse ist. + +Und Pydantics `Field` gibt ebenfalls eine Instanz von `FieldInfo` zurück. + +`Body` gibt auch direkt Instanzen einer Unterklasse von `FieldInfo` zurück. Später werden Sie andere sehen, die Unterklassen der `Body`-Klasse sind. + +Denken Sie daran, dass `Query`, `Path` und andere, wenn Sie sie von `fastapi` importieren, tatsächlich Funktionen sind, die spezielle Klassen zurückgeben. + +/// + +/// tip | Tipp + +Beachten Sie, wie jedes Attribut eines Modells mit einem Typ, Defaultwert und `Field` die gleiche Struktur hat wie ein Parameter einer *Pfadoperation-Funktion*, nur mit `Field` statt `Path`, `Query`, `Body`. + +/// + +## Zusätzliche Information hinzufügen { #add-extra-information } + +Sie können zusätzliche Information in `Field`, `Query`, `Body`, usw. deklarieren. Und es wird im generierten JSON-Schema untergebracht. + +Sie werden später mehr darüber lernen, wie man zusätzliche Information unterbringt, wenn Sie lernen, Beispiele zu deklarieren. + +/// warning | Achtung + +Extra-Schlüssel, die `Field` überreicht werden, werden auch im resultierenden OpenAPI-Schema Ihrer Anwendung gelistet. Da diese Schlüssel möglicherweise nicht Teil der OpenAPI-Spezifikation sind, könnten einige OpenAPI-Tools, wie etwa [der OpenAPI-Validator](https://validator.swagger.io/), nicht mit Ihrem generierten Schema funktionieren. + +/// + +## Zusammenfassung { #recap } + +Sie können Pydantics `Field` verwenden, um zusätzliche Validierungen und Metadaten für Modellattribute zu deklarieren. + +Sie können auch die zusätzlichen Schlüsselwortargumente verwenden, um zusätzliche JSON-Schema-Metadaten zu übergeben. diff --git a/docs/de/docs/tutorial/body-multiple-params.md b/docs/de/docs/tutorial/body-multiple-params.md new file mode 100644 index 0000000..3b5fa52 --- /dev/null +++ b/docs/de/docs/tutorial/body-multiple-params.md @@ -0,0 +1,171 @@ +# Body – Mehrere Parameter { #body-multiple-parameters } + +Nun, da wir gesehen haben, wie `Path` und `Query` verwendet werden, schauen wir uns fortgeschrittenere Verwendungsmöglichkeiten von Requestbody-Deklarationen an. + +## `Path`-, `Query`- und Body-Parameter vermischen { #mix-path-query-and-body-parameters } + +Zuerst einmal, Sie können `Path`-, `Query`- und Requestbody-Parameter-Deklarationen frei mischen und **FastAPI** wird wissen, was zu tun ist. + +Und Sie können auch Body-Parameter als optional kennzeichnen, indem Sie den Defaultwert auf `None` setzen: + +{* ../../docs_src/body_multiple_params/tutorial001_an_py310.py hl[18:20] *} + +/// note | Hinweis + +Beachten Sie, dass in diesem Fall das `item`, welches vom Body genommen wird, optional ist. Da es `None` als Defaultwert hat. + +/// + +## Mehrere Body-Parameter { #multiple-body-parameters } + +Im vorherigen Beispiel erwarteten die *Pfadoperationen* einen JSON-Body mit den Attributen eines `Item`s, etwa: + +```JSON +{ + "name": "Foo", + "description": "The pretender", + "price": 42.0, + "tax": 3.2 +} +``` + +Aber Sie können auch mehrere Body-Parameter deklarieren, z. B. `item` und `user`: + +{* ../../docs_src/body_multiple_params/tutorial002_py310.py hl[20] *} + +In diesem Fall wird **FastAPI** bemerken, dass es mehr als einen Body-Parameter in der Funktion gibt (zwei Parameter, die Pydantic-Modelle sind). + +Es wird deshalb die Parameternamen als Schlüssel (Feldnamen) im Body verwenden und erwartet einen Body wie folgt: + +```JSON +{ + "item": { + "name": "Foo", + "description": "The pretender", + "price": 42.0, + "tax": 3.2 + }, + "user": { + "username": "dave", + "full_name": "Dave Grohl" + } +} +``` + +/// note | Hinweis + +Beachten Sie, dass, obwohl `item` wie zuvor deklariert wurde, es nun unter einem Schlüssel `item` im Body erwartet wird. + +/// + +**FastAPI** wird die automatische Konvertierung des Requests übernehmen, sodass der Parameter `item` seinen spezifischen Inhalt bekommt, und das Gleiche gilt für den Parameter `user`. + +Es wird die Validierung dieser zusammengesetzten Daten übernehmen, und diese im OpenAPI-Schema und der automatischen Dokumentation dokumentieren. + +## Einzelne Werte im Body { #singular-values-in-body } + +So wie `Query` und `Path` für Query- und Pfad-Parameter, stellt **FastAPI** das Äquivalent `Body` zur Verfügung, um Extra-Daten für Body-Parameter zu definieren. + +Zum Beispiel, das vorherige Modell erweiternd, könnten Sie entscheiden, dass Sie einen weiteren Schlüssel `importance` im selben Body haben möchten, neben `item` und `user`. + +Wenn Sie diesen Parameter einfach so hinzufügen, wird **FastAPI** annehmen, dass es ein Query-Parameter ist, da er ein einzelner Wert ist. + +Aber Sie können **FastAPI** instruieren, ihn als weiteren Body-Schlüssel zu erkennen, indem Sie `Body` verwenden: + +{* ../../docs_src/body_multiple_params/tutorial003_an_py310.py hl[23] *} + +In diesem Fall erwartet **FastAPI** einen Body wie: + +```JSON +{ + "item": { + "name": "Foo", + "description": "The pretender", + "price": 42.0, + "tax": 3.2 + }, + "user": { + "username": "dave", + "full_name": "Dave Grohl" + }, + "importance": 5 +} +``` + +Wiederum wird es die Datentypen konvertieren, validieren, dokumentieren, usw. + +## Mehrere Body-Parameter und Query-Parameter { #multiple-body-params-and-query } + +Natürlich können Sie auch, wann immer Sie das brauchen, weitere Query-Parameter hinzufügen, zusätzlich zu den Body-Parametern. + +Da einfache Werte standardmäßig als Query-Parameter interpretiert werden, müssen Sie `Query` nicht explizit hinzufügen, Sie können einfach schreiben: + +```Python +q: Union[str, None] = None +``` + +Oder in Python 3.10 und darüber: + +```Python +q: str | None = None +``` + +Zum Beispiel: + +{* ../../docs_src/body_multiple_params/tutorial004_an_py310.py hl[28] *} + +/// info | Info + +`Body` hat die gleichen zusätzlichen Validierungs- und Metadaten-Parameter wie `Query`, `Path` und andere, die Sie später kennenlernen werden. + +/// + +## Einen einzelnen Body-Parameter einbetten { #embed-a-single-body-parameter } + +Nehmen wir an, Sie haben nur einen einzelnen `item`-Body-Parameter von einem Pydantic-Modell `Item`. + +Standardmäßig wird **FastAPI** dann seinen Body direkt erwarten. + +Aber wenn Sie möchten, dass es einen JSON-Body mit einem Schlüssel `item` erwartet, und darin den Inhalt des Modells, so wie es das tut, wenn Sie mehrere Body-Parameter deklarieren, dann können Sie den speziellen `Body`-Parameter `embed` setzen: + +```Python +item: Item = Body(embed=True) +``` + +so wie in: + +{* ../../docs_src/body_multiple_params/tutorial005_an_py310.py hl[17] *} + +In diesem Fall erwartet **FastAPI** einen Body wie: + +```JSON hl_lines="2" +{ + "item": { + "name": "Foo", + "description": "The pretender", + "price": 42.0, + "tax": 3.2 + } +} +``` + +statt: + +```JSON +{ + "name": "Foo", + "description": "The pretender", + "price": 42.0, + "tax": 3.2 +} +``` + +## Zusammenfassung { #recap } + +Sie können mehrere Body-Parameter zu Ihrer *Pfadoperation-Funktion* hinzufügen, obwohl ein Request nur einen einzigen Body enthalten kann. + +Aber **FastAPI** wird sich darum kümmern, Ihnen korrekte Daten in Ihrer Funktion zu überreichen, und das korrekte Schema in der *Pfadoperation* zu validieren und zu dokumentieren. + +Sie können auch einzelne Werte deklarieren, die als Teil des Bodys empfangen werden. + +Und Sie können **FastAPI** instruieren, den Body in einem Schlüssel unterzubringen, selbst wenn nur ein einzelner Body-Parameter deklariert ist. diff --git a/docs/de/docs/tutorial/body-nested-models.md b/docs/de/docs/tutorial/body-nested-models.md new file mode 100644 index 0000000..324d319 --- /dev/null +++ b/docs/de/docs/tutorial/body-nested-models.md @@ -0,0 +1,247 @@ +# Body – Verschachtelte Modelle { #body-nested-models } + +Mit **FastAPI** können Sie (dank Pydantic) beliebig tief verschachtelte Modelle definieren, validieren, dokumentieren und verwenden. + +## Listen als Felder { #list-fields } + +Sie können ein Attribut als Kindtyp definieren, zum Beispiel eine Python-`list`. + +{* ../../docs_src/body_nested_models/tutorial001_py310.py hl[12] *} + +Das bewirkt, dass `tags` eine Liste ist, wenngleich es nichts über den Typ der Elemente der Liste aussagt. + +## Listen mit Typ-Parametern als Felder { #list-fields-with-type-parameter } + +Aber Python erlaubt es, Listen mit inneren Typen, auch „Typ-Parameter“ genannt, zu deklarieren. + +### `List` von `typing` importieren { #import-typings-list } + +In Python 3.9 oder darüber können Sie einfach `list` verwenden, um diese Typannotationen zu deklarieren, wie wir unten sehen werden. 💡 + +In Python-Versionen vor 3.9 (3.6 und darüber), müssen Sie zuerst `List` von Pythons Standardmodul `typing` importieren. + +{* ../../docs_src/body_nested_models/tutorial002.py hl[1] *} + +### Eine `list` mit einem Typ-Parameter deklarieren { #declare-a-list-with-a-type-parameter } + +Um Typen wie `list`, `dict`, `tuple` mit inneren Typ-Parametern (inneren Typen) zu deklarieren: + +* Wenn Sie eine Python-Version kleiner als 3.9 verwenden, importieren Sie das Äquivalent zum entsprechenden Typ vom `typing`-Modul +* Überreichen Sie den/die inneren Typ(en) von eckigen Klammern umschlossen, `[` und `]`, als „Typ-Parameter“ + +In Python 3.9 wäre das: + +```Python +my_list: list[str] +``` + +Und in Python-Versionen vor 3.9: + +```Python +from typing import List + +my_list: List[str] +``` + +Das ist alles Standard-Python-Syntax für Typdeklarationen. + +Verwenden Sie dieselbe Standardsyntax für Modellattribute mit inneren Typen. + +In unserem Beispiel können wir also bewirken, dass `tags` spezifisch eine „Liste von Strings“ ist: + +{* ../../docs_src/body_nested_models/tutorial002_py310.py hl[12] *} + +## Set-Typen { #set-types } + +Aber dann denken wir darüber nach und stellen fest, dass sich die Tags nicht wiederholen sollen, es sollen eindeutige Strings sein. + +Python hat einen Datentyp speziell für Mengen eindeutiger Dinge: das `set`. + +Deklarieren wir also `tags` als Set von Strings. + +{* ../../docs_src/body_nested_models/tutorial003_py310.py hl[12] *} + +Jetzt, selbst wenn Sie einen Request mit duplizierten Daten erhalten, werden diese zu einem Set eindeutiger Dinge konvertiert. + +Und wann immer Sie diese Daten ausgeben, selbst wenn die Quelle Duplikate hatte, wird es als Set von eindeutigen Dingen ausgegeben. + +Und es wird entsprechend annotiert/dokumentiert. + +## Verschachtelte Modelle { #nested-models } + +Jedes Attribut eines Pydantic-Modells hat einen Typ. + +Aber dieser Typ kann selbst ein anderes Pydantic-Modell sein. + +Sie können also tief verschachtelte JSON-„Objekte“ deklarieren, mit spezifischen Attributnamen, -typen, und -validierungen. + +Alles das beliebig tief verschachtelt. + +### Ein Kindmodell definieren { #define-a-submodel } + +Für ein Beispiel können wir ein `Image`-Modell definieren. + +{* ../../docs_src/body_nested_models/tutorial004_py310.py hl[7:9] *} + +### Das Kindmodell als Typ verwenden { #use-the-submodel-as-a-type } + +Und dann können wir es als Typ eines Attributes verwenden: + +{* ../../docs_src/body_nested_models/tutorial004_py310.py hl[18] *} + +Das würde bedeuten, dass **FastAPI** einen Body wie folgt erwartet: + +```JSON +{ + "name": "Foo", + "description": "The pretender", + "price": 42.0, + "tax": 3.2, + "tags": ["rock", "metal", "bar"], + "image": { + "url": "http://example.com/baz.jpg", + "name": "The Foo live" + } +} +``` + +Wiederum, nur mit dieser Deklaration erhalten Sie von **FastAPI**: + +* Editor-Unterstützung (Codevervollständigung, usw.), selbst für verschachtelte Modelle +* Datenkonvertierung +* Datenvalidierung +* Automatische Dokumentation + +## Spezielle Typen und Validierungen { #special-types-and-validation } + +Abgesehen von normalen einfachen Typen wie `str`, `int`, `float`, usw. können Sie komplexere einfache Typen verwenden, die von `str` erben. + +Um alle Optionen kennenzulernen, die Sie haben, schauen Sie sich Pydantics Typübersicht an. Sie werden einige Beispiele im nächsten Kapitel kennenlernen. + +Zum Beispiel, da wir im `Image`-Modell ein Feld `url` haben, können wir deklarieren, dass das eine Instanz von Pydantics `HttpUrl` sein soll, anstelle eines `str`: + +{* ../../docs_src/body_nested_models/tutorial005_py310.py hl[2,8] *} + +Es wird getestet, ob der String eine gültige URL ist, und als solche wird er in JSON Schema / OpenAPI dokumentiert. + +## Attribute mit Listen von Kindmodellen { #attributes-with-lists-of-submodels } + +Sie können Pydantic-Modelle auch als Typen innerhalb von `list`, `set`, usw. verwenden: + +{* ../../docs_src/body_nested_models/tutorial006_py310.py hl[18] *} + +Das wird einen JSON-Body erwarten (konvertieren, validieren, dokumentieren, usw.) wie: + +```JSON hl_lines="11" +{ + "name": "Foo", + "description": "The pretender", + "price": 42.0, + "tax": 3.2, + "tags": [ + "rock", + "metal", + "bar" + ], + "images": [ + { + "url": "http://example.com/baz.jpg", + "name": "The Foo live" + }, + { + "url": "http://example.com/dave.jpg", + "name": "The Baz" + } + ] +} +``` + +/// info | Info + +Beachten Sie, dass der `images`-Schlüssel jetzt eine Liste von Bild-Objekten hat. + +/// + +## Tief verschachtelte Modelle { #deeply-nested-models } + +Sie können beliebig tief verschachtelte Modelle definieren: + +{* ../../docs_src/body_nested_models/tutorial007_py310.py hl[7,12,18,21,25] *} + +/// info | Info + +Beachten Sie, wie `Offer` eine Liste von `Item`s hat, die ihrerseits eine optionale Liste von `Image`s haben. + +/// + +## Bodys aus reinen Listen { #bodies-of-pure-lists } + +Wenn das äußerste Element des JSON-Bodys, das Sie erwarten, ein JSON-`array` (eine Python-`list`) ist, können Sie den Typ im Funktionsparameter deklarieren, mit der gleichen Syntax wie in Pydantic-Modellen: + +```Python +images: List[Image] +``` + +oder in Python 3.9 und darüber: + +```Python +images: list[Image] +``` + +so wie in: + +{* ../../docs_src/body_nested_models/tutorial008_py39.py hl[13] *} + +## Editor-Unterstützung überall { #editor-support-everywhere } + +Und Sie erhalten Editor-Unterstützung überall. + +Selbst für Dinge in Listen: + + + +Sie würden diese Editor-Unterstützung nicht erhalten, wenn Sie direkt mit `dict`, statt mit Pydantic-Modellen arbeiten würden. + +Aber Sie müssen sich auch nicht weiter um die Modelle kümmern, hereinkommende Dicts werden automatisch in sie konvertiert. Und was Sie zurückgeben, wird automatisch nach JSON konvertiert. + +## Bodys mit beliebigen `dict`s { #bodies-of-arbitrary-dicts } + +Sie können einen Body auch als `dict` deklarieren, mit Schlüsseln eines Typs und Werten eines anderen Typs. + +So brauchen Sie vorher nicht zu wissen, wie die Feld-/Attributnamen lauten (wie es bei Pydantic-Modellen der Fall wäre). + +Das ist nützlich, wenn Sie Schlüssel empfangen, deren Namen Sie nicht bereits kennen. + +--- + +Ein anderer nützlicher Anwendungsfall ist, wenn Sie Schlüssel eines anderen Typs haben wollen, z. B. `int`. + +Das schauen wir uns mal an. + +Im folgenden Beispiel akzeptieren Sie irgendein `dict`, solange es `int`-Schlüssel und `float`-Werte hat: + +{* ../../docs_src/body_nested_models/tutorial009_py39.py hl[7] *} + +/// tip | Tipp + +Bedenken Sie, dass JSON nur `str` als Schlüssel unterstützt. + +Aber Pydantic hat automatische Datenkonvertierung. + +Das bedeutet, dass Ihre API-Clients nur Strings senden können, aber solange diese Strings nur Zahlen enthalten, wird Pydantic sie konvertieren und validieren. + +Und das `dict`, welches Sie als `weights` erhalten, wird `int`-Schlüssel und `float`-Werte haben. + +/// + +## Zusammenfassung { #recap } + +Mit **FastAPI** haben Sie die maximale Flexibilität von Pydantic-Modellen, während Ihr Code einfach, kurz und elegant bleibt. + +Aber mit all den Vorzügen: + +* Editor-Unterstützung (Codevervollständigung überall) +* Datenkonvertierung (auch bekannt als Parsen, Serialisierung) +* Datenvalidierung +* Schema-Dokumentation +* Automatische Dokumentation diff --git a/docs/de/docs/tutorial/body-updates.md b/docs/de/docs/tutorial/body-updates.md new file mode 100644 index 0000000..aa62199 --- /dev/null +++ b/docs/de/docs/tutorial/body-updates.md @@ -0,0 +1,116 @@ +# Body – Aktualisierungen { #body-updates } + +## Ersetzendes Aktualisieren mit `PUT` { #update-replacing-with-put } + +Um einen Artikel zu aktualisieren, können Sie die HTTP `PUT` Operation verwenden. + +Sie können den `jsonable_encoder` verwenden, um die empfangenen Daten in etwas zu konvertieren, das als JSON gespeichert werden kann (z. B. in einer NoSQL-Datenbank). Zum Beispiel, um ein `datetime` in einen `str` zu konvertieren. + +{* ../../docs_src/body_updates/tutorial001_py310.py hl[28:33] *} + +`PUT` wird verwendet, um Daten zu empfangen, die die existierenden Daten ersetzen sollen. + +### Warnung bezüglich des Ersetzens { #warning-about-replacing } + +Das bedeutet, dass, wenn Sie den Artikel `bar` aktualisieren wollen, mittels `PUT` und folgendem Body: + +```Python +{ + "name": "Barz", + "price": 3, + "description": None, +} +``` + +weil das bereits gespeicherte Attribut `"tax": 20.2` nicht enthalten ist, das Eingabemodell den Defaultwert `"tax": 10.5` erhalten würde. + +Und die Daten würden mit diesem „neuen“ `tax` von `10.5` gespeichert werden. + +## Teil-Aktualisierungen mit `PATCH` { #partial-updates-with-patch } + +Sie können auch die HTTP `PATCH` Operation verwenden, um Daten *teilweise* zu ersetzen. + +Das bedeutet, Sie senden nur die Daten, die Sie aktualisieren wollen, der Rest bleibt unverändert. + +/// note | Hinweis + +`PATCH` wird seltener verwendet und ist weniger bekannt als `PUT`. + +Und viele Teams verwenden ausschließlich `PUT`, selbst für nur Teil-Aktualisierungen. + +Es steht Ihnen **frei**, das zu verwenden, was Sie möchten, **FastAPI** legt Ihnen keine Einschränkungen auf. + +Aber dieser Leitfaden zeigt Ihnen mehr oder weniger, wie die beiden normalerweise verwendet werden. + +/// + +### Pydantics `exclude_unset`-Parameter verwenden { #using-pydantics-exclude-unset-parameter } + +Wenn Sie Teil-Aktualisierungen entgegennehmen, ist der `exclude_unset`-Parameter in der `.model_dump()`-Methode von Pydantic-Modellen sehr nützlich. + +Wie in `item.model_dump(exclude_unset=True)`. + +/// info | Info + +In Pydantic v1 hieß diese Methode `.dict()`, in Pydantic v2 wurde sie deprecatet (aber immer noch unterstützt) und in `.model_dump()` umbenannt. + +Die Beispiele hier verwenden `.dict()` für die Kompatibilität mit Pydantic v1, Sie sollten jedoch stattdessen `.model_dump()` verwenden, wenn Sie Pydantic v2 verwenden können. + +/// + +Das wird ein `dict` erstellen, mit nur den Daten, die gesetzt wurden, als das `item`-Modell erstellt wurde, Defaultwerte ausgeschlossen. + +Sie können das verwenden, um ein `dict` zu erstellen, das nur die (im Request) gesendeten Daten enthält, ohne Defaultwerte: + +{* ../../docs_src/body_updates/tutorial002_py310.py hl[32] *} + +### Pydantics `update`-Parameter verwenden { #using-pydantics-update-parameter } + +Jetzt können Sie eine Kopie des existierenden Modells mittels `.model_copy()` erstellen, wobei Sie dem `update`-Parameter ein `dict` mit den zu ändernden Daten übergeben. + +/// info | Info + +In Pydantic v1 hieß diese Methode `.copy()`, in Pydantic v2 wurde sie deprecatet (aber immer noch unterstützt) und in `.model_copy()` umbenannt. + +Die Beispiele hier verwenden `.copy()` für die Kompatibilität mit Pydantic v1, Sie sollten jedoch stattdessen `.model_copy()` verwenden, wenn Sie Pydantic v2 verwenden können. + +/// + +Wie in `stored_item_model.model_copy(update=update_data)`: + +{* ../../docs_src/body_updates/tutorial002_py310.py hl[33] *} + +### Rekapitulation zu Teil-Aktualisierungen { #partial-updates-recap } + +Zusammengefasst, um Teil-Aktualisierungen vorzunehmen: + +* (Optional) verwenden Sie `PATCH` statt `PUT`. +* Lesen Sie die bereits gespeicherten Daten aus. +* Fügen Sie diese in ein Pydantic-Modell ein. +* Erzeugen Sie aus dem empfangenen Modell ein `dict` ohne Defaultwerte (mittels `exclude_unset`). + * So ersetzen Sie nur die tatsächlich vom Benutzer gesetzten Werte, statt dass bereits gespeicherte Werte mit Defaultwerten des Modells überschrieben werden. +* Erzeugen Sie eine Kopie ihres gespeicherten Modells, wobei Sie die Attribute mit den empfangenen Teil-Ersetzungen aktualisieren (mittels des `update`-Parameters). +* Konvertieren Sie das kopierte Modell zu etwas, das in Ihrer Datenbank gespeichert werden kann (indem Sie beispielsweise `jsonable_encoder` verwenden). + * Das ist vergleichbar dazu, die `.model_dump()`-Methode des Modells erneut aufzurufen, aber es wird sicherstellen, dass die Werte zu Daten konvertiert werden, die ihrerseits zu JSON konvertiert werden können, zum Beispiel `datetime` zu `str`. +* Speichern Sie die Daten in Ihrer Datenbank. +* Geben Sie das aktualisierte Modell zurück. + +{* ../../docs_src/body_updates/tutorial002_py310.py hl[28:35] *} + +/// tip | Tipp + +Sie können tatsächlich die gleiche Technik mit einer HTTP `PUT` Operation verwenden. + +Aber dieses Beispiel verwendet `PATCH`, da dieses für solche Anwendungsfälle geschaffen wurde. + +/// + +/// note | Hinweis + +Beachten Sie, dass das hereinkommende Modell immer noch validiert wird. + +Wenn Sie also Teil-Aktualisierungen empfangen wollen, die alle Attribute auslassen können, müssen Sie ein Modell haben, dessen Attribute alle als optional gekennzeichnet sind (mit Defaultwerten oder `None`). + +Um zu unterscheiden zwischen Modellen für **Aktualisierungen**, mit lauter optionalen Werten, und solchen für die **Erzeugung**, mit benötigten Werten, können Sie die Techniken verwenden, die in [Extramodelle](extra-models.md){.internal-link target=_blank} beschrieben wurden. + +/// diff --git a/docs/de/docs/tutorial/body.md b/docs/de/docs/tutorial/body.md new file mode 100644 index 0000000..1e6382b --- /dev/null +++ b/docs/de/docs/tutorial/body.md @@ -0,0 +1,173 @@ +# Requestbody { #request-body } + +Wenn Sie Daten von einem Client (sagen wir, einem Browser) zu Ihrer API senden müssen, senden Sie sie als **Requestbody**. + +Ein **Request**body sind Daten, die vom Client zu Ihrer API gesendet werden. Ein **Response**body sind Daten, die Ihre API zum Client sendet. + +Ihre API muss fast immer einen **Response**body senden. Aber Clients müssen nicht unbedingt immer **Requestbodys** senden, manchmal fordern sie nur einen Pfad an, vielleicht mit einigen Query-Parametern, aber senden keinen Body. + +Um einen **Request**body zu deklarieren, verwenden Sie Pydantic-Modelle mit all deren Fähigkeiten und Vorzügen. + +/// info | Info + +Um Daten zu senden, sollten Sie eines von: `POST` (meistverwendet), `PUT`, `DELETE` oder `PATCH` verwenden. + +Das Senden eines Bodys mit einem `GET`-Request hat ein undefiniertes Verhalten in den Spezifikationen, wird aber dennoch von FastAPI unterstützt, nur für sehr komplexe/extreme Anwendungsfälle. + +Da davon abgeraten wird, zeigt die interaktive Dokumentation mit Swagger-Benutzeroberfläche die Dokumentation für den Body nicht an, wenn `GET` verwendet wird, und zwischengeschaltete Proxys unterstützen es möglicherweise nicht. + +/// + +## Pydantics `BaseModel` importieren { #import-pydantics-basemodel } + +Zuerst müssen Sie `BaseModel` von `pydantic` importieren: + +{* ../../docs_src/body/tutorial001_py310.py hl[2] *} + +## Ihr Datenmodell erstellen { #create-your-data-model } + +Dann deklarieren Sie Ihr Datenmodell als eine Klasse, die von `BaseModel` erbt. + +Verwenden Sie Standard-Python-Typen für alle Attribute: + +{* ../../docs_src/body/tutorial001_py310.py hl[5:9] *} + +Wie auch bei der Deklaration von Query-Parametern gilt: Wenn ein Modellattribut einen Defaultwert hat, ist das Attribut nicht erforderlich. Andernfalls ist es erforderlich. Verwenden Sie `None`, um es einfach optional zu machen. + +Zum Beispiel deklariert das obige Modell ein JSON „`object`“ (oder Python-`dict`) wie dieses: + +```JSON +{ + "name": "Foo", + "description": "An optional description", + "price": 45.2, + "tax": 3.5 +} +``` + +Da `description` und `tax` optional sind (mit `None` als Defaultwert), wäre folgendes JSON „`object`“ auch gültig: + +```JSON +{ + "name": "Foo", + "price": 45.2 +} +``` + +## Als Parameter deklarieren { #declare-it-as-a-parameter } + +Um es zu Ihrer *Pfadoperation* hinzuzufügen, deklarieren Sie es auf die gleiche Weise, wie Sie Pfad- und Query-Parameter deklariert haben: + +{* ../../docs_src/body/tutorial001_py310.py hl[16] *} + +... und deklarieren Sie dessen Typ als das Modell, welches Sie erstellt haben, `Item`. + +## Resultate { #results } + +Mit nur dieser Python-Typdeklaration wird **FastAPI**: + +* Den Requestbody als JSON lesen. +* Die entsprechenden Typen konvertieren (falls nötig). +* Diese Daten validieren. + * Wenn die Daten ungültig sind, wird ein klar lesbarer Fehler zurückgegeben, der genau anzeigt, wo und was die inkorrekten Daten sind. +* Ihnen die erhaltenen Daten im Parameter `item` übergeben. + * Da Sie ihn in der Funktion als vom Typ `Item` deklariert haben, erhalten Sie auch die volle Unterstützung des Editors (Autovervollständigung, usw.) für alle Attribute und deren Typen. +* JSON Schema-Definitionen für Ihr Modell generieren, die Sie auch überall sonst verwenden können, wenn es für Ihr Projekt Sinn macht. +* Diese Schemas werden Teil des generierten OpenAPI-Schemas und werden von den UIs der automatischen Dokumentation genutzt. + +## Automatische Dokumentation { #automatic-docs } + +Die JSON-Schemas Ihrer Modelle werden Teil Ihres OpenAPI-generierten Schemas und in der interaktiven API-Dokumentation angezeigt: + + + +Und werden auch in der API-Dokumentation innerhalb jeder *Pfadoperation*, die sie benötigt, verwendet: + + + +## Editor-Unterstützung { #editor-support } + +In Ihrem Editor erhalten Sie innerhalb Ihrer Funktion Typhinweise und Code-Vervollständigung überall (was nicht der Fall wäre, wenn Sie ein `dict` anstelle eines Pydantic-Modells erhalten hätten): + + + +Sie bekommen auch Fehlermeldungen für inkorrekte Typoperationen: + + + +Das ist nicht zufällig so, das ganze Framework wurde um dieses Design herum aufgebaut. + +Und es wurde in der Designphase gründlich getestet, bevor irgendeine Implementierung stattfand, um sicherzustellen, dass es mit allen Editoren funktioniert. + +Es gab sogar einige Änderungen an Pydantic selbst, um dies zu unterstützen. + +Die vorherigen Screenshots wurden mit Visual Studio Code aufgenommen. + +Aber Sie würden die gleiche Editor-Unterstützung in PyCharm und den meisten anderen Python-Editoren erhalten: + + + +/// tip | Tipp + +Wenn Sie PyCharm als Ihren Editor verwenden, können Sie das Pydantic PyCharm Plugin ausprobieren. + +Es verbessert die Editor-Unterstützung für Pydantic-Modelle, mit: + +* Code-Vervollständigung +* Typüberprüfungen +* Refaktorisierung +* Suche +* Inspektionen + +/// + +## Das Modell verwenden { #use-the-model } + +Innerhalb der Funktion können Sie alle Attribute des Modellobjekts direkt verwenden: + +{* ../../docs_src/body/tutorial002_py310.py *} + +/// info | Info + +In Pydantic v1 hieß die Methode `.dict()`, sie wurde in Pydantic v2 deprecatet (aber weiterhin unterstützt) und in `.model_dump()` umbenannt. + +Die Beispiele hier verwenden `.dict()` zur Kompatibilität mit Pydantic v1, aber Sie sollten stattdessen `.model_dump()` verwenden, wenn Sie Pydantic v2 nutzen können. + +/// + +## Requestbody- + Pfad-Parameter { #request-body-path-parameters } + +Sie können Pfad-Parameter und den Requestbody gleichzeitig deklarieren. + +**FastAPI** erkennt, dass Funktionsparameter, die mit Pfad-Parametern übereinstimmen, **vom Pfad genommen** werden sollen, und dass Funktionsparameter, welche Pydantic-Modelle sind, **vom Requestbody genommen** werden sollen. + +{* ../../docs_src/body/tutorial003_py310.py hl[15:16] *} + + +## Requestbody- + Pfad- + Query-Parameter { #request-body-path-query-parameters } + +Sie können auch zur gleichen Zeit **Body-**, **Pfad-** und **Query-Parameter** deklarieren. + +**FastAPI** wird jeden von ihnen korrekt erkennen und die Daten vom richtigen Ort holen. + +{* ../../docs_src/body/tutorial004_py310.py hl[16] *} + +Die Funktionsparameter werden wie folgt erkannt: + +* Wenn der Parameter auch im **Pfad** deklariert wurde, wird er als Pfad-Parameter verwendet. +* Wenn der Parameter ein **einfacher Typ** ist (wie `int`, `float`, `str`, `bool`, usw.), wird er als **Query**-Parameter interpretiert. +* Wenn der Parameter vom Typ eines **Pydantic-Modells** ist, wird er als Request**body** interpretiert. + +/// note | Hinweis + +FastAPI weiß, dass der Wert von `q` nicht erforderlich ist, aufgrund des definierten Defaultwertes `= None`. + +Das `str | None` (Python 3.10+) oder `Union` in `Union[str, None]` (Python 3.8+) wird von FastAPI nicht verwendet, um zu bestimmen, dass der Wert nicht erforderlich ist. FastAPI weiß, dass er nicht erforderlich ist, weil er einen Defaultwert von `= None` hat. + +Das Hinzufügen der Typannotationen ermöglicht jedoch Ihrem Editor, Ihnen eine bessere Unterstützung zu bieten und Fehler zu erkennen. + +/// + +## Ohne Pydantic { #without-pydantic } + +Wenn Sie keine Pydantic-Modelle verwenden möchten, können Sie auch **Body**-Parameter verwenden. Siehe die Dokumentation unter [Body – Mehrere Parameter: Einfache Werte im Body](body-multiple-params.md#singular-values-in-body){.internal-link target=_blank}. diff --git a/docs/de/docs/tutorial/cookie-param-models.md b/docs/de/docs/tutorial/cookie-param-models.md new file mode 100644 index 0000000..2baf3d7 --- /dev/null +++ b/docs/de/docs/tutorial/cookie-param-models.md @@ -0,0 +1,76 @@ +# Cookie-Parameter-Modelle { #cookie-parameter-models } + +Wenn Sie eine Gruppe von **Cookies** haben, die zusammengehören, können Sie ein **Pydantic-Modell** erstellen, um diese zu deklarieren. 🍪 + +Damit können Sie das Modell an **mehreren Stellen wiederverwenden** und auch Validierungen und Metadaten für alle Parameter gleichzeitig deklarieren. 😎 + +/// note | Hinweis + +Dies wird seit FastAPI Version `0.115.0` unterstützt. 🤓 + +/// + +/// tip | Tipp + +Diese gleiche Technik gilt für `Query`, `Cookie` und `Header`. 😎 + +/// + +## Cookies mit einem Pydantic-Modell { #cookies-with-a-pydantic-model } + +Deklarieren Sie die **Cookie**-Parameter, die Sie benötigen, in einem **Pydantic-Modell**, und deklarieren Sie dann den Parameter als `Cookie`: + +{* ../../docs_src/cookie_param_models/tutorial001_an_py310.py hl[9:12,16] *} + +**FastAPI** wird die Daten für **jedes Feld** aus den im Request empfangenen **Cookies** **extrahieren** und Ihnen das von Ihnen definierte Pydantic-Modell bereitstellen. + +## Die Dokumentation testen { #check-the-docs } + +Sie können die definierten Cookies in der Dokumentationsoberfläche unter `/docs` sehen: + +
+ +
+ +/// info | Info + +Bitte beachten Sie, dass Browser Cookies auf spezielle Weise und im Hintergrund bearbeiten, sodass sie **nicht** leicht **JavaScript** erlauben, diese zu berühren. + +Wenn Sie zur **API-Dokumentationsoberfläche** unter `/docs` gehen, können Sie die **Dokumentation** für Cookies für Ihre *Pfadoperationen* sehen. + +Aber selbst wenn Sie die **Daten ausfüllen** und auf „Ausführen“ klicken, werden aufgrund der Tatsache, dass die Dokumentationsoberfläche mit **JavaScript** arbeitet, die Cookies nicht gesendet, und Sie werden eine **Fehlermeldung** sehen, als ob Sie keine Werte eingegeben hätten. + +/// + +## Zusätzliche Cookies verbieten { #forbid-extra-cookies } + +In einigen speziellen Anwendungsfällen (wahrscheinlich nicht sehr häufig) möchten Sie möglicherweise die Cookies, die Sie empfangen möchten, **einschränken**. + +Ihre API hat jetzt die Macht, ihre eigene Cookie-Einwilligung zu kontrollieren. 🤪🍪 + +Sie können die Modellkonfiguration von Pydantic verwenden, um `extra` Felder zu verbieten (`forbid`): + +{* ../../docs_src/cookie_param_models/tutorial002_an_py39.py hl[10] *} + +Wenn ein Client versucht, einige **zusätzliche Cookies** zu senden, erhält er eine **Error-Response**. + +Arme Cookie-Banner, wie sie sich mühen, Ihre Einwilligung zu erhalten, dass die API sie ablehnen darf. 🍪 + +Wenn der Client beispielsweise versucht, ein `santa_tracker`-Cookie mit einem Wert von `good-list-please` zu senden, erhält der Client eine **Error-Response**, die ihm mitteilt, dass das `santa_tracker` Cookie nicht erlaubt ist: + +```json +{ + "detail": [ + { + "type": "extra_forbidden", + "loc": ["cookie", "santa_tracker"], + "msg": "Extra inputs are not permitted", + "input": "good-list-please", + } + ] +} +``` + +## Zusammenfassung { #summary } + +Sie können **Pydantic-Modelle** verwenden, um **Cookies** in **FastAPI** zu deklarieren. 😎 diff --git a/docs/de/docs/tutorial/cookie-params.md b/docs/de/docs/tutorial/cookie-params.md new file mode 100644 index 0000000..81a7532 --- /dev/null +++ b/docs/de/docs/tutorial/cookie-params.md @@ -0,0 +1,45 @@ +# Cookie-Parameter { #cookie-parameters } + +Sie können Cookie-Parameter auf die gleiche Weise definieren wie `Query`- und `Path`-Parameter. + +## `Cookie` importieren { #import-cookie } + +Importieren Sie zuerst `Cookie`: + +{* ../../docs_src/cookie_params/tutorial001_an_py310.py hl[3] *} + +## `Cookie`-Parameter deklarieren { #declare-cookie-parameters } + +Deklarieren Sie dann die Cookie-Parameter mit derselben Struktur wie bei `Path` und `Query`. + +Sie können den Defaultwert sowie alle zusätzlichen Validierungen oder Annotierungsparameter definieren: + +{* ../../docs_src/cookie_params/tutorial001_an_py310.py hl[9] *} + +/// note | Technische Details + +`Cookie` ist eine „Schwester“-Klasse von `Path` und `Query`. Sie erbt auch von derselben gemeinsamen `Param`-Klasse. + +Aber denken Sie daran, dass, wenn Sie `Query`, `Path`, `Cookie` und andere von `fastapi` importieren, diese tatsächlich Funktionen sind, die spezielle Klassen zurückgeben. + +/// + +/// info | Info + +Um Cookies zu deklarieren, müssen Sie `Cookie` verwenden, da die Parameter sonst als Query-Parameter interpretiert würden. + +/// + +/// info | Info + +Beachten Sie, dass **Browser Cookies auf besondere Weise und hinter den Kulissen handhaben** und **JavaScript** **nicht** ohne Weiteres erlauben, auf sie zuzugreifen. + +Wenn Sie zur **API-Dokumentations-UI** unter `/docs` gehen, können Sie die **Dokumentation** zu Cookies für Ihre *Pfadoperationen* sehen. + +Aber selbst wenn Sie die **Daten ausfüllen** und auf „Execute“ klicken, da die Dokumentations-UI mit **JavaScript** arbeitet, werden die Cookies nicht gesendet, und Sie sehen eine **Fehler**-Meldung, als hätten Sie keine Werte eingegeben. + +/// + +## Zusammenfassung { #recap } + +Deklarieren Sie Cookies mit `Cookie` und verwenden Sie dabei das gleiche allgemeine Muster wie bei `Query` und `Path`. diff --git a/docs/de/docs/tutorial/cors.md b/docs/de/docs/tutorial/cors.md new file mode 100644 index 0000000..191a7b4 --- /dev/null +++ b/docs/de/docs/tutorial/cors.md @@ -0,0 +1,88 @@ +# CORS (Cross-Origin Resource Sharing) { #cors-cross-origin-resource-sharing } + +CORS oder „Cross-Origin Resource Sharing“ bezieht sich auf Situationen, in denen ein Frontend, das in einem Browser läuft, JavaScript-Code enthält, der mit einem Backend kommuniziert, und das Backend sich in einem anderen „Origin“ als das Frontend befindet. + +## Origin { #origin } + +Ein Origin ist die Kombination aus Protokoll (`http`, `https`), Domain (`myapp.com`, `localhost`, `localhost.tiangolo.com`) und Port (`80`, `443`, `8080`). + +Alle folgenden sind also unterschiedliche Origins: + +* `http://localhost` +* `https://localhost` +* `http://localhost:8080` + +Auch wenn sie alle in `localhost` sind, verwenden sie unterschiedliche Protokolle oder Ports, daher sind sie unterschiedliche „Origins“. + +## Schritte { #steps } + +Angenommen, Sie haben ein Frontend, das in Ihrem Browser unter `http://localhost:8080` läuft, und dessen JavaScript versucht, mit einem Backend zu kommunizieren, das unter `http://localhost` läuft (da wir keinen Port angegeben haben, geht der Browser vom Default-Port `80` aus). + +Dann wird der Browser ein HTTP-`OPTIONS`-Request an das `:80`-Backend senden, und wenn das Backend die entsprechenden Header sendet, die die Kommunikation von diesem anderen Origin (`http://localhost:8080`) autorisieren, lässt der `:8080`-Browser das JavaScript im Frontend seinen Request an das `:80`-Backend senden. + +Um dies zu erreichen, muss das `:80`-Backend eine Liste von „erlaubten Origins“ haben. + +In diesem Fall müsste die Liste `http://localhost:8080` enthalten, damit das `:8080`-Frontend korrekt funktioniert. + +## Wildcards { #wildcards } + +Es ist auch möglich, die Liste als `"*"` (ein „Wildcard“) zu deklarieren, um anzuzeigen, dass alle erlaubt sind. + +Aber das erlaubt nur bestimmte Arten der Kommunikation und schließt alles aus, was Anmeldeinformationen beinhaltet: Cookies, Autorisierungsheader wie die, die mit Bearer Tokens verwendet werden, usw. + +Um sicherzustellen, dass alles korrekt funktioniert, ist es besser, die erlaubten Origins explizit anzugeben. + +## `CORSMiddleware` verwenden { #use-corsmiddleware } + +Sie können das in Ihrer **FastAPI**-Anwendung mit der `CORSMiddleware` konfigurieren. + +* Importieren Sie `CORSMiddleware`. +* Erstellen Sie eine Liste der erlaubten Origins (als Strings). +* Fügen Sie es als „Middleware“ zu Ihrer **FastAPI**-Anwendung hinzu. + +Sie können auch angeben, ob Ihr Backend erlaubt: + +* Anmeldeinformationen (Autorisierungsheader, Cookies, usw.). +* Bestimmte HTTP-Methoden (`POST`, `PUT`) oder alle mit der Wildcard `"*"`. +* Bestimmte HTTP-Header oder alle mit der Wildcard `"*"`. + +{* ../../docs_src/cors/tutorial001.py hl[2,6:11,13:19] *} + +Die von der `CORSMiddleware`-Implementierung verwendeten Defaultparameter sind standardmäßig restriktiv, daher müssen Sie bestimmte Origins, Methoden oder Header ausdrücklich aktivieren, damit Browser sie in einem Cross-Domain-Kontext verwenden dürfen. + +Die folgenden Argumente werden unterstützt: + +* `allow_origins` – Eine Liste von Origins, die Cross-Origin-Requests machen dürfen. z. B. `['https://example.org', 'https://www.example.org']`. Sie können `['*']` verwenden, um jedes Origin zuzulassen. +* `allow_origin_regex` – Ein Regex-String zum Abgleichen gegen Origins, die Cross-Origin-Requests machen dürfen. z. B. `'https://.*\.example\.org'`. +* `allow_methods` – Eine Liste von HTTP-Methoden, die für Cross-Origin-Requests erlaubt sein sollen. Standardmäßig `['GET']`. Sie können `['*']` verwenden, um alle Standardmethoden zu erlauben. +* `allow_headers` – Eine Liste von HTTP-Requestheadern, die für Cross-Origin-Requests unterstützt werden sollten. Standardmäßig `[]`. Sie können `['*']` verwenden, um alle Header zu erlauben. Die Header `Accept`, `Accept-Language`, `Content-Language` und `Content-Type` sind immer für einfache CORS-Requests erlaubt. +* `allow_credentials` – Anzeigen, dass Cookies für Cross-Origin-Requests unterstützt werden sollten. Standardmäßig `False`. + + Keines der `allow_origins`, `allow_methods` und `allow_headers` kann auf `['*']` gesetzt werden, wenn `allow_credentials` auf `True` gesetzt ist. Alle müssen explizit angegeben werden. + +* `expose_headers` – Angabe der Responseheader, auf die der Browser zugreifen können soll. Standardmäßig `[]`. +* `max_age` – Legt eine maximale Zeit in Sekunden fest, die Browser CORS-Responses zwischenspeichern dürfen. Standardmäßig `600`. + +Die Middleware antwortet auf zwei besondere Arten von HTTP-Requests ... + +### CORS-Preflight-Requests { #cors-preflight-requests } + +Dies sind alle `OPTIONS`-Requests mit `Origin`- und `Access-Control-Request-Method`-Headern. + +In diesem Fall wird die Middleware den eingehenden Request abfangen und mit entsprechenden CORS-Headern, und entweder einer `200`- oder `400`-Response zu Informationszwecken antworten. + +### Einfache Requests { #simple-requests } + +Jeder Request mit einem `Origin`-Header. In diesem Fall wird die Middleware den Request wie gewohnt durchlassen, aber entsprechende CORS-Header in die Response aufnehmen. + +## Weitere Informationen { #more-info } + +Weitere Informationen zu CORS finden Sie in der Mozilla CORS-Dokumentation. + +/// note | Technische Details + +Sie könnten auch `from starlette.middleware.cors import CORSMiddleware` verwenden. + +**FastAPI** bietet mehrere Middlewares in `fastapi.middleware` nur als Komfort für Sie, den Entwickler. Aber die meisten der verfügbaren Middlewares stammen direkt von Starlette. + +/// diff --git a/docs/de/docs/tutorial/debugging.md b/docs/de/docs/tutorial/debugging.md new file mode 100644 index 0000000..0a31f86 --- /dev/null +++ b/docs/de/docs/tutorial/debugging.md @@ -0,0 +1,113 @@ +# Debugging { #debugging } + +Sie können den Debugger in Ihrem Editor verbinden, zum Beispiel mit Visual Studio Code oder PyCharm. + +## `uvicorn` aufrufen { #call-uvicorn } + +Importieren und führen Sie `uvicorn` direkt in Ihrer FastAPI-Anwendung aus: + +{* ../../docs_src/debugging/tutorial001.py hl[1,15] *} + +### Über `__name__ == "__main__"` { #about-name-main } + +Der Hauptzweck von `__name__ == "__main__"` ist, dass Code ausgeführt wird, wenn Ihre Datei mit folgendem Befehl aufgerufen wird: + +
+ +```console +$ python myapp.py +``` + +
+ +aber nicht aufgerufen wird, wenn eine andere Datei sie importiert, wie in: + +```Python +from myapp import app +``` + +#### Weitere Details { #more-details } + +Angenommen, Ihre Datei heißt `myapp.py`. + +Wenn Sie sie mit folgendem Befehl ausführen: + +
+ +```console +$ python myapp.py +``` + +
+ +dann hat in Ihrer Datei die interne Variable `__name__`, die von Python automatisch erstellt wird, als Wert den String `"__main__"`. + +Daher wird der Abschnitt: + +```Python + uvicorn.run(app, host="0.0.0.0", port=8000) +``` + +ausgeführt. + +--- + +Dies wird nicht passieren, wenn Sie das Modul (die Datei) importieren. + +Wenn Sie also eine weitere Datei `importer.py` mit folgendem Inhalt haben: + +```Python +from myapp import app + +# Hier mehr Code +``` + +wird in diesem Fall in `myapp.py` die automatisch erstellte Variable `__name__` nicht den Wert `"__main__"` haben. + +Daher wird die Zeile: + +```Python + uvicorn.run(app, host="0.0.0.0", port=8000) +``` + +nicht ausgeführt. + +/// info | Info + +Für weitere Informationen besuchen Sie bitte die offizielle Python-Dokumentation. + +/// + +## Ihren Code mit Ihrem Debugger ausführen { #run-your-code-with-your-debugger } + +Da Sie den Uvicorn-Server direkt aus Ihrem Code ausführen, können Sie Ihr Python-Programm (Ihre FastAPI-Anwendung) direkt aus dem Debugger aufrufen. + +--- + +Zum Beispiel können Sie in Visual Studio Code: + +* Zum „Debug“-Panel gehen. +* „Konfiguration hinzufügen ...“ auswählen. +* „Python“ auswählen. +* Den Debugger mit der Option „`Python: Current File (Integrated Terminal)`“ ausführen. + +Der Server wird dann mit Ihrem **FastAPI**-Code gestartet, an Ihren Haltepunkten angehalten, usw. + +So könnte es aussehen: + + + +--- + +Wenn Sie Pycharm verwenden, können Sie: + +* Das Menü „Run“ öffnen. +* Die Option „Debug ...“ auswählen. +* Ein Kontextmenü wird angezeigt. +* Die zu debuggende Datei auswählen (in diesem Fall `main.py`). + +Der Server wird dann mit Ihrem **FastAPI**-Code gestartet, an Ihren Haltepunkten angehalten, usw. + +So könnte es aussehen: + + diff --git a/docs/de/docs/tutorial/dependencies/classes-as-dependencies.md b/docs/de/docs/tutorial/dependencies/classes-as-dependencies.md new file mode 100644 index 0000000..3d4493f --- /dev/null +++ b/docs/de/docs/tutorial/dependencies/classes-as-dependencies.md @@ -0,0 +1,288 @@ +# Klassen als Abhängigkeiten { #classes-as-dependencies } + +Bevor wir tiefer in das **Dependency Injection** System eintauchen, lassen Sie uns das vorherige Beispiel verbessern. + +## Ein `dict` aus dem vorherigen Beispiel { #a-dict-from-the-previous-example } + +Im vorherigen Beispiel haben wir ein `dict` von unserer Abhängigkeit („Dependable“) zurückgegeben: + +{* ../../docs_src/dependencies/tutorial001_an_py310.py hl[9] *} + +Aber dann haben wir ein `dict` im Parameter `commons` der *Pfadoperation-Funktion*. + +Und wir wissen, dass Editoren nicht viel Unterstützung (wie etwa Code-Vervollständigung) für `dict`s bieten können, weil sie ihre Schlüssel- und Werttypen nicht kennen. + +Das können wir besser machen ... + +## Was macht eine Abhängigkeit aus { #what-makes-a-dependency } + +Bisher haben Sie Abhängigkeiten gesehen, die als Funktionen deklariert wurden. + +Das ist jedoch nicht die einzige Möglichkeit, Abhängigkeiten zu deklarieren (obwohl es wahrscheinlich die gebräuchlichste ist). + +Der springende Punkt ist, dass eine Abhängigkeit aufrufbar („callable“) sein sollte. + +Ein „**Callable**“ in Python ist etwas, das wie eine Funktion aufgerufen werden kann („to call“). + +Wenn Sie also ein Objekt `something` haben (das möglicherweise _keine_ Funktion ist) und Sie es wie folgt aufrufen (ausführen) können: + +```Python +something() +``` + +oder + +```Python +something(some_argument, some_keyword_argument="foo") +``` + +dann ist das ein „Callable“ (ein „Aufrufbares“). + +## Klassen als Abhängigkeiten { #classes-as-dependencies_1 } + +Möglicherweise stellen Sie fest, dass Sie zum Erstellen einer Instanz einer Python-Klasse die gleiche Syntax verwenden. + +Zum Beispiel: + +```Python +class Cat: + def __init__(self, name: str): + self.name = name + + +fluffy = Cat(name="Mr Fluffy") +``` + +In diesem Fall ist `fluffy` eine Instanz der Klasse `Cat`. + +Und um `fluffy` zu erzeugen, rufen Sie `Cat` auf. + +Eine Python-Klasse ist also auch ein **Callable**. + +Darum können Sie in **FastAPI** auch eine Python-Klasse als Abhängigkeit verwenden. + +Was FastAPI tatsächlich prüft, ist, ob es sich um ein „Callable“ (Funktion, Klasse oder irgendetwas anderes) handelt und ob die Parameter definiert sind. + +Wenn Sie **FastAPI** ein „Callable“ als Abhängigkeit übergeben, analysiert es die Parameter dieses „Callables“ und verarbeitet sie auf die gleiche Weise wie die Parameter einer *Pfadoperation-Funktion*. Einschließlich Unterabhängigkeiten. + +Das gilt auch für Callables ohne Parameter. So wie es auch für *Pfadoperation-Funktionen* ohne Parameter gilt. + +Dann können wir das „Dependable“ `common_parameters` der Abhängigkeit von oben in die Klasse `CommonQueryParams` ändern: + +{* ../../docs_src/dependencies/tutorial002_an_py310.py hl[11:15] *} + +Achten Sie auf die Methode `__init__`, die zum Erstellen der Instanz der Klasse verwendet wird: + +{* ../../docs_src/dependencies/tutorial002_an_py310.py hl[12] *} + +... sie hat die gleichen Parameter wie unsere vorherige `common_parameters`: + +{* ../../docs_src/dependencies/tutorial001_an_py310.py hl[8] *} + +Diese Parameter werden von **FastAPI** verwendet, um die Abhängigkeit „aufzulösen“. + +In beiden Fällen wird sie haben: + +* Einen optionalen `q`-Query-Parameter, der ein `str` ist. +* Einen `skip`-Query-Parameter, der ein `int` ist, mit einem Defaultwert `0`. +* Einen `limit`-Query-Parameter, der ein `int` ist, mit einem Defaultwert `100`. + +In beiden Fällen werden die Daten konvertiert, validiert, im OpenAPI-Schema dokumentiert, usw. + +## Verwenden { #use-it } + +Jetzt können Sie Ihre Abhängigkeit mithilfe dieser Klasse deklarieren. + +{* ../../docs_src/dependencies/tutorial002_an_py310.py hl[19] *} + +**FastAPI** ruft die Klasse `CommonQueryParams` auf. Dadurch wird eine „Instanz“ dieser Klasse erstellt und die Instanz wird als Parameter `commons` an Ihre Funktion überreicht. + +## Typannotation vs. `Depends` { #type-annotation-vs-depends } + +Beachten Sie, wie wir `CommonQueryParams` im obigen Code zweimal schreiben: + +//// tab | Python 3.8+ + +```Python +commons: Annotated[CommonQueryParams, Depends(CommonQueryParams)] +``` + +//// + +//// tab | Python 3.8+ nicht annotiert + +/// tip | Tipp + +Bevorzugen Sie die `Annotated`-Version, falls möglich. + +/// + +```Python +commons: CommonQueryParams = Depends(CommonQueryParams) +``` + +//// + +Das letzte `CommonQueryParams`, in: + +```Python +... Depends(CommonQueryParams) +``` + +... ist das, was **FastAPI** tatsächlich verwendet, um die Abhängigkeit zu ermitteln. + +Aus diesem extrahiert FastAPI die deklarierten Parameter, und dieses ist es, was FastAPI auch aufruft. + +--- + +In diesem Fall hat das erste `CommonQueryParams` in: + +//// tab | Python 3.8+ + +```Python +commons: Annotated[CommonQueryParams, ... +``` + +//// + +//// tab | Python 3.8+ nicht annotiert + +/// tip | Tipp + +Bevorzugen Sie die `Annotated`-Version, falls möglich. + +/// + +```Python +commons: CommonQueryParams ... +``` + +//// + +... keine besondere Bedeutung für **FastAPI**. FastAPI verwendet es nicht für die Datenkonvertierung, -validierung, usw. (da es dafür `Depends(CommonQueryParams)` verwendet). + +Sie könnten tatsächlich einfach schreiben: + +//// tab | Python 3.8+ + +```Python +commons: Annotated[Any, Depends(CommonQueryParams)] +``` + +//// + +//// tab | Python 3.8+ nicht annotiert + +/// tip | Tipp + +Bevorzugen Sie die `Annotated`-Version, falls möglich. + +/// + +```Python +commons = Depends(CommonQueryParams) +``` + +//// + +... wie in: + +{* ../../docs_src/dependencies/tutorial003_an_py310.py hl[19] *} + +Es wird jedoch empfohlen, den Typ zu deklarieren, da Ihr Editor so weiß, was als Parameter `commons` übergeben wird, und Ihnen dann bei der Codevervollständigung, Typprüfungen, usw. helfen kann: + + + +## Abkürzung { #shortcut } + +Aber Sie sehen, dass wir hier etwas Codeduplizierung haben, indem wir `CommonQueryParams` zweimal schreiben: + +//// tab | Python 3.8+ + +```Python +commons: Annotated[CommonQueryParams, Depends(CommonQueryParams)] +``` + +//// + +//// tab | Python 3.8+ nicht annotiert + +/// tip | Tipp + +Bevorzugen Sie die `Annotated`-Version, falls möglich. + +/// + +```Python +commons: CommonQueryParams = Depends(CommonQueryParams) +``` + +//// + +**FastAPI** bietet eine Abkürzung für diese Fälle, wo die Abhängigkeit *speziell* eine Klasse ist, welche **FastAPI** aufruft, um eine Instanz der Klasse selbst zu erstellen. + +In diesem speziellen Fall können Sie Folgendes tun: + +Anstatt zu schreiben: + +//// tab | Python 3.8+ + +```Python +commons: Annotated[CommonQueryParams, Depends(CommonQueryParams)] +``` + +//// + +//// tab | Python 3.8+ nicht annotiert + +/// tip | Tipp + +Bevorzugen Sie die `Annotated`-Version, falls möglich. + +/// + +```Python +commons: CommonQueryParams = Depends(CommonQueryParams) +``` + +//// + +... schreiben Sie: + +//// tab | Python 3.8+ + +```Python +commons: Annotated[CommonQueryParams, Depends()] +``` + +//// + +//// tab | Python 3.8 nicht annotiert + +/// tip | Tipp + +Bevorzugen Sie die `Annotated`-Version, falls möglich. + +/// + +```Python +commons: CommonQueryParams = Depends() +``` + +//// + +Sie deklarieren die Abhängigkeit als Typ des Parameters und verwenden `Depends()` ohne Parameter, anstatt die vollständige Klasse *erneut* in `Depends(CommonQueryParams)` schreiben zu müssen. + +Dasselbe Beispiel würde dann so aussehen: + +{* ../../docs_src/dependencies/tutorial004_an_py310.py hl[19] *} + +... und **FastAPI** wird wissen, was zu tun ist. + +/// tip | Tipp + +Wenn Sie das eher verwirrt, als Ihnen zu helfen, ignorieren Sie es, Sie *brauchen* es nicht. + +Es ist nur eine Abkürzung. Es geht **FastAPI** darum, Ihnen dabei zu helfen, Codeverdoppelung zu minimieren. + +/// diff --git a/docs/de/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md b/docs/de/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md new file mode 100644 index 0000000..59c9fcf --- /dev/null +++ b/docs/de/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md @@ -0,0 +1,69 @@ +# Abhängigkeiten in Pfadoperation-Dekoratoren { #dependencies-in-path-operation-decorators } + +Manchmal benötigen Sie den Rückgabewert einer Abhängigkeit innerhalb Ihrer *Pfadoperation-Funktion* nicht wirklich. + +Oder die Abhängigkeit gibt keinen Wert zurück. + +Aber Sie müssen sie trotzdem ausführen/auflösen. + +In diesen Fällen können Sie, anstatt einen Parameter der *Pfadoperation-Funktion* mit `Depends` zu deklarieren, eine `list`e von `dependencies` zum *Pfadoperation-Dekorator* hinzufügen. + +## `dependencies` zum *Pfadoperation-Dekorator* hinzufügen { #add-dependencies-to-the-path-operation-decorator } + +Der *Pfadoperation-Dekorator* erhält ein optionales Argument `dependencies`. + +Es sollte eine `list`e von `Depends()` sein: + +{* ../../docs_src/dependencies/tutorial006_an_py39.py hl[19] *} + +Diese Abhängigkeiten werden auf die gleiche Weise wie normale Abhängigkeiten ausgeführt/aufgelöst. Aber ihr Wert (falls sie einen zurückgeben) wird nicht an Ihre *Pfadoperation-Funktion* übergeben. + +/// tip | Tipp + +Einige Editoren prüfen, ob Funktionsparameter nicht verwendet werden, und zeigen das als Fehler an. + +Wenn Sie `dependencies` im *Pfadoperation-Dekorator* verwenden, stellen Sie sicher, dass sie ausgeführt werden, während gleichzeitig Ihr Editor/Ihre Tools keine Fehlermeldungen ausgeben. + +Damit wird auch vermieden, neue Entwickler möglicherweise zu verwirren, die einen nicht verwendeten Parameter in Ihrem Code sehen und ihn für unnötig halten könnten. + +/// + +/// info | Info + +In diesem Beispiel verwenden wir zwei erfundene benutzerdefinierte Header `X-Key` und `X-Token`. + +Aber in realen Fällen würden Sie bei der Implementierung von Sicherheit mehr Vorteile durch die Verwendung der integrierten [Sicherheits-Werkzeuge (siehe nächstes Kapitel)](../security/index.md){.internal-link target=_blank} erzielen. + +/// + +## Abhängigkeitsfehler und -Rückgabewerte { #dependencies-errors-and-return-values } + +Sie können dieselben Abhängigkeits-*Funktionen* verwenden, die Sie normalerweise verwenden. + +### Abhängigkeitsanforderungen { #dependency-requirements } + +Sie können Anforderungen für einen Request (wie Header) oder andere Unterabhängigkeiten deklarieren: + +{* ../../docs_src/dependencies/tutorial006_an_py39.py hl[8,13] *} + +### Exceptions auslösen { #raise-exceptions } + +Die Abhängigkeiten können Exceptions `raise`n, genau wie normale Abhängigkeiten: + +{* ../../docs_src/dependencies/tutorial006_an_py39.py hl[10,15] *} + +### Rückgabewerte { #return-values } + +Und sie können Werte zurückgeben oder nicht, die Werte werden nicht verwendet. + +Sie können also eine normale Abhängigkeit (die einen Wert zurückgibt), die Sie bereits an anderer Stelle verwenden, wiederverwenden, und auch wenn der Wert nicht verwendet wird, wird die Abhängigkeit ausgeführt: + +{* ../../docs_src/dependencies/tutorial006_an_py39.py hl[11,16] *} + +## Abhängigkeiten für eine Gruppe von *Pfadoperationen* { #dependencies-for-a-group-of-path-operations } + +Wenn Sie später lesen, wie Sie größere Anwendungen strukturieren ([Größere Anwendungen – Mehrere Dateien](../../tutorial/bigger-applications.md){.internal-link target=_blank}), möglicherweise mit mehreren Dateien, lernen Sie, wie Sie einen einzelnen `dependencies`-Parameter für eine Gruppe von *Pfadoperationen* deklarieren. + +## Globale Abhängigkeiten { #global-dependencies } + +Als Nächstes werden wir sehen, wie man Abhängigkeiten zur gesamten `FastAPI`-Anwendung hinzufügt, sodass sie für jede *Pfadoperation* gelten. diff --git a/docs/de/docs/tutorial/dependencies/dependencies-with-yield.md b/docs/de/docs/tutorial/dependencies/dependencies-with-yield.md new file mode 100644 index 0000000..34db6c6 --- /dev/null +++ b/docs/de/docs/tutorial/dependencies/dependencies-with-yield.md @@ -0,0 +1,288 @@ +# Abhängigkeiten mit `yield` { #dependencies-with-yield } + +FastAPI unterstützt Abhängigkeiten, die nach Abschluss einige zusätzliche Schritte ausführen. + +Verwenden Sie dazu `yield` statt `return` und schreiben Sie die zusätzlichen Schritte / den zusätzlichen Code danach. + +/// tip | Tipp + +Stellen Sie sicher, dass Sie `yield` nur einmal pro Abhängigkeit verwenden. + +/// + +/// note | Technische Details + +Jede Funktion, die dekoriert werden kann mit: + +* `@contextlib.contextmanager` oder +* `@contextlib.asynccontextmanager` + +kann auch als gültige **FastAPI**-Abhängigkeit verwendet werden. + +Tatsächlich verwendet FastAPI diese beiden Dekoratoren intern. + +/// + +## Eine Datenbank-Abhängigkeit mit `yield` { #a-database-dependency-with-yield } + +Sie könnten damit beispielsweise eine Datenbanksession erstellen und diese nach Abschluss schließen. + +Nur der Code vor und einschließlich der `yield`-Anweisung wird ausgeführt, bevor eine Response erzeugt wird: + +{* ../../docs_src/dependencies/tutorial007.py hl[2:4] *} + +Der ge`yield`ete Wert ist das, was in *Pfadoperationen* und andere Abhängigkeiten eingefügt wird: + +{* ../../docs_src/dependencies/tutorial007.py hl[4] *} + +Der auf die `yield`-Anweisung folgende Code wird nach der Response ausgeführt: + +{* ../../docs_src/dependencies/tutorial007.py hl[5:6] *} + +/// tip | Tipp + +Sie können `async`- oder reguläre Funktionen verwenden. + +**FastAPI** wird bei jeder das Richtige tun, so wie auch bei normalen Abhängigkeiten. + +/// + +## Eine Abhängigkeit mit `yield` und `try` { #a-dependency-with-yield-and-try } + +Wenn Sie einen `try`-Block in einer Abhängigkeit mit `yield` verwenden, empfangen Sie alle Exceptions, die bei Verwendung der Abhängigkeit geworfen wurden. + +Wenn beispielsweise ein Code irgendwann in der Mitte, in einer anderen Abhängigkeit oder in einer *Pfadoperation*, ein „Rollback“ einer Datenbanktransaktion macht oder eine andere Exception verursacht, empfangen Sie die Exception in Ihrer Abhängigkeit. + +Sie können also mit `except SomeException` diese bestimmte Exception innerhalb der Abhängigkeit handhaben. + +Auf die gleiche Weise können Sie `finally` verwenden, um sicherzustellen, dass die Exit-Schritte ausgeführt werden, unabhängig davon, ob eine Exception geworfen wurde oder nicht. + +{* ../../docs_src/dependencies/tutorial007.py hl[3,5] *} + +## Unterabhängigkeiten mit `yield` { #sub-dependencies-with-yield } + +Sie können Unterabhängigkeiten und „Bäume“ von Unterabhängigkeiten beliebiger Größe und Form haben, und einige oder alle davon können `yield` verwenden. + +**FastAPI** stellt sicher, dass der „Exit-Code“ in jeder Abhängigkeit mit `yield` in der richtigen Reihenfolge ausgeführt wird. + +Beispielsweise kann `dependency_c` von `dependency_b` und `dependency_b` von `dependency_a` abhängen: + +{* ../../docs_src/dependencies/tutorial008_an_py39.py hl[6,14,22] *} + +Und alle können `yield` verwenden. + +In diesem Fall benötigt `dependency_c` zum Ausführen seines Exit-Codes, dass der Wert von `dependency_b` (hier `dep_b` genannt) verfügbar ist. + +Und wiederum benötigt `dependency_b` den Wert von `dependency_a` (hier `dep_a` genannt) für seinen Exit-Code. + +{* ../../docs_src/dependencies/tutorial008_an_py39.py hl[18:19,26:27] *} + +Auf die gleiche Weise könnten Sie einige Abhängigkeiten mit `yield` und einige andere Abhängigkeiten mit `return` haben, und alle können beliebig voneinander abhängen. + +Und Sie könnten eine einzelne Abhängigkeit haben, die auf mehreren ge`yield`eten Abhängigkeiten basiert, usw. + +Sie können beliebige Kombinationen von Abhängigkeiten haben. + +**FastAPI** stellt sicher, dass alles in der richtigen Reihenfolge ausgeführt wird. + +/// note | Technische Details + +Dieses funktioniert dank Pythons Kontextmanager. + +**FastAPI** verwendet sie intern, um das zu erreichen. + +/// + +## Abhängigkeiten mit `yield` und `HTTPException` { #dependencies-with-yield-and-httpexception } + +Sie haben gesehen, dass Sie Abhängigkeiten mit `yield` verwenden und `try`-Blöcke haben können, die versuchen, irgendeinen Code auszuführen und dann, nach `finally`, Exit-Code ausführen. + +Sie können auch `except` verwenden, um die geworfene Exception abzufangen und damit etwas zu tun. + +Zum Beispiel können Sie eine andere Exception auslösen, wie `HTTPException`. + +/// tip | Tipp + +Dies ist eine etwas fortgeschrittene Technik, die Sie in den meisten Fällen nicht wirklich benötigen, da Sie Exceptions (einschließlich `HTTPException`) innerhalb des restlichen Anwendungscodes auslösen können, beispielsweise in der *Pfadoperation-Funktion*. + +Aber es ist für Sie da, wenn Sie es brauchen. 🤓 + +/// + +{* ../../docs_src/dependencies/tutorial008b_an_py39.py hl[18:22,31] *} + +Wenn Sie Exceptions abfangen und darauf basierend eine benutzerdefinierte Response erstellen möchten, erstellen Sie einen [benutzerdefinierten Exceptionhandler](../handling-errors.md#install-custom-exception-handlers){.internal-link target=_blank}. + +## Abhängigkeiten mit `yield` und `except` { #dependencies-with-yield-and-except } + +Wenn Sie eine Exception mit `except` in einer Abhängigkeit mit `yield` abfangen und sie nicht erneut auslösen (oder eine neue Exception auslösen), kann FastAPI nicht feststellen, dass es eine Exception gab, genau so wie es bei normalem Python der Fall wäre: + +{* ../../docs_src/dependencies/tutorial008c_an_py39.py hl[15:16] *} + +In diesem Fall sieht der Client eine *HTTP 500 Internal Server Error*-Response, wie es sein sollte, da wir keine `HTTPException` oder Ähnliches auslösen, aber der Server hat **keine Logs** oder einen anderen Hinweis darauf, was der Fehler war. 😱 + +### In Abhängigkeiten mit `yield` und `except` immer `raise` verwenden { #always-raise-in-dependencies-with-yield-and-except } + +Wenn Sie eine Exception in einer Abhängigkeit mit `yield` abfangen, sollten Sie – sofern Sie nicht eine andere `HTTPException` oder Ähnliches auslösen – **die ursprüngliche Exception erneut auslösen**. + +Sie können dieselbe Exception mit `raise` erneut auslösen: + +{* ../../docs_src/dependencies/tutorial008d_an_py39.py hl[17] *} + +Jetzt erhält der Client dieselbe *HTTP 500 Internal Server Error*-Response, aber der Server enthält unseren benutzerdefinierten `InternalError` in den Logs. 😎 + +## Ausführung von Abhängigkeiten mit `yield` { #execution-of-dependencies-with-yield } + +Die Ausführungsreihenfolge ähnelt mehr oder weniger dem folgenden Diagramm. Die Zeit verläuft von oben nach unten. Und jede Spalte ist einer der interagierenden oder Code-ausführenden Teilnehmer. + +```mermaid +sequenceDiagram + +participant client as Client +participant handler as Exceptionhandler +participant dep as Abhängigkeit mit yield +participant operation as Pfadoperation +participant tasks as Hintergrundtasks + + Note over client,operation: Kann Exceptions auslösen, inklusive HTTPException + client ->> dep: Startet den Request + Note over dep: Führt den Code bis zum yield aus + opt Löst Exception aus + dep -->> handler: Löst Exception aus + handler -->> client: HTTP-Error-Response + end + dep ->> operation: Führt Abhängigkeit aus, z. B. DB-Session + opt Löst aus + operation -->> dep: Löst Exception aus (z. B. HTTPException) + opt Handhabt + dep -->> dep: Kann Exception abfangen, eine neue HTTPException auslösen, andere Exception auslösen + end + handler -->> client: HTTP-Error-Response + end + + operation ->> client: Sendet Response an Client + Note over client,operation: Response wurde bereits gesendet, kann nicht mehr geändert werden + opt Tasks + operation -->> tasks: Sendet Hintergrundtasks + end + opt Löst andere Exception aus + tasks -->> tasks: Handhabt Exceptions im Hintergrundtask-Code + end +``` + +/// info | Info + +Es wird nur **eine Response** an den Client gesendet. Es kann eine Error-Response oder die Response der *Pfadoperation* sein. + +Nachdem eine dieser Responses gesendet wurde, kann keine weitere Response gesendet werden. + +/// + +/// tip | Tipp + +Wenn Sie in dem Code der *Pfadoperation-Funktion* irgendeine Exception auslösen, wird sie an die Abhängigkeiten mit `yield` weitergegeben, einschließlich `HTTPException`. In den meisten Fällen sollten Sie dieselbe Exception oder eine neue aus der Abhängigkeit mit `yield` erneut auslösen, um sicherzustellen, dass sie korrekt gehandhabt wird. + +/// + +## Frühes Beenden und `scope` { #early-exit-and-scope } + +Normalerweise wird der Exit-Code von Abhängigkeiten mit `yield` ausgeführt **nachdem die Response** an den Client gesendet wurde. + +Wenn Sie aber wissen, dass Sie die Abhängigkeit nach der Rückkehr aus der *Pfadoperation-Funktion* nicht mehr benötigen, können Sie `Depends(scope="function")` verwenden, um FastAPI mitzuteilen, dass es die Abhängigkeit nach der Rückkehr aus der *Pfadoperation-Funktion* schließen soll, jedoch **bevor** die **Response gesendet wird**. + +{* ../../docs_src/dependencies/tutorial008e_an_py39.py hl[12,16] *} + +`Depends()` erhält einen `scope`-Parameter, der sein kann: + +* `"function"`: startet die Abhängigkeit vor der *Pfadoperation-Funktion*, die den Request bearbeitet, beendet die Abhängigkeit nach dem Ende der *Pfadoperation-Funktion*, aber **bevor** die Response an den Client zurückgesendet wird. Die Abhängigkeitsfunktion wird also **um** die *Pfadoperation-**Funktion*** **herum** ausgeführt. +* `"request"`: startet die Abhängigkeit vor der *Pfadoperation-Funktion*, die den Request bearbeitet (ähnlich wie bei `"function"`), beendet sie jedoch **nachdem** die Response an den Client zurückgesendet wurde. Die Abhängigkeitsfunktion wird also **um** den **Request**- und Response-Zyklus **herum** ausgeführt. + +Wenn nicht angegeben und die Abhängigkeit `yield` hat, hat sie standardmäßig einen `scope` von `"request"`. + +### `scope` für Unterabhängigkeiten { #scope-for-sub-dependencies } + +Wenn Sie eine Abhängigkeit mit `scope="request"` (dem Default) deklarieren, muss jede Unterabhängigkeit ebenfalls einen `scope` von `"request"` haben. + +Eine Abhängigkeit mit `scope` von `"function"` kann jedoch Abhängigkeiten mit `scope` von `"function"` und `scope` von `"request"` haben. + +Das liegt daran, dass jede Abhängigkeit in der Lage sein muss, ihren Exit-Code vor den Unterabhängigkeiten auszuführen, da sie diese während ihres Exit-Codes möglicherweise noch verwenden muss. + +```mermaid +sequenceDiagram + +participant client as Client +participant dep_req as Abhängigkeit scope="request" +participant dep_func as Abhängigkeit scope="function" +participant operation as Pfadoperation + + client ->> dep_req: Startet den Request + Note over dep_req: Führt den Code bis zum yield aus + dep_req ->> dep_func: Reicht Abhängigkeit weiter + Note over dep_func: Führt den Code bis zum yield aus + dep_func ->> operation: Führt Pfadoperation mit Abhängigkeit aus + operation ->> dep_func: Kehrt aus Pfadoperation zurück + Note over dep_func: Führt Code nach yield aus + Note over dep_func: ✅ Abhängigkeit geschlossen + dep_func ->> client: Sendet Response an Client + Note over client: Response gesendet + Note over dep_req: Führt Code nach yield aus + Note over dep_req: ✅ Abhängigkeit geschlossen +``` + +## Abhängigkeiten mit `yield`, `HTTPException`, `except` und Hintergrundtasks { #dependencies-with-yield-httpexception-except-and-background-tasks } + +Abhängigkeiten mit `yield` haben sich im Laufe der Zeit weiterentwickelt, um verschiedene Anwendungsfälle abzudecken und einige Probleme zu beheben. + +Wenn Sie sehen möchten, was sich in verschiedenen Versionen von FastAPI geändert hat, lesen Sie mehr dazu im fortgeschrittenen Teil, unter [Fortgeschrittene Abhängigkeiten – Abhängigkeiten mit `yield`, `HTTPException`, `except` und Hintergrundtasks](../../advanced/advanced-dependencies.md#dependencies-with-yield-httpexception-except-and-background-tasks){.internal-link target=_blank}. +## Kontextmanager { #context-managers } + +### Was sind „Kontextmanager“ { #what-are-context-managers } + +„Kontextmanager“ (Englisch „Context Manager“) sind bestimmte Python-Objekte, die Sie in einer `with`-Anweisung verwenden können. + +Beispielsweise können Sie `with` verwenden, um eine Datei auszulesen: + +```Python +with open("./somefile.txt") as f: + contents = f.read() + print(contents) +``` + +Im Hintergrund erstellt das `open("./somefile.txt")` ein Objekt, das als „Kontextmanager“ bezeichnet wird. + +Dieser stellt sicher, dass, wenn der `with`-Block beendet ist, die Datei geschlossen wird, auch wenn Exceptions geworfen wurden. + +Wenn Sie eine Abhängigkeit mit `yield` erstellen, erstellt **FastAPI** dafür intern einen Kontextmanager und kombiniert ihn mit einigen anderen zugehörigen Tools. + +### Kontextmanager in Abhängigkeiten mit `yield` verwenden { #using-context-managers-in-dependencies-with-yield } + +/// warning | Achtung + +Dies ist mehr oder weniger eine „fortgeschrittene“ Idee. + +Wenn Sie gerade erst mit **FastAPI** beginnen, möchten Sie das vielleicht vorerst überspringen. + +/// + +In Python können Sie Kontextmanager erstellen, indem Sie eine Klasse mit zwei Methoden erzeugen: `__enter__()` und `__exit__()`. + +Sie können solche auch innerhalb von **FastAPI**-Abhängigkeiten mit `yield` verwenden, indem Sie `with`- oder `async with`-Anweisungen innerhalb der Abhängigkeits-Funktion verwenden: + +{* ../../docs_src/dependencies/tutorial010.py hl[1:9,13] *} + +/// tip | Tipp + +Andere Möglichkeiten, einen Kontextmanager zu erstellen, sind: + +* `@contextlib.contextmanager` oder +* `@contextlib.asynccontextmanager` + +Verwenden Sie diese, um eine Funktion zu dekorieren, die ein einziges `yield` hat. + +Das ist es auch, was **FastAPI** intern für Abhängigkeiten mit `yield` verwendet. + +Aber Sie müssen die Dekoratoren nicht für FastAPI-Abhängigkeiten verwenden (und das sollten Sie auch nicht). + +FastAPI erledigt das intern für Sie. + +/// diff --git a/docs/de/docs/tutorial/dependencies/global-dependencies.md b/docs/de/docs/tutorial/dependencies/global-dependencies.md new file mode 100644 index 0000000..62cc788 --- /dev/null +++ b/docs/de/docs/tutorial/dependencies/global-dependencies.md @@ -0,0 +1,15 @@ +# Globale Abhängigkeiten { #global-dependencies } + +Bei einigen Anwendungstypen möchten Sie möglicherweise Abhängigkeiten zur gesamten Anwendung hinzufügen. + +Ähnlich wie Sie [`dependencies` zu den *Pfadoperation-Dekoratoren* hinzufügen](dependencies-in-path-operation-decorators.md){.internal-link target=_blank} können, können Sie sie auch zur `FastAPI`-Anwendung hinzufügen. + +In diesem Fall werden sie auf alle *Pfadoperationen* in der Anwendung angewendet: + +{* ../../docs_src/dependencies/tutorial012_an_py39.py hl[16] *} + +Und alle Ideen aus dem Abschnitt über das [Hinzufügen von `dependencies` zu den *Pfadoperation-Dekoratoren*](dependencies-in-path-operation-decorators.md){.internal-link target=_blank} gelten weiterhin, aber in diesem Fall für alle *Pfadoperationen* in der App. + +## Abhängigkeiten für Gruppen von *Pfadoperationen* { #dependencies-for-groups-of-path-operations } + +Wenn Sie später lesen, wie Sie größere Anwendungen strukturieren ([Größere Anwendungen – mehrere Dateien](../../tutorial/bigger-applications.md){.internal-link target=_blank}), möglicherweise mit mehreren Dateien, lernen Sie, wie Sie einen einzelnen `dependencies`-Parameter für eine Gruppe von *Pfadoperationen* deklarieren. diff --git a/docs/de/docs/tutorial/dependencies/index.md b/docs/de/docs/tutorial/dependencies/index.md new file mode 100644 index 0000000..cb6a612 --- /dev/null +++ b/docs/de/docs/tutorial/dependencies/index.md @@ -0,0 +1,249 @@ +# Abhängigkeiten { #dependencies } + +**FastAPI** hat ein sehr mächtiges, aber intuitives **Dependency Injection** System. + +Es ist so konzipiert, sehr einfach zu verwenden zu sein und es jedem Entwickler sehr leicht zu machen, andere Komponenten mit **FastAPI** zu integrieren. + +## Was ist „Dependency Injection“ { #what-is-dependency-injection } + +**„Dependency Injection“** bedeutet in der Programmierung, dass es für Ihren Code (in diesem Fall Ihre *Pfadoperation-Funktionen*) eine Möglichkeit gibt, Dinge zu deklarieren, die er verwenden möchte und die er zum Funktionieren benötigt: „Abhängigkeiten“ – „Dependencies“. + +Das System (in diesem Fall **FastAPI**) kümmert sich dann darum, Ihren Code mit den erforderlichen Abhängigkeiten zu versorgen („die Abhängigkeiten einfügen“ – „inject the dependencies“). + +Das ist sehr nützlich, wenn Sie: + +* Eine gemeinsame Logik haben (die gleiche Code-Logik immer und immer wieder). +* Datenbankverbindungen teilen. +* Sicherheit, Authentifizierung, Rollenanforderungen, usw. durchsetzen. +* Und viele andere Dinge ... + +All dies, während Sie Codeverdoppelung minimieren. + +## Erste Schritte { #first-steps } + +Sehen wir uns ein sehr einfaches Beispiel an. Es ist so einfach, dass es vorerst nicht sehr nützlich ist. + +Aber so können wir uns besser auf die Funktionsweise des **Dependency Injection** Systems konzentrieren. + +### Eine Abhängigkeit erstellen, oder „Dependable“ { #create-a-dependency-or-dependable } + +Konzentrieren wir uns zunächst auf die Abhängigkeit – die Dependency. + +Es handelt sich einfach um eine Funktion, die die gleichen Parameter entgegennimmt wie eine *Pfadoperation-Funktion*: +{* ../../docs_src/dependencies/tutorial001_an_py310.py hl[8:9] *} + +Das war's schon. + +**Zwei Zeilen**. + +Und sie hat die gleiche Form und Struktur wie alle Ihre *Pfadoperation-Funktionen*. + +Sie können sie sich als *Pfadoperation-Funktion* ohne den „Dekorator“ (ohne `@app.get("/some-path")`) vorstellen. + +Und sie kann alles zurückgeben, was Sie möchten. + +In diesem Fall erwartet diese Abhängigkeit: + +* Einen optionalen Query-Parameter `q`, der ein `str` ist. +* Einen optionalen Query-Parameter `skip`, der ein `int` ist und standardmäßig `0` ist. +* Einen optionalen Query-Parameter `limit`, der ein `int` ist und standardmäßig `100` ist. + +Und dann wird einfach ein `dict` zurückgegeben, welches diese Werte enthält. + +/// info | Info + +FastAPI unterstützt (und empfiehlt die Verwendung von) `Annotated` seit Version 0.95.0. + +Wenn Sie eine ältere Version haben, werden Sie Fehler angezeigt bekommen, wenn Sie versuchen, `Annotated` zu verwenden. + +Bitte [aktualisieren Sie FastAPI](../../deployment/versions.md#upgrading-the-fastapi-versions){.internal-link target=_blank} daher mindestens zu Version 0.95.1, bevor Sie `Annotated` verwenden. + +/// + +### `Depends` importieren { #import-depends } + +{* ../../docs_src/dependencies/tutorial001_an_py310.py hl[3] *} + +### Die Abhängigkeit im „Dependant“ deklarieren { #declare-the-dependency-in-the-dependant } + +So wie auch `Body`, `Query`, usw., verwenden Sie `Depends` mit den Parametern Ihrer *Pfadoperation-Funktion*: + +{* ../../docs_src/dependencies/tutorial001_an_py310.py hl[13,18] *} + +Obwohl Sie `Depends` in den Parametern Ihrer Funktion genauso verwenden wie `Body`, `Query`, usw., funktioniert `Depends` etwas anders. + +Sie übergeben `Depends` nur einen einzigen Parameter. + +Dieser Parameter muss so etwas wie eine Funktion sein. + +Sie **rufen diese nicht direkt auf** (fügen Sie am Ende keine Klammern hinzu), sondern übergeben sie einfach als Parameter an `Depends()`. + +Und diese Funktion akzeptiert Parameter auf die gleiche Weise wie *Pfadoperation-Funktionen*. + +/// tip | Tipp + +Im nächsten Kapitel erfahren Sie, welche anderen „Dinge“, außer Funktionen, Sie als Abhängigkeiten verwenden können. + +/// + +Immer wenn ein neuer Request eintrifft, kümmert sich **FastAPI** darum: + +* Ihre Abhängigkeitsfunktion („Dependable“) mit den richtigen Parametern aufzurufen. +* Sich das Ergebnis von dieser Funktion zu holen. +* Dieses Ergebnis dem Parameter Ihrer *Pfadoperation-Funktion* zuzuweisen. + +```mermaid +graph TB + +common_parameters(["common_parameters"]) +read_items["/items/"] +read_users["/users/"] + +common_parameters --> read_items +common_parameters --> read_users +``` + +Auf diese Weise schreiben Sie gemeinsam genutzten Code nur einmal, und **FastAPI** kümmert sich darum, ihn für Ihre *Pfadoperationen* aufzurufen. + +/// check | Testen + +Beachten Sie, dass Sie keine spezielle Klasse erstellen und diese irgendwo an **FastAPI** übergeben müssen, um sie zu „registrieren“ oder so ähnlich. + +Sie übergeben es einfach an `Depends` und **FastAPI** weiß, wie der Rest erledigt wird. + +/// + +## `Annotated`-Abhängigkeiten wiederverwenden { #share-annotated-dependencies } + +In den Beispielen oben sehen Sie, dass es ein kleines bisschen **Codeverdoppelung** gibt. + +Wenn Sie die Abhängigkeit `common_parameters()` verwenden, müssen Sie den gesamten Parameter mit der Typannotation und `Depends()` schreiben: + +```Python +commons: Annotated[dict, Depends(common_parameters)] +``` + +Da wir jedoch `Annotated` verwenden, können wir diesen `Annotated`-Wert in einer Variablen speichern und an mehreren Stellen verwenden: + +{* ../../docs_src/dependencies/tutorial001_02_an_py310.py hl[12,16,21] *} + +/// tip | Tipp + +Das ist schlicht Standard-Python, es wird als „Typalias“ bezeichnet und ist eigentlich nicht **FastAPI**-spezifisch. + +Da **FastAPI** jedoch auf Standard-Python, einschließlich `Annotated`, basiert, können Sie diesen Trick in Ihrem Code verwenden. 😎 + +/// + +Die Abhängigkeiten funktionieren weiterhin wie erwartet, und das **Beste daran** ist, dass die **Typinformationen erhalten bleiben**, was bedeutet, dass Ihr Editor Ihnen weiterhin **automatische Vervollständigung**, **Inline-Fehler**, usw. bieten kann. Das Gleiche gilt für andere Tools wie `mypy`. + +Das ist besonders nützlich, wenn Sie es in einer **großen Codebasis** verwenden, in der Sie in **vielen *Pfadoperationen*** immer wieder **dieselben Abhängigkeiten** verwenden. + +## `async` oder nicht `async` { #to-async-or-not-to-async } + +Da Abhängigkeiten auch von **FastAPI** aufgerufen werden (so wie Ihre *Pfadoperation-Funktionen*), gelten beim Definieren Ihrer Funktionen die gleichen Regeln. + +Sie können `async def` oder einfach `def` verwenden. + +Und Sie können Abhängigkeiten mit `async def` innerhalb normaler `def`-*Pfadoperation-Funktionen* oder `def`-Abhängigkeiten innerhalb von `async def`-*Pfadoperation-Funktionen*, usw. deklarieren. + +Es spielt keine Rolle. **FastAPI** weiß, was zu tun ist. + +/// note | Hinweis + +Wenn Ihnen das nichts sagt, lesen Sie den [Async: *„In Eile?“*](../../async.md#in-a-hurry){.internal-link target=_blank}-Abschnitt über `async` und `await` in der Dokumentation. + +/// + +## Integriert in OpenAPI { #integrated-with-openapi } + +Alle Requestdeklarationen, -validierungen und -anforderungen Ihrer Abhängigkeiten (und Unterabhängigkeiten) werden in dasselbe OpenAPI-Schema integriert. + +Die interaktive Dokumentation enthält also auch alle Informationen aus diesen Abhängigkeiten: + + + +## Einfache Verwendung { #simple-usage } + +Näher betrachtet, werden *Pfadoperation-Funktionen* deklariert, um verwendet zu werden, wann immer ein *Pfad* und eine *Operation* übereinstimmen, und dann kümmert sich **FastAPI** darum, die Funktion mit den richtigen Parametern aufzurufen, die Daten aus dem Request extrahierend. + +Tatsächlich funktionieren alle (oder die meisten) Webframeworks auf die gleiche Weise. + +Sie rufen diese Funktionen niemals direkt auf. Sie werden von Ihrem Framework aufgerufen (in diesem Fall **FastAPI**). + +Mit dem Dependency Injection System können Sie **FastAPI** ebenfalls mitteilen, dass Ihre *Pfadoperation-Funktion* von etwas anderem „abhängt“, das vor Ihrer *Pfadoperation-Funktion* ausgeführt werden soll, und **FastAPI** kümmert sich darum, es auszuführen und die Ergebnisse zu „injizieren“. + +Andere gebräuchliche Begriffe für dieselbe Idee der „Abhängigkeitsinjektion“ sind: + +* Ressourcen +* Provider +* Services +* Injectables +* Komponenten + +## **FastAPI**-Plugins { #fastapi-plug-ins } + +Integrationen und „Plugins“ können mit dem **Dependency Injection** System erstellt werden. Aber tatsächlich besteht **keine Notwendigkeit, „Plugins“ zu erstellen**, da es durch die Verwendung von Abhängigkeiten möglich ist, eine unendliche Anzahl von Integrationen und Interaktionen zu deklarieren, die dann für Ihre *Pfadoperation-Funktionen* verfügbar sind. + +Und Abhängigkeiten können auf sehr einfache und intuitive Weise erstellt werden, sodass Sie einfach die benötigten Python-Packages importieren und sie in wenigen Codezeilen, *im wahrsten Sinne des Wortes*, mit Ihren API-Funktionen integrieren. + +Beispiele hierfür finden Sie in den nächsten Kapiteln zu relationalen und NoSQL-Datenbanken, Sicherheit usw. + +## **FastAPI**-Kompatibilität { #fastapi-compatibility } + +Die Einfachheit des Dependency Injection Systems macht **FastAPI** kompatibel mit: + +* allen relationalen Datenbanken +* NoSQL-Datenbanken +* externen Packages +* externen APIs +* Authentifizierungs- und Autorisierungssystemen +* API-Nutzungs-Überwachungssystemen +* Responsedaten-Injektionssystemen +* usw. + +## Einfach und leistungsstark { #simple-and-powerful } + +Obwohl das hierarchische Dependency Injection System sehr einfach zu definieren und zu verwenden ist, ist es dennoch sehr mächtig. + +Sie können Abhängigkeiten definieren, die selbst wiederum Abhängigkeiten definieren können. + +Am Ende wird ein hierarchischer Baum von Abhängigkeiten erstellt, und das **Dependency Injection** System kümmert sich darum, alle diese Abhängigkeiten (und deren Unterabhängigkeiten) für Sie aufzulösen und die Ergebnisse bei jedem Schritt einzubinden (zu injizieren). + +Nehmen wir zum Beispiel an, Sie haben vier API-Endpunkte (*Pfadoperationen*): + +* `/items/public/` +* `/items/private/` +* `/users/{user_id}/activate` +* `/items/pro/` + +Dann könnten Sie für jeden davon unterschiedliche Berechtigungsanforderungen hinzufügen, nur mit Abhängigkeiten und Unterabhängigkeiten: + +```mermaid +graph TB + +current_user(["current_user"]) +active_user(["active_user"]) +admin_user(["admin_user"]) +paying_user(["paying_user"]) + +public["/items/public/"] +private["/items/private/"] +activate_user["/users/{user_id}/activate"] +pro_items["/items/pro/"] + +current_user --> active_user +active_user --> admin_user +active_user --> paying_user + +current_user --> public +active_user --> private +admin_user --> activate_user +paying_user --> pro_items +``` + +## Integriert mit **OpenAPI** { #integrated-with-openapi_1 } + +Alle diese Abhängigkeiten, während sie ihre Anforderungen deklarieren, fügen auch Parameter, Validierungen, usw. zu Ihren *Pfadoperationen* hinzu. + +**FastAPI** kümmert sich darum, alles zum OpenAPI-Schema hinzuzufügen, damit es in den interaktiven Dokumentationssystemen angezeigt wird. diff --git a/docs/de/docs/tutorial/dependencies/sub-dependencies.md b/docs/de/docs/tutorial/dependencies/sub-dependencies.md new file mode 100644 index 0000000..061952f --- /dev/null +++ b/docs/de/docs/tutorial/dependencies/sub-dependencies.md @@ -0,0 +1,105 @@ +# Unterabhängigkeiten { #sub-dependencies } + +Sie können Abhängigkeiten erstellen, die **Unterabhängigkeiten** haben. + +Diese können so **tief** verschachtelt sein, wie nötig. + +**FastAPI** kümmert sich darum, sie aufzulösen. + +## Erste Abhängigkeit, „Dependable“ { #first-dependency-dependable } + +Sie könnten eine erste Abhängigkeit („Dependable“) wie folgt erstellen: + +{* ../../docs_src/dependencies/tutorial005_an_py310.py hl[8:9] *} + +Diese deklariert einen optionalen Query-Parameter `q` vom Typ `str` und gibt ihn dann einfach zurück. + +Das ist recht einfach (nicht sehr nützlich), hilft uns aber dabei, uns auf die Funktionsweise der Unterabhängigkeiten zu konzentrieren. + +## Zweite Abhängigkeit, „Dependable“ und „Dependant“ { #second-dependency-dependable-and-dependant } + +Dann können Sie eine weitere Abhängigkeitsfunktion (ein „Dependable“) erstellen, die gleichzeitig eine eigene Abhängigkeit deklariert (also auch ein „Dependant“ ist): + +{* ../../docs_src/dependencies/tutorial005_an_py310.py hl[13] *} + +Betrachten wir die deklarierten Parameter: + +* Obwohl diese Funktion selbst eine Abhängigkeit ist („Dependable“, etwas hängt von ihr ab), deklariert sie auch eine andere Abhängigkeit („Dependant“, sie hängt von etwas anderem ab). + * Sie hängt von `query_extractor` ab und weist den von diesem zurückgegebenen Wert dem Parameter `q` zu. +* Sie deklariert außerdem ein optionales `last_query`-Cookie, ein `str`. + * Wenn der Benutzer keine Query `q` übermittelt hat, verwenden wir die zuletzt übermittelte Query, die wir zuvor in einem Cookie gespeichert haben. + +## Die Abhängigkeit verwenden { #use-the-dependency } + +Diese Abhängigkeit verwenden wir nun wie folgt: + +{* ../../docs_src/dependencies/tutorial005_an_py310.py hl[23] *} + +/// info | Info + +Beachten Sie, dass wir in der *Pfadoperation-Funktion* nur eine einzige Abhängigkeit deklarieren, den `query_or_cookie_extractor`. + +Aber **FastAPI** wird wissen, dass es zuerst `query_extractor` auflösen muss, um dessen Resultat an `query_or_cookie_extractor` zu übergeben, wenn dieses aufgerufen wird. + +/// + +```mermaid +graph TB + +query_extractor(["query_extractor"]) +query_or_cookie_extractor(["query_or_cookie_extractor"]) + +read_query["/items/"] + +query_extractor --> query_or_cookie_extractor --> read_query +``` + +## Dieselbe Abhängigkeit mehrmals verwenden { #using-the-same-dependency-multiple-times } + +Wenn eine Ihrer Abhängigkeiten mehrmals für dieselbe *Pfadoperation* deklariert wird, beispielsweise wenn mehrere Abhängigkeiten eine gemeinsame Unterabhängigkeit haben, wird **FastAPI** diese Unterabhängigkeit nur einmal pro Request aufrufen. + +Und es speichert den zurückgegebenen Wert in einem „Cache“ und übergibt diesen gecachten Wert an alle „Dependanten“, die ihn in diesem spezifischen Request benötigen, anstatt die Abhängigkeit mehrmals für denselben Request aufzurufen. + +In einem fortgeschrittenen Szenario, bei dem Sie wissen, dass die Abhängigkeit bei jedem Schritt (möglicherweise mehrmals) in demselben Request aufgerufen werden muss, anstatt den zwischengespeicherten Wert zu verwenden, können Sie den Parameter `use_cache=False` festlegen, wenn Sie `Depends` verwenden: + +//// tab | Python 3.8+ + +```Python hl_lines="1" +async def needy_dependency(fresh_value: Annotated[str, Depends(get_value, use_cache=False)]): + return {"fresh_value": fresh_value} +``` + +//// + +//// tab | Python 3.8+ nicht annotiert + +/// tip | Tipp + +Bevorzugen Sie die `Annotated`-Version, falls möglich. + +/// + +```Python hl_lines="1" +async def needy_dependency(fresh_value: str = Depends(get_value, use_cache=False)): + return {"fresh_value": fresh_value} +``` + +//// + +## Zusammenfassung { #recap } + +Abgesehen von all den ausgefallenen Wörtern, die hier verwendet werden, ist das **Dependency Injection**-System recht simpel. + +Einfach Funktionen, die genauso aussehen wie *Pfadoperation-Funktionen*. + +Dennoch ist es sehr mächtig und ermöglicht Ihnen die Deklaration beliebig tief verschachtelter Abhängigkeits-„Graphen“ (Bäume). + +/// tip | Tipp + +All dies scheint angesichts dieser einfachen Beispiele möglicherweise nicht so nützlich zu sein. + +Aber Sie werden in den Kapiteln über **Sicherheit** sehen, wie nützlich das ist. + +Und Sie werden auch sehen, wie viel Code Sie dadurch einsparen. + +/// diff --git a/docs/de/docs/tutorial/encoder.md b/docs/de/docs/tutorial/encoder.md new file mode 100644 index 0000000..25dc6fa --- /dev/null +++ b/docs/de/docs/tutorial/encoder.md @@ -0,0 +1,35 @@ +# JSON-kompatibler Encoder { #json-compatible-encoder } + +Es gibt Fälle, da möchten Sie einen Datentyp (etwa ein Pydantic-Modell) in etwas konvertieren, das kompatibel mit JSON ist (etwa ein `dict`, eine `list`, usw.). + +Zum Beispiel, wenn Sie es in einer Datenbank speichern möchten. + +Dafür bietet **FastAPI** eine Funktion `jsonable_encoder()`. + +## `jsonable_encoder` verwenden { #using-the-jsonable-encoder } + +Stellen wir uns vor, Sie haben eine Datenbank `fake_db`, die nur JSON-kompatible Daten entgegennimmt. + +Sie akzeptiert zum Beispiel keine `datetime`-Objekte, da die nicht kompatibel mit JSON sind. + +Ein `datetime`-Objekt müsste also in einen `str` umgewandelt werden, der die Daten im ISO-Format enthält. + +Genauso würde die Datenbank kein Pydantic-Modell (ein Objekt mit Attributen) akzeptieren, sondern nur ein `dict`. + +Sie können für diese Fälle `jsonable_encoder` verwenden. + +Es nimmt ein Objekt entgegen, wie etwa ein Pydantic-Modell, und gibt eine JSON-kompatible Version zurück: + +{* ../../docs_src/encoder/tutorial001_py310.py hl[4,21] *} + +In diesem Beispiel wird das Pydantic-Modell in ein `dict`, und das `datetime`-Objekt in ein `str` konvertiert. + +Das Resultat dieses Aufrufs ist etwas, das mit Pythons Standard-`json.dumps()` kodiert werden kann. + +Es wird also kein großer `str` zurückgegeben, der die Daten im JSON-Format (als String) enthält. Es wird eine Python-Standarddatenstruktur (z. B. ein `dict`) zurückgegeben, mit Werten und Unterwerten, die alle mit JSON kompatibel sind. + +/// note | Hinweis + +`jsonable_encoder` wird tatsächlich von **FastAPI** intern verwendet, um Daten zu konvertieren. Aber es ist in vielen anderen Szenarien hilfreich. + +/// diff --git a/docs/de/docs/tutorial/extra-data-types.md b/docs/de/docs/tutorial/extra-data-types.md new file mode 100644 index 0000000..5002f05 --- /dev/null +++ b/docs/de/docs/tutorial/extra-data-types.md @@ -0,0 +1,62 @@ +# Zusätzliche Datentypen { #extra-data-types } + +Bisher haben Sie gängige Datentypen verwendet, wie zum Beispiel: + +* `int` +* `float` +* `str` +* `bool` + +Sie können aber auch komplexere Datentypen verwenden. + +Und Sie haben immer noch dieselbe Funktionalität wie bisher gesehen: + +* Großartige Editor-Unterstützung. +* Datenkonvertierung bei eingehenden Requests. +* Datenkonvertierung für Response-Daten. +* Datenvalidierung. +* Automatische Annotation und Dokumentation. + +## Andere Datentypen { #other-data-types } + +Hier sind einige der zusätzlichen Datentypen, die Sie verwenden können: + +* `UUID`: + * Ein standardmäßiger „universell eindeutiger Bezeichner“ („Universally Unique Identifier“), der in vielen Datenbanken und Systemen als ID üblich ist. + * Wird in Requests und Responses als `str` dargestellt. +* `datetime.datetime`: + * Ein Python-`datetime.datetime`. + * Wird in Requests und Responses als `str` im ISO 8601-Format dargestellt, etwa: `2008-09-15T15:53:00+05:00`. +* `datetime.date`: + * Python-`datetime.date`. + * Wird in Requests und Responses als `str` im ISO 8601-Format dargestellt, etwa: `2008-09-15`. +* `datetime.time`: + * Ein Python-`datetime.time`. + * Wird in Requests und Responses als `str` im ISO 8601-Format dargestellt, etwa: `14:23:55.003`. +* `datetime.timedelta`: + * Ein Python-`datetime.timedelta`. + * Wird in Requests und Responses als `float` der Gesamtsekunden dargestellt. + * Pydantic ermöglicht auch die Darstellung als „ISO 8601 Zeitdifferenz-Kodierung“, siehe die Dokumentation für weitere Informationen. +* `frozenset`: + * Wird in Requests und Responses wie ein `set` behandelt: + * Bei Requests wird eine Liste gelesen, Duplikate entfernt und in ein `set` umgewandelt. + * Bei Responses wird das `set` in eine `list` umgewandelt. + * Das generierte Schema zeigt an, dass die `set`-Werte eindeutig sind (unter Verwendung von JSON Schemas `uniqueItems`). +* `bytes`: + * Standard-Python-`bytes`. + * In Requests und Responses werden sie als `str` behandelt. + * Das generierte Schema wird anzeigen, dass es sich um einen `str` mit `binary` „Format“ handelt. +* `Decimal`: + * Standard-Python-`Decimal`. + * In Requests und Responses wird es wie ein `float` behandelt. +* Sie können alle gültigen Pydantic-Datentypen hier überprüfen: Pydantic-Datentypen. + +## Beispiel { #example } + +Hier ist ein Beispiel für eine *Pfadoperation* mit Parametern, die einige der oben genannten Typen verwenden. + +{* ../../docs_src/extra_data_types/tutorial001_an_py310.py hl[1,3,12:16] *} + +Beachten Sie, dass die Parameter innerhalb der Funktion ihren natürlichen Datentyp haben und Sie beispielsweise normale Datumsmanipulationen durchführen können, wie zum Beispiel: + +{* ../../docs_src/extra_data_types/tutorial001_an_py310.py hl[18:19] *} diff --git a/docs/de/docs/tutorial/extra-models.md b/docs/de/docs/tutorial/extra-models.md new file mode 100644 index 0000000..967e853 --- /dev/null +++ b/docs/de/docs/tutorial/extra-models.md @@ -0,0 +1,222 @@ +# Extramodelle { #extra-models } + +Im Anschluss an das vorherige Beispiel ist es üblich, mehr als ein zusammenhängendes Modell zu haben. + +Dies gilt insbesondere für Benutzermodelle, denn: + +* Das **Eingabemodell** muss ein Passwort enthalten können. +* Das **Ausgabemodell** sollte kein Passwort haben. +* Das **Datenbankmodell** müsste wahrscheinlich ein gehashtes Passwort haben. + +/// danger | Gefahr + +Speichern Sie niemals das Klartextpasswort eines Benutzers. Speichern Sie immer einen „sicheren Hash“, den Sie dann verifizieren können. + +Wenn Sie nicht wissen, was das ist, werden Sie in den [Sicherheitskapiteln](security/simple-oauth2.md#password-hashing){.internal-link target=_blank} lernen, was ein „Passworthash“ ist. + +/// + +## Mehrere Modelle { #multiple-models } + +Hier ist eine allgemeine Idee, wie die Modelle mit ihren Passwortfeldern aussehen könnten und an welchen Stellen sie verwendet werden: + +{* ../../docs_src/extra_models/tutorial001_py310.py hl[7,9,14,20,22,27:28,31:33,38:39] *} + +/// info | Info + +In Pydantic v1 hieß die Methode `.dict()`, in Pydantic v2 wurde sie deprecatet (aber weiterhin unterstützt) und in `.model_dump()` umbenannt. + +Die Beispiele hier verwenden `.dict()` für die Kompatibilität mit Pydantic v1, aber Sie sollten `.model_dump()` verwenden, wenn Sie Pydantic v2 verwenden können. + +/// + +### Über `**user_in.dict()` { #about-user-in-dict } + +#### Die `.dict()`-Methode von Pydantic { #pydantics-dict } + +`user_in` ist ein Pydantic-Modell der Klasse `UserIn`. + +Pydantic-Modelle haben eine `.dict()`-Methode, die ein `dict` mit den Daten des Modells zurückgibt. + +Wenn wir also ein Pydantic-Objekt `user_in` erstellen, etwa so: + +```Python +user_in = UserIn(username="john", password="secret", email="john.doe@example.com") +``` + +und dann aufrufen: + +```Python +user_dict = user_in.dict() +``` + +haben wir jetzt ein `dict` mit den Daten in der Variablen `user_dict` (es ist ein `dict` statt eines Pydantic-Modellobjekts). + +Und wenn wir aufrufen: + +```Python +print(user_dict) +``` + +würden wir ein Python-`dict` erhalten mit: + +```Python +{ + 'username': 'john', + 'password': 'secret', + 'email': 'john.doe@example.com', + 'full_name': None, +} +``` + +#### Ein `dict` entpacken { #unpacking-a-dict } + +Wenn wir ein `dict` wie `user_dict` nehmen und es einer Funktion (oder Klasse) mit `**user_dict` übergeben, wird Python es „entpacken“. Es wird die Schlüssel und Werte von `user_dict` direkt als Schlüsselwort-Argumente übergeben. + +Setzen wir also das `user_dict` von oben ein: + +```Python +UserInDB(**user_dict) +``` + +so ist das äquivalent zu: + +```Python +UserInDB( + username="john", + password="secret", + email="john.doe@example.com", + full_name=None, +) +``` + +Oder genauer gesagt, dazu, `user_dict` direkt zu verwenden, mit welchen Inhalten es auch immer in der Zukunft haben mag: + +```Python +UserInDB( + username = user_dict["username"], + password = user_dict["password"], + email = user_dict["email"], + full_name = user_dict["full_name"], +) +``` + +#### Ein Pydantic-Modell aus dem Inhalt eines anderen { #a-pydantic-model-from-the-contents-of-another } + +Da wir im obigen Beispiel `user_dict` von `user_in.dict()` bekommen haben, wäre dieser Code: + +```Python +user_dict = user_in.dict() +UserInDB(**user_dict) +``` + +gleichwertig zu: + +```Python +UserInDB(**user_in.dict()) +``` + +... weil `user_in.dict()` ein `dict` ist, und dann lassen wir Python es „entpacken“, indem wir es an `UserInDB` mit vorangestelltem `**` übergeben. + +Auf diese Weise erhalten wir ein Pydantic-Modell aus den Daten eines anderen Pydantic-Modells. + +#### Ein `dict` entpacken und zusätzliche Schlüsselwort-Argumente { #unpacking-a-dict-and-extra-keywords } + +Und dann fügen wir das zusätzliche Schlüsselwort-Argument `hashed_password=hashed_password` hinzu, wie in: + +```Python +UserInDB(**user_in.dict(), hashed_password=hashed_password) +``` + +... was so ist wie: + +```Python +UserInDB( + username = user_dict["username"], + password = user_dict["password"], + email = user_dict["email"], + full_name = user_dict["full_name"], + hashed_password = hashed_password, +) +``` + +/// warning | Achtung + +Die unterstützenden zusätzlichen Funktionen `fake_password_hasher` und `fake_save_user` dienen nur zur Demo eines möglichen Datenflusses, bieten jedoch natürlich keine echte Sicherheit. + +/// + +## Verdopplung vermeiden { #reduce-duplication } + +Die Reduzierung von Code-Verdoppelung ist eine der Kernideen von **FastAPI**. + +Da die Verdopplung von Code die Wahrscheinlichkeit von Fehlern, Sicherheitsproblemen, Problemen mit der Desynchronisation des Codes (wenn Sie an einer Stelle, aber nicht an der anderen aktualisieren) usw. erhöht. + +Und diese Modelle teilen alle eine Menge der Daten und verdoppeln Attributnamen und -typen. + +Wir könnten es besser machen. + +Wir können ein `UserBase`-Modell deklarieren, das als Basis für unsere anderen Modelle dient. Und dann können wir Unterklassen dieses Modells erstellen, die seine Attribute (Typdeklarationen, Validierung usw.) erben. + +Die ganze Datenkonvertierung, -validierung, -dokumentation usw. wird immer noch wie gewohnt funktionieren. + +Auf diese Weise können wir nur die Unterschiede zwischen den Modellen (mit Klartext-`password`, mit `hashed_password` und ohne Passwort) deklarieren: + +{* ../../docs_src/extra_models/tutorial002_py310.py hl[7,13:14,17:18,21:22] *} + +## `Union` oder `anyOf` { #union-or-anyof } + +Sie können deklarieren, dass eine Response eine `Union` mehrerer Typen ist, das bedeutet, dass die Response einer von ihnen ist. + +Dies wird in OpenAPI mit `anyOf` definiert. + +Um das zu tun, verwenden Sie den Standard-Python-Typhinweis `typing.Union`: + +/// note | Hinweis + +Wenn Sie eine `Union` definieren, listen Sie den spezifischeren Typ zuerst auf, gefolgt vom weniger spezifischen Typ. Im Beispiel unten steht `PlaneItem` vor `CarItem` in `Union[PlaneItem, CarItem]`. + +/// + +{* ../../docs_src/extra_models/tutorial003_py310.py hl[1,14:15,18:20,33] *} + + +### `Union` in Python 3.10 { #union-in-python-3-10 } + +In diesem Beispiel übergeben wir `Union[PlaneItem, CarItem]` als Wert des Arguments `response_model`. + +Da wir es als **Wert an ein Argument übergeben**, anstatt es in einer **Typannotation** zu verwenden, müssen wir `Union` verwenden, sogar in Python 3.10. + +Wäre es eine Typannotation gewesen, hätten wir den vertikalen Strich verwenden können, wie in: + +```Python +some_variable: PlaneItem | CarItem +``` + +Aber wenn wir das in der Zuweisung `response_model=PlaneItem | CarItem` machen, würden wir einen Fehler erhalten, weil Python versuchen würde, eine **ungültige Operation** zwischen `PlaneItem` und `CarItem` auszuführen, anstatt es als Typannotation zu interpretieren. + +## Liste von Modellen { #list-of-models } + +Auf die gleiche Weise können Sie Responses von Listen von Objekten deklarieren. + +Dafür verwenden Sie Pythons Standard-`typing.List` (oder nur `list` in Python 3.9 und höher): + +{* ../../docs_src/extra_models/tutorial004_py39.py hl[18] *} + + +## Response mit beliebigem `dict` { #response-with-arbitrary-dict } + +Sie können auch eine Response deklarieren, die ein beliebiges `dict` zurückgibt, indem Sie nur die Typen der Schlüssel und Werte ohne ein Pydantic-Modell deklarieren. + +Dies ist nützlich, wenn Sie die gültigen Feld-/Attributnamen nicht im Voraus kennen (die für ein Pydantic-Modell benötigt werden würden). + +In diesem Fall können Sie `typing.Dict` verwenden (oder nur `dict` in Python 3.9 und höher): + +{* ../../docs_src/extra_models/tutorial005_py39.py hl[6] *} + + +## Zusammenfassung { #recap } + +Verwenden Sie gerne mehrere Pydantic-Modelle und vererben Sie je nach Bedarf. + +Sie brauchen kein einzelnes Datenmodell pro Einheit, wenn diese Einheit in der Lage sein muss, verschiedene „Zustände“ zu haben. Wie im Fall der Benutzer-„Einheit“ mit einem Zustand einschließlich `password`, `password_hash` und ohne Passwort. diff --git a/docs/de/docs/tutorial/first-steps.md b/docs/de/docs/tutorial/first-steps.md new file mode 100644 index 0000000..71912d0 --- /dev/null +++ b/docs/de/docs/tutorial/first-steps.md @@ -0,0 +1,380 @@ +# Erste Schritte { #first-steps } + +Die einfachste FastAPI-Datei könnte wie folgt aussehen: + +{* ../../docs_src/first_steps/tutorial001.py *} + +Kopieren Sie das in eine Datei `main.py`. + +Starten Sie den Live-Server: + +
+ +```console +$ fastapi dev main.py + + FastAPI Starting development server 🚀 + + Searching for package file structure from directories + with __init__.py files + Importing from /home/user/code/awesomeapp + + module 🐍 main.py + + code Importing the FastAPI app object from the module with + the following code: + + from main import app + + app Using import string: main:app + + server Server started at http://127.0.0.1:8000 + server Documentation at http://127.0.0.1:8000/docs + + tip Running in development mode, for production use: + fastapi run + + Logs: + + 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 [383138] using WatchFiles + INFO Started server process [383153] + INFO Waiting for application startup. + INFO Application startup complete. +``` + +
+ +In der Konsolenausgabe sollte es eine Zeile geben, die ungefähr so aussieht: + +```hl_lines="4" +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +``` + +Diese Zeile zeigt die URL, unter der Ihre App auf Ihrem lokalen Computer bereitgestellt wird. + +### Es testen { #check-it } + +Öffnen Sie Ihren Browser unter http://127.0.0.1:8000. + +Sie werden die JSON-Response sehen: + +```JSON +{"message": "Hello World"} +``` + +### Interaktive API-Dokumentation { #interactive-api-docs } + +Gehen Sie als Nächstes auf http://127.0.0.1:8000/docs. + +Sie werden die automatisch erzeugte, interaktive API-Dokumentation sehen (bereitgestellt durch Swagger UI): + +![Swagger UI](https://fastapi.tiangolo.com/img/index/index-01-swagger-ui-simple.png) + +### Alternative API-Dokumentation { #alternative-api-docs } + +Gehen Sie nun auf http://127.0.0.1:8000/redoc. + +Dort sehen Sie die alternative, automatische Dokumentation (bereitgestellt durch ReDoc): + +![ReDoc](https://fastapi.tiangolo.com/img/index/index-02-redoc-simple.png) + +### OpenAPI { #openapi } + +**FastAPI** generiert ein „Schema“ mit all Ihren APIs unter Verwendung des **OpenAPI**-Standards zur Definition von APIs. + +#### „Schema“ { #schema } + +Ein „Schema“ ist eine Definition oder Beschreibung von etwas. Nicht der eigentliche Code, der es implementiert, sondern lediglich eine abstrakte Beschreibung. + +#### API-„Schema“ { #api-schema } + +In diesem Fall ist OpenAPI eine Spezifikation, die vorschreibt, wie ein Schema für Ihre API zu definieren ist. + +Diese Schemadefinition enthält Ihre API-Pfade, die möglichen Parameter, welche diese entgegennehmen, usw. + +#### Daten-„Schema“ { #data-schema } + +Der Begriff „Schema“ kann sich auch auf die Form von Daten beziehen, wie z. B. einen JSON-Inhalt. + +In diesem Fall sind die JSON-Attribute und deren Datentypen, usw. gemeint. + +#### OpenAPI und JSON Schema { #openapi-and-json-schema } + +OpenAPI definiert ein API-Schema für Ihre API. Dieses Schema enthält Definitionen (oder „Schemas“) der Daten, die von Ihrer API unter Verwendung von **JSON Schema**, dem Standard für JSON-Datenschemata, gesendet und empfangen werden. + +#### Die `openapi.json` testen { #check-the-openapi-json } + +Falls Sie wissen möchten, wie das rohe OpenAPI-Schema aussieht: FastAPI generiert automatisch ein JSON (Schema) mit den Beschreibungen Ihrer gesamten API. + +Sie können es direkt einsehen unter: http://127.0.0.1:8000/openapi.json. + +Es wird ein JSON angezeigt, welches ungefähr so aussieht: + +```JSON +{ + "openapi": "3.1.0", + "info": { + "title": "FastAPI", + "version": "0.1.0" + }, + "paths": { + "/items/": { + "get": { + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + + + +... +``` + +#### Wofür OpenAPI gedacht ist { #what-is-openapi-for } + +Das OpenAPI-Schema ist die Grundlage für die beiden enthaltenen interaktiven Dokumentationssysteme. + +Es gibt dutzende Alternativen, die alle auf OpenAPI basieren. Sie können jede dieser Alternativen problemlos zu Ihrer mit **FastAPI** erstellten Anwendung hinzufügen. + +Ebenfalls können Sie es verwenden, um automatisch Code für Clients zu generieren, die mit Ihrer API kommunizieren. Zum Beispiel für Frontend-, Mobile- oder IoT-Anwendungen. + +### Ihre App deployen (optional) { #deploy-your-app-optional } + +Sie können optional Ihre FastAPI-App in der FastAPI Cloud deployen, treten Sie der Warteliste bei, falls Sie es noch nicht getan haben. 🚀 + +Wenn Sie bereits ein **FastAPI Cloud**-Konto haben (wir haben Sie von der Warteliste eingeladen 😉), können Sie Ihre Anwendung mit einem Befehl deployen. + +Vor dem Deployen, stellen Sie sicher, dass Sie eingeloggt sind: + +
+ +```console +$ fastapi login + +You are logged in to FastAPI Cloud 🚀 +``` + +
+ +Dann stellen Sie Ihre App bereit: + +
+ +```console +$ fastapi deploy + +Deploying to FastAPI Cloud... + +✅ Deployment successful! + +🐔 Ready the chicken! Your app is ready at https://myapp.fastapicloud.dev +``` + +
+ +Das war's! Jetzt können Sie Ihre App unter dieser URL aufrufen. ✨ + +## Zusammenfassung, Schritt für Schritt { #recap-step-by-step } + +### Schritt 1: `FastAPI` importieren { #step-1-import-fastapi } + +{* ../../docs_src/first_steps/tutorial001.py hl[1] *} + +`FastAPI` ist eine Python-Klasse, die die gesamte Funktionalität für Ihre API bereitstellt. + +/// note | Technische Details + +`FastAPI` ist eine Klasse, die direkt von `Starlette` erbt. + +Sie können alle Starlette-Funktionalitäten auch mit `FastAPI` nutzen. + +/// + +### Schritt 2: Erzeugen einer `FastAPI`-„Instanz“ { #step-2-create-a-fastapi-instance } + +{* ../../docs_src/first_steps/tutorial001.py hl[3] *} + +In diesem Beispiel ist die Variable `app` eine „Instanz“ der Klasse `FastAPI`. + +Dies wird der Hauptinteraktionspunkt für die Erstellung all Ihrer APIs sein. + +### Schritt 3: Erstellen einer *Pfadoperation* { #step-3-create-a-path-operation } + +#### Pfad { #path } + +„Pfad“ bezieht sich hier auf den letzten Teil der URL, beginnend mit dem ersten `/`. + +In einer URL wie: + +``` +https://example.com/items/foo +``` + +... wäre der Pfad folglich: + +``` +/items/foo +``` + +/// info | Info + +Ein „Pfad“ wird häufig auch als „Endpunkt“ oder „Route“ bezeichnet. + +/// + +Bei der Erstellung einer API ist der „Pfad“ die wichtigste Möglichkeit zur Trennung von „Anliegen“ und „Ressourcen“. + +#### Operation { #operation } + +„Operation“ bezieht sich hier auf eine der HTTP-„Methoden“. + +Eine von diesen: + +* `POST` +* `GET` +* `PUT` +* `DELETE` + +... und die etwas Exotischeren: + +* `OPTIONS` +* `HEAD` +* `PATCH` +* `TRACE` + +Im HTTP-Protokoll können Sie mit jedem Pfad über eine (oder mehrere) dieser „Methoden“ kommunizieren. + +--- + +Bei der Erstellung von APIs verwenden Sie normalerweise diese spezifischen HTTP-Methoden, um eine bestimmte Aktion durchzuführen. + +Normalerweise verwenden Sie: + +* `POST`: um Daten zu erzeugen (create). +* `GET`: um Daten zu lesen (read). +* `PUT`: um Daten zu aktualisieren (update). +* `DELETE`: um Daten zu löschen (delete). + +In OpenAPI wird folglich jede dieser HTTP-Methoden als „Operation“ bezeichnet. + +Wir werden sie auch „**Operationen**“ nennen. + +#### Definieren eines *Pfadoperation-Dekorators* { #define-a-path-operation-decorator } + +{* ../../docs_src/first_steps/tutorial001.py hl[6] *} + +Das `@app.get("/")` sagt **FastAPI**, dass die Funktion direkt darunter für die Bearbeitung von Requests zuständig ist, die an: + +* den Pfad `/` +* unter der Verwendung der get-Operation gehen + +/// info | `@decorator` Info + +Diese `@something`-Syntax wird in Python „Dekorator“ genannt. + +Sie platzieren ihn über einer Funktion. Wie ein hübscher, dekorativer Hut (daher kommt wohl der Begriff). + +Ein „Dekorator“ nimmt die darunter stehende Funktion und macht etwas damit. + +In unserem Fall teilt dieser Dekorator **FastAPI** mit, dass die folgende Funktion mit dem **Pfad** `/` und der **Operation** `get` zusammenhängt. + +Dies ist der „**Pfadoperation-Dekorator**“. + +/// + +Sie können auch die anderen Operationen verwenden: + +* `@app.post()` +* `@app.put()` +* `@app.delete()` + +Und die exotischeren: + +* `@app.options()` +* `@app.head()` +* `@app.patch()` +* `@app.trace()` + +/// tip | Tipp + +Es steht Ihnen frei, jede Operation (HTTP-Methode) so zu verwenden, wie Sie es möchten. + +**FastAPI** erzwingt keine bestimmte Bedeutung. + +Die hier aufgeführten Informationen dienen als Leitfaden und sind nicht verbindlich. + +Wenn Sie beispielsweise GraphQL verwenden, führen Sie normalerweise alle Aktionen nur mit „POST“-Operationen durch. + +/// + +### Schritt 4: Definieren der **Pfadoperation-Funktion** { #step-4-define-the-path-operation-function } + +Das ist unsere „**Pfadoperation-Funktion**“: + +* **Pfad**: ist `/`. +* **Operation**: ist `get`. +* **Funktion**: ist die Funktion direkt unter dem „Dekorator“ (unter `@app.get("/")`). + +{* ../../docs_src/first_steps/tutorial001.py hl[7] *} + +Dies ist eine Python-Funktion. + +Sie wird von **FastAPI** immer dann aufgerufen, wenn sie einen Request an die URL „`/`“ mittels einer `GET`-Operation erhält. + +In diesem Fall handelt es sich um eine `async`-Funktion. + +--- + +Sie könnten sie auch als normale Funktion anstelle von `async def` definieren: + +{* ../../docs_src/first_steps/tutorial003.py hl[7] *} + +/// note | Hinweis + +Wenn Sie den Unterschied nicht kennen, lesen Sie [Async: *„In Eile?“*](../async.md#in-a-hurry){.internal-link target=_blank}. + +/// + +### Schritt 5: den Inhalt zurückgeben { #step-5-return-the-content } + +{* ../../docs_src/first_steps/tutorial001.py hl[8] *} + +Sie können ein `dict`, eine `list`, einzelne Werte wie `str`, `int`, usw. zurückgeben. + +Sie können auch Pydantic-Modelle zurückgeben (dazu später mehr). + +Es gibt viele andere Objekte und Modelle, die automatisch zu JSON konvertiert werden (einschließlich ORMs, usw.). Versuchen Sie, Ihre Lieblingsobjekte zu verwenden. Es ist sehr wahrscheinlich, dass sie bereits unterstützt werden. + +### Schritt 6: Deployen { #step-6-deploy-it } + +Stellen Sie Ihre App in der **FastAPI Cloud** mit einem Befehl bereit: `fastapi deploy`. 🎉 + +#### Über FastAPI Cloud { #about-fastapi-cloud } + +**FastAPI Cloud** wird vom selben Autor und Team hinter **FastAPI** entwickelt. + +Es vereinfacht den Prozess des Erstellens, Deployens und des Zugriffs auf eine API mit minimalem Aufwand. + +Es bringt die gleiche **Developer-Experience** beim Erstellen von Apps mit FastAPI auch zum **Deployment** in der Cloud. 🎉 + +FastAPI Cloud ist der Hauptsponsor und Finanzierer der „FastAPI and friends“ Open-Source-Projekte. ✨ + +#### Zu anderen Cloudanbietern deployen { #deploy-to-other-cloud-providers } + +FastAPI ist Open Source und basiert auf Standards. Sie können FastAPI-Apps bei jedem Cloudanbieter Ihrer Wahl deployen. + +Folgen Sie den Anleitungen Ihres Cloudanbieters, um dort FastAPI-Apps bereitzustellen. 🤓 + +## Zusammenfassung { #recap } + +* Importieren Sie `FastAPI`. +* Erstellen Sie eine `app` Instanz. +* Schreiben Sie einen **Pfadoperation-Dekorator** unter Verwendung von Dekoratoren wie `@app.get("/")`. +* Definieren Sie eine **Pfadoperation-Funktion**, zum Beispiel `def root(): ...`. +* Starten Sie den Entwicklungsserver mit dem Befehl `fastapi dev`. +* Optional: Ihre App mit `fastapi deploy` deployen. diff --git a/docs/de/docs/tutorial/handling-errors.md b/docs/de/docs/tutorial/handling-errors.md new file mode 100644 index 0000000..58e4607 --- /dev/null +++ b/docs/de/docs/tutorial/handling-errors.md @@ -0,0 +1,255 @@ +# Fehler behandeln { #handling-errors } + +Es gibt viele Situationen, in denen Sie einem Client, der Ihre API nutzt, einen Fehler mitteilen müssen. + +Dieser Client könnte ein Browser mit einem Frontend sein, ein Code von jemand anderem, ein IoT-Gerät usw. + +Sie könnten dem Client mitteilen müssen, dass: + +* Der Client nicht genügend Berechtigungen für diese Operation hat. +* Der Client keinen Zugriff auf diese Ressource hat. +* Die Ressource, auf die der Client versucht hat, zuzugreifen, nicht existiert. +* usw. + +In diesen Fällen würden Sie normalerweise einen **HTTP-Statuscode** im Bereich **400** (von 400 bis 499) zurückgeben. + +Dies ist vergleichbar mit den HTTP-Statuscodes im Bereich 200 (von 200 bis 299). Diese „200“-Statuscodes bedeuten, dass der Request in irgendeiner Weise erfolgreich war. + +Die Statuscodes im Bereich 400 bedeuten hingegen, dass es einen Fehler seitens des Clients gab. + +Erinnern Sie sich an all diese **„404 Not Found“** Fehler (und Witze)? + +## `HTTPException` verwenden { #use-httpexception } + +Um HTTP-Responses mit Fehlern an den Client zurückzugeben, verwenden Sie `HTTPException`. + +### `HTTPException` importieren { #import-httpexception } + +{* ../../docs_src/handling_errors/tutorial001.py hl[1] *} + +### Eine `HTTPException` in Ihrem Code auslösen { #raise-an-httpexception-in-your-code } + +`HTTPException` ist eine normale Python-Exception mit zusätzlichen Daten, die für APIs relevant sind. + +Weil es eine Python-Exception ist, geben Sie sie nicht zurück (`return`), sondern lösen sie aus (`raise`). + +Das bedeutet auch, wenn Sie sich innerhalb einer Hilfsfunktion befinden, die Sie innerhalb Ihrer *Pfadoperation-Funktion* aufrufen, und Sie die `HTTPException` aus dieser Hilfsfunktion heraus auslösen, wird der restliche Code in der *Pfadoperation-Funktion* nicht ausgeführt. Der Request wird sofort abgebrochen und der HTTP-Error der `HTTPException` wird an den Client gesendet. + +Der Vorteil des Auslösens einer Exception gegenüber dem Zurückgeben eines Wertes wird im Abschnitt über Abhängigkeiten und Sicherheit deutlicher werden. + +In diesem Beispiel lösen wir eine Exception mit einem Statuscode von `404` aus, wenn der Client einen Artikel mit einer nicht existierenden ID anfordert: + +{* ../../docs_src/handling_errors/tutorial001.py hl[11] *} + +### Die resultierende Response { #the-resulting-response } + +Wenn der Client `http://example.com/items/foo` anfordert (ein `item_id` `"foo"`), erhält dieser Client einen HTTP-Statuscode 200 und diese JSON-Response: + +```JSON +{ + "item": "The Foo Wrestlers" +} +``` + +Aber wenn der Client `http://example.com/items/bar` anfordert (ein nicht-existierendes `item_id` `"bar"`), erhält er einen HTTP-Statuscode 404 (der „Not Found“-Error) und eine JSON-Response wie: + +```JSON +{ + "detail": "Item not found" +} +``` + +/// tip | Tipp + +Wenn Sie eine `HTTPException` auslösen, können Sie dem Parameter `detail` jeden Wert übergeben, der in JSON konvertiert werden kann, nicht nur `str`. + +Sie könnten ein `dict`, eine `list`, usw. übergeben. + +Diese werden von **FastAPI** automatisch gehandhabt und in JSON konvertiert. + +/// + +## Benutzerdefinierte Header hinzufügen { #add-custom-headers } + +Es gibt Situationen, in denen es nützlich ist, dem HTTP-Error benutzerdefinierte Header hinzuzufügen. Zum Beispiel in einigen Sicherheitsszenarien. + +Sie werden es wahrscheinlich nicht direkt in Ihrem Code verwenden müssen. + +Aber falls Sie es für ein fortgeschrittenes Szenario benötigen, können Sie benutzerdefinierte Header hinzufügen: + +{* ../../docs_src/handling_errors/tutorial002.py hl[14] *} + +## Benutzerdefinierte Exceptionhandler installieren { #install-custom-exception-handlers } + +Sie können benutzerdefinierte Exceptionhandler mit den gleichen Exception-Werkzeugen von Starlette hinzufügen. + +Angenommen, Sie haben eine benutzerdefinierte Exception `UnicornException`, die Sie (oder eine Bibliothek, die Sie verwenden) `raise`n könnten. + +Und Sie möchten diese Exception global mit FastAPI handhaben. + +Sie könnten einen benutzerdefinierten Exceptionhandler mit `@app.exception_handler()` hinzufügen: + +{* ../../docs_src/handling_errors/tutorial003.py hl[5:7,13:18,24] *} + +Hier, wenn Sie `/unicorns/yolo` anfordern, wird die *Pfadoperation* eine `UnicornException` `raise`n. + +Aber diese wird von `unicorn_exception_handler` gehandhabt. + +Sie erhalten also einen sauberen Fehler mit einem HTTP-Statuscode von `418` und dem JSON-Inhalt: + +```JSON +{"message": "Oops! yolo did something. There goes a rainbow..."} +``` + +/// note | Technische Details + +Sie könnten auch `from starlette.requests import Request` und `from starlette.responses import JSONResponse` verwenden. + +**FastAPI** bietet dieselben `starlette.responses` auch via `fastapi.responses` an, nur als Annehmlichkeit für Sie, den Entwickler. Aber die meisten verfügbaren Responses kommen direkt von Starlette. Dasselbe gilt für `Request`. + +/// + +## Die Default-Exceptionhandler überschreiben { #override-the-default-exception-handlers } + +**FastAPI** hat einige Default-Exceptionhandler. + +Diese Handler sind dafür verantwortlich, die Default-JSON-Responses zurückzugeben, wenn Sie eine `HTTPException` `raise`n und wenn der Request ungültige Daten enthält. + +Sie können diese Exceptionhandler mit Ihren eigenen überschreiben. + +### Überschreiben von Request-Validierungs-Exceptions { #override-request-validation-exceptions } + +Wenn ein Request ungültige Daten enthält, löst **FastAPI** intern einen `RequestValidationError` aus. + +Und es enthält auch einen Default-Exceptionhandler für diesen. + +Um diesen zu überschreiben, importieren Sie den `RequestValidationError` und verwenden Sie ihn mit `@app.exception_handler(RequestValidationError)`, um den Exceptionhandler zu dekorieren. + +Der Exceptionhandler erhält einen `Request` und die Exception. + +{* ../../docs_src/handling_errors/tutorial004.py hl[2,14:16] *} + +Wenn Sie nun zu `/items/foo` gehen, erhalten Sie anstelle des standardmäßigen JSON-Fehlers mit: + +```JSON +{ + "detail": [ + { + "loc": [ + "path", + "item_id" + ], + "msg": "value is not a valid integer", + "type": "type_error.integer" + } + ] +} +``` + +eine Textversion mit: + +``` +1 validation error +path -> item_id + value is not a valid integer (type=type_error.integer) +``` + +#### `RequestValidationError` vs. `ValidationError` { #requestvalidationerror-vs-validationerror } + +/// warning | Achtung + +Dies sind technische Details, die Sie überspringen können, wenn sie für Sie jetzt nicht wichtig sind. + +/// + +`RequestValidationError` ist eine Unterklasse von Pydantics `ValidationError`. + +**FastAPI** verwendet diesen so, dass, wenn Sie ein Pydantic-Modell in `response_model` verwenden und Ihre Daten einen Fehler haben, Sie den Fehler in Ihrem Log sehen. + +Aber der Client/Benutzer wird ihn nicht sehen. Stattdessen erhält der Client einen „Internal Server Error“ mit einem HTTP-Statuscode `500`. + +Es sollte so sein, denn wenn Sie einen Pydantic `ValidationError` in Ihrer *Response* oder irgendwo anders in Ihrem Code haben (nicht im *Request* des Clients), ist es tatsächlich ein Fehler in Ihrem Code. + +Und während Sie den Fehler beheben, sollten Ihre Clients/Benutzer keinen Zugriff auf interne Informationen über den Fehler haben, da das eine Sicherheitslücke aufdecken könnte. + +### Überschreiben des `HTTPException`-Fehlerhandlers { #override-the-httpexception-error-handler } + +Auf die gleiche Weise können Sie den `HTTPException`-Handler überschreiben. + +Zum Beispiel könnten Sie eine Klartext-Response statt JSON für diese Fehler zurückgeben wollen: + +{* ../../docs_src/handling_errors/tutorial004.py hl[3:4,9:11,22] *} + +/// note | Technische Details + +Sie könnten auch `from starlette.responses import PlainTextResponse` verwenden. + +**FastAPI** bietet dieselben `starlette.responses` auch via `fastapi.responses` an, nur als Annehmlichkeit für Sie, den Entwickler. Aber die meisten verfügbaren Responses kommen direkt von Starlette. + +/// + +### Verwenden des `RequestValidationError`-Bodys { #use-the-requestvalidationerror-body } + +Der `RequestValidationError` enthält den empfangenen `body` mit den ungültigen Daten. + +Sie könnten diesen während der Entwicklung Ihrer Anwendung verwenden, um den Body zu loggen und zu debuggen, ihn an den Benutzer zurückzugeben usw. + +{* ../../docs_src/handling_errors/tutorial005.py hl[14] *} + +Versuchen Sie nun, einen ungültigen Artikel zu senden: + +```JSON +{ + "title": "towel", + "size": "XL" +} +``` + +Sie erhalten eine Response, die Ihnen sagt, dass die Daten ungültig sind und die den empfangenen Body enthält: + +```JSON hl_lines="12-15" +{ + "detail": [ + { + "loc": [ + "body", + "size" + ], + "msg": "value is not a valid integer", + "type": "type_error.integer" + } + ], + "body": { + "title": "towel", + "size": "XL" + } +} +``` + +#### FastAPIs `HTTPException` vs. Starlettes `HTTPException` { #fastapis-httpexception-vs-starlettes-httpexception } + +**FastAPI** hat seine eigene `HTTPException`. + +Und die `HTTPException`-Fehlerklasse von **FastAPI** erbt von der `HTTPException`-Fehlerklasse von Starlette. + +Der einzige Unterschied besteht darin, dass die `HTTPException` von **FastAPI** beliebige JSON-konvertierbare Daten für das `detail`-Feld akzeptiert, während die `HTTPException` von Starlette nur Strings dafür akzeptiert. + +Sie können also weiterhin die `HTTPException` von **FastAPI** wie üblich in Ihrem Code auslösen. + +Aber wenn Sie einen Exceptionhandler registrieren, sollten Sie ihn für die `HTTPException` von Starlette registrieren. + +Auf diese Weise, wenn irgendein Teil des internen Codes von Starlette, oder eine Starlette-Erweiterung oder ein Plug-in, eine Starlette `HTTPException` auslöst, wird Ihr Handler in der Lage sein, diese abzufangen und zu handhaben. + +Um in diesem Beispiel beide `HTTPException`s im selben Code zu haben, wird die Exception von Starlette zu `StarletteHTTPException` umbenannt: + +```Python +from starlette.exceptions import HTTPException as StarletteHTTPException +``` + +### Die Exceptionhandler von **FastAPI** wiederverwenden { #reuse-fastapis-exception-handlers } + +Wenn Sie die Exception zusammen mit den gleichen Default-Exceptionhandlern von **FastAPI** verwenden möchten, können Sie die Default-Exceptionhandler aus `fastapi.exception_handlers` importieren und wiederverwenden: + +{* ../../docs_src/handling_errors/tutorial006.py hl[2:5,15,21] *} + +In diesem Beispiel geben Sie nur den Fehler mit einer sehr ausdrucksstarken Nachricht aus, aber Sie verstehen das Prinzip. Sie können die Exception verwenden und dann einfach die Default-Exceptionhandler wiederverwenden. diff --git a/docs/de/docs/tutorial/header-param-models.md b/docs/de/docs/tutorial/header-param-models.md new file mode 100644 index 0000000..8c1bf61 --- /dev/null +++ b/docs/de/docs/tutorial/header-param-models.md @@ -0,0 +1,72 @@ +# Header-Parameter-Modelle { #header-parameter-models } + +Wenn Sie eine Gruppe verwandter **Header-Parameter** haben, können Sie ein **Pydantic-Modell** erstellen, um diese zu deklarieren. + +Dadurch können Sie das **Modell an mehreren Stellen wiederverwenden** und auch Validierungen und Metadaten für alle Parameter gleichzeitig deklarieren. 😎 + +/// note | Hinweis + +Dies wird seit FastAPI Version `0.115.0` unterstützt. 🤓 + +/// + +## Header-Parameter mit einem Pydantic-Modell { #header-parameters-with-a-pydantic-model } + +Deklarieren Sie die erforderlichen **Header-Parameter** in einem **Pydantic-Modell** und dann den Parameter als `Header`: + +{* ../../docs_src/header_param_models/tutorial001_an_py310.py hl[9:14,18] *} + +**FastAPI** wird die Daten für **jedes Feld** aus den **Headern** des Request extrahieren und Ihnen das von Ihnen definierte Pydantic-Modell geben. + +## Die Dokumentation testen { #check-the-docs } + +Sie können die erforderlichen Header in der Dokumentationsoberfläche unter `/docs` sehen: + +
+ +
+ +## Zusätzliche Header verbieten { #forbid-extra-headers } + +In einigen speziellen Anwendungsfällen (wahrscheinlich nicht sehr häufig) möchten Sie möglicherweise die **Header einschränken**, die Sie erhalten möchten. + +Sie können Pydantics Modellkonfiguration verwenden, um `extra` Felder zu verbieten (`forbid`): + +{* ../../docs_src/header_param_models/tutorial002_an_py310.py hl[10] *} + +Wenn ein Client versucht, einige **zusätzliche Header** zu senden, erhält er eine **Error-Response**. + +Zum Beispiel, wenn der Client versucht, einen `tool`-Header mit einem Wert von `plumbus` zu senden, erhält er eine **Error-Response**, die ihm mitteilt, dass der Header-Parameter `tool` nicht erlaubt ist: + +```json +{ + "detail": [ + { + "type": "extra_forbidden", + "loc": ["header", "tool"], + "msg": "Extra inputs are not permitted", + "input": "plumbus", + } + ] +} +``` + +## Automatische Umwandlung von Unterstrichen deaktivieren { #disable-convert-underscores } + +Ähnlich wie bei regulären Header-Parametern werden bei der Verwendung von Unterstrichen in den Parameternamen diese **automatisch in Bindestriche umgewandelt**. + +Wenn Sie beispielsweise einen Header-Parameter `save_data` im Code haben, wird der erwartete HTTP-Header `save-data` sein, und er wird auch so in der Dokumentation angezeigt. + +Falls Sie aus irgendeinem Grund diese automatische Umwandlung deaktivieren müssen, können Sie dies auch für Pydantic-Modelle für Header-Parameter tun. + +{* ../../docs_src/header_param_models/tutorial003_an_py310.py hl[19] *} + +/// warning | Achtung + +Bevor Sie `convert_underscores` auf `False` setzen, bedenken Sie, dass einige HTTP-Proxies und -Server die Verwendung von Headern mit Unterstrichen nicht zulassen. + +/// + +## Zusammenfassung { #summary } + +Sie können **Pydantic-Modelle** verwenden, um **Header** in **FastAPI** zu deklarieren. 😎 diff --git a/docs/de/docs/tutorial/header-params.md b/docs/de/docs/tutorial/header-params.md new file mode 100644 index 0000000..5c0bb3f --- /dev/null +++ b/docs/de/docs/tutorial/header-params.md @@ -0,0 +1,91 @@ +# Header-Parameter { #header-parameters } + +Sie können Header-Parameter genauso definieren, wie Sie `Query`-, `Path`- und `Cookie`-Parameter definieren. + +## `Header` importieren { #import-header } + +Importieren Sie zuerst `Header`: + +{* ../../docs_src/header_params/tutorial001_an_py310.py hl[3] *} + +## `Header`-Parameter deklarieren { #declare-header-parameters } + +Deklarieren Sie dann die Header-Parameter mit derselben Struktur wie bei `Path`, `Query` und `Cookie`. + +Sie können den Defaultwert sowie alle zusätzlichen Validierungs- oder Annotationsparameter definieren: + +{* ../../docs_src/header_params/tutorial001_an_py310.py hl[9] *} + +/// note | Technische Details + +`Header` ist eine „Schwester“-Klasse von `Path`, `Query` und `Cookie`. Sie erbt ebenfalls von der gemeinsamen `Param`-Klasse. + +Aber denken Sie daran, dass bei der Nutzung von `Query`, `Path`, `Header` und anderen Importen aus `fastapi`, diese tatsächlich Funktionen sind, die spezielle Klassen zurückgeben. + +/// + +/// info | Info + +Um Header zu deklarieren, müssen Sie `Header` verwenden, da die Parameter sonst als Query-Parameter interpretiert werden würden. + +/// + +## Automatische Konvertierung { #automatic-conversion } + +`Header` bietet etwas zusätzliche Funktionalität im Vergleich zu `Path`, `Query` und `Cookie`. + +Die meisten Standard-Header sind durch ein „Bindestrich“-Zeichen getrennt, auch bekannt als „Minus-Symbol“ (`-`). + +Aber eine Variable wie `user-agent` ist in Python ungültig. + +Daher wird `Header` standardmäßig die Zeichen des Parameter-Namens von Unterstrich (`_`) zu Bindestrich (`-`) konvertieren, um die Header zu extrahieren und zu dokumentieren. + +Außerdem ist Groß-/Klein­schrei­bung in HTTP-Headern nicht relevant, daher können Sie sie im Standard-Python-Stil (auch bekannt als „snake_case“) deklarieren. + +Sie können also `user_agent` verwenden, wie Sie es normalerweise im Python-Code tun würden, anstatt die Anfangsbuchstaben wie bei `User_Agent` großzuschreiben oder Ähnliches. + +Wenn Sie aus irgendeinem Grund die automatische Konvertierung von Unterstrichen zu Bindestrichen deaktivieren müssen, setzen Sie den Parameter `convert_underscores` von `Header` auf `False`: + +{* ../../docs_src/header_params/tutorial002_an_py310.py hl[10] *} + +/// warning | Achtung + +Bevor Sie `convert_underscores` auf `False` setzen, bedenken Sie, dass manche HTTP-Proxys und Server die Verwendung von Headern mit Unterstrichen nicht erlauben. + +/// + +## Doppelte Header { #duplicate-headers } + +Es ist möglich, doppelte Header zu empfangen. Damit ist gemeint, denselben Header mit mehreren Werten. + +Sie können solche Fälle definieren, indem Sie in der Typdeklaration eine Liste verwenden. + +Sie erhalten dann alle Werte von diesem doppelten Header als Python-`list`. + +Um beispielsweise einen `X-Token`-Header zu deklarieren, der mehrmals vorkommen kann, können Sie schreiben: + +{* ../../docs_src/header_params/tutorial003_an_py310.py hl[9] *} + +Wenn Sie mit dieser *Pfadoperation* kommunizieren und zwei HTTP-Header senden, wie: + +``` +X-Token: foo +X-Token: bar +``` + +Dann wäre die Response: + +```JSON +{ + "X-Token values": [ + "bar", + "foo" + ] +} +``` + +## Zusammenfassung { #recap } + +Deklarieren Sie Header mit `Header`, wobei Sie dasselbe gängige Muster wie bei `Query`, `Path` und `Cookie` verwenden. + +Und machen Sie sich keine Sorgen um Unterstriche in Ihren Variablen, **FastAPI** wird sich darum kümmern, sie zu konvertieren. diff --git a/docs/de/docs/tutorial/index.md b/docs/de/docs/tutorial/index.md new file mode 100644 index 0000000..70a6b6a --- /dev/null +++ b/docs/de/docs/tutorial/index.md @@ -0,0 +1,95 @@ +# Tutorial – Benutzerhandbuch { #tutorial-user-guide } + +Dieses Tutorial zeigt Ihnen Schritt für Schritt, wie Sie **FastAPI** mit den meisten seiner Funktionen verwenden können. + +Jeder Abschnitt baut schrittweise auf den vorhergehenden auf, ist jedoch in einzelne Themen gegliedert, sodass Sie direkt zu einem bestimmten Thema übergehen können, um Ihre spezifischen API-Anforderungen zu lösen. + +Es ist auch so gestaltet, dass es als zukünftige Referenz dient, sodass Sie jederzeit zurückkommen und genau das sehen, was Sie benötigen. + +## Den Code ausführen { #run-the-code } + +Alle Codeblöcke können kopiert und direkt verwendet werden (es sind tatsächlich getestete Python-Dateien). + +Um eines der Beispiele auszuführen, kopieren Sie den Code in eine Datei `main.py` und starten Sie `fastapi dev` mit: + +
+ +```console +$ fastapi dev main.py + + FastAPI Starting development server 🚀 + + Searching for package file structure from directories + with __init__.py files + Importing from /home/user/code/awesomeapp + + module 🐍 main.py + + code Importing the FastAPI app object from the module with + the following code: + + from main import app + + app Using import string: main:app + + server Server started at http://127.0.0.1:8000 + server Documentation at http://127.0.0.1:8000/docs + + tip Running in development mode, for production use: + fastapi run + + Logs: + + 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 [383138] using WatchFiles + INFO Started server process [383153] + INFO Waiting for application startup. + INFO Application startup complete. +``` + +
+ +Es wird **dringend empfohlen**, den Code zu schreiben oder zu kopieren, ihn zu bearbeiten und lokal auszuführen. + +Die Verwendung in Ihrem eigenen Editor zeigt Ihnen die Vorteile von FastAPI am besten, wenn Sie sehen, wie wenig Code Sie schreiben müssen, all die Typprüfungen, die automatische Vervollständigung usw. + +--- + +## FastAPI installieren { #install-fastapi } + +Der erste Schritt besteht darin, FastAPI zu installieren. + +Stellen Sie sicher, dass Sie eine [virtuelle Umgebung](../virtual-environments.md){.internal-link target=_blank} erstellen, sie aktivieren und dann **FastAPI installieren**: + +
+ +```console +$ pip install "fastapi[standard]" + +---> 100% +``` + +
+ +/// note | Hinweis + +Wenn Sie mit `pip install "fastapi[standard]"` installieren, werden einige optionale Standard-Abhängigkeiten mit installiert, einschließlich `fastapi-cloud-cli`, welches Ihnen das Deployment in der FastAPI Cloud ermöglicht. + +Wenn Sie diese optionalen Abhängigkeiten nicht haben möchten, können Sie stattdessen `pip install fastapi` installieren. + +Wenn Sie die Standard-Abhängigkeiten, aber ohne das `fastapi-cloud-cli` installieren möchten, können Sie mit `pip install "fastapi[standard-no-fastapi-cloud-cli]"` installieren. + +/// + +## Handbuch für fortgeschrittene Benutzer { #advanced-user-guide } + +Es gibt auch ein **Handbuch für fortgeschrittene Benutzer**, das Sie nach diesem **Tutorial – Benutzerhandbuch** lesen können. + +Das **Handbuch für fortgeschrittene Benutzer** baut hierauf auf, verwendet dieselben Konzepte und bringt Ihnen einige zusätzliche Funktionen bei. + +Sie sollten jedoch zuerst das **Tutorial – Benutzerhandbuch** lesen (was Sie gerade tun). + +Es ist so konzipiert, dass Sie mit dem **Tutorial – Benutzerhandbuch** eine vollständige Anwendung erstellen können und diese dann je nach Bedarf mit einigen der zusätzlichen Ideen aus dem **Handbuch für fortgeschrittene Benutzer** erweitern können. diff --git a/docs/de/docs/tutorial/metadata.md b/docs/de/docs/tutorial/metadata.md new file mode 100644 index 0000000..44d02e6 --- /dev/null +++ b/docs/de/docs/tutorial/metadata.md @@ -0,0 +1,120 @@ +# Metadaten und Dokumentations-URLs { #metadata-and-docs-urls } + +Sie können mehrere Metadaten-Konfigurationen in Ihrer **FastAPI**-Anwendung anpassen. + +## Metadaten für die API { #metadata-for-api } + +Sie können die folgenden Felder festlegen, die in der OpenAPI-Spezifikation und in den Benutzeroberflächen der automatischen API-Dokumentation verwendet werden: + +| Parameter | Typ | Beschreibung | +|------------|------|-------------| +| `title` | `str` | Der Titel der API. | +| `summary` | `str` | Eine kurze Zusammenfassung der API. Verfügbar seit OpenAPI 3.1.0, FastAPI 0.99.0. | +| `description` | `str` | Eine kurze Beschreibung der API. Kann Markdown verwenden. | +| `version` | `string` | Die Version der API. Das ist die Version Ihrer eigenen Anwendung, nicht die von OpenAPI. Zum Beispiel `2.5.0`. | +| `terms_of_service` | `str` | Eine URL zu den Nutzungsbedingungen für die API. Falls angegeben, muss es sich um eine URL handeln. | +| `contact` | `dict` | Die Kontaktinformationen für die freigegebene API. Kann mehrere Felder enthalten.
contact-Felder
ParameterTypBeschreibung
namestrDer identifizierende Name der Kontaktperson/Organisation.
urlstrDie URL, die auf die Kontaktinformationen verweist. MUSS im Format einer URL vorliegen.
emailstrDie E-Mail-Adresse der Kontaktperson/Organisation. MUSS im Format einer E-Mail-Adresse vorliegen.
| +| `license_info` | `dict` | Die Lizenzinformationen für die freigegebene API. Kann mehrere Felder enthalten.
license_info-Felder
ParameterTypBeschreibung
namestrERFORDERLICH (wenn eine license_info festgelegt ist). Der für die API verwendete Lizenzname.
identifierstrEin SPDX-Lizenzausdruck für die API. Das Feld identifier und das Feld url schließen sich gegenseitig aus. Verfügbar seit OpenAPI 3.1.0, FastAPI 0.99.0.
urlstrEine URL zur Lizenz, die für die API verwendet wird. MUSS im Format einer URL vorliegen.
| + +Sie können diese wie folgt setzen: + +{* ../../docs_src/metadata/tutorial001.py hl[3:16, 19:32] *} + +/// tip | Tipp + +Sie können Markdown im Feld `description` verwenden, und es wird in der Ausgabe gerendert. + +/// + +Mit dieser Konfiguration würde die automatische API-Dokumentation wie folgt aussehen: + + + +## Lizenzkennung { #license-identifier } + +Seit OpenAPI 3.1.0 und FastAPI 0.99.0 können Sie die `license_info` auch mit einem `identifier` anstelle einer `url` festlegen. + +Zum Beispiel: + +{* ../../docs_src/metadata/tutorial001_1.py hl[31] *} + +## Metadaten für Tags { #metadata-for-tags } + +Sie können auch zusätzliche Metadaten für die verschiedenen Tags hinzufügen, die zum Gruppieren Ihrer Pfadoperationen verwendet werden, mit dem Parameter `openapi_tags`. + +Er nimmt eine Liste entgegen, die für jeden Tag ein Dictionary enthält. + +Jedes Dictionary kann Folgendes enthalten: + +* `name` (**erforderlich**): ein `str` mit demselben Tag-Namen, den Sie im Parameter `tags` in Ihren *Pfadoperationen* und `APIRouter`n verwenden. +* `description`: ein `str` mit einer kurzen Beschreibung für das Tag. Sie kann Markdown enthalten und wird in der Benutzeroberfläche der Dokumentation angezeigt. +* `externalDocs`: ein `dict`, das externe Dokumentation beschreibt mit: + * `description`: ein `str` mit einer kurzen Beschreibung für die externe Dokumentation. + * `url` (**erforderlich**): ein `str` mit der URL für die externe Dokumentation. + +### Metadaten für Tags erstellen { #create-metadata-for-tags } + +Versuchen wir es mit einem Beispiel mit Tags für `users` und `items`. + +Erstellen Sie Metadaten für Ihre Tags und übergeben Sie diese an den Parameter `openapi_tags`: + +{* ../../docs_src/metadata/tutorial004.py hl[3:16,18] *} + +Beachten Sie, dass Sie Markdown innerhalb der Beschreibungen verwenden können. Zum Beispiel wird „login“ in Fettschrift (**login**) und „fancy“ in Kursivschrift (_fancy_) angezeigt. + +/// tip | Tipp + +Sie müssen nicht für alle von Ihnen verwendeten Tags Metadaten hinzufügen. + +/// + +### Ihre Tags verwenden { #use-your-tags } + +Verwenden Sie den Parameter `tags` mit Ihren *Pfadoperationen* (und `APIRouter`n), um diese verschiedenen Tags zuzuweisen: + +{* ../../docs_src/metadata/tutorial004.py hl[21,26] *} + +/// info | Info + +Lesen Sie mehr zu Tags unter [Pfadoperation-Konfiguration](path-operation-configuration.md#tags){.internal-link target=_blank}. + +/// + +### Die Dokumentation testen { #check-the-docs } + +Wenn Sie nun die Dokumentation ansehen, werden dort alle zusätzlichen Metadaten angezeigt: + + + +### Reihenfolge der Tags { #order-of-tags } + +Die Reihenfolge der Tag-Metadaten-Dictionarys definiert auch die Reihenfolge, in der diese in der Benutzeroberfläche der Dokumentation angezeigt werden. + +Auch wenn beispielsweise `users` im Alphabet nach `items` kommt, wird es vor diesen angezeigt, da wir deren Metadaten als erstes Dictionary der Liste hinzugefügt haben. + +## OpenAPI-URL { #openapi-url } + +Standardmäßig wird das OpenAPI-Schema unter `/openapi.json` bereitgestellt. + +Sie können das aber mit dem Parameter `openapi_url` konfigurieren. + +Um beispielsweise festzulegen, dass es unter `/api/v1/openapi.json` bereitgestellt wird: + +{* ../../docs_src/metadata/tutorial002.py hl[3] *} + +Wenn Sie das OpenAPI-Schema vollständig deaktivieren möchten, können Sie `openapi_url=None` festlegen, wodurch auch die Dokumentationsbenutzeroberflächen deaktiviert werden, die es verwenden. + +## Dokumentations-URLs { #docs-urls } + +Sie können die beiden enthaltenen Dokumentationsbenutzeroberflächen konfigurieren: + +* **Swagger UI**: bereitgestellt unter `/docs`. + * Sie können deren URL mit dem Parameter `docs_url` festlegen. + * Sie können sie deaktivieren, indem Sie `docs_url=None` festlegen. +* **ReDoc**: bereitgestellt unter `/redoc`. + * Sie können deren URL mit dem Parameter `redoc_url` festlegen. + * Sie können sie deaktivieren, indem Sie `redoc_url=None` festlegen. + +Um beispielsweise Swagger UI so einzustellen, dass sie unter `/documentation` bereitgestellt wird, und ReDoc zu deaktivieren: + +{* ../../docs_src/metadata/tutorial003.py hl[3] *} diff --git a/docs/de/docs/tutorial/middleware.md b/docs/de/docs/tutorial/middleware.md new file mode 100644 index 0000000..6410deb --- /dev/null +++ b/docs/de/docs/tutorial/middleware.md @@ -0,0 +1,95 @@ +# Middleware { #middleware } + +Sie können Middleware zu **FastAPI**-Anwendungen hinzufügen. + +Eine „Middleware“ ist eine Funktion, die mit jedem **Request** arbeitet, bevor er von einer bestimmten *Pfadoperation* verarbeitet wird. Und auch mit jeder **Response**, bevor sie zurückgegeben wird. + +* Sie nimmt jeden **Request** entgegen, der an Ihre Anwendung gesendet wird. +* Sie kann dann etwas mit diesem **Request** tun oder beliebigen Code ausführen. +* Dann gibt sie den **Request** zur Verarbeitung durch den Rest der Anwendung weiter (durch eine bestimmte *Pfadoperation*). +* Sie nimmt dann die **Response** entgegen, die von der Anwendung generiert wurde (durch eine bestimmte *Pfadoperation*). +* Sie kann etwas mit dieser **Response** tun oder beliebigen Code ausführen. +* Dann gibt sie die **Response** zurück. + +/// note | Technische Details + +Wenn Sie Abhängigkeiten mit `yield` haben, wird der Exit-Code *nach* der Middleware ausgeführt. + +Wenn es Hintergrundtasks gab (dies wird später im [Hintergrundtasks](background-tasks.md){.internal-link target=_blank}-Abschnitt behandelt), werden sie *nach* allen Middlewares ausgeführt. + +/// + +## Eine Middleware erstellen { #create-a-middleware } + +Um eine Middleware zu erstellen, verwenden Sie den Dekorator `@app.middleware("http")` über einer Funktion. + +Die Middleware-Funktion erhält: + +* Den `request`. +* Eine Funktion `call_next`, die den `request` als Parameter erhält. + * Diese Funktion gibt den `request` an die entsprechende *Pfadoperation* weiter. + * Dann gibt es die von der entsprechenden *Pfadoperation* generierte `response` zurück. +* Sie können die `response` dann weiter modifizieren, bevor Sie sie zurückgeben. + +{* ../../docs_src/middleware/tutorial001.py hl[8:9,11,14] *} + +/// tip | Tipp + +Beachten Sie, dass benutzerdefinierte proprietäre Header hinzugefügt werden können unter Verwendung des `X-`-Präfixes. + +Wenn Sie jedoch benutzerdefinierte Header haben, die ein Client in einem Browser sehen soll, müssen Sie sie zu Ihrer CORS-Konfiguration ([CORS (Cross-Origin Resource Sharing)](cors.md){.internal-link target=_blank}) hinzufügen, indem Sie den Parameter `expose_headers` verwenden, der in der Starlettes CORS-Dokumentation dokumentiert ist. + +/// + +/// note | Technische Details + +Sie könnten auch `from starlette.requests import Request` verwenden. + +**FastAPI** bietet es als Komfort für Sie, den Entwickler, an. Aber es stammt direkt von Starlette. + +/// + +### Vor und nach der `response` { #before-and-after-the-response } + +Sie können Code hinzufügen, der mit dem `request` ausgeführt wird, bevor dieser von einer beliebigen *Pfadoperation* empfangen wird. + +Und auch nachdem die `response` generiert wurde, bevor sie zurückgegeben wird. + +Sie könnten beispielsweise einen benutzerdefinierten Header `X-Process-Time` hinzufügen, der die Zeit in Sekunden enthält, die benötigt wurde, um den Request zu verarbeiten und eine Response zu generieren: + +{* ../../docs_src/middleware/tutorial001.py hl[10,12:13] *} + +/// tip | Tipp + +Hier verwenden wir `time.perf_counter()` anstelle von `time.time()`, da es für diese Anwendungsfälle präziser sein kann. 🤓 + +/// + +## Ausführungsreihenfolge bei mehreren Middlewares { #multiple-middleware-execution-order } + +Wenn Sie mehrere Middlewares hinzufügen, entweder mit dem `@app.middleware()` Dekorator oder der Methode `app.add_middleware()`, umschließt jede neue Middleware die Anwendung und bildet einen Stapel. Die zuletzt hinzugefügte Middleware ist die *äußerste*, und die erste ist die *innerste*. + +Auf dem Requestpfad läuft die *äußerste* Middleware zuerst. + +Auf dem Responsepfad läuft sie zuletzt. + +Zum Beispiel: + +```Python +app.add_middleware(MiddlewareA) +app.add_middleware(MiddlewareB) +``` + +Dies führt zu folgender Ausführungsreihenfolge: + +* **Request**: MiddlewareB → MiddlewareA → Route + +* **Response**: Route → MiddlewareA → MiddlewareB + +Dieses Stapelverhalten stellt sicher, dass Middlewares in einer vorhersehbaren und kontrollierbaren Reihenfolge ausgeführt werden. + +## Andere Middlewares { #other-middlewares } + +Sie können später mehr über andere Middlewares im [Handbuch für fortgeschrittene Benutzer: Fortgeschrittene Middleware](../advanced/middleware.md){.internal-link target=_blank} lesen. + +In der nächsten Sektion erfahren Sie, wie Sie CORS mit einer Middleware behandeln können. diff --git a/docs/de/docs/tutorial/path-operation-configuration.md b/docs/de/docs/tutorial/path-operation-configuration.md new file mode 100644 index 0000000..c483f4e --- /dev/null +++ b/docs/de/docs/tutorial/path-operation-configuration.md @@ -0,0 +1,107 @@ +# Pfadoperation-Konfiguration { #path-operation-configuration } + +Es gibt mehrere Parameter, die Sie Ihrem *Pfadoperation-Dekorator* übergeben können, um ihn zu konfigurieren. + +/// warning | Achtung + +Beachten Sie, dass diese Parameter direkt dem *Pfadoperation-Dekorator* übergeben werden, nicht der *Pfadoperation-Funktion*. + +/// + +## Response-Statuscode { #response-status-code } + +Sie können den (HTTP-)`status_code` definieren, der in der Response Ihrer *Pfadoperation* verwendet werden soll. + +Sie können direkt den `int`-Code übergeben, etwa `404`. + +Aber falls Sie sich nicht mehr erinnern, wofür jeder Nummerncode steht, können Sie die Abkürzungs-Konstanten in `status` verwenden: + +{* ../../docs_src/path_operation_configuration/tutorial001_py310.py hl[1,15] *} + +Dieser Statuscode wird in der Response verwendet und zum OpenAPI-Schema hinzugefügt. + +/// note | Technische Details + +Sie können auch `from starlette import status` verwenden. + +**FastAPI** bietet dieselben `starlette.status`-Codes auch via `fastapi.status` an, als Annehmlichkeit für Sie, den Entwickler. Sie kommen aber direkt von Starlette. + +/// + +## Tags { #tags } + +Sie können Ihrer *Pfadoperation* Tags hinzufügen, indem Sie dem Parameter `tags` eine `list`e von `str`s übergeben (in der Regel nur ein `str`): + +{* ../../docs_src/path_operation_configuration/tutorial002_py310.py hl[15,20,25] *} + +Diese werden zum OpenAPI-Schema hinzugefügt und von den automatischen Dokumentations-Benutzeroberflächen verwendet: + + + +### Tags mittels Enumeration { #tags-with-enums } + +Wenn Sie eine große Anwendung haben, können sich am Ende **viele Tags** anhäufen, und Sie möchten sicherstellen, dass Sie für verwandte *Pfadoperationen* immer den **gleichen Tag** verwenden. + +In diesem Fall macht es Sinn, die Tags in einem `Enum` zu speichern. + +**FastAPI** unterstützt das auf die gleiche Weise wie einfache Strings: + +{* ../../docs_src/path_operation_configuration/tutorial002b.py hl[1,8:10,13,18] *} + +## Zusammenfassung und Beschreibung { #summary-and-description } + +Sie können eine `summary` und eine `description` hinzufügen: + +{* ../../docs_src/path_operation_configuration/tutorial003_py310.py hl[18:19] *} + +## Beschreibung mittels Docstring { #description-from-docstring } + +Da Beschreibungen oft mehrere Zeilen lang sind, können Sie die Beschreibung der *Pfadoperation* im Docstring der Funktion deklarieren, und **FastAPI** wird sie daraus auslesen. + +Sie können Markdown im Docstring schreiben, es wird korrekt interpretiert und angezeigt (unter Berücksichtigung der Einrückung des Docstring). + +{* ../../docs_src/path_operation_configuration/tutorial004_py310.py hl[17:25] *} + +Es wird in der interaktiven Dokumentation verwendet: + + + +## Beschreibung der Response { #response-description } + +Sie können die Response mit dem Parameter `response_description` beschreiben: + +{* ../../docs_src/path_operation_configuration/tutorial005_py310.py hl[19] *} + +/// info | Info + +Beachten Sie, dass sich `response_description` speziell auf die Response bezieht, während `description` sich generell auf die *Pfadoperation* bezieht. + +/// + +/// check | Testen + +OpenAPI verlangt, dass jede *Pfadoperation* über eine Beschreibung der Response verfügt. + +Daher, wenn Sie keine vergeben, wird **FastAPI** automatisch eine für „Erfolgreiche Response“ erstellen. + +/// + + + +## Eine *Pfadoperation* deprecaten { #deprecate-a-path-operation } + +Wenn Sie eine *Pfadoperation* als deprecatet kennzeichnen möchten, ohne sie zu entfernen, fügen Sie den Parameter `deprecated` hinzu: + +{* ../../docs_src/path_operation_configuration/tutorial006.py hl[16] *} + +Sie wird in der interaktiven Dokumentation gut sichtbar als deprecatet markiert werden: + + + +Vergleichen Sie, wie deprecatete und nicht-deprecatete *Pfadoperationen* aussehen: + + + +## Zusammenfassung { #recap } + +Sie können auf einfache Weise Metadaten für Ihre *Pfadoperationen* definieren, indem Sie den *Pfadoperation-Dekoratoren* Parameter hinzufügen. diff --git a/docs/de/docs/tutorial/path-params-numeric-validations.md b/docs/de/docs/tutorial/path-params-numeric-validations.md new file mode 100644 index 0000000..5b74749 --- /dev/null +++ b/docs/de/docs/tutorial/path-params-numeric-validations.md @@ -0,0 +1,154 @@ +# Pfad-Parameter und Validierung von Zahlen { #path-parameters-and-numeric-validations } + +So wie Sie mit `Query` für Query-Parameter zusätzliche Validierungen und Metadaten deklarieren können, können Sie mit `Path` die gleichen Validierungen und Metadaten für Pfad-Parameter deklarieren. + +## `Path` importieren { #import-path } + +Importieren Sie zuerst `Path` von `fastapi`, und importieren Sie `Annotated`: + +{* ../../docs_src/path_params_numeric_validations/tutorial001_an_py310.py hl[1,3] *} + +/// info | Info + +FastAPI hat in Version 0.95.0 Unterstützung für `Annotated` hinzugefügt und es zur Verwendung empfohlen. + +Wenn Sie eine ältere Version haben, würden Fehler angezeigt werden, wenn Sie versuchen, `Annotated` zu verwenden. + +Stellen Sie sicher, dass Sie [FastAPI aktualisieren](../deployment/versions.md#upgrading-the-fastapi-versions){.internal-link target=_blank}, auf mindestens Version 0.95.1, bevor Sie `Annotated` verwenden. + +/// + +## Metadaten deklarieren { #declare-metadata } + +Sie können dieselben Parameter wie für `Query` deklarieren. + +Um zum Beispiel einen `title`-Metadaten-Wert für den Pfad-Parameter `item_id` zu deklarieren, können Sie schreiben: + +{* ../../docs_src/path_params_numeric_validations/tutorial001_an_py310.py hl[10] *} + +/// note | Hinweis + +Ein Pfad-Parameter ist immer erforderlich, da er Teil des Pfads sein muss. Selbst wenn Sie ihn mit `None` deklarieren oder einen Defaultwert setzen, würde das nichts ändern, er wäre dennoch immer erforderlich. + +/// + +## Die Parameter sortieren, wie Sie möchten { #order-the-parameters-as-you-need } + +/// tip | Tipp + +Das ist wahrscheinlich nicht so wichtig oder notwendig, wenn Sie `Annotated` verwenden. + +/// + +Angenommen, Sie möchten den Query-Parameter `q` als erforderlichen `str` deklarieren. + +Und Sie müssen sonst nichts anderes für diesen Parameter deklarieren, Sie brauchen also `Query` nicht wirklich. + +Aber Sie müssen dennoch `Path` für den `item_id`-Pfad-Parameter verwenden. Und aus irgendeinem Grund möchten Sie `Annotated` nicht verwenden. + +Python wird sich beschweren, wenn Sie einen Wert mit einem „Default“ vor einem Wert ohne „Default“ setzen. + +Aber Sie können die Reihenfolge ändern und den Wert ohne Default (den Query-Parameter `q`) zuerst setzen. + +Für **FastAPI** spielt es keine Rolle. Es erkennt die Parameter anhand ihrer Namen, Typen und Default-Deklarationen (`Query`, `Path`, usw.), es kümmert sich nicht um die Reihenfolge. + +Sie können Ihre Funktion also so deklarieren: + +{* ../../docs_src/path_params_numeric_validations/tutorial002.py hl[7] *} + +Aber bedenken Sie, dass Sie dieses Problem nicht haben, wenn Sie `Annotated` verwenden, da es nicht darauf ankommt, dass Sie keine Funktionsparameter-Defaultwerte für `Query()` oder `Path()` verwenden. + +{* ../../docs_src/path_params_numeric_validations/tutorial002_an_py39.py *} + +## Die Parameter sortieren, wie Sie möchten: Tricks { #order-the-parameters-as-you-need-tricks } + +/// tip | Tipp + +Das ist wahrscheinlich nicht so wichtig oder notwendig, wenn Sie `Annotated` verwenden. + +/// + +Hier ist ein **kleiner Trick**, der nützlich sein kann, obwohl Sie ihn nicht oft benötigen werden. + +Wenn Sie: + +* den `q`-Query-Parameter sowohl ohne `Query` als auch ohne Defaultwert deklarieren +* den Pfad-Parameter `item_id` mit `Path` deklarieren +* sie in einer anderen Reihenfolge haben +* nicht `Annotated` verwenden + +... möchten, dann hat Python eine kleine Spezial-Syntax dafür. + +Übergeben Sie `*`, als den ersten Parameter der Funktion. + +Python wird nichts mit diesem `*` machen, aber es wird wissen, dass alle folgenden Parameter als Schlüsselwortargumente (Schlüssel-Wert-Paare) verwendet werden sollen, auch bekannt als kwargs. Selbst wenn diese keinen Defaultwert haben. + +{* ../../docs_src/path_params_numeric_validations/tutorial003.py hl[7] *} + +### Besser mit `Annotated` { #better-with-annotated } + +Bedenken Sie, dass Sie, wenn Sie `Annotated` verwenden, da Sie keine Funktionsparameter-Defaultwerte verwenden, dieses Problem nicht haben werden und wahrscheinlich nicht `*` verwenden müssen. + +{* ../../docs_src/path_params_numeric_validations/tutorial003_an_py39.py hl[10] *} + +## Validierung von Zahlen: Größer oder gleich { #number-validations-greater-than-or-equal } + +Mit `Query` und `Path` (und anderen, die Sie später sehen werden) können Sie Zahlenbeschränkungen deklarieren. + +Hier, mit `ge=1`, muss `item_id` eine ganze Zahl sein, die „`g`reater than or `e`qual to“ (größer oder gleich) `1` ist. + +{* ../../docs_src/path_params_numeric_validations/tutorial004_an_py39.py hl[10] *} + +## Validierung von Zahlen: Größer und kleiner oder gleich { #number-validations-greater-than-and-less-than-or-equal } + +Das Gleiche gilt für: + +* `gt`: `g`reater `t`han (größer als) +* `le`: `l`ess than or `e`qual (kleiner oder gleich) + +{* ../../docs_src/path_params_numeric_validations/tutorial005_an_py39.py hl[10] *} + +## Validierung von Zahlen: Floats, größer und kleiner { #number-validations-floats-greater-than-and-less-than } + +Zahlenvalidierung funktioniert auch für `float`-Werte. + +Hier wird es wichtig, in der Lage zu sein, gt und nicht nur ge zu deklarieren. Da Sie mit dieser Option erzwingen können, dass ein Wert größer als `0` sein muss, selbst wenn er kleiner als `1` ist. + +Also wäre `0.5` ein gültiger Wert. Aber `0.0` oder `0` nicht. + +Und das Gleiche gilt für lt. + +{* ../../docs_src/path_params_numeric_validations/tutorial006_an_py39.py hl[13] *} + +## Zusammenfassung { #recap } + +Mit `Query`, `Path` (und anderen, die Sie noch nicht gesehen haben) können Sie Metadaten und Stringvalidierungen auf die gleichen Weisen deklarieren wie in [Query-Parameter und Stringvalidierungen](query-params-str-validations.md){.internal-link target=_blank} beschrieben. + +Und Sie können auch Zahlenvalidierungen deklarieren: + +* `gt`: `g`reater `t`han (größer als) +* `ge`: `g`reater than or `e`qual (größer oder gleich) +* `lt`: `l`ess `t`han (kleiner als) +* `le`: `l`ess than or `e`qual (kleiner oder gleich) + +/// info | Info + +`Query`, `Path`, und andere Klassen, die Sie später sehen werden, sind Unterklassen einer gemeinsamen `Param`-Klasse. + +Alle von ihnen teilen die gleichen Parameter für zusätzliche Validierung und Metadaten, die Sie gesehen haben. + +/// + +/// note | Technische Details + +Wenn Sie `Query`, `Path` und andere von `fastapi` importieren, sind sie tatsächlich Funktionen. + +Die, wenn sie aufgerufen werden, Instanzen von Klassen mit demselben Namen zurückgeben. + +Sie importieren also `Query`, was eine Funktion ist. Und wenn Sie sie aufrufen, gibt sie eine Instanz einer Klasse zurück, die auch `Query` genannt wird. + +Diese Funktionen existieren (statt die Klassen direkt zu verwenden), damit Ihr Editor keine Fehlermeldungen über ihre Typen ausgibt. + +Auf diese Weise können Sie Ihren normalen Editor und Ihre Programmier-Tools verwenden, ohne besondere Einstellungen vornehmen zu müssen, um diese Fehlermeldungen stummzuschalten. + +/// diff --git a/docs/de/docs/tutorial/path-params.md b/docs/de/docs/tutorial/path-params.md new file mode 100644 index 0000000..1db288f --- /dev/null +++ b/docs/de/docs/tutorial/path-params.md @@ -0,0 +1,257 @@ +# Pfad-Parameter { #path-parameters } + +Sie können Pfad-„Parameter“ oder -„Variablen“ mit der gleichen Syntax deklarieren, welche in Python-Formatstrings verwendet wird: + +{* ../../docs_src/path_params/tutorial001.py hl[6:7] *} + +Der Wert des Pfad-Parameters `item_id` wird Ihrer Funktion als das Argument `item_id` übergeben. + +Wenn Sie dieses Beispiel ausführen und auf http://127.0.0.1:8000/items/foo gehen, sehen Sie als Response: + +```JSON +{"item_id":"foo"} +``` + +## Pfad-Parameter mit Typen { #path-parameters-with-types } + +Sie können den Typ eines Pfad-Parameters in der Argumentliste der Funktion deklarieren, mit Standard-Python-Typannotationen: + +{* ../../docs_src/path_params/tutorial002.py hl[7] *} + +In diesem Fall wird `item_id` als `int` deklariert, also als Ganzzahl. + +/// check | Testen + +Dadurch erhalten Sie Editor-Unterstützung innerhalb Ihrer Funktion, mit Fehlerprüfungen, Codevervollständigung, usw. + +/// + +## Daten-Konversion { #data-conversion } + +Wenn Sie dieses Beispiel ausführen und Ihren Browser unter http://127.0.0.1:8000/items/3 öffnen, sehen Sie als Response: + +```JSON +{"item_id":3} +``` + +/// check | Testen + +Beachten Sie, dass der Wert, den Ihre Funktion erhält und zurückgibt, die Zahl `3` ist, also ein `int`. Nicht der String `"3"`, also ein `str`. + +Sprich, mit dieser Typdeklaration wird **FastAPI** den Request automatisch „parsen“. + +/// + +## Datenvalidierung { #data-validation } + +Wenn Sie aber im Browser http://127.0.0.1:8000/items/foo besuchen, erhalten Sie eine hübsche HTTP-Fehlermeldung: + +```JSON +{ + "detail": [ + { + "type": "int_parsing", + "loc": [ + "path", + "item_id" + ], + "msg": "Input should be a valid integer, unable to parse string as an integer", + "input": "foo" + } + ] +} +``` + +Der Pfad-Parameter `item_id` hatte den Wert `"foo"`, was kein `int` ist. + +Die gleiche Fehlermeldung würde angezeigt werden, wenn Sie ein `float` (also eine Kommazahl) statt eines `int`s übergeben würden, wie etwa in: http://127.0.0.1:8000/items/4.2 + +/// check | Testen + +Sprich, mit der gleichen Python-Typdeklaration gibt Ihnen **FastAPI** Datenvalidierung. + +Beachten Sie, dass die Fehlermeldung auch direkt die Stelle anzeigt, wo die Validierung nicht erfolgreich war. + +Das ist unglaublich hilfreich, wenn Sie Code entwickeln und debuggen, welcher mit Ihrer API interagiert. + +/// + +## Dokumentation { #documentation } + +Wenn Sie die Seite http://127.0.0.1:8000/docs in Ihrem Browser öffnen, sehen Sie eine automatische, interaktive API-Dokumentation: + + + +/// check | Testen + +Wiederum, mit dieser gleichen Python-Typdeklaration gibt Ihnen **FastAPI** eine automatische, interaktive Dokumentation (verwendet die Swagger-Benutzeroberfläche). + +Beachten Sie, dass der Pfad-Parameter dort als Ganzzahl deklariert ist. + +/// + +## Nützliche Standards, alternative Dokumentation { #standards-based-benefits-alternative-documentation } + +Und weil das generierte Schema vom OpenAPI-Standard kommt, gibt es viele kompatible Tools. + +Zum Beispiel bietet **FastAPI** selbst eine alternative API-Dokumentation (verwendet ReDoc), welche Sie unter http://127.0.0.1:8000/redoc einsehen können: + + + +Und viele weitere kompatible Tools. Inklusive Codegenerierung für viele Sprachen. + +## Pydantic { #pydantic } + +Die ganze Datenvalidierung wird hinter den Kulissen von Pydantic durchgeführt, Sie profitieren also von dessen Vorteilen. Und Sie wissen, dass Sie in guten Händen sind. + +Sie können für Typdeklarationen auch `str`, `float`, `bool` und viele andere komplexe Datentypen verwenden. + +Mehrere davon werden wir in den nächsten Kapiteln erkunden. + +## Die Reihenfolge ist wichtig { #order-matters } + +Wenn Sie *Pfadoperationen* erstellen, haben Sie manchmal einen fixen Pfad. + +Etwa `/users/me`, um Daten über den aktuellen Benutzer zu erhalten. + +Und Sie haben auch einen Pfad `/users/{user_id}`, um Daten über einen spezifischen Benutzer zu erhalten, mittels einer Benutzer-ID. + +Weil *Pfadoperationen* in ihrer Reihenfolge ausgewertet werden, müssen Sie sicherstellen, dass der Pfad `/users/me` vor `/users/{user_id}` deklariert wurde: + +{* ../../docs_src/path_params/tutorial003.py hl[6,11] *} + +Ansonsten würde der Pfad für `/users/{user_id}` auch `/users/me` auswerten, und annehmen, dass ein Parameter `user_id` mit dem Wert `"me"` übergeben wurde. + +Sie können eine Pfadoperation auch nicht erneut definieren: + +{* ../../docs_src/path_params/tutorial003b.py hl[6,11] *} + +Die erste Definition wird immer verwendet werden, da ihr Pfad zuerst übereinstimmt. + +## Vordefinierte Parameterwerte { #predefined-values } + +Wenn Sie eine *Pfadoperation* haben, welche einen *Pfad-Parameter* hat, aber Sie wollen, dass dessen gültige Werte vordefiniert sind, können Sie ein Standard-Python `Enum` verwenden. + +### Eine `Enum`-Klasse erstellen { #create-an-enum-class } + +Importieren Sie `Enum` und erstellen Sie eine Unterklasse, die von `str` und `Enum` erbt. + +Indem Sie von `str` erben, weiß die API-Dokumentation, dass die Werte vom Typ `str` sein müssen, und wird in der Lage sein, korrekt zu rendern. + +Erstellen Sie dann Klassen-Attribute mit festgelegten Werten, welches die erlaubten Werte sein werden: + +{* ../../docs_src/path_params/tutorial005.py hl[1,6:9] *} + +/// info | Info + +Enumerationen (oder Enums) gibt es in Python seit Version 3.4. + +/// + +/// tip | Tipp + +Falls Sie sich fragen, was „AlexNet“, „ResNet“ und „LeNet“ ist, das sind Namen von Modellen für maschinelles Lernen. + +/// + +### Einen *Pfad-Parameter* deklarieren { #declare-a-path-parameter } + +Dann erstellen Sie einen *Pfad-Parameter*, der als Typ die gerade erstellte Enum-Klasse hat (`ModelName`): + +{* ../../docs_src/path_params/tutorial005.py hl[16] *} + +### Die API-Dokumentation testen { #check-the-docs } + +Weil die erlaubten Werte für den *Pfad-Parameter* nun vordefiniert sind, kann die interaktive Dokumentation sie als Auswahl-Drop-Down anzeigen: + + + +### Mit Python-*Enumerationen* arbeiten { #working-with-python-enumerations } + +Der *Pfad-Parameter* wird ein *Member einer Enumeration* sein. + +#### *Enumeration-Member* vergleichen { #compare-enumeration-members } + +Sie können ihn mit einem Member Ihrer Enumeration `ModelName` vergleichen: + +{* ../../docs_src/path_params/tutorial005.py hl[17] *} + +#### *Enumerations-Wert* erhalten { #get-the-enumeration-value } + +Den tatsächlichen Wert (in diesem Fall ein `str`) erhalten Sie via `model_name.value`, oder generell, `your_enum_member.value`: + +{* ../../docs_src/path_params/tutorial005.py hl[20] *} + +/// tip | Tipp + +Sie können den Wert `"lenet"` außerdem mittels `ModelName.lenet.value` abrufen. + +/// + +#### *Enumeration-Member* zurückgeben { #return-enumeration-members } + +Sie können *Enum-Member* in ihrer *Pfadoperation* zurückgeben, sogar verschachtelt in einem JSON-Body (z. B. als `dict`). + +Diese werden zu ihren entsprechenden Werten konvertiert (in diesem Fall Strings), bevor sie zum Client übertragen werden: + +{* ../../docs_src/path_params/tutorial005.py hl[18,21,23] *} + +In Ihrem Client erhalten Sie eine JSON-Response, wie etwa: + +```JSON +{ + "model_name": "alexnet", + "message": "Deep Learning FTW!" +} +``` + +## Pfad-Parameter, die Pfade enthalten { #path-parameters-containing-paths } + +Angenommen, Sie haben eine *Pfadoperation* mit einem Pfad `/files/{file_path}`. + +Aber `file_path` soll selbst einen *Pfad* enthalten, etwa `home/johndoe/myfile.txt`. + +Sprich, die URL für diese Datei wäre etwas wie: `/files/home/johndoe/myfile.txt`. + +### OpenAPI-Unterstützung { #openapi-support } + +OpenAPI bietet nicht die Möglichkeit, dass ein *Pfad-Parameter* seinerseits einen *Pfad* enthalten kann, das würde zu Szenarios führen, die schwierig zu testen und zu definieren sind. + +Trotzdem können Sie das in **FastAPI** tun, indem Sie eines der internen Tools von Starlette verwenden. + +Die Dokumentation würde weiterhin funktionieren, allerdings wird nicht dokumentiert werden, dass der Parameter ein Pfad sein sollte. + +### Pfad-Konverter { #path-convertor } + +Mittels einer Option direkt von Starlette können Sie einen *Pfad-Parameter* deklarieren, der einen Pfad enthalten soll, indem Sie eine URL wie folgt definieren: + +``` +/files/{file_path:path} +``` + +In diesem Fall ist der Name des Parameters `file_path`. Der letzte Teil, `:path`, sagt aus, dass der Parameter ein *Pfad* sein soll. + +Sie verwenden das also wie folgt: + +{* ../../docs_src/path_params/tutorial004.py hl[6] *} + +/// tip | Tipp + +Der Parameter könnte einen führenden Schrägstrich (`/`) haben, wie etwa in `/home/johndoe/myfile.txt`. + +In dem Fall wäre die URL: `/files//home/johndoe/myfile.txt`, mit einem doppelten Schrägstrich (`//`) zwischen `files` und `home`. + +/// + +## Zusammenfassung { #recap } + +In **FastAPI** erhalten Sie mittels kurzer, intuitiver Typdeklarationen: + +* Editor-Unterstützung: Fehlerprüfungen, Codevervollständigung, usw. +* Daten "parsen" +* Datenvalidierung +* API-Annotationen und automatische Dokumentation + +Und Sie müssen sie nur einmal deklarieren. + +Das ist wahrscheinlich der sichtbarste Unterschied zwischen **FastAPI** und alternativen Frameworks (abgesehen von der reinen Performanz). diff --git a/docs/de/docs/tutorial/query-param-models.md b/docs/de/docs/tutorial/query-param-models.md new file mode 100644 index 0000000..7d3f2d3 --- /dev/null +++ b/docs/de/docs/tutorial/query-param-models.md @@ -0,0 +1,68 @@ +# Query-Parameter-Modelle { #query-parameter-models } + +Wenn Sie eine Gruppe von **Query-Parametern** haben, die miteinander in Beziehung stehen, können Sie ein **Pydantic-Modell** erstellen, um diese zu deklarieren. + +Dadurch können Sie das **Modell an mehreren Stellen wiederverwenden** und gleichzeitig Validierungen und Metadaten für alle Parameter auf einmal deklarieren. 😎 + +/// note | Hinweis + +Dies wird seit FastAPI Version `0.115.0` unterstützt. 🤓 + +/// + +## Query-Parameter mit einem Pydantic-Modell { #query-parameters-with-a-pydantic-model } + +Deklarieren Sie die benötigten **Query-Parameter** in einem **Pydantic-Modell** und dann den Parameter als `Query`: + +{* ../../docs_src/query_param_models/tutorial001_an_py310.py hl[9:13,17] *} + +**FastAPI** wird die Daten für **jedes Feld** aus den **Query-Parametern** des Request extrahieren und Ihnen das definierte Pydantic-Modell bereitstellen. + +## Die Dokumentation testen { #check-the-docs } + +Sie können die Query-Parameter in der Dokumentations-Oberfläche unter `/docs` einsehen: + +
+ +
+ +## Zusätzliche Query-Parameter verbieten { #forbid-extra-query-parameters } + +In einigen speziellen Anwendungsfällen (wahrscheinlich nicht sehr häufig) möchten Sie möglicherweise die Query-Parameter, die Sie empfangen möchten, **beschränken**. + +Sie können die Modellkonfiguration von Pydantic verwenden, um jegliche `extra` Felder zu `verbieten`: + +{* ../../docs_src/query_param_models/tutorial002_an_py310.py hl[10] *} + +Wenn ein Client versucht, einige **zusätzliche** Daten in den **Query-Parametern** zu senden, erhält er eine **Error-Response**. + +Wenn der Client beispielsweise versucht, einen `tool` Query-Parameter mit dem Wert `plumbus` zu senden, wie: + +```http +https://example.com/items/?limit=10&tool=plumbus +``` + +erhält er eine **Error-Response**, die ihm mitteilt, dass der Query-Parameter `tool` nicht erlaubt ist: + +```json +{ + "detail": [ + { + "type": "extra_forbidden", + "loc": ["query", "tool"], + "msg": "Extra inputs are not permitted", + "input": "plumbus" + } + ] +} +``` + +## Zusammenfassung { #summary } + +Sie können **Pydantic-Modelle** verwenden, um **Query-Parameter** in **FastAPI** zu deklarieren. 😎 + +/// tip | Tipp + +Spoiler-Alarm: Sie können auch Pydantic-Modelle verwenden, um Cookies und Header zu deklarieren, aber darüber werden Sie später im Tutorial lesen. 🤫 + +/// diff --git a/docs/de/docs/tutorial/query-params-str-validations.md b/docs/de/docs/tutorial/query-params-str-validations.md new file mode 100644 index 0000000..744160b --- /dev/null +++ b/docs/de/docs/tutorial/query-params-str-validations.md @@ -0,0 +1,487 @@ +# Query-Parameter und String-Validierungen { #query-parameters-and-string-validations } + +**FastAPI** ermöglicht es Ihnen, zusätzliche Informationen und Validierungen für Ihre Parameter zu deklarieren. + +Nehmen wir diese Anwendung als Beispiel: + +{* ../../docs_src/query_params_str_validations/tutorial001_py310.py hl[7] *} + +Der Query-Parameter `q` hat den Typ `str | None`, das bedeutet, dass er vom Typ `str` sein kann, aber auch `None`, und tatsächlich ist der Defaultwert `None`, sodass FastAPI weiß, dass er nicht erforderlich ist. + +/// note | Hinweis + +FastAPI erkennt, dass der Wert von `q` nicht erforderlich ist, aufgrund des Defaultwertes `= None`. + +Die Verwendung von `str | None` ermöglicht es Ihrem Editor, Ihnen bessere Unterstützung zu bieten und Fehler zu erkennen. + +/// + +## Zusätzliche Validierung { #additional-validation } + +Wir werden sicherstellen, dass, obwohl `q` optional ist, wann immer es bereitgestellt wird, **seine Länge 50 Zeichen nicht überschreitet**. + +### `Query` und `Annotated` importieren { #import-query-and-annotated } + +Um dies zu erreichen, importieren Sie zuerst: + +* `Query` von `fastapi` +* `Annotated` von `typing` + +{* ../../docs_src/query_params_str_validations/tutorial002_an_py310.py hl[1,3] *} + +/// info | Info + +FastAPI hat Unterstützung für `Annotated` hinzugefügt (und begonnen, es zu empfehlen) in der Version 0.95.0. + +Wenn Sie eine ältere Version haben, würden Sie Fehler erhalten, beim Versuch, `Annotated` zu verwenden. + +Stellen Sie sicher, dass Sie [die FastAPI-Version aktualisieren](../deployment/versions.md#upgrading-the-fastapi-versions){.internal-link target=_blank}, auf mindestens Version 0.95.1, bevor Sie `Annotated` verwenden. + +/// + +## Verwenden von `Annotated` im Typ für den `q`-Parameter { #use-annotated-in-the-type-for-the-q-parameter } + +Erinnern Sie sich, dass ich Ihnen zuvor in [Python-Typen-Intro](../python-types.md#type-hints-with-metadata-annotations){.internal-link target=_blank} gesagt habe, dass `Annotated` verwendet werden kann, um Metadaten zu Ihren Parametern hinzuzufügen? + +Jetzt ist es soweit, dies mit FastAPI zu verwenden. 🚀 + +Wir hatten diese Typannotation: + +//// tab | Python 3.10+ + +```Python +q: str | None = None +``` + +//// + +//// tab | Python 3.8+ + +```Python +q: Union[str, None] = None +``` + +//// + +Was wir tun werden, ist, dies mit `Annotated` zu wrappen, sodass es zu: + +//// tab | Python 3.10+ + +```Python +q: Annotated[str | None] = None +``` + +//// + +//// tab | Python 3.8+ + +```Python +q: Annotated[Union[str, None]] = None +``` + +//// + +Beide dieser Versionen bedeuten dasselbe: `q` ist ein Parameter, der ein `str` oder `None` sein kann, und standardmäßig ist er `None`. + +Jetzt springen wir zu den spannenden Dingen. 🎉 + +## `Query` zu `Annotated` im `q`-Parameter hinzufügen { #add-query-to-annotated-in-the-q-parameter } + +Da wir nun `Annotated` haben, in das wir mehr Informationen (in diesem Fall einige zusätzliche Validierungen) einfügen können, fügen Sie `Query` innerhalb von `Annotated` hinzu und setzen Sie den Parameter `max_length` auf `50`: + +{* ../../docs_src/query_params_str_validations/tutorial002_an_py310.py hl[9] *} + +Beachten Sie, dass der Defaultwert weiterhin `None` ist, so dass der Parameter weiterhin optional ist. + +Aber jetzt, mit `Query(max_length=50)` innerhalb von `Annotated`, sagen wir FastAPI, dass wir eine **zusätzliche Validierung** für diesen Wert wünschen, wir wollen, dass er maximal 50 Zeichen hat. 😎 + +/// tip | Tipp + +Hier verwenden wir `Query()`, weil dies ein **Query-Parameter** ist. Später werden wir andere wie `Path()`, `Body()`, `Header()`, und `Cookie()` sehen, die auch dieselben Argumente wie `Query()` akzeptieren. + +/// + +FastAPI wird nun: + +* Die Daten **validieren**, um sicherzustellen, dass die Länge maximal 50 Zeichen beträgt +* Einen **klaren Fehler** für den Client anzeigen, wenn die Daten ungültig sind +* Den Parameter in der OpenAPI-Schema-*Pfadoperation* **dokumentieren** (sodass er in der **automatischen Dokumentation** angezeigt wird) + +## Alternative (alt): `Query` als Defaultwert { #alternative-old-query-as-the-default-value } + +Frühere Versionen von FastAPI (vor 0.95.0) erforderten, dass Sie `Query` als den Defaultwert Ihres Parameters verwendeten, anstatt es innerhalb von `Annotated` zu platzieren. Es besteht eine hohe Wahrscheinlichkeit, dass Sie Code sehen, der es so verwendet, also werde ich es Ihnen erklären. + +/// tip | Tipp + +Für neuen Code und wann immer es möglich ist, verwenden Sie `Annotated` wie oben erklärt. Es gibt mehrere Vorteile (unten erläutert) und keine Nachteile. 🍰 + +/// + +So würden Sie `Query()` als den Defaultwert Ihres Funktionsparameters verwenden und den Parameter `max_length` auf 50 setzen: + +{* ../../docs_src/query_params_str_validations/tutorial002_py310.py hl[7] *} + +Da wir in diesem Fall (ohne die Verwendung von `Annotated`) den Defaultwert `None` in der Funktion durch `Query()` ersetzen müssen, müssen wir nun den Defaultwert mit dem Parameter `Query(default=None)` setzen, er erfüllt den gleichen Zweck, diesen Defaultwert zu definieren (zumindest für FastAPI). + +Also: + +```Python +q: str | None = Query(default=None) +``` + +... macht den Parameter optional mit einem Defaultwert von `None`, genauso wie: + +```Python +q: str | None = None +``` + +Aber die `Query`-Version deklariert ihn explizit als Query-Parameter. + +Dann können wir mehr Parameter an `Query` übergeben. In diesem Fall den `max_length`-Parameter, der auf Strings angewendet wird: + +```Python +q: str | None = Query(default=None, max_length=50) +``` + +Dies wird die Daten validieren, einen klaren Fehler anzeigen, wenn die Daten nicht gültig sind, und den Parameter in der OpenAPI-Schema-*Pfadoperation* dokumentieren. + +### `Query` als Defaultwert oder in `Annotated` { #query-as-the-default-value-or-in-annotated } + +Beachten Sie, dass wenn Sie `Query` innerhalb von `Annotated` verwenden, Sie den `default`-Parameter für `Query` nicht verwenden dürfen. + +Setzen Sie stattdessen den tatsächlichen Defaultwert des Funktionsparameters. Andernfalls wäre es inkonsistent. + +Zum Beispiel ist das nicht erlaubt: + +```Python +q: Annotated[str, Query(default="rick")] = "morty" +``` + +... denn es ist nicht klar, ob der Defaultwert `"rick"` oder `"morty"` sein soll. + +Sie würden also (bevorzugt) schreiben: + +```Python +q: Annotated[str, Query()] = "rick" +``` + +... oder in älteren Codebasen finden Sie: + +```Python +q: str = Query(default="rick") +``` + +### Vorzüge von `Annotated` { #advantages-of-annotated } + +**Es wird empfohlen, `Annotated` zu verwenden**, anstelle des Defaultwertes in Funktionsparametern, es ist aus mehreren Gründen **besser**. 🤓 + +Der **Default**wert des **Funktionsparameters** ist der **tatsächliche Default**wert, das ist in der Regel intuitiver mit Python. 😌 + +Sie könnten **diese gleiche Funktion** in **anderen Stellen** ohne FastAPI **aufrufen**, und es würde **wie erwartet funktionieren**. Wenn es einen **erforderlichen** Parameter gibt (ohne Defaultwert), wird Ihr **Editor** Ihnen dies mit einem Fehler mitteilen, außerdem wird **Python** sich beschweren, wenn Sie es ausführen, ohne den erforderlichen Parameter zu übergeben. + +Wenn Sie `Annotated` nicht verwenden und stattdessen die **(alte) Defaultwert-Stilform** verwenden, müssen Sie sich daran **erinnern**, die Argumente der Funktion zu übergeben, wenn Sie diese Funktion ohne FastAPI in **anderen Stellen** aufrufen. Ansonsten sind die Werte anders als erwartet (z. B. `QueryInfo` oder etwas Ähnliches statt `str`). Ihr Editor kann Ihnen nicht helfen, und Python wird die Funktion ohne Klagen ausführen und sich nur beschweren wenn die Operationen innerhalb auf einen Fehler stoßen. + +Da `Annotated` mehr als eine Metadaten-Annotation haben kann, könnten Sie dieselbe Funktion sogar mit anderen Tools verwenden, wie z. B. Typer. 🚀 + +## Mehr Validierungen hinzufügen { #add-more-validations } + +Sie können auch einen `min_length`-Parameter hinzufügen: + +{* ../../docs_src/query_params_str_validations/tutorial003_an_py310.py hl[10] *} + +## Reguläre Ausdrücke hinzufügen { #add-regular-expressions } + +Sie können einen regulären Ausdruck `pattern` definieren, mit dem der Parameter übereinstimmen muss: + +{* ../../docs_src/query_params_str_validations/tutorial004_an_py310.py hl[11] *} + +Dieses spezielle Suchmuster im regulären Ausdruck überprüft, dass der erhaltene Parameterwert: + +* `^`: mit den nachfolgenden Zeichen beginnt, keine Zeichen davor hat. +* `fixedquery`: den exakten Text `fixedquery` hat. +* `$`: dort endet, keine weiteren Zeichen nach `fixedquery` hat. + +Wenn Sie sich mit all diesen **„regulärer Ausdruck“**-Ideen verloren fühlen, keine Sorge. Sie sind ein schwieriges Thema für viele Menschen. Sie können noch viele Dinge tun, ohne reguläre Ausdrücke direkt zu benötigen. + +Aber nun wissen Sie, dass Sie sie in **FastAPI** immer dann verwenden können, wenn Sie sie brauchen. + +### Pydantic v1 `regex` statt `pattern` { #pydantic-v1-regex-instead-of-pattern } + +Vor Pydantic Version 2 und FastAPI 0.100.0, hieß der Parameter `regex` statt `pattern`, aber das ist jetzt obsolet. + +Sie könnten immer noch Code sehen, der den alten Namen verwendet: + +//// tab | Pydantic v1 + +{* ../../docs_src/query_params_str_validations/tutorial004_regex_an_py310.py hl[11] *} + +//// + +Beachten Sie aber, dass das obsolet ist und auf den neuen Parameter `pattern` aktualisiert werden sollte. 🤓 + +## Defaultwerte { #default-values } + +Natürlich können Sie Defaultwerte verwenden, die nicht `None` sind. + +Nehmen wir an, Sie möchten, dass der `q` Query-Parameter eine `min_length` von `3` hat und einen Defaultwert von `"fixedquery"`: + +{* ../../docs_src/query_params_str_validations/tutorial005_an_py39.py hl[9] *} + +/// note | Hinweis + +Ein Defaultwert irgendeines Typs, einschließlich `None`, macht den Parameter optional (nicht erforderlich). + +/// + +## Erforderliche Parameter { #required-parameters } + +Wenn wir keine weiteren Validierungen oder Metadaten deklarieren müssen, können wir den `q` Query-Parameter erforderlich machen, indem wir einfach keinen Defaultwert deklarieren, wie: + +```Python +q: str +``` + +statt: + +```Python +q: str | None = None +``` + +Aber jetzt deklarieren wir es mit `Query`, zum Beispiel so: + +```Python +q: Annotated[str | None, Query(min_length=3)] = None +``` + +Wenn Sie einen Wert als erforderlich deklarieren müssen, während Sie `Query` verwenden, deklarieren Sie einfach keinen Defaultwert: + +{* ../../docs_src/query_params_str_validations/tutorial006_an_py39.py hl[9] *} + +### Erforderlich, kann `None` sein { #required-can-be-none } + +Sie können deklarieren, dass ein Parameter `None` akzeptieren kann, aber trotzdem erforderlich ist. Dadurch müssten Clients den Wert senden, selbst wenn der Wert `None` ist. + +Um das zu tun, können Sie deklarieren, dass `None` ein gültiger Typ ist, einfach indem Sie keinen Defaultwert deklarieren: + +{* ../../docs_src/query_params_str_validations/tutorial006c_an_py310.py hl[9] *} + +## Query-Parameter-Liste / Mehrere Werte { #query-parameter-list-multiple-values } + +Wenn Sie einen Query-Parameter explizit mit `Query` definieren, können Sie ihn auch so deklarieren, dass er eine Liste von Werten empfängt, oder anders gesagt, dass er mehrere Werte empfangen kann. + +Um zum Beispiel einen Query-Parameter `q` zu deklarieren, der mehrmals in der URL vorkommen kann, schreiben Sie: + +{* ../../docs_src/query_params_str_validations/tutorial011_an_py310.py hl[9] *} + +Dann, mit einer URL wie: + +``` +http://localhost:8000/items/?q=foo&q=bar +``` + +würden Sie die mehreren `q`-*Query-Parameter*-Werte (`foo` und `bar`) in einer Python-`list` in Ihrer *Pfadoperation-Funktion* im *Funktionsparameter* `q` erhalten. + +So wäre die Response zu dieser URL: + +```JSON +{ + "q": [ + "foo", + "bar" + ] +} +``` + +/// tip | Tipp + +Um einen Query-Parameter mit einem Typ `list` zu deklarieren, wie im obigen Beispiel, müssen Sie explizit `Query` verwenden, da er andernfalls als Requestbody interpretiert würde. + +/// + +Die interaktive API-Dokumentation wird entsprechend aktualisiert, um mehrere Werte zu erlauben: + + + +### Query-Parameter-Liste / Mehrere Werte mit Defaults { #query-parameter-list-multiple-values-with-defaults } + +Sie können auch eine Default-`list` von Werten definieren, wenn keine bereitgestellt werden: + +{* ../../docs_src/query_params_str_validations/tutorial012_an_py39.py hl[9] *} + +Wenn Sie zu: + +``` +http://localhost:8000/items/ +``` + +gehen, wird der Default für `q` sein: `["foo", "bar"]`, und Ihre Response wird sein: + +```JSON +{ + "q": [ + "foo", + "bar" + ] +} +``` + +#### Nur `list` verwenden { #using-just-list } + +Sie können auch `list` direkt verwenden, anstelle von `list[str]`: + +{* ../../docs_src/query_params_str_validations/tutorial013_an_py39.py hl[9] *} + +/// note | Hinweis + +Beachten Sie, dass FastAPI in diesem Fall den Inhalt der Liste nicht überprüft. + +Zum Beispiel würde `list[int]` überprüfen (und dokumentieren), dass der Inhalt der Liste Ganzzahlen sind. Aber `list` alleine würde das nicht. + +/// + +## Mehr Metadaten deklarieren { #declare-more-metadata } + +Sie können mehr Informationen über den Parameter hinzufügen. + +Diese Informationen werden in das generierte OpenAPI aufgenommen und von den Dokumentationsoberflächen und externen Tools verwendet. + +/// note | Hinweis + +Beachten Sie, dass verschiedene Tools möglicherweise unterschiedliche Unterstützungslevels für OpenAPI haben. + +Einige davon könnten noch nicht alle zusätzlichen Informationen anzuzeigen, die Sie erklärten, obwohl in den meisten Fällen die fehlende Funktionalität bereits in der Entwicklung geplant ist. + +/// + +Sie können einen `title` hinzufügen: + +{* ../../docs_src/query_params_str_validations/tutorial007_an_py310.py hl[10] *} + +Und eine `description`: + +{* ../../docs_src/query_params_str_validations/tutorial008_an_py310.py hl[14] *} + +## Alias-Parameter { #alias-parameters } + +Stellen Sie sich vor, Sie möchten, dass der Parameter `item-query` ist. + +Wie in: + +``` +http://127.0.0.1:8000/items/?item-query=foobaritems +``` + +Aber `item-query` ist kein gültiger Name für eine Variable in Python. + +Der am ähnlichsten wäre `item_query`. + +Aber Sie benötigen dennoch, dass er genau `item-query` ist ... + +Dann können Sie ein `alias` deklarieren, und dieser Alias wird verwendet, um den Parameterwert zu finden: + +{* ../../docs_src/query_params_str_validations/tutorial009_an_py310.py hl[9] *} + +## Parameter als deprecatet ausweisen { #deprecating-parameters } + +Nehmen wir an, Ihnen gefällt dieser Parameter nicht mehr. + +Sie müssen ihn eine Weile dort belassen, da es Clients gibt, die ihn verwenden, aber Sie möchten, dass die Dokumentation ihn klar als deprecatet anzeigt. + +Dann übergeben Sie den Parameter `deprecated=True` an `Query`: + +{* ../../docs_src/query_params_str_validations/tutorial010_an_py310.py hl[19] *} + +Die Dokumentation wird es so anzeigen: + + + +## Parameter von OpenAPI ausschließen { #exclude-parameters-from-openapi } + +Um einen Query-Parameter aus dem generierten OpenAPI-Schema auszuschließen (und somit aus den automatischen Dokumentationssystemen), setzen Sie den Parameter `include_in_schema` von `Query` auf `False`: + +{* ../../docs_src/query_params_str_validations/tutorial014_an_py310.py hl[10] *} + +## Benutzerdefinierte Validierung { #custom-validation } + +Es kann Fälle geben, in denen Sie eine **benutzerdefinierte Validierung** durchführen müssen, die nicht mit den oben gezeigten Parametern durchgeführt werden kann. + +In diesen Fällen können Sie eine **benutzerdefinierte Validierungsfunktion** verwenden, die nach der normalen Validierung angewendet wird (z. B. nach der Validierung, dass der Wert ein `str` ist). + +Sie können dies mit Pydantic's `AfterValidator` innerhalb von `Annotated` erreichen. + +/// tip | Tipp + +Pydantic unterstützt auch `BeforeValidator` und andere. 🤓 + +/// + +Zum Beispiel überprüft dieser benutzerdefinierte Validator, ob die Artikel-ID mit `isbn-` für eine ISBN-Buchnummer oder mit `imdb-` für eine IMDB-Film-URL-ID beginnt: + +{* ../../docs_src/query_params_str_validations/tutorial015_an_py310.py hl[5,16:19,24] *} + +/// info | Info + +Dies ist verfügbar seit Pydantic Version 2 oder höher. 😎 + +/// + +/// tip | Tipp + +Wenn Sie irgendeine Art von Validierung durchführen müssen, die eine Kommunikation mit einer **externen Komponente** erfordert, wie z. B. einer Datenbank oder einer anderen API, sollten Sie stattdessen **FastAPI-Abhängigkeiten** verwenden. Sie werden diese später kennenlernen. + +Diese benutzerdefinierten Validatoren sind für Dinge gedacht, die einfach mit denselben **Daten** überprüft werden können, die im Request bereitgestellt werden. + +/// + +### Dieses Codebeispiel verstehen { #understand-that-code } + +Der wichtige Punkt ist einfach die Verwendung von **`AfterValidator` mit einer Funktion innerhalb von `Annotated`**. Fühlen Sie sich frei, diesen Teil zu überspringen. 🤸 + +--- + +Aber wenn Sie neugierig auf dieses spezielle Codebeispiel sind und immer noch Spaß haben, hier sind einige zusätzliche Details. + +#### Zeichenkette mit `value.startswith()` { #string-with-value-startswith } + +Haben Sie bemerkt? Eine Zeichenkette mit `value.startswith()` kann ein Tuple übernehmen, und es wird jeden Wert im Tuple überprüfen: + +{* ../../docs_src/query_params_str_validations/tutorial015_an_py310.py ln[16:19] hl[17] *} + +#### Ein zufälliges Item { #a-random-item } + +Mit `data.items()` erhalten wir ein iterierbares Objekt mit Tupeln, die Schlüssel und Wert für jedes Dictionary-Element enthalten. + +Wir konvertieren dieses iterierbare Objekt mit `list(data.items())` in eine richtige `list`. + +Dann können wir mit `random.choice()` einen **zufälligen Wert** aus der Liste erhalten, also bekommen wir ein Tuple mit `(id, name)`. Es wird etwas wie `("imdb-tt0371724", "The Hitchhiker's Guide to the Galaxy")` sein. + +Dann **weisen wir diese beiden Werte** des Tupels den Variablen `id` und `name` zu. + +Wenn der Benutzer also keine Artikel-ID bereitgestellt hat, erhält er trotzdem einen zufälligen Vorschlag. + +... wir tun all dies in einer **einzelnen einfachen Zeile**. 🤯 Lieben Sie nicht auch Python? 🐍 + +{* ../../docs_src/query_params_str_validations/tutorial015_an_py310.py ln[22:30] hl[29] *} + +## Zusammenfassung { #recap } + +Sie können zusätzliche Validierungen und Metadaten für Ihre Parameter deklarieren. + +Allgemeine Validierungen und Metadaten: + +* `alias` +* `title` +* `description` +* `deprecated` + +Validierungen, die spezifisch für Strings sind: + +* `min_length` +* `max_length` +* `pattern` + +Benutzerdefinierte Validierungen mit `AfterValidator`. + +In diesen Beispielen haben Sie gesehen, wie Sie Validierungen für `str`-Werte deklarieren. + +Sehen Sie sich die nächsten Kapitel an, um zu erfahren, wie Sie Validierungen für andere Typen, wie z. B. Zahlen, deklarieren. diff --git a/docs/de/docs/tutorial/query-params.md b/docs/de/docs/tutorial/query-params.md new file mode 100644 index 0000000..e46f31a --- /dev/null +++ b/docs/de/docs/tutorial/query-params.md @@ -0,0 +1,187 @@ +# Query-Parameter { #query-parameters } + +Wenn Sie in Ihrer Funktion andere Parameter deklarieren, die nicht Teil der Pfad-Parameter sind, dann werden diese automatisch als „Query“-Parameter interpretiert. + +{* ../../docs_src/query_params/tutorial001.py hl[9] *} + +Die Query ist die Menge von Schlüssel-Wert-Paaren, die nach dem `?` in einer URL folgen und durch `&`-Zeichen getrennt sind. + +Zum Beispiel sind in der URL: + +``` +http://127.0.0.1:8000/items/?skip=0&limit=10 +``` + +... die Query-Parameter: + +* `skip`: mit dem Wert `0` +* `limit`: mit dem Wert `10` + +Da sie Teil der URL sind, sind sie „naturgemäß“ Strings. + +Aber wenn Sie sie mit Python-Typen deklarieren (im obigen Beispiel als `int`), werden sie zu diesem Typ konvertiert und gegen diesen validiert. + +Die gleichen Prozesse, die für Pfad-Parameter gelten, werden auch auf Query-Parameter angewendet: + +* Editor Unterstützung (natürlich) +* Daten-„Parsen“ +* Datenvalidierung +* Automatische Dokumentation + +## Defaultwerte { #defaults } + +Da Query-Parameter kein fester Teil eines Pfades sind, können sie optional sein und Defaultwerte haben. + +Im obigen Beispiel haben sie die Defaultwerte `skip=0` und `limit=10`. + +Wenn Sie also zur URL: + +``` +http://127.0.0.1:8000/items/ +``` + +gehen, so ist das das gleiche wie die URL: + +``` +http://127.0.0.1:8000/items/?skip=0&limit=10 +``` + +Aber wenn Sie zum Beispiel zu: + +``` +http://127.0.0.1:8000/items/?skip=20 +``` + +gehen, werden die Parameterwerte Ihrer Funktion sein: + +* `skip=20`: da Sie das in der URL gesetzt haben +* `limit=10`: weil das der Defaultwert ist + +## Optionale Parameter { #optional-parameters } + +Auf die gleiche Weise können Sie optionale Query-Parameter deklarieren, indem Sie deren Defaultwert auf `None` setzen: + +{* ../../docs_src/query_params/tutorial002_py310.py hl[7] *} + +In diesem Fall wird der Funktionsparameter `q` optional und standardmäßig `None` sein. + +/// check | Testen + +Beachten Sie auch, dass **FastAPI** intelligent genug ist, um zu erkennen, dass `item_id` ein Pfad-Parameter ist und `q` keiner, daher muss letzteres ein Query-Parameter sein. + +/// + +## Query-Parameter Typkonvertierung { #query-parameter-type-conversion } + +Sie können auch `bool`-Typen deklarieren, und sie werden konvertiert: + +{* ../../docs_src/query_params/tutorial003_py310.py hl[7] *} + +Wenn Sie nun zu: + +``` +http://127.0.0.1:8000/items/foo?short=1 +``` + +oder + +``` +http://127.0.0.1:8000/items/foo?short=True +``` + +oder + +``` +http://127.0.0.1:8000/items/foo?short=true +``` + +oder + +``` +http://127.0.0.1:8000/items/foo?short=on +``` + +oder + +``` +http://127.0.0.1:8000/items/foo?short=yes +``` + +gehen, oder zu irgendeiner anderen Variante der Groß-/Kleinschreibung (Alles groß, Anfangsbuchstabe groß, usw.), dann wird Ihre Funktion den Parameter `short` mit dem `bool`-Wert `True` sehen, ansonsten mit dem Wert `False`. + +## Mehrere Pfad- und Query-Parameter { #multiple-path-and-query-parameters } + +Sie können mehrere Pfad-Parameter und Query-Parameter gleichzeitig deklarieren, **FastAPI** weiß, welches welcher ist. + +Und Sie müssen sie auch nicht in einer spezifischen Reihenfolge deklarieren. + +Parameter werden anhand ihres Namens erkannt: + +{* ../../docs_src/query_params/tutorial004_py310.py hl[6,8] *} + +## Erforderliche Query-Parameter { #required-query-parameters } + +Wenn Sie einen Defaultwert für Nicht-Pfad-Parameter deklarieren (Bis jetzt haben wir nur Query-Parameter gesehen), dann ist der Parameter nicht erforderlich. + +Wenn Sie keinen spezifischen Wert haben wollen, sondern der Parameter einfach optional sein soll, dann setzen Sie den Defaultwert auf `None`. + +Aber wenn Sie wollen, dass ein Query-Parameter erforderlich ist, vergeben Sie einfach keinen Defaultwert: + +{* ../../docs_src/query_params/tutorial005.py hl[6:7] *} + +Hier ist `needy` ein erforderlicher Query-Parameter vom Typ `str`. + +Wenn Sie in Ihrem Browser eine URL wie: + +``` +http://127.0.0.1:8000/items/foo-item +``` + +... öffnen, ohne den benötigten Parameter `needy`, dann erhalten Sie einen Fehler wie den folgenden: + +```JSON +{ + "detail": [ + { + "type": "missing", + "loc": [ + "query", + "needy" + ], + "msg": "Field required", + "input": null + } + ] +} +``` + +Da `needy` ein erforderlicher Parameter ist, müssen Sie ihn in der URL setzen: + +``` +http://127.0.0.1:8000/items/foo-item?needy=sooooneedy +``` + +... Das funktioniert: + +```JSON +{ + "item_id": "foo-item", + "needy": "sooooneedy" +} +``` + +Und natürlich können Sie einige Parameter als erforderlich, einige mit Defaultwert, und einige als vollständig optional definieren: + +{* ../../docs_src/query_params/tutorial006_py310.py hl[8] *} + +In diesem Fall gibt es drei Query-Parameter: + +* `needy`, ein erforderlicher `str`. +* `skip`, ein `int` mit einem Defaultwert `0`. +* `limit`, ein optionales `int`. + +/// tip | Tipp + +Sie können auch `Enum`s verwenden, auf die gleiche Weise wie mit [Pfad-Parametern](path-params.md#predefined-values){.internal-link target=_blank}. + +/// diff --git a/docs/de/docs/tutorial/request-files.md b/docs/de/docs/tutorial/request-files.md new file mode 100644 index 0000000..0aee898 --- /dev/null +++ b/docs/de/docs/tutorial/request-files.md @@ -0,0 +1,176 @@ +# Dateien im Request { #request-files } + +Sie können Dateien, die vom Client hochgeladen werden, mithilfe von `File` definieren. + +/// info | Info + +Um hochgeladene Dateien zu empfangen, installieren Sie zuerst `python-multipart`. + +Stellen Sie sicher, dass Sie eine [virtuelle Umgebung](../virtual-environments.md){.internal-link target=_blank} erstellen, sie aktivieren und dann das Paket installieren, zum Beispiel: + +```console +$ pip install python-multipart +``` + +Das liegt daran, dass hochgeladene Dateien als „Formulardaten“ gesendet werden. + +/// + +## `File` importieren { #import-file } + +Importieren Sie `File` und `UploadFile` von `fastapi`: + +{* ../../docs_src/request_files/tutorial001_an_py39.py hl[3] *} + +## `File`-Parameter definieren { #define-file-parameters } + +Erstellen Sie Datei-Parameter, so wie Sie es auch mit `Body` und `Form` machen würden: + +{* ../../docs_src/request_files/tutorial001_an_py39.py hl[9] *} + +/// info | Info + +`File` ist eine Klasse, die direkt von `Form` erbt. + +Aber erinnern Sie sich, dass, wenn Sie `Query`, `Path`, `File` und andere von `fastapi` importieren, diese tatsächlich Funktionen sind, welche spezielle Klassen zurückgeben. + +/// + +/// tip | Tipp + +Um Dateibodys zu deklarieren, müssen Sie `File` verwenden, da diese Parameter sonst als Query-Parameter oder Body (JSON)-Parameter interpretiert werden würden. + +/// + +Die Dateien werden als „Formulardaten“ hochgeladen. + +Wenn Sie den Typ Ihrer *Pfadoperation-Funktion* als `bytes` deklarieren, wird **FastAPI** die Datei für Sie auslesen, und Sie erhalten den Inhalt als `bytes`. + +Bedenken Sie, dass das bedeutet, dass sich der gesamte Inhalt der Datei im Arbeitsspeicher befindet. Das wird für kleinere Dateien gut funktionieren. + +Aber es gibt viele Fälle, in denen Sie davon profitieren, `UploadFile` zu verwenden. + +## Datei-Parameter mit `UploadFile` { #file-parameters-with-uploadfile } + +Definieren Sie einen Datei-Parameter mit dem Typ `UploadFile`: + +{* ../../docs_src/request_files/tutorial001_an_py39.py hl[14] *} + +`UploadFile` zu verwenden, hat mehrere Vorzüge gegenüber `bytes`: + +* Sie müssen `File()` nicht als Parameter-Defaultwert verwenden. +* Es wird eine „gespoolte“ Datei verwendet: + * Eine Datei, die bis zu einem bestimmten Größen-Limit im Arbeitsspeicher behalten wird, und wenn das Limit überschritten wird, auf der Festplatte gespeichert wird. +* Das bedeutet, es wird für große Dateien wie Bilder, Videos, große Binärdateien, usw. gut funktionieren, ohne den ganzen Arbeitsspeicher aufzubrauchen. +* Sie können Metadaten aus der hochgeladenen Datei auslesen. +* Es hat eine dateiartige `async`hrone Schnittstelle. +* Es stellt ein tatsächliches Python-`SpooledTemporaryFile`-Objekt bereit, welches Sie direkt anderen Bibliotheken übergeben können, die ein dateiartiges Objekt erwarten. + +### `UploadFile` { #uploadfile } + +`UploadFile` hat die folgenden Attribute: + +* `filename`: Ein `str` mit dem ursprünglichen Namen der hochgeladenen Datei (z. B. `meinbild.jpg`). +* `content_type`: Ein `str` mit dem Inhaltstyp (MIME-Typ / Medientyp) (z. B. `image/jpeg`). +* `file`: Ein `SpooledTemporaryFile` (ein dateiartiges Objekt). Das ist das tatsächliche Python-Objekt, das Sie direkt anderen Funktionen oder Bibliotheken übergeben können, welche ein „file-like“-Objekt erwarten. + +`UploadFile` hat die folgenden `async`hronen Methoden. Sie alle rufen die entsprechenden Methoden des darunterliegenden Datei-Objekts auf (wobei intern `SpooledTemporaryFile` verwendet wird). + +* `write(daten)`: Schreibt `daten` (`str` oder `bytes`) in die Datei. +* `read(anzahl)`: Liest `anzahl` (`int`) bytes/Zeichen aus der Datei. +* `seek(versatz)`: Geht zur Position `versatz` (`int`) in der Datei. + * Z. B. würde `await myfile.seek(0)` zum Anfang der Datei gehen. + * Das ist besonders dann nützlich, wenn Sie `await myfile.read()` einmal ausführen und dann diese Inhalte erneut auslesen müssen. +* `close()`: Schließt die Datei. + +Da alle diese Methoden `async`hron sind, müssen Sie sie „await“en („erwarten“). + +Zum Beispiel können Sie innerhalb einer `async` *Pfadoperation-Funktion* den Inhalt wie folgt auslesen: + +```Python +contents = await myfile.read() +``` + +Wenn Sie sich innerhalb einer normalen `def`-*Pfadoperation-Funktion* befinden, können Sie direkt auf `UploadFile.file` zugreifen, zum Beispiel: + +```Python +contents = myfile.file.read() +``` + +/// note | Technische Details zu `async` + +Wenn Sie die `async`-Methoden verwenden, führt **FastAPI** die Datei-Methoden in einem Threadpool aus und erwartet sie. + +/// + +/// note | Technische Details zu Starlette + +**FastAPI**s `UploadFile` erbt direkt von **Starlette**s `UploadFile`, fügt aber ein paar notwendige Teile hinzu, um es kompatibel mit **Pydantic** und anderen Teilen von FastAPI zu machen. + +/// + +## Was sind „Formulardaten“ { #what-is-form-data } + +Der Weg, wie HTML-Formulare (`
`) die Daten zum Server senden, verwendet normalerweise eine „spezielle“ Kodierung für diese Daten. Diese unterscheidet sich von JSON. + +**FastAPI** stellt sicher, dass diese Daten korrekt ausgelesen werden, statt JSON zu erwarten. + +/// note | Technische Details + +Daten aus Formularen werden, wenn es keine Dateien sind, normalerweise mit dem „media type“ `application/x-www-form-urlencoded` kodiert. + +Sollte das Formular aber Dateien enthalten, dann werden diese mit `multipart/form-data` kodiert. Wenn Sie `File` verwenden, wird **FastAPI** wissen, dass es die Dateien vom korrekten Teil des Bodys holen muss. + +Wenn Sie mehr über diese Kodierungen und Formularfelder lesen möchten, besuchen Sie die MDN-Webdokumentation für POST. + +/// + +/// warning | Achtung + +Sie können mehrere `File`- und `Form`-Parameter in einer *Pfadoperation* deklarieren, aber Sie können nicht gleichzeitig auch `Body`-Felder deklarieren, welche Sie als JSON erwarten, da der Request den Body mittels `multipart/form-data` statt `application/json` kodiert. + +Das ist keine Limitation von **FastAPI**, sondern Teil des HTTP-Protokolls. + +/// + +## Optionaler Datei-Upload { #optional-file-upload } + +Sie können eine Datei optional machen, indem Sie Standard-Typannotationen verwenden und den Defaultwert auf `None` setzen: + +{* ../../docs_src/request_files/tutorial001_02_an_py310.py hl[9,17] *} + +## `UploadFile` mit zusätzlichen Metadaten { #uploadfile-with-additional-metadata } + +Sie können auch `File()` mit `UploadFile` verwenden, um zum Beispiel zusätzliche Metadaten zu setzen: + +{* ../../docs_src/request_files/tutorial001_03_an_py39.py hl[9,15] *} + +## Mehrere Datei-Uploads { #multiple-file-uploads } + +Es ist auch möglich, mehrere Dateien gleichzeitig hochzuladen. + +Diese werden demselben Formularfeld zugeordnet, welches mit den Formulardaten gesendet wird. + +Um das zu machen, deklarieren Sie eine Liste von `bytes` oder `UploadFile`s: + +{* ../../docs_src/request_files/tutorial002_an_py39.py hl[10,15] *} + +Sie erhalten, wie deklariert, eine `list` von `bytes` oder `UploadFile`s. + +/// note | Technische Details + +Sie können auch `from starlette.responses import HTMLResponse` verwenden. + +**FastAPI** bietet dieselben `starlette.responses` auch via `fastapi.responses` an, als Annehmlichkeit für Sie, den Entwickler. Die meisten verfügbaren Responses kommen aber direkt von Starlette. + +/// + +### Mehrere Datei-Uploads mit zusätzlichen Metadaten { #multiple-file-uploads-with-additional-metadata } + +Und so wie zuvor können Sie `File()` verwenden, um zusätzliche Parameter zu setzen, sogar für `UploadFile`: + +{* ../../docs_src/request_files/tutorial003_an_py39.py hl[11,18:20] *} + +## Zusammenfassung { #recap } + +Verwenden Sie `File`, `bytes` und `UploadFile`, um hochladbare Dateien im Request zu deklarieren, die als Formulardaten gesendet werden. diff --git a/docs/de/docs/tutorial/request-form-models.md b/docs/de/docs/tutorial/request-form-models.md new file mode 100644 index 0000000..fbc6c09 --- /dev/null +++ b/docs/de/docs/tutorial/request-form-models.md @@ -0,0 +1,78 @@ +# Formularmodelle { #form-models } + +Sie können **Pydantic-Modelle** verwenden, um **Formularfelder** in FastAPI zu deklarieren. + +/// info | Info + +Um Formulare zu verwenden, installieren Sie zuerst `python-multipart`. + +Stellen Sie sicher, dass Sie eine [virtuelle Umgebung](../virtual-environments.md){.internal-link target=_blank} erstellen, sie aktivieren und es dann installieren, zum Beispiel: + +```console +$ pip install python-multipart +``` + +/// + +/// note | Hinweis + +Dies wird seit FastAPI Version `0.113.0` unterstützt. 🤓 + +/// + +## Pydantic-Modelle für Formulare { #pydantic-models-for-forms } + +Sie müssen nur ein **Pydantic-Modell** mit den Feldern deklarieren, die Sie als **Formularfelder** erhalten möchten, und dann den Parameter als `Form` deklarieren: + +{* ../../docs_src/request_form_models/tutorial001_an_py39.py hl[9:11,15] *} + +**FastAPI** wird die Daten für **jedes Feld** aus den **Formulardaten** im Request **extrahieren** und Ihnen das von Ihnen definierte Pydantic-Modell übergeben. + +## Die Dokumentation testen { #check-the-docs } + +Sie können dies in der Dokumentations-UI unter `/docs` testen: + +
+ +
+ +## Zusätzliche Formularfelder verbieten { #forbid-extra-form-fields } + +In einigen speziellen Anwendungsfällen (wahrscheinlich nicht sehr häufig) möchten Sie möglicherweise die Formularfelder auf nur diejenigen beschränken, die im Pydantic-Modell deklariert sind, und jegliche **zusätzlichen** Felder **verbieten**. + +/// note | Hinweis + +Dies wird seit FastAPI Version `0.114.0` unterstützt. 🤓 + +/// + +Sie können die Modellkonfiguration von Pydantic verwenden, um jegliche `extra` Felder zu `verbieten`: + +{* ../../docs_src/request_form_models/tutorial002_an_py39.py hl[12] *} + +Wenn ein Client versucht, einige zusätzliche Daten zu senden, erhält er eine **Error-Response**. + +Zum Beispiel, wenn der Client versucht, folgende Formularfelder zu senden: + +* `username`: `Rick` +* `password`: `Portal Gun` +* `extra`: `Mr. Poopybutthole` + +erhält er eine Error-Response, die ihm mitteilt, dass das Feld `extra` nicht erlaubt ist: + +```json +{ + "detail": [ + { + "type": "extra_forbidden", + "loc": ["body", "extra"], + "msg": "Extra inputs are not permitted", + "input": "Mr. Poopybutthole" + } + ] +} +``` + +## Zusammenfassung { #summary } + +Sie können Pydantic-Modelle verwenden, um Formularfelder in FastAPI zu deklarieren. 😎 diff --git a/docs/de/docs/tutorial/request-forms-and-files.md b/docs/de/docs/tutorial/request-forms-and-files.md new file mode 100644 index 0000000..cda38bc --- /dev/null +++ b/docs/de/docs/tutorial/request-forms-and-files.md @@ -0,0 +1,41 @@ +# Formulardaten und Dateien im Request { #request-forms-and-files } + +Sie können gleichzeitig Dateien und Formulardaten mit `File` und `Form` definieren. + +/// info | Info + +Um hochgeladene Dateien und/oder Formulardaten zu empfangen, installieren Sie zuerst `python-multipart`. + +Stellen Sie sicher, dass Sie eine [virtuelle Umgebung](../virtual-environments.md){.internal-link target=_blank} erstellen, diese aktivieren und es dann installieren, z. B.: + +```console +$ pip install python-multipart +``` + +/// + +## `File` und `Form` importieren { #import-file-and-form } + +{* ../../docs_src/request_forms_and_files/tutorial001_an_py39.py hl[3] *} + +## `File` und `Form`-Parameter definieren { #define-file-and-form-parameters } + +Erstellen Sie Datei- und Formularparameter, so wie Sie es auch mit `Body` oder `Query` machen würden: + +{* ../../docs_src/request_forms_and_files/tutorial001_an_py39.py hl[10:12] *} + +Die Datei- und Formularfelder werden als Formulardaten hochgeladen, und Sie erhalten diese Dateien und Formularfelder. + +Und Sie können einige der Dateien als `bytes` und einige als `UploadFile` deklarieren. + +/// warning | Achtung + +Sie können mehrere `File`- und `Form`-Parameter in einer *Pfadoperation* deklarieren, aber Sie können nicht auch `Body`-Felder deklarieren, die Sie als JSON erwarten, da der Body des Request mittels `multipart/form-data` statt `application/json` kodiert sein wird. + +Das ist keine Limitation von **FastAPI**, sondern Teil des HTTP-Protokolls. + +/// + +## Zusammenfassung { #recap } + +Verwenden Sie `File` und `Form` zusammen, wenn Sie Daten und Dateien zusammen im selben Request empfangen müssen. diff --git a/docs/de/docs/tutorial/request-forms.md b/docs/de/docs/tutorial/request-forms.md new file mode 100644 index 0000000..5c2ace6 --- /dev/null +++ b/docs/de/docs/tutorial/request-forms.md @@ -0,0 +1,73 @@ +# Formulardaten { #form-data } + +Wenn Sie Felder aus Formularen statt JSON empfangen müssen, können Sie `Form` verwenden. + +/// info | Info + +Um Formulare zu verwenden, installieren Sie zuerst `python-multipart`. + +Erstellen Sie unbedingt eine [virtuelle Umgebung](../virtual-environments.md){.internal-link target=_blank}, aktivieren Sie diese und installieren Sie dann das Paket, zum Beispiel: + +```console +$ pip install python-multipart +``` + +/// + +## `Form` importieren { #import-form } + +Importieren Sie `Form` von `fastapi`: + +{* ../../docs_src/request_forms/tutorial001_an_py39.py hl[3] *} + +## `Form`-Parameter definieren { #define-form-parameters } + +Erstellen Sie Formular-Parameter, so wie Sie es auch mit `Body` und `Query` machen würden: + +{* ../../docs_src/request_forms/tutorial001_an_py39.py hl[9] *} + +Zum Beispiel stellt eine der Möglichkeiten, die OAuth2-Spezifikation zu verwenden (genannt „password flow“), die Bedingung, einen `username` und ein `password` als Formularfelder zu senden. + +Die Spec erfordert, dass die Felder exakt `username` und `password` genannt werden und als Formularfelder, nicht JSON, gesendet werden. + +Mit `Form` haben Sie die gleichen Konfigurationsmöglichkeiten wie mit `Body` (und `Query`, `Path`, `Cookie`), inklusive Validierung, Beispielen, einem Alias (z. B. `user-name` statt `username`), usw. + +/// info | Info + +`Form` ist eine Klasse, die direkt von `Body` erbt. + +/// + +/// tip | Tipp + +Um Formularbodys zu deklarieren, verwenden Sie explizit `Form`, da diese Parameter sonst als Query-Parameter oder Body (JSON)-Parameter interpretiert werden würden. + +/// + +## Über „Formularfelder“ { #about-form-fields } + +HTML-Formulare (`
`) senden die Daten in einer „speziellen“ Kodierung zum Server, die sich von JSON unterscheidet. + +**FastAPI** stellt sicher, dass diese Daten korrekt ausgelesen werden, statt JSON zu erwarten. + +/// note | Technische Details + +Daten aus Formularen werden normalerweise mit dem „media type“ `application/x-www-form-urlencoded` kodiert. + +Wenn das Formular stattdessen Dateien enthält, werden diese mit `multipart/form-data` kodiert. Im nächsten Kapitel erfahren Sie mehr über die Handhabung von Dateien. + +Wenn Sie mehr über Formularfelder und ihre Kodierungen lesen möchten, besuchen Sie die MDN-Webdokumentation für POST. + +/// + +/// warning | Achtung + +Sie können mehrere `Form`-Parameter in einer *Pfadoperation* deklarieren, aber Sie können nicht gleichzeitig auch `Body`-Felder deklarieren, welche Sie als JSON erwarten, da der Request den Body mittels `application/x-www-form-urlencoded` statt `application/json` kodiert. + +Das ist keine Limitation von **FastAPI**, sondern Teil des HTTP-Protokolls. + +/// + +## Zusammenfassung { #recap } + +Verwenden Sie `Form`, um Eingabe-Parameter für Formulardaten zu deklarieren. diff --git a/docs/de/docs/tutorial/response-model.md b/docs/de/docs/tutorial/response-model.md new file mode 100644 index 0000000..7b77125 --- /dev/null +++ b/docs/de/docs/tutorial/response-model.md @@ -0,0 +1,357 @@ +# Responsemodell – Rückgabetyp { #response-model-return-type } + +Sie können den Typ der Response deklarieren, indem Sie den **Rückgabetyp** der *Pfadoperation* annotieren. + +Hierbei können Sie **Typannotationen** genauso verwenden, wie Sie es bei Werten von Funktions-**Parametern** machen; verwenden Sie Pydantic-Modelle, Listen, Dicts und skalare Werte wie Nummern, Booleans, usw. + +{* ../../docs_src/response_model/tutorial001_01_py310.py hl[16,21] *} + +FastAPI wird diesen Rückgabetyp verwenden, um: + +* Die zurückzugebenden Daten zu **validieren**. + * Wenn die Daten ungültig sind (Sie haben z. B. ein Feld vergessen), bedeutet das, *Ihr* Anwendungscode ist fehlerhaft, er gibt nicht zurück, was er sollte, und daher wird ein Server-Error ausgegeben, statt falscher Daten. So können Sie und Ihre Clients sicher sein, dass diese die erwarteten Daten, in der richtigen Form erhalten. +* In der OpenAPI *Pfadoperation* ein **JSON-Schema** für die Response hinzuzufügen. + * Dieses wird von der **automatischen Dokumentation** verwendet. + * Es wird auch von automatisch Client-Code-generierenden Tools verwendet. + +Aber am wichtigsten: + +* Es wird die Ausgabedaten auf das **limitieren und filtern**, was im Rückgabetyp definiert ist. + * Das ist insbesondere für die **Sicherheit** wichtig, mehr dazu unten. + +## `response_model`-Parameter { #response-model-parameter } + +Es gibt Fälle, da möchten oder müssen Sie Daten zurückgeben, die nicht genau dem entsprechen, was der Typ deklariert. + +Zum Beispiel könnten Sie **ein Dictionary zurückgeben** wollen, oder ein Datenbank-Objekt, aber **es als Pydantic-Modell deklarieren**. Auf diese Weise übernimmt das Pydantic-Modell alle Datendokumentation, -validierung, usw. für das Objekt, welches Sie zurückgeben (z. B. ein Dictionary oder ein Datenbank-Objekt). + +Würden Sie eine hierfür eine Rückgabetyp-Annotation verwenden, dann würden Tools und Editoren (korrekterweise) Fehler ausgeben, die Ihnen sagen, dass Ihre Funktion einen Typ zurückgibt (z. B. ein Dict), der sich unterscheidet von dem, was Sie deklariert haben (z. B. ein Pydantic-Modell). + +In solchen Fällen können Sie statt des Rückgabetyps den **Pfadoperation-Dekorator**-Parameter `response_model` verwenden. + +Sie können `response_model` in jeder möglichen *Pfadoperation* verwenden: + +* `@app.get()` +* `@app.post()` +* `@app.put()` +* `@app.delete()` +* usw. + +{* ../../docs_src/response_model/tutorial001_py310.py hl[17,22,24:27] *} + +/// note | Hinweis + +Beachten Sie, dass `response_model` ein Parameter der „Dekorator“-Methode ist (`get`, `post`, usw.). Nicht der *Pfadoperation-Funktion*, so wie die anderen Parameter und der Body. + +/// + +`response_model` nimmt denselben Typ entgegen, den Sie auch für ein Pydantic-Modellfeld deklarieren würden, also etwa ein Pydantic-Modell, aber es kann auch z. B. eine `list`e von Pydantic-Modellen sein, wie etwa `List[Item]`. + +FastAPI wird dieses `response_model` nehmen, um die Daten zu dokumentieren, validieren, usw. und auch, um **die Ausgabedaten** entsprechend der Typdeklaration **zu konvertieren und filtern**. + +/// tip | Tipp + +Wenn Sie in Ihrem Editor strikte Typchecks haben, mypy, usw., können Sie den Funktions-Rückgabetyp als `Any` deklarieren. + +So sagen Sie dem Editor, dass Sie absichtlich *irgendetwas* zurückgeben. Aber FastAPI wird trotzdem die Dokumentation, Validierung, Filterung, usw. der Daten übernehmen, via `response_model`. + +/// + +### `response_model`-Priorität { #response-model-priority } + +Wenn sowohl Rückgabetyp als auch `response_model` deklariert sind, hat `response_model` die Priorität und wird von FastAPI bevorzugt verwendet. + +So können Sie korrekte Typannotationen zu Ihrer Funktion hinzufügen, die von Ihrem Editor und Tools wie mypy verwendet werden. Und dennoch übernimmt FastAPI die Validierung und Dokumentation, usw., der Daten anhand von `response_model`. + +Sie können auch `response_model=None` verwenden, um das Erstellen eines Responsemodells für diese *Pfadoperation* zu unterbinden. Sie könnten das tun wollen, wenn Sie Dinge annotieren, die nicht gültige Pydantic-Felder sind. Ein Beispiel dazu werden Sie in einer der Abschnitte unten sehen. + +## Dieselben Eingabedaten zurückgeben { #return-the-same-input-data } + +Im Folgenden deklarieren wir ein `UserIn`-Modell; es enthält ein Klartext-Passwort: + +{* ../../docs_src/response_model/tutorial002_py310.py hl[7,9] *} + +/// info | Info + +Um `EmailStr` zu verwenden, installieren Sie zuerst `email-validator`. + +Stellen Sie sicher, dass Sie eine [virtuelle Umgebung](../virtual-environments.md){.internal-link target=_blank} erstellen, sie aktivieren und es dann installieren, zum Beispiel: + +```console +$ pip install email-validator +``` + +oder mit: + +```console +$ pip install "pydantic[email]" +``` + +/// + +Wir verwenden dieses Modell, um sowohl unsere Eingabe- als auch Ausgabedaten zu deklarieren: + +{* ../../docs_src/response_model/tutorial002_py310.py hl[16] *} + +Immer wenn jetzt ein Browser einen Benutzer mit Passwort erzeugt, gibt die API dasselbe Passwort in der Response zurück. + +Hier ist das möglicherweise kein Problem, da es derselbe Benutzer ist, der das Passwort sendet. + +Aber wenn wir dasselbe Modell für eine andere *Pfadoperation* verwenden, könnten wir das Passwort dieses Benutzers zu jedem Client schicken. + +/// danger | Gefahr + +Speichern Sie niemals das Klartext-Passwort eines Benutzers, oder versenden Sie es in einer Response wie dieser, wenn Sie sich nicht der resultierenden Gefahren bewusst sind und nicht wissen, was Sie tun. + +/// + +## Ausgabemodell hinzufügen { #add-an-output-model } + +Wir können stattdessen ein Eingabemodell mit dem Klartext-Passwort, und ein Ausgabemodell ohne das Passwort erstellen: + +{* ../../docs_src/response_model/tutorial003_py310.py hl[9,11,16] *} + +Obwohl unsere *Pfadoperation-Funktion* hier denselben `user` von der Eingabe zurückgibt, der das Passwort enthält: + +{* ../../docs_src/response_model/tutorial003_py310.py hl[24] *} + +... haben wir deklariert, dass `response_model` das Modell `UserOut` ist, welches das Passwort nicht enthält: + +{* ../../docs_src/response_model/tutorial003_py310.py hl[22] *} + +Darum wird **FastAPI** sich darum kümmern, dass alle Daten, die nicht im Ausgabemodell deklariert sind, herausgefiltert werden (mittels Pydantic). + +### `response_model` oder Rückgabewert { #response-model-or-return-type } + +Da unsere zwei Modelle in diesem Fall unterschiedlich sind, würde, wenn wir den Rückgabewert der Funktion als `UserOut` deklarieren, der Editor sich beschweren, dass wir einen ungültigen Typ zurückgeben, weil das unterschiedliche Klassen sind. + +Darum müssen wir es in diesem Fall im `response_model`-Parameter deklarieren. + +... aber lesen Sie weiter, um zu sehen, wie man das anders lösen kann. + +## Rückgabewert und Datenfilterung { #return-type-and-data-filtering } + +Führen wir unser vorheriges Beispiel fort. Wir wollten **die Funktion mit einem Typ annotieren**, aber wir wollten in der Funktion tatsächlich etwas zurückgeben, das **mehr Daten** enthält. + +Wir möchten, dass FastAPI die Daten weiterhin mithilfe des Responsemodells **filtert**. Selbst wenn die Funktion mehr Daten zurückgibt, soll die Response nur die Felder enthalten, die im Responsemodell deklariert sind. + +Im vorherigen Beispiel mussten wir den `response_model`-Parameter verwenden, weil die Klassen unterschiedlich waren. Das bedeutet aber auch, wir bekommen keine Unterstützung vom Editor und anderen Tools, die den Funktions-Rückgabewert überprüfen. + +Aber in den meisten Fällen, wenn wir so etwas machen, wollen wir nur, dass das Modell einige der Daten **filtert/entfernt**, so wie in diesem Beispiel. + +Und in solchen Fällen können wir Klassen und Vererbung verwenden, um Vorteil aus den Typannotationen in der Funktion zu ziehen, was vom Editor und von Tools besser unterstützt wird, während wir gleichzeitig FastAPIs **Datenfilterung** behalten. + +{* ../../docs_src/response_model/tutorial003_01_py310.py hl[7:10,13:14,18] *} + +Damit erhalten wir Tool-Unterstützung, vom Editor und mypy, da dieser Code hinsichtlich der Typen korrekt ist, aber wir erhalten auch die Datenfilterung von FastAPI. + +Wie funktioniert das? Schauen wir uns das mal an. 🤓 + +### Typannotationen und Tooling { #type-annotations-and-tooling } + +Sehen wir uns zunächst an, wie Editor, mypy und andere Tools dies sehen würden. + +`BaseUser` verfügt über die Basis-Felder. Dann erbt `UserIn` von `BaseUser` und fügt das Feld `password` hinzu, sodass es nun alle Felder beider Modelle hat. + +Wir annotieren den Funktionsrückgabetyp als `BaseUser`, geben aber tatsächlich eine `UserIn`-Instanz zurück. + +Für den Editor, mypy und andere Tools ist das kein Problem, da `UserIn` eine Unterklasse von `BaseUser` ist (Salopp: `UserIn` ist ein `BaseUser`). Es handelt sich um einen *gültigen* Typ, solange irgendetwas überreicht wird, das ein `BaseUser` ist. + +### FastAPI Datenfilterung { #fastapi-data-filtering } + +FastAPI seinerseits wird den Rückgabetyp sehen und sicherstellen, dass das, was zurückgegeben wird, **nur** diejenigen Felder enthält, welche im Typ deklariert sind. + +FastAPI macht intern mehrere Dinge mit Pydantic, um sicherzustellen, dass obige Ähnlichkeitsregeln der Klassenvererbung nicht auf die Filterung der zurückgegebenen Daten angewendet werden, sonst könnten Sie am Ende mehr Daten zurückgeben als gewollt. + +Auf diese Weise erhalten Sie das beste beider Welten: Sowohl Typannotationen mit **Tool-Unterstützung** als auch **Datenfilterung**. + +## Anzeige in der Dokumentation { #see-it-in-the-docs } + +Wenn Sie sich die automatische Dokumentation betrachten, können Sie sehen, dass Eingabe- und Ausgabemodell beide ihr eigenes JSON-Schema haben: + + + +Und beide Modelle werden auch in der interaktiven API-Dokumentation verwendet: + + + +## Andere Rückgabetyp-Annotationen { #other-return-type-annotations } + +Es kann Fälle geben, bei denen Sie etwas zurückgeben, das kein gültiges Pydantic-Feld ist, und Sie annotieren es in der Funktion nur, um Unterstützung von Tools zu erhalten (Editor, mypy, usw.). + +### Eine Response direkt zurückgeben { #return-a-response-directly } + +Der häufigste Anwendungsfall ist, wenn Sie [eine Response direkt zurückgeben, wie es später im Handbuch für fortgeschrittene Benutzer erläutert wird](../advanced/response-directly.md){.internal-link target=_blank}. + +{* ../../docs_src/response_model/tutorial003_02.py hl[8,10:11] *} + +Dieser einfache Anwendungsfall wird automatisch von FastAPI gehandhabt, weil die Annotation des Rückgabetyps die Klasse (oder eine Unterklasse von) `Response` ist. + +Und Tools werden auch glücklich sein, weil sowohl `RedirectResponse` als auch `JSONResponse` Unterklassen von `Response` sind, die Typannotation ist daher korrekt. + +### Eine Unterklasse von Response annotieren { #annotate-a-response-subclass } + +Sie können auch eine Unterklasse von `Response` in der Typannotation verwenden. + +{* ../../docs_src/response_model/tutorial003_03.py hl[8:9] *} + +Das wird ebenfalls funktionieren, weil `RedirectResponse` eine Unterklasse von `Response` ist, und FastAPI sich um diesen einfachen Anwendungsfall automatisch kümmert. + +### Ungültige Rückgabetyp-Annotationen { #invalid-return-type-annotations } + +Aber wenn Sie ein beliebiges anderes Objekt zurückgeben, das kein gültiger Pydantic-Typ ist (z. B. ein Datenbank-Objekt), und Sie annotieren es so in der Funktion, wird FastAPI versuchen, ein Pydantic-Responsemodell von dieser Typannotation zu erstellen, und scheitern. + +Das gleiche wird passieren, wenn Sie eine Union mehrerer Typen haben, und einer oder mehrere sind nicht gültige Pydantic-Typen. Zum Beispiel funktioniert folgendes nicht 💥: + +{* ../../docs_src/response_model/tutorial003_04_py310.py hl[8] *} + +... das scheitert, da die Typannotation kein Pydantic-Typ ist, und auch keine einzelne `Response`-Klasse, oder -Unterklasse, es ist eine Union (eines von beiden) von `Response` und `dict`. + +### Responsemodell deaktivieren { #disable-response-model } + +Beim Beispiel oben fortsetzend, mögen Sie vielleicht die standardmäßige Datenvalidierung, -Dokumentation, -Filterung, usw., die von FastAPI durchgeführt wird, nicht haben. + +Aber Sie möchten dennoch den Rückgabetyp in der Funktion annotieren, um Unterstützung von Editoren und Typcheckern (z. B. mypy) zu erhalten. + +In diesem Fall können Sie die Generierung des Responsemodells abschalten, indem Sie `response_model=None` setzen: + +{* ../../docs_src/response_model/tutorial003_05_py310.py hl[7] *} + +Das bewirkt, dass FastAPI die Generierung des Responsemodells unterlässt, und damit können Sie jede gewünschte Rückgabetyp-Annotation haben, ohne dass es Ihre FastAPI-Anwendung beeinflusst. 🤓 + +## Parameter für die Enkodierung des Responsemodells { #response-model-encoding-parameters } + +Ihr Responsemodell könnte Defaultwerte haben, wie: + +{* ../../docs_src/response_model/tutorial004_py310.py hl[9,11:12] *} + +* `description: Union[str, None] = None` (oder `str | None = None` in Python 3.10) hat einen Defaultwert `None`. +* `tax: float = 10.5` hat einen Defaultwert `10.5`. +* `tags: List[str] = []` hat eine leere Liste als Defaultwert: `[]`. + +Aber Sie möchten diese vielleicht vom Resultat ausschließen, wenn Sie gar nicht gesetzt wurden. + +Wenn Sie zum Beispiel Modelle mit vielen optionalen Attributen in einer NoSQL-Datenbank haben, und Sie möchten nicht ellenlange JSON-Responses voller Defaultwerte senden. + +### Den `response_model_exclude_unset`-Parameter verwenden { #use-the-response-model-exclude-unset-parameter } + +Sie können den *Pfadoperation-Dekorator*-Parameter `response_model_exclude_unset=True` setzen: + +{* ../../docs_src/response_model/tutorial004_py310.py hl[22] *} + +Die Defaultwerte werden dann nicht in der Response enthalten sein, sondern nur die tatsächlich gesetzten Werte. + +Wenn Sie also den Artikel mit der ID `foo` bei der *Pfadoperation* anfragen, wird (ohne die Defaultwerte) die Response sein: + +```JSON +{ + "name": "Foo", + "price": 50.2 +} +``` + +/// info | Info + +In Pydantic v1 hieß diese Methode `.dict()`, in Pydantic v2 wurde sie deprecatet (aber immer noch unterstützt) und in `.model_dump()` umbenannt. + +Die Beispiele hier verwenden `.dict()` für die Kompatibilität mit Pydantic v1, Sie sollten jedoch stattdessen `.model_dump()` verwenden, wenn Sie Pydantic v2 verwenden können. + +/// + +/// info | Info + +FastAPI verwendet `.dict()` von Pydantic Modellen, mit dessen `exclude_unset`-Parameter, um das zu erreichen. + +/// + +/// info | Info + +Sie können auch: + +* `response_model_exclude_defaults=True` +* `response_model_exclude_none=True` + +verwenden, wie in der Pydantic Dokumentation für `exclude_defaults` und `exclude_none` beschrieben. + +/// + +#### Daten mit Werten für Felder mit Defaultwerten { #data-with-values-for-fields-with-defaults } + +Aber wenn Ihre Daten Werte für Modellfelder mit Defaultwerten haben, wie etwa der Artikel mit der ID `bar`: + +```Python hl_lines="3 5" +{ + "name": "Bar", + "description": "The bartenders", + "price": 62, + "tax": 20.2 +} +``` + +dann werden diese Werte in der Response enthalten sein. + +#### Daten mit den gleichen Werten wie die Defaultwerte { #data-with-the-same-values-as-the-defaults } + +Wenn Daten die gleichen Werte haben wie ihre Defaultwerte, wie etwa der Artikel mit der ID `baz`: + +```Python hl_lines="3 5-6" +{ + "name": "Baz", + "description": None, + "price": 50.2, + "tax": 10.5, + "tags": [] +} +``` + +dann ist FastAPI klug genug (tatsächlich ist Pydantic klug genug) zu erkennen, dass, obwohl `description`, `tax`, und `tags` die gleichen Werte haben wie ihre Defaultwerte, sie explizit gesetzt wurden (statt dass sie von den Defaultwerten genommen wurden). + +Diese Felder werden also in der JSON-Response enthalten sein. + +/// tip | Tipp + +Beachten Sie, dass Defaultwerte alles Mögliche sein können, nicht nur `None`. + +Sie können eine Liste (`[]`), ein `float` `10.5`, usw. sein. + +/// + +### `response_model_include` und `response_model_exclude` { #response-model-include-and-response-model-exclude } + +Sie können auch die Parameter `response_model_include` und `response_model_exclude` im **Pfadoperation-Dekorator** verwenden. + +Diese nehmen ein `set` von `str`s entgegen, welches Namen von Attributen sind, die eingeschlossen (ohne die Anderen) oder ausgeschlossen (nur die Anderen) werden sollen. + +Das kann als schnelle Abkürzung verwendet werden, wenn Sie nur ein Pydantic-Modell haben und ein paar Daten von der Ausgabe ausschließen wollen. + +/// tip | Tipp + +Es wird dennoch empfohlen, dass Sie die Ideen von oben verwenden, also mehrere Klassen statt dieser Parameter. + +Der Grund ist, dass das das generierte JSON-Schema in der OpenAPI Ihrer Anwendung (und deren Dokumentation) dennoch das komplette Modell abbildet, selbst wenn Sie `response_model_include` oder `response_model_exclude` verwenden, um einige Attribute auszuschließen. + +Das trifft auch auf `response_model_by_alias` zu, welches ähnlich funktioniert. + +/// + +{* ../../docs_src/response_model/tutorial005_py310.py hl[29,35] *} + +/// tip | Tipp + +Die Syntax `{"name", "description"}` erzeugt ein `set` mit diesen zwei Werten. + +Äquivalent zu `set(["name", "description"])`. + +/// + +#### `list`en statt `set`s verwenden { #using-lists-instead-of-sets } + +Wenn Sie vergessen, ein `set` zu verwenden, und stattdessen eine `list`e oder ein `tuple` übergeben, wird FastAPI die dennoch in ein `set` konvertieren, und es wird korrekt funktionieren: + +{* ../../docs_src/response_model/tutorial006_py310.py hl[29,35] *} + +## Zusammenfassung { #recap } + +Verwenden Sie den Parameter `response_model` im *Pfadoperation-Dekorator*, um Responsemodelle zu definieren, und besonders, um private Daten herauszufiltern. + +Verwenden Sie `response_model_exclude_unset`, um nur explizit gesetzte Werte zurückzugeben. diff --git a/docs/de/docs/tutorial/response-status-code.md b/docs/de/docs/tutorial/response-status-code.md new file mode 100644 index 0000000..928003c --- /dev/null +++ b/docs/de/docs/tutorial/response-status-code.md @@ -0,0 +1,101 @@ +# Response-Statuscode { #response-status-code } + +Genauso wie Sie ein Responsemodell angeben können, können Sie auch den HTTP-Statuscode für die Response mit dem Parameter `status_code` in jeder der *Pfadoperationen* deklarieren: + +* `@app.get()` +* `@app.post()` +* `@app.put()` +* `@app.delete()` +* usw. + +{* ../../docs_src/response_status_code/tutorial001.py hl[6] *} + +/// note | Hinweis + +Beachten Sie, dass `status_code` ein Parameter der „Dekorator“-Methode ist (`get`, `post`, usw.). Nicht der *Pfadoperation-Funktion*, wie alle anderen Parameter und der Body. + +/// + +Dem `status_code`-Parameter wird eine Zahl mit dem HTTP-Statuscode übergeben. + +/// info | Info + +Alternativ kann `status_code` auch ein `IntEnum` erhalten, wie etwa Pythons `http.HTTPStatus`. + +/// + +Dies wird: + +* Diesen Statuscode mit der Response zurücksenden. +* Diesen im OpenAPI-Schema dokumentieren (und somit in den Benutzeroberflächen): + + + +/// note | Hinweis + +Einige Responsecodes (siehe nächsten Abschnitt) kennzeichnen, dass die Response keinen Body hat. + +FastAPI erkennt dies und erstellt eine OpenAPI-Dokumentation, die zeigt, dass es keinen Responsebody gibt. + +/// + +## Über HTTP-Statuscodes { #about-http-status-codes } + +/// note | Hinweis + +Wenn Sie bereits wissen, was HTTP-Statuscodes sind, können Sie diesen Abschnitt überspringen und mit dem nächsten fortfahren. + +/// + +In HTTP senden Sie einen numerischen Statuscode mit 3 Ziffern als Teil der Response. + +Diese Statuscodes haben einen zugeordneten Namen, um sie leichter zu erkennen, aber der wichtige Teil ist die Zahl. + +Kurz gefasst: + +* `100 - 199` stehen für „Information“. Sie verwenden diese selten direkt. Responses mit diesen Statuscodes dürfen keinen Body haben. +* **`200 - 299`** stehen für „Successful“-Responses („Erfolgreich“). Diese werden Sie am häufigsten verwenden. + * `200` ist der Default-Statuscode, was bedeutet, alles ist „OK“. + * Ein weiteres Beispiel wäre `201`, „Created“ („Erzeugt“). Dieser wird üblicherweise verwendet, nachdem ein neuer Datensatz in der Datenbank erstellt wurde. + * Ein spezieller Fall ist `204`, „No Content“ („Kein Inhalt“). Diese Response wird verwendet, wenn es keinen Inhalt gibt, der an den Client zurückgeschickt werden soll, und diese Response darf daher keinen Body haben. +* **`300 - 399`** stehen für „Redirection“ („Umleitung“). Responses mit diesen Statuscodes können einen Body haben oder nicht, außer bei `304`, „Not Modified“ („Nicht verändert“), die keinen haben darf. +* **`400 - 499`** stehen für „Client error“-Responses („Client-Fehler“). Diese sind die zweithäufigsten, die Sie vermutlich verwenden werden. + * Ein Beispiel ist `404`, für eine „Not Found“-Response („Nicht gefunden“). + * Für allgemeine Fehler beim Client können Sie einfach `400` verwenden. +* `500 - 599` stehen für Server-Fehler. Diese verwenden Sie fast nie direkt. Wenn in Ihrem Anwendungscode oder Server etwas schiefgeht, wird automatisch einer dieser Fehler-Statuscodes zurückgegeben. + +/// tip | Tipp + +Um mehr über die einzelnen Statuscodes zu erfahren und welcher wofür verwendet wird, sehen Sie sich die MDN Dokumentation über HTTP-Statuscodes an. + +/// + +## Abkürzung zur Erinnerung an die Namen { #shortcut-to-remember-the-names } + +Lassen Sie uns das vorherige Beispiel noch einmal anschauen: + +{* ../../docs_src/response_status_code/tutorial001.py hl[6] *} + +`201` ist der Statuscode für „Created“ („Erzeugt“). + +Aber Sie müssen sich nicht merken, was jeder dieser Codes bedeutet. + +Sie können die Annehmlichkeit von Variablen aus `fastapi.status` nutzen. + +{* ../../docs_src/response_status_code/tutorial002.py hl[1,6] *} + +Diese sind nur eine Annehmlichkeit, sie enthalten dieselbe Zahl, aber so können Sie die Autovervollständigung Ihres Editors verwenden, um sie zu finden: + + + +/// note | Technische Details + +Sie könnten auch `from starlette import status` verwenden. + +**FastAPI** bietet dieselben `starlette.status`-Codes auch via `fastapi.status` an, rein zu Ihrer Annehmlichkeit als Entwickler. Aber sie stammen direkt von Starlette. + +/// + +## Den Defaultwert ändern { #changing-the-default } + +Später im [Handbuch für fortgeschrittene Benutzer](../advanced/response-change-status-code.md){.internal-link target=_blank} werden Sie sehen, wie Sie einen anderen Statuscode zurückgeben können, als den Default, den Sie hier deklarieren. diff --git a/docs/de/docs/tutorial/schema-extra-example.md b/docs/de/docs/tutorial/schema-extra-example.md new file mode 100644 index 0000000..e2ffed2 --- /dev/null +++ b/docs/de/docs/tutorial/schema-extra-example.md @@ -0,0 +1,224 @@ +# Beispiel-Request-Daten deklarieren { #declare-request-example-data } + +Sie können Beispiele für die Daten deklarieren, die Ihre App empfangen kann. + +Hier sind mehrere Möglichkeiten, das zu tun. + +## Zusätzliche JSON-Schemadaten in Pydantic-Modellen { #extra-json-schema-data-in-pydantic-models } + +Sie können `examples` („Beispiele“) für ein Pydantic-Modell deklarieren, welche dem generierten JSON-Schema hinzugefügt werden. + +//// tab | Pydantic v2 + +{* ../../docs_src/schema_extra_example/tutorial001_py310.py hl[13:24] *} + +//// + +//// tab | Pydantic v1 + +{* ../../docs_src/schema_extra_example/tutorial001_pv1_py310.py hl[13:23] *} + +//// + +Diese zusätzlichen Informationen werden unverändert zum für dieses Modell ausgegebenen **JSON-Schema** hinzugefügt und in der API-Dokumentation verwendet. + +//// tab | Pydantic v2 + +In Pydantic Version 2 würden Sie das Attribut `model_config` verwenden, das ein `dict` akzeptiert, wie beschrieben in Pydantic-Dokumentation: Configuration. + +Sie können `json_schema_extra` setzen, mit einem `dict`, das alle zusätzlichen Daten enthält, die im generierten JSON-Schema angezeigt werden sollen, einschließlich `examples`. + +//// + +//// tab | Pydantic v1 + +In Pydantic Version 1 würden Sie eine interne Klasse `Config` und `schema_extra` verwenden, wie beschrieben in Pydantic-Dokumentation: Schema customization. + +Sie können `schema_extra` setzen, mit einem `dict`, das alle zusätzlichen Daten enthält, die im generierten JSON-Schema angezeigt werden sollen, einschließlich `examples`. + +//// + +/// tip | Tipp + +Mit derselben Technik können Sie das JSON-Schema erweitern und Ihre eigenen benutzerdefinierten Zusatzinformationen hinzufügen. + +Sie könnten das beispielsweise verwenden, um Metadaten für eine Frontend-Benutzeroberfläche usw. hinzuzufügen. + +/// + +/// info | Info + +OpenAPI 3.1.0 (verwendet seit FastAPI 0.99.0) hat Unterstützung für `examples` hinzugefügt, was Teil des **JSON Schema** Standards ist. + +Zuvor unterstützte es nur das Schlüsselwort `example` mit einem einzigen Beispiel. Dieses wird weiterhin von OpenAPI 3.1.0 unterstützt, ist jedoch deprecatet und nicht Teil des JSON Schema Standards. Wir empfehlen Ihnen daher, von `example` nach `examples` zu migrieren. 🤓 + +Mehr erfahren Sie am Ende dieser Seite. + +/// + +## Zusätzliche Argumente für `Field` { #field-additional-arguments } + +Wenn Sie `Field()` mit Pydantic-Modellen verwenden, können Sie ebenfalls zusätzliche `examples` deklarieren: + +{* ../../docs_src/schema_extra_example/tutorial002_py310.py hl[2,8:11] *} + +## `examples` im JSON-Schema – OpenAPI { #examples-in-json-schema-openapi } + +Bei Verwendung von: + +* `Path()` +* `Query()` +* `Header()` +* `Cookie()` +* `Body()` +* `Form()` +* `File()` + +können Sie auch eine Gruppe von `examples` mit zusätzlichen Informationen deklarieren, die zu ihren **JSON-Schemas** innerhalb von **OpenAPI** hinzugefügt werden. + +### `Body` mit `examples` { #body-with-examples } + +Hier übergeben wir `examples`, welches ein einzelnes Beispiel für die in `Body()` erwarteten Daten enthält: + +{* ../../docs_src/schema_extra_example/tutorial003_an_py310.py hl[22:29] *} + +### Beispiel in der Dokumentations-Benutzeroberfläche { #example-in-the-docs-ui } + +Mit jeder der oben genannten Methoden würde es in `/docs` so aussehen: + + + +### `Body` mit mehreren `examples` { #body-with-multiple-examples } + +Sie können natürlich auch mehrere `examples` übergeben: + +{* ../../docs_src/schema_extra_example/tutorial004_an_py310.py hl[23:38] *} + +Wenn Sie das tun, werden die Beispiele Teil des internen **JSON-Schemas** für diese Body-Daten. + +Während dies geschrieben wird, unterstützt Swagger UI, das für die Anzeige der Dokumentations-Benutzeroberfläche zuständige Tool, jedoch nicht die Anzeige mehrerer Beispiele für die Daten in **JSON Schema**. Aber lesen Sie unten für einen Workaround weiter. + +### OpenAPI-spezifische `examples` { #openapi-specific-examples } + +Schon bevor **JSON Schema** `examples` unterstützte, unterstützte OpenAPI ein anderes Feld, das auch `examples` genannt wurde. + +Diese **OpenAPI-spezifischen** `examples` finden sich in einem anderen Abschnitt der OpenAPI-Spezifikation. Sie sind **Details für jede *Pfadoperation***, nicht für jedes JSON-Schema. + +Und Swagger UI unterstützt dieses spezielle Feld `examples` schon seit einiger Zeit. Sie können es also verwenden, um verschiedene **Beispiele in der Benutzeroberfläche der Dokumentation anzuzeigen**. + +Das Format dieses OpenAPI-spezifischen Felds `examples` ist ein `dict` mit **mehreren Beispielen** (anstelle einer `list`), jedes mit zusätzlichen Informationen, die auch zu **OpenAPI** hinzugefügt werden. + +Dies erfolgt nicht innerhalb jedes in OpenAPI enthaltenen JSON-Schemas, sondern außerhalb, in der *Pfadoperation*. + +### Verwendung des Parameters `openapi_examples` { #using-the-openapi-examples-parameter } + +Sie können die OpenAPI-spezifischen `examples` in FastAPI mit dem Parameter `openapi_examples` deklarieren, für: + +* `Path()` +* `Query()` +* `Header()` +* `Cookie()` +* `Body()` +* `Form()` +* `File()` + +Die Schlüssel des `dict` identifizieren jedes Beispiel, und jeder Wert ist ein weiteres `dict`. + +Jedes spezifische Beispiel-`dict` in den `examples` kann Folgendes enthalten: + +* `summary`: Kurze Beschreibung für das Beispiel. +* `description`: Eine lange Beschreibung, die Markdown-Text enthalten kann. +* `value`: Dies ist das tatsächlich angezeigte Beispiel, z. B. ein `dict`. +* `externalValue`: Alternative zu `value`, eine URL, die auf das Beispiel verweist. Allerdings wird dies möglicherweise nicht von so vielen Tools unterstützt wie `value`. + +Sie können es so verwenden: + +{* ../../docs_src/schema_extra_example/tutorial005_an_py310.py hl[23:49] *} + +### OpenAPI-Beispiele in der Dokumentations-Benutzeroberfläche { #openapi-examples-in-the-docs-ui } + +Wenn `openapi_examples` zu `Body()` hinzugefügt wird, würde `/docs` so aussehen: + + + +## Technische Details { #technical-details } + +/// tip | Tipp + +Wenn Sie bereits **FastAPI** Version **0.99.0 oder höher** verwenden, können Sie diese Details wahrscheinlich **überspringen**. + +Sie sind für ältere Versionen relevanter, bevor OpenAPI 3.1.0 verfügbar war. + +Sie können dies als eine kurze **Geschichtsstunde** zu OpenAPI und JSON Schema betrachten. 🤓 + +/// + +/// warning | Achtung + +Dies sind sehr technische Details zu den Standards **JSON Schema** und **OpenAPI**. + +Wenn die oben genannten Ideen bereits für Sie funktionieren, reicht das möglicherweise aus und Sie benötigen diese Details wahrscheinlich nicht, überspringen Sie sie gerne. + +/// + +Vor OpenAPI 3.1.0 verwendete OpenAPI eine ältere und modifizierte Version von **JSON Schema**. + +JSON Schema hatte keine `examples`, daher fügte OpenAPI seiner eigenen modifizierten Version ein eigenes `example`-Feld hinzu. + +OpenAPI fügte auch die Felder `example` und `examples` zu anderen Teilen der Spezifikation hinzu: + +* `Parameter Object` (in der Spezifikation), das verwendet wurde von FastAPIs: + * `Path()` + * `Query()` + * `Header()` + * `Cookie()` +* `Request Body Object` im Feld `content` des `Media Type Object`s (in der Spezifikation), das verwendet wurde von FastAPIs: + * `Body()` + * `File()` + * `Form()` + +/// info | Info + +Dieser alte, OpenAPI-spezifische `examples`-Parameter heißt seit FastAPI `0.103.0` jetzt `openapi_examples`. + +/// + +### JSON Schemas Feld `examples` { #json-schemas-examples-field } + +Aber dann fügte JSON Schema ein `examples`-Feld zu einer neuen Version der Spezifikation hinzu. + +Und dann basierte das neue OpenAPI 3.1.0 auf der neuesten Version (JSON Schema 2020-12), die dieses neue Feld `examples` enthielt. + +Und jetzt hat dieses neue `examples`-Feld Vorrang vor dem alten (und benutzerdefinierten) `example`-Feld, im Singular, das jetzt deprecatet ist. + +Dieses neue `examples`-Feld in JSON Schema ist **nur eine `list`** von Beispielen, kein Dict mit zusätzlichen Metadaten wie an den anderen Stellen in OpenAPI (oben beschrieben). + +/// info | Info + +Selbst, nachdem OpenAPI 3.1.0 veröffentlicht wurde, mit dieser neuen, einfacheren Integration mit JSON Schema, unterstützte Swagger UI, das Tool, das die automatische Dokumentation bereitstellt, eine Zeit lang OpenAPI 3.1.0 nicht (das tut es seit Version 5.0.0 🎉). + +Aus diesem Grund verwendeten Versionen von FastAPI vor 0.99.0 immer noch Versionen von OpenAPI vor 3.1.0. + +/// + +### Pydantic- und FastAPI-`examples` { #pydantic-and-fastapi-examples } + +Wenn Sie `examples` innerhalb eines Pydantic-Modells hinzufügen, indem Sie `schema_extra` oder `Field(examples=["something"])` verwenden, wird dieses Beispiel dem **JSON-Schema** für dieses Pydantic-Modell hinzugefügt. + +Und dieses **JSON-Schema** des Pydantic-Modells ist in der **OpenAPI** Ihrer API enthalten und wird dann in der Benutzeroberfläche der Dokumentation verwendet. + +In Versionen von FastAPI vor 0.99.0 (0.99.0 und höher verwenden das neuere OpenAPI 3.1.0), wenn Sie `example` oder `examples` mit einem der anderen Werkzeuge (`Query()`, `Body()`, usw.) verwendet haben, wurden diese Beispiele nicht zum JSON-Schema hinzugefügt, das diese Daten beschreibt (nicht einmal zur OpenAPI-eigenen Version von JSON Schema), sondern direkt zur *Pfadoperation*-Deklaration in OpenAPI (außerhalb der Teile von OpenAPI, die JSON Schema verwenden). + +Aber jetzt, da FastAPI 0.99.0 und höher, OpenAPI 3.1.0 verwendet, das JSON Schema 2020-12 verwendet, und Swagger UI 5.0.0 und höher, ist alles konsistenter und die Beispiele sind in JSON Schema enthalten. + +### Swagger-Benutzeroberfläche und OpenAPI-spezifische `examples` { #swagger-ui-and-openapi-specific-examples } + +Da die Swagger-Benutzeroberfläche derzeit nicht mehrere JSON Schema Beispiele unterstützt (Stand: 26.08.2023), hatten Benutzer keine Möglichkeit, mehrere Beispiele in der Dokumentation anzuzeigen. + +Um dieses Problem zu lösen, hat FastAPI `0.103.0` **Unterstützung** für die Deklaration desselben alten **OpenAPI-spezifischen** `examples`-Felds mit dem neuen Parameter `openapi_examples` hinzugefügt. 🤓 + +### Zusammenfassung { #summary } + +Ich habe immer gesagt, dass ich Geschichte nicht so sehr mag ... und jetzt schauen Sie mich an, wie ich „Technikgeschichte“-Unterricht gebe. 😅 + +Kurz gesagt: **Aktualisieren Sie auf FastAPI 0.99.0 oder höher**, und die Dinge sind viel **einfacher, konsistenter und intuitiver**, und Sie müssen nicht alle diese historischen Details kennen. 😎 diff --git a/docs/de/docs/tutorial/security/first-steps.md b/docs/de/docs/tutorial/security/first-steps.md new file mode 100644 index 0000000..20fcd0c --- /dev/null +++ b/docs/de/docs/tutorial/security/first-steps.md @@ -0,0 +1,205 @@ +# Sicherheit – Erste Schritte { #security-first-steps } + +Stellen wir uns vor, dass Sie Ihre **Backend**-API auf einer Domain haben. + +Und Sie haben ein **Frontend** auf einer anderen Domain oder in einem anderen Pfad derselben Domain (oder in einer Mobile-Anwendung). + +Und Sie möchten eine Möglichkeit haben, dass sich das Frontend mithilfe eines **Benutzernamens** und eines **Passworts** beim Backend authentisieren kann. + +Wir können **OAuth2** verwenden, um das mit **FastAPI** zu erstellen. + +Aber ersparen wir Ihnen die Zeit, die gesamte lange Spezifikation zu lesen, nur um die kleinen Informationen zu finden, die Sie benötigen. + +Lassen Sie uns die von **FastAPI** bereitgestellten Tools verwenden, um Sicherheit zu gewährleisten. + +## Wie es aussieht { #how-it-looks } + +Lassen Sie uns zunächst einfach den Code verwenden und sehen, wie er funktioniert, und dann kommen wir zurück, um zu verstehen, was passiert. + +## `main.py` erstellen { #create-main-py } + +Kopieren Sie das Beispiel in eine Datei `main.py`: + +{* ../../docs_src/security/tutorial001_an_py39.py *} + +## Ausführen { #run-it } + +/// info | Info + +Das Paket `python-multipart` wird automatisch mit **FastAPI** installiert, wenn Sie den Befehl `pip install "fastapi[standard]"` ausführen. + +Wenn Sie jedoch den Befehl `pip install fastapi` verwenden, ist das Paket `python-multipart` nicht standardmäßig enthalten. + +Um es manuell zu installieren, stellen Sie sicher, dass Sie eine [Virtuelle Umgebung](../../virtual-environments.md){.internal-link target=_blank} erstellen, sie aktivieren und es dann mit: + +```console +$ pip install python-multipart +``` + +installieren. + +Das liegt daran, dass **OAuth2** „Formulardaten“ zum Senden von `username` und `password` verwendet. + +/// + +Führen Sie das Beispiel aus mit: + +
+ +```console +$ fastapi dev main.py + +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +``` + +
+ +## Es testen { #check-it } + +Gehen Sie zu der interaktiven Dokumentation unter: http://127.0.0.1:8000/docs. + +Sie werden etwa Folgendes sehen: + + + +/// check | Authorize-Button! + +Sie haben bereits einen glänzenden, neuen „Authorize“-Button. + +Und Ihre *Pfadoperation* hat in der oberen rechten Ecke ein kleines Schloss, auf das Sie klicken können. + +/// + +Und wenn Sie darauf klicken, erhalten Sie ein kleines Anmeldeformular zur Eingabe eines `username` und `password` (und anderer optionaler Felder): + + + +/// note | Hinweis + +Es spielt keine Rolle, was Sie in das Formular eingeben, es wird noch nicht funktionieren. Wir kommen dahin. + +/// + +Dies ist natürlich nicht das Frontend für die Endbenutzer, aber es ist ein großartiges automatisches Tool, um Ihre gesamte API interaktiv zu dokumentieren. + +Es kann vom Frontend-Team verwendet werden (das auch Sie selbst sein können). + +Es kann von Anwendungen und Systemen Dritter verwendet werden. + +Und es kann auch von Ihnen selbst verwendet werden, um dieselbe Anwendung zu debuggen, zu prüfen und zu testen. + +## Der `password`-Flow { #the-password-flow } + +Lassen Sie uns nun etwas zurückgehen und verstehen, was das alles ist. + +Der `password`-„Flow“ ist eine der in OAuth2 definierten Wege („Flows“) zur Handhabung von Sicherheit und Authentifizierung. + +OAuth2 wurde so konzipiert, dass das Backend oder die API unabhängig vom Server sein kann, der den Benutzer authentifiziert. + +In diesem Fall handhabt jedoch dieselbe **FastAPI**-Anwendung sowohl die API als auch die Authentifizierung. + +Betrachten wir es also aus dieser vereinfachten Sicht: + +* Der Benutzer gibt den `username` und das `password` im Frontend ein und drückt `Enter`. +* Das Frontend (das im Browser des Benutzers läuft) sendet diesen `username` und das `password` an eine bestimmte URL in unserer API (deklariert mit `tokenUrl="token"`). +* Die API überprüft den `username` und das `password` und antwortet mit einem „Token“ (wir haben davon noch nichts implementiert). + * Ein „Token“ ist lediglich ein String mit einem Inhalt, den wir später verwenden können, um diesen Benutzer zu verifizieren. + * Normalerweise läuft ein Token nach einiger Zeit ab. + * Daher muss sich der Benutzer irgendwann später erneut anmelden. + * Und wenn der Token gestohlen wird, ist das Risiko geringer. Es handelt sich nicht um einen dauerhaften Schlüssel, der (in den meisten Fällen) für immer funktioniert. +* Das Frontend speichert diesen Token vorübergehend irgendwo. +* Der Benutzer klickt im Frontend, um zu einem anderen Abschnitt der Frontend-Web-Anwendung zu gelangen. +* Das Frontend muss weitere Daten von der API abrufen. + * Es benötigt jedoch eine Authentifizierung für diesen bestimmten Endpunkt. + * Um sich also bei unserer API zu authentifizieren, sendet es einen Header `Authorization` mit dem Wert `Bearer ` plus dem Token. + * Wenn der Token `foobar` enthielte, wäre der Inhalt des `Authorization`-Headers: `Bearer foobar`. + +## **FastAPI**s `OAuth2PasswordBearer` { #fastapis-oauth2passwordbearer } + +**FastAPI** bietet mehrere Tools auf unterschiedlichen Abstraktionsebenen zur Implementierung dieser Sicherheitsfunktionen. + +In diesem Beispiel verwenden wir **OAuth2** mit dem **Password**-Flow und einem **Bearer**-Token. Wir machen das mit der Klasse `OAuth2PasswordBearer`. + +/// info | Info + +Ein „Bearer“-Token ist nicht die einzige Option. + +Aber es ist die beste für unseren Anwendungsfall. + +Und es ist wahrscheinlich auch für die meisten anderen Anwendungsfälle die beste, es sei denn, Sie sind ein OAuth2-Experte und wissen genau, warum es eine andere Option gibt, die Ihren Anforderungen besser entspricht. + +In dem Fall gibt Ihnen **FastAPI** ebenfalls die Tools, die Sie zum Erstellen brauchen. + +/// + +Wenn wir eine Instanz der Klasse `OAuth2PasswordBearer` erstellen, übergeben wir den Parameter `tokenUrl`. Dieser Parameter enthält die URL, die der Client (das Frontend, das im Browser des Benutzers ausgeführt wird) verwendet, wenn er den `username` und das `password` sendet, um einen Token zu erhalten. + +{* ../../docs_src/security/tutorial001_an_py39.py hl[8] *} + +/// tip | Tipp + +Hier bezieht sich `tokenUrl="token"` auf eine relative URL `token`, die wir noch nicht erstellt haben. Da es sich um eine relative URL handelt, entspricht sie `./token`. + +Da wir eine relative URL verwenden, würde sich das, wenn sich Ihre API unter `https://example.com/` befindet, auf `https://example.com/token` beziehen. Wenn sich Ihre API jedoch unter `https://example.com/api/v1/` befände, würde es sich auf `https://example.com/api/v1/token` beziehen. + +Die Verwendung einer relativen URL ist wichtig, um sicherzustellen, dass Ihre Anwendung auch in einem fortgeschrittenen Anwendungsfall, wie [hinter einem Proxy](../../advanced/behind-a-proxy.md){.internal-link target=_blank}, weiterhin funktioniert. + +/// + +Dieser Parameter erstellt nicht diesen Endpunkt / diese *Pfadoperation*, sondern deklariert, dass die URL `/token` diejenige sein wird, die der Client verwenden soll, um den Token abzurufen. Diese Information wird in OpenAPI und dann in den interaktiven API-Dokumentationssystemen verwendet. + +Wir werden demnächst auch die eigentliche Pfadoperation erstellen. + +/// info | Info + +Wenn Sie ein sehr strenger „Pythonista“ sind, missfällt Ihnen möglicherweise die Schreibweise des Parameternamens `tokenUrl` anstelle von `token_url`. + +Das liegt daran, dass FastAPI denselben Namen wie in der OpenAPI-Spezifikation verwendet. Sodass Sie, wenn Sie mehr über eines dieser Sicherheitsschemas herausfinden möchten, den Namen einfach kopieren und einfügen können, um weitere Informationen darüber zu erhalten. + +/// + +Die Variable `oauth2_scheme` ist eine Instanz von `OAuth2PasswordBearer`, aber auch ein „Callable“. + +Es könnte wie folgt aufgerufen werden: + +```Python +oauth2_scheme(some, parameters) +``` + +Es kann also mit `Depends` verwendet werden. + +### Verwenden { #use-it } + +Jetzt können Sie dieses `oauth2_scheme` als Abhängigkeit `Depends` übergeben. + +{* ../../docs_src/security/tutorial001_an_py39.py hl[12] *} + +Diese Abhängigkeit stellt einen `str` bereit, der dem Parameter `token` der *Pfadoperation-Funktion* zugewiesen wird. + +**FastAPI** weiß, dass es diese Abhängigkeit verwenden kann, um ein „Sicherheitsschema“ im OpenAPI-Schema (und der automatischen API-Dokumentation) zu definieren. + +/// info | Technische Details + +**FastAPI** weiß, dass es die Klasse `OAuth2PasswordBearer` (deklariert in einer Abhängigkeit) verwenden kann, um das Sicherheitsschema in OpenAPI zu definieren, da es von `fastapi.security.oauth2.OAuth2` erbt, das wiederum von `fastapi.security.base.SecurityBase` erbt. + +Alle Sicherheits-Werkzeuge, die in OpenAPI integriert sind (und die automatische API-Dokumentation), erben von `SecurityBase`, so weiß **FastAPI**, wie es sie in OpenAPI integrieren muss. + +/// + +## Was es macht { #what-it-does } + +FastAPI wird im Request nach diesem `Authorization`-Header suchen, prüfen, ob der Wert `Bearer ` plus ein Token ist, und den Token als `str` zurückgeben. + +Wenn es keinen `Authorization`-Header sieht, oder der Wert keinen `Bearer `-Token hat, antwortet es direkt mit einem 401-Statuscode-Error (`UNAUTHORIZED`). + +Sie müssen nicht einmal prüfen, ob der Token existiert, um einen Fehler zurückzugeben. Seien Sie sicher, dass Ihre Funktion, wenn sie ausgeführt wird, ein `str` in diesem Token enthält. + +Sie können das bereits in der interaktiven Dokumentation ausprobieren: + + + +Wir überprüfen im Moment noch nicht die Gültigkeit des Tokens, aber das ist bereits ein Anfang. + +## Zusammenfassung { #recap } + +Mit nur drei oder vier zusätzlichen Zeilen haben Sie so bereits eine primitive Form der Sicherheit. diff --git a/docs/de/docs/tutorial/security/get-current-user.md b/docs/de/docs/tutorial/security/get-current-user.md new file mode 100644 index 0000000..e32e366 --- /dev/null +++ b/docs/de/docs/tutorial/security/get-current-user.md @@ -0,0 +1,105 @@ +# Aktuellen Benutzer abrufen { #get-current-user } + +Im vorherigen Kapitel hat das Sicherheitssystem (das auf dem Dependency Injection System basiert) der *Pfadoperation-Funktion* einen `token` vom Typ `str` überreicht: + +{* ../../docs_src/security/tutorial001_an_py39.py hl[12] *} + +Aber das ist immer noch nicht so nützlich. + +Lassen wir es uns den aktuellen Benutzer überreichen. + +## Ein Benutzermodell erstellen { #create-a-user-model } + +Erstellen wir zunächst ein Pydantic-Benutzermodell. + +So wie wir Pydantic zum Deklarieren von Bodys verwenden, können wir es auch überall sonst verwenden: + +{* ../../docs_src/security/tutorial002_an_py310.py hl[5,12:6] *} + +## Eine `get_current_user`-Abhängigkeit erstellen { #create-a-get-current-user-dependency } + +Erstellen wir eine Abhängigkeit `get_current_user`. + +Erinnern Sie sich, dass Abhängigkeiten Unterabhängigkeiten haben können? + +`get_current_user` wird seinerseits von `oauth2_scheme` abhängen, das wir zuvor erstellt haben. + +So wie wir es zuvor in der *Pfadoperation* direkt gemacht haben, erhält unsere neue Abhängigkeit `get_current_user` von der Unterabhängigkeit `oauth2_scheme` einen `token` vom Typ `str`: + +{* ../../docs_src/security/tutorial002_an_py310.py hl[25] *} + +## Den Benutzer abrufen { #get-the-user } + +`get_current_user` wird eine von uns erstellte (gefakte) Hilfsfunktion verwenden, welche einen Token vom Typ `str` entgegennimmt und unser Pydantic-`User`-Modell zurückgibt: + +{* ../../docs_src/security/tutorial002_an_py310.py hl[19:22,26:27] *} + +## Den aktuellen Benutzer einfügen { #inject-the-current-user } + +Und jetzt können wir wiederum `Depends` mit unserem `get_current_user` in der *Pfadoperation* verwenden: + +{* ../../docs_src/security/tutorial002_an_py310.py hl[31] *} + +Beachten Sie, dass wir als Typ von `current_user` das Pydantic-Modell `User` deklarieren. + +Das wird uns innerhalb der Funktion bei Codevervollständigung und Typprüfungen helfen. + +/// tip | Tipp + +Sie erinnern sich vielleicht, dass Requestbodys ebenfalls mit Pydantic-Modellen deklariert werden. + +Weil Sie `Depends` verwenden, wird **FastAPI** hier aber nicht verwirrt. + +/// + +/// check | Testen + +Die Art und Weise, wie dieses System von Abhängigkeiten konzipiert ist, ermöglicht es uns, verschiedene Abhängigkeiten (verschiedene „Dependables“) zu haben, die alle ein `User`-Modell zurückgeben. + +Wir sind nicht darauf beschränkt, nur eine Abhängigkeit zu haben, die diesen Typ von Daten zurückgeben kann. + +/// + +## Andere Modelle { #other-models } + +Sie können jetzt den aktuellen Benutzer direkt in den *Pfadoperation-Funktionen* abrufen und die Sicherheitsmechanismen auf **Dependency Injection** Ebene handhaben, mittels `Depends`. + +Und Sie können alle Modelle und Daten für die Sicherheitsanforderungen verwenden (in diesem Fall ein Pydantic-Modell `User`). + +Sie sind jedoch nicht auf die Verwendung von bestimmten Datenmodellen, Klassen, oder Typen beschränkt. + +Möchten Sie eine `id` und eine `email` und keinen `username` in Ihrem Modell haben? Kein Problem. Sie können dieselben Tools verwenden. + +Möchten Sie nur ein `str` haben? Oder nur ein `dict`? Oder direkt eine Instanz eines Modells einer Datenbank-Klasse? Es funktioniert alles auf die gleiche Weise. + +Sie haben eigentlich keine Benutzer, die sich bei Ihrer Anwendung anmelden, sondern Roboter, Bots oder andere Systeme, die nur über einen Zugriffstoken verfügen? Auch hier funktioniert alles gleich. + +Verwenden Sie einfach jede Art von Modell, jede Art von Klasse, jede Art von Datenbank, die Sie für Ihre Anwendung benötigen. **FastAPI** deckt das alles mit seinem Dependency Injection System ab. + +## Codegröße { #code-size } + +Dieses Beispiel mag ausführlich erscheinen. Bedenken Sie, dass wir Sicherheit, Datenmodelle, Hilfsfunktionen und *Pfadoperationen* in derselben Datei vermischen. + +Aber hier ist der entscheidende Punkt. + +Der Code für Sicherheit und Dependency Injection wird einmal geschrieben. + +Sie können es so komplex gestalten, wie Sie möchten. Und dennoch haben Sie es nur einmal geschrieben, an einer einzigen Stelle. Mit all der Flexibilität. + +Aber Sie können Tausende von Endpunkten (*Pfadoperationen*) haben, die dasselbe Sicherheitssystem verwenden. + +Und alle (oder beliebige Teile davon) können Vorteil ziehen aus der Wiederverwendung dieser und anderer von Ihnen erstellter Abhängigkeiten. + +Und alle diese Tausenden von *Pfadoperationen* können nur drei Zeilen lang sein: + +{* ../../docs_src/security/tutorial002_an_py310.py hl[30:32] *} + +## Zusammenfassung { #recap } + +Sie können jetzt den aktuellen Benutzer direkt in Ihrer *Pfadoperation-Funktion* abrufen. + +Wir haben bereits die Hälfte geschafft. + +Wir müssen jetzt nur noch eine *Pfadoperation* hinzufügen, mittels der der Benutzer/Client tatsächlich seinen `username` und `password` senden kann. + +Das kommt als nächstes. diff --git a/docs/de/docs/tutorial/security/index.md b/docs/de/docs/tutorial/security/index.md new file mode 100644 index 0000000..39b0b93 --- /dev/null +++ b/docs/de/docs/tutorial/security/index.md @@ -0,0 +1,106 @@ +# Sicherheit { #security } + +Es gibt viele Wege, Sicherheit, Authentifizierung und Autorisierung zu handhaben. + +Und normalerweise ist es ein komplexes und „schwieriges“ Thema. + +In vielen Frameworks und Systemen erfordert allein die Handhabung von Sicherheit und Authentifizierung viel Aufwand und Code (in vielen Fällen kann er 50 % oder mehr des gesamten geschriebenen Codes ausmachen). + +**FastAPI** bietet mehrere Tools, die Ihnen helfen, schnell und auf standardisierte Weise mit **Sicherheit** umzugehen, ohne alle Sicherheits-Spezifikationen studieren und erlernen zu müssen. + +Aber schauen wir uns zunächst ein paar kleine Konzepte an. + +## In Eile? { #in-a-hurry } + +Wenn Ihnen diese Begriffe egal sind und Sie einfach *jetzt* Sicherheit mit Authentifizierung basierend auf Benutzername und Passwort hinzufügen müssen, fahren Sie mit den nächsten Kapiteln fort. + +## OAuth2 { #oauth2 } + +OAuth2 ist eine Spezifikation, die verschiedene Möglichkeiten zur Handhabung von Authentifizierung und Autorisierung definiert. + +Es handelt sich um eine recht umfangreiche Spezifikation, und sie deckt mehrere komplexe Anwendungsfälle ab. + +Sie umfasst Möglichkeiten zur Authentifizierung mithilfe eines „Dritten“ („third party“). + +Das ist es, was alle diese „Login mit Facebook, Google, X (Twitter), GitHub“-Systeme unter der Haube verwenden. + +### OAuth 1 { #oauth-1 } + +Es gab ein OAuth 1, das sich stark von OAuth2 unterscheidet und komplexer ist, da es direkte Spezifikationen enthält, wie die Kommunikation verschlüsselt wird. + +Heutzutage ist es nicht sehr populär und wird kaum verwendet. + +OAuth2 spezifiziert nicht, wie die Kommunikation verschlüsselt werden soll, sondern erwartet, dass Ihre Anwendung mit HTTPS bereitgestellt wird. + +/// tip | Tipp + +Im Abschnitt über **Deployment** erfahren Sie, wie Sie HTTPS mithilfe von Traefik und Let's Encrypt kostenlos einrichten. + +/// + +## OpenID Connect { #openid-connect } + +OpenID Connect ist eine weitere Spezifikation, die auf **OAuth2** basiert. + +Sie erweitert lediglich OAuth2, indem sie einige Dinge spezifiziert, die in OAuth2 relativ mehrdeutig sind, um zu versuchen, es interoperabler zu machen. + +Beispielsweise verwendet der Google Login OpenID Connect (welches seinerseits OAuth2 verwendet). + +Aber der Facebook Login unterstützt OpenID Connect nicht. Es hat seine eigene Variante von OAuth2. + +### OpenID (nicht „OpenID Connect“) { #openid-not-openid-connect } + +Es gab auch eine „OpenID“-Spezifikation. Sie versuchte das Gleiche zu lösen wie **OpenID Connect**, basierte aber nicht auf OAuth2. + +Es handelte sich also um ein komplett zusätzliches System. + +Heutzutage ist es nicht sehr populär und wird kaum verwendet. + +## OpenAPI { #openapi } + +OpenAPI (früher bekannt als Swagger) ist die offene Spezifikation zum Erstellen von APIs (jetzt Teil der Linux Foundation). + +**FastAPI** basiert auf **OpenAPI**. + +Das ist es, was erlaubt, mehrere automatische interaktive Dokumentations-Oberflächen, Codegenerierung, usw. zu haben. + +OpenAPI bietet die Möglichkeit, mehrere Sicherheits„systeme“ zu definieren. + +Durch deren Verwendung können Sie alle diese Standards-basierten Tools nutzen, einschließlich dieser interaktiven Dokumentationssysteme. + +OpenAPI definiert die folgenden Sicherheitsschemas: + +* `apiKey`: ein anwendungsspezifischer Schlüssel, der stammen kann von: + * Einem Query-Parameter. + * Einem Header. + * Einem Cookie. +* `http`: Standard-HTTP-Authentifizierungssysteme, einschließlich: + * `bearer`: ein Header `Authorization` mit dem Wert `Bearer ` plus einem Token. Dies wird von OAuth2 geerbt. + * HTTP Basic Authentication. + * HTTP Digest, usw. +* `oauth2`: Alle OAuth2-Methoden zum Umgang mit Sicherheit (genannt „Flows“). + * Mehrere dieser Flows eignen sich zum Aufbau eines OAuth 2.0-Authentifizierungsanbieters (wie Google, Facebook, X (Twitter), GitHub usw.): + * `implicit` + * `clientCredentials` + * `authorizationCode` + * Es gibt jedoch einen bestimmten „Flow“, der perfekt für die direkte Abwicklung der Authentifizierung in derselben Anwendung verwendet werden kann: + * `password`: Einige der nächsten Kapitel werden Beispiele dafür behandeln. +* `openIdConnect`: bietet eine Möglichkeit, zu definieren, wie OAuth2-Authentifizierungsdaten automatisch ermittelt werden können. + * Diese automatische Erkennung ist es, die in der OpenID Connect Spezifikation definiert ist. + + +/// tip | Tipp + +Auch die Integration anderer Authentifizierungs-/Autorisierungsanbieter wie Google, Facebook, X (Twitter), GitHub, usw. ist möglich und relativ einfach. + +Das komplexeste Problem besteht darin, einen Authentifizierungs-/Autorisierungsanbieter wie solche aufzubauen, aber **FastAPI** reicht Ihnen die Tools, das einfach zu erledigen, während Ihnen die schwere Arbeit abgenommen wird. + +/// + +## **FastAPI** Tools { #fastapi-utilities } + +FastAPI stellt für jedes dieser Sicherheitsschemas im Modul `fastapi.security` verschiedene Tools bereit, die die Verwendung dieser Sicherheitsmechanismen vereinfachen. + +In den nächsten Kapiteln erfahren Sie, wie Sie mit diesen von **FastAPI** bereitgestellten Tools Sicherheit zu Ihrer API hinzufügen. + +Und Sie werden auch sehen, wie dies automatisch in das interaktive Dokumentationssystem integriert wird. diff --git a/docs/de/docs/tutorial/security/oauth2-jwt.md b/docs/de/docs/tutorial/security/oauth2-jwt.md new file mode 100644 index 0000000..0d5ce58 --- /dev/null +++ b/docs/de/docs/tutorial/security/oauth2-jwt.md @@ -0,0 +1,273 @@ +# OAuth2 mit Passwort (und Hashing), Bearer mit JWT-Tokens { #oauth2-with-password-and-hashing-bearer-with-jwt-tokens } + +Da wir nun über den gesamten Sicherheitsablauf verfügen, machen wir die Anwendung tatsächlich sicher, indem wir JWT-Tokens und sicheres Passwort-Hashing verwenden. + +Diesen Code können Sie tatsächlich in Ihrer Anwendung verwenden, die Passwort-Hashes in Ihrer Datenbank speichern, usw. + +Wir bauen auf dem vorherigen Kapitel auf. + +## Über JWT { #about-jwt } + +JWT bedeutet „JSON Web Tokens“. + +Es ist ein Standard, um ein JSON-Objekt in einem langen, kompakten String ohne Leerzeichen zu kodieren. Das sieht so aus: + +``` +eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c +``` + +Da er nicht verschlüsselt ist, kann jeder die Informationen aus dem Inhalt wiederherstellen. + +Aber er ist signiert. Wenn Sie also einen von Ihnen gesendeten Token zurückerhalten, können Sie überprüfen, ob Sie ihn tatsächlich gesendet haben. + +Auf diese Weise können Sie einen Token mit einer Gültigkeitsdauer von beispielsweise einer Woche erstellen. Und wenn der Benutzer am nächsten Tag mit dem Token zurückkommt, wissen Sie, dass der Benutzer immer noch bei Ihrem System angemeldet ist. + +Nach einer Woche läuft der Token ab und der Benutzer wird nicht autorisiert und muss sich erneut anmelden, um einen neuen Token zu erhalten. Und wenn der Benutzer (oder ein Dritter) versuchen würde, den Token zu ändern, um das Ablaufdatum zu ändern, würden Sie das entdecken, weil die Signaturen nicht übereinstimmen würden. + +Wenn Sie mit JWT-Tokens spielen und sehen möchten, wie sie funktionieren, schauen Sie sich https://jwt.io an. + +## `PyJWT` installieren { #install-pyjwt } + +Wir müssen `PyJWT` installieren, um die JWT-Tokens in Python zu generieren und zu verifizieren. + +Stellen Sie sicher, dass Sie eine [virtuelle Umgebung](../../virtual-environments.md){.internal-link target=_blank} erstellen, sie aktivieren und dann `pyjwt` installieren: + +
+ +```console +$ pip install pyjwt + +---> 100% +``` + +
+ +/// info | Info + +Wenn Sie planen, digitale Signaturalgorithmen wie RSA oder ECDSA zu verwenden, sollten Sie die Kryptografie-Abhängigkeit `pyjwt[crypto]` installieren. + +Weitere Informationen finden Sie in der PyJWT-Installationsdokumentation. + +/// + +## Passwort-Hashing { #password-hashing } + +„Hashing“ bedeutet: Konvertieren eines Inhalts (in diesem Fall eines Passworts) in eine Folge von Bytes (ein schlichter String), die wie Kauderwelsch aussieht. + +Immer wenn Sie genau den gleichen Inhalt (genau das gleiche Passwort) übergeben, erhalten Sie genau den gleichen Kauderwelsch. + +Sie können jedoch nicht vom Kauderwelsch zurück zum Passwort konvertieren. + +### Warum Passwort-Hashing verwenden { #why-use-password-hashing } + +Wenn Ihre Datenbank gestohlen wird, hat der Dieb nicht die Klartext-Passwörter Ihrer Benutzer, sondern nur die Hashes. + +Der Dieb kann also nicht versuchen, die gleichen Passwörter in einem anderen System zu verwenden (da viele Benutzer überall das gleiche Passwort verwenden, wäre dies gefährlich). + +## `pwdlib` installieren { #install-pwdlib } + +pwdlib ist ein großartiges Python-Package, um Passwort-Hashes zu handhaben. + +Es unterstützt viele sichere Hashing-Algorithmen und Werkzeuge, um mit diesen zu arbeiten. + +Der empfohlene Algorithmus ist „Argon2“. + +Stellen Sie sicher, dass Sie eine [virtuelle Umgebung](../../virtual-environments.md){.internal-link target=_blank} erstellen, sie aktivieren, und installieren Sie dann pwdlib mit Argon2: + +
+ +```console +$ pip install "pwdlib[argon2]" + +---> 100% +``` + +
+ +/// tip | Tipp + +Mit `pwdlib` können Sie sogar konfigurieren, Passwörter zu lesen, die von **Django**, einem **Flask**-Sicherheits-Plugin, oder vielen anderen erstellt wurden. + +So könnten Sie beispielsweise die gleichen Daten aus einer Django-Anwendung in einer Datenbank mit einer FastAPI-Anwendung teilen. Oder schrittweise eine Django-Anwendung migrieren, während Sie dieselbe Datenbank verwenden. + +Und Ihre Benutzer könnten sich gleichzeitig über Ihre Django-Anwendung oder Ihre **FastAPI**-Anwendung anmelden. + +/// + +## Die Passwörter hashen und überprüfen { #hash-and-verify-the-passwords } + +Importieren Sie die benötigten Tools aus `pwdlib`. + +Erstellen Sie eine PasswordHash-Instanz mit empfohlenen Einstellungen – sie wird für das Hashen und Verifizieren von Passwörtern verwendet. + +/// tip | Tipp + +pwdlib unterstützt auch den bcrypt-Hashing-Algorithmus, enthält jedoch keine Legacy-Algorithmen – für die Arbeit mit veralteten Hashes wird die Verwendung der Bibliothek passlib empfohlen. + +Sie könnten sie beispielsweise verwenden, um von einem anderen System (wie Django) generierte Passwörter zu lesen und zu verifizieren, aber alle neuen Passwörter mit einem anderen Algorithmus wie Argon2 oder Bcrypt zu hashen. + +Und mit allen gleichzeitig kompatibel sein. + +/// + +Erstellen Sie eine Hilfsfunktion, um ein vom Benutzer stammendes Passwort zu hashen. + +Und eine weitere, um zu überprüfen, ob ein empfangenes Passwort mit dem gespeicherten Hash übereinstimmt. + +Und noch eine, um einen Benutzer zu authentifizieren und zurückzugeben. + +{* ../../docs_src/security/tutorial004_an_py310.py hl[8,49,56:57,60:61,70:76] *} + +/// note | Hinweis + +Wenn Sie sich die neue (gefakte) Datenbank `fake_users_db` anschauen, sehen Sie, wie das gehashte Passwort jetzt aussieht: `"$argon2id$v=19$m=65536,t=3,p=4$wagCPXjifgvUFBzq4hqe3w$CYaIb8sB+wtD+Vu/P4uod1+Qof8h+1g7bbDlBID48Rc"`. + +/// + +## JWT-Token verarbeiten { #handle-jwt-tokens } + +Importieren Sie die installierten Module. + +Erstellen Sie einen zufälligen geheimen Schlüssel, der zum Signieren der JWT-Tokens verwendet wird. + +Um einen sicheren zufälligen geheimen Schlüssel zu generieren, verwenden Sie den folgenden Befehl: + +
+ +```console +$ openssl rand -hex 32 + +09d25e094faa6ca2556c818166b7a9563b93f7099f6f0f4caa6cf63b88e8d3e7 +``` + +
+ +Und kopieren Sie die Ausgabe in die Variable `SECRET_KEY` (verwenden Sie nicht die im Beispiel). + +Erstellen Sie eine Variable `ALGORITHM` für den Algorithmus, der zum Signieren des JWT-Tokens verwendet wird, und setzen Sie sie auf `"HS256"`. + +Erstellen Sie eine Variable für das Ablaufdatum des Tokens. + +Definieren Sie ein Pydantic-Modell, das im Token-Endpunkt für die Response verwendet wird. + +Erstellen Sie eine Hilfsfunktion, um einen neuen Zugriffstoken zu generieren. + +{* ../../docs_src/security/tutorial004_an_py310.py hl[4,7,13:15,29:31,79:87] *} + +## Die Abhängigkeiten aktualisieren { #update-the-dependencies } + +Aktualisieren Sie `get_current_user`, um den gleichen Token wie zuvor zu erhalten, dieses Mal jedoch unter Verwendung von JWT-Tokens. + +Dekodieren Sie den empfangenen Token, validieren Sie ihn und geben Sie den aktuellen Benutzer zurück. + +Wenn der Token ungültig ist, geben Sie sofort einen HTTP-Fehler zurück. + +{* ../../docs_src/security/tutorial004_an_py310.py hl[90:107] *} + +## Die *Pfadoperation* `/token` aktualisieren { #update-the-token-path-operation } + +Erstellen Sie ein `timedelta` mit der Ablaufzeit des Tokens. + +Erstellen Sie einen echten JWT-Zugriffstoken und geben Sie ihn zurück. + +{* ../../docs_src/security/tutorial004_an_py310.py hl[118:133] *} + +### Technische Details zum JWT-„Subjekt“ `sub` { #technical-details-about-the-jwt-subject-sub } + +Die JWT-Spezifikation besagt, dass es einen Schlüssel `sub` mit dem Subjekt des Tokens gibt. + +Die Verwendung ist optional, aber dort würden Sie die Identifikation des Benutzers speichern, daher verwenden wir das hier. + +JWT kann auch für andere Dinge verwendet werden, abgesehen davon, einen Benutzer zu identifizieren und ihm zu erlauben, Operationen direkt auf Ihrer API auszuführen. + +Sie könnten beispielsweise ein „Auto“ oder einen „Blog-Beitrag“ identifizieren. + +Anschließend könnten Sie Berechtigungen für diese Entität hinzufügen, etwa „Fahren“ (für das Auto) oder „Bearbeiten“ (für den Blog). + +Und dann könnten Sie diesen JWT-Token einem Benutzer (oder Bot) geben und dieser könnte ihn verwenden, um diese Aktionen auszuführen (das Auto fahren oder den Blog-Beitrag bearbeiten), ohne dass er überhaupt ein Konto haben müsste, einfach mit dem JWT-Token, den Ihre API dafür generiert hat. + +Mit diesen Ideen kann JWT für weitaus anspruchsvollere Szenarien verwendet werden. + +In diesen Fällen könnten mehrere dieser Entitäten die gleiche ID haben, sagen wir `foo` (ein Benutzer `foo`, ein Auto `foo` und ein Blog-Beitrag `foo`). + +Deshalb, um ID-Kollisionen zu vermeiden, könnten Sie beim Erstellen des JWT-Tokens für den Benutzer, dem Wert des `sub`-Schlüssels ein Präfix, z. B. `username:` voranstellen. In diesem Beispiel hätte der Wert von `sub` also auch `username:johndoe` sein können. + +Der wesentliche Punkt ist, dass der `sub`-Schlüssel in der gesamten Anwendung eine eindeutige Kennung haben sollte, und er sollte ein String sein. + +## Es testen { #check-it } + +Führen Sie den Server aus und gehen Sie zur Dokumentation: http://127.0.0.1:8000/docs. + +Die Benutzeroberfläche sieht wie folgt aus: + + + +Melden Sie sich bei der Anwendung auf die gleiche Weise wie zuvor an. + +Verwenden Sie die Anmeldeinformationen: + +Benutzername: `johndoe` +Passwort: `secret` + +/// check | Testen + +Beachten Sie, dass im Code nirgendwo das Klartext-Passwort „`secret`“ steht, wir haben nur die gehashte Version. + +/// + + + +Rufen Sie den Endpunkt `/users/me/` auf, Sie erhalten die Response: + +```JSON +{ + "username": "johndoe", + "email": "johndoe@example.com", + "full_name": "John Doe", + "disabled": false +} +``` + + + +Wenn Sie die Developer Tools öffnen, können Sie sehen, dass die gesendeten Daten nur den Token enthalten. Das Passwort wird nur beim ersten Request gesendet, um den Benutzer zu authentisieren und diesen Zugriffstoken zu erhalten, aber nicht mehr danach: + + + +/// note | Hinweis + +Beachten Sie den Header `Authorization` mit einem Wert, der mit `Bearer ` beginnt. + +/// + +## Fortgeschrittene Verwendung mit `scopes` { #advanced-usage-with-scopes } + +OAuth2 hat ein Konzept von „Scopes“. + +Sie können diese verwenden, um einem JWT-Token einen bestimmten Satz von Berechtigungen zu übergeben. + +Anschließend können Sie diesen Token einem Benutzer direkt oder einem Dritten geben, damit diese mit einer Reihe von Einschränkungen mit Ihrer API interagieren können. + +Wie Sie sie verwenden und wie sie in **FastAPI** integriert sind, erfahren Sie später im **Handbuch für fortgeschrittene Benutzer**. + +## Zusammenfassung { #recap } + +Mit dem, was Sie bis hier gesehen haben, können Sie eine sichere **FastAPI**-Anwendung mithilfe von Standards wie OAuth2 und JWT einrichten. + +In fast jedem Framework wird die Handhabung der Sicherheit recht schnell zu einem ziemlich komplexen Thema. + +Viele Packages, die es stark vereinfachen, müssen viele Kompromisse beim Datenmodell, der Datenbank und den verfügbaren Funktionen eingehen. Und einige dieser Pakete, die die Dinge zu sehr vereinfachen, weisen tatsächlich Sicherheitslücken auf. + +--- + +**FastAPI** geht bei keiner Datenbank, keinem Datenmodell oder Tool Kompromisse ein. + +Es gibt Ihnen die volle Flexibilität, diejenigen auszuwählen, die am besten zu Ihrem Projekt passen. + +Und Sie können viele gut gepflegte und weit verbreitete Packages wie `pwdlib` und `PyJWT` direkt verwenden, da **FastAPI** keine komplexen Mechanismen zur Integration externer Pakete erfordert. + +Aber es bietet Ihnen die Werkzeuge, um den Prozess so weit wie möglich zu vereinfachen, ohne Kompromisse bei Flexibilität, Robustheit oder Sicherheit einzugehen. + +Und Sie können sichere Standardprotokolle wie OAuth2 auf relativ einfache Weise verwenden und implementieren. + +Im **Handbuch für fortgeschrittene Benutzer** erfahren Sie mehr darüber, wie Sie OAuth2-„Scopes“ für ein feingranuliertes Berechtigungssystem verwenden, das denselben Standards folgt. OAuth2 mit Scopes ist der Mechanismus, der von vielen großen Authentifizierungsanbietern wie Facebook, Google, GitHub, Microsoft, X (Twitter), usw. verwendet wird, um Drittanbieteranwendungen zu autorisieren, im Namen ihrer Benutzer mit ihren APIs zu interagieren. diff --git a/docs/de/docs/tutorial/security/simple-oauth2.md b/docs/de/docs/tutorial/security/simple-oauth2.md new file mode 100644 index 0000000..28cb83b --- /dev/null +++ b/docs/de/docs/tutorial/security/simple-oauth2.md @@ -0,0 +1,289 @@ +# Einfaches OAuth2 mit Password und Bearer { #simple-oauth2-with-password-and-bearer } + +Lassen Sie uns nun auf dem vorherigen Kapitel aufbauen und die fehlenden Teile hinzufügen, um einen vollständigen Sicherheits-Flow zu erhalten. + +## `username` und `password` entgegennehmen { #get-the-username-and-password } + +Wir werden **FastAPIs** Sicherheits-Werkzeuge verwenden, um den `username` und das `password` entgegenzunehmen. + +OAuth2 spezifiziert, dass der Client/Benutzer bei Verwendung des „Password Flow“ (den wir verwenden) die Felder `username` und `password` als Formulardaten senden muss. + +Und die Spezifikation sagt, dass die Felder so benannt werden müssen. `user-name` oder `email` würde also nicht funktionieren. + +Aber keine Sorge, Sie können sie Ihren Endbenutzern im Frontend so anzeigen, wie Sie möchten. + +Und Ihre Datenbankmodelle können beliebige andere Namen verwenden. + +Aber für die Login-*Pfadoperation* müssen wir diese Namen verwenden, um mit der Spezifikation kompatibel zu sein (und beispielsweise das integrierte API-Dokumentationssystem verwenden zu können). + +Die Spezifikation besagt auch, dass `username` und `password` als Formulardaten gesendet werden müssen (hier also kein JSON). + +### `scope` { #scope } + +Ferner sagt die Spezifikation, dass der Client ein weiteres Formularfeld "`scope`" („Geltungsbereich“) senden kann. + +Der Name des Formularfelds lautet `scope` (im Singular), tatsächlich handelt es sich jedoch um einen langen String mit durch Leerzeichen getrennten „Scopes“. + +Jeder „Scope“ ist nur ein String (ohne Leerzeichen). + +Diese werden normalerweise verwendet, um bestimmte Sicherheitsberechtigungen zu deklarieren, zum Beispiel: + +* `users:read` oder `users:write` sind gängige Beispiele. +* `instagram_basic` wird von Facebook / Instagram verwendet. +* `https://www.googleapis.com/auth/drive` wird von Google verwendet. + +/// info | Info + +In OAuth2 ist ein „Scope“ nur ein String, der eine bestimmte erforderliche Berechtigung deklariert. + +Es spielt keine Rolle, ob er andere Zeichen wie `:` enthält oder ob es eine URL ist. + +Diese Details sind implementierungsspezifisch. + +Für OAuth2 sind es einfach nur Strings. + +/// + +## Code, um `username` und `password` entgegenzunehmen { #code-to-get-the-username-and-password } + +Lassen Sie uns nun die von **FastAPI** bereitgestellten Werkzeuge verwenden, um das zu erledigen. + +### `OAuth2PasswordRequestForm` { #oauth2passwordrequestform } + +Importieren Sie zunächst `OAuth2PasswordRequestForm` und verwenden Sie es als Abhängigkeit mit `Depends` in der *Pfadoperation* für `/token`: + +{* ../../docs_src/security/tutorial003_an_py310.py hl[4,78] *} + +`OAuth2PasswordRequestForm` ist eine Klassenabhängigkeit, die einen Formularbody deklariert mit: + +* Dem `username`. +* Dem `password`. +* Einem optionalen `scope`-Feld als langem String, bestehend aus durch Leerzeichen getrennten Strings. +* Einem optionalen `grant_type`. + +/// tip | Tipp + +Die OAuth2-Spezifikation *erfordert* tatsächlich ein Feld `grant_type` mit dem festen Wert `password`, aber `OAuth2PasswordRequestForm` erzwingt dies nicht. + +Wenn Sie es erzwingen müssen, verwenden Sie `OAuth2PasswordRequestFormStrict` anstelle von `OAuth2PasswordRequestForm`. + +/// + +* Eine optionale `client_id` (benötigen wir für unser Beispiel nicht). +* Ein optionales `client_secret` (benötigen wir für unser Beispiel nicht). + +/// info | Info + +`OAuth2PasswordRequestForm` ist keine spezielle Klasse für **FastAPI**, so wie `OAuth2PasswordBearer`. + +`OAuth2PasswordBearer` lässt **FastAPI** wissen, dass es sich um ein Sicherheitsschema handelt. Daher wird es auf diese Weise zu OpenAPI hinzugefügt. + +Aber `OAuth2PasswordRequestForm` ist nur eine Klassenabhängigkeit, die Sie selbst hätten schreiben können, oder Sie hätten `Form`ular-Parameter direkt deklarieren können. + +Da es sich jedoch um einen häufigen Anwendungsfall handelt, wird er zur Vereinfachung direkt von **FastAPI** bereitgestellt. + +/// + +### Die Formulardaten verwenden { #use-the-form-data } + +/// tip | Tipp + +Die Instanz der Klassenabhängigkeit `OAuth2PasswordRequestForm` verfügt, statt eines Attributs `scope` mit dem durch Leerzeichen getrennten langen String, über das Attribut `scopes` mit einer tatsächlichen Liste von Strings, einem für jeden gesendeten Scope. + +In diesem Beispiel verwenden wir keine `scopes`, aber die Funktionalität ist vorhanden, wenn Sie sie benötigen. + +/// + +Rufen Sie nun die Benutzerdaten aus der (gefakten) Datenbank ab, für diesen `username` aus dem Formularfeld. + +Wenn es keinen solchen Benutzer gibt, geben wir die Fehlermeldung „Incorrect username or password“ zurück. + +Für den Fehler verwenden wir die Exception `HTTPException`: + +{* ../../docs_src/security/tutorial003_an_py310.py hl[3,79:81] *} + +### Das Passwort überprüfen { #check-the-password } + +Zu diesem Zeitpunkt liegen uns die Benutzerdaten aus unserer Datenbank vor, das Passwort haben wir jedoch noch nicht überprüft. + +Lassen Sie uns diese Daten zunächst in das Pydantic-Modell `UserInDB` einfügen. + +Sie sollten niemals Klartext-Passwörter speichern, daher verwenden wir ein (gefaktes) Passwort-Hashing-System. + +Wenn die Passwörter nicht übereinstimmen, geben wir denselben Fehler zurück. + +#### Passwort-Hashing { #password-hashing } + +„Hashing“ bedeutet: Konvertieren eines Inhalts (in diesem Fall eines Passworts) in eine Folge von Bytes (ein schlichter String), die wie Kauderwelsch aussieht. + +Immer wenn Sie genau den gleichen Inhalt (genau das gleiche Passwort) übergeben, erhalten Sie genau den gleichen Kauderwelsch. + +Sie können jedoch nicht vom Kauderwelsch zurück zum Passwort konvertieren. + +##### Warum Passwort-Hashing verwenden? { #why-use-password-hashing } + +Wenn Ihre Datenbank gestohlen wird, hat der Dieb nicht die Klartext-Passwörter Ihrer Benutzer, sondern nur die Hashes. + +Der Dieb kann also nicht versuchen, die gleichen Passwörter in einem anderen System zu verwenden (da viele Benutzer überall das gleiche Passwort verwenden, wäre dies gefährlich). + +{* ../../docs_src/security/tutorial003_an_py310.py hl[82:85] *} + +#### Über `**user_dict` { #about-user-dict } + +`UserInDB(**user_dict)` bedeutet: + +*Übergib die Schlüssel und Werte des `user_dict` direkt als Schlüssel-Wert-Argumente, äquivalent zu:* + +```Python +UserInDB( + username = user_dict["username"], + email = user_dict["email"], + full_name = user_dict["full_name"], + disabled = user_dict["disabled"], + hashed_password = user_dict["hashed_password"], +) +``` + +/// info | Info + +Eine ausführlichere Erklärung von `**user_dict` finden Sie in [der Dokumentation für **Extra Modelle**](../extra-models.md#about-user-in-dict){.internal-link target=_blank}. + +/// + +## Den Token zurückgeben { #return-the-token } + +Die Response des `token`-Endpunkts muss ein JSON-Objekt sein. + +Es sollte einen `token_type` haben. Da wir in unserem Fall „Bearer“-Token verwenden, sollte der Token-Typ "`bearer`" sein. + +Und es sollte einen `access_token` haben, mit einem String, der unseren Zugriffstoken enthält. + +In diesem einfachen Beispiel gehen wir einfach völlig unsicher vor und geben denselben `username` wie der Token zurück. + +/// tip | Tipp + +Im nächsten Kapitel sehen Sie eine wirklich sichere Implementierung mit Passwort-Hashing und JWT-Tokens. + +Aber konzentrieren wir uns zunächst auf die spezifischen Details, die wir benötigen. + +/// + +{* ../../docs_src/security/tutorial003_an_py310.py hl[87] *} + +/// tip | Tipp + +Gemäß der Spezifikation sollten Sie ein JSON mit einem `access_token` und einem `token_type` zurückgeben, genau wie in diesem Beispiel. + +Das müssen Sie selbst in Ihrem Code tun und sicherstellen, dass Sie diese JSON-Schlüssel verwenden. + +Es ist fast das Einzige, woran Sie denken müssen, es selbst richtigzumachen und die Spezifikationen einzuhalten. + +Den Rest erledigt **FastAPI** für Sie. + +/// + +## Die Abhängigkeiten aktualisieren { #update-the-dependencies } + +Jetzt werden wir unsere Abhängigkeiten aktualisieren. + +Wir möchten den `current_user` *nur* erhalten, wenn dieser Benutzer aktiv ist. + +Daher erstellen wir eine zusätzliche Abhängigkeit `get_current_active_user`, die wiederum `get_current_user` als Abhängigkeit verwendet. + +Beide Abhängigkeiten geben nur dann einen HTTP-Error zurück, wenn der Benutzer nicht existiert oder inaktiv ist. + +In unserem Endpunkt erhalten wir also nur dann einen Benutzer, wenn der Benutzer existiert, korrekt authentifiziert wurde und aktiv ist: + +{* ../../docs_src/security/tutorial003_an_py310.py hl[58:66,69:74,94] *} + +/// info | Info + +Der zusätzliche Header `WWW-Authenticate` mit dem Wert `Bearer`, den wir hier zurückgeben, ist ebenfalls Teil der Spezifikation. + +Jeder HTTP-(Fehler-)Statuscode 401 „UNAUTHORIZED“ soll auch einen `WWW-Authenticate`-Header zurückgeben. + +Im Fall von Bearer-Tokens (in unserem Fall) sollte der Wert dieses Headers `Bearer` lauten. + +Sie können diesen zusätzlichen Header tatsächlich weglassen und es würde trotzdem funktionieren. + +Aber er wird hier bereitgestellt, um den Spezifikationen zu entsprechen. + +Außerdem gibt es möglicherweise Tools, die ihn erwarten und verwenden (jetzt oder in der Zukunft) und das könnte für Sie oder Ihre Benutzer jetzt oder in der Zukunft nützlich sein. + +Das ist der Vorteil von Standards ... + +/// + +## Es in Aktion sehen { #see-it-in-action } + +Öffnen Sie die interaktive Dokumentation: http://127.0.0.1:8000/docs. + +### Authentifizieren { #authenticate } + +Klicken Sie auf den Button „Authorize“. + +Verwenden Sie die Anmeldedaten: + +Benutzer: `johndoe` + +Passwort: `secret`. + + + +Nach der Authentifizierung im System sehen Sie Folgendes: + + + +### Die eigenen Benutzerdaten ansehen { #get-your-own-user-data } + +Verwenden Sie nun die Operation `GET` mit dem Pfad `/users/me`. + +Sie erhalten Ihre Benutzerdaten: + +```JSON +{ + "username": "johndoe", + "email": "johndoe@example.com", + "full_name": "John Doe", + "disabled": false, + "hashed_password": "fakehashedsecret" +} +``` + + + +Wenn Sie auf das Schlosssymbol klicken und sich abmelden und dann den gleichen Vorgang nochmal versuchen, erhalten Sie einen HTTP 401 Error: + +```JSON +{ + "detail": "Not authenticated" +} +``` + +### Inaktiver Benutzer { #inactive-user } + +Versuchen Sie es nun mit einem inaktiven Benutzer und authentisieren Sie sich mit: + +Benutzer: `alice`. + +Passwort: `secret2`. + +Und versuchen Sie, die Operation `GET` mit dem Pfad `/users/me` zu verwenden. + +Sie erhalten die Fehlermeldung „Inactive user“: + +```JSON +{ + "detail": "Inactive user" +} +``` + +## Zusammenfassung { #recap } + +Sie verfügen jetzt über die Tools, um ein vollständiges Sicherheitssystem basierend auf `username` und `password` für Ihre API zu implementieren. + +Mit diesen Tools können Sie das Sicherheitssystem mit jeder Datenbank und jedem Benutzer oder Datenmodell kompatibel machen. + +Das einzige fehlende Detail ist, dass es noch nicht wirklich „sicher“ ist. + +Im nächsten Kapitel erfahren Sie, wie Sie eine sichere Passwort-Hashing-Bibliothek und JWT-Token verwenden. diff --git a/docs/de/docs/tutorial/sql-databases.md b/docs/de/docs/tutorial/sql-databases.md new file mode 100644 index 0000000..3af4ecd --- /dev/null +++ b/docs/de/docs/tutorial/sql-databases.md @@ -0,0 +1,357 @@ +# SQL (Relationale) Datenbanken { #sql-relational-databases } + +**FastAPI** erfordert nicht, dass Sie eine SQL (relationale) Datenbank verwenden. Sondern Sie können **jede beliebige Datenbank** verwenden, die Sie möchten. + +Hier werden wir ein Beispiel mit SQLModel sehen. + +**SQLModel** basiert auf SQLAlchemy und Pydantic. Es wurde vom selben Autor wie **FastAPI** entwickelt, um die perfekte Ergänzung für FastAPI-Anwendungen zu sein, die **SQL-Datenbanken** verwenden müssen. + +/// tip | Tipp + +Sie könnten jede andere SQL- oder NoSQL-Datenbankbibliothek verwenden, die Sie möchten (in einigen Fällen als „ORMs“ bezeichnet), FastAPI zwingt Sie nicht, irgendetwas zu verwenden. 😎 + +/// + +Da SQLModel auf SQLAlchemy basiert, können Sie problemlos **jede von SQLAlchemy unterstützte Datenbank** verwenden (was auch bedeutet, dass sie von SQLModel unterstützt werden), wie: + +* PostgreSQL +* MySQL +* SQLite +* Oracle +* Microsoft SQL Server, usw. + +In diesem Beispiel verwenden wir **SQLite**, da es eine einzelne Datei verwendet und Python integrierte Unterstützung bietet. Sie können also dieses Beispiel kopieren und direkt ausführen. + +Später, für Ihre Produktionsanwendung, möchten Sie möglicherweise einen Datenbankserver wie **PostgreSQL** verwenden. + +/// tip | Tipp + +Es gibt einen offiziellen Projektgenerator mit **FastAPI** und **PostgreSQL**, einschließlich eines Frontends und weiterer Tools: https://github.com/fastapi/full-stack-fastapi-template + +/// + +Dies ist ein sehr einfaches und kurzes Tutorial. Wenn Sie mehr über Datenbanken im Allgemeinen, über SQL oder fortgeschrittenere Funktionen erfahren möchten, besuchen Sie die SQLModel-Dokumentation. + +## `SQLModel` installieren { #install-sqlmodel } + +Stellen Sie zunächst sicher, dass Sie Ihre [virtuelle Umgebung](../virtual-environments.md){.internal-link target=_blank} erstellen, sie aktivieren und dann `sqlmodel` installieren: + +
+ +```console +$ pip install sqlmodel +---> 100% +``` + +
+ +## Die App mit einem einzelnen Modell erstellen { #create-the-app-with-a-single-model } + +Wir erstellen zuerst die einfachste erste Version der App mit einem einzigen **SQLModel**-Modell. + +Später werden wir sie verbessern, indem wir unter der Haube **mehrere Modelle** verwenden, um Sicherheit und Vielseitigkeit zu erhöhen. 🤓 + +### Modelle erstellen { #create-models } + +Importieren Sie `SQLModel` und erstellen Sie ein Datenbankmodell: + +{* ../../docs_src/sql_databases/tutorial001_an_py310.py ln[1:11] hl[7:11] *} + +Die `Hero`-Klasse ist einem Pydantic-Modell sehr ähnlich (faktisch ist sie darunter tatsächlich *ein Pydantic-Modell*). + +Es gibt ein paar Unterschiede: + +* `table=True` sagt SQLModel, dass dies ein *Tabellenmodell* ist, es soll eine **Tabelle** in der SQL-Datenbank darstellen, es ist nicht nur ein *Datenmodell* (wie es jede andere reguläre Pydantic-Klasse wäre). + +* `Field(primary_key=True)` sagt SQLModel, dass die `id` der **Primärschlüssel** in der SQL-Datenbank ist (Sie können mehr über SQL-Primärschlüssel in der SQLModel-Dokumentation erfahren). + + **Hinweis:** Wir verwenden für das Primärschlüsselfeld `int | None`, damit wir im Python-Code *ein Objekt ohne `id` erstellen* können (`id=None`), in der Annahme, dass die Datenbank sie *beim Speichern generiert*. SQLModel versteht, dass die Datenbank die `id` bereitstellt, und *definiert die Spalte im Datenbankschema als ein Nicht-Null-`INTEGER`*. Siehe die SQLModel-Dokumentation zu Primärschlüsseln für Details. + +* `Field(index=True)` sagt SQLModel, dass es einen **SQL-Index** für diese Spalte erstellen soll, was schnelleres Suchen in der Datenbank ermöglicht, wenn Daten mittels dieser Spalte gefiltert werden. + + SQLModel wird verstehen, dass etwas, das als `str` deklariert ist, eine SQL-Spalte des Typs `TEXT` (oder `VARCHAR`, abhängig von der Datenbank) sein wird. + +### Eine Engine erstellen { #create-an-engine } + +Eine SQLModel-`engine` (darunter ist es tatsächlich eine SQLAlchemy-`engine`) ist das, was die **Verbindungen** zur Datenbank hält. + +Sie hätten **ein einziges `engine`-Objekt** für Ihren gesamten Code, um sich mit derselben Datenbank zu verbinden. + +{* ../../docs_src/sql_databases/tutorial001_an_py310.py ln[14:18] hl[14:15,17:18] *} + +Die Verwendung von `check_same_thread=False` erlaubt FastAPI, dieselbe SQLite-Datenbank in verschiedenen Threads zu verwenden. Dies ist notwendig, da **ein einzelner Request** **mehr als einen Thread** verwenden könnte (zum Beispiel in Abhängigkeiten). + +Keine Sorge, so wie der Code strukturiert ist, werden wir später sicherstellen, dass wir **eine einzige SQLModel-*Session* pro Request** verwenden, das ist eigentlich das, was `check_same_thread` erreichen möchte. + +### Die Tabellen erstellen { #create-the-tables } + +Dann fügen wir eine Funktion hinzu, die `SQLModel.metadata.create_all(engine)` verwendet, um die **Tabellen für alle *Tabellenmodelle* zu erstellen**. + +{* ../../docs_src/sql_databases/tutorial001_an_py310.py ln[21:22] hl[21:22] *} + +### Eine Session-Abhängigkeit erstellen { #create-a-session-dependency } + +Eine **`Session`** speichert die **Objekte im Speicher** und verfolgt alle Änderungen, die an den Daten vorgenommen werden müssen, dann **verwendet sie die `engine`**, um mit der Datenbank zu kommunizieren. + +Wir werden eine FastAPI **Abhängigkeit** mit `yield` erstellen, die eine neue `Session` für jeden Request bereitstellt. Das ist es, was sicherstellt, dass wir eine einzige Session pro Request verwenden. 🤓 + +Dann erstellen wir eine `Annotated`-Abhängigkeit `SessionDep`, um den Rest des Codes zu vereinfachen, der diese Abhängigkeit nutzen wird. + +{* ../../docs_src/sql_databases/tutorial001_an_py310.py ln[25:30] hl[25:27,30] *} + +### Die Datenbanktabellen beim Start erstellen { #create-database-tables-on-startup } + +Wir werden die Datenbanktabellen erstellen, wenn die Anwendung startet. + +{* ../../docs_src/sql_databases/tutorial001_an_py310.py ln[32:37] hl[35:37] *} + +Hier erstellen wir die Tabellen bei einem Anwendungsstart-Event. + +Für die Produktion würden Sie wahrscheinlich ein Migrationsskript verwenden, das ausgeführt wird, bevor Sie Ihre App starten. 🤓 + +/// tip | Tipp + +SQLModel wird Migrationstools haben, die Alembic wrappen, aber im Moment können Sie Alembic direkt verwenden. + +/// + +### Einen Helden erstellen { #create-a-hero } + +Da jedes SQLModel-Modell auch ein Pydantic-Modell ist, können Sie es in denselben **Typannotationen** verwenden, die Sie für Pydantic-Modelle verwenden könnten. + +Wenn Sie beispielsweise einen Parameter vom Typ `Hero` deklarieren, wird er aus dem **JSON-Body** gelesen. + +Auf die gleiche Weise können Sie es als **Rückgabetyp** der Funktion deklarieren, und dann wird die Form der Daten in der automatischen API-Dokumentation angezeigt. + +{* ../../docs_src/sql_databases/tutorial001_an_py310.py ln[40:45] hl[40:45] *} + +Hier verwenden wir die `SessionDep`-Abhängigkeit (eine `Session`), um den neuen `Hero` zur `Session`-Instanz hinzuzufügen, die Änderungen an der Datenbank zu committen, die Daten im `hero` zu aktualisieren und ihn anschließend zurückzugeben. + +### Helden lesen { #read-heroes } + +Wir können `Hero`s aus der Datenbank mit einem `select()` **lesen**. Wir können ein `limit` und `offset` hinzufügen, um die Ergebnisse zu paginieren. + +{* ../../docs_src/sql_databases/tutorial001_an_py310.py ln[48:55] hl[51:52,54] *} + +### Einen Helden lesen { #read-one-hero } + +Wir können einen einzelnen `Hero` **lesen**. + +{* ../../docs_src/sql_databases/tutorial001_an_py310.py ln[58:63] hl[60] *} + +### Einen Helden löschen { #delete-a-hero } + +Wir können auch einen `Hero` **löschen**. + +{* ../../docs_src/sql_databases/tutorial001_an_py310.py ln[66:73] hl[71] *} + +### Die App ausführen { #run-the-app } + +Sie können die App ausführen: + +
+ +```console +$ fastapi dev main.py + +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +``` + +
+ +Gehen Sie dann zur `/docs`-UI, Sie werden sehen, dass **FastAPI** diese **Modelle** verwendet, um die API zu **dokumentieren**, und es wird sie auch verwenden, um die Daten zu **serialisieren** und zu **validieren**. + +
+ +
+ +## Die App mit mehreren Modellen aktualisieren { #update-the-app-with-multiple-models } + +Jetzt lassen Sie uns diese App ein wenig **refaktorisieren**, um die **Sicherheit** und **Vielseitigkeit** zu erhöhen. + +Wenn Sie die vorherige App überprüfen, können Sie in der UI sehen, dass sie bis jetzt dem Client erlaubt, die `id` des zu erstellenden `Hero` zu bestimmen. 😱 + +Das sollten wir nicht zulassen, sie könnten eine `id` überschreiben, die wir bereits in der DB zugewiesen haben. Die Entscheidung über die `id` sollte vom **Backend** oder der **Datenbank** getroffen werden, **nicht vom Client**. + +Außerdem erstellen wir einen `secret_name` für den Helden, aber bisher geben wir ihn überall zurück, das ist nicht sehr **geheim** ... 😅 + +Wir werden diese Dinge beheben, indem wir ein paar **zusätzliche Modelle** hinzufügen. Hier wird SQLModel glänzen. ✨ + +### Mehrere Modelle erstellen { #create-multiple-models } + +In **SQLModel** ist jede Modellklasse, die `table=True` hat, ein **Tabellenmodell**. + +Und jede Modellklasse, die `table=True` nicht hat, ist ein **Datenmodell**, diese sind tatsächlich nur Pydantic-Modelle (mit ein paar kleinen zusätzlichen Funktionen). 🤓 + +Mit SQLModel können wir **Vererbung** verwenden, um **doppelte Felder** in allen Fällen zu **vermeiden**. + +#### `HeroBase` – die Basisklasse { #herobase-the-base-class } + +Fangen wir mit einem `HeroBase`-Modell an, das alle **Felder hat, die von allen Modellen geteilt werden**: + +* `name` +* `age` + +{* ../../docs_src/sql_databases/tutorial002_an_py310.py ln[7:9] hl[7:9] *} + +#### `Hero` – das *Tabellenmodell* { #hero-the-table-model } + +Dann erstellen wir `Hero`, das tatsächliche *Tabellenmodell*, mit den **zusätzlichen Feldern**, die nicht immer in den anderen Modellen enthalten sind: + +* `id` +* `secret_name` + +Da `Hero` von `HeroBase` erbt, hat es **auch** die **Felder**, die in `HeroBase` deklariert sind, also sind alle Felder von `Hero`: + +* `id` +* `name` +* `age` +* `secret_name` + +{* ../../docs_src/sql_databases/tutorial002_an_py310.py ln[7:14] hl[12:14] *} + +#### `HeroPublic` – das öffentliche *Datenmodell* { #heropublic-the-public-data-model } + +Als nächstes erstellen wir ein `HeroPublic`-Modell, das an die API-Clients **zurückgegeben** wird. + +Es hat dieselben Felder wie `HeroBase`, sodass es `secret_name` nicht enthält. + +Endlich ist die Identität unserer Helden geschützt! 🥷 + +Es deklariert auch `id: int` erneut. Indem wir dies tun, machen wir einen **Vertrag** mit den API-Clients, damit sie immer damit rechnen können, dass die `id` vorhanden ist und ein `int` ist (sie wird niemals `None` sein). + +/// tip | Tipp + +Es ist sehr nützlich für die API-Clients, wenn das Rückgabemodell sicherstellt, dass ein Wert immer verfügbar und immer `int` (nicht `None`) ist, sie können viel einfacheren Code schreiben, wenn sie diese Sicherheit haben. + +Auch **automatisch generierte Clients** werden einfachere Schnittstellen haben, damit die Entwickler, die mit Ihrer API kommunizieren, viel mehr Freude an der Arbeit mit Ihrer API haben können. 😎 + +/// + +Alle Felder in `HeroPublic` sind dieselben wie in `HeroBase`, mit `id`, das als `int` (nicht `None`) deklariert ist: + +* `id` +* `name` +* `age` + +{* ../../docs_src/sql_databases/tutorial002_an_py310.py ln[7:18] hl[17:18] *} + +#### `HeroCreate` – das *Datenmodell* zum Erstellen eines Helden { #herocreate-the-data-model-to-create-a-hero } + +Nun erstellen wir ein `HeroCreate`-Modell, das die Daten der Clients **validiert**. + +Es hat dieselben Felder wie `HeroBase`, und es hat auch `secret_name`. + +Wenn die Clients **einen neuen Helden erstellen**, senden sie jetzt den `secret_name`, er wird in der Datenbank gespeichert, aber diese geheimen Namen werden den API-Clients nicht zurückgegeben. + +/// tip | Tipp + +So würden Sie **Passwörter** handhaben. Empfangen Sie sie, aber geben Sie sie nicht in der API zurück. + +Sie würden auch die Werte der Passwörter **hashen**, bevor Sie sie speichern, und sie **niemals im Klartext** speichern. + +/// + +Die Felder von `HeroCreate` sind: + +* `name` +* `age` +* `secret_name` + +{* ../../docs_src/sql_databases/tutorial002_an_py310.py ln[7:22] hl[21:22] *} + +#### `HeroUpdate` – das *Datenmodell* zum Aktualisieren eines Helden { #heroupdate-the-data-model-to-update-a-hero } + +In der vorherigen Version der App hatten wir keine Möglichkeit, einen Helden **zu aktualisieren**, aber jetzt mit **mehreren Modellen** können wir es. 🎉 + +Das `HeroUpdate`-*Datenmodell* ist etwas Besonderes, es hat **die selben Felder**, die benötigt werden, um einen neuen Helden zu erstellen, aber alle Felder sind **optional** (sie haben alle einen Defaultwert). Auf diese Weise, wenn Sie einen Helden aktualisieren, können Sie nur die Felder senden, die Sie aktualisieren möchten. + +Da sich tatsächlich **alle Felder ändern** (der Typ enthält jetzt `None` und sie haben jetzt einen Standardwert von `None`), müssen wir sie erneut **deklarieren**. + +Wir müssen wirklich nicht von `HeroBase` erben, weil wir alle Felder neu deklarieren. Ich lasse es aus Konsistenzgründen erben, aber das ist nicht notwendig. Es ist mehr eine Frage des persönlichen Geschmacks. 🤷 + +Die Felder von `HeroUpdate` sind: + +* `name` +* `age` +* `secret_name` + +{* ../../docs_src/sql_databases/tutorial002_an_py310.py ln[7:28] hl[25:28] *} + +### Mit `HeroCreate` erstellen und ein `HeroPublic` zurückgeben { #create-with-herocreate-and-return-a-heropublic } + +Nun, da wir **mehrere Modelle** haben, können wir die Teile der App aktualisieren, die sie verwenden. + +Wir empfangen im Request ein `HeroCreate`-*Datenmodell* und daraus erstellen wir ein `Hero`-*Tabellenmodell*. + +Dieses neue *Tabellenmodell* `Hero` wird die vom Client gesendeten Felder haben und zusätzlich eine `id`, die von der Datenbank generiert wird. + +Dann geben wir das gleiche *Tabellenmodell* `Hero` von der Funktion zurück. Aber da wir das `response_model` mit dem `HeroPublic`-*Datenmodell* deklarieren, wird **FastAPI** `HeroPublic` verwenden, um die Daten zu validieren und zu serialisieren. + +{* ../../docs_src/sql_databases/tutorial002_an_py310.py ln[56:62] hl[56:58] *} + +/// tip | Tipp + +Jetzt verwenden wir `response_model=HeroPublic` anstelle der **Rückgabetyp-Annotation** `-> HeroPublic`, weil der Wert, den wir zurückgeben, tatsächlich *kein* `HeroPublic` ist. + +Wenn wir `-> HeroPublic` deklariert hätten, würden Ihr Editor und Linter (zu Recht) reklamieren, dass Sie ein `Hero` anstelle eines `HeroPublic` zurückgeben. + +Durch die Deklaration in `response_model` sagen wir **FastAPI**, dass es seine Aufgabe erledigen soll, ohne die Typannotationen und die Hilfe von Ihrem Editor und anderen Tools zu beeinträchtigen. + +/// + +### Helden mit `HeroPublic` lesen { #read-heroes-with-heropublic } + +Wir können dasselbe wie zuvor tun, um `Hero`s zu **lesen**, und erneut verwenden wir `response_model=list[HeroPublic]`, um sicherzustellen, dass die Daten ordnungsgemäß validiert und serialisiert werden. + +{* ../../docs_src/sql_databases/tutorial002_an_py310.py ln[65:72] hl[65] *} + +### Einen einzelnen Helden mit `HeroPublic` lesen { #read-one-hero-with-heropublic } + +Wir können einen einzelnen Helden **lesen**: + +{* ../../docs_src/sql_databases/tutorial002_an_py310.py ln[75:80] hl[77] *} + +### Einen Helden mit `HeroUpdate` aktualisieren { #update-a-hero-with-heroupdate } + +Wir können einen Helden **aktualisieren**. Dafür verwenden wir eine HTTP-`PATCH`-Operation. + +Und im Code erhalten wir ein `dict` mit allen Daten, die vom Client gesendet wurden, **nur die Daten, die vom Client gesendet wurden**, unter Ausschluss von Werten, die dort nur als Defaultwerte vorhanden wären. Um dies zu tun, verwenden wir `exclude_unset=True`. Das ist der Haupttrick. 🪄 + +Dann verwenden wir `hero_db.sqlmodel_update(hero_data)`, um die `hero_db` mit den Daten aus `hero_data` zu aktualisieren. + +{* ../../docs_src/sql_databases/tutorial002_an_py310.py ln[83:93] hl[83:84,88:89] *} + +### Einen Helden wieder löschen { #delete-a-hero-again } + +Das **Löschen** eines Helden bleibt ziemlich gleich. + +Wir werden dieses Mal nicht dem Wunsch nachgeben, alles zu refaktorisieren. 😅 + +{* ../../docs_src/sql_databases/tutorial002_an_py310.py ln[96:103] hl[101] *} + +### Die App erneut ausführen { #run-the-app-again } + +Sie können die App erneut ausführen: + +
+ +```console +$ fastapi dev main.py + +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +``` + +
+ +Wenn Sie zur `/docs`-API-UI gehen, werden Sie sehen, dass sie jetzt aktualisiert ist und nicht mehr erwarten wird, die `id` vom Client beim Erstellen eines Helden zu erhalten, usw. + +
+ +
+ +## Zusammenfassung { #recap } + +Sie können **SQLModel** verwenden, um mit einer SQL-Datenbank zu interagieren und den Code mit *Datenmodellen* und *Tabellenmodellen* zu vereinfachen. + +Sie können viel mehr in der **SQLModel**-Dokumentation lernen, es gibt ein längeres Mini-Tutorial zur Verwendung von SQLModel mit **FastAPI**. 🚀 diff --git a/docs/de/docs/tutorial/static-files.md b/docs/de/docs/tutorial/static-files.md new file mode 100644 index 0000000..0c4e7c8 --- /dev/null +++ b/docs/de/docs/tutorial/static-files.md @@ -0,0 +1,40 @@ +# Statische Dateien { #static-files } + +Mit `StaticFiles` können Sie statische Dateien aus einem Verzeichnis automatisch bereitstellen. + +## `StaticFiles` verwenden { #use-staticfiles } + +* Importieren Sie `StaticFiles`. +* „Mounten“ Sie eine `StaticFiles()`-Instanz in einem bestimmten Pfad. + +{* ../../docs_src/static_files/tutorial001.py hl[2,6] *} + +/// note | Technische Details + +Sie könnten auch `from starlette.staticfiles import StaticFiles` verwenden. + +**FastAPI** stellt dasselbe `starlette.staticfiles` auch via `fastapi.staticfiles` bereit, als Annehmlichkeit für Sie, den Entwickler. Es kommt aber tatsächlich direkt von Starlette. + +/// + +### Was ist „Mounten“ { #what-is-mounting } + +„Mounten“ bedeutet das Hinzufügen einer vollständigen „unabhängigen“ Anwendung an einem bestimmten Pfad, die sich dann um die Handhabung aller Unterpfade kümmert. + +Dies unterscheidet sich von der Verwendung eines `APIRouter`, da eine gemountete Anwendung völlig unabhängig ist. Die OpenAPI und Dokumentation Ihrer Hauptanwendung enthalten nichts von der gemounteten Anwendung, usw. + +Weitere Informationen hierzu finden Sie im [Handbuch für fortgeschrittene Benutzer](../advanced/index.md){.internal-link target=_blank}. + +## Einzelheiten { #details } + +Das erste `"/static"` bezieht sich auf den Unterpfad, auf dem diese „Unteranwendung“ „gemountet“ wird. Daher wird jeder Pfad, der mit `"/static"` beginnt, von ihr verarbeitet. + +Das `directory="static"` bezieht sich auf den Namen des Verzeichnisses, das Ihre statischen Dateien enthält. + +Das `name="static"` gibt dieser Unteranwendung einen Namen, der intern von **FastAPI** verwendet werden kann. + +Alle diese Parameter können anders als „`static`“ lauten, passen Sie sie an die Bedürfnisse und spezifischen Details Ihrer eigenen Anwendung an. + +## Weitere Informationen { #more-info } + +Weitere Details und Optionen finden Sie in der Dokumentation von Starlette zu statischen Dateien. diff --git a/docs/de/docs/tutorial/testing.md b/docs/de/docs/tutorial/testing.md new file mode 100644 index 0000000..9c28a2a --- /dev/null +++ b/docs/de/docs/tutorial/testing.md @@ -0,0 +1,244 @@ +# Testen { #testing } + +Dank Starlette ist das Testen von **FastAPI**-Anwendungen einfach und macht Spaß. + +Es basiert auf HTTPX, welches wiederum auf der Grundlage von Requests konzipiert wurde, es ist also sehr vertraut und intuitiv. + +Damit können Sie pytest direkt mit **FastAPI** verwenden. + +## `TestClient` verwenden { #using-testclient } + +/// info | Info + +Um `TestClient` zu verwenden, installieren Sie zunächst `httpx`. + +Erstellen Sie eine [virtuelle Umgebung](../virtual-environments.md){.internal-link target=_blank}, aktivieren Sie sie und installieren Sie es dann, z. B.: + +```console +$ pip install httpx +``` + +/// + +Importieren Sie `TestClient`. + +Erstellen Sie einen `TestClient`, indem Sie ihm Ihre **FastAPI**-Anwendung übergeben. + +Erstellen Sie Funktionen mit einem Namen, der mit `test_` beginnt (das sind `pytest`-Konventionen). + +Verwenden Sie das `TestClient`-Objekt auf die gleiche Weise wie `httpx`. + +Schreiben Sie einfache `assert`-Anweisungen mit den Standard-Python-Ausdrücken, die Sie überprüfen müssen (wiederum, Standard-`pytest`). + +{* ../../docs_src/app_testing/tutorial001.py hl[2,12,15:18] *} + +/// tip | Tipp + +Beachten Sie, dass die Testfunktionen normal `def` und nicht `async def` sind. + +Und die Anrufe an den Client sind ebenfalls normale Anrufe, die nicht `await` verwenden. + +Dadurch können Sie `pytest` ohne Komplikationen direkt nutzen. + +/// + +/// note | Technische Details + +Sie könnten auch `from starlette.testclient import TestClient` verwenden. + +**FastAPI** stellt denselben `starlette.testclient` auch via `fastapi.testclient` bereit, als Annehmlichkeit für Sie, den Entwickler. Es kommt aber tatsächlich direkt von Starlette. + +/// + +/// tip | Tipp + +Wenn Sie in Ihren Tests neben dem Senden von Requests an Ihre FastAPI-Anwendung auch `async`-Funktionen aufrufen möchten (z. B. asynchrone Datenbankfunktionen), werfen Sie einen Blick auf die [Async-Tests](../advanced/async-tests.md){.internal-link target=_blank} im Handbuch für fortgeschrittene Benutzer. + +/// + +## Tests separieren { #separating-tests } + +In einer echten Anwendung würden Sie Ihre Tests wahrscheinlich in einer anderen Datei haben. + +Und Ihre **FastAPI**-Anwendung könnte auch aus mehreren Dateien/Modulen, usw. bestehen. + +### **FastAPI** Anwendungsdatei { #fastapi-app-file } + +Nehmen wir an, Sie haben eine Dateistruktur wie in [Größere Anwendungen](bigger-applications.md){.internal-link target=_blank} beschrieben: + +``` +. +├── app +│   ├── __init__.py +│   └── main.py +``` + +In der Datei `main.py` haben Sie Ihre **FastAPI**-Anwendung: + + +{* ../../docs_src/app_testing/main.py *} + + +### Testdatei { #testing-file } + +Dann könnten Sie eine Datei `test_main.py` mit Ihren Tests haben. Sie könnte sich im selben Python-Package befinden (dasselbe Verzeichnis mit einer `__init__.py`-Datei): + +``` hl_lines="5" +. +├── app +│   ├── __init__.py +│   ├── main.py +│   └── test_main.py +``` + +Da sich diese Datei im selben Package befindet, können Sie relative Importe verwenden, um das Objekt `app` aus dem `main`-Modul (`main.py`) zu importieren: + +{* ../../docs_src/app_testing/test_main.py hl[3] *} + + +... und haben den Code für die Tests wie zuvor. + +## Testen: erweitertes Beispiel { #testing-extended-example } + +Nun erweitern wir dieses Beispiel und fügen weitere Details hinzu, um zu sehen, wie verschiedene Teile getestet werden. + +### Erweiterte **FastAPI**-Anwendungsdatei { #extended-fastapi-app-file } + +Fahren wir mit der gleichen Dateistruktur wie zuvor fort: + +``` +. +├── app +│   ├── __init__.py +│   ├── main.py +│   └── test_main.py +``` + +Nehmen wir an, dass die Datei `main.py` mit Ihrer **FastAPI**-Anwendung jetzt einige andere **Pfadoperationen** hat. + +Sie verfügt über eine `GET`-Operation, die einen Fehler zurückgeben könnte. + +Sie verfügt über eine `POST`-Operation, die mehrere Fehler zurückgeben könnte. + +Beide *Pfadoperationen* erfordern einen `X-Token`-Header. + +//// tab | Python 3.10+ + +```Python +{!> ../../docs_src/app_testing/app_b_an_py310/main.py!} +``` + +//// + +//// tab | Python 3.9+ + +```Python +{!> ../../docs_src/app_testing/app_b_an_py39/main.py!} +``` + +//// + +//// tab | Python 3.8+ + +```Python +{!> ../../docs_src/app_testing/app_b_an/main.py!} +``` + +//// + +//// tab | Python 3.10+ nicht annotiert + +/// tip | Tipp + +Bevorzugen Sie die `Annotated`-Version, falls möglich. + +/// + +```Python +{!> ../../docs_src/app_testing/app_b_py310/main.py!} +``` + +//// + +//// tab | Python 3.8+ nicht annotiert + +/// tip | Tipp + +Bevorzugen Sie die `Annotated`-Version, falls möglich. + +/// + +```Python +{!> ../../docs_src/app_testing/app_b/main.py!} +``` + +//// + +### Erweiterte Testdatei { #extended-testing-file } + +Anschließend könnten Sie `test_main.py` mit den erweiterten Tests aktualisieren: + +{* ../../docs_src/app_testing/app_b/test_main.py *} + + +Wenn Sie möchten, dass der Client Informationen im Request übergibt und Sie nicht wissen, wie das geht, können Sie suchen (googeln), wie es mit `httpx` gemacht wird, oder sogar, wie es mit `requests` gemacht wird, da das Design von HTTPX auf dem Design von Requests basiert. + +Dann machen Sie in Ihren Tests einfach das gleiche. + +Z. B.: + +* Um einen *Pfad*- oder *Query*-Parameter zu übergeben, fügen Sie ihn der URL selbst hinzu. +* Um einen JSON-Body zu übergeben, übergeben Sie ein Python-Objekt (z. B. ein `dict`) an den Parameter `json`. +* Wenn Sie *Formulardaten* anstelle von JSON senden müssen, verwenden Sie stattdessen den `data`-Parameter. +* Um *Header* zu übergeben, verwenden Sie ein `dict` im `headers`-Parameter. +* Für *Cookies* ein `dict` im `cookies`-Parameter. + +Weitere Informationen zum Übergeben von Daten an das Backend (mithilfe von `httpx` oder dem `TestClient`) finden Sie in der HTTPX-Dokumentation. + +/// info | Info + +Beachten Sie, dass der `TestClient` Daten empfängt, die nach JSON konvertiert werden können, keine Pydantic-Modelle. + +Wenn Sie ein Pydantic-Modell in Ihrem Test haben und dessen Daten während des Testens an die Anwendung senden möchten, können Sie den `jsonable_encoder` verwenden, der in [JSON-kompatibler Encoder](encoder.md){.internal-link target=_blank} beschrieben wird. + +/// + +## Tests ausführen { #run-it } + +Danach müssen Sie nur noch `pytest` installieren. + +Erstellen Sie eine [virtuelle Umgebung](../virtual-environments.md){.internal-link target=_blank}, aktivieren Sie sie und installieren Sie es dann, z. B.: + +
+ +```console +$ pip install pytest + +---> 100% +``` + +
+ +Es erkennt die Dateien und Tests automatisch, führt sie aus und berichtet Ihnen die Ergebnisse. + +Führen Sie die Tests aus, mit: + +
+ +```console +$ pytest + +================ test session starts ================ +platform linux -- Python 3.6.9, pytest-5.3.5, py-1.8.1, pluggy-0.13.1 +rootdir: /home/user/code/superawesome-cli/app +plugins: forked-1.1.3, xdist-1.31.0, cov-2.8.1 +collected 6 items + +---> 100% + +test_main.py ...... [100%] + +================= 1 passed in 0.03s ================= +``` + +
diff --git a/docs/de/docs/virtual-environments.md b/docs/de/docs/virtual-environments.md new file mode 100644 index 0000000..11da496 --- /dev/null +++ b/docs/de/docs/virtual-environments.md @@ -0,0 +1,862 @@ +# Virtuelle Umgebungen { #virtual-environments } + +Wenn Sie an Python-Projekten arbeiten, sollten Sie wahrscheinlich eine **virtuelle Umgebung** (oder einen ähnlichen Mechanismus) verwenden, um die Packages, die Sie für jedes Projekt installieren, zu isolieren. + +/// info | Info + +Wenn Sie bereits über virtuelle Umgebungen Bescheid wissen, wie man sie erstellt und verwendet, möchten Sie diesen Abschnitt vielleicht überspringen. 🤓 + +/// + +/// tip | Tipp + +Eine **virtuelle Umgebung** unterscheidet sich von einer **Umgebungsvariable**. + +Eine **Umgebungsvariable** ist eine Variable im System, die von Programmen verwendet werden kann. + +Eine **virtuelle Umgebung** ist ein Verzeichnis mit einigen Dateien darin. + +/// + +/// info | Info + +Diese Seite wird Ihnen beibringen, wie Sie **virtuelle Umgebungen** verwenden und wie sie funktionieren. + +Wenn Sie bereit sind, ein **Tool zu verwenden, das alles für Sie verwaltet** (einschließlich der Installation von Python), probieren Sie uv. + +/// + +## Ein Projekt erstellen { #create-a-project } + +Erstellen Sie zuerst ein Verzeichnis für Ihr Projekt. + +Was ich normalerweise mache, ist, dass ich ein Verzeichnis namens `code` in meinem Home/Benutzerverzeichnis erstelle. + +Und darin erstelle ich ein Verzeichnis pro Projekt. + +
+ +```console +// Gehe zum Home-Verzeichnis +$ cd +// Erstelle ein Verzeichnis für alle Ihre Code-Projekte +$ mkdir code +// Gehe in dieses Code-Verzeichnis +$ cd code +// Erstelle ein Verzeichnis für dieses Projekt +$ mkdir awesome-project +// Gehe in dieses Projektverzeichnis +$ cd awesome-project +``` + +
+ +## Eine virtuelle Umgebung erstellen { #create-a-virtual-environment } + +Wenn Sie zum **ersten Mal** an einem Python-Projekt arbeiten, erstellen Sie eine virtuelle Umgebung **innerhalb Ihres Projekts**. + +/// tip | Tipp + +Sie müssen dies nur **einmal pro Projekt** tun, nicht jedes Mal, wenn Sie daran arbeiten. + +/// + +//// tab | `venv` + +Um eine virtuelle Umgebung zu erstellen, können Sie das `venv`-Modul verwenden, das mit Python geliefert wird. + +
+ +```console +$ python -m venv .venv +``` + +
+ +/// details | Was dieser Befehl bedeutet + +* `python`: das Programm namens `python` verwenden +* `-m`: ein Modul als Skript aufrufen, wir geben als nächstes an, welches Modul +* `venv`: das Modul namens `venv` verwenden, das normalerweise mit Python installiert wird +* `.venv`: die virtuelle Umgebung im neuen Verzeichnis `.venv` erstellen + +/// + +//// + +//// tab | `uv` + +Wenn Sie `uv` installiert haben, können Sie es verwenden, um eine virtuelle Umgebung zu erstellen. + +
+ +```console +$ uv venv +``` + +
+ +/// tip | Tipp + +Standardmäßig erstellt `uv` eine virtuelle Umgebung in einem Verzeichnis namens `.venv`. + +Aber Sie könnten es anpassen, indem Sie ein zusätzliches Argument mit dem Verzeichnisnamen übergeben. + +/// + +//// + +Dieser Befehl erstellt eine neue virtuelle Umgebung in einem Verzeichnis namens `.venv`. + +/// details | `.venv` oder ein anderer Name + +Sie könnten die virtuelle Umgebung in einem anderen Verzeichnis erstellen, aber es ist eine Konvention, sie `.venv` zu nennen. + +/// + +## Die virtuelle Umgebung aktivieren { #activate-the-virtual-environment } + +Aktivieren Sie die neue virtuelle Umgebung, damit jeder Python-Befehl, den Sie ausführen oder jedes Paket, das Sie installieren, diese Umgebung verwendet. + +/// tip | Tipp + +Tun Sie dies **jedes Mal**, wenn Sie eine **neue Terminalsitzung** starten, um an dem Projekt zu arbeiten. + +/// + +//// tab | Linux, macOS + +
+ +```console +$ source .venv/bin/activate +``` + +
+ +//// + +//// tab | Windows PowerShell + +
+ +```console +$ .venv\Scripts\Activate.ps1 +``` + +
+ +//// + +//// tab | Windows Bash + +Oder wenn Sie Bash für Windows verwenden (z. B. Git Bash): + +
+ +```console +$ source .venv/Scripts/activate +``` + +
+ +//// + +/// tip | Tipp + +Jedes Mal, wenn Sie ein **neues Paket** in dieser Umgebung installieren, aktivieren Sie die Umgebung erneut. + +So stellen Sie sicher, dass, wenn Sie ein **Terminalprogramm (CLI)** verwenden, das durch dieses Paket installiert wurde, Sie das aus Ihrer virtuellen Umgebung verwenden und nicht eines, das global installiert ist, wahrscheinlich mit einer anderen Version als der, die Sie benötigen. + +/// + +## Testen, ob die virtuelle Umgebung aktiv ist { #check-the-virtual-environment-is-active } + +Testen Sie, dass die virtuelle Umgebung aktiv ist (der vorherige Befehl funktioniert hat). + +/// tip | Tipp + +Dies ist **optional**, aber es ist eine gute Möglichkeit, **zu überprüfen**, ob alles wie erwartet funktioniert und Sie die beabsichtigte virtuelle Umgebung verwenden. + +/// + +//// tab | Linux, macOS, Windows Bash + +
+ +```console +$ which python + +/home/user/code/awesome-project/.venv/bin/python +``` + +
+ +Wenn es das `python`-Binary in `.venv/bin/python` anzeigt, innerhalb Ihres Projekts (in diesem Fall `awesome-project`), dann hat es funktioniert. 🎉 + +//// + +//// tab | Windows PowerShell + +
+ +```console +$ Get-Command python + +C:\Users\user\code\awesome-project\.venv\Scripts\python +``` + +
+ +Wenn es das `python`-Binary in `.venv\Scripts\python` anzeigt, innerhalb Ihres Projekts (in diesem Fall `awesome-project`), dann hat es funktioniert. 🎉 + +//// + +## `pip` aktualisieren { #upgrade-pip } + +/// tip | Tipp + +Wenn Sie `uv` verwenden, würden Sie das verwenden, um Dinge zu installieren anstelle von `pip`, sodass Sie `pip` nicht aktualisieren müssen. 😎 + +/// + +Wenn Sie `pip` verwenden, um Pakete zu installieren (es wird standardmäßig mit Python geliefert), sollten Sie es auf die neueste Version **aktualisieren**. + +Viele exotische Fehler beim Installieren eines Pakets werden einfach dadurch gelöst, dass zuerst `pip` aktualisiert wird. + +/// tip | Tipp + +Normalerweise würden Sie dies **einmal** tun, unmittelbar nachdem Sie die virtuelle Umgebung erstellt haben. + +/// + +Stellen Sie sicher, dass die virtuelle Umgebung aktiv ist (mit dem obigen Befehl) und führen Sie dann aus: + +
+ +```console +$ python -m pip install --upgrade pip + +---> 100% +``` + +
+ +/// tip | Tipp + +Manchmal kann beim Versuch, `pip` zu aktualisieren, der Fehler **`No module named pip`** auftreten. + +Wenn das passiert, installieren und aktualisieren Sie `pip` mit dem folgenden Befehl: + +
+ +```console +$ python -m ensurepip --upgrade + +---> 100% +``` + +
+ +Dieser Befehl installiert `pip`, falls es noch nicht installiert ist, und stellt außerdem sicher, dass die installierte Version von `pip` mindestens so aktuell ist wie die in `ensurepip` verfügbare. + +/// + +## `.gitignore` hinzufügen { #add-gitignore } + +Wenn Sie **Git** verwenden (was Sie sollten), fügen Sie eine `.gitignore`-Datei hinzu, um alles in Ihrem `.venv` von Git auszuschließen. + +/// tip | Tipp + +Wenn Sie `uv` verwendet haben, um die virtuelle Umgebung zu erstellen, hat es dies bereits für Sie getan, Sie können diesen Schritt überspringen. 😎 + +/// + +/// tip | Tipp + +Tun Sie dies **einmal**, unmittelbar nachdem Sie die virtuelle Umgebung erstellt haben. + +/// + +
+ +```console +$ echo "*" > .venv/.gitignore +``` + +
+ +/// details | Was dieser Befehl bedeutet + +* `echo "*"`: wird den Text `*` im Terminal „drucken“ (der nächste Teil ändert das ein wenig) +* `>`: alles, was durch den Befehl links von `>` im Terminal ausgegeben wird, sollte nicht gedruckt, sondern stattdessen in die Datei geschrieben werden, die rechts von `>` kommt +* `.gitignore`: der Name der Datei, in die der Text geschrieben werden soll + +Und `*` bedeutet für Git „alles“. Also wird alles im `.venv`-Verzeichnis ignoriert. + +Dieser Befehl erstellt eine Datei `.gitignore` mit dem Inhalt: + +```gitignore +* +``` + +/// + +## Pakete installieren { #install-packages } + +Nachdem Sie die Umgebung aktiviert haben, können Sie Pakete darin installieren. + +/// tip | Tipp + +Tun Sie dies **einmal**, wenn Sie die Pakete installieren oder aktualisieren, die Ihr Projekt benötigt. + +Wenn Sie eine Version aktualisieren oder ein neues Paket hinzufügen müssen, würden Sie **dies erneut tun**. + +/// + +### Pakete direkt installieren { #install-packages-directly } + +Wenn Sie es eilig haben und keine Datei verwenden möchten, um die Paketanforderungen Ihres Projekts zu deklarieren, können Sie sie direkt installieren. + +/// tip | Tipp + +Es ist eine (sehr) gute Idee, die Pakete und Versionen, die Ihr Programm benötigt, in einer Datei zu speichern (zum Beispiel `requirements.txt` oder `pyproject.toml`). + +/// + +//// tab | `pip` + +
+ +```console +$ pip install "fastapi[standard]" + +---> 100% +``` + +
+ +//// + +//// tab | `uv` + +Wenn Sie `uv` haben: + +
+ +```console +$ uv pip install "fastapi[standard]" +---> 100% +``` + +
+ +//// + +### Installation von `requirements.txt` { #install-from-requirements-txt } + +Wenn Sie eine `requirements.txt` haben, können Sie diese nun verwenden, um deren Pakete zu installieren. + +//// tab | `pip` + +
+ +```console +$ pip install -r requirements.txt +---> 100% +``` + +
+ +//// + +//// tab | `uv` + +Wenn Sie `uv` haben: + +
+ +```console +$ uv pip install -r requirements.txt +---> 100% +``` + +
+ +//// + +/// details | `requirements.txt` + +Eine `requirements.txt` mit einigen Paketen könnte folgendermaßen aussehen: + +```requirements.txt +fastapi[standard]==0.113.0 +pydantic==2.8.0 +``` + +/// + +## Ihr Programm ausführen { #run-your-program } + +Nachdem Sie die virtuelle Umgebung aktiviert haben, können Sie Ihr Programm ausführen, und es wird das Python innerhalb Ihrer virtuellen Umgebung mit den Paketen verwenden, die Sie dort installiert haben. + +
+ +```console +$ python main.py + +Hello World +``` + +
+ +## Ihren Editor konfigurieren { #configure-your-editor } + +Sie würden wahrscheinlich einen Editor verwenden, stellen Sie sicher, dass Sie ihn so konfigurieren, dass er dieselbe virtuelle Umgebung verwendet, die Sie erstellt haben (er wird sie wahrscheinlich automatisch erkennen), sodass Sie Autovervollständigungen und Inline-Fehler erhalten können. + +Zum Beispiel: + +* VS Code +* PyCharm + +/// tip | Tipp + +Normalerweise müssen Sie dies nur **einmal** tun, wenn Sie die virtuelle Umgebung erstellen. + +/// + +## Die virtuelle Umgebung deaktivieren { #deactivate-the-virtual-environment } + +Sobald Sie mit der Arbeit an Ihrem Projekt fertig sind, können Sie die virtuelle Umgebung **deaktivieren**. + +
+ +```console +$ deactivate +``` + +
+ +Auf diese Weise, wenn Sie `python` ausführen, wird nicht versucht, es aus dieser virtuellen Umgebung mit den dort installierten Paketen auszuführen. + +## Bereit zu arbeiten { #ready-to-work } + +Jetzt sind Sie bereit, mit Ihrem Projekt zu arbeiten. + +/// tip | Tipp + +Möchten Sie verstehen, was das alles oben bedeutet? + +Lesen Sie weiter. 👇🤓 + +/// + +## Warum virtuelle Umgebungen { #why-virtual-environments } + +Um mit FastAPI zu arbeiten, müssen Sie Python installieren. + +Danach müssen Sie FastAPI und alle anderen Pakete, die Sie verwenden möchten, **installieren**. + +Um Pakete zu installieren, würden Sie normalerweise den `pip`-Befehl verwenden, der mit Python geliefert wird (oder ähnliche Alternativen). + +Wenn Sie jedoch `pip` direkt verwenden, werden die Pakete in Ihrer **globalen Python-Umgebung** (der globalen Installation von Python) installiert. + +### Das Problem { #the-problem } + +Was ist also das Problem beim Installieren von Paketen in der globalen Python-Umgebung? + +Irgendwann werden Sie wahrscheinlich viele verschiedene Programme schreiben, die von **verschiedenen Paketen** abhängen. Und einige dieser Projekte, an denen Sie arbeiten, werden von **verschiedenen Versionen** desselben Pakets abhängen. 😱 + +Zum Beispiel könnten Sie ein Projekt namens `philosophers-stone` erstellen, dieses Programm hängt von einem anderen Paket namens **`harry`, Version `1`** ab. Also müssen Sie `harry` installieren. + +```mermaid +flowchart LR + stone(philosophers-stone) -->|benötigt| harry-1[harry v1] +``` + +Dann erstellen Sie zu einem späteren Zeitpunkt ein weiteres Projekt namens `prisoner-of-azkaban`, und dieses Projekt hängt ebenfalls von `harry` ab, aber dieses Projekt benötigt **`harry` Version `3`**. + +```mermaid +flowchart LR + azkaban(prisoner-of-azkaban) --> |benötigt| harry-3[harry v3] +``` + +Aber jetzt ist das Problem, wenn Sie die Pakete global (in der globalen Umgebung) installieren anstatt in einer lokalen **virtuellen Umgebung**, müssen Sie wählen, welche Version von `harry` zu installieren ist. + +Wenn Sie `philosophers-stone` ausführen möchten, müssen Sie zuerst `harry` Version `1` installieren, zum Beispiel mit: + +
+ +```console +$ pip install "harry==1" +``` + +
+ +Und dann hätten Sie `harry` Version `1` in Ihrer globalen Python-Umgebung installiert. + +```mermaid +flowchart LR + subgraph global[globale Umgebung] + harry-1[harry v1] + end + subgraph stone-project[philosophers-stone-Projekt] + stone(philosophers-stone) -->|benötigt| harry-1 + end +``` + +Aber dann, wenn Sie `prisoner-of-azkaban` ausführen möchten, müssen Sie `harry` Version `1` deinstallieren und `harry` Version `3` installieren (oder einfach die Version `3` installieren, was die Version `1` automatisch deinstallieren würde). + +
+ +```console +$ pip install "harry==3" +``` + +
+ +Und dann hätten Sie `harry` Version `3` in Ihrer globalen Python-Umgebung installiert. + +Und wenn Sie versuchen, `philosophers-stone` erneut auszuführen, besteht die Möglichkeit, dass es **nicht funktioniert**, weil es `harry` Version `1` benötigt. + +```mermaid +flowchart LR + subgraph global[globale Umgebung] + harry-1[harry v1] + style harry-1 fill:#ccc,stroke-dasharray: 5 5 + harry-3[harry v3] + end + subgraph stone-project[philosophers-stone-Projekt] + stone(philosophers-stone) -.-x|⛔️| harry-1 + end + subgraph azkaban-project[prisoner-of-azkaban-Projekt] + azkaban(prisoner-of-azkaban) --> |benötigt| harry-3 + end +``` + +/// tip | Tipp + +Es ist sehr üblich in Python-Paketen, alles zu versuchen, **Breaking Changes** in **neuen Versionen** zu vermeiden, aber es ist besser, auf Nummer sicher zu gehen und neue Versionen absichtlich zu installieren und wenn Sie die Tests ausführen können, sicherzustellen, dass alles korrekt funktioniert. + +/// + +Stellen Sie sich das jetzt mit **vielen** anderen **Paketen** vor, von denen alle Ihre **Projekte abhängen**. Das ist sehr schwierig zu verwalten. Und Sie würden wahrscheinlich einige Projekte mit einigen **inkompatiblen Versionen** der Pakete ausführen und nicht wissen, warum etwas nicht funktioniert. + +Darüber hinaus könnte es je nach Ihrem Betriebssystem (z. B. Linux, Windows, macOS) bereits mit installiertem Python geliefert worden sein. Und in diesem Fall hatte es wahrscheinlich einige Pakete mit bestimmten Versionen **installiert**, die von Ihrem System benötigt werden. Wenn Sie Pakete in der globalen Python-Umgebung installieren, könnten Sie einige der Programme, die mit Ihrem Betriebssystem geliefert wurden, **kaputtmachen**. + +## Wo werden Pakete installiert { #where-are-packages-installed } + +Wenn Sie Python installieren, werden einige Verzeichnisse mit einigen Dateien auf Ihrem Rechner erstellt. + +Einige dieser Verzeichnisse sind dafür zuständig, alle Pakete, die Sie installieren, aufzunehmen. + +Wenn Sie ausführen: + +
+ +```console +// Führen Sie dies jetzt nicht aus, es ist nur ein Beispiel 🤓 +$ pip install "fastapi[standard]" +---> 100% +``` + +
+ +Das lädt eine komprimierte Datei mit dem FastAPI-Code herunter, normalerweise von PyPI. + +Es wird auch Dateien für andere Pakete **herunterladen**, von denen FastAPI abhängt. + +Dann wird es all diese Dateien **extrahieren** und sie in ein Verzeichnis auf Ihrem Rechner legen. + +Standardmäßig werden diese heruntergeladenen und extrahierten Dateien in das Verzeichnis gelegt, das mit Ihrer Python-Installation kommt, das ist die **globale Umgebung**. + +## Was sind virtuelle Umgebungen { #what-are-virtual-environments } + +Die Lösung für die Probleme, alle Pakete in der globalen Umgebung zu haben, besteht darin, eine **virtuelle Umgebung für jedes Projekt** zu verwenden, an dem Sie arbeiten. + +Eine virtuelle Umgebung ist ein **Verzeichnis**, sehr ähnlich zu dem globalen, in dem Sie die Pakete für ein Projekt installieren können. + +Auf diese Weise hat jedes Projekt seine eigene virtuelle Umgebung (`.venv`-Verzeichnis) mit seinen eigenen Paketen. + +```mermaid +flowchart TB + subgraph stone-project[philosophers-stone-Projekt] + stone(philosophers-stone) --->|benötigt| harry-1 + subgraph venv1[.venv] + harry-1[harry v1] + end + end + subgraph azkaban-project[prisoner-of-azkaban-Projekt] + azkaban(prisoner-of-azkaban) --->|benötigt| harry-3 + subgraph venv2[.venv] + harry-3[harry v3] + end + end + stone-project ~~~ azkaban-project +``` + +## Was bedeutet das Aktivieren einer virtuellen Umgebung { #what-does-activating-a-virtual-environment-mean } + +Wenn Sie eine virtuelle Umgebung aktivieren, zum Beispiel mit: + +//// tab | Linux, macOS + +
+ +```console +$ source .venv/bin/activate +``` + +
+ +//// + +//// tab | Windows PowerShell + +
+ +```console +$ .venv\Scripts\Activate.ps1 +``` + +
+ +//// + +//// tab | Windows Bash + +Oder wenn Sie Bash für Windows verwenden (z. B. Git Bash): + +
+ +```console +$ source .venv/Scripts/activate +``` + +
+ +//// + +Dieser Befehl erstellt oder ändert einige [Umgebungsvariablen](environment-variables.md){.internal-link target=_blank}, die für die nächsten Befehle verfügbar sein werden. + +Eine dieser Variablen ist die `PATH`-Variable. + +/// tip | Tipp + +Sie können mehr über die `PATH`-Umgebungsvariable im Abschnitt [Umgebungsvariablen](environment-variables.md#path-environment-variable){.internal-link target=_blank} erfahren. + +/// + +Das Aktivieren einer virtuellen Umgebung fügt deren Pfad `.venv/bin` (auf Linux und macOS) oder `.venv\Scripts` (auf Windows) zur `PATH`-Umgebungsvariable hinzu. + +Angenommen, die `PATH`-Variable sah vor dem Aktivieren der Umgebung so aus: + +//// tab | Linux, macOS + +```plaintext +/usr/bin:/bin:/usr/sbin:/sbin +``` + +Das bedeutet, dass das System nach Programmen sucht in: + +* `/usr/bin` +* `/bin` +* `/usr/sbin` +* `/sbin` + +//// + +//// tab | Windows + +```plaintext +C:\Windows\System32 +``` + +Das bedeutet, dass das System nach Programmen sucht in: + +* `C:\Windows\System32` + +//// + +Nach dem Aktivieren der virtuellen Umgebung würde die `PATH`-Variable folgendermaßen aussehen: + +//// tab | Linux, macOS + +```plaintext +/home/user/code/awesome-project/.venv/bin:/usr/bin:/bin:/usr/sbin:/sbin +``` + +Das bedeutet, dass das System nun zuerst nach Programmen sucht in: + +```plaintext +/home/user/code/awesome-project/.venv/bin +``` + +bevor es in den anderen Verzeichnissen sucht. + +Wenn Sie also `python` im Terminal eingeben, wird das System das Python-Programm in + +```plaintext +/home/user/code/awesome-project/.venv/bin/python +``` + +finden und dieses verwenden. + +//// + +//// tab | Windows + +```plaintext +C:\Users\user\code\awesome-project\.venv\Scripts;C:\Windows\System32 +``` + +Das bedeutet, dass das System nun zuerst nach Programmen sucht in: + +```plaintext +C:\Users\user\code\awesome-project\.venv\Scripts +``` + +bevor es in den anderen Verzeichnissen sucht. + +Wenn Sie also `python` im Terminal eingeben, wird das System das Python-Programm in + +```plaintext +C:\Users\user\code\awesome-project\.venv\Scripts\python +``` + +finden und dieses verwenden. + +//// + +Ein wichtiger Punkt ist, dass es den Pfad der virtuellen Umgebung am **Anfang** der `PATH`-Variable platziert. Das System wird es **vor** allen anderen verfügbaren Pythons finden. Auf diese Weise, wenn Sie `python` ausführen, wird das Python **aus der virtuellen Umgebung** verwendet anstelle eines anderen `python` (zum Beispiel, einem `python` aus einer globalen Umgebung). + +Das Aktivieren einer virtuellen Umgebung ändert auch ein paar andere Dinge, aber dies ist eines der wichtigsten Dinge, die es tut. + +## Testen einer virtuellen Umgebung { #checking-a-virtual-environment } + +Wenn Sie testen, ob eine virtuelle Umgebung aktiv ist, zum Beispiel mit: + +//// tab | Linux, macOS, Windows Bash + +
+ +```console +$ which python + +/home/user/code/awesome-project/.venv/bin/python +``` + +
+ +//// + +//// tab | Windows PowerShell + +
+ +```console +$ Get-Command python + +C:\Users\user\code\awesome-project\.venv\Scripts\python +``` + +
+ +//// + +bedeutet das, dass das `python`-Programm, das verwendet wird, das in der **virtuellen Umgebung** ist. + +Sie verwenden `which` auf Linux und macOS und `Get-Command` in Windows PowerShell. + +So funktioniert dieser Befehl: Er wird in der `PATH`-Umgebungsvariable nachsehen und **jeden Pfad in der Reihenfolge durchgehen**, um das Programm namens `python` zu finden. Sobald er es findet, wird er Ihnen **den Pfad** zu diesem Programm anzeigen. + +Der wichtigste Punkt ist, dass, wenn Sie `python` aufrufen, genau dieses „`python`“ ausgeführt wird. + +So können Sie überprüfen, ob Sie sich in der richtigen virtuellen Umgebung befinden. + +/// tip | Tipp + +Es ist einfach, eine virtuelle Umgebung zu aktivieren, ein Python zu bekommen und dann **zu einem anderen Projekt zu wechseln**. + +Und das zweite Projekt **würde nicht funktionieren**, weil Sie das **falsche Python** verwenden, aus einer virtuellen Umgebung für ein anderes Projekt. + +Es ist nützlich, überprüfen zu können, welches `python` verwendet wird. 🤓 + +/// + +## Warum eine virtuelle Umgebung deaktivieren { #why-deactivate-a-virtual-environment } + +Zum Beispiel könnten Sie an einem Projekt `philosophers-stone` arbeiten, diese virtuelle Umgebung **aktivieren**, Pakete installieren und mit dieser Umgebung arbeiten. + +Und dann möchten Sie an **einem anderen Projekt** `prisoner-of-azkaban` arbeiten. + +Sie gehen zu diesem Projekt: + +
+ +```console +$ cd ~/code/prisoner-of-azkaban +``` + +
+ +Wenn Sie die virtuelle Umgebung für `philosophers-stone` nicht deaktivieren, wird beim Ausführen von `python` im Terminal versucht, das Python von `philosophers-stone` zu verwenden. + +
+ +```console +$ cd ~/code/prisoner-of-azkaban + +$ python main.py + +// Fehler beim Importieren von sirius, es ist nicht installiert 😱 +Traceback (most recent call last): + File "main.py", line 1, in + import sirius +``` + +
+ +Wenn Sie jedoch die virtuelle Umgebung deaktivieren und die neue für `prisoner-of-askaban` aktivieren, wird beim Ausführen von `python` das Python aus der virtuellen Umgebung in `prisoner-of-azkaban` verwendet. + +
+ +```console +$ cd ~/code/prisoner-of-azkaban + +// Sie müssen nicht im alten Verzeichnis sein, um zu deaktivieren, Sie können dies überall tun, sogar nachdem Sie zum anderen Projekt gewechselt haben 😎 +$ deactivate + +// Die virtuelle Umgebung in prisoner-of-azkaban/.venv 🚀 aktivieren +$ source .venv/bin/activate + +// Jetzt, wenn Sie python ausführen, wird das Paket sirius in dieser virtuellen Umgebung gefunden ✨ +$ python main.py + +I solemnly swear 🐺 +``` + +
+ +## Alternativen { #alternatives } + +Dies ist ein einfacher Leitfaden, um Ihnen den Einstieg zu erleichtern und Ihnen beizubringen, wie alles **unter der Haube** funktioniert. + +Es gibt viele **Alternativen** zur Verwaltung von virtuellen Umgebungen, Paketabhängigkeiten (Anforderungen), Projekten. + +Sobald Sie bereit sind und ein Tool verwenden möchten, das **das gesamte Projekt verwaltet**, Paketabhängigkeiten, virtuelle Umgebungen usw., würde ich Ihnen vorschlagen, uv auszuprobieren. + +`uv` kann viele Dinge tun, es kann: + +* **Python für Sie installieren**, einschließlich verschiedener Versionen +* Die **virtuelle Umgebung** für Ihre Projekte verwalten +* **Pakete installieren** +* Paket**abhängigkeiten und Versionen** für Ihr Projekt verwalten +* Sicherstellen, dass Sie eine **exakte** Menge an Paketen und Versionen zur Installation haben, einschließlich ihrer Abhängigkeiten, damit Sie sicher sein können, dass Sie Ihr Projekt in der Produktionsumgebung genauso ausführen können wie auf Ihrem Rechner während der Entwicklung, dies wird **Locking** genannt +* Und viele andere Dinge + +## Fazit { #conclusion } + +Wenn Sie das alles gelesen und verstanden haben, wissen Sie jetzt **viel mehr** über virtuelle Umgebungen als viele Entwickler da draußen. 🤓 + +Das Wissen über diese Details wird in Zukunft wahrscheinlich nützlich sein, wenn Sie etwas debuggen, das komplex erscheint, aber Sie werden wissen, **wie alles unter der Haube funktioniert**. 😎 diff --git a/docs/de/llm-prompt.md b/docs/de/llm-prompt.md new file mode 100644 index 0000000..5df904a --- /dev/null +++ b/docs/de/llm-prompt.md @@ -0,0 +1,340 @@ +### Target language + +Translate to German (Deutsch). + +Language code: de. + + +### Definitions + +"hyphen" + The character «-» + Unicode U+002D (HYPHEN-MINUS) + Alternative names: hyphen, dash, minus sign + +"dash" + The character «–» + Unicode U+2013 (EN DASH) + German name: Halbgeviertstrich + + +### Grammar to use when talking to the reader + +Use the formal grammar (use «Sie» instead of «Du»). + + +### Quotes + +1) Convert neutral double quotes («"») and English double typographic quotes («“» and «”») to German double typographic quotes («„» and «“»). Convert neutral single quotes («'») and English single typographic quotes («‘» and «’») to German single typographic quotes («‚» and «‘»). Do NOT convert «`"» to «„», do NOT convert «"`» to «“». + +Examples: + + Source (English): + + ««« + "Hello world" + “Hello Universe” + "He said: 'Hello'" + “my name is ‘Nils’” + `"__main__"` + `"items"` + »»» + + Result (German): + + ««« + „Hallo Welt“ + „Hallo Universum“ + „Er sagte: ‚Hallo‘“ + „Mein Name ist ‚Nils‘“ + `"__main__"` + `"items"` + »»» + + +### Ellipsis + +1) Make sure there is a space between an ellipsis and a word following or preceding the ellipsis. + +Examples: + + Source (English): + + ««« + ...as we intended. + ...this would work: + ...etc. + others... + More to come... + »»» + + Result (German): + + ««« + ... wie wir es beabsichtigt hatten. + ... das würde funktionieren: + ... usw. + Andere ... + Später mehr ... + »»» + +2) This does not apply in URLs, code blocks, and code snippets. Do not remove or add spaces there. + + +### Headings + +1) Translate headings using the infinite form. + +Examples: + + Source (English): + + ««« + ## Create a Project { #create-a-project } + »»» + + Translate with (German): + + ««« + ## Ein Projekt erstellen { #create-a-project } + »»» + + Do NOT translate with (German): + + ««« + ## Erstellen Sie ein Projekt { #create-a-project } + »»» + + Source (English): + + ««« + # Install Packages { #install-packages } + »»» + + Translate with (German): + + ««« + # Pakete installieren { #install-packages } + »»» + + Do NOT translate with (German): + + ««« + # Installieren Sie Pakete { #install-packages } + »»» + + Source (English): + + ««« + ### Run Your Program { #run-your-program } + »»» + + Translate with (German): + + ««« + ### Ihr Programm ausführen { #run-your-program } + »»» + + Do NOT translate with (German): + + ««« + ### Führen Sie Ihr Programm aus { #run-your-program } + »»» + +2) Make sure that the translated part of the heading does not end with a period. + +Example: + + Source (English): + + ««« + ## Another module with `APIRouter` { #another-module-with-apirouter } + »»» + + Translate with (German): + + ««« + ## Ein weiteres Modul mit `APIRouter` { #another-module-with-apirouter } + »»» + + Do NOT translate with (German) – notice the added period: + + ««« + ## Ein weiteres Modul mit `APIRouter`. { #another-module-with-apirouter } + »»» + +3) Replace occurrences of literal « - » (a space followed by a hyphen followed by a space) with « – » (a space followed by a dash followed by a space) in the translated part of the heading. + +Example: + + Source (English): + + ««« + # FastAPI in Containers - Docker { #fastapi-in-containers-docker } + »»» + + Translate with (German) – notice the dash: + + ««« + # FastAPI in Containern – Docker { #fastapi-in-containers-docker } + »»» + + Do NOT translate with (German) – notice the hyphen: + + ««« + # FastAPI in Containern - Docker { #fastapi-in-containers-docker } + »»» + +3.1) Do not apply rule 3 when there is no space before or no space after the hyphen. + +Example: + + Source (English): + + ««« + ## Type hints and annotations { #type-hints-and-annotations } + »»» + + Translate with (German) – notice the hyphen: + + ««« + ## Typhinweise und -annotationen { #type-hints-and-annotations } + »»» + + Do NOT translate with (German) – notice the dash: + + ««« + ## Typhinweise und –annotationen { #type-hints-and-annotations } + »»» + +3.2) Do not apply rule 3 to the untranslated part of the heading inside curly brackets, which you shall not translate. + + +### German instructions, when to use and when not to use hyphens in words (written in first person, which is you) + +In der Regel versuche ich so weit wie möglich Worte zusammenzuschreiben, also ohne Bindestrich, es sei denn, es ist Konkretesding-Klassevondingen, etwa «Pydantic-Modell» (aber: «Datenbankmodell»), «Python-Modul» (aber: «Standardmodul»). Ich setze auch einen Bindestrich, wenn er die gleichen Buchstaben verbindet, etwa «Enum-Member», «Cloud-Dienst», «Template-Engine». Oder wenn das Wort sonst einfach zu lang wird, etwa, «Performance-Optimierung». Oder um etwas visuell besser zu dokumentieren, etwa «Pfadoperation-Dekorator», «Pfadoperation-Funktion». + + +### German instructions about difficult to translate technical terms (written in first person, which is you) + +Ich versuche nicht, alles einzudeutschen. Das bezieht sich besonders auf Begriffe aus dem Bereich der Programmierung. Ich wandele zwar korrekt in Großschreibung um und setze Bindestriche, wo notwendig, aber ansonsten lasse ich solch ein Wort unverändert. Beispielsweise wird aus dem englischen Wort «string» in der deutschen Übersetzung «String», aber nicht «Zeichenkette». Oder aus dem englischen Wort «request body» wird in der deutschen Übersetzung «Requestbody», aber nicht «Anfragekörper». Oder aus dem englischen «response» wird im Deutschen «Response», aber nicht «Antwort». + + +### List of English terms and their preferred German translations + +Below is a list of English terms and their preferred German translations, separated by a colon («:»). Use these translations, do not use your own. If an existing translation does not use these terms, update it to use them. In the below list, a term or a translation may be followed by an explanation in brackets, which explains when to translate the term this way. If a translation is preceded by «NOT», then that means: do NOT use this translation for this term. English nouns, starting with the word «the», have the German genus – «der», «die», «das» – prepended to their German translation, to help you to grammatically decline them in the translation. They are given in singular case, unless they have «(plural)» attached, which means they are given in plural case. Verbs are given in the full infinitive – starting with the word «to». + +* «/// check»: «/// check | Testen» +* «/// danger»: «/// danger | Gefahr» +* «/// info»: «/// info | Info» +* «/// note | Technical Details»: «/// note | Technische Details» +* «/// note»: «/// note | Hinweis» +* «/// tip»: «/// tip | Tipp» +* «/// warning»: «/// warning | Achtung» +* «you»: «Sie» +* «your»: «Ihr» +* «e.g»: «z. B.» +* «etc.»: «usw.» +* «ref»: «Ref.» +* «the Tutorial - User guide»: «das Tutorial – Benutzerhandbuch» +* «the Advanced User Guide»: «das Handbuch für fortgeschrittene Benutzer» +* «the SQLModel docs»: «die SQLModel-Dokumentation» +* «the docs»: «die Dokumentation» (use singular case) +* «the env var»: «die Umgebungsvariable» +* «the `PATH` environment variable»: «die `PATH`-Umgebungsvariable» +* «the `PATH`»: «der `PATH`» +* «the `requirements.txt`»: «die `requirements.txt`» +* «the API Router»: «der API-Router» +* «the Authorization-Header»: «der Autorisierungsheader» +* «the `Authorization`-Header»: «der `Authorization`-Header» +* «the background task»: «der Hintergrundtask» +* «the button»: «der Button» +* «the cloud provider»: «der Cloudanbieter» +* «the CLI»: «Das CLI» +* «the command line interface»: «Das Kommandozeileninterface» +* «the default value»: «der Defaultwert» +* «the default value»: NOT «der Standardwert» +* «the default declaration»: «die Default-Deklaration» +* «the deployment»: «das Deployment» +* «the dict»: «das Dict» +* «the dictionary»: «das Dictionary» +* «the enumeration»: «die Enumeration» +* «the enum»: «das Enum» +* «the engine»: «die Engine» +* «the error response»: «die Error-Response» +* «the event»: «das Event» +* «the exception»: «die Exception» +* «the exception handler»: «der Exceptionhandler» +* «the form model»: «das Formularmodell» +* «the form body»: «der Formularbody» +* «the header»: «der Header» +* «the headers» (plural): «die Header» +* «in headers» (plural): «in Headern» +* «the forwarded header»: «der Forwarded-Header» +* «the lifespan event»: «das Lifespan-Event» +* «the lock»: «der Lock» +* «the locking»: «das Locking» +* «the mobile application»: «die Mobile-Anwendung» +* «the model object»: «das Modellobjekt» +* «the mounting»: «das Mounten» +* «mounted»: «gemountet» +* «the origin»: «das Origin» +* «the override»: «Die Überschreibung» +* «the parameter»: «der Parameter» +* «the parameters» (plural): «die Parameter» +* «the function parameter»: «der Funktionsparameter» +* «the default parameter»: «der Defaultparameter» +* «the body parameter»: «der Body-Parameter» +* «the request body parameter»: «der Requestbody-Parameter» +* «the path parameter»: «der Pfad-Parameter» +* «the query parameter»: «der Query-Parameter» +* «the cookie parameter»: «der Cookie-Parameter» +* «the header parameter»: «der Header-Parameter» +* «the form parameter»: «der Formular-Parameter» +* «the payload»: «die Payload» +* «the performance»: NOT «die Performance» +* «the query»: «die Query» +* «the recap»: «die Zusammenfassung» +* «the request» (what the client sends to the server): «der Request» +* «the request body»: «der Requestbody» +* «the request bodies» (plural): «die Requestbodys» +* «the response» (what the server sends back to the client): «die Response» +* «the return type»: «der Rückgabetyp» +* «the return value»: «der Rückgabewert» +* «the startup» (the event of the app): «der Startup» +* «the shutdown» (the event of the app): «der Shutdown» +* «the startup event»: «das Startup-Event» +* «the shutdown event»: «das Shutdown-Event» +* «the startup» (of the server): «das Hochfahren» +* «the startup» (the company): «das Startup» +* «the SDK»: «das SDK» +* «the tag»: «der Tag» +* «the type annotation»: «die Typannotation» +* «the type hint»: «der Typhinweis» +* «the wildcard»: «die Wildcard» +* «the worker class»: «die Workerklasse» +* «the worker class»: NOT «die Arbeiterklasse» +* «the worker process»: «der Workerprozess» +* «the worker process»: NOT «der Arbeiterprozess» +* «to commit»: «committen» +* «to deploy» (in the cloud): «deployen» +* «to modify»: «ändern» +* «to serve» (an application): «bereitstellen» +* «to serve» (a response): «ausliefern» +* «to serve»: NOT «bedienen» +* «to upgrade»: «aktualisieren» +* «to wrap»: «wrappen» +* «to wrap»: NOT «hüllen» +* «`foo` as a `type`»: «`foo` vom Typ `type`» +* «`foo` as a `type`»: «`foo`, ein `type`» +* «FastAPI's X»: «FastAPIs X» +* «Starlette's Y»: «Starlettes Y» +* «X is case-sensitive»: «Groß-/Klein­schrei­bung ist relevant in X» +* «X is case-insensitive»: «Groß-/Klein­schrei­bung ist nicht relevant in X» +* «standard Python»: «Standard-Python» +* «deprecated»: «deprecatet» + + +### Other rules + +Preserve indentation. Keep emoticons. Encode in utf-8. Use Linux line breaks (LF). diff --git a/docs/de/mkdocs.yml b/docs/de/mkdocs.yml new file mode 100644 index 0000000..de18856 --- /dev/null +++ b/docs/de/mkdocs.yml @@ -0,0 +1 @@ +INHERIT: ../en/mkdocs.yml diff --git a/docs/em/docs/advanced/additional-responses.md b/docs/em/docs/advanced/additional-responses.md new file mode 100644 index 0000000..655fc7a --- /dev/null +++ b/docs/em/docs/advanced/additional-responses.md @@ -0,0 +1,247 @@ +# 🌖 📨 🗄 + +/// warning + +👉 👍 🏧 ❔. + +🚥 👆 ▶️ ⏮️ **FastAPI**, 👆 💪 🚫 💪 👉. + +/// + +👆 💪 📣 🌖 📨, ⏮️ 🌖 👔 📟, 🔉 🆎, 📛, ♒️. + +👈 🌖 📨 🔜 🔌 🗄 🔗, 👫 🔜 😑 🛠️ 🩺. + +✋️ 👈 🌖 📨 👆 ✔️ ⚒ 💭 👆 📨 `Response` 💖 `JSONResponse` 🔗, ⏮️ 👆 👔 📟 & 🎚. + +## 🌖 📨 ⏮️ `model` + +👆 💪 🚶‍♀️ 👆 *➡ 🛠️ 👨‍🎨* 🔢 `responses`. + +⚫️ 📨 `dict`, 🔑 👔 📟 🔠 📨, 💖 `200`, & 💲 🎏 `dict`Ⓜ ⏮️ ℹ 🔠 👫. + +🔠 👈 📨 `dict`Ⓜ 💪 ✔️ 🔑 `model`, ⚗ Pydantic 🏷, 💖 `response_model`. + +**FastAPI** 🔜 ✊ 👈 🏷, 🏗 🚮 🎻 🔗 & 🔌 ⚫️ ☑ 🥉 🗄. + +🖼, 📣 ➕1️⃣ 📨 ⏮️ 👔 📟 `404` & Pydantic 🏷 `Message`, 👆 💪 ✍: + +{* ../../docs_src/additional_responses/tutorial001.py hl[18,22] *} + +/// note + +✔️ 🤯 👈 👆 ✔️ 📨 `JSONResponse` 🔗. + +/// + +/// info + +`model` 🔑 🚫 🍕 🗄. + +**FastAPI** 🔜 ✊ Pydantic 🏷 ⚪️➡️ 📤, 🏗 `JSON Schema`, & 🚮 ⚫️ ☑ 🥉. + +☑ 🥉: + +* 🔑 `content`, 👈 ✔️ 💲 ➕1️⃣ 🎻 🎚 (`dict`) 👈 🔌: + * 🔑 ⏮️ 📻 🆎, ✅ `application/json`, 👈 🔌 💲 ➕1️⃣ 🎻 🎚, 👈 🔌: + * 🔑 `schema`, 👈 ✔️ 💲 🎻 🔗 ⚪️➡️ 🏷, 📥 ☑ 🥉. + * **FastAPI** 🚮 🔗 📥 🌐 🎻 🔗 ➕1️⃣ 🥉 👆 🗄 ↩️ ✅ ⚫️ 🔗. 👉 🌌, 🎏 🈸 & 👩‍💻 💪 ⚙️ 👈 🎻 🔗 🔗, 🚚 👻 📟 ⚡ 🧰, ♒️. + +/// + +🏗 📨 🗄 👉 *➡ 🛠️* 🔜: + +```JSON hl_lines="3-12" +{ + "responses": { + "404": { + "description": "Additional Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Message" + } + } + } + }, + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Item" + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + } +} +``` + +🔗 🔗 ➕1️⃣ 🥉 🔘 🗄 🔗: + +```JSON hl_lines="4-16" +{ + "components": { + "schemas": { + "Message": { + "title": "Message", + "required": [ + "message" + ], + "type": "object", + "properties": { + "message": { + "title": "Message", + "type": "string" + } + } + }, + "Item": { + "title": "Item", + "required": [ + "id", + "value" + ], + "type": "object", + "properties": { + "id": { + "title": "Id", + "type": "string" + }, + "value": { + "title": "Value", + "type": "string" + } + } + }, + "ValidationError": { + "title": "ValidationError", + "required": [ + "loc", + "msg", + "type" + ], + "type": "object", + "properties": { + "loc": { + "title": "Location", + "type": "array", + "items": { + "type": "string" + } + }, + "msg": { + "title": "Message", + "type": "string" + }, + "type": { + "title": "Error Type", + "type": "string" + } + } + }, + "HTTPValidationError": { + "title": "HTTPValidationError", + "type": "object", + "properties": { + "detail": { + "title": "Detail", + "type": "array", + "items": { + "$ref": "#/components/schemas/ValidationError" + } + } + } + } + } + } +} +``` + +## 🌖 🔉 🆎 👑 📨 + +👆 💪 ⚙️ 👉 🎏 `responses` 🔢 🚮 🎏 🔉 🆎 🎏 👑 📨. + +🖼, 👆 💪 🚮 🌖 📻 🆎 `image/png`, 📣 👈 👆 *➡ 🛠️* 💪 📨 🎻 🎚 (⏮️ 📻 🆎 `application/json`) ⚖️ 🇩🇴 🖼: + +{* ../../docs_src/additional_responses/tutorial002.py hl[19:24,28] *} + +/// note + +👀 👈 👆 ✔️ 📨 🖼 ⚙️ `FileResponse` 🔗. + +/// + +/// info + +🚥 👆 ✔ 🎏 📻 🆎 🎯 👆 `responses` 🔢, FastAPI 🔜 🤔 📨 ✔️ 🎏 📻 🆎 👑 📨 🎓 (🔢 `application/json`). + +✋️ 🚥 👆 ✔️ ✔ 🛃 📨 🎓 ⏮️ `None` 🚮 📻 🆎, FastAPI 🔜 ⚙️ `application/json` 🙆 🌖 📨 👈 ✔️ 👨‍💼 🏷. + +/// + +## 🌀 ℹ + +👆 💪 🌀 📨 ℹ ⚪️➡️ 💗 🥉, 🔌 `response_model`, `status_code`, & `responses` 🔢. + +👆 💪 📣 `response_model`, ⚙️ 🔢 👔 📟 `200` (⚖️ 🛃 1️⃣ 🚥 👆 💪), & ⤴️ 📣 🌖 ℹ 👈 🎏 📨 `responses`, 🔗 🗄 🔗. + +**FastAPI** 🔜 🚧 🌖 ℹ ⚪️➡️ `responses`, & 🌀 ⚫️ ⏮️ 🎻 🔗 ⚪️➡️ 👆 🏷. + +🖼, 👆 💪 📣 📨 ⏮️ 👔 📟 `404` 👈 ⚙️ Pydantic 🏷 & ✔️ 🛃 `description`. + +& 📨 ⏮️ 👔 📟 `200` 👈 ⚙️ 👆 `response_model`, ✋️ 🔌 🛃 `example`: + +{* ../../docs_src/additional_responses/tutorial003.py hl[20:31] *} + +⚫️ 🔜 🌐 🌀 & 🔌 👆 🗄, & 🎦 🛠️ 🩺: + + + +## 🌀 🔢 📨 & 🛃 🕐 + +👆 💪 💚 ✔️ 🔁 📨 👈 ✔ 📚 *➡ 🛠️*, ✋️ 👆 💚 🌀 👫 ⏮️ 🛃 📨 💚 🔠 *➡ 🛠️*. + +📚 💼, 👆 💪 ⚙️ 🐍 ⚒ "🏗" `dict` ⏮️ `**dict_to_unpack`: + +```Python +old_dict = { + "old key": "old value", + "second old key": "second old value", +} +new_dict = {**old_dict, "new key": "new value"} +``` + +📥, `new_dict` 🔜 🔌 🌐 🔑-💲 👫 ⚪️➡️ `old_dict` ➕ 🆕 🔑-💲 👫: + +```Python +{ + "old key": "old value", + "second old key": "second old value", + "new key": "new value", +} +``` + +👆 💪 ⚙️ 👈 ⚒ 🏤-⚙️ 🔢 📨 👆 *➡ 🛠️* & 🌀 👫 ⏮️ 🌖 🛃 🕐. + +🖼: + +{* ../../docs_src/additional_responses/tutorial004.py hl[13:17,26] *} + +## 🌖 ℹ 🔃 🗄 📨 + +👀 ⚫️❔ ⚫️❔ 👆 💪 🔌 📨, 👆 💪 ✅ 👉 📄 🗄 🔧: + +* 🗄 📨 🎚, ⚫️ 🔌 `Response Object`. +* 🗄 📨 🎚, 👆 💪 🔌 🕳 ⚪️➡️ 👉 🔗 🔠 📨 🔘 👆 `responses` 🔢. ✅ `description`, `headers`, `content` (🔘 👉 👈 👆 📣 🎏 🔉 🆎 & 🎻 🔗), & `links`. diff --git a/docs/em/docs/advanced/additional-status-codes.md b/docs/em/docs/advanced/additional-status-codes.md new file mode 100644 index 0000000..907c7e6 --- /dev/null +++ b/docs/em/docs/advanced/additional-status-codes.md @@ -0,0 +1,41 @@ +# 🌖 👔 📟 + +🔢, **FastAPI** 🔜 📨 📨 ⚙️ `JSONResponse`, 🚮 🎚 👆 📨 ⚪️➡️ 👆 *➡ 🛠️* 🔘 👈 `JSONResponse`. + +⚫️ 🔜 ⚙️ 🔢 👔 📟 ⚖️ 1️⃣ 👆 ⚒ 👆 *➡ 🛠️*. + +## 🌖 👔 📟 + +🚥 👆 💚 📨 🌖 👔 📟 ↖️ ⚪️➡️ 👑 1️⃣, 👆 💪 👈 🛬 `Response` 🔗, 💖 `JSONResponse`, & ⚒ 🌖 👔 📟 🔗. + +🖼, ➡️ 💬 👈 👆 💚 ✔️ *➡ 🛠️* 👈 ✔ ℹ 🏬, & 📨 🇺🇸🔍 👔 📟 2️⃣0️⃣0️⃣ "👌" 🕐❔ 🏆. + +✋️ 👆 💚 ⚫️ 🚫 🆕 🏬. & 🕐❔ 🏬 🚫 🔀 ⏭, ⚫️ ✍ 👫, & 📨 🇺🇸🔍 👔 📟 2️⃣0️⃣1️⃣ "✍". + +🏆 👈, 🗄 `JSONResponse`, & 📨 👆 🎚 📤 🔗, ⚒ `status_code` 👈 👆 💚: + +{* ../../docs_src/additional_status_codes/tutorial001.py hl[4,25] *} + +/// warning + +🕐❔ 👆 📨 `Response` 🔗, 💖 🖼 🔛, ⚫️ 🔜 📨 🔗. + +⚫️ 🏆 🚫 🎻 ⏮️ 🏷, ♒️. + +⚒ 💭 ⚫️ ✔️ 📊 👆 💚 ⚫️ ✔️, & 👈 💲 ☑ 🎻 (🚥 👆 ⚙️ `JSONResponse`). + +/// + +/// note | 📡 ℹ + +👆 💪 ⚙️ `from starlette.responses import JSONResponse`. + +**FastAPI** 🚚 🎏 `starlette.responses` `fastapi.responses` 🏪 👆, 👩‍💻. ✋️ 🌅 💪 📨 👟 🔗 ⚪️➡️ 💃. 🎏 ⏮️ `status`. + +/// + +## 🗄 & 🛠️ 🩺 + +🚥 👆 📨 🌖 👔 📟 & 📨 🔗, 👫 🏆 🚫 🔌 🗄 🔗 (🛠️ 🩺), ↩️ FastAPI 🚫 ✔️ 🌌 💭 ⏪ ⚫️❔ 👆 🚶 📨. + +✋️ 👆 💪 📄 👈 👆 📟, ⚙️: [🌖 📨](additional-responses.md){.internal-link target=_blank}. diff --git a/docs/em/docs/advanced/advanced-dependencies.md b/docs/em/docs/advanced/advanced-dependencies.md new file mode 100644 index 0000000..3404c26 --- /dev/null +++ b/docs/em/docs/advanced/advanced-dependencies.md @@ -0,0 +1,65 @@ +# 🏧 🔗 + +## 🔗 🔗 + +🌐 🔗 👥 ✔️ 👀 🔧 🔢 ⚖️ 🎓. + +✋️ 📤 💪 💼 🌐❔ 👆 💚 💪 ⚒ 🔢 🔛 🔗, 🍵 ✔️ 📣 📚 🎏 🔢 ⚖️ 🎓. + +➡️ 🌈 👈 👥 💚 ✔️ 🔗 👈 ✅ 🚥 🔢 🔢 `q` 🔌 🔧 🎚. + +✋️ 👥 💚 💪 🔗 👈 🔧 🎚. + +## "🇧🇲" 👐 + +🐍 📤 🌌 ⚒ 👐 🎓 "🇧🇲". + +🚫 🎓 ⚫️ (❔ ⏪ 🇧🇲), ✋️ 👐 👈 🎓. + +👈, 👥 📣 👩‍🔬 `__call__`: + +{* ../../docs_src/dependencies/tutorial011.py hl[10] *} + +👉 💼, 👉 `__call__` ⚫️❔ **FastAPI** 🔜 ⚙️ ✅ 🌖 🔢 & 🎧-🔗, & 👉 ⚫️❔ 🔜 🤙 🚶‍♀️ 💲 🔢 👆 *➡ 🛠️ 🔢* ⏪. + +## 🔗 👐 + +& 🔜, 👥 💪 ⚙️ `__init__` 📣 🔢 👐 👈 👥 💪 ⚙️ "🔗" 🔗: + +{* ../../docs_src/dependencies/tutorial011.py hl[7] *} + +👉 💼, **FastAPI** 🏆 🚫 ⏱ 👆 ⚖️ 💅 🔃 `__init__`, 👥 🔜 ⚙️ ⚫️ 🔗 👆 📟. + +## ✍ 👐 + +👥 💪 ✍ 👐 👉 🎓 ⏮️: + +{* ../../docs_src/dependencies/tutorial011.py hl[16] *} + +& 👈 🌌 👥 💪 "🔗" 👆 🔗, 👈 🔜 ✔️ `"bar"` 🔘 ⚫️, 🔢 `checker.fixed_content`. + +## ⚙️ 👐 🔗 + +⤴️, 👥 💪 ⚙️ 👉 `checker` `Depends(checker)`, ↩️ `Depends(FixedContentQueryChecker)`, ↩️ 🔗 👐, `checker`, 🚫 🎓 ⚫️. + +& 🕐❔ ❎ 🔗, **FastAPI** 🔜 🤙 👉 `checker` 💖: + +```Python +checker(q="somequery") +``` + +...& 🚶‍♀️ ⚫️❔ 👈 📨 💲 🔗 👆 *➡ 🛠️ 🔢* 🔢 `fixed_content_included`: + +{* ../../docs_src/dependencies/tutorial011.py hl[20] *} + +/// tip + +🌐 👉 💪 😑 🎭. & ⚫️ 💪 🚫 📶 🆑 ❔ ⚫️ ⚠. + +👫 🖼 😫 🙅, ✋️ 🎦 ❔ ⚫️ 🌐 👷. + +📃 🔃 💂‍♂, 📤 🚙 🔢 👈 🛠️ 👉 🎏 🌌. + +🚥 👆 🤔 🌐 👉, 👆 ⏪ 💭 ❔ 👈 🚙 🧰 💂‍♂ 👷 🔘. + +/// diff --git a/docs/em/docs/advanced/async-tests.md b/docs/em/docs/advanced/async-tests.md new file mode 100644 index 0000000..283d4aa --- /dev/null +++ b/docs/em/docs/advanced/async-tests.md @@ -0,0 +1,93 @@ +# 🔁 💯 + +👆 ✔️ ⏪ 👀 ❔ 💯 👆 **FastAPI** 🈸 ⚙️ 🚚 `TestClient`. 🆙 🔜, 👆 ✔️ 🕴 👀 ❔ ✍ 🔁 💯, 🍵 ⚙️ `async` 🔢. + +➖ 💪 ⚙️ 🔁 🔢 👆 💯 💪 ⚠, 🖼, 🕐❔ 👆 🔬 👆 💽 🔁. 🌈 👆 💚 💯 📨 📨 👆 FastAPI 🈸 & ⤴️ ✔ 👈 👆 👩‍💻 ⏪ ✍ ☑ 💽 💽, ⏪ ⚙️ 🔁 💽 🗃. + +➡️ 👀 ❔ 👥 💪 ⚒ 👈 👷. + +## pytest.mark.anyio + +🚥 👥 💚 🤙 🔁 🔢 👆 💯, 👆 💯 🔢 ✔️ 🔁. AnyIO 🚚 👌 📁 👉, 👈 ✔ 👥 ✔ 👈 💯 🔢 🤙 🔁. + +## 🇸🇲 + +🚥 👆 **FastAPI** 🈸 ⚙️ 😐 `def` 🔢 ↩️ `async def`, ⚫️ `async` 🈸 🔘. + +`TestClient` 🔨 🎱 🔘 🤙 🔁 FastAPI 🈸 👆 😐 `def` 💯 🔢, ⚙️ 🐩 ✳. ✋️ 👈 🎱 🚫 👷 🚫🔜 🕐❔ 👥 ⚙️ ⚫️ 🔘 🔁 🔢. 🏃 👆 💯 🔁, 👥 💪 🙅‍♂ 📏 ⚙️ `TestClient` 🔘 👆 💯 🔢. + +`TestClient` ⚓️ 🔛 🇸🇲, & ↩️, 👥 💪 ⚙️ ⚫️ 🔗 💯 🛠️. + +## 🖼 + +🙅 🖼, ➡️ 🤔 📁 📊 🎏 1️⃣ 🔬 [🦏 🈸](../tutorial/bigger-applications.md){.internal-link target=_blank} & [🔬](../tutorial/testing.md){.internal-link target=_blank}: + +``` +. +├── app +│   ├── __init__.py +│   ├── main.py +│   └── test_main.py +``` + +📁 `main.py` 🔜 ✔️: + +{* ../../docs_src/async_tests/main.py *} + +📁 `test_main.py` 🔜 ✔️ 💯 `main.py`, ⚫️ 💪 👀 💖 👉 🔜: + +{* ../../docs_src/async_tests/test_main.py *} + +## 🏃 ⚫️ + +👆 💪 🏃 👆 💯 🐌 📨: + +
+ +```console +$ pytest + +---> 100% +``` + +
+ +## ℹ + +📑 `@pytest.mark.anyio` 💬 ✳ 👈 👉 💯 🔢 🔜 🤙 🔁: + +{* ../../docs_src/async_tests/test_main.py hl[7] *} + +/// tip + +🗒 👈 💯 🔢 🔜 `async def` ↩️ `def` ⏭ 🕐❔ ⚙️ `TestClient`. + +/// + +⤴️ 👥 💪 ✍ `AsyncClient` ⏮️ 📱, & 📨 🔁 📨 ⚫️, ⚙️ `await`. + +{* ../../docs_src/async_tests/test_main.py hl[9:12] *} + +👉 🌓: + +```Python +response = client.get('/') +``` + +...👈 👥 ⚙️ ⚒ 👆 📨 ⏮️ `TestClient`. + +/// tip + +🗒 👈 👥 ⚙️ 🔁/⌛ ⏮️ 🆕 `AsyncClient` - 📨 🔁. + +/// + +## 🎏 🔁 🔢 🤙 + +🔬 🔢 🔜 🔁, 👆 💪 🔜 🤙 (& `await`) 🎏 `async` 🔢 ↖️ ⚪️➡️ 📨 📨 👆 FastAPI 🈸 👆 💯, ⚫️❔ 👆 🔜 🤙 👫 🙆 🙆 👆 📟. + +/// tip + +🚥 👆 ⚔ `RuntimeError: Task attached to a different loop` 🕐❔ 🛠️ 🔁 🔢 🤙 👆 💯 (✅ 🕐❔ ⚙️ ✳ MotorClient) 💭 🔗 🎚 👈 💪 🎉 ➰ 🕴 🏞 🔁 🔢, ✅ `'@app.on_event("startup")` ⏲. + +/// diff --git a/docs/em/docs/advanced/behind-a-proxy.md b/docs/em/docs/advanced/behind-a-proxy.md new file mode 100644 index 0000000..8b14152 --- /dev/null +++ b/docs/em/docs/advanced/behind-a-proxy.md @@ -0,0 +1,359 @@ +# ⛅ 🗳 + +⚠, 👆 5️⃣📆 💪 ⚙️ **🗳** 💽 💖 Traefik ⚖️ 👌 ⏮️ 📳 👈 🚮 ➕ ➡ 🔡 👈 🚫 👀 👆 🈸. + +👫 💼 👆 💪 ⚙️ `root_path` 🔗 👆 🈸. + +`root_path` 🛠️ 🚚 🔫 🔧 (👈 FastAPI 🏗 🔛, 🔘 💃). + +`root_path` ⚙️ 🍵 👫 🎯 💼. + +& ⚫️ ⚙️ 🔘 🕐❔ 🗜 🎧-🈸. + +## 🗳 ⏮️ 🎞 ➡ 🔡 + +✔️ 🗳 ⏮️ 🎞 ➡ 🔡, 👉 💼, ⛓ 👈 👆 💪 📣 ➡ `/app` 👆 📟, ✋️ ⤴️, 👆 🚮 🧽 🔛 🔝 (🗳) 👈 🔜 🚮 👆 **FastAPI** 🈸 🔽 ➡ 💖 `/api/v1`. + +👉 💼, ⏮️ ➡ `/app` 🔜 🤙 🍦 `/api/v1/app`. + +✋️ 🌐 👆 📟 ✍ 🤔 📤 `/app`. + +& 🗳 🔜 **"❎"** **➡ 🔡** 🔛 ✈ ⏭ 📶 📨 Uvicorn, 🚧 👆 🈸 🤔 👈 ⚫️ 🍦 `/app`, 👈 👆 🚫 ✔️ ℹ 🌐 👆 📟 🔌 🔡 `/api/v1`. + +🆙 📥, 🌐 🔜 👷 🛎. + +✋️ ⤴️, 🕐❔ 👆 📂 🛠️ 🩺 🎚 (🕸), ⚫️ 🔜 ⌛ 🤚 🗄 🔗 `/openapi.json`, ↩️ `/api/v1/openapi.json`. + +, 🕸 (👈 🏃 🖥) 🔜 🔄 🏆 `/openapi.json` & 🚫🔜 💪 🤚 🗄 🔗. + +↩️ 👥 ✔️ 🗳 ⏮️ ➡ 🔡 `/api/v1` 👆 📱, 🕸 💪 ☕ 🗄 🔗 `/api/v1/openapi.json`. + +```mermaid +graph LR + +browser("Browser") +proxy["Proxy on http://0.0.0.0:9999/api/v1/app"] +server["Server on http://127.0.0.1:8000/app"] + +browser --> proxy +proxy --> server +``` + +/// tip + +📢 `0.0.0.0` 🛎 ⚙️ ⛓ 👈 📋 👂 🔛 🌐 📢 💪 👈 🎰/💽. + +/// + +🩺 🎚 🔜 💪 🗄 🔗 📣 👈 👉 🛠️ `server` 🔎 `/api/v1` (⛅ 🗳). 🖼: + +```JSON hl_lines="4-8" +{ + "openapi": "3.0.2", + // More stuff here + "servers": [ + { + "url": "/api/v1" + } + ], + "paths": { + // More stuff here + } +} +``` + +👉 🖼, "🗳" 💪 🕳 💖 **Traefik**. & 💽 🔜 🕳 💖 **Uvicorn**, 🏃‍♂ 👆 FastAPI 🈸. + +### 🚚 `root_path` + +🏆 👉, 👆 💪 ⚙️ 📋 ⏸ 🎛 `--root-path` 💖: + +
+ +```console +$ uvicorn main:app --root-path /api/v1 + +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +``` + +
+ +🚥 👆 ⚙️ Hypercorn, ⚫️ ✔️ 🎛 `--root-path`. + +/// note | 📡 ℹ + +🔫 🔧 🔬 `root_path` 👉 ⚙️ 💼. + + & `--root-path` 📋 ⏸ 🎛 🚚 👈 `root_path`. + +/// + +### ✅ ⏮️ `root_path` + +👆 💪 🤚 ⏮️ `root_path` ⚙️ 👆 🈸 🔠 📨, ⚫️ 🍕 `scope` 📖 (👈 🍕 🔫 🔌). + +📥 👥 ✅ ⚫️ 📧 🎦 🎯. + +{* ../../docs_src/behind_a_proxy/tutorial001.py hl[8] *} + +⤴️, 🚥 👆 ▶️ Uvicorn ⏮️: + +
+ +```console +$ uvicorn main:app --root-path /api/v1 + +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +``` + +
+ +📨 🔜 🕳 💖: + +```JSON +{ + "message": "Hello World", + "root_path": "/api/v1" +} +``` + +### ⚒ `root_path` FastAPI 📱 + +👐, 🚥 👆 🚫 ✔️ 🌌 🚚 📋 ⏸ 🎛 💖 `--root-path` ⚖️ 🌓, 👆 💪 ⚒ `root_path` 🔢 🕐❔ 🏗 👆 FastAPI 📱: + +{* ../../docs_src/behind_a_proxy/tutorial002.py hl[3] *} + +🚶‍♀️ `root_path` `FastAPI` 🔜 🌓 🚶‍♀️ `--root-path` 📋 ⏸ 🎛 Uvicorn ⚖️ Hypercorn. + +### 🔃 `root_path` + +✔️ 🤯 👈 💽 (Uvicorn) 🏆 🚫 ⚙️ 👈 `root_path` 🕳 🙆 🌘 🚶‍♀️ ⚫️ 📱. + +✋️ 🚥 👆 🚶 ⏮️ 👆 🖥 http://127.0.0.1:8000/app 👆 🔜 👀 😐 📨: + +```JSON +{ + "message": "Hello World", + "root_path": "/api/v1" +} +``` + +, ⚫️ 🏆 🚫 ⌛ 🔐 `http://127.0.0.1:8000/api/v1/app`. + +Uvicorn 🔜 ⌛ 🗳 🔐 Uvicorn `http://127.0.0.1:8000/app`, & ⤴️ ⚫️ 🔜 🗳 🎯 🚮 ➕ `/api/v1` 🔡 🔛 🔝. + +## 🔃 🗳 ⏮️ 🎞 ➡ 🔡 + +✔️ 🤯 👈 🗳 ⏮️ 🎞 ➡ 🔡 🕴 1️⃣ 🌌 🔗 ⚫️. + +🎲 📚 💼 🔢 🔜 👈 🗳 🚫 ✔️ 🏚 ➡ 🔡. + +💼 💖 👈 (🍵 🎞 ➡ 🔡), 🗳 🔜 👂 🔛 🕳 💖 `https://myawesomeapp.com`, & ⤴️ 🚥 🖥 🚶 `https://myawesomeapp.com/api/v1/app` & 👆 💽 (✅ Uvicorn) 👂 🔛 `http://127.0.0.1:8000` 🗳 (🍵 🎞 ➡ 🔡) 🔜 🔐 Uvicorn 🎏 ➡: `http://127.0.0.1:8000/api/v1/app`. + +## 🔬 🌐 ⏮️ Traefik + +👆 💪 💪 🏃 🥼 🌐 ⏮️ 🎞 ➡ 🔡 ⚙️ Traefik. + +⏬ Traefik, ⚫️ 👁 💱, 👆 💪 ⚗ 🗜 📁 & 🏃 ⚫️ 🔗 ⚪️➡️ 📶. + +⤴️ ✍ 📁 `traefik.toml` ⏮️: + +```TOML hl_lines="3" +[entryPoints] + [entryPoints.http] + address = ":9999" + +[providers] + [providers.file] + filename = "routes.toml" +``` + +👉 💬 Traefik 👂 🔛 ⛴ 9️⃣9️⃣9️⃣9️⃣ & ⚙️ ➕1️⃣ 📁 `routes.toml`. + +/// tip + +👥 ⚙️ ⛴ 9️⃣9️⃣9️⃣9️⃣ ↩️ 🐩 🇺🇸🔍 ⛴ 8️⃣0️⃣ 👈 👆 🚫 ✔️ 🏃 ⚫️ ⏮️ 📡 (`sudo`) 😌. + +/// + +🔜 ✍ 👈 🎏 📁 `routes.toml`: + +```TOML hl_lines="5 12 20" +[http] + [http.middlewares] + + [http.middlewares.api-stripprefix.stripPrefix] + prefixes = ["/api/v1"] + + [http.routers] + + [http.routers.app-http] + entryPoints = ["http"] + service = "app" + rule = "PathPrefix(`/api/v1`)" + middlewares = ["api-stripprefix"] + + [http.services] + + [http.services.app] + [http.services.app.loadBalancer] + [[http.services.app.loadBalancer.servers]] + url = "http://127.0.0.1:8000" +``` + +👉 📁 🔗 Traefik ⚙️ ➡ 🔡 `/api/v1`. + +& ⤴️ ⚫️ 🔜 ❎ 🚮 📨 👆 Uvicorn 🏃‍♂ 🔛 `http://127.0.0.1:8000`. + +🔜 ▶️ Traefik: + +
+ +```console +$ ./traefik --configFile=traefik.toml + +INFO[0000] Configuration loaded from file: /home/user/awesomeapi/traefik.toml +``` + +
+ +& 🔜 ▶️ 👆 📱 ⏮️ Uvicorn, ⚙️ `--root-path` 🎛: + +
+ +```console +$ uvicorn main:app --root-path /api/v1 + +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +``` + +
+ +### ✅ 📨 + +🔜, 🚥 👆 🚶 📛 ⏮️ ⛴ Uvicorn: http://127.0.0.1:8000/app, 👆 🔜 👀 😐 📨: + +```JSON +{ + "message": "Hello World", + "root_path": "/api/v1" +} +``` + +/// tip + +👀 👈 ✋️ 👆 🔐 ⚫️ `http://127.0.0.1:8000/app` ⚫️ 🎦 `root_path` `/api/v1`, ✊ ⚪️➡️ 🎛 `--root-path`. + +/// + +& 🔜 📂 📛 ⏮️ ⛴ Traefik, ✅ ➡ 🔡: http://127.0.0.1:9999/api/v1/app. + +👥 🤚 🎏 📨: + +```JSON +{ + "message": "Hello World", + "root_path": "/api/v1" +} +``` + +✋️ 👉 🕰 📛 ⏮️ 🔡 ➡ 🚚 🗳: `/api/v1`. + +↗️, 💭 📥 👈 👱 🔜 🔐 📱 🔘 🗳, ⏬ ⏮️ ➡ 🔡 `/app/v1` "☑" 1️⃣. + +& ⏬ 🍵 ➡ 🔡 (`http://127.0.0.1:8000/app`), 🚚 Uvicorn 🔗, 🔜 🎯 _🗳_ (Traefik) 🔐 ⚫️. + +👈 🎦 ❔ 🗳 (Traefik) ⚙️ ➡ 🔡 & ❔ 💽 (Uvicorn) ⚙️ `root_path` ⚪️➡️ 🎛 `--root-path`. + +### ✅ 🩺 🎚 + +✋️ 📥 🎊 🍕. 👶 + +"🛂" 🌌 🔐 📱 🔜 🔘 🗳 ⏮️ ➡ 🔡 👈 👥 🔬. , 👥 🔜 ⌛, 🚥 👆 🔄 🩺 🎚 🍦 Uvicorn 🔗, 🍵 ➡ 🔡 📛, ⚫️ 🏆 🚫 👷, ↩️ ⚫️ ⌛ 🔐 🔘 🗳. + +👆 💪 ✅ ⚫️ http://127.0.0.1:8000/docs: + + + +✋️ 🚥 👥 🔐 🩺 🎚 "🛂" 📛 ⚙️ 🗳 ⏮️ ⛴ `9999`, `/api/v1/docs`, ⚫️ 👷 ☑ ❗ 👶 + +👆 💪 ✅ ⚫️ http://127.0.0.1:9999/api/v1/docs: + + + +▶️️ 👥 💚 ⚫️. 👶 👶 + +👉 ↩️ FastAPI ⚙️ 👉 `root_path` ✍ 🔢 `server` 🗄 ⏮️ 📛 🚚 `root_path`. + +## 🌖 💽 + +/// warning + +👉 🌅 🏧 ⚙️ 💼. 💭 🆓 🚶 ⚫️. + +/// + +🔢, **FastAPI** 🔜 ✍ `server` 🗄 🔗 ⏮️ 📛 `root_path`. + +✋️ 👆 💪 🚚 🎏 🎛 `servers`, 🖼 🚥 👆 💚 *🎏* 🩺 🎚 🔗 ⏮️ 🏗 & 🏭 🌐. + +🚥 👆 🚶‍♀️ 🛃 📇 `servers` & 📤 `root_path` (↩️ 👆 🛠️ 👨‍❤‍👨 ⛅ 🗳), **FastAPI** 🔜 📩 "💽" ⏮️ 👉 `root_path` ▶️ 📇. + +🖼: + +{* ../../docs_src/behind_a_proxy/tutorial003.py hl[4:7] *} + +🔜 🏗 🗄 🔗 💖: + +```JSON hl_lines="5-7" +{ + "openapi": "3.0.2", + // More stuff here + "servers": [ + { + "url": "/api/v1" + }, + { + "url": "https://stag.example.com", + "description": "Staging environment" + }, + { + "url": "https://prod.example.com", + "description": "Production environment" + } + ], + "paths": { + // More stuff here + } +} +``` + +/// tip + +👀 🚘-🏗 💽 ⏮️ `url` 💲 `/api/v1`, ✊ ⚪️➡️ `root_path`. + +/// + +🩺 🎚 http://127.0.0.1:9999/api/v1/docs ⚫️ 🔜 👀 💖: + + + +/// tip + +🩺 🎚 🔜 🔗 ⏮️ 💽 👈 👆 🖊. + +/// + +### ❎ 🏧 💽 ⚪️➡️ `root_path` + +🚥 👆 🚫 💚 **FastAPI** 🔌 🏧 💽 ⚙️ `root_path`, 👆 💪 ⚙️ 🔢 `root_path_in_servers=False`: + +{* ../../docs_src/behind_a_proxy/tutorial004.py hl[9] *} + +& ⤴️ ⚫️ 🏆 🚫 🔌 ⚫️ 🗄 🔗. + +## 🗜 🎧-🈸 + +🚥 👆 💪 🗻 🎧-🈸 (🔬 [🎧 🈸 - 🗻](sub-applications.md){.internal-link target=_blank}) ⏪ ⚙️ 🗳 ⏮️ `root_path`, 👆 💪 ⚫️ 🛎, 👆 🔜 ⌛. + +FastAPI 🔜 🔘 ⚙️ `root_path` 🎆, ⚫️ 🔜 👷. 👶 diff --git a/docs/em/docs/advanced/custom-response.md b/docs/em/docs/advanced/custom-response.md new file mode 100644 index 0000000..ab95b3e --- /dev/null +++ b/docs/em/docs/advanced/custom-response.md @@ -0,0 +1,303 @@ +# 🛃 📨 - 🕸, 🎏, 📁, 🎏 + +🔢, **FastAPI** 🔜 📨 📨 ⚙️ `JSONResponse`. + +👆 💪 🔐 ⚫️ 🛬 `Response` 🔗 👀 [📨 📨 🔗](response-directly.md){.internal-link target=_blank}. + +✋️ 🚥 👆 📨 `Response` 🔗, 📊 🏆 🚫 🔁 🗜, & 🧾 🏆 🚫 🔁 🏗 (🖼, 🔌 🎯 "📻 🆎", 🇺🇸🔍 🎚 `Content-Type` 🍕 🏗 🗄). + +✋️ 👆 💪 📣 `Response` 👈 👆 💚 ⚙️, *➡ 🛠️ 👨‍🎨*. + +🎚 👈 👆 📨 ⚪️➡️ 👆 *➡ 🛠️ 🔢* 🔜 🚮 🔘 👈 `Response`. + +& 🚥 👈 `Response` ✔️ 🎻 📻 🆎 (`application/json`), 💖 💼 ⏮️ `JSONResponse` & `UJSONResponse`, 💽 👆 📨 🔜 🔁 🗜 (& ⛽) ⏮️ 🙆 Pydantic `response_model` 👈 👆 📣 *➡ 🛠️ 👨‍🎨*. + +/// note + +🚥 👆 ⚙️ 📨 🎓 ⏮️ 🙅‍♂ 📻 🆎, FastAPI 🔜 ⌛ 👆 📨 ✔️ 🙅‍♂ 🎚, ⚫️ 🔜 🚫 📄 📨 📁 🚮 🏗 🗄 🩺. + +/// + +## ⚙️ `ORJSONResponse` + +🖼, 🚥 👆 ✊ 🎭, 👆 💪 ❎ & ⚙️ `orjson` & ⚒ 📨 `ORJSONResponse`. + +🗄 `Response` 🎓 (🎧-🎓) 👆 💚 ⚙️ & 📣 ⚫️ *➡ 🛠️ 👨‍🎨*. + +⭕ 📨, 📨 `Response` 🔗 🌅 ⏩ 🌘 🛬 📖. + +👉 ↩️ 🔢, FastAPI 🔜 ✔ 🔠 🏬 🔘 & ⚒ 💭 ⚫️ 🎻 ⏮️ 🎻, ⚙️ 🎏 [🎻 🔗 🔢](../tutorial/encoder.md){.internal-link target=_blank} 🔬 🔰. 👉 ⚫️❔ ✔ 👆 📨 **❌ 🎚**, 🖼 💽 🏷. + +✋️ 🚥 👆 🎯 👈 🎚 👈 👆 🛬 **🎻 ⏮️ 🎻**, 👆 💪 🚶‍♀️ ⚫️ 🔗 📨 🎓 & ❎ ➕ 🌥 👈 FastAPI 🔜 ✔️ 🚶‍♀️ 👆 📨 🎚 🔘 `jsonable_encoder` ⏭ 🚶‍♀️ ⚫️ 📨 🎓. + +{* ../../docs_src/custom_response/tutorial001b.py hl[2,7] *} + +/// info + +🔢 `response_class` 🔜 ⚙️ 🔬 "📻 🆎" 📨. + +👉 💼, 🇺🇸🔍 🎚 `Content-Type` 🔜 ⚒ `application/json`. + + & ⚫️ 🔜 📄 ✅ 🗄. + +/// + +/// tip + +`ORJSONResponse` ⏳ 🕴 💪 FastAPI, 🚫 💃. + +/// + +## 🕸 📨 + +📨 📨 ⏮️ 🕸 🔗 ⚪️➡️ **FastAPI**, ⚙️ `HTMLResponse`. + +* 🗄 `HTMLResponse`. +* 🚶‍♀️ `HTMLResponse` 🔢 `response_class` 👆 *➡ 🛠️ 👨‍🎨*. + +{* ../../docs_src/custom_response/tutorial002.py hl[2,7] *} + +/// info + +🔢 `response_class` 🔜 ⚙️ 🔬 "📻 🆎" 📨. + +👉 💼, 🇺🇸🔍 🎚 `Content-Type` 🔜 ⚒ `text/html`. + + & ⚫️ 🔜 📄 ✅ 🗄. + +/// + +### 📨 `Response` + +👀 [📨 📨 🔗](response-directly.md){.internal-link target=_blank}, 👆 💪 🔐 📨 🔗 👆 *➡ 🛠️*, 🛬 ⚫️. + +🎏 🖼 ⚪️➡️ 🔛, 🛬 `HTMLResponse`, 💪 👀 💖: + +{* ../../docs_src/custom_response/tutorial003.py hl[2,7,19] *} + +/// warning + +`Response` 📨 🔗 👆 *➡ 🛠️ 🔢* 🏆 🚫 📄 🗄 (🖼, `Content-Type` 🏆 🚫 📄) & 🏆 🚫 ⭐ 🏧 🎓 🩺. + +/// + +/// info + +↗️, ☑ `Content-Type` 🎚, 👔 📟, ♒️, 🔜 👟 ⚪️➡️ `Response` 🎚 👆 📨. + +/// + +### 📄 🗄 & 🔐 `Response` + +🚥 👆 💚 🔐 📨 ⚪️➡️ 🔘 🔢 ✋️ 🎏 🕰 📄 "📻 🆎" 🗄, 👆 💪 ⚙️ `response_class` 🔢 & 📨 `Response` 🎚. + +`response_class` 🔜 ⤴️ ⚙️ 🕴 📄 🗄 *➡ 🛠️*, ✋️ 👆 `Response` 🔜 ⚙️. + +#### 📨 `HTMLResponse` 🔗 + +🖼, ⚫️ 💪 🕳 💖: + +{* ../../docs_src/custom_response/tutorial004.py hl[7,21,23] *} + +👉 🖼, 🔢 `generate_html_response()` ⏪ 🏗 & 📨 `Response` ↩️ 🛬 🕸 `str`. + +🛬 🏁 🤙 `generate_html_response()`, 👆 ⏪ 🛬 `Response` 👈 🔜 🔐 🔢 **FastAPI** 🎭. + +✋️ 👆 🚶‍♀️ `HTMLResponse` `response_class` 💁‍♂️, **FastAPI** 🔜 💭 ❔ 📄 ⚫️ 🗄 & 🎓 🩺 🕸 ⏮️ `text/html`: + + + +## 💪 📨 + +📥 💪 📨. + +✔️ 🤯 👈 👆 💪 ⚙️ `Response` 📨 🕳 🙆, ⚖️ ✍ 🛃 🎧-🎓. + +/// note | 📡 ℹ + +👆 💪 ⚙️ `from starlette.responses import HTMLResponse`. + +**FastAPI** 🚚 🎏 `starlette.responses` `fastapi.responses` 🏪 👆, 👩‍💻. ✋️ 🌅 💪 📨 👟 🔗 ⚪️➡️ 💃. + +/// + +### `Response` + +👑 `Response` 🎓, 🌐 🎏 📨 😖 ⚪️➡️ ⚫️. + +👆 💪 📨 ⚫️ 🔗. + +⚫️ 🚫 📄 🔢: + +* `content` - `str` ⚖️ `bytes`. +* `status_code` - `int` 🇺🇸🔍 👔 📟. +* `headers` - `dict` 🎻. +* `media_type` - `str` 🤝 📻 🆎. 🤶 Ⓜ. `"text/html"`. + +FastAPI (🤙 💃) 🔜 🔁 🔌 🎚-📐 🎚. ⚫️ 🔜 🔌 🎚-🆎 🎚, ⚓️ 🔛 = & 🔁 = ✍ 🆎. + +{* ../../docs_src/response_directly/tutorial002.py hl[1,18] *} + +### `HTMLResponse` + +✊ ✍ ⚖️ 🔢 & 📨 🕸 📨, 👆 ✍ 🔛. + +### `PlainTextResponse` + +✊ ✍ ⚖️ 🔢 & 📨 ✅ ✍ 📨. + +{* ../../docs_src/custom_response/tutorial005.py hl[2,7,9] *} + +### `JSONResponse` + +✊ 💽 & 📨 `application/json` 🗜 📨. + +👉 🔢 📨 ⚙️ **FastAPI**, 👆 ✍ 🔛. + +### `ORJSONResponse` + +⏩ 🎛 🎻 📨 ⚙️ `orjson`, 👆 ✍ 🔛. + +### `UJSONResponse` + +🎛 🎻 📨 ⚙️ `ujson`. + +/// warning + +`ujson` 🌘 💛 🌘 🐍 🏗-🛠️ ❔ ⚫️ 🍵 📐-💼. + +/// + +{* ../../docs_src/custom_response/tutorial001.py hl[2,7] *} + +/// tip + +⚫️ 💪 👈 `ORJSONResponse` 💪 ⏩ 🎛. + +/// + +### `RedirectResponse` + +📨 🇺🇸🔍 ❎. ⚙️ 3️⃣0️⃣7️⃣ 👔 📟 (🍕 ❎) 🔢. + +👆 💪 📨 `RedirectResponse` 🔗: + +{* ../../docs_src/custom_response/tutorial006.py hl[2,9] *} + +--- + +⚖️ 👆 💪 ⚙️ ⚫️ `response_class` 🔢: + + +{* ../../docs_src/custom_response/tutorial006b.py hl[2,7,9] *} + +🚥 👆 👈, ⤴️ 👆 💪 📨 📛 🔗 ⚪️➡️ 👆 *➡ 🛠️* 🔢. + +👉 💼, `status_code` ⚙️ 🔜 🔢 1️⃣ `RedirectResponse`, ❔ `307`. + +--- + +👆 💪 ⚙️ `status_code` 🔢 🌀 ⏮️ `response_class` 🔢: + +{* ../../docs_src/custom_response/tutorial006c.py hl[2,7,9] *} + +### `StreamingResponse` + +✊ 🔁 🚂 ⚖️ 😐 🚂/🎻 & 🎏 📨 💪. + +{* ../../docs_src/custom_response/tutorial007.py hl[2,14] *} + +#### ⚙️ `StreamingResponse` ⏮️ 📁-💖 🎚 + +🚥 👆 ✔️ 📁-💖 🎚 (✅ 🎚 📨 `open()`), 👆 💪 ✍ 🚂 🔢 🔁 🤭 👈 📁-💖 🎚. + +👈 🌌, 👆 🚫 ✔️ ✍ ⚫️ 🌐 🥇 💾, & 👆 💪 🚶‍♀️ 👈 🚂 🔢 `StreamingResponse`, & 📨 ⚫️. + +👉 🔌 📚 🗃 🔗 ⏮️ ☁ 💾, 📹 🏭, & 🎏. + +```{ .python .annotate hl_lines="2 10-12 14" } +{!../../docs_src/custom_response/tutorial008.py!} +``` + +1️⃣. 👉 🚂 🔢. ⚫️ "🚂 🔢" ↩️ ⚫️ 🔌 `yield` 📄 🔘. +2️⃣. ⚙️ `with` 🍫, 👥 ⚒ 💭 👈 📁-💖 🎚 📪 ⏮️ 🚂 🔢 🔨. , ⏮️ ⚫️ 🏁 📨 📨. +3️⃣. 👉 `yield from` 💬 🔢 🔁 🤭 👈 👜 🌟 `file_like`. & ⤴️, 🔠 🍕 🔁, 🌾 👈 🍕 👟 ⚪️➡️ 👉 🚂 🔢. + + , ⚫️ 🚂 🔢 👈 📨 "🏭" 👷 🕳 🙆 🔘. + + 🔨 ⚫️ 👉 🌌, 👥 💪 🚮 ⚫️ `with` 🍫, & 👈 🌌, 🚚 👈 ⚫️ 📪 ⏮️ 🏁. + +/// tip + +👀 👈 📥 👥 ⚙️ 🐩 `open()` 👈 🚫 🐕‍🦺 `async` & `await`, 👥 📣 ➡ 🛠️ ⏮️ 😐 `def`. + +/// + +### `FileResponse` + +🔁 🎏 📁 📨. + +✊ 🎏 ⚒ ❌ 🔗 🌘 🎏 📨 🆎: + +* `path` - 📁 📁 🎏. +* `headers` - 🙆 🛃 🎚 🔌, 📖. +* `media_type` - 🎻 🤝 📻 🆎. 🚥 🔢, 📁 ⚖️ ➡ 🔜 ⚙️ 🔑 📻 🆎. +* `filename` - 🚥 ⚒, 👉 🔜 🔌 📨 `Content-Disposition`. + +📁 📨 🔜 🔌 ☑ `Content-Length`, `Last-Modified` & `ETag` 🎚. + +{* ../../docs_src/custom_response/tutorial009.py hl[2,10] *} + +👆 💪 ⚙️ `response_class` 🔢: + +{* ../../docs_src/custom_response/tutorial009b.py hl[2,8,10] *} + +👉 💼, 👆 💪 📨 📁 ➡ 🔗 ⚪️➡️ 👆 *➡ 🛠️* 🔢. + +## 🛃 📨 🎓 + +👆 💪 ✍ 👆 👍 🛃 📨 🎓, 😖 ⚪️➡️ `Response` & ⚙️ ⚫️. + +🖼, ➡️ 💬 👈 👆 💚 ⚙️ `orjson`, ✋️ ⏮️ 🛃 ⚒ 🚫 ⚙️ 🔌 `ORJSONResponse` 🎓. + +➡️ 💬 👆 💚 ⚫️ 📨 🔂 & 📁 🎻, 👆 💚 ⚙️ Orjson 🎛 `orjson.OPT_INDENT_2`. + +👆 💪 ✍ `CustomORJSONResponse`. 👑 👜 👆 ✔️ ✍ `Response.render(content)` 👩‍🔬 👈 📨 🎚 `bytes`: + +{* ../../docs_src/custom_response/tutorial009c.py hl[9:14,17] *} + +🔜 ↩️ 🛬: + +```json +{"message": "Hello World"} +``` + +...👉 📨 🔜 📨: + +```json +{ + "message": "Hello World" +} +``` + +↗️, 👆 🔜 🎲 🔎 🌅 👍 🌌 ✊ 📈 👉 🌘 ❕ 🎻. 👶 + +## 🔢 📨 🎓 + +🕐❔ 🏗 **FastAPI** 🎓 👐 ⚖️ `APIRouter` 👆 💪 ✔ ❔ 📨 🎓 ⚙️ 🔢. + +🔢 👈 🔬 👉 `default_response_class`. + +🖼 🔛, **FastAPI** 🔜 ⚙️ `ORJSONResponse` 🔢, 🌐 *➡ 🛠️*, ↩️ `JSONResponse`. + +{* ../../docs_src/custom_response/tutorial010.py hl[2,4] *} + +/// tip + +👆 💪 🔐 `response_class` *➡ 🛠️* ⏭. + +/// + +## 🌖 🧾 + +👆 💪 📣 📻 🆎 & 📚 🎏 ℹ 🗄 ⚙️ `responses`: [🌖 📨 🗄](additional-responses.md){.internal-link target=_blank}. diff --git a/docs/em/docs/advanced/dataclasses.md b/docs/em/docs/advanced/dataclasses.md new file mode 100644 index 0000000..4dd5972 --- /dev/null +++ b/docs/em/docs/advanced/dataclasses.md @@ -0,0 +1,97 @@ +# ⚙️ 🎻 + +FastAPI 🏗 🔛 🔝 **Pydantic**, & 👤 ✔️ 🌏 👆 ❔ ⚙️ Pydantic 🏷 📣 📨 & 📨. + +✋️ FastAPI 🐕‍🦺 ⚙️ `dataclasses` 🎏 🌌: + +{* ../../docs_src/dataclasses/tutorial001.py hl[1,7:12,19:20] *} + +👉 🐕‍🦺 👏 **Pydantic**, ⚫️ ✔️ 🔗 🐕‍🦺 `dataclasses`. + +, ⏮️ 📟 🔛 👈 🚫 ⚙️ Pydantic 🎯, FastAPI ⚙️ Pydantic 🗜 📚 🐩 🎻 Pydantic 👍 🍛 🎻. + +& ↗️, ⚫️ 🐕‍🦺 🎏: + +* 💽 🔬 +* 💽 🛠️ +* 💽 🧾, ♒️. + +👉 👷 🎏 🌌 ⏮️ Pydantic 🏷. & ⚫️ 🤙 🏆 🎏 🌌 🔘, ⚙️ Pydantic. + +/// info + +✔️ 🤯 👈 🎻 💪 🚫 🌐 Pydantic 🏷 💪. + +, 👆 5️⃣📆 💪 ⚙️ Pydantic 🏷. + +✋️ 🚥 👆 ✔️ 📚 🎻 🤥 🤭, 👉 👌 🎱 ⚙️ 👫 🏋️ 🕸 🛠️ ⚙️ FastAPI. 👶 + +/// + +## 🎻 `response_model` + +👆 💪 ⚙️ `dataclasses` `response_model` 🔢: + +{* ../../docs_src/dataclasses/tutorial002.py hl[1,7:13,19] *} + +🎻 🔜 🔁 🗜 Pydantic 🎻. + +👉 🌌, 🚮 🔗 🔜 🎦 🆙 🛠️ 🩺 👩‍💻 🔢: + + + +## 🎻 🔁 📊 📊 + +👆 💪 🌀 `dataclasses` ⏮️ 🎏 🆎 ✍ ⚒ 🐦 📊 📊. + +💼, 👆 💪 ✔️ ⚙️ Pydantic ⏬ `dataclasses`. 🖼, 🚥 👆 ✔️ ❌ ⏮️ 🔁 🏗 🛠️ 🧾. + +👈 💼, 👆 💪 🎯 💱 🐩 `dataclasses` ⏮️ `pydantic.dataclasses`, ❔ 💧-♻: + +```{ .python .annotate hl_lines="1 5 8-11 14-17 23-25 28" } +{!../../docs_src/dataclasses/tutorial003.py!} +``` + +1️⃣. 👥 🗄 `field` ⚪️➡️ 🐩 `dataclasses`. + +2️⃣. `pydantic.dataclasses` 💧-♻ `dataclasses`. + +3️⃣. `Author` 🎻 🔌 📇 `Item` 🎻. + +4️⃣. `Author` 🎻 ⚙️ `response_model` 🔢. + +5️⃣. 👆 💪 ⚙️ 🎏 🐩 🆎 ✍ ⏮️ 🎻 📨 💪. + + 👉 💼, ⚫️ 📇 `Item` 🎻. + +6️⃣. 📥 👥 🛬 📖 👈 🔌 `items` ❔ 📇 🎻. + + FastAPI 🎯 💽 🎻. + +7️⃣. 📥 `response_model` ⚙️ 🆎 ✍ 📇 `Author` 🎻. + + 🔄, 👆 💪 🌀 `dataclasses` ⏮️ 🐩 🆎 ✍. + +8️⃣. 👀 👈 👉 *➡ 🛠️ 🔢* ⚙️ 🥔 `def` ↩️ `async def`. + + 🕧, FastAPI 👆 💪 🌀 `def` & `async def` 💪. + + 🚥 👆 💪 ↗️ 🔃 🕐❔ ⚙️ ❔, ✅ 👅 📄 _"🏃 ❓" _ 🩺 🔃 `async` & `await`. + +9️⃣. 👉 *➡ 🛠️ 🔢* 🚫 🛬 🎻 (👐 ⚫️ 💪), ✋️ 📇 📖 ⏮️ 🔗 💽. + + FastAPI 🔜 ⚙️ `response_model` 🔢 (👈 🔌 🎻) 🗜 📨. + +👆 💪 🌀 `dataclasses` ⏮️ 🎏 🆎 ✍ 📚 🎏 🌀 📨 🏗 📊 📊. + +✅-📟 ✍ 💁‍♂ 🔛 👀 🌅 🎯 ℹ. + +## 💡 🌅 + +👆 💪 🌀 `dataclasses` ⏮️ 🎏 Pydantic 🏷, 😖 ⚪️➡️ 👫, 🔌 👫 👆 👍 🏷, ♒️. + +💡 🌅, ✅ Pydantic 🩺 🔃 🎻. + +## ⏬ + +👉 💪 ↩️ FastAPI ⏬ `0.67.0`. 👶 diff --git a/docs/em/docs/advanced/events.md b/docs/em/docs/advanced/events.md new file mode 100644 index 0000000..dcaac71 --- /dev/null +++ b/docs/em/docs/advanced/events.md @@ -0,0 +1,163 @@ +# 🔆 🎉 + +👆 💪 🔬 ⚛ (📟) 👈 🔜 🛠️ ⏭ 🈸 **▶️ 🆙**. 👉 ⛓ 👈 👉 📟 🔜 🛠️ **🕐**, **⏭** 🈸 **▶️ 📨 📨**. + +🎏 🌌, 👆 💪 🔬 ⚛ (📟) 👈 🔜 🛠️ 🕐❔ 🈸 **🤫 🔽**. 👉 💼, 👉 📟 🔜 🛠️ **🕐**, **⏮️** ✔️ 🍵 🎲 **📚 📨**. + +↩️ 👉 📟 🛠️ ⏭ 🈸 **▶️** ✊ 📨, & ▶️️ ⏮️ ⚫️ **🏁** 🚚 📨, ⚫️ 📔 🎂 🈸 **🔆** (🔤 "🔆" 🔜 ⚠ 🥈 👶). + +👉 💪 📶 ⚠ ⚒ 🆙 **ℹ** 👈 👆 💪 ⚙️ 🎂 📱, & 👈 **💰** 👪 📨, &/⚖️ 👈 👆 💪 **🧹 🆙** ⏮️. 🖼, 💽 🔗 🎱, ⚖️ 🚚 🔗 🎰 🏫 🏷. + +## ⚙️ 💼 + +➡️ ▶️ ⏮️ 🖼 **⚙️ 💼** & ⤴️ 👀 ❔ ❎ ⚫️ ⏮️ 👉. + +➡️ 🌈 👈 👆 ✔️ **🎰 🏫 🏷** 👈 👆 💚 ⚙️ 🍵 📨. 👶 + +🎏 🏷 🔗 👪 📨,, ⚫️ 🚫 1️⃣ 🏷 📍 📨, ⚖️ 1️⃣ 📍 👩‍💻 ⚖️ 🕳 🎏. + +➡️ 🌈 👈 🚚 🏷 💪 **✊ 🕰**, ↩️ ⚫️ ✔️ ✍ 📚 **💽 ⚪️➡️ 💾**. 👆 🚫 💚 ⚫️ 🔠 📨. + +👆 💪 📐 ⚫️ 🔝 🎚 🕹/📁, ✋️ 👈 🔜 ⛓ 👈 ⚫️ 🔜 **📐 🏷** 🚥 👆 🏃‍♂ 🙅 🏧 💯, ⤴️ 👈 💯 🔜 **🐌** ↩️ ⚫️ 🔜 ✔️ ⌛ 🏷 📐 ⏭ 💆‍♂ 💪 🏃 🔬 🍕 📟. + +👈 ⚫️❔ 👥 🔜 ❎, ➡️ 📐 🏷 ⏭ 📨 🍵, ✋️ 🕴 ▶️️ ⏭ 🈸 ▶️ 📨 📨, 🚫 ⏪ 📟 ➖ 📐. + +## 🔆 + +👆 💪 🔬 👉 *🕴* & *🤫* ⚛ ⚙️ `lifespan` 🔢 `FastAPI` 📱, & "🔑 👨‍💼" (👤 🔜 🎦 👆 ⚫️❔ 👈 🥈). + +➡️ ▶️ ⏮️ 🖼 & ⤴️ 👀 ⚫️ ℹ. + +👥 ✍ 🔁 🔢 `lifespan()` ⏮️ `yield` 💖 👉: + +{* ../../docs_src/events/tutorial003.py hl[16,19] *} + +📥 👥 ⚖ 😥 *🕴* 🛠️ 🚚 🏷 🚮 (❌) 🏷 🔢 📖 ⏮️ 🎰 🏫 🏷 ⏭ `yield`. 👉 📟 🔜 🛠️ **⏭** 🈸 **▶️ ✊ 📨**, ⏮️ *🕴*. + +& ⤴️, ▶️️ ⏮️ `yield`, 👥 🚚 🏷. 👉 📟 🔜 🛠️ **⏮️** 🈸 **🏁 🚚 📨**, ▶️️ ⏭ *🤫*. 👉 💪, 🖼, 🚀 ℹ 💖 💾 ⚖️ 💻. + +/// tip + +`shutdown` 🔜 🔨 🕐❔ 👆 **⛔️** 🈸. + +🎲 👆 💪 ▶️ 🆕 ⏬, ⚖️ 👆 🤚 🎡 🏃 ⚫️. 🤷 + +/// + +### 🔆 🔢 + +🥇 👜 👀, 👈 👥 ⚖ 🔁 🔢 ⏮️ `yield`. 👉 📶 🎏 🔗 ⏮️ `yield`. + +{* ../../docs_src/events/tutorial003.py hl[14:19] *} + +🥇 🍕 🔢, ⏭ `yield`, 🔜 🛠️ **⏭** 🈸 ▶️. + +& 🍕 ⏮️ `yield` 🔜 🛠️ **⏮️** 🈸 ✔️ 🏁. + +### 🔁 🔑 👨‍💼 + +🚥 👆 ✅, 🔢 🎀 ⏮️ `@asynccontextmanager`. + +👈 🗜 🔢 🔘 🕳 🤙 "**🔁 🔑 👨‍💼**". + +{* ../../docs_src/events/tutorial003.py hl[1,13] *} + +**🔑 👨‍💼** 🐍 🕳 👈 👆 💪 ⚙️ `with` 📄, 🖼, `open()` 💪 ⚙️ 🔑 👨‍💼: + +```Python +with open("file.txt") as file: + file.read() +``` + +⏮️ ⏬ 🐍, 📤 **🔁 🔑 👨‍💼**. 👆 🔜 ⚙️ ⚫️ ⏮️ `async with`: + +```Python +async with lifespan(app): + await do_stuff() +``` + +🕐❔ 👆 ✍ 🔑 👨‍💼 ⚖️ 🔁 🔑 👨‍💼 💖 🔛, ⚫️❔ ⚫️ 🔨 👈, ⏭ 🛬 `with` 🍫, ⚫️ 🔜 🛠️ 📟 ⏭ `yield`, & ⏮️ ❎ `with` 🍫, ⚫️ 🔜 🛠️ 📟 ⏮️ `yield`. + +👆 📟 🖼 🔛, 👥 🚫 ⚙️ ⚫️ 🔗, ✋️ 👥 🚶‍♀️ ⚫️ FastAPI ⚫️ ⚙️ ⚫️. + +`lifespan` 🔢 `FastAPI` 📱 ✊ **🔁 🔑 👨‍💼**, 👥 💪 🚶‍♀️ 👆 🆕 `lifespan` 🔁 🔑 👨‍💼 ⚫️. + +{* ../../docs_src/events/tutorial003.py hl[22] *} + +## 🎛 🎉 (😢) + +/// warning + +👍 🌌 🍵 *🕴* & *🤫* ⚙️ `lifespan` 🔢 `FastAPI` 📱 🔬 🔛. + +👆 💪 🎲 🚶 👉 🍕. + +/// + +📤 🎛 🌌 🔬 👉 ⚛ 🛠️ ⏮️ *🕴* & ⏮️ *🤫*. + +👆 💪 🔬 🎉 🐕‍🦺 (🔢) 👈 💪 🛠️ ⏭ 🈸 ▶️ 🆙, ⚖️ 🕐❔ 🈸 🤫 🔽. + +👫 🔢 💪 📣 ⏮️ `async def` ⚖️ 😐 `def`. + +### `startup` 🎉 + +🚮 🔢 👈 🔜 🏃 ⏭ 🈸 ▶️, 📣 ⚫️ ⏮️ 🎉 `"startup"`: + +{* ../../docs_src/events/tutorial001.py hl[8] *} + +👉 💼, `startup` 🎉 🐕‍🦺 🔢 🔜 🔢 🏬 "💽" ( `dict`) ⏮️ 💲. + +👆 💪 🚮 🌅 🌘 1️⃣ 🎉 🐕‍🦺 🔢. + +& 👆 🈸 🏆 🚫 ▶️ 📨 📨 ⏭ 🌐 `startup` 🎉 🐕‍🦺 ✔️ 🏁. + +### `shutdown` 🎉 + +🚮 🔢 👈 🔜 🏃 🕐❔ 🈸 🤫 🔽, 📣 ⚫️ ⏮️ 🎉 `"shutdown"`: + +{* ../../docs_src/events/tutorial002.py hl[6] *} + +📥, `shutdown` 🎉 🐕‍🦺 🔢 🔜 ✍ ✍ ⏸ `"Application shutdown"` 📁 `log.txt`. + +/// info + +`open()` 🔢, `mode="a"` ⛓ "🎻",, ⏸ 🔜 🚮 ⏮️ ⚫️❔ 🔛 👈 📁, 🍵 📁 ⏮️ 🎚. + +/// + +/// tip + +👀 👈 👉 💼 👥 ⚙️ 🐩 🐍 `open()` 🔢 👈 🔗 ⏮️ 📁. + +, ⚫️ 🔌 👤/🅾 (🔢/🔢), 👈 🚚 "⌛" 👜 ✍ 💾. + +✋️ `open()` 🚫 ⚙️ `async` & `await`. + +, 👥 📣 🎉 🐕‍🦺 🔢 ⏮️ 🐩 `def` ↩️ `async def`. + +/// + +/// info + +👆 💪 ✍ 🌅 🔃 👫 🎉 🐕‍🦺 💃 🎉' 🩺. + +/// + +### `startup` & `shutdown` 👯‍♂️ + +📤 ↕ 🤞 👈 ⚛ 👆 *🕴* & *🤫* 🔗, 👆 💪 💚 ▶️ 🕳 & ⤴️ 🏁 ⚫️, 📎 ℹ & ⤴️ 🚀 ⚫️, ♒️. + +🔨 👈 👽 🔢 👈 🚫 💰 ⚛ ⚖️ 🔢 👯‍♂️ 🌅 ⚠ 👆 🔜 💪 🏪 💲 🌐 🔢 ⚖️ 🎏 🎱. + +↩️ 👈, ⚫️ 🔜 👍 ↩️ ⚙️ `lifespan` 🔬 🔛. + +## 📡 ℹ + +📡 ℹ 😟 🤓. 👶 + +🔘, 🔫 📡 🔧, 👉 🍕 🔆 🛠️, & ⚫️ 🔬 🎉 🤙 `startup` & `shutdown`. + +## 🎧 🈸 + +👶 ✔️ 🤯 👈 👫 🔆 🎉 (🕴 & 🤫) 🔜 🕴 🛠️ 👑 🈸, 🚫 [🎧 🈸 - 🗻](sub-applications.md){.internal-link target=_blank}. diff --git a/docs/em/docs/advanced/generate-clients.md b/docs/em/docs/advanced/generate-clients.md new file mode 100644 index 0000000..a680c90 --- /dev/null +++ b/docs/em/docs/advanced/generate-clients.md @@ -0,0 +1,238 @@ +# 🏗 👩‍💻 + +**FastAPI** ⚓️ 🔛 🗄 🔧, 👆 🤚 🏧 🔗 ⏮️ 📚 🧰, 🔌 🏧 🛠️ 🩺 (🚚 🦁 🎚). + +1️⃣ 🎯 📈 👈 🚫 🎯 ⭐ 👈 👆 💪 **🏗 👩‍💻** (🕣 🤙 **📱** ) 👆 🛠️, 📚 🎏 **🛠️ 🇪🇸**. + +## 🗄 👩‍💻 🚂 + +📤 📚 🧰 🏗 👩‍💻 ⚪️➡️ **🗄**. + +⚠ 🧰 🗄 🚂. + +🚥 👆 🏗 **🕸**, 📶 😌 🎛 🗄-📕-🇦🇪. + +## 🏗 📕 🕸 👩‍💻 + +➡️ ▶️ ⏮️ 🙅 FastAPI 🈸: + +{* ../../docs_src/generate_clients/tutorial001.py hl[9:11,14:15,18,19,23] *} + +👀 👈 *➡ 🛠️* 🔬 🏷 👫 ⚙️ 📨 🚀 & 📨 🚀, ⚙️ 🏷 `Item` & `ResponseMessage`. + +### 🛠️ 🩺 + +🚥 👆 🚶 🛠️ 🩺, 👆 🔜 👀 👈 ⚫️ ✔️ **🔗** 📊 📨 📨 & 📨 📨: + + + +👆 💪 👀 👈 🔗 ↩️ 👫 📣 ⏮️ 🏷 📱. + +👈 ℹ 💪 📱 **🗄 🔗**, & ⤴️ 🎦 🛠️ 🩺 (🦁 🎚). + +& 👈 🎏 ℹ ⚪️➡️ 🏷 👈 🔌 🗄 ⚫️❔ 💪 ⚙️ **🏗 👩‍💻 📟**. + +### 🏗 📕 👩‍💻 + +🔜 👈 👥 ✔️ 📱 ⏮️ 🏷, 👥 💪 🏗 👩‍💻 📟 🕸. + +#### ❎ `openapi-ts` + +👆 💪 ❎ `openapi-ts` 👆 🕸 📟 ⏮️: + +
+ +```console +$ npm install @hey-api/openapi-ts --save-dev + +---> 100% +``` + +
+ +#### 🏗 👩‍💻 📟 + +🏗 👩‍💻 📟 👆 💪 ⚙️ 📋 ⏸ 🈸 `openapi-ts` 👈 🔜 🔜 ❎. + +↩️ ⚫️ ❎ 🇧🇿 🏗, 👆 🎲 🚫🔜 💪 🤙 👈 📋 🔗, ✋️ 👆 🔜 🚮 ⚫️ 🔛 👆 `package.json` 📁. + +⚫️ 💪 👀 💖 👉: + +```JSON hl_lines="7" +{ + "name": "frontend-app", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "generate-client": "openapi-ts --input http://localhost:8000/openapi.json --output ./src/client --client axios" + }, + "author": "", + "license": "", + "devDependencies": { + "@hey-api/openapi-ts": "^0.27.38", + "typescript": "^4.6.2" + } +} +``` + +⏮️ ✔️ 👈 ☕ `generate-client` ✍ 📤, 👆 💪 🏃 ⚫️ ⏮️: + +
+ +```console +$ npm run generate-client + +frontend-app@1.0.0 generate-client /home/user/code/frontend-app +> openapi-ts --input http://localhost:8000/openapi.json --output ./src/client --client axios +``` + +
+ +👈 📋 🔜 🏗 📟 `./src/client` & 🔜 ⚙️ `axios` (🕸 🇺🇸🔍 🗃) 🔘. + +### 🔄 👅 👩‍💻 📟 + +🔜 👆 💪 🗄 & ⚙️ 👩‍💻 📟, ⚫️ 💪 👀 💖 👉, 👀 👈 👆 🤚 ✍ 👩‍🔬: + + + +👆 🔜 🤚 ✍ 🚀 📨: + + + +/// tip + +👀 ✍ `name` & `price`, 👈 🔬 FastAPI 🈸, `Item` 🏷. + +/// + +👆 🔜 ✔️ ⏸ ❌ 📊 👈 👆 📨: + + + +📨 🎚 🔜 ✔️ ✍: + + + +## FastAPI 📱 ⏮️ 🔖 + +📚 💼 👆 FastAPI 📱 🔜 🦏, & 👆 🔜 🎲 ⚙️ 🔖 🎏 🎏 👪 *➡ 🛠️*. + +🖼, 👆 💪 ✔️ 📄 **🏬** & ➕1️⃣ 📄 **👩‍💻**, & 👫 💪 👽 🔖: + + +{* ../../docs_src/generate_clients/tutorial002.py hl[23,28,36] *} + +### 🏗 📕 👩‍💻 ⏮️ 🔖 + +🚥 👆 🏗 👩‍💻 FastAPI 📱 ⚙️ 🔖, ⚫️ 🔜 🛎 🎏 👩‍💻 📟 ⚓️ 🔛 🔖. + +👉 🌌 👆 🔜 💪 ✔️ 👜 ✔ & 👪 ☑ 👩‍💻 📟: + + + +👉 💼 👆 ✔️: + +* `ItemsService` +* `UsersService` + +### 👩‍💻 👩‍🔬 📛 + +▶️️ 🔜 🏗 👩‍🔬 📛 💖 `createItemItemsPost` 🚫 👀 📶 🧹: + +```TypeScript +ItemsService.createItemItemsPost({name: "Plumbus", price: 5}) +``` + +...👈 ↩️ 👩‍💻 🚂 ⚙️ 🗄 🔗 **🛠️ 🆔** 🔠 *➡ 🛠️*. + +🗄 🚚 👈 🔠 🛠️ 🆔 😍 🤭 🌐 *➡ 🛠️*, FastAPI ⚙️ **🔢 📛**, **➡**, & **🇺🇸🔍 👩‍🔬/🛠️** 🏗 👈 🛠️ 🆔, ↩️ 👈 🌌 ⚫️ 💪 ⚒ 💭 👈 🛠️ 🆔 😍. + +✋️ 👤 🔜 🎦 👆 ❔ 📉 👈 ⏭. 👶 + +## 🛃 🛠️ 🆔 & 👍 👩‍🔬 📛 + +👆 💪 **🔀** 🌌 👫 🛠️ 🆔 **🏗** ⚒ 👫 🙅 & ✔️ **🙅 👩‍🔬 📛** 👩‍💻. + +👉 💼 👆 🔜 ✔️ 🚚 👈 🔠 🛠️ 🆔 **😍** 🎏 🌌. + +🖼, 👆 💪 ⚒ 💭 👈 🔠 *➡ 🛠️* ✔️ 🔖, & ⤴️ 🏗 🛠️ 🆔 ⚓️ 🔛 **🔖** & *➡ 🛠️* **📛** (🔢 📛). + +### 🛃 🏗 😍 🆔 🔢 + +FastAPI ⚙️ **😍 🆔** 🔠 *➡ 🛠️*, ⚫️ ⚙️ **🛠️ 🆔** & 📛 🙆 💪 🛃 🏷, 📨 ⚖️ 📨. + +👆 💪 🛃 👈 🔢. ⚫️ ✊ `APIRoute` & 🔢 🎻. + +🖼, 📥 ⚫️ ⚙️ 🥇 🔖 (👆 🔜 🎲 ✔️ 🕴 1️⃣ 🔖) & *➡ 🛠️* 📛 (🔢 📛). + +👆 💪 ⤴️ 🚶‍♀️ 👈 🛃 🔢 **FastAPI** `generate_unique_id_function` 🔢: + +{* ../../docs_src/generate_clients/tutorial003.py hl[8:9,12] *} + +### 🏗 📕 👩‍💻 ⏮️ 🛃 🛠️ 🆔 + +🔜 🚥 👆 🏗 👩‍💻 🔄, 👆 🔜 👀 👈 ⚫️ ✔️ 📉 👩‍🔬 📛: + + + +👆 👀, 👩‍🔬 📛 🔜 ✔️ 🔖 & ⤴️ 🔢 📛, 🔜 👫 🚫 🔌 ℹ ⚪️➡️ 📛 ➡ & 🇺🇸🔍 🛠️. + +### 🗜 🗄 🔧 👩‍💻 🚂 + +🏗 📟 ✔️ **❎ ℹ**. + +👥 ⏪ 💭 👈 👉 👩‍🔬 🔗 **🏬** ↩️ 👈 🔤 `ItemsService` (✊ ⚪️➡️ 🔖), ✋️ 👥 ✔️ 📛 🔡 👩‍🔬 📛 💁‍♂️. 👶 + +👥 🔜 🎲 💚 🚧 ⚫️ 🗄 🏢, 👈 🔜 🚚 👈 🛠️ 🆔 **😍**. + +✋️ 🏗 👩‍💻 👥 💪 **🔀** 🗄 🛠️ 🆔 ▶️️ ⏭ 🏭 👩‍💻, ⚒ 👈 👩‍🔬 📛 👌 & **🧹**. + +👥 💪 ⏬ 🗄 🎻 📁 `openapi.json` & ⤴️ 👥 💪 **❎ 👈 🔡 🔖** ⏮️ ✍ 💖 👉: + +{* ../../docs_src/generate_clients/tutorial004.py *} + +⏮️ 👈, 🛠️ 🆔 🔜 📁 ⚪️➡️ 👜 💖 `items-get_items` `get_items`, 👈 🌌 👩‍💻 🚂 💪 🏗 🙅 👩‍🔬 📛. + +### 🏗 📕 👩‍💻 ⏮️ 🗜 🗄 + +🔜 🔚 🏁 📁 `openapi.json`, 👆 🔜 🔀 `package.json` ⚙️ 👈 🇧🇿 📁, 🖼: + +```JSON hl_lines="7" +{ + "name": "frontend-app", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "generate-client": "openapi-ts --input ./openapi.json --output ./src/client --client axios" + }, + "author": "", + "license": "", + "devDependencies": { + "@hey-api/openapi-ts": "^0.27.38", + "typescript": "^4.6.2" + } +} +``` + +⏮️ 🏭 🆕 👩‍💻, 👆 🔜 🔜 ✔️ **🧹 👩‍🔬 📛**, ⏮️ 🌐 **✍**, **⏸ ❌**, ♒️: + + + +## 💰 + +🕐❔ ⚙️ 🔁 🏗 👩‍💻 👆 🔜 **✍** : + +* 👩‍🔬. +* 📨 🚀 💪, 🔢 🔢, ♒️. +* 📨 🚀. + +👆 🔜 ✔️ **⏸ ❌** 🌐. + +& 🕐❔ 👆 ℹ 👩‍💻 📟, & **♻** 🕸, ⚫️ 🔜 ✔️ 🙆 🆕 *➡ 🛠️* 💪 👩‍🔬, 🗝 🕐 ❎, & 🙆 🎏 🔀 🔜 🎨 🔛 🏗 📟. 👶 + +👉 ⛓ 👈 🚥 🕳 🔀 ⚫️ 🔜 **🎨** 🔛 👩‍💻 📟 🔁. & 🚥 👆 **🏗** 👩‍💻 ⚫️ 🔜 ❌ 👅 🚥 👆 ✔️ 🙆 **🔖** 📊 ⚙️. + +, 👆 🔜 **🔍 📚 ❌** 📶 ⏪ 🛠️ 🛵 ↩️ ✔️ ⌛ ❌ 🎦 🆙 👆 🏁 👩‍💻 🏭 & ⤴️ 🔄 ℹ 🌐❔ ⚠. 👶 diff --git a/docs/em/docs/advanced/index.md b/docs/em/docs/advanced/index.md new file mode 100644 index 0000000..48ef8e4 --- /dev/null +++ b/docs/em/docs/advanced/index.md @@ -0,0 +1,27 @@ +# 🏧 👩‍💻 🦮 + +## 🌖 ⚒ + +👑 [🔰 - 👩‍💻 🦮](../tutorial/index.md){.internal-link target=_blank} 🔜 🥃 🤝 👆 🎫 🔘 🌐 👑 ⚒ **FastAPI**. + +⏭ 📄 👆 🔜 👀 🎏 🎛, 📳, & 🌖 ⚒. + +/// tip + +⏭ 📄 **🚫 🎯 "🏧"**. + + & ⚫️ 💪 👈 👆 ⚙️ 💼, ⚗ 1️⃣ 👫. + +/// + +## ✍ 🔰 🥇 + +👆 💪 ⚙️ 🏆 ⚒ **FastAPI** ⏮️ 💡 ⚪️➡️ 👑 [🔰 - 👩‍💻 🦮](../tutorial/index.md){.internal-link target=_blank}. + +& ⏭ 📄 🤔 👆 ⏪ ✍ ⚫️, & 🤔 👈 👆 💭 👈 👑 💭. + +## 🏎.🅾 ↗️ + +🚥 👆 🔜 💖 ✊ 🏧-🔰 ↗️ 🔗 👉 📄 🩺, 👆 💪 💚 ✅: 💯-💾 🛠️ ⏮️ FastAPI & ☁ **🏎.🅾**. + +👫 ⏳ 🩸 1️⃣0️⃣ 💯 🌐 💰 🛠️ **FastAPI**. 👶 👶 diff --git a/docs/em/docs/advanced/middleware.md b/docs/em/docs/advanced/middleware.md new file mode 100644 index 0000000..22d7070 --- /dev/null +++ b/docs/em/docs/advanced/middleware.md @@ -0,0 +1,95 @@ +# 🏧 🛠️ + +👑 🔰 👆 ✍ ❔ 🚮 [🛃 🛠️](../tutorial/middleware.md){.internal-link target=_blank} 👆 🈸. + +& ⤴️ 👆 ✍ ❔ 🍵 [⚜ ⏮️ `CORSMiddleware`](../tutorial/cors.md){.internal-link target=_blank}. + +👉 📄 👥 🔜 👀 ❔ ⚙️ 🎏 🛠️. + +## ❎ 🔫 🛠️ + +**FastAPI** ⚓️ 🔛 💃 & 🛠️ 🔫 🔧, 👆 💪 ⚙️ 🙆 🔫 🛠️. + +🛠️ 🚫 ✔️ ⚒ FastAPI ⚖️ 💃 👷, 📏 ⚫️ ⏩ 🔫 🔌. + +🏢, 🔫 🛠️ 🎓 👈 ⌛ 📨 🔫 📱 🥇 ❌. + +, 🧾 🥉-🥳 🔫 🛠️ 👫 🔜 🎲 💬 👆 🕳 💖: + +```Python +from unicorn import UnicornMiddleware + +app = SomeASGIApp() + +new_app = UnicornMiddleware(app, some_config="rainbow") +``` + +✋️ FastAPI (🤙 💃) 🚚 🙅 🌌 ⚫️ 👈 ⚒ 💭 👈 🔗 🛠️ 🍵 💽 ❌ & 🛃 ⚠ 🐕‍🦺 👷 ☑. + +👈, 👆 ⚙️ `app.add_middleware()` (🖼 ⚜). + +```Python +from fastapi import FastAPI +from unicorn import UnicornMiddleware + +app = FastAPI() + +app.add_middleware(UnicornMiddleware, some_config="rainbow") +``` + +`app.add_middleware()` 📨 🛠️ 🎓 🥇 ❌ & 🙆 🌖 ❌ 🚶‍♀️ 🛠️. + +## 🛠️ 🛠️ + +**FastAPI** 🔌 📚 🛠️ ⚠ ⚙️ 💼, 👥 🔜 👀 ⏭ ❔ ⚙️ 👫. + +/// note | 📡 ℹ + +⏭ 🖼, 👆 💪 ⚙️ `from starlette.middleware.something import SomethingMiddleware`. + +**FastAPI** 🚚 📚 🛠️ `fastapi.middleware` 🏪 👆, 👩‍💻. ✋️ 🌅 💪 🛠️ 👟 🔗 ⚪️➡️ 💃. + +/// + +## `HTTPSRedirectMiddleware` + +🛠️ 👈 🌐 📨 📨 🔜 👯‍♂️ `https` ⚖️ `wss`. + +🙆 📨 📨 `http` ⚖️ `ws` 🔜 ❎ 🔐 ⚖ ↩️. + +{* ../../docs_src/advanced_middleware/tutorial001.py hl[2,6] *} + +## `TrustedHostMiddleware` + +🛠️ 👈 🌐 📨 📨 ✔️ ☑ ⚒ `Host` 🎚, ✔ 💂‍♂ 🛡 🇺🇸🔍 🦠 🎚 👊. + +{* ../../docs_src/advanced_middleware/tutorial002.py hl[2,6:8] *} + +📄 ❌ 🐕‍🦺: + +* `allowed_hosts` - 📇 🆔 📛 👈 🔜 ✔ 📛. 🃏 🆔 ✅ `*.example.com` 🐕‍🦺 🎀 📁. ✔ 🙆 📛 👯‍♂️ ⚙️ `allowed_hosts=["*"]` ⚖️ 🚫 🛠️. + +🚥 📨 📨 🔨 🚫 ✔ ☑ ⤴️ `400` 📨 🔜 📨. + +## `GZipMiddleware` + +🍵 🗜 📨 🙆 📨 👈 🔌 `"gzip"` `Accept-Encoding` 🎚. + +🛠️ 🔜 🍵 👯‍♂️ 🐩 & 🎥 📨. + +{* ../../docs_src/advanced_middleware/tutorial003.py hl[2,6] *} + +📄 ❌ 🐕‍🦺: + +* `minimum_size` - 🚫 🗜 📨 👈 🤪 🌘 👉 💯 📐 🔢. 🔢 `500`. + +## 🎏 🛠️ + +📤 📚 🎏 🔫 🛠️. + +🖼: + +* Uvicorn `ProxyHeadersMiddleware` +* 🇸🇲 + +👀 🎏 💪 🛠️ ✅ 💃 🛠️ 🩺 & 🔫 👌 📇. diff --git a/docs/em/docs/advanced/openapi-callbacks.md b/docs/em/docs/advanced/openapi-callbacks.md new file mode 100644 index 0000000..b0a8216 --- /dev/null +++ b/docs/em/docs/advanced/openapi-callbacks.md @@ -0,0 +1,186 @@ +# 🗄 ⏲ + +👆 💪 ✍ 🛠️ ⏮️ *➡ 🛠️* 👈 💪 ⏲ 📨 *🔢 🛠️* ✍ 👱 🙆 (🎲 🎏 👩‍💻 👈 🔜 *⚙️* 👆 🛠️). + +🛠️ 👈 🔨 🕐❔ 👆 🛠️ 📱 🤙 *🔢 🛠️* 📛 "⏲". ↩️ 🖥 👈 🔢 👩‍💻 ✍ 📨 📨 👆 🛠️ & ⤴️ 👆 🛠️ *🤙 🔙*, 📨 📨 *🔢 🛠️* (👈 🎲 ✍ 🎏 👩‍💻). + +👉 💼, 👆 💪 💚 📄 ❔ 👈 🔢 🛠️ *🔜* 👀 💖. ⚫️❔ *➡ 🛠️* ⚫️ 🔜 ✔️, ⚫️❔ 💪 ⚫️ 🔜 ⌛, ⚫️❔ 📨 ⚫️ 🔜 📨, ♒️. + +## 📱 ⏮️ ⏲ + +➡️ 👀 🌐 👉 ⏮️ 🖼. + +🌈 👆 🛠️ 📱 👈 ✔ 🏗 🧾. + +👉 🧾 🔜 ✔️ `id`, `title` (📦), `customer`, & `total`. + +👩‍💻 👆 🛠️ (🔢 👩‍💻) 🔜 ✍ 🧾 👆 🛠️ ⏮️ 🏤 📨. + +⤴️ 👆 🛠️ 🔜 (➡️ 🌈): + +* 📨 🧾 🕴 🔢 👩‍💻. +* 📈 💸. +* 📨 📨 🔙 🛠️ 👩‍💻 (🔢 👩‍💻). + * 👉 🔜 🔨 📨 🏤 📨 (⚪️➡️ *👆 🛠️*) *🔢 🛠️* 🚚 👈 🔢 👩‍💻 (👉 "⏲"). + +## 😐 **FastAPI** 📱 + +➡️ 🥇 👀 ❔ 😐 🛠️ 📱 🔜 👀 💖 ⏭ ❎ ⏲. + +⚫️ 🔜 ✔️ *➡ 🛠️* 👈 🔜 📨 `Invoice` 💪, & 🔢 🔢 `callback_url` 👈 🔜 🔌 📛 ⏲. + +👉 🍕 📶 😐, 🌅 📟 🎲 ⏪ 😰 👆: + +{* ../../docs_src/openapi_callbacks/tutorial001.py hl[9:13,36:53] *} + +/// tip + +`callback_url` 🔢 🔢 ⚙️ Pydantic 📛 🆎. + +/// + +🕴 🆕 👜 `callbacks=messages_callback_router.routes` ❌ *➡ 🛠️ 👨‍🎨*. 👥 🔜 👀 ⚫️❔ 👈 ⏭. + +## 🔬 ⏲ + +☑ ⏲ 📟 🔜 🪀 🙇 🔛 👆 👍 🛠️ 📱. + +& ⚫️ 🔜 🎲 🪀 📚 ⚪️➡️ 1️⃣ 📱 ⏭. + +⚫️ 💪 1️⃣ ⚖️ 2️⃣ ⏸ 📟, 💖: + +```Python +callback_url = "https://example.com/api/v1/invoices/events/" +httpx.post(callback_url, json={"description": "Invoice paid", "paid": True}) +``` + +✋️ 🎲 🏆 ⚠ 🍕 ⏲ ⚒ 💭 👈 👆 🛠️ 👩‍💻 (🔢 👩‍💻) 🛠️ *🔢 🛠️* ☑, 🛄 💽 👈 *👆 🛠️* 🔜 📨 📨 💪 ⏲, ♒️. + +, ⚫️❔ 👥 🔜 ⏭ 🚮 📟 📄 ❔ 👈 *🔢 🛠️* 🔜 👀 💖 📨 ⏲ ⚪️➡️ *👆 🛠️*. + +👈 🧾 🔜 🎦 🆙 🦁 🎚 `/docs` 👆 🛠️, & ⚫️ 🔜 ➡️ 🔢 👩‍💻 💭 ❔ 🏗 *🔢 🛠️*. + +👉 🖼 🚫 🛠️ ⏲ ⚫️ (👈 💪 ⏸ 📟), 🕴 🧾 🍕. + +/// tip + +☑ ⏲ 🇺🇸🔍 📨. + +🕐❔ 🛠️ ⏲ 👆, 👆 💪 ⚙️ 🕳 💖 🇸🇲 ⚖️ 📨. + +/// + +## ✍ ⏲ 🧾 📟 + +👉 📟 🏆 🚫 🛠️ 👆 📱, 👥 🕴 💪 ⚫️ *📄* ❔ 👈 *🔢 🛠️* 🔜 👀 💖. + +✋️, 👆 ⏪ 💭 ❔ 💪 ✍ 🏧 🧾 🛠️ ⏮️ **FastAPI**. + +👥 🔜 ⚙️ 👈 🎏 💡 📄 ❔ *🔢 🛠️* 🔜 👀 💖... 🏗 *➡ 🛠️(Ⓜ)* 👈 🔢 🛠️ 🔜 🛠️ (🕐 👆 🛠️ 🔜 🤙). + +/// tip + +🕐❔ ✍ 📟 📄 ⏲, ⚫️ 💪 ⚠ 🌈 👈 👆 👈 *🔢 👩‍💻*. & 👈 👆 ⏳ 🛠️ *🔢 🛠️*, 🚫 *👆 🛠️*. + +🍕 🛠️ 👉 ☝ 🎑 ( *🔢 👩‍💻*) 💪 ℹ 👆 💭 💖 ⚫️ 🌅 ⭐ 🌐❔ 🚮 🔢, Pydantic 🏷 💪, 📨, ♒️. 👈 *🔢 🛠️*. + +/// + +### ✍ ⏲ `APIRouter` + +🥇 ✍ 🆕 `APIRouter` 👈 🔜 🔌 1️⃣ ⚖️ 🌅 ⏲. + +{* ../../docs_src/openapi_callbacks/tutorial001.py hl[3,25] *} + +### ✍ ⏲ *➡ 🛠️* + +✍ ⏲ *➡ 🛠️* ⚙️ 🎏 `APIRouter` 👆 ✍ 🔛. + +⚫️ 🔜 👀 💖 😐 FastAPI *➡ 🛠️*: + +* ⚫️ 🔜 🎲 ✔️ 📄 💪 ⚫️ 🔜 📨, ✅ `body: InvoiceEvent`. +* & ⚫️ 💪 ✔️ 📄 📨 ⚫️ 🔜 📨, ✅ `response_model=InvoiceEventReceived`. + +{* ../../docs_src/openapi_callbacks/tutorial001.py hl[16:18,21:22,28:32] *} + +📤 2️⃣ 👑 🔺 ⚪️➡️ 😐 *➡ 🛠️*: + +* ⚫️ 🚫 💪 ✔️ 🙆 ☑ 📟, ↩️ 👆 📱 🔜 🙅 🤙 👉 📟. ⚫️ 🕴 ⚙️ 📄 *🔢 🛠️*. , 🔢 💪 ✔️ `pass`. +* *➡* 💪 🔌 🗄 3️⃣ 🧬 (👀 🌖 🔛) 🌐❔ ⚫️ 💪 ⚙️ 🔢 ⏮️ 🔢 & 🍕 ⏮️ 📨 📨 *👆 🛠️*. + +### ⏲ ➡ 🧬 + +⏲ *➡* 💪 ✔️ 🗄 3️⃣ 🧬 👈 💪 🔌 🍕 ⏮️ 📨 📨 *👆 🛠️*. + +👉 💼, ⚫️ `str`: + +```Python +"{$callback_url}/invoices/{$request.body.id}" +``` + +, 🚥 👆 🛠️ 👩‍💻 (🔢 👩‍💻) 📨 📨 *👆 🛠️* : + +``` +https://yourapi.com/invoices/?callback_url=https://www.external.org/events +``` + +⏮️ 🎻 💪: + +```JSON +{ + "id": "2expen51ve", + "customer": "Mr. Richie Rich", + "total": "9999" +} +``` + +⤴️ *👆 🛠️* 🔜 🛠️ 🧾, & ☝ ⏪, 📨 ⏲ 📨 `callback_url` ( *🔢 🛠️*): + +``` +https://www.external.org/events/invoices/2expen51ve +``` + +⏮️ 🎻 💪 ⚗ 🕳 💖: + +```JSON +{ + "description": "Payment celebration", + "paid": true +} +``` + +& ⚫️ 🔜 ⌛ 📨 ⚪️➡️ 👈 *🔢 🛠️* ⏮️ 🎻 💪 💖: + +```JSON +{ + "ok": true +} +``` + +/// tip + +👀 ❔ ⏲ 📛 ⚙️ 🔌 📛 📨 🔢 🔢 `callback_url` (`https://www.external.org/events`) & 🧾 `id` ⚪️➡️ 🔘 🎻 💪 (`2expen51ve`). + +/// + +### 🚮 ⏲ 📻 + +👉 ☝ 👆 ✔️ *⏲ ➡ 🛠️(Ⓜ)* 💪 (1️⃣(Ⓜ) 👈 *🔢 👩‍💻* 🔜 🛠️ *🔢 🛠️*) ⏲ 📻 👆 ✍ 🔛. + +🔜 ⚙️ 🔢 `callbacks` *👆 🛠️ ➡ 🛠️ 👨‍🎨* 🚶‍♀️ 🔢 `.routes` (👈 🤙 `list` 🛣/*➡ 🛠️*) ⚪️➡️ 👈 ⏲ 📻: + +{* ../../docs_src/openapi_callbacks/tutorial001.py hl[35] *} + +/// tip + +👀 👈 👆 🚫 🚶‍♀️ 📻 ⚫️ (`invoices_callback_router`) `callback=`, ✋️ 🔢 `.routes`, `invoices_callback_router.routes`. + +/// + +### ✅ 🩺 + +🔜 👆 💪 ▶️ 👆 📱 ⏮️ Uvicorn & 🚶 http://127.0.0.1:8000/docs. + +👆 🔜 👀 👆 🩺 ✅ "⏲" 📄 👆 *➡ 🛠️* 👈 🎦 ❔ *🔢 🛠️* 🔜 👀 💖: + + diff --git a/docs/em/docs/advanced/path-operation-advanced-configuration.md b/docs/em/docs/advanced/path-operation-advanced-configuration.md new file mode 100644 index 0000000..9d9d5fa --- /dev/null +++ b/docs/em/docs/advanced/path-operation-advanced-configuration.md @@ -0,0 +1,172 @@ +# ➡ 🛠️ 🏧 📳 + +## 🗄 { + +/// warning + +🚥 👆 🚫 "🕴" 🗄, 👆 🎲 🚫 💪 👉. + +/// + +👆 💪 ⚒ 🗄 `operationId` ⚙️ 👆 *➡ 🛠️* ⏮️ 🔢 `operation_id`. + +👆 🔜 ✔️ ⚒ 💭 👈 ⚫️ 😍 🔠 🛠️. + +{* ../../docs_src/path_operation_advanced_configuration/tutorial001.py hl[6] *} + +### ⚙️ *➡ 🛠️ 🔢* 📛 { + +🚥 👆 💚 ⚙️ 👆 🔗' 🔢 📛 `operationId`Ⓜ, 👆 💪 🔁 🤭 🌐 👫 & 🔐 🔠 *➡ 🛠️* `operation_id` ⚙️ 👫 `APIRoute.name`. + +👆 🔜 ⚫️ ⏮️ ❎ 🌐 👆 *➡ 🛠️*. + +{* ../../docs_src/path_operation_advanced_configuration/tutorial002.py hl[2,12:21,24] *} + +/// tip + +🚥 👆 ❎ 🤙 `app.openapi()`, 👆 🔜 ℹ `operationId`Ⓜ ⏭ 👈. + +/// + +/// warning + +🚥 👆 👉, 👆 ✔️ ⚒ 💭 🔠 1️⃣ 👆 *➡ 🛠️ 🔢* ✔️ 😍 📛. + +🚥 👫 🎏 🕹 (🐍 📁). + +/// + +## 🚫 ⚪️➡️ 🗄 + +🚫 *➡ 🛠️* ⚪️➡️ 🏗 🗄 🔗 (& ➡️, ⚪️➡️ 🏧 🧾 ⚙️), ⚙️ 🔢 `include_in_schema` & ⚒ ⚫️ `False`: + +{* ../../docs_src/path_operation_advanced_configuration/tutorial003.py hl[6] *} + +## 🏧 📛 ⚪️➡️ #️⃣ + +👆 💪 📉 ⏸ ⚙️ ⚪️➡️ #️⃣ *➡ 🛠️ 🔢* 🗄. + +❎ `\f` (😖 "📨 🍼" 🦹) 🤕 **FastAPI** 🔁 🔢 ⚙️ 🗄 👉 ☝. + +⚫️ 🏆 🚫 🎦 🆙 🧾, ✋️ 🎏 🧰 (✅ 🐉) 🔜 💪 ⚙️ 🎂. + +{* ../../docs_src/path_operation_advanced_configuration/tutorial004.py hl[19:29] *} + +## 🌖 📨 + +👆 🎲 ✔️ 👀 ❔ 📣 `response_model` & `status_code` *➡ 🛠️*. + +👈 🔬 🗃 🔃 👑 📨 *➡ 🛠️*. + +👆 💪 📣 🌖 📨 ⏮️ 👫 🏷, 👔 📟, ♒️. + +📤 🎂 📃 📥 🧾 🔃 ⚫️, 👆 💪 ✍ ⚫️ [🌖 📨 🗄](additional-responses.md){.internal-link target=_blank}. + +## 🗄 ➕ + +🕐❔ 👆 📣 *➡ 🛠️* 👆 🈸, **FastAPI** 🔁 🏗 🔗 🗃 🔃 👈 *➡ 🛠️* 🔌 🗄 🔗. + +/// note | 📡 ℹ + +🗄 🔧 ⚫️ 🤙 🛠️ 🎚. + +/// + +⚫️ ✔️ 🌐 ℹ 🔃 *➡ 🛠️* & ⚙️ 🏗 🏧 🧾. + +⚫️ 🔌 `tags`, `parameters`, `requestBody`, `responses`, ♒️. + +👉 *➡ 🛠️*-🎯 🗄 🔗 🛎 🏗 🔁 **FastAPI**, ✋️ 👆 💪 ↔ ⚫️. + +/// tip + +👉 🔅 🎚 ↔ ☝. + +🚥 👆 🕴 💪 📣 🌖 📨, 🌅 🏪 🌌 ⚫️ ⏮️ [🌖 📨 🗄](additional-responses.md){.internal-link target=_blank}. + +/// + +👆 💪 ↔ 🗄 🔗 *➡ 🛠️* ⚙️ 🔢 `openapi_extra`. + +### 🗄 ↔ + +👉 `openapi_extra` 💪 👍, 🖼, 📣 [🗄 ↔](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#specificationExtensions): + +{* ../../docs_src/path_operation_advanced_configuration/tutorial005.py hl[6] *} + +🚥 👆 📂 🏧 🛠️ 🩺, 👆 ↔ 🔜 🎦 🆙 🔝 🎯 *➡ 🛠️*. + + + +& 🚥 👆 👀 📉 🗄 ( `/openapi.json` 👆 🛠️), 👆 🔜 👀 👆 ↔ 🍕 🎯 *➡ 🛠️* 💁‍♂️: + +```JSON hl_lines="22" +{ + "openapi": "3.0.2", + "info": { + "title": "FastAPI", + "version": "0.1.0" + }, + "paths": { + "/items/": { + "get": { + "summary": "Read Items", + "operationId": "read_items_items__get", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": {} + } + } + } + }, + "x-aperture-labs-portal": "blue" + } + } + } +} +``` + +### 🛃 🗄 *➡ 🛠️* 🔗 + +📖 `openapi_extra` 🔜 🙇 🔗 ⏮️ 🔁 🏗 🗄 🔗 *➡ 🛠️*. + +, 👆 💪 🚮 🌖 💽 🔁 🏗 🔗. + +🖼, 👆 💪 💭 ✍ & ✔ 📨 ⏮️ 👆 👍 📟, 🍵 ⚙️ 🏧 ⚒ FastAPI ⏮️ Pydantic, ✋️ 👆 💪 💚 🔬 📨 🗄 🔗. + +👆 💪 👈 ⏮️ `openapi_extra`: + +{* ../../docs_src/path_operation_advanced_configuration/tutorial006.py hl[20:37,39:40] *} + +👉 🖼, 👥 🚫 📣 🙆 Pydantic 🏷. 👐, 📨 💪 🚫 🎻 🎻, ⚫️ ✍ 🔗 `bytes`, & 🔢 `magic_data_reader()` 🔜 🈚 🎻 ⚫️ 🌌. + +👐, 👥 💪 📣 📈 🔗 📨 💪. + +### 🛃 🗄 🎚 🆎 + +⚙️ 👉 🎏 🎱, 👆 💪 ⚙️ Pydantic 🏷 🔬 🎻 🔗 👈 ⤴️ 🔌 🛃 🗄 🔗 📄 *➡ 🛠️*. + +& 👆 💪 👉 🚥 💽 🆎 📨 🚫 🎻. + +🖼, 👉 🈸 👥 🚫 ⚙️ FastAPI 🛠️ 🛠️ ⚗ 🎻 🔗 ⚪️➡️ Pydantic 🏷 🚫 🏧 🔬 🎻. 👐, 👥 📣 📨 🎚 🆎 📁, 🚫 🎻: + +{* ../../docs_src/path_operation_advanced_configuration/tutorial007.py hl[17:22,24] *} + +👐, 👐 👥 🚫 ⚙️ 🔢 🛠️ 🛠️, 👥 ⚙️ Pydantic 🏷 ❎ 🏗 🎻 🔗 💽 👈 👥 💚 📨 📁. + +⤴️ 👥 ⚙️ 📨 🔗, & ⚗ 💪 `bytes`. 👉 ⛓ 👈 FastAPI 🏆 🚫 🔄 🎻 📨 🚀 🎻. + +& ⤴️ 👆 📟, 👥 🎻 👈 📁 🎚 🔗, & ⤴️ 👥 🔄 ⚙️ 🎏 Pydantic 🏷 ✔ 📁 🎚: + +{* ../../docs_src/path_operation_advanced_configuration/tutorial007.py hl[26:33] *} + +/// tip + +📥 👥 🏤-⚙️ 🎏 Pydantic 🏷. + +✋️ 🎏 🌌, 👥 💪 ✔️ ✔ ⚫️ 🎏 🌌. + +/// diff --git a/docs/em/docs/advanced/response-change-status-code.md b/docs/em/docs/advanced/response-change-status-code.md new file mode 100644 index 0000000..4933484 --- /dev/null +++ b/docs/em/docs/advanced/response-change-status-code.md @@ -0,0 +1,31 @@ +# 📨 - 🔀 👔 📟 + +👆 🎲 ✍ ⏭ 👈 👆 💪 ⚒ 🔢 [📨 👔 📟](../tutorial/response-status-code.md){.internal-link target=_blank}. + +✋️ 💼 👆 💪 📨 🎏 👔 📟 🌘 🔢. + +## ⚙️ 💼 + +🖼, 🌈 👈 👆 💚 📨 🇺🇸🔍 👔 📟 "👌" `200` 🔢. + +✋️ 🚥 💽 🚫 🔀, 👆 💚 ✍ ⚫️, & 📨 🇺🇸🔍 👔 📟 "✍" `201`. + +✋️ 👆 💚 💪 ⛽ & 🗜 💽 👆 📨 ⏮️ `response_model`. + +📚 💼, 👆 💪 ⚙️ `Response` 🔢. + +## ⚙️ `Response` 🔢 + +👆 💪 📣 🔢 🆎 `Response` 👆 *➡ 🛠️ 🔢* (👆 💪 🍪 & 🎚). + +& ⤴️ 👆 💪 ⚒ `status_code` 👈 *🔀* 📨 🎚. + +{* ../../docs_src/response_change_status_code/tutorial001.py hl[1,9,12] *} + +& ⤴️ 👆 💪 📨 🙆 🎚 👆 💪, 👆 🛎 🔜 ( `dict`, 💽 🏷, ♒️). + +& 🚥 👆 📣 `response_model`, ⚫️ 🔜 ⚙️ ⛽ & 🗜 🎚 👆 📨. + +**FastAPI** 🔜 ⚙️ 👈 *🔀* 📨 ⚗ 👔 📟 (🍪 & 🎚), & 🔜 🚮 👫 🏁 📨 👈 🔌 💲 👆 📨, ⛽ 🙆 `response_model`. + +👆 💪 📣 `Response` 🔢 🔗, & ⚒ 👔 📟 👫. ✋️ ✔️ 🤯 👈 🏁 1️⃣ ⚒ 🔜 🏆. diff --git a/docs/em/docs/advanced/response-cookies.md b/docs/em/docs/advanced/response-cookies.md new file mode 100644 index 0000000..a6e37ad --- /dev/null +++ b/docs/em/docs/advanced/response-cookies.md @@ -0,0 +1,51 @@ +# 📨 🍪 + +## ⚙️ `Response` 🔢 + +👆 💪 📣 🔢 🆎 `Response` 👆 *➡ 🛠️ 🔢*. + +& ⤴️ 👆 💪 ⚒ 🍪 👈 *🔀* 📨 🎚. + +{* ../../docs_src/response_cookies/tutorial002.py hl[1,8:9] *} + +& ⤴️ 👆 💪 📨 🙆 🎚 👆 💪, 👆 🛎 🔜 ( `dict`, 💽 🏷, ♒️). + +& 🚥 👆 📣 `response_model`, ⚫️ 🔜 ⚙️ ⛽ & 🗜 🎚 👆 📨. + +**FastAPI** 🔜 ⚙️ 👈 *🔀* 📨 ⚗ 🍪 (🎚 & 👔 📟), & 🔜 🚮 👫 🏁 📨 👈 🔌 💲 👆 📨, ⛽ 🙆 `response_model`. + +👆 💪 📣 `Response` 🔢 🔗, & ⚒ 🍪 (& 🎚) 👫. + +## 📨 `Response` 🔗 + +👆 💪 ✍ 🍪 🕐❔ 🛬 `Response` 🔗 👆 📟. + +👈, 👆 💪 ✍ 📨 🔬 [📨 📨 🔗](response-directly.md){.internal-link target=_blank}. + +⤴️ ⚒ 🍪 ⚫️, & ⤴️ 📨 ⚫️: + +{* ../../docs_src/response_cookies/tutorial001.py hl[10:12] *} + +/// tip + +✔️ 🤯 👈 🚥 👆 📨 📨 🔗 ↩️ ⚙️ `Response` 🔢, FastAPI 🔜 📨 ⚫️ 🔗. + +, 👆 🔜 ✔️ ⚒ 💭 👆 💽 ☑ 🆎. 🤶 Ⓜ. ⚫️ 🔗 ⏮️ 🎻, 🚥 👆 🛬 `JSONResponse`. + + & 👈 👆 🚫 📨 🙆 📊 👈 🔜 ✔️ ⛽ `response_model`. + +/// + +### 🌅 ℹ + +/// note | 📡 ℹ + +👆 💪 ⚙️ `from starlette.responses import Response` ⚖️ `from starlette.responses import JSONResponse`. + +**FastAPI** 🚚 🎏 `starlette.responses` `fastapi.responses` 🏪 👆, 👩‍💻. ✋️ 🌅 💪 📨 👟 🔗 ⚪️➡️ 💃. + + & `Response` 💪 ⚙️ 🛎 ⚒ 🎚 & 🍪, **FastAPI** 🚚 ⚫️ `fastapi.Response`. + +/// + +👀 🌐 💪 🔢 & 🎛, ✅ 🧾 💃. diff --git a/docs/em/docs/advanced/response-directly.md b/docs/em/docs/advanced/response-directly.md new file mode 100644 index 0000000..29819a2 --- /dev/null +++ b/docs/em/docs/advanced/response-directly.md @@ -0,0 +1,65 @@ +# 📨 📨 🔗 + +🕐❔ 👆 ✍ **FastAPI** *➡ 🛠️* 👆 💪 🛎 📨 🙆 📊 ⚪️➡️ ⚫️: `dict`, `list`, Pydantic 🏷, 💽 🏷, ♒️. + +🔢, **FastAPI** 🔜 🔁 🗜 👈 📨 💲 🎻 ⚙️ `jsonable_encoder` 🔬 [🎻 🔗 🔢](../tutorial/encoder.md){.internal-link target=_blank}. + +⤴️, ⛅ 🎑, ⚫️ 🔜 🚮 👈 🎻-🔗 💽 (✅ `dict`) 🔘 `JSONResponse` 👈 🔜 ⚙️ 📨 📨 👩‍💻. + +✋️ 👆 💪 📨 `JSONResponse` 🔗 ⚪️➡️ 👆 *➡ 🛠️*. + +⚫️ 💪 ⚠, 🖼, 📨 🛃 🎚 ⚖️ 🍪. + +## 📨 `Response` + +👐, 👆 💪 📨 🙆 `Response` ⚖️ 🙆 🎧-🎓 ⚫️. + +/// tip + +`JSONResponse` ⚫️ 🎧-🎓 `Response`. + +/// + +& 🕐❔ 👆 📨 `Response`, **FastAPI** 🔜 🚶‍♀️ ⚫️ 🔗. + +⚫️ 🏆 🚫 🙆 💽 🛠️ ⏮️ Pydantic 🏷, ⚫️ 🏆 🚫 🗜 🎚 🙆 🆎, ♒️. + +👉 🤝 👆 📚 💪. 👆 💪 📨 🙆 📊 🆎, 🔐 🙆 💽 📄 ⚖️ 🔬, ♒️. + +## ⚙️ `jsonable_encoder` `Response` + +↩️ **FastAPI** 🚫 🙆 🔀 `Response` 👆 📨, 👆 ✔️ ⚒ 💭 ⚫️ 🎚 🔜 ⚫️. + +🖼, 👆 🚫🔜 🚮 Pydantic 🏷 `JSONResponse` 🍵 🥇 🏭 ⚫️ `dict` ⏮️ 🌐 📊 🆎 (💖 `datetime`, `UUID`, ♒️) 🗜 🎻-🔗 🆎. + +📚 💼, 👆 💪 ⚙️ `jsonable_encoder` 🗜 👆 📊 ⏭ 🚶‍♀️ ⚫️ 📨: + +{* ../../docs_src/response_directly/tutorial001.py hl[6:7,21:22] *} + +/// note | 📡 ℹ + +👆 💪 ⚙️ `from starlette.responses import JSONResponse`. + +**FastAPI** 🚚 🎏 `starlette.responses` `fastapi.responses` 🏪 👆, 👩‍💻. ✋️ 🌅 💪 📨 👟 🔗 ⚪️➡️ 💃. + +/// + +## 🛬 🛃 `Response` + +🖼 🔛 🎦 🌐 🍕 👆 💪, ✋️ ⚫️ 🚫 📶 ⚠, 👆 💪 ✔️ 📨 `item` 🔗, & **FastAPI** 🔜 🚮 ⚫️ `JSONResponse` 👆, 🏭 ⚫️ `dict`, ♒️. 🌐 👈 🔢. + +🔜, ➡️ 👀 ❔ 👆 💪 ⚙️ 👈 📨 🛃 📨. + +➡️ 💬 👈 👆 💚 📨 📂 📨. + +👆 💪 🚮 👆 📂 🎚 🎻, 🚮 ⚫️ `Response`, & 📨 ⚫️: + +{* ../../docs_src/response_directly/tutorial002.py hl[1,18] *} + +## 🗒 + +🕐❔ 👆 📨 `Response` 🔗 🚮 📊 🚫 ✔, 🗜 (🎻), 🚫 📄 🔁. + +✋️ 👆 💪 📄 ⚫️ 🔬 [🌖 📨 🗄](additional-responses.md){.internal-link target=_blank}. + +👆 💪 👀 ⏪ 📄 ❔ ⚙️/📣 👉 🛃 `Response`Ⓜ ⏪ ✔️ 🏧 💽 🛠️, 🧾, ♒️. diff --git a/docs/em/docs/advanced/response-headers.md b/docs/em/docs/advanced/response-headers.md new file mode 100644 index 0000000..c255380 --- /dev/null +++ b/docs/em/docs/advanced/response-headers.md @@ -0,0 +1,41 @@ +# 📨 🎚 + +## ⚙️ `Response` 🔢 + +👆 💪 📣 🔢 🆎 `Response` 👆 *➡ 🛠️ 🔢* (👆 💪 🍪). + +& ⤴️ 👆 💪 ⚒ 🎚 👈 *🔀* 📨 🎚. + +{* ../../docs_src/response_headers/tutorial002.py hl[1,7:8] *} + +& ⤴️ 👆 💪 📨 🙆 🎚 👆 💪, 👆 🛎 🔜 ( `dict`, 💽 🏷, ♒️). + +& 🚥 👆 📣 `response_model`, ⚫️ 🔜 ⚙️ ⛽ & 🗜 🎚 👆 📨. + +**FastAPI** 🔜 ⚙️ 👈 *🔀* 📨 ⚗ 🎚 (🍪 & 👔 📟), & 🔜 🚮 👫 🏁 📨 👈 🔌 💲 👆 📨, ⛽ 🙆 `response_model`. + +👆 💪 📣 `Response` 🔢 🔗, & ⚒ 🎚 (& 🍪) 👫. + +## 📨 `Response` 🔗 + +👆 💪 🚮 🎚 🕐❔ 👆 📨 `Response` 🔗. + +✍ 📨 🔬 [📨 📨 🔗](response-directly.md){.internal-link target=_blank} & 🚶‍♀️ 🎚 🌖 🔢: + +{* ../../docs_src/response_headers/tutorial001.py hl[10:12] *} + +/// note | 📡 ℹ + +👆 💪 ⚙️ `from starlette.responses import Response` ⚖️ `from starlette.responses import JSONResponse`. + +**FastAPI** 🚚 🎏 `starlette.responses` `fastapi.responses` 🏪 👆, 👩‍💻. ✋️ 🌅 💪 📨 👟 🔗 ⚪️➡️ 💃. + + & `Response` 💪 ⚙️ 🛎 ⚒ 🎚 & 🍪, **FastAPI** 🚚 ⚫️ `fastapi.Response`. + +/// + +## 🛃 🎚 + +✔️ 🤯 👈 🛃 © 🎚 💪 🚮 ⚙️ '✖-' 🔡. + +✋️ 🚥 👆 ✔️ 🛃 🎚 👈 👆 💚 👩‍💻 🖥 💪 👀, 👆 💪 🚮 👫 👆 ⚜ 📳 (✍ 🌅 [⚜ (✖️-🇨🇳 ℹ 🤝)](../tutorial/cors.md){.internal-link target=_blank}), ⚙️ 🔢 `expose_headers` 📄 💃 ⚜ 🩺. diff --git a/docs/em/docs/advanced/security/http-basic-auth.md b/docs/em/docs/advanced/security/http-basic-auth.md new file mode 100644 index 0000000..73736f3 --- /dev/null +++ b/docs/em/docs/advanced/security/http-basic-auth.md @@ -0,0 +1,107 @@ +# 🇺🇸🔍 🔰 🔐 + +🙅 💼, 👆 💪 ⚙️ 🇺🇸🔍 🔰 🔐. + +🇺🇸🔍 🔰 🔐, 🈸 ⌛ 🎚 👈 🔌 🆔 & 🔐. + +🚥 ⚫️ 🚫 📨 ⚫️, ⚫️ 📨 🇺🇸🔍 4️⃣0️⃣1️⃣ "⛔" ❌. + +& 📨 🎚 `WWW-Authenticate` ⏮️ 💲 `Basic`, & 📦 `realm` 🔢. + +👈 💬 🖥 🎦 🛠️ 📋 🆔 & 🔐. + +⤴️, 🕐❔ 👆 🆎 👈 🆔 & 🔐, 🖥 📨 👫 🎚 🔁. + +## 🙅 🇺🇸🔍 🔰 🔐 + +* 🗄 `HTTPBasic` & `HTTPBasicCredentials`. +* ✍ "`security` ⚖" ⚙️ `HTTPBasic`. +* ⚙️ 👈 `security` ⏮️ 🔗 👆 *➡ 🛠️*. +* ⚫️ 📨 🎚 🆎 `HTTPBasicCredentials`: + * ⚫️ 🔌 `username` & `password` 📨. + +{* ../../docs_src/security/tutorial006.py hl[2,6,10] *} + +🕐❔ 👆 🔄 📂 📛 🥇 🕰 (⚖️ 🖊 "🛠️" 🔼 🩺) 🖥 🔜 💭 👆 👆 🆔 & 🔐: + + + +## ✅ 🆔 + +📥 🌅 🏁 🖼. + +⚙️ 🔗 ✅ 🚥 🆔 & 🔐 ☑. + +👉, ⚙️ 🐍 🐩 🕹 `secrets` ✅ 🆔 & 🔐. + +`secrets.compare_digest()` 💪 ✊ `bytes` ⚖️ `str` 👈 🕴 🔌 🔠 🦹 (🕐 🇪🇸), 👉 ⛓ ⚫️ 🚫🔜 👷 ⏮️ 🦹 💖 `á`, `Sebastián`. + +🍵 👈, 👥 🥇 🗜 `username` & `password` `bytes` 🔢 👫 ⏮️ 🔠-8️⃣. + +⤴️ 👥 💪 ⚙️ `secrets.compare_digest()` 🚚 👈 `credentials.username` `"stanleyjobson"`, & 👈 `credentials.password` `"swordfish"`. + +{* ../../docs_src/security/tutorial007.py hl[1,11:21] *} + +👉 🔜 🎏: + +```Python +if not (credentials.username == "stanleyjobson") or not (credentials.password == "swordfish"): + # Return some error + ... +``` + +✋️ ⚙️ `secrets.compare_digest()` ⚫️ 🔜 🔐 🛡 🆎 👊 🤙 "🕰 👊". + +### ⏲ 👊 + +✋️ ⚫️❔ "⏲ 👊"❓ + +➡️ 🌈 👊 🔄 💭 🆔 & 🔐. + +& 👫 📨 📨 ⏮️ 🆔 `johndoe` & 🔐 `love123`. + +⤴️ 🐍 📟 👆 🈸 🔜 🌓 🕳 💖: + +```Python +if "johndoe" == "stanleyjobson" and "love123" == "swordfish": + ... +``` + +✋️ ▶️️ 🙍 🐍 🔬 🥇 `j` `johndoe` 🥇 `s` `stanleyjobson`, ⚫️ 🔜 📨 `False`, ↩️ ⚫️ ⏪ 💭 👈 📚 2️⃣ 🎻 🚫 🎏, 💭 👈 "📤 🙅‍♂ 💪 🗑 🌅 📊 ⚖ 🎂 🔤". & 👆 🈸 🔜 💬 "❌ 👩‍💻 ⚖️ 🔐". + +✋️ ⤴️ 👊 🔄 ⏮️ 🆔 `stanleyjobsox` & 🔐 `love123`. + +& 👆 🈸 📟 🔨 🕳 💖: + +```Python +if "stanleyjobsox" == "stanleyjobson" and "love123" == "swordfish": + ... +``` + +🐍 🔜 ✔️ 🔬 🎂 `stanleyjobso` 👯‍♂️ `stanleyjobsox` & `stanleyjobson` ⏭ 🤔 👈 👯‍♂️ 🎻 🚫 🎏. ⚫️ 🔜 ✊ ➕ ⏲ 📨 🔙 "❌ 👩‍💻 ⚖️ 🔐". + +#### 🕰 ❔ ℹ 👊 + +👈 ☝, 👀 👈 💽 ✊ ⏲ 📏 📨 "❌ 👩‍💻 ⚖️ 🔐" 📨, 👊 🔜 💭 👈 👫 🤚 _🕳_ ▶️️, ▶️ 🔤 ▶️️. + +& ⤴️ 👫 💪 🔄 🔄 🤔 👈 ⚫️ 🎲 🕳 🌖 🎏 `stanleyjobsox` 🌘 `johndoe`. + +#### "🕴" 👊 + +↗️, 👊 🔜 🚫 🔄 🌐 👉 ✋, 👫 🔜 ✍ 📋 ⚫️, 🎲 ⏮️ 💯 ⚖️ 💯 💯 📍 🥈. & 🔜 🤚 1️⃣ ➕ ☑ 🔤 🕰. + +✋️ 🔨 👈, ⏲ ⚖️ 📆 👊 🔜 ✔️ 💭 ☑ 🆔 & 🔐, ⏮️ "ℹ" 👆 🈸, ⚙️ 🕰 ✊ ❔. + +#### 🔧 ⚫️ ⏮️ `secrets.compare_digest()` + +✋️ 👆 📟 👥 🤙 ⚙️ `secrets.compare_digest()`. + +📏, ⚫️ 🔜 ✊ 🎏 🕰 🔬 `stanleyjobsox` `stanleyjobson` 🌘 ⚫️ ✊ 🔬 `johndoe` `stanleyjobson`. & 🎏 🔐. + +👈 🌌, ⚙️ `secrets.compare_digest()` 👆 🈸 📟, ⚫️ 🔜 🔒 🛡 👉 🎂 ↔ 💂‍♂ 👊. + +### 📨 ❌ + +⏮️ 🔍 👈 🎓 ❌, 📨 `HTTPException` ⏮️ 👔 📟 4️⃣0️⃣1️⃣ (🎏 📨 🕐❔ 🙅‍♂ 🎓 🚚) & 🚮 🎚 `WWW-Authenticate` ⚒ 🖥 🎦 💳 📋 🔄: + +{* ../../docs_src/security/tutorial007.py hl[23:27] *} diff --git a/docs/em/docs/advanced/security/index.md b/docs/em/docs/advanced/security/index.md new file mode 100644 index 0000000..5cdc475 --- /dev/null +++ b/docs/em/docs/advanced/security/index.md @@ -0,0 +1,19 @@ +# 🏧 💂‍♂ + +## 🌖 ⚒ + +📤 ➕ ⚒ 🍵 💂‍♂ ↖️ ⚪️➡️ 🕐 📔 [🔰 - 👩‍💻 🦮: 💂‍♂](../../tutorial/security/index.md){.internal-link target=_blank}. + +/// tip + +⏭ 📄 **🚫 🎯 "🏧"**. + + & ⚫️ 💪 👈 👆 ⚙️ 💼, ⚗ 1️⃣ 👫. + +/// + +## ✍ 🔰 🥇 + +⏭ 📄 🤔 👆 ⏪ ✍ 👑 [🔰 - 👩‍💻 🦮: 💂‍♂](../../tutorial/security/index.md){.internal-link target=_blank}. + +👫 🌐 ⚓️ 🔛 🎏 🔧, ✋️ ✔ ➕ 🛠️. diff --git a/docs/em/docs/advanced/security/oauth2-scopes.md b/docs/em/docs/advanced/security/oauth2-scopes.md new file mode 100644 index 0000000..9e3bc00 --- /dev/null +++ b/docs/em/docs/advanced/security/oauth2-scopes.md @@ -0,0 +1,274 @@ +# Oauth2️⃣ ↔ + +👆 💪 ⚙️ Oauth2️⃣ ↔ 🔗 ⏮️ **FastAPI**, 👫 🛠️ 👷 💎. + +👉 🔜 ✔ 👆 ✔️ 🌖 👌-🧽 ✔ ⚙️, 📄 Oauth2️⃣ 🐩, 🛠️ 🔘 👆 🗄 🈸 (& 🛠️ 🩺). + +Oauth2️⃣ ⏮️ ↔ 🛠️ ⚙️ 📚 🦏 🤝 🐕‍🦺, 💖 👱📔, 🇺🇸🔍, 📂, 🤸‍♂, 👱📔, ♒️. 👫 ⚙️ ⚫️ 🚚 🎯 ✔ 👩‍💻 & 🈸. + +🔠 🕰 👆 "🕹 ⏮️" 👱📔, 🇺🇸🔍, 📂, 🤸‍♂, 👱📔, 👈 🈸 ⚙️ Oauth2️⃣ ⏮️ ↔. + +👉 📄 👆 🔜 👀 ❔ 🛠️ 🤝 & ✔ ⏮️ 🎏 Oauth2️⃣ ⏮️ ↔ 👆 **FastAPI** 🈸. + +/// warning + +👉 🌅 ⚖️ 🌘 🏧 📄. 🚥 👆 ▶️, 👆 💪 🚶 ⚫️. + +👆 🚫 🎯 💪 Oauth2️⃣ ↔, & 👆 💪 🍵 🤝 & ✔ 👐 👆 💚. + +✋️ Oauth2️⃣ ⏮️ ↔ 💪 🎆 🛠️ 🔘 👆 🛠️ (⏮️ 🗄) & 👆 🛠️ 🩺. + +👐, 👆 🛠️ 📚 ↔, ⚖️ 🙆 🎏 💂‍♂/✔ 📄, 👐 👆 💪, 👆 📟. + +📚 💼, Oauth2️⃣ ⏮️ ↔ 💪 👹. + +✋️ 🚥 👆 💭 👆 💪 ⚫️, ⚖️ 👆 😟, 🚧 👂. + +/// + +## Oauth2️⃣ ↔ & 🗄 + +Oauth2️⃣ 🔧 🔬 "↔" 📇 🎻 🎏 🚀. + +🎚 🔠 👉 🎻 💪 ✔️ 🙆 📁, ✋️ 🔜 🚫 🔌 🚀. + +👫 ↔ 🎨 "✔". + +🗄 (✅ 🛠️ 🩺), 👆 💪 🔬 "💂‍♂ ⚖". + +🕐❔ 1️⃣ 👫 💂‍♂ ⚖ ⚙️ Oauth2️⃣, 👆 💪 📣 & ⚙️ ↔. + +🔠 "↔" 🎻 (🍵 🚀). + +👫 🛎 ⚙️ 📣 🎯 💂‍♂ ✔, 🖼: + +* `users:read` ⚖️ `users:write` ⚠ 🖼. +* `instagram_basic` ⚙️ 👱📔 / 👱📔. +* `https://www.googleapis.com/auth/drive` ⚙️ 🇺🇸🔍. + +/// info + +Oauth2️⃣ "↔" 🎻 👈 📣 🎯 ✔ ✔. + +⚫️ 🚫 🤔 🚥 ⚫️ ✔️ 🎏 🦹 💖 `:` ⚖️ 🚥 ⚫️ 📛. + +👈 ℹ 🛠️ 🎯. + +Oauth2️⃣ 👫 🎻. + +/// + +## 🌐 🎑 + +🥇, ➡️ 🔜 👀 🍕 👈 🔀 ⚪️➡️ 🖼 👑 **🔰 - 👩‍💻 🦮** [Oauth2️⃣ ⏮️ 🔐 (& 🔁), 📨 ⏮️ 🥙 🤝](../../tutorial/security/oauth2-jwt.md){.internal-link target=_blank}. 🔜 ⚙️ Oauth2️⃣ ↔: + +{* ../../docs_src/security/tutorial005.py hl[2,4,8,12,46,64,105,107:115,121:125,129:135,140,156] *} + +🔜 ➡️ 📄 👈 🔀 🔁 🔁. + +## Oauth2️⃣ 💂‍♂ ⚖ + +🥇 🔀 👈 🔜 👥 📣 Oauth2️⃣ 💂‍♂ ⚖ ⏮️ 2️⃣ 💪 ↔, `me` & `items`. + +`scopes` 🔢 📨 `dict` ⏮️ 🔠 ↔ 🔑 & 📛 💲: + +{* ../../docs_src/security/tutorial005.py hl[62:65] *} + +↩️ 👥 🔜 📣 📚 ↔, 👫 🔜 🎦 🆙 🛠️ 🩺 🕐❔ 👆 🕹-/✔. + +& 👆 🔜 💪 🖊 ❔ ↔ 👆 💚 🤝 🔐: `me` & `items`. + +👉 🎏 🛠️ ⚙️ 🕐❔ 👆 🤝 ✔ ⏪ 🚨 ⏮️ 👱📔, 🇺🇸🔍, 📂, ♒️: + + + +## 🥙 🤝 ⏮️ ↔ + +🔜, 🔀 🤝 *➡ 🛠️* 📨 ↔ 📨. + +👥 ⚙️ 🎏 `OAuth2PasswordRequestForm`. ⚫️ 🔌 🏠 `scopes` ⏮️ `list` `str`, ⏮️ 🔠 ↔ ⚫️ 📨 📨. + +& 👥 📨 ↔ 🍕 🥙 🤝. + +/// danger + +🦁, 📥 👥 ❎ ↔ 📨 🔗 🤝. + +✋️ 👆 🈸, 💂‍♂, 👆 🔜 ⚒ 💭 👆 🕴 🚮 ↔ 👈 👩‍💻 🤙 💪 ✔️, ⚖️ 🕐 👆 ✔️ 🔁. + +/// + +{* ../../docs_src/security/tutorial005.py hl[156] *} + +## 📣 ↔ *➡ 🛠️* & 🔗 + +🔜 👥 📣 👈 *➡ 🛠️* `/users/me/items/` 🚚 ↔ `items`. + +👉, 👥 🗄 & ⚙️ `Security` ⚪️➡️ `fastapi`. + +👆 💪 ⚙️ `Security` 📣 🔗 (💖 `Depends`), ✋️ `Security` 📨 🔢 `scopes` ⏮️ 📇 ↔ (🎻). + +👉 💼, 👥 🚶‍♀️ 🔗 🔢 `get_current_active_user` `Security` (🎏 🌌 👥 🔜 ⏮️ `Depends`). + +✋️ 👥 🚶‍♀️ `list` ↔, 👉 💼 ⏮️ 1️⃣ ↔: `items` (⚫️ 💪 ✔️ 🌅). + +& 🔗 🔢 `get_current_active_user` 💪 📣 🎧-🔗, 🚫 🕴 ⏮️ `Depends` ✋️ ⏮️ `Security`. 📣 🚮 👍 🎧-🔗 🔢 (`get_current_user`), & 🌖 ↔ 📄. + +👉 💼, ⚫️ 🚚 ↔ `me` (⚫️ 💪 🚚 🌅 🌘 1️⃣ ↔). + +/// note + +👆 🚫 🎯 💪 🚮 🎏 ↔ 🎏 🥉. + +👥 🔨 ⚫️ 📥 🎦 ❔ **FastAPI** 🍵 ↔ 📣 🎏 🎚. + +/// + +{* ../../docs_src/security/tutorial005.py hl[4,140,169] *} + +/// info | 📡 ℹ + +`Security` 🤙 🏿 `Depends`, & ⚫️ ✔️ 1️⃣ ➕ 🔢 👈 👥 🔜 👀 ⏪. + +✋️ ⚙️ `Security` ↩️ `Depends`, **FastAPI** 🔜 💭 👈 ⚫️ 💪 📣 💂‍♂ ↔, ⚙️ 👫 🔘, & 📄 🛠️ ⏮️ 🗄. + +✋️ 🕐❔ 👆 🗄 `Query`, `Path`, `Depends`, `Security` & 🎏 ⚪️➡️ `fastapi`, 👈 🤙 🔢 👈 📨 🎁 🎓. + +/// + +## ⚙️ `SecurityScopes` + +🔜 ℹ 🔗 `get_current_user`. + +👉 1️⃣ ⚙️ 🔗 🔛. + +📥 👥 ⚙️ 🎏 Oauth2️⃣ ⚖ 👥 ✍ ⏭, 📣 ⚫️ 🔗: `oauth2_scheme`. + +↩️ 👉 🔗 🔢 🚫 ✔️ 🙆 ↔ 📄 ⚫️, 👥 💪 ⚙️ `Depends` ⏮️ `oauth2_scheme`, 👥 🚫 ✔️ ⚙️ `Security` 🕐❔ 👥 🚫 💪 ✔ 💂‍♂ ↔. + +👥 📣 🎁 🔢 🆎 `SecurityScopes`, 🗄 ⚪️➡️ `fastapi.security`. + +👉 `SecurityScopes` 🎓 🎏 `Request` (`Request` ⚙️ 🤚 📨 🎚 🔗). + +{* ../../docs_src/security/tutorial005.py hl[8,105] *} + +## ⚙️ `scopes` + +🔢 `security_scopes` 🔜 🆎 `SecurityScopes`. + +⚫️ 🔜 ✔️ 🏠 `scopes` ⏮️ 📇 ⚗ 🌐 ↔ ✔ ⚫️ & 🌐 🔗 👈 ⚙️ 👉 🎧-🔗. 👈 ⛓, 🌐 "⚓️"... 👉 💪 🔊 😨, ⚫️ 🔬 🔄 ⏪ 🔛. + +`security_scopes` 🎚 (🎓 `SecurityScopes`) 🚚 `scope_str` 🔢 ⏮️ 👁 🎻, 🔌 👈 ↔ 👽 🚀 (👥 🔜 ⚙️ ⚫️). + +👥 ✍ `HTTPException` 👈 👥 💪 🏤-⚙️ (`raise`) ⏪ 📚 ☝. + +👉 ⚠, 👥 🔌 ↔ 🚚 (🚥 🙆) 🎻 👽 🚀 (⚙️ `scope_str`). 👥 🚮 👈 🎻 ⚗ ↔ `WWW-Authenticate` 🎚 (👉 🍕 🔌). + +{* ../../docs_src/security/tutorial005.py hl[105,107:115] *} + +## ✔ `username` & 💽 💠 + +👥 ✔ 👈 👥 🤚 `username`, & ⚗ ↔. + +& ⤴️ 👥 ✔ 👈 📊 ⏮️ Pydantic 🏷 (✊ `ValidationError` ⚠), & 🚥 👥 🤚 ❌ 👂 🥙 🤝 ⚖️ ⚖ 📊 ⏮️ Pydantic, 👥 🤚 `HTTPException` 👥 ✍ ⏭. + +👈, 👥 ℹ Pydantic 🏷 `TokenData` ⏮️ 🆕 🏠 `scopes`. + +⚖ 📊 ⏮️ Pydantic 👥 💪 ⚒ 💭 👈 👥 ✔️, 🖼, ⚫️❔ `list` `str` ⏮️ ↔ & `str` ⏮️ `username`. + +↩️, 🖼, `dict`, ⚖️ 🕳 🙆, ⚫️ 💪 💔 🈸 ☝ ⏪, ⚒ ⚫️ 💂‍♂ ⚠. + +👥 ✔ 👈 👥 ✔️ 👩‍💻 ⏮️ 👈 🆔, & 🚥 🚫, 👥 🤚 👈 🎏 ⚠ 👥 ✍ ⏭. + +{* ../../docs_src/security/tutorial005.py hl[46,116:128] *} + +## ✔ `scopes` + +👥 🔜 ✔ 👈 🌐 ↔ ✔, 👉 🔗 & 🌐 ⚓️ (🔌 *➡ 🛠️*), 🔌 ↔ 🚚 🤝 📨, ⏪ 🤚 `HTTPException`. + +👉, 👥 ⚙️ `security_scopes.scopes`, 👈 🔌 `list` ⏮️ 🌐 👫 ↔ `str`. + +{* ../../docs_src/security/tutorial005.py hl[129:135] *} + +## 🔗 🌲 & ↔ + +➡️ 📄 🔄 👉 🔗 🌲 & ↔. + +`get_current_active_user` 🔗 ✔️ 🎧-🔗 🔛 `get_current_user`, ↔ `"me"` 📣 `get_current_active_user` 🔜 🔌 📇 ✔ ↔ `security_scopes.scopes` 🚶‍♀️ `get_current_user`. + +*➡ 🛠️* ⚫️ 📣 ↔, `"items"`, 👉 🔜 📇 `security_scopes.scopes` 🚶‍♀️ `get_current_user`. + +📥 ❔ 🔗 🔗 & ↔ 👀 💖: + +* *➡ 🛠️* `read_own_items` ✔️: + * ✔ ↔ `["items"]` ⏮️ 🔗: + * `get_current_active_user`: + * 🔗 🔢 `get_current_active_user` ✔️: + * ✔ ↔ `["me"]` ⏮️ 🔗: + * `get_current_user`: + * 🔗 🔢 `get_current_user` ✔️: + * 🙅‍♂ ↔ ✔ ⚫️. + * 🔗 ⚙️ `oauth2_scheme`. + * `security_scopes` 🔢 🆎 `SecurityScopes`: + * 👉 `security_scopes` 🔢 ✔️ 🏠 `scopes` ⏮️ `list` ⚗ 🌐 👫 ↔ 📣 🔛,: + * `security_scopes.scopes` 🔜 🔌 `["me", "items"]` *➡ 🛠️* `read_own_items`. + * `security_scopes.scopes` 🔜 🔌 `["me"]` *➡ 🛠️* `read_users_me`, ↩️ ⚫️ 📣 🔗 `get_current_active_user`. + * `security_scopes.scopes` 🔜 🔌 `[]` (🕳) *➡ 🛠️* `read_system_status`, ↩️ ⚫️ 🚫 📣 🙆 `Security` ⏮️ `scopes`, & 🚮 🔗, `get_current_user`, 🚫 📣 🙆 `scope` 👯‍♂️. + +/// tip + +⚠ & "🎱" 👜 📥 👈 `get_current_user` 🔜 ✔️ 🎏 📇 `scopes` ✅ 🔠 *➡ 🛠️*. + +🌐 ⚓️ 🔛 `scopes` 📣 🔠 *➡ 🛠️* & 🔠 🔗 🔗 🌲 👈 🎯 *➡ 🛠️*. + +/// + +## 🌖 ℹ 🔃 `SecurityScopes` + +👆 💪 ⚙️ `SecurityScopes` 🙆 ☝, & 💗 🥉, ⚫️ 🚫 ✔️ "🌱" 🔗. + +⚫️ 🔜 🕧 ✔️ 💂‍♂ ↔ 📣 ⏮️ `Security` 🔗 & 🌐 ⚓️ **👈 🎯** *➡ 🛠️* & **👈 🎯** 🔗 🌲. + +↩️ `SecurityScopes` 🔜 ✔️ 🌐 ↔ 📣 ⚓️, 👆 💪 ⚙️ ⚫️ ✔ 👈 🤝 ✔️ 🚚 ↔ 🇨🇫 🔗 🔢, & ⤴️ 📣 🎏 ↔ 📄 🎏 *➡ 🛠️*. + +👫 🔜 ✅ ➡ 🔠 *➡ 🛠️*. + +## ✅ ⚫️ + +🚥 👆 📂 🛠️ 🩺, 👆 💪 🔓 & ✔ ❔ ↔ 👆 💚 ✔. + + + +🚥 👆 🚫 🖊 🙆 ↔, 👆 🔜 "🔓", ✋️ 🕐❔ 👆 🔄 🔐 `/users/me/` ⚖️ `/users/me/items/` 👆 🔜 🤚 ❌ 💬 👈 👆 🚫 ✔️ 🥃 ✔. 👆 🔜 💪 🔐 `/status/`. + +& 🚥 👆 🖊 ↔ `me` ✋️ 🚫 ↔ `items`, 👆 🔜 💪 🔐 `/users/me/` ✋️ 🚫 `/users/me/items/`. + +👈 ⚫️❔ 🔜 🔨 🥉 🥳 🈸 👈 🔄 🔐 1️⃣ 👫 *➡ 🛠️* ⏮️ 🤝 🚚 👩‍💻, ⚓️ 🔛 ❔ 📚 ✔ 👩‍💻 🤝 🈸. + +## 🔃 🥉 🥳 🛠️ + +👉 🖼 👥 ⚙️ Oauth2️⃣ "🔐" 💧. + +👉 ☑ 🕐❔ 👥 🚨 👆 👍 🈸, 🎲 ⏮️ 👆 👍 🕸. + +↩️ 👥 💪 💙 ⚫️ 📨 `username` & `password`, 👥 🎛 ⚫️. + +✋️ 🚥 👆 🏗 Oauth2️⃣ 🈸 👈 🎏 🔜 🔗 (➡, 🚥 👆 🏗 🤝 🐕‍🦺 🌓 👱📔, 🇺🇸🔍, 📂, ♒️.) 👆 🔜 ⚙️ 1️⃣ 🎏 💧. + +🌅 ⚠ 🔑 💧. + +🏆 🔐 📟 💧, ✋️ 🌖 🏗 🛠️ ⚫️ 🚚 🌅 📶. ⚫️ 🌅 🏗, 📚 🐕‍🦺 🔚 🆙 ✔ 🔑 💧. + +/// note + +⚫️ ⚠ 👈 🔠 🤝 🐕‍🦺 📛 👫 💧 🎏 🌌, ⚒ ⚫️ 🍕 👫 🏷. + +✋️ 🔚, 👫 🛠️ 🎏 Oauth2️⃣ 🐩. + +/// + +**FastAPI** 🔌 🚙 🌐 👫 Oauth2️⃣ 🤝 💧 `fastapi.security.oauth2`. + +## `Security` 👨‍🎨 `dependencies` + +🎏 🌌 👆 💪 🔬 `list` `Depends` 👨‍🎨 `dependencies` 🔢 (🔬 [🔗 ➡ 🛠️ 👨‍🎨](../../tutorial/dependencies/dependencies-in-path-operation-decorators.md){.internal-link target=_blank}), 👆 💪 ⚙️ `Security` ⏮️ `scopes` 📤. diff --git a/docs/em/docs/advanced/settings.md b/docs/em/docs/advanced/settings.md new file mode 100644 index 0000000..7fdd0d6 --- /dev/null +++ b/docs/em/docs/advanced/settings.md @@ -0,0 +1,396 @@ +# ⚒ & 🌐 🔢 + +📚 💼 👆 🈸 💪 💪 🔢 ⚒ ⚖️ 📳, 🖼 ㊙ 🔑, 💽 🎓, 🎓 📧 🐕‍🦺, ♒️. + +🏆 👫 ⚒ 🔢 (💪 🔀), 💖 💽 📛. & 📚 💪 🚿, 💖 ㊙. + +👉 🤔 ⚫️ ⚠ 🚚 👫 🌐 🔢 👈 ✍ 🈸. + +## 🌐 🔢 + +/// tip + +🚥 👆 ⏪ 💭 ⚫️❔ "🌐 🔢" & ❔ ⚙️ 👫, 💭 🆓 🚶 ⏭ 📄 🔛. + +/// + +🌐 🔢 (💭 "🇨🇻 {") 🔢 👈 🖖 🏞 🐍 📟, 🏃‍♂ ⚙️, & 💪 ✍ 👆 🐍 📟 (⚖️ 🎏 📋 👍). + +👆 💪 ✍ & ⚙️ 🌐 🔢 🐚, 🍵 💆‍♂ 🐍: + +//// tab | 💾, 🇸🇻, 🚪 🎉 + +
+ +```console +// You could create an env var MY_NAME with +$ export MY_NAME="Wade Wilson" + +// Then you could use it with other programs, like +$ echo "Hello $MY_NAME" + +Hello Wade Wilson +``` + +
+ +//// + +//// tab | 🚪 📋 + +
+ +```console +// Create an env var MY_NAME +$ $Env:MY_NAME = "Wade Wilson" + +// Use it with other programs, like +$ echo "Hello $Env:MY_NAME" + +Hello Wade Wilson +``` + +
+ +//// + +### ✍ 🇨🇻 {🐍 + +👆 💪 ✍ 🌐 🔢 🏞 🐍, 📶 (⚖️ ⏮️ 🙆 🎏 👩‍🔬), & ⤴️ ✍ 👫 🐍. + +🖼 👆 💪 ✔️ 📁 `main.py` ⏮️: + +```Python hl_lines="3" +import os + +name = os.getenv("MY_NAME", "World") +print(f"Hello {name} from Python") +``` + +/// tip + +🥈 ❌ `os.getenv()` 🔢 💲 📨. + +🚥 🚫 🚚, ⚫️ `None` 🔢, 📥 👥 🚚 `"World"` 🔢 💲 ⚙️. + +/// + +⤴️ 👆 💪 🤙 👈 🐍 📋: + +
+ +```console +// Here we don't set the env var yet +$ python main.py + +// As we didn't set the env var, we get the default value + +Hello World from Python + +// But if we create an environment variable first +$ export MY_NAME="Wade Wilson" + +// And then call the program again +$ python main.py + +// Now it can read the environment variable + +Hello Wade Wilson from Python +``` + +
+ +🌐 🔢 💪 ⚒ 🏞 📟, ✋️ 💪 ✍ 📟, & 🚫 ✔️ 🏪 (💕 `git`) ⏮️ 🎂 📁, ⚫️ ⚠ ⚙️ 👫 📳 ⚖️ ⚒. + +👆 💪 ✍ 🌐 🔢 🕴 🎯 📋 👼, 👈 🕴 💪 👈 📋, & 🕴 🚮 📐. + +👈, ✍ ⚫️ ▶️️ ⏭ 📋 ⚫️, 🔛 🎏 ⏸: + +
+ +```console +// Create an env var MY_NAME in line for this program call +$ MY_NAME="Wade Wilson" python main.py + +// Now it can read the environment variable + +Hello Wade Wilson from Python + +// The env var no longer exists afterwards +$ python main.py + +Hello World from Python +``` + +
+ +/// tip + +👆 💪 ✍ 🌅 🔃 ⚫️ 1️⃣2️⃣-⚖ 📱: 📁. + +/// + +### 🆎 & 🔬 + +👫 🌐 🔢 💪 🕴 🍵 ✍ 🎻, 👫 🔢 🐍 & ✔️ 🔗 ⏮️ 🎏 📋 & 🎂 ⚙️ (& ⏮️ 🎏 🏃‍♂ ⚙️, 💾, 🚪, 🇸🇻). + +👈 ⛓ 👈 🙆 💲 ✍ 🐍 ⚪️➡️ 🌐 🔢 🔜 `str`, & 🙆 🛠️ 🎏 🆎 ⚖️ 🔬 ✔️ 🔨 📟. + +## Pydantic `Settings` + +👐, Pydantic 🚚 👑 🚙 🍵 👫 ⚒ 👟 ⚪️➡️ 🌐 🔢 ⏮️ Pydantic: ⚒ 🧾. + +### ✍ `Settings` 🎚 + +🗄 `BaseSettings` ⚪️➡️ Pydantic & ✍ 🎧-🎓, 📶 🌅 💖 ⏮️ Pydantic 🏷. + +🎏 🌌 ⏮️ Pydantic 🏷, 👆 📣 🎓 🔢 ⏮️ 🆎 ✍, & 🎲 🔢 💲. + +👆 💪 ⚙️ 🌐 🎏 🔬 ⚒ & 🧰 👆 ⚙️ Pydantic 🏷, 💖 🎏 📊 🆎 & 🌖 🔬 ⏮️ `Field()`. + +{* ../../docs_src/settings/tutorial001.py hl[2,5:8,11] *} + +/// tip + +🚥 👆 💚 🕳 ⏩ 📁 & 📋, 🚫 ⚙️ 👉 🖼, ⚙️ 🏁 1️⃣ 🔛. + +/// + +⤴️, 🕐❔ 👆 ✍ 👐 👈 `Settings` 🎓 (👉 💼, `settings` 🎚), Pydantic 🔜 ✍ 🌐 🔢 💼-😛 🌌,, ↖-💼 🔢 `APP_NAME` 🔜 ✍ 🔢 `app_name`. + +⏭ ⚫️ 🔜 🗜 & ✔ 💽. , 🕐❔ 👆 ⚙️ 👈 `settings` 🎚, 👆 🔜 ✔️ 📊 🆎 👆 📣 (✅ `items_per_user` 🔜 `int`). + +### ⚙️ `settings` + +⤴️ 👆 💪 ⚙️ 🆕 `settings` 🎚 👆 🈸: + +{* ../../docs_src/settings/tutorial001.py hl[18:20] *} + +### 🏃 💽 + +⏭, 👆 🔜 🏃 💽 🚶‍♀️ 📳 🌐 🔢, 🖼 👆 💪 ⚒ `ADMIN_EMAIL` & `APP_NAME` ⏮️: + +
+ +```console +$ ADMIN_EMAIL="deadpool@example.com" APP_NAME="ChimichangApp" uvicorn main:app + +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +``` + +
+ +/// tip + +⚒ 💗 🇨🇻 {👁 📋 🎏 👫 ⏮️ 🚀, & 🚮 👫 🌐 ⏭ 📋. + +/// + +& ⤴️ `admin_email` ⚒ 🔜 ⚒ `"deadpool@example.com"`. + +`app_name` 🔜 `"ChimichangApp"`. + +& `items_per_user` 🔜 🚧 🚮 🔢 💲 `50`. + +## ⚒ ➕1️⃣ 🕹 + +👆 💪 🚮 👈 ⚒ ➕1️⃣ 🕹 📁 👆 👀 [🦏 🈸 - 💗 📁](../tutorial/bigger-applications.md){.internal-link target=_blank}. + +🖼, 👆 💪 ✔️ 📁 `config.py` ⏮️: + +{* ../../docs_src/settings/app01/config.py *} + +& ⤴️ ⚙️ ⚫️ 📁 `main.py`: + +{* ../../docs_src/settings/app01/main.py hl[3,11:13] *} + +/// tip + +👆 🔜 💪 📁 `__init__.py` 👆 👀 🔛 [🦏 🈸 - 💗 📁](../tutorial/bigger-applications.md){.internal-link target=_blank}. + +/// + +## ⚒ 🔗 + +🍾 ⚫️ 5️⃣📆 ⚠ 🚚 ⚒ ⚪️➡️ 🔗, ↩️ ✔️ 🌐 🎚 ⏮️ `settings` 👈 ⚙️ 🌐. + +👉 💪 ✴️ ⚠ ⏮️ 🔬, ⚫️ 📶 ⏩ 🔐 🔗 ⏮️ 👆 👍 🛃 ⚒. + +### 📁 📁 + +👟 ⚪️➡️ ⏮️ 🖼, 👆 `config.py` 📁 💪 👀 💖: + +{* ../../docs_src/settings/app02/config.py hl[10] *} + +👀 👈 🔜 👥 🚫 ✍ 🔢 👐 `settings = Settings()`. + +### 👑 📱 📁 + +🔜 👥 ✍ 🔗 👈 📨 🆕 `config.Settings()`. + +{* ../../docs_src/settings/app02/main.py hl[5,11:12] *} + +/// tip + +👥 🔜 🔬 `@lru_cache` 🍖. + +🔜 👆 💪 🤔 `get_settings()` 😐 🔢. + +/// + +& ⤴️ 👥 💪 🚚 ⚫️ ⚪️➡️ *➡ 🛠️ 🔢* 🔗 & ⚙️ ⚫️ 🙆 👥 💪 ⚫️. + +{* ../../docs_src/settings/app02/main.py hl[16,18:20] *} + +### ⚒ & 🔬 + +⤴️ ⚫️ 🔜 📶 ⏩ 🚚 🎏 ⚒ 🎚 ⏮️ 🔬 🏗 🔗 🔐 `get_settings`: + +{* ../../docs_src/settings/app02/test_main.py hl[9:10,13,21] *} + +🔗 🔐 👥 ⚒ 🆕 💲 `admin_email` 🕐❔ 🏗 🆕 `Settings` 🎚, & ⤴️ 👥 📨 👈 🆕 🎚. + +⤴️ 👥 💪 💯 👈 ⚫️ ⚙️. + +## 👂 `.env` 📁 + +🚥 👆 ✔️ 📚 ⚒ 👈 🎲 🔀 📚, 🎲 🎏 🌐, ⚫️ 5️⃣📆 ⚠ 🚮 👫 🔛 📁 & ⤴️ ✍ 👫 ⚪️➡️ ⚫️ 🚥 👫 🌐 🔢. + +👉 💡 ⚠ 🥃 👈 ⚫️ ✔️ 📛, 👫 🌐 🔢 🛎 🥉 📁 `.env`, & 📁 🤙 "🇨🇻". + +/// tip + +📁 ▶️ ⏮️ ❣ (`.`) 🕵‍♂ 📁 🖥-💖 ⚙️, 💖 💾 & 🇸🇻. + +✋️ 🇨🇻 📁 🚫 🤙 ✔️ ✔️ 👈 ☑ 📁. + +/// + +Pydantic ✔️ 🐕‍🦺 👂 ⚪️➡️ 👉 🆎 📁 ⚙️ 🔢 🗃. 👆 💪 ✍ 🌖 Pydantic ⚒: 🇨🇻 (.🇨🇻) 🐕‍🦺. + +/// tip + +👉 👷, 👆 💪 `pip install python-dotenv`. + +/// + +### `.env` 📁 + +👆 💪 ✔️ `.env` 📁 ⏮️: + +```bash +ADMIN_EMAIL="deadpool@example.com" +APP_NAME="ChimichangApp" +``` + +### ✍ ⚒ ⚪️➡️ `.env` + +& ⤴️ ℹ 👆 `config.py` ⏮️: + +{* ../../docs_src/settings/app03/config.py hl[9:10] *} + +📥 👥 ✍ 🎓 `Config` 🔘 👆 Pydantic `Settings` 🎓, & ⚒ `env_file` 📁 ⏮️ 🇨🇻 📁 👥 💚 ⚙️. + +/// tip + +`Config` 🎓 ⚙️ Pydantic 📳. 👆 💪 ✍ 🌖 Pydantic 🏷 📁 + +/// + +### 🏗 `Settings` 🕴 🕐 ⏮️ `lru_cache` + +👂 📁 ⚪️➡️ 💾 🛎 ⚠ (🐌) 🛠️, 👆 🎲 💚 ⚫️ 🕴 🕐 & ⤴️ 🏤-⚙️ 🎏 ⚒ 🎚, ↩️ 👂 ⚫️ 🔠 📨. + +✋️ 🔠 🕰 👥: + +```Python +Settings() +``` + +🆕 `Settings` 🎚 🔜 ✍, & 🏗 ⚫️ 🔜 ✍ `.env` 📁 🔄. + +🚥 🔗 🔢 💖: + +```Python +def get_settings(): + return Settings() +``` + +👥 🔜 ✍ 👈 🎚 🔠 📨, & 👥 🔜 👂 `.env` 📁 🔠 📨. 👶 👶 + +✋️ 👥 ⚙️ `@lru_cache` 👨‍🎨 🔛 🔝, `Settings` 🎚 🔜 ✍ 🕴 🕐, 🥇 🕰 ⚫️ 🤙. 👶 👶 + +{* ../../docs_src/settings/app03/main.py hl[1,10] *} + +⤴️ 🙆 🏁 🤙 `get_settings()` 🔗 ⏭ 📨, ↩️ 🛠️ 🔗 📟 `get_settings()` & 🏗 🆕 `Settings` 🎚, ⚫️ 🔜 📨 🎏 🎚 👈 📨 🔛 🥇 🤙, 🔄 & 🔄. + +#### `lru_cache` 📡 ℹ + +`@lru_cache` 🔀 🔢 ⚫️ 🎀 📨 🎏 💲 👈 📨 🥇 🕰, ↩️ 💻 ⚫️ 🔄, 🛠️ 📟 🔢 🔠 🕰. + +, 🔢 🔛 ⚫️ 🔜 🛠️ 🕐 🔠 🌀 ❌. & ⤴️ 💲 📨 🔠 👈 🌀 ❌ 🔜 ⚙️ 🔄 & 🔄 🕐❔ 🔢 🤙 ⏮️ ⚫️❔ 🎏 🌀 ❌. + +🖼, 🚥 👆 ✔️ 🔢: + +```Python +@lru_cache +def say_hi(name: str, salutation: str = "Ms."): + return f"Hello {salutation} {name}" +``` + +👆 📋 💪 🛠️ 💖 👉: + +```mermaid +sequenceDiagram + +participant code as Code +participant function as say_hi() +participant execute as Execute function + + rect rgba(0, 255, 0, .1) + code ->> function: say_hi(name="Camila") + function ->> execute: execute function code + execute ->> code: return the result + end + + rect rgba(0, 255, 255, .1) + code ->> function: say_hi(name="Camila") + function ->> code: return stored result + end + + rect rgba(0, 255, 0, .1) + code ->> function: say_hi(name="Rick") + function ->> execute: execute function code + execute ->> code: return the result + end + + rect rgba(0, 255, 0, .1) + code ->> function: say_hi(name="Rick", salutation="Mr.") + function ->> execute: execute function code + execute ->> code: return the result + end + + rect rgba(0, 255, 255, .1) + code ->> function: say_hi(name="Rick") + function ->> code: return stored result + end + + rect rgba(0, 255, 255, .1) + code ->> function: say_hi(name="Camila") + function ->> code: return stored result + end +``` + +💼 👆 🔗 `get_settings()`, 🔢 🚫 ✊ 🙆 ❌, ⚫️ 🕧 📨 🎏 💲. + +👈 🌌, ⚫️ 🎭 🌖 🚥 ⚫️ 🌐 🔢. ✋️ ⚫️ ⚙️ 🔗 🔢, ⤴️ 👥 💪 🔐 ⚫️ 💪 🔬. + +`@lru_cache` 🍕 `functools` ❔ 🍕 🐍 🐩 🗃, 👆 💪 ✍ 🌅 🔃 ⚫️ 🐍 🩺 `@lru_cache`. + +## 🌃 + +👆 💪 ⚙️ Pydantic ⚒ 🍵 ⚒ ⚖️ 📳 👆 🈸, ⏮️ 🌐 🏋️ Pydantic 🏷. + +* ⚙️ 🔗 👆 💪 📉 🔬. +* 👆 💪 ⚙️ `.env` 📁 ⏮️ ⚫️. +* ⚙️ `@lru_cache` ➡️ 👆 ❎ 👂 🇨🇻 📁 🔄 & 🔄 🔠 📨, ⏪ 🤝 👆 🔐 ⚫️ ⏮️ 🔬. diff --git a/docs/em/docs/advanced/sub-applications.md b/docs/em/docs/advanced/sub-applications.md new file mode 100644 index 0000000..7a802cd --- /dev/null +++ b/docs/em/docs/advanced/sub-applications.md @@ -0,0 +1,67 @@ +# 🎧 🈸 - 🗻 + +🚥 👆 💪 ✔️ 2️⃣ 🔬 FastAPI 🈸, ⏮️ 👫 👍 🔬 🗄 & 👫 👍 🩺 ⚜, 👆 💪 ✔️ 👑 📱 & "🗻" 1️⃣ (⚖️ 🌅) 🎧-🈸(Ⓜ). + +## 🗜 **FastAPI** 🈸 + +"🗜" ⛓ ❎ 🍕 "🔬" 🈸 🎯 ➡, 👈 ⤴️ ✊ 💅 🚚 🌐 🔽 👈 ➡, ⏮️ _➡ 🛠️_ 📣 👈 🎧-🈸. + +### 🔝-🎚 🈸 + +🥇, ✍ 👑, 🔝-🎚, **FastAPI** 🈸, & 🚮 *➡ 🛠️*: + +{* ../../docs_src/sub_applications/tutorial001.py hl[3,6:8] *} + +### 🎧-🈸 + +⤴️, ✍ 👆 🎧-🈸, & 🚮 *➡ 🛠️*. + +👉 🎧-🈸 ➕1️⃣ 🐩 FastAPI 🈸, ✋️ 👉 1️⃣ 👈 🔜 "🗻": + +{* ../../docs_src/sub_applications/tutorial001.py hl[11,14:16] *} + +### 🗻 🎧-🈸 + +👆 🔝-🎚 🈸, `app`, 🗻 🎧-🈸, `subapi`. + +👉 💼, ⚫️ 🔜 📌 ➡ `/subapi`: + +{* ../../docs_src/sub_applications/tutorial001.py hl[11,19] *} + +### ✅ 🏧 🛠️ 🩺 + +🔜, 🏃 `uvicorn` ⏮️ 👑 📱, 🚥 👆 📁 `main.py`, ⚫️ 🔜: + +
+ +```console +$ uvicorn main:app --reload + +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +``` + +
+ +& 📂 🩺 http://127.0.0.1:8000/docs. + +👆 🔜 👀 🏧 🛠️ 🩺 👑 📱, 🔌 🕴 🚮 👍 _➡ 🛠️_: + + + +& ⤴️, 📂 🩺 🎧-🈸, http://127.0.0.1:8000/subapi/docs. + +👆 🔜 👀 🏧 🛠️ 🩺 🎧-🈸, ✅ 🕴 🚮 👍 _➡ 🛠️_, 🌐 🔽 ☑ 🎧-➡ 🔡 `/subapi`: + + + +🚥 👆 🔄 🔗 ⏮️ 🙆 2️⃣ 👩‍💻 🔢, 👫 🔜 👷 ☑, ↩️ 🖥 🔜 💪 💬 🔠 🎯 📱 ⚖️ 🎧-📱. + +### 📡 ℹ: `root_path` + +🕐❔ 👆 🗻 🎧-🈸 🔬 🔛, FastAPI 🔜 ✊ 💅 🔗 🗻 ➡ 🎧-🈸 ⚙️ 🛠️ ⚪️➡️ 🔫 🔧 🤙 `root_path`. + +👈 🌌, 🎧-🈸 🔜 💭 ⚙️ 👈 ➡ 🔡 🩺 🎚. + +& 🎧-🈸 💪 ✔️ 🚮 👍 📌 🎧-🈸 & 🌐 🔜 👷 ☑, ↩️ FastAPI 🍵 🌐 👉 `root_path`Ⓜ 🔁. + +👆 🔜 💡 🌅 🔃 `root_path` & ❔ ⚙️ ⚫️ 🎯 📄 🔃 [⛅ 🗳](behind-a-proxy.md){.internal-link target=_blank}. diff --git a/docs/em/docs/advanced/templates.md b/docs/em/docs/advanced/templates.md new file mode 100644 index 0000000..2e8f562 --- /dev/null +++ b/docs/em/docs/advanced/templates.md @@ -0,0 +1,84 @@ +# 📄 + +👆 💪 ⚙️ 🙆 📄 🚒 👆 💚 ⏮️ **FastAPI**. + +⚠ ⚒ Jinja2️⃣, 🎏 1️⃣ ⚙️ 🏺 & 🎏 🧰. + +📤 🚙 🔗 ⚫️ 💪 👈 👆 💪 ⚙️ 🔗 👆 **FastAPI** 🈸 (🚚 💃). + +## ❎ 🔗 + +❎ `jinja2`: + +
+ +```console +$ pip install jinja2 + +---> 100% +``` + +
+ +## ⚙️ `Jinja2Templates` + +* 🗄 `Jinja2Templates`. +* ✍ `templates` 🎚 👈 👆 💪 🏤-⚙️ ⏪. +* 📣 `Request` 🔢 *➡ 🛠️* 👈 🔜 📨 📄. +* ⚙️ `templates` 👆 ✍ ✍ & 📨 `TemplateResponse`, 🚶‍♀️ `request` 1️⃣ 🔑-💲 👫 Jinja2️⃣ "🔑". + +{* ../../docs_src/templates/tutorial001.py hl[4,11,15:18] *} + +/// note + +👀 👈 👆 ✔️ 🚶‍♀️ `request` 🍕 🔑-💲 👫 🔑 Jinja2️⃣. , 👆 ✔️ 📣 ⚫️ 👆 *➡ 🛠️*. + +/// + +/// tip + +📣 `response_class=HTMLResponse` 🩺 🎚 🔜 💪 💭 👈 📨 🔜 🕸. + +/// + +/// note | 📡 ℹ + +👆 💪 ⚙️ `from starlette.templating import Jinja2Templates`. + +**FastAPI** 🚚 🎏 `starlette.templating` `fastapi.templating` 🏪 👆, 👩‍💻. ✋️ 🌅 💪 📨 👟 🔗 ⚪️➡️ 💃. 🎏 ⏮️ `Request` & `StaticFiles`. + +/// + +## ✍ 📄 + +⤴️ 👆 💪 ✍ 📄 `templates/item.html` ⏮️: + +```jinja hl_lines="7" +{!../../docs_src/templates/templates/item.html!} +``` + +⚫️ 🔜 🎦 `id` ✊ ⚪️➡️ "🔑" `dict` 👆 🚶‍♀️: + +```Python +{"request": request, "id": id} +``` + +## 📄 & 🎻 📁 + +& 👆 💪 ⚙️ `url_for()` 🔘 📄, & ⚙️ ⚫️, 🖼, ⏮️ `StaticFiles` 👆 📌. + +```jinja hl_lines="4" +{!../../docs_src/templates/templates/item.html!} +``` + +👉 🖼, ⚫️ 🔜 🔗 🎚 📁 `static/styles.css` ⏮️: + +```CSS hl_lines="4" +{!../../docs_src/templates/static/styles.css!} +``` + +& ↩️ 👆 ⚙️ `StaticFiles`, 👈 🎚 📁 🔜 🍦 🔁 👆 **FastAPI** 🈸 📛 `/static/styles.css`. + +## 🌅 ℹ + +🌅 ℹ, 🔌 ❔ 💯 📄, ✅ 💃 🩺 🔛 📄. diff --git a/docs/em/docs/advanced/testing-dependencies.md b/docs/em/docs/advanced/testing-dependencies.md new file mode 100644 index 0000000..b2b4b48 --- /dev/null +++ b/docs/em/docs/advanced/testing-dependencies.md @@ -0,0 +1,53 @@ +# 🔬 🔗 ⏮️ 🔐 + +## 🔑 🔗 ⏮️ 🔬 + +📤 😐 🌐❔ 👆 💪 💚 🔐 🔗 ⏮️ 🔬. + +👆 🚫 💚 ⏮️ 🔗 🏃 (🚫 🙆 🎧-🔗 ⚫️ 💪 ✔️). + +↩️, 👆 💚 🚚 🎏 🔗 👈 🔜 ⚙️ 🕴 ⏮️ 💯 (🎲 🕴 🎯 💯), & 🔜 🚚 💲 👈 💪 ⚙️ 🌐❔ 💲 ⏮️ 🔗 ⚙️. + +### ⚙️ 💼: 🔢 🐕‍🦺 + +🖼 💪 👈 👆 ✔️ 🔢 🤝 🐕‍🦺 👈 👆 💪 🤙. + +👆 📨 ⚫️ 🤝 & ⚫️ 📨 🔓 👩‍💻. + +👉 🐕‍🦺 5️⃣📆 🔌 👆 📍 📨, & 🤙 ⚫️ 💪 ✊ ➕ 🕰 🌘 🚥 👆 ✔️ 🔧 🎁 👩‍💻 💯. + +👆 🎲 💚 💯 🔢 🐕‍🦺 🕐, ✋️ 🚫 🎯 🤙 ⚫️ 🔠 💯 👈 🏃. + +👉 💼, 👆 💪 🔐 🔗 👈 🤙 👈 🐕‍🦺, & ⚙️ 🛃 🔗 👈 📨 🎁 👩‍💻, 🕴 👆 💯. + +### ⚙️ `app.dependency_overrides` 🔢 + +👫 💼, 👆 **FastAPI** 🈸 ✔️ 🔢 `app.dependency_overrides`, ⚫️ 🙅 `dict`. + +🔐 🔗 🔬, 👆 🚮 🔑 ⏮️ 🔗 (🔢), & 💲, 👆 🔗 🔐 (➕1️⃣ 🔢). + +& ⤴️ **FastAPI** 🔜 🤙 👈 🔐 ↩️ ⏮️ 🔗. + +{* ../../docs_src/dependency_testing/tutorial001.py hl[28:29,32] *} + +/// tip + +👆 💪 ⚒ 🔗 🔐 🔗 ⚙️ 🙆 👆 **FastAPI** 🈸. + +⏮️ 🔗 💪 ⚙️ *➡ 🛠️ 🔢*, *➡ 🛠️ 👨‍🎨* (🕐❔ 👆 🚫 ⚙️ 📨 💲), `.include_router()` 🤙, ♒️. + +FastAPI 🔜 💪 🔐 ⚫️. + +/// + +⤴️ 👆 💪 ⏲ 👆 🔐 (❎ 👫) ⚒ `app.dependency_overrides` 🛁 `dict`: + +```Python +app.dependency_overrides = {} +``` + +/// tip + +🚥 👆 💚 🔐 🔗 🕴 ⏮️ 💯, 👆 💪 ⚒ 🔐 ▶️ 💯 (🔘 💯 🔢) & ⏲ ⚫️ 🔚 (🔚 💯 🔢). + +/// diff --git a/docs/em/docs/advanced/testing-events.md b/docs/em/docs/advanced/testing-events.md new file mode 100644 index 0000000..f62e9e0 --- /dev/null +++ b/docs/em/docs/advanced/testing-events.md @@ -0,0 +1,5 @@ +# 🔬 🎉: 🕴 - 🤫 + +🕐❔ 👆 💪 👆 🎉 🐕‍🦺 (`startup` & `shutdown`) 🏃 👆 💯, 👆 💪 ⚙️ `TestClient` ⏮️ `with` 📄: + +{* ../../docs_src/app_testing/tutorial003.py hl[9:12,20:24] *} diff --git a/docs/em/docs/advanced/testing-websockets.md b/docs/em/docs/advanced/testing-websockets.md new file mode 100644 index 0000000..96aa8b7 --- /dev/null +++ b/docs/em/docs/advanced/testing-websockets.md @@ -0,0 +1,13 @@ +# 🔬 *️⃣ + +👆 💪 ⚙️ 🎏 `TestClient` 💯*️⃣. + +👉, 👆 ⚙️ `TestClient` `with` 📄, 🔗*️⃣: + +{* ../../docs_src/app_testing/tutorial002.py hl[27:31] *} + +/// note + +🌅 ℹ, ✅ 💃 🧾 🔬 *️⃣ . + +/// diff --git a/docs/em/docs/advanced/using-request-directly.md b/docs/em/docs/advanced/using-request-directly.md new file mode 100644 index 0000000..238557e --- /dev/null +++ b/docs/em/docs/advanced/using-request-directly.md @@ -0,0 +1,56 @@ +# ⚙️ 📨 🔗 + +🆙 🔜, 👆 ✔️ 📣 🍕 📨 👈 👆 💪 ⏮️ 👫 🆎. + +✊ 📊 ⚪️➡️: + +* ➡ 🔢. +* 🎚. +* 🍪. +* ♒️. + +& 🔨, **FastAPI** ⚖ 👈 💽, 🏭 ⚫️ & 🏭 🧾 👆 🛠️ 🔁. + +✋️ 📤 ⚠ 🌐❔ 👆 💪 💪 🔐 `Request` 🎚 🔗. + +## ℹ 🔃 `Request` 🎚 + +**FastAPI** 🤙 **💃** 🔘, ⏮️ 🧽 📚 🧰 🔛 🔝, 👆 💪 ⚙️ 💃 `Request` 🎚 🔗 🕐❔ 👆 💪. + +⚫️ 🔜 ⛓ 👈 🚥 👆 🤚 📊 ⚪️➡️ `Request` 🎚 🔗 (🖼, ✍ 💪) ⚫️ 🏆 🚫 ✔, 🗜 ⚖️ 📄 (⏮️ 🗄, 🏧 🛠️ 👩‍💻 🔢) FastAPI. + +👐 🙆 🎏 🔢 📣 🛎 (🖼, 💪 ⏮️ Pydantic 🏷) 🔜 ✔, 🗜, ✍, ♒️. + +✋️ 📤 🎯 💼 🌐❔ ⚫️ ⚠ 🤚 `Request` 🎚. + +## ⚙️ `Request` 🎚 🔗 + +➡️ 🌈 👆 💚 🤚 👩‍💻 📢 📢/🦠 🔘 👆 *➡ 🛠️ 🔢*. + +👈 👆 💪 🔐 📨 🔗. + +{* ../../docs_src/using_request_directly/tutorial001.py hl[1,7:8] *} + +📣 *➡ 🛠️ 🔢* 🔢 ⏮️ 🆎 ➖ `Request` **FastAPI** 🔜 💭 🚶‍♀️ `Request` 👈 🔢. + +/// tip + +🗒 👈 👉 💼, 👥 📣 ➡ 🔢 ⤴️ 📨 🔢. + +, ➡ 🔢 🔜 ⚗, ✔, 🗜 ✔ 🆎 & ✍ ⏮️ 🗄. + +🎏 🌌, 👆 💪 📣 🙆 🎏 🔢 🛎, & ➡, 🤚 `Request` 💁‍♂️. + +/// + +## `Request` 🧾 + +👆 💪 ✍ 🌅 ℹ 🔃 `Request` 🎚 🛂 💃 🧾 🕸. + +/// note | 📡 ℹ + +👆 💪 ⚙️ `from starlette.requests import Request`. + +**FastAPI** 🚚 ⚫️ 🔗 🏪 👆, 👩‍💻. ✋️ ⚫️ 👟 🔗 ⚪️➡️ 💃. + +/// diff --git a/docs/em/docs/advanced/websockets.md b/docs/em/docs/advanced/websockets.md new file mode 100644 index 0000000..a097778 --- /dev/null +++ b/docs/em/docs/advanced/websockets.md @@ -0,0 +1,186 @@ +# *️⃣ + +👆 💪 ⚙️ *️⃣ ⏮️ **FastAPI**. + +## ❎ `WebSockets` + +🥇 👆 💪 ❎ `WebSockets`: + +
+ +```console +$ pip install websockets + +---> 100% +``` + +
+ +## *️⃣ 👩‍💻 + +### 🏭 + +👆 🏭 ⚙️, 👆 🎲 ✔️ 🕸 ✍ ⏮️ 🏛 🛠️ 💖 😥, Vue.js ⚖️ 📐. + +& 🔗 ⚙️ *️⃣ ⏮️ 👆 👩‍💻 👆 🔜 🎲 ⚙️ 👆 🕸 🚙. + +⚖️ 👆 💪 ✔️ 🇦🇸 📱 🈸 👈 🔗 ⏮️ 👆 *️⃣ 👩‍💻 🔗, 🇦🇸 📟. + +⚖️ 👆 5️⃣📆 ✔️ 🙆 🎏 🌌 🔗 ⏮️ *️⃣ 🔗. + +--- + +✋️ 👉 🖼, 👥 🔜 ⚙️ 📶 🙅 🕸 📄 ⏮️ 🕸, 🌐 🔘 📏 🎻. + +👉, ↗️, 🚫 ⚖ & 👆 🚫🔜 ⚙️ ⚫️ 🏭. + +🏭 👆 🔜 ✔️ 1️⃣ 🎛 🔛. + +✋️ ⚫️ 🙅 🌌 🎯 🔛 💽-🚄 *️⃣ & ✔️ 👷 🖼: + +{* ../../docs_src/websockets/tutorial001.py hl[2,6:38,41:43] *} + +## ✍ `websocket` + +👆 **FastAPI** 🈸, ✍ `websocket`: + +{* ../../docs_src/websockets/tutorial001.py hl[1,46:47] *} + +/// note | 📡 ℹ + +👆 💪 ⚙️ `from starlette.websockets import WebSocket`. + +**FastAPI** 🚚 🎏 `WebSocket` 🔗 🏪 👆, 👩‍💻. ✋️ ⚫️ 👟 🔗 ⚪️➡️ 💃. + +/// + +## ⌛ 📧 & 📨 📧 + +👆 *️⃣ 🛣 👆 💪 `await` 📧 & 📨 📧. + +{* ../../docs_src/websockets/tutorial001.py hl[48:52] *} + +👆 💪 📨 & 📨 💱, ✍, & 🎻 💽. + +## 🔄 ⚫️ + +🚥 👆 📁 📛 `main.py`, 🏃 👆 🈸 ⏮️: + +
+ +```console +$ uvicorn main:app --reload + +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +``` + +
+ +📂 👆 🖥 http://127.0.0.1:8000. + +👆 🔜 👀 🙅 📃 💖: + + + +👆 💪 🆎 📧 🔢 📦, & 📨 👫: + + + +& 👆 **FastAPI** 🈸 ⏮️ *️⃣ 🔜 📨 🔙: + + + +👆 💪 📨 (& 📨) 📚 📧: + + + +& 🌐 👫 🔜 ⚙️ 🎏 *️⃣ 🔗. + +## ⚙️ `Depends` & 🎏 + +*️⃣ 🔗 👆 💪 🗄 ⚪️➡️ `fastapi` & ⚙️: + +* `Depends` +* `Security` +* `Cookie` +* `Header` +* `Path` +* `Query` + +👫 👷 🎏 🌌 🎏 FastAPI 🔗/*➡ 🛠️*: + +{* ../../docs_src/websockets/tutorial002.py hl[66:77,76:91] *} + +/// info + +👉 *️⃣ ⚫️ 🚫 🤙 ⚒ 🔑 🤚 `HTTPException`, ↩️ 👥 🤚 `WebSocketException`. + +👆 💪 ⚙️ 📪 📟 ⚪️➡️ ☑ 📟 🔬 🔧. + +/// + +### 🔄 *️⃣ ⏮️ 🔗 + +🚥 👆 📁 📛 `main.py`, 🏃 👆 🈸 ⏮️: + +
+ +```console +$ uvicorn main:app --reload + +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +``` + +
+ +📂 👆 🖥 http://127.0.0.1:8000. + +📤 👆 💪 ⚒: + +* "🏬 🆔", ⚙️ ➡. +* "🤝" ⚙️ 🔢 🔢. + +/// tip + +👀 👈 🔢 `token` 🔜 🍵 🔗. + +/// + +⏮️ 👈 👆 💪 🔗 *️⃣ & ⤴️ 📨 & 📨 📧: + + + +## 🚚 🔀 & 💗 👩‍💻 + +🕐❔ *️⃣ 🔗 📪, `await websocket.receive_text()` 🔜 🤚 `WebSocketDisconnect` ⚠, ❔ 👆 💪 ⤴️ ✊ & 🍵 💖 👉 🖼. + +{* ../../docs_src/websockets/tutorial003.py hl[81:83] *} + +🔄 ⚫️ 👅: + +* 📂 📱 ⏮️ 📚 🖥 📑. +* ✍ 📧 ⚪️➡️ 👫. +* ⤴️ 🔐 1️⃣ 📑. + +👈 🔜 🤚 `WebSocketDisconnect` ⚠, & 🌐 🎏 👩‍💻 🔜 📨 📧 💖: + +``` +Client #1596980209979 left the chat +``` + +/// tip + +📱 🔛 ⭐ & 🙅 🖼 🎦 ❔ 🍵 & 📻 📧 📚 *️⃣ 🔗. + +✋️ ✔️ 🤯 👈, 🌐 🍵 💾, 👁 📇, ⚫️ 🔜 🕴 👷 ⏪ 🛠️ 🏃, & 🔜 🕴 👷 ⏮️ 👁 🛠️. + +🚥 👆 💪 🕳 ⏩ 🛠️ ⏮️ FastAPI ✋️ 👈 🌖 🏋️, 🐕‍🦺 ✳, ✳ ⚖️ 🎏, ✅ 🗜/📻. + +/// + +## 🌅 ℹ + +💡 🌅 🔃 🎛, ✅ 💃 🧾: + +* `WebSocket` 🎓. +* 🎓-⚓️ *️⃣ 🚚. diff --git a/docs/em/docs/advanced/wsgi.md b/docs/em/docs/advanced/wsgi.md new file mode 100644 index 0000000..d923347 --- /dev/null +++ b/docs/em/docs/advanced/wsgi.md @@ -0,0 +1,35 @@ +# ✅ 🇨🇻 - 🏺, ✳, 🎏 + +👆 💪 🗻 🇨🇻 🈸 👆 👀 ⏮️ [🎧 🈸 - 🗻](sub-applications.md){.internal-link target=_blank}, [⛅ 🗳](behind-a-proxy.md){.internal-link target=_blank}. + +👈, 👆 💪 ⚙️ `WSGIMiddleware` & ⚙️ ⚫️ 🎁 👆 🇨🇻 🈸, 🖼, 🏺, ✳, ♒️. + +## ⚙️ `WSGIMiddleware` + +👆 💪 🗄 `WSGIMiddleware`. + +⤴️ 🎁 🇨🇻 (✅ 🏺) 📱 ⏮️ 🛠️. + +& ⤴️ 🗻 👈 🔽 ➡. + +{* ../../docs_src/wsgi/tutorial001.py hl[2:3,22] *} + +## ✅ ⚫️ + +🔜, 🔠 📨 🔽 ➡ `/v1/` 🔜 🍵 🏺 🈸. + +& 🎂 🔜 🍵 **FastAPI**. + +🚥 👆 🏃 ⚫️ ⏮️ Uvicorn & 🚶 http://localhost:8000/v1/ 👆 🔜 👀 📨 ⚪️➡️ 🏺: + +```txt +Hello, World from Flask! +``` + +& 🚥 👆 🚶 http://localhost:8000/v2 👆 🔜 👀 📨 ⚪️➡️ FastAPI: + +```JSON +{ + "message": "Hello World" +} +``` diff --git a/docs/em/docs/alternatives.md b/docs/em/docs/alternatives.md new file mode 100644 index 0000000..4cbac75 --- /dev/null +++ b/docs/em/docs/alternatives.md @@ -0,0 +1,485 @@ +# 🎛, 🌈 & 🔺 + +⚫️❔ 😮 **FastAPI**, ❔ ⚫️ 🔬 🎏 🎛 & ⚫️❔ ⚫️ 🇭🇲 ⚪️➡️ 👫. + +## 🎶 + +**FastAPI** 🚫🔜 🔀 🚥 🚫 ⏮️ 👷 🎏. + +📤 ✔️ 📚 🧰 ✍ ⏭ 👈 ✔️ ℹ 😮 🚮 🏗. + +👤 ✔️ ❎ 🏗 🆕 🛠️ 📚 1️⃣2️⃣🗓️. 🥇 👤 🔄 ❎ 🌐 ⚒ 📔 **FastAPI** ⚙️ 📚 🎏 🛠️, 🔌-🔌, & 🧰. + +✋️ ☝, 📤 🙅‍♂ 🎏 🎛 🌘 🏗 🕳 👈 🚚 🌐 👫 ⚒, ✊ 🏆 💭 ⚪️➡️ ⏮️ 🧰, & 🌀 👫 🏆 🌌 💪, ⚙️ 🇪🇸 ⚒ 👈 ➖🚫 💪 ⏭ (🐍 3️⃣.6️⃣ ➕ 🆎 🔑). + +## ⏮️ 🧰 + +### + +⚫️ 🌅 🌟 🐍 🛠️ & 🛎 🕴. ⚫️ ⚙️ 🏗 ⚙️ 💖 👱📔. + +⚫️ 📶 😆 🔗 ⏮️ 🔗 💽 (💖 ✳ ⚖️ ✳),, ✔️ ☁ 💽 (💖 🗄, ✳, 👸, ♒️) 👑 🏪 🚒 🚫 📶 ⏩. + +⚫️ ✍ 🏗 🕸 👩‍💻, 🚫 ✍ 🔗 ⚙️ 🏛 🕸 (💖 😥, Vue.js & 📐) ⚖️ 🎏 ⚙️ (💖 📳) 🔗 ⏮️ ⚫️. + +### ✳ 🎂 🛠️ + +✳ 🎂 🛠️ ✍ 🗜 🧰 🏗 🕸 🔗 ⚙️ ✳ 🔘, 📉 🚮 🛠️ 🛠️. + +⚫️ ⚙️ 📚 🏢 ✅ 🦎, 🟥 👒 & 🎟. + +⚫️ 🕐 🥇 🖼 **🏧 🛠️ 🧾**, & 👉 🎯 🕐 🥇 💭 👈 😮 "🔎" **FastAPI**. + +/// note + +✳ 🎂 🛠️ ✍ ✡ 🇺🇸🏛. 🎏 👼 💃 & Uvicorn, 🔛 ❔ **FastAPI** ⚓️. + +/// + +/// check | 😮 **FastAPI** + +✔️ 🏧 🛠️ 🧾 🕸 👩‍💻 🔢. + +/// + +### 🏺 + +🏺 "🕸", ⚫️ 🚫 🔌 💽 🛠️ 🚫 📚 👜 👈 👟 🔢 ✳. + +👉 🦁 & 💪 ✔ 🔨 👜 💖 ⚙️ ☁ 💽 👑 💽 💾 ⚙️. + +⚫️ 📶 🙅, ⚫️ 📶 🏋️ 💡, 👐 🧾 🤚 🙁 📡 ☝. + +⚫️ 🛎 ⚙️ 🎏 🈸 👈 🚫 🎯 💪 💽, 👩‍💻 🧾, ⚖️ 🙆 📚 ⚒ 👈 👟 🏤-🏗 ✳. 👐 📚 👫 ⚒ 💪 🚮 ⏮️ 🔌-🔌. + +👉 ⚖ 🍕, & ➖ "🕸" 👈 💪 ↔ 📔 ⚫️❔ ⚫️❔ 💪 🔑 ⚒ 👈 👤 💚 🚧. + +👐 🦁 🏺, ⚫️ 😑 💖 👍 🏏 🏗 🔗. ⏭ 👜 🔎 "✳ 🎂 🛠️" 🏺. + +/// check | 😮 **FastAPI** + +◾-🛠️. ⚒ ⚫️ ⏩ 🌀 & 🏏 🧰 & 🍕 💪. + +✔️ 🙅 & ⏩ ⚙️ 🕹 ⚙️. + +/// + +### 📨 + +**FastAPI** 🚫 🤙 🎛 **📨**. 👫 ↔ 📶 🎏. + +⚫️ 🔜 🤙 ⚠ ⚙️ 📨 *🔘* FastAPI 🈸. + +✋️, FastAPI 🤚 🌈 ⚪️➡️ 📨. + +**📨** 🗃 *🔗* ⏮️ 🔗 (👩‍💻), ⏪ **FastAPI** 🗃 *🏗* 🔗 (💽). + +👫, 🌖 ⚖️ 🌘, 🔄 🔚, 🔗 🔠 🎏. + +📨 ✔️ 📶 🙅 & 🏋️ 🔧, ⚫️ 📶 ⏩ ⚙️, ⏮️ 🤔 🔢. ✋️ 🎏 🕰, ⚫️ 📶 🏋️ & 🛃. + +👈 ⚫️❔, 💬 🛂 🕸: + +> 📨 1️⃣ 🏆 ⏬ 🐍 📦 🌐 🕰 + +🌌 👆 ⚙️ ⚫️ 📶 🙅. 🖼, `GET` 📨, 👆 🔜 ✍: + +```Python +response = requests.get("http://example.com/some/url") +``` + +FastAPI 😑 🛠️ *➡ 🛠️* 💪 👀 💖: + +```Python hl_lines="1" +@app.get("/some/url") +def read_url(): + return {"message": "Hello World"} +``` + +👀 🔀 `requests.get(...)` & `@app.get(...)`. + +/// check | 😮 **FastAPI** + +* ✔️ 🙅 & 🏋️ 🛠️. +* ⚙️ 🇺🇸🔍 👩‍🔬 📛 (🛠️) 🔗, 🎯 & 🏋️ 🌌. +* ✔️ 🤔 🔢, ✋️ 🏋️ 🛃. + +/// + +### 🦁 / 🗄 + +👑 ⚒ 👤 💚 ⚪️➡️ ✳ 🎂 🛠️ 🏧 🛠️ 🧾. + +⤴️ 👤 🔎 👈 📤 🐩 📄 🔗, ⚙️ 🎻 (⚖️ 📁, ↔ 🎻) 🤙 🦁. + +& 📤 🕸 👩‍💻 🔢 🦁 🛠️ ⏪ ✍. , 💆‍♂ 💪 🏗 🦁 🧾 🛠️ 🔜 ✔ ⚙️ 👉 🕸 👩‍💻 🔢 🔁. + +☝, 🦁 👐 💾 🏛, 📁 🗄. + +👈 ⚫️❔ 🕐❔ 💬 🔃 ⏬ 2️⃣.0️⃣ ⚫️ ⚠ 💬 "🦁", & ⏬ 3️⃣ ➕ "🗄". + +/// check | 😮 **FastAPI** + +🛠️ & ⚙️ 📂 🐩 🛠️ 🔧, ↩️ 🛃 🔗. + + & 🛠️ 🐩-⚓️ 👩‍💻 🔢 🧰: + +* 🦁 🎚 +* 📄 + +👫 2️⃣ 👐 ➖ 📶 🌟 & ⚖, ✋️ 🔨 ⏩ 🔎, 👆 💪 🔎 💯 🌖 🎛 👩‍💻 🔢 🗄 (👈 👆 💪 ⚙️ ⏮️ **FastAPI**). + +/// + +### 🏺 🎂 🛠️ + +📤 📚 🏺 🎂 🛠️, ✋️ ⏮️ 💰 🕰 & 👷 🔘 🔬 👫, 👤 🔎 👈 📚 😞 ⚖️ 🚫, ⏮️ 📚 🧍 ❔ 👈 ⚒ 👫 🙃. + +### 🍭 + +1️⃣ 👑 ⚒ 💪 🛠️ ⚙️ 📊 "🛠️" ❔ ✊ 📊 ⚪️➡️ 📟 (🐍) & 🏭 ⚫️ 🔘 🕳 👈 💪 📨 🔘 🕸. 🖼, 🏭 🎚 ⚗ 📊 ⚪️➡️ 💽 🔘 🎻 🎚. 🏭 `datetime` 🎚 🔘 🎻, ♒️. + +➕1️⃣ 🦏 ⚒ 💚 🔗 💽 🔬, ⚒ 💭 👈 💽 ☑, 🤝 🎯 🔢. 🖼, 👈 🏑 `int`, & 🚫 🎲 🎻. 👉 ✴️ ⚠ 📨 💽. + +🍵 💽 🔬 ⚙️, 👆 🔜 ✔️ 🌐 ✅ ✋, 📟. + +👫 ⚒ ⚫️❔ 🍭 🏗 🚚. ⚫️ 👑 🗃, & 👤 ✔️ ⚙️ ⚫️ 📚 ⏭. + +✋️ ⚫️ ✍ ⏭ 📤 🔀 🐍 🆎 🔑. , 🔬 🔠 🔗 👆 💪 ⚙️ 🎯 🇨🇻 & 🎓 🚚 🍭. + +/// check | 😮 **FastAPI** + +⚙️ 📟 🔬 "🔗" 👈 🚚 💽 🆎 & 🔬, 🔁. + +/// + +### Webarg + +➕1️⃣ 🦏 ⚒ ✔ 🔗 📊 ⚪️➡️ 📨 📨. + +Webarg 🧰 👈 ⚒ 🚚 👈 🔛 🔝 📚 🛠️, 🔌 🏺. + +⚫️ ⚙️ 🍭 🔘 💽 🔬. & ⚫️ ✍ 🎏 👩‍💻. + +⚫️ 👑 🧰 & 👤 ✔️ ⚙️ ⚫️ 📚 💁‍♂️, ⏭ ✔️ **FastAPI**. + +/// info + +Webarg ✍ 🎏 🍭 👩‍💻. + +/// + +/// check | 😮 **FastAPI** + +✔️ 🏧 🔬 📨 📨 💽. + +/// + +### APISpec + +🍭 & Webarg 🚚 🔬, ✍ & 🛠️ 🔌-🔌. + +✋️ 🧾 ❌. ⤴️ APISpec ✍. + +⚫️ 🔌-📚 🛠️ (& 📤 🔌-💃 💁‍♂️). + +🌌 ⚫️ 👷 👈 👆 ✍ 🔑 🔗 ⚙️ 📁 📁 🔘 #️⃣ 🔠 🔢 🚚 🛣. + +& ⚫️ 🏗 🗄 🔗. + +👈 ❔ ⚫️ 👷 🏺, 💃, 🆘, ♒️. + +✋️ ⤴️, 👥 ✔️ 🔄 ⚠ ✔️ ◾-❕, 🔘 🐍 🎻 (🦏 📁). + +👨‍🎨 💪 🚫 ℹ 🌅 ⏮️ 👈. & 🚥 👥 🔀 🔢 ⚖️ 🍭 🔗 & 💭 🔀 👈 📁#️⃣, 🏗 🔗 🔜 ❌. + +/// info + +APISpec ✍ 🎏 🍭 👩‍💻. + +/// + +/// check | 😮 **FastAPI** + +🐕‍🦺 📂 🐩 🛠️, 🗄. + +/// + +### 🏺-Apispec + +⚫️ 🏺 🔌 -, 👈 👔 👯‍♂️ Webarg, 🍭 & APISpec. + +⚫️ ⚙️ ℹ ⚪️➡️ Webarg & 🍭 🔁 🏗 🗄 🔗, ⚙️ APISpec. + +⚫️ 👑 🧰, 📶 🔽-📈. ⚫️ 🔜 🌌 🌖 🌟 🌘 📚 🏺 🔌-🔌 👅 📤. ⚫️ 💪 ↩️ 🚮 🧾 ➖ 💁‍♂️ 🩲 & 📝. + +👉 ❎ ✔️ ✍ 📁 (➕1️⃣ ❕) 🔘 🐍 ✍. + +👉 🌀 🏺, 🏺-Apispec ⏮️ 🍭 & Webarg 👇 💕 👩‍💻 📚 ⏭ 🏗 **FastAPI**. + +⚙️ ⚫️ ↘️ 🏗 📚 🏺 🌕-📚 🚂. 👫 👑 📚 👤 (& 📚 🔢 🏉) ✔️ ⚙️ 🆙 🔜: + +* https://github.com/tiangolo/full-stack +* https://github.com/tiangolo/full-stack-flask-couchbase +* https://github.com/tiangolo/full-stack-flask-couchdb + +& 👫 🎏 🌕-📚 🚂 🧢 [**FastAPI** 🏗 🚂](project-generation.md){.internal-link target=_blank}. + +/// info + +🏺-Apispec ✍ 🎏 🍭 👩‍💻. + +/// + +/// check | 😮 **FastAPI** + +🏗 🗄 🔗 🔁, ⚪️➡️ 🎏 📟 👈 🔬 🛠️ & 🔬. + +/// + +### NestJS (& 📐) + +👉 ➖🚫 🚫 🐍, NestJS 🕸 (📕) ✳ 🛠️ 😮 📐. + +⚫️ 🏆 🕳 🙁 🎏 ⚫️❔ 💪 🔨 ⏮️ 🏺-Apispec. + +⚫️ ✔️ 🛠️ 🔗 💉 ⚙️, 😮 📐 2️⃣. ⚫️ 🚚 🏤-® "💉" (💖 🌐 🎏 🔗 💉 ⚙️ 👤 💭),, ⚫️ 🚮 🎭 & 📟 🔁. + +🔢 🔬 ⏮️ 📕 🆎 (🎏 🐍 🆎 🔑), 👨‍🎨 🐕‍🦺 👍. + +✋️ 📕 📊 🚫 🛡 ⏮️ 📹 🕸, ⚫️ 🚫🔜 ⚓️ 🔛 🆎 🔬 🔬, 🛠️ & 🧾 🎏 🕰. ↩️ 👉 & 🔧 🚫, 🤚 🔬, 🛠️ & 🏧 🔗 ⚡, ⚫️ 💪 🚮 👨‍🎨 📚 🥉. , ⚫️ ▶️️ 🔁. + +⚫️ 💪 🚫 🍵 🔁 🏷 📶 👍. , 🚥 🎻 💪 📨 🎻 🎚 👈 ✔️ 🔘 🏑 👈 🔄 🐦 🎻 🎚, ⚫️ 🚫🔜 ☑ 📄 & ✔. + +/// check | 😮 **FastAPI** + +⚙️ 🐍 🆎 ✔️ 👑 👨‍🎨 🐕‍🦺. + +✔️ 🏋️ 🔗 💉 ⚙️. 🔎 🌌 📉 📟 🔁. + +/// + +### 🤣 + +⚫️ 🕐 🥇 📶 ⏩ 🐍 🛠️ ⚓️ 🔛 `asyncio`. ⚫️ ⚒ 📶 🎏 🏺. + +/// note | 📡 ℹ + +⚫️ ⚙️ `uvloop` ↩️ 🔢 🐍 `asyncio` ➰. 👈 ⚫️❔ ⚒ ⚫️ ⏩. + +⚫️ 🎯 😮 Uvicorn & 💃, 👈 ⏳ ⏩ 🌘 🤣 📂 📇. + +/// + +/// check | 😮 **FastAPI** + +🔎 🌌 ✔️ 😜 🎭. + +👈 ⚫️❔ **FastAPI** ⚓️ 🔛 💃, ⚫️ ⏩ 🛠️ 💪 (💯 🥉-🥳 📇). + +/// + +### 🦅 + +🦅 ➕1️⃣ ↕ 🎭 🐍 🛠️, ⚫️ 🔧 ⭐, & 👷 🏛 🎏 🛠️ 💖 🤗. + +⚫️ 🏗 ✔️ 🔢 👈 📨 2️⃣ 🔢, 1️⃣ "📨" & 1️⃣ "📨". ⤴️ 👆 "✍" 🍕 ⚪️➡️ 📨, & "✍" 🍕 📨. ↩️ 👉 🔧, ⚫️ 🚫 💪 📣 📨 🔢 & 💪 ⏮️ 🐩 🐍 🆎 🔑 🔢 🔢. + +, 💽 🔬, 🛠️, & 🧾, ✔️ ⌛ 📟, 🚫 🔁. ⚖️ 👫 ✔️ 🛠️ 🛠️ 🔛 🔝 🦅, 💖 🤗. 👉 🎏 🔺 🔨 🎏 🛠️ 👈 😮 🦅 🔧, ✔️ 1️⃣ 📨 🎚 & 1️⃣ 📨 🎚 🔢. + +/// check | 😮 **FastAPI** + +🔎 🌌 🤚 👑 🎭. + +⤴️ ⏮️ 🤗 (🤗 ⚓️ 🔛 🦅) 😮 **FastAPI** 📣 `response` 🔢 🔢. + +👐 FastAPI ⚫️ 📦, & ⚙️ ✴️ ⚒ 🎚, 🍪, & 🎛 👔 📟. + +/// + +### + +👤 🔎 ♨ 🥇 ▶️ 🏗 **FastAPI**. & ⚫️ ✔️ 🎏 💭: + +* ⚓️ 🔛 🐍 🆎 🔑. +* 🔬 & 🧾 ⚪️➡️ 👫 🆎. +* 🔗 💉 ⚙️. + +⚫️ 🚫 ⚙️ 💽 🔬, 🛠️ & 🧾 🥉-🥳 🗃 💖 Pydantic, ⚫️ ✔️ 🚮 👍. , 👫 💽 🆎 🔑 🔜 🚫 ♻ 💪. + +⚫️ 🚚 🐥 🍖 🌅 🔁 📳. & ⚫️ ⚓️ 🔛 🇨🇻 (↩️ 🔫), ⚫️ 🚫 🔧 ✊ 📈 ↕-🎭 🚚 🧰 💖 Uvicorn, 💃 & 🤣. + +🔗 💉 ⚙️ 🚚 🏤-® 🔗 & 🔗 ❎ 🧢 🔛 📣 🆎. , ⚫️ 🚫 💪 📣 🌅 🌘 1️⃣ "🦲" 👈 🚚 🎯 🆎. + +🛣 📣 👁 🥉, ⚙️ 🔢 📣 🎏 🥉 (↩️ ⚙️ 👨‍🎨 👈 💪 🥉 ▶️️ 🔛 🔝 🔢 👈 🍵 🔗). 👉 🔐 ❔ ✳ 🔨 ⚫️ 🌘 ❔ 🏺 (& 💃) 🔨 ⚫️. ⚫️ 🎏 📟 👜 👈 📶 😆 🔗. + +/// check | 😮 **FastAPI** + +🔬 ➕ 🔬 💽 🆎 ⚙️ "🔢" 💲 🏷 🔢. 👉 📉 👨‍🎨 🐕‍🦺, & ⚫️ 🚫 💪 Pydantic ⏭. + +👉 🤙 😮 🛠️ 🍕 Pydantic, 🐕‍🦺 🎏 🔬 📄 👗 (🌐 👉 🛠️ 🔜 ⏪ 💪 Pydantic). + +/// + +### 🤗 + +🤗 🕐 🥇 🛠️ 🛠️ 📄 🛠️ 🔢 🆎 ⚙️ 🐍 🆎 🔑. 👉 👑 💭 👈 😮 🎏 🧰 🎏. + +⚫️ ⚙️ 🛃 🆎 🚮 📄 ↩️ 🐩 🐍 🆎, ✋️ ⚫️ 🦏 🔁 ⏩. + +⚫️ 🕐 🥇 🛠️ 🏗 🛃 🔗 📣 🎂 🛠️ 🎻. + +⚫️ 🚫 ⚓️ 🔛 🐩 💖 🗄 & 🎻 🔗. ⚫️ 🚫🔜 🎯 🛠️ ⚫️ ⏮️ 🎏 🧰, 💖 🦁 🎚. ✋️ 🔄, ⚫️ 📶 💡 💭. + +⚫️ ✔️ 😌, ⭐ ⚒: ⚙️ 🎏 🛠️, ⚫️ 💪 ✍ 🔗 & 🇳🇨. + +⚫️ ⚓️ 🔛 ⏮️ 🐩 🔁 🐍 🕸 🛠️ (🇨🇻), ⚫️ 💪 🚫 🍵 *️⃣ & 🎏 👜, 👐 ⚫️ ✔️ ↕ 🎭 💁‍♂️. + +/// info + +🤗 ✍ ✡ 🗄, 🎏 👼 `isort`, 👑 🧰 🔁 😇 🗄 🐍 📁. + +/// + +/// check | 💭 😮 **FastAPI** + +🤗 😮 🍕 APIStar, & 1️⃣ 🧰 👤 🔎 🏆 👍, 🌟 APIStar. + +🤗 ℹ 😍 **FastAPI** ⚙️ 🐍 🆎 🔑 📣 🔢, & 🏗 🔗 ⚖ 🛠️ 🔁. + +🤗 😮 **FastAPI** 📣 `response` 🔢 🔢 ⚒ 🎚 & 🍪. + +/// + +### APIStar (<= 0️⃣.5️⃣) + +▶️️ ⏭ 🤔 🏗 **FastAPI** 👤 🔎 **APIStar** 💽. ⚫️ ✔️ 🌖 🌐 👤 👀 & ✔️ 👑 🔧. + +⚫️ 🕐 🥇 🛠️ 🛠️ ⚙️ 🐍 🆎 🔑 📣 🔢 & 📨 👈 👤 ⏱ 👀 (⏭ NestJS & ♨). 👤 🔎 ⚫️ 🌅 ⚖️ 🌘 🎏 🕰 🤗. ✋️ APIStar ⚙️ 🗄 🐩. + +⚫️ ✔️ 🏧 💽 🔬, 💽 🛠️ & 🗄 🔗 ⚡ ⚓️ 🔛 🎏 🆎 🔑 📚 🥉. + +💪 🔗 🔑 🚫 ⚙️ 🎏 🐍 🆎 🔑 💖 Pydantic, ⚫️ 🍖 🌅 🎏 🍭,, 👨‍🎨 🐕‍🦺 🚫🔜 👍, ✋️, APIStar 🏆 💪 🎛. + +⚫️ ✔️ 🏆 🎭 📇 🕰 (🕴 💥 💃). + +🥇, ⚫️ 🚫 ✔️ 🏧 🛠️ 🧾 🕸 🎚, ✋️ 👤 💭 👤 💪 🚮 🦁 🎚 ⚫️. + +⚫️ ✔️ 🔗 💉 ⚙️. ⚫️ ✔ 🏤-® 🦲, 🎏 🧰 🔬 🔛. ✋️, ⚫️ 👑 ⚒. + +👤 🙅 💪 ⚙️ ⚫️ 🌕 🏗, ⚫️ 🚫 ✔️ 💂‍♂ 🛠️,, 👤 🚫 🚫 ❎ 🌐 ⚒ 👤 ✔️ ⏮️ 🌕-📚 🚂 ⚓️ 🔛 🏺-Apispec. 👤 ✔️ 👇 📈 🏗 ✍ 🚲 📨 ❎ 👈 🛠️. + +✋️ ⤴️, 🏗 🎯 🔀. + +⚫️ 🙅‍♂ 📏 🛠️ 🕸 🛠️, 👼 💪 🎯 🔛 💃. + +🔜 APIStar ⚒ 🧰 ✔ 🗄 🔧, 🚫 🕸 🛠️. + +/// info + +APIStar ✍ ✡ 🇺🇸🏛. 🎏 👨 👈 ✍: + +* ✳ 🎂 🛠️ +* 💃 (❔ **FastAPI** ⚓️) +* Uvicorn (⚙️ 💃 & **FastAPI**) + +/// + +/// check | 😮 **FastAPI** + +🔀. + +💭 📣 💗 👜 (💽 🔬, 🛠️ & 🧾) ⏮️ 🎏 🐍 🆎, 👈 🎏 🕰 🚚 👑 👨‍🎨 🐕‍🦺, 🕳 👤 🤔 💎 💭. + + & ⏮️ 🔎 📏 🕰 🎏 🛠️ & 🔬 📚 🎏 🎛, APIStar 🏆 🎛 💪. + +⤴️ APIStar ⛔️ 🔀 💽 & 💃 ✍, & 🆕 👻 🏛 ✅ ⚙️. 👈 🏁 🌈 🏗 **FastAPI**. + +👤 🤔 **FastAPI** "🛐 👨‍💼" APIStar, ⏪ 📉 & 📈 ⚒, ⌨ ⚙️, & 🎏 🍕, ⚓️ 🔛 🏫 ⚪️➡️ 🌐 👉 ⏮️ 🧰. + +/// + +## ⚙️ **FastAPI** + +### Pydantic + +Pydantic 🗃 🔬 💽 🔬, 🛠️ & 🧾 (⚙️ 🎻 🔗) ⚓️ 🔛 🐍 🆎 🔑. + +👈 ⚒ ⚫️ 📶 🏋️. + +⚫️ ⭐ 🍭. 👐 ⚫️ ⏩ 🌘 🍭 📇. & ⚫️ ⚓️ 🔛 🎏 🐍 🆎 🔑, 👨‍🎨 🐕‍🦺 👑. + +/// check | **FastAPI** ⚙️ ⚫️ + +🍵 🌐 💽 🔬, 💽 🛠️ & 🏧 🏷 🧾 (⚓️ 🔛 🎻 🔗). + +**FastAPI** ⤴️ ✊ 👈 🎻 🔗 💽 & 🚮 ⚫️ 🗄, ↖️ ⚪️➡️ 🌐 🎏 👜 ⚫️ 🔨. + +/// + +### 💃 + +💃 💿 🔫 🛠️/🧰, ❔ 💯 🏗 ↕-🎭 ✳ 🐕‍🦺. + +⚫️ 📶 🙅 & 🏋️. ⚫️ 🔧 💪 🏧, & ✔️ 🔧 🦲. + +⚫️ ✔️: + +* 🤙 🎆 🎭. +* *️⃣ 🐕‍🦺. +* -🛠️ 🖥 📋. +* 🕴 & 🤫 🎉. +* 💯 👩‍💻 🏗 🔛 🇸🇲. +* ⚜, 🗜, 🎻 📁, 🎏 📨. +* 🎉 & 🍪 🐕‍🦺. +* 1️⃣0️⃣0️⃣ 💯 💯 💰. +* 1️⃣0️⃣0️⃣ 💯 🆎 ✍ ✍. +* 👩‍❤‍👨 🏋️ 🔗. + +💃 ⏳ ⏩ 🐍 🛠️ 💯. 🕴 💥 Uvicorn, ❔ 🚫 🛠️, ✋️ 💽. + +💃 🚚 🌐 🔰 🕸 🕸 🛠️. + +✋️ ⚫️ 🚫 🚚 🏧 💽 🔬, 🛠️ ⚖️ 🧾. + +👈 1️⃣ 👑 👜 👈 **FastAPI** 🚮 🔛 🔝, 🌐 ⚓️ 🔛 🐍 🆎 🔑 (⚙️ Pydantic). 👈, ➕ 🔗 💉 ⚙️, 💂‍♂ 🚙, 🗄 🔗 ⚡, ♒️. + +/// note | 📡 ℹ + +🔫 🆕 "🐩" ➖ 🛠️ ✳ 🐚 🏉 👨‍🎓. ⚫️ 🚫 "🐍 🐩" (🇩🇬), 👐 👫 🛠️ 🔨 👈. + +👐, ⚫️ ⏪ ➖ ⚙️ "🐩" 📚 🧰. 👉 📉 📉 🛠️, 👆 💪 🎛 Uvicorn 🙆 🎏 🔫 💽 (💖 👸 ⚖️ Hypercorn), ⚖️ 👆 💪 🚮 🔫 🔗 🧰, 💖 `python-socketio`. + +/// + +/// check | **FastAPI** ⚙️ ⚫️ + +🍵 🌐 🐚 🕸 🍕. ❎ ⚒ 🔛 🔝. + +🎓 `FastAPI` ⚫️ 😖 🔗 ⚪️➡️ 🎓 `Starlette`. + +, 🕳 👈 👆 💪 ⏮️ 💃, 👆 💪 ⚫️ 🔗 ⏮️ **FastAPI**, ⚫️ 🌖 💃 🔛 💊. + +/// + +### Uvicorn + +Uvicorn 🌩-⏩ 🔫 💽, 🏗 🔛 uvloop & httptool. + +⚫️ 🚫 🕸 🛠️, ✋️ 💽. 🖼, ⚫️ 🚫 🚚 🧰 🕹 ➡. 👈 🕳 👈 🛠️ 💖 💃 (⚖️ **FastAPI**) 🔜 🚚 🔛 🔝. + +⚫️ 👍 💽 💃 & **FastAPI**. + +/// check | **FastAPI** 👍 ⚫️ + +👑 🕸 💽 🏃 **FastAPI** 🈸. + +👆 💪 🌀 ⚫️ ⏮️ 🐁, ✔️ 🔁 👁-🛠️ 💽. + +✅ 🌅 ℹ [🛠️](deployment/index.md){.internal-link target=_blank} 📄. + +/// + +## 📇 & 🚅 + +🤔, 🔬, & 👀 🔺 🖖 Uvicorn, 💃 & FastAPI, ✅ 📄 🔃 [📇](benchmarks.md){.internal-link target=_blank}. diff --git a/docs/em/docs/async.md b/docs/em/docs/async.md new file mode 100644 index 0000000..cde778b --- /dev/null +++ b/docs/em/docs/async.md @@ -0,0 +1,442 @@ +# 🛠️ & 🔁 / ⌛ + +ℹ 🔃 `async def` ❕ *➡ 🛠️ 🔢* & 🖥 🔃 🔁 📟, 🛠️, & 🔁. + +## 🏃 ❓ + +🆑;👩‍⚕️: + +🚥 👆 ⚙️ 🥉 🥳 🗃 👈 💬 👆 🤙 👫 ⏮️ `await`, 💖: + +```Python +results = await some_library() +``` + +⤴️, 📣 👆 *➡ 🛠️ 🔢* ⏮️ `async def` 💖: + +```Python hl_lines="2" +@app.get('/') +async def read_results(): + results = await some_library() + return results +``` + +/// note + +👆 💪 🕴 ⚙️ `await` 🔘 🔢 ✍ ⏮️ `async def`. + +/// + +--- + +🚥 👆 ⚙️ 🥉 🥳 🗃 👈 🔗 ⏮️ 🕳 (💽, 🛠️, 📁 ⚙️, ♒️.) & 🚫 ✔️ 🐕‍🦺 ⚙️ `await`, (👉 ⏳ 💼 🌅 💽 🗃), ⤴️ 📣 👆 *➡ 🛠️ 🔢* 🛎, ⏮️ `def`, 💖: + +```Python hl_lines="2" +@app.get('/') +def results(): + results = some_library() + return results +``` + +--- + +🚥 👆 🈸 (😫) 🚫 ✔️ 🔗 ⏮️ 🕳 🙆 & ⌛ ⚫️ 📨, ⚙️ `async def`. + +--- + +🚥 👆 🚫 💭, ⚙️ 😐 `def`. + +--- + +**🗒**: 👆 💪 🌀 `def` & `async def` 👆 *➡ 🛠️ 🔢* 🌅 👆 💪 & 🔬 🔠 1️⃣ ⚙️ 🏆 🎛 👆. FastAPI 🔜 ▶️️ 👜 ⏮️ 👫. + +😆, 🙆 💼 🔛, FastAPI 🔜 👷 🔁 & 📶 ⏩. + +✋️ 📄 📶 🔛, ⚫️ 🔜 💪 🎭 🛠️. + +## 📡 ℹ + +🏛 ⏬ 🐍 ✔️ 🐕‍🦺 **"🔁 📟"** ⚙️ 🕳 🤙 **"🔁"**, ⏮️ **`async` & `await`** ❕. + +➡️ 👀 👈 🔤 🍕 📄 🔛: + +* **🔁 📟** +* **`async` & `await`** +* **🔁** + +## 🔁 📟 + +🔁 📟 ⛓ 👈 🇪🇸 👶 ✔️ 🌌 💬 💻 / 📋 👶 👈 ☝ 📟, ⚫️ 👶 🔜 ✔️ ⌛ *🕳 🙆* 🏁 👱 🙆. ➡️ 💬 👈 *🕳 🙆* 🤙 "🐌-📁" 👶. + +, ⏮️ 👈 🕰, 💻 💪 🚶 & 🎏 👷, ⏪ "🐌-📁" 👶 🏁. + +⤴️ 💻 / 📋 👶 🔜 👟 🔙 🔠 🕰 ⚫️ ✔️ 🤞 ↩️ ⚫️ ⌛ 🔄, ⚖️ 🕐❔ ⚫️ 👶 🏁 🌐 👷 ⚫️ ✔️ 👈 ☝. & ⚫️ 👶 🔜 👀 🚥 🙆 📋 ⚫️ ⌛ ✔️ ⏪ 🏁, 🤸 ⚫️❔ ⚫️ ✔️. + +⏭, ⚫️ 👶 ✊ 🥇 📋 🏁 (➡️ 💬, 👆 "🐌-📁" 👶) & 😣 ⚫️❔ ⚫️ ✔️ ⏮️ ⚫️. + +👈 "⌛ 🕳 🙆" 🛎 🔗 👤/🅾 🛠️ 👈 📶 "🐌" (🔬 🚅 🕹 & 💾 💾), 💖 ⌛: + +* 📊 ⚪️➡️ 👩‍💻 📨 🔘 🕸 +* 📊 📨 👆 📋 📨 👩‍💻 🔘 🕸 +* 🎚 📁 💾 ✍ ⚙️ & 🤝 👆 📋 +* 🎚 👆 📋 🤝 ⚙️ ✍ 💾 +* 🛰 🛠️ 🛠️ +* 💽 🛠️ 🏁 +* 💽 🔢 📨 🏁 +* ♒️. + +🛠️ 🕰 🍴 ✴️ ⌛ 👤/🅾 🛠️, 👫 🤙 👫 "👤/🅾 🔗" 🛠️. + +⚫️ 🤙 "🔁" ↩️ 💻 / 📋 🚫 ✔️ "🔁" ⏮️ 🐌 📋, ⌛ ☑ 🙍 👈 📋 🏁, ⏪ 🔨 🕳, 💪 ✊ 📋 🏁 & 😣 👷. + +↩️ 👈, 💆‍♂ "🔁" ⚙️, 🕐 🏁, 📋 💪 ⌛ ⏸ 🐥 👄 (⏲) 💻 / 📋 🏁 ⚫️❔ ⚫️ 🚶, & ⤴️ 👟 🔙 ✊ 🏁 & 😣 👷 ⏮️ 👫. + +"🔁" (👽 "🔁") 👫 🛎 ⚙️ ⚖ "🔁", ↩️ 💻 / 📋 ⏩ 🌐 📶 🔁 ⏭ 🔀 🎏 📋, 🚥 👈 🔁 🔌 ⌛. + +### 🛠️ & 🍔 + +👉 💭 **🔁** 📟 🔬 🔛 🕣 🤙 **"🛠️"**. ⚫️ 🎏 ⚪️➡️ **"🔁"**. + +**🛠️** & **🔁** 👯‍♂️ 🔗 "🎏 👜 😥 🌅 ⚖️ 🌘 🎏 🕰". + +✋️ ℹ 🖖 *🛠️* & *🔁* 🎏. + +👀 🔺, 🌈 📄 📖 🔃 🍔: + +### 🛠️ 🍔 + +👆 🚶 ⏮️ 👆 🥰 🤚 ⏩ 🥕, 👆 🧍 ⏸ ⏪ 🏧 ✊ ✔ ⚪️➡️ 👫👫 🚪 👆. 👶 + + + +⤴️ ⚫️ 👆 🔄, 👆 🥉 👆 ✔ 2️⃣ 📶 🎀 🍔 👆 🥰 & 👆. 👶 👶 + + + +🏧 💬 🕳 🍳 👨‍🍳 👫 💭 👫 ✔️ 🏗 👆 🍔 (✋️ 👫 ⏳ 🏗 🕐 ⏮️ 👩‍💻). + + + +👆 💸. 👶 + +🏧 🤝 👆 🔢 👆 🔄. + + + +⏪ 👆 ⌛, 👆 🚶 ⏮️ 👆 🥰 & ⚒ 🏓, 👆 🧎 & 💬 ⏮️ 👆 🥰 📏 🕰 (👆 🍔 📶 🎀 & ✊ 🕰 🏗). + +👆 🏖 🏓 ⏮️ 👆 🥰, ⏪ 👆 ⌛ 🍔, 👆 💪 💸 👈 🕰 😮 ❔ 👌, 🐨 & 🙃 👆 🥰 👶 👶 👶. + + + +⏪ ⌛ & 💬 👆 🥰, ⚪️➡️ 🕰 🕰, 👆 ✅ 🔢 🖥 🔛 ⏲ 👀 🚥 ⚫️ 👆 🔄 ⏪. + +⤴️ ☝, ⚫️ 😒 👆 🔄. 👆 🚶 ⏲, 🤚 👆 🍔 & 👟 🔙 🏓. + + + +👆 & 👆 🥰 🍴 🍔 & ✔️ 👌 🕰. 👶 + + + +/// info + +🌹 🖼 👯 🍏. 👶 + +/// + +--- + +🌈 👆 💻 / 📋 👶 👈 📖. + +⏪ 👆 ⏸, 👆 ⛽ 👶, ⌛ 👆 🔄, 🚫 🔨 🕳 📶 "😌". ✋️ ⏸ ⏩ ↩️ 🏧 🕴 ✊ ✔ (🚫 🏗 👫), 👈 👌. + +⤴️, 🕐❔ ⚫️ 👆 🔄, 👆 ☑ "😌" 👷, 👆 🛠️ 🍣, 💭 ⚫️❔ 👆 💚, 🤚 👆 🥰 ⚒, 💸, ✅ 👈 👆 🤝 ☑ 💵 ⚖️ 💳, ✅ 👈 👆 🈚 ☑, ✅ 👈 ✔ ✔️ ☑ 🏬, ♒️. + +✋️ ⤴️, ✋️ 👆 🚫 ✔️ 👆 🍔, 👆 👷 ⏮️ 🏧 "🔛 ⏸" ⏸, ↩️ 👆 ✔️ ⌛ 👶 👆 🍔 🔜. + +✋️ 👆 🚶 ↖️ ⚪️➡️ ⏲ & 🧎 🏓 ⏮️ 🔢 👆 🔄, 👆 💪 🎛 👶 👆 🙋 👆 🥰, & "👷" 👶 👶 🔛 👈. ⤴️ 👆 🔄 🔨 🕳 📶 "😌" 😏 ⏮️ 👆 🥰 👶. + +⤴️ 🏧 👶 💬 "👤 🏁 ⏮️ 🔨 🍔" 🚮 👆 🔢 🔛 ⏲ 🖥, ✋️ 👆 🚫 🦘 💖 😜 ⏪ 🕐❔ 🖥 🔢 🔀 👆 🔄 🔢. 👆 💭 🙅‍♂ 1️⃣ 🔜 📎 👆 🍔 ↩️ 👆 ✔️ 🔢 👆 🔄, & 👫 ✔️ 👫. + +👆 ⌛ 👆 🥰 🏁 📖 (🏁 ⏮️ 👷 👶 / 📋 ➖ 🛠️ 👶), 😀 🖐 & 💬 👈 👆 🔜 🍔 ⏸. + +⤴️ 👆 🚶 ⏲ 👶, ▶️ 📋 👈 🔜 🏁 👶, ⚒ 🍔, 💬 👏 & ✊ 👫 🏓. 👈 🏁 👈 🔁 / 📋 🔗 ⏮️ ⏲ ⏹. 👈 🔄, ✍ 🆕 📋, "🍴 🍔" 👶 👶, ✋️ ⏮️ 1️⃣ "🤚 🍔" 🏁 ⏹. + +### 🔗 🍔 + +🔜 ➡️ 🌈 👫 ➖🚫 🚫 "🛠️ 🍔", ✋️ "🔗 🍔". + +👆 🚶 ⏮️ 👆 🥰 🤚 🔗 ⏩ 🥕. + +👆 🧍 ⏸ ⏪ 📚 (➡️ 💬 8️⃣) 🏧 👈 🎏 🕰 🍳 ✊ ✔ ⚪️➡️ 👫👫 🚪 👆. + +👱 ⏭ 👆 ⌛ 👫 🍔 🔜 ⏭ 🍂 ⏲ ↩️ 🔠 8️⃣ 🏧 🚶 & 🏗 🍔 ▶️️ ↖️ ⏭ 💆‍♂ ⏭ ✔. + + + +⤴️ ⚫️ 😒 👆 🔄, 👆 🥉 👆 ✔ 2️⃣ 📶 🎀 🍔 👆 🥰 & 👆. + +👆 💸 👶. + + + +🏧 🚶 👨‍🍳. + +👆 ⌛, 🧍 🚪 ⏲ 👶, 👈 🙅‍♂ 1️⃣ 🙆 ✊ 👆 🍔 ⏭ 👆, 📤 🙅‍♂ 🔢 🔄. + + + +👆 & 👆 🥰 😩 🚫 ➡️ 🙆 🤚 🚪 👆 & ✊ 👆 🍔 🕐❔ 👫 🛬, 👆 🚫🔜 💸 🙋 👆 🥰. 👶 + +👉 "🔁" 👷, 👆 "🔁" ⏮️ 🏧/🍳 👶 👶. 👆 ✔️ ⌛ 👶 & 📤 ☑ 🙍 👈 🏧/🍳 👶 👶 🏁 🍔 & 🤝 👫 👆, ⚖️ ⏪, 👱 🙆 💪 ✊ 👫. + + + +⤴️ 👆 🏧/🍳 👶 👶 😒 👟 🔙 ⏮️ 👆 🍔, ⏮️ 📏 🕰 ⌛ 👶 📤 🚪 ⏲. + + + +👆 ✊ 👆 🍔 & 🚶 🏓 ⏮️ 👆 🥰. + +👆 🍴 👫, & 👆 🔨. ⏹ + + + +📤 🚫 🌅 💬 ⚖️ 😏 🌅 🕰 💸 ⌛ 👶 🚪 ⏲. 👶 + +/// info + +🌹 🖼 👯 🍏. 👶 + +/// + +--- + +👉 😐 🔗 🍔, 👆 💻 / 📋 👶 ⏮️ 2️⃣ 🕹 (👆 & 👆 🥰), 👯‍♂️ ⌛ 👶 & 💡 👫 🙋 👶 "⌛ 🔛 ⏲" 👶 📏 🕰. + +⏩ 🥕 🏪 ✔️ 8️⃣ 🕹 (🏧/🍳). ⏪ 🛠️ 🍔 🏪 💪 ✔️ ✔️ 🕴 2️⃣ (1️⃣ 🏧 & 1️⃣ 🍳). + +✋️, 🏁 💡 🚫 🏆. 👶 + +--- + +👉 🔜 🔗 🌓 📖 🍔. 👶 + +🌅 "🎰 👨‍❤‍👨" 🖼 👉, 🌈 🏦. + +🆙 ⏳, 🏆 🏦 ✔️ 💗 🏧 👶 👶 👶 👶 👶 👶 👶 👶 & 🦏 ⏸ 👶 👶 👶 👶 👶 👶 👶 👶. + +🌐 🏧 🔨 🌐 👷 ⏮️ 1️⃣ 👩‍💻 ⏮️ 🎏 👶 👶 👶. + +& 👆 ✔️ ⌛ 👶 ⏸ 📏 🕰 ⚖️ 👆 💸 👆 🔄. + +👆 🎲 🚫🔜 💚 ✊ 👆 🥰 👶 ⏮️ 👆 👷 🏦 👶. + +### 🍔 🏁 + +👉 😐 "⏩ 🥕 🍔 ⏮️ 👆 🥰", 📤 📚 ⌛ 👶, ⚫️ ⚒ 📚 🌅 🔑 ✔️ 🛠️ ⚙️ ⏸ 👶 👶. + +👉 💼 🌅 🕸 🈸. + +📚, 📚 👩‍💻, ✋️ 👆 💽 ⌛ 👶 👫 🚫--👍 🔗 📨 👫 📨. + +& ⤴️ ⌛ 👶 🔄 📨 👟 🔙. + +👉 "⌛" 👶 ⚖ ⏲, ✋️, ⚖ ⚫️ 🌐, ⚫️ 📚 ⌛ 🔚. + +👈 ⚫️❔ ⚫️ ⚒ 📚 🔑 ⚙️ 🔁 ⏸ 👶 👶 📟 🕸 🔗. + +👉 😇 🔀 ⚫️❔ ⚒ ✳ 🌟 (✋️ ✳ 🚫 🔗) & 👈 💪 🚶 🛠️ 🇪🇸. + +& 👈 🎏 🎚 🎭 👆 🤚 ⏮️ **FastAPI**. + +& 👆 💪 ✔️ 🔁 & 🔀 🎏 🕰, 👆 🤚 ↕ 🎭 🌘 🌅 💯 ✳ 🛠️ & 🔛 🇷🇪 ⏮️ 🚶, ❔ ✍ 🇪🇸 🔐 🅱 (🌐 👏 💃). + +### 🛠️ 👍 🌘 🔁 ❓ + +😆 ❗ 👈 🚫 🛐 📖. + +🛠️ 🎏 🌘 🔁. & ⚫️ 👻 🔛 **🎯** 😐 👈 🔌 📚 ⌛. ↩️ 👈, ⚫️ 🛎 📚 👍 🌘 🔁 🕸 🈸 🛠️. ✋️ 🚫 🌐. + +, ⚖ 👈 👅, 🌈 📄 📏 📖: + +> 👆 ✔️ 🧹 🦏, 💩 🏠. + +*😆, 👈 🎂 📖*. + +--- + +📤 🙅‍♂ ⌛ 👶 🙆, 📚 👷 🔨, 🔛 💗 🥉 🏠. + +👆 💪 ✔️ 🔄 🍔 🖼, 🥇 🏠 🧖‍♂, ⤴️ 👨‍🍳, ✋️ 👆 🚫 ⌛ 👶 🕳, 🧹 & 🧹, 🔄 🚫🔜 📉 🕳. + +⚫️ 🔜 ✊ 🎏 💸 🕰 🏁 ⏮️ ⚖️ 🍵 🔄 (🛠️) & 👆 🔜 ✔️ ⌛ 🎏 💸 👷. + +✋️ 👉 💼, 🚥 👆 💪 ✊️ 8️⃣ 👰-🏧/🍳/🔜-🧹, & 🔠 1️⃣ 👫 (➕ 👆) 💪 ✊ 🏒 🏠 🧹 ⚫️, 👆 💪 🌐 👷 **🔗**, ⏮️ ➕ ℹ, & 🏁 🌅 🔜. + +👉 😐, 🔠 1️⃣ 🧹 (🔌 👆) 🔜 🕹, 🤸 👫 🍕 👨‍🏭. + +& 🏆 🛠️ 🕰 ✊ ☑ 👷 (↩️ ⌛), & 👷 💻 ⌛ 💽, 👫 🤙 👫 ⚠ "💽 🎁". + +--- + +⚠ 🖼 💽 🔗 🛠️ 👜 👈 🚚 🏗 🧪 🏭. + +🖼: + +* **🎧** ⚖️ **🖼 🏭**. +* **💻 👓**: 🖼 ✍ 💯 🔅, 🔠 🔅 ✔️ 3️⃣ 💲 / 🎨, 🏭 👈 🛎 🚚 💻 🕳 🔛 📚 🔅, 🌐 🎏 🕰. +* **🎰 🏫**: ⚫️ 🛎 🚚 📚 "✖" & "🖼" ✖. 💭 🦏 📋 ⏮️ 🔢 & ✖ 🌐 👫 👯‍♂️ 🎏 🕰. +* **⏬ 🏫**: 👉 🎧-🏑 🎰 🏫,, 🎏 ✔. ⚫️ 👈 📤 🚫 👁 📋 🔢 ✖, ✋️ 🦏 ⚒ 👫, & 📚 💼, 👆 ⚙️ 🎁 🕹 🏗 & / ⚖️ ⚙️ 👈 🏷. + +### 🛠️ ➕ 🔁: 🕸 ➕ 🎰 🏫 + +⏮️ **FastAPI** 👆 💪 ✊ 📈 🛠️ 👈 📶 ⚠ 🕸 🛠️ (🎏 👑 🧲 ✳). + +✋️ 👆 💪 🐄 💰 🔁 & 💾 (✔️ 💗 🛠️ 🏃‍♂ 🔗) **💽 🎁** ⚖ 💖 👈 🎰 🏫 ⚙️. + +👈, ➕ 🙅 👐 👈 🐍 👑 🇪🇸 **💽 🧪**, 🎰 🏫 & ✴️ ⏬ 🏫, ⚒ FastAPI 📶 👍 🏏 💽 🧪 / 🎰 🏫 🕸 🔗 & 🈸 (👪 📚 🎏). + +👀 ❔ 🏆 👉 🔁 🏭 👀 📄 🔃 [🛠️](deployment/index.md){.internal-link target=_blank}. + +## `async` & `await` + +🏛 ⏬ 🐍 ✔️ 📶 🏋️ 🌌 🔬 🔁 📟. 👉 ⚒ ⚫️ 👀 💖 😐 "🔁" 📟 & "⌛" 👆 ▶️️ 🙍. + +🕐❔ 📤 🛠️ 👈 🔜 🚚 ⌛ ⏭ 🤝 🏁 & ✔️ 🐕‍🦺 👉 🆕 🐍 ⚒, 👆 💪 📟 ⚫️ 💖: + +```Python +burgers = await get_burgers(2) +``` + +🔑 📥 `await`. ⚫️ 💬 🐍 👈 ⚫️ ✔️ ⌛ ⏸ `get_burgers(2)` 🏁 🔨 🚮 👜 👶 ⏭ ♻ 🏁 `burgers`. ⏮️ 👈, 🐍 🔜 💭 👈 ⚫️ 💪 🚶 & 🕳 🙆 👶 👶 👐 (💖 📨 ➕1️⃣ 📨). + +`await` 👷, ⚫️ ✔️ 🔘 🔢 👈 🐕‍🦺 👉 🔀. 👈, 👆 📣 ⚫️ ⏮️ `async def`: + +```Python hl_lines="1" +async def get_burgers(number: int): + # Do some asynchronous stuff to create the burgers + return burgers +``` + +...↩️ `def`: + +```Python hl_lines="2" +# This is not asynchronous +def get_sequential_burgers(number: int): + # Do some sequential stuff to create the burgers + return burgers +``` + +⏮️ `async def`, 🐍 💭 👈, 🔘 👈 🔢, ⚫️ ✔️ 🤔 `await` 🧬, & 👈 ⚫️ 💪 "⏸" ⏸ 🛠️ 👈 🔢 & 🚶 🕳 🙆 👶 ⏭ 👟 🔙. + +🕐❔ 👆 💚 🤙 `async def` 🔢, 👆 ✔️ "⌛" ⚫️. , 👉 🏆 🚫 👷: + +```Python +# This won't work, because get_burgers was defined with: async def +burgers = get_burgers(2) +``` + +--- + +, 🚥 👆 ⚙️ 🗃 👈 💬 👆 👈 👆 💪 🤙 ⚫️ ⏮️ `await`, 👆 💪 ✍ *➡ 🛠️ 🔢* 👈 ⚙️ ⚫️ ⏮️ `async def`, 💖: + +```Python hl_lines="2-3" +@app.get('/burgers') +async def read_burgers(): + burgers = await get_burgers(2) + return burgers +``` + +### 🌅 📡 ℹ + +👆 💪 ✔️ 👀 👈 `await` 💪 🕴 ⚙️ 🔘 🔢 🔬 ⏮️ `async def`. + +✋️ 🎏 🕰, 🔢 🔬 ⏮️ `async def` ✔️ "⌛". , 🔢 ⏮️ `async def` 💪 🕴 🤙 🔘 🔢 🔬 ⏮️ `async def` 💁‍♂️. + +, 🔃 🥚 & 🐔, ❔ 👆 🤙 🥇 `async` 🔢 ❓ + +🚥 👆 👷 ⏮️ **FastAPI** 👆 🚫 ✔️ 😟 🔃 👈, ↩️ 👈 "🥇" 🔢 🔜 👆 *➡ 🛠️ 🔢*, & FastAPI 🔜 💭 ❔ ▶️️ 👜. + +✋️ 🚥 👆 💚 ⚙️ `async` / `await` 🍵 FastAPI, 👆 💪 ⚫️ 👍. + +### ✍ 👆 👍 🔁 📟 + +💃 (& **FastAPI**) ⚓️ 🔛 AnyIO, ❔ ⚒ ⚫️ 🔗 ⏮️ 👯‍♂️ 🐍 🐩 🗃 & 🎻. + +🎯, 👆 💪 🔗 ⚙️ AnyIO 👆 🏧 🛠️ ⚙️ 💼 👈 🚚 🌅 🏧 ⚓ 👆 👍 📟. + +& 🚥 👆 🚫 ⚙️ FastAPI, 👆 💪 ✍ 👆 👍 🔁 🈸 ⏮️ AnyIO 🏆 🔗 & 🤚 🚮 💰 (✅ *📊 🛠️*). + +### 🎏 📨 🔁 📟 + +👉 👗 ⚙️ `async` & `await` 📶 🆕 🇪🇸. + +✋️ ⚫️ ⚒ 👷 ⏮️ 🔁 📟 📚 ⏩. + +👉 🎏 ❕ (⚖️ 🌖 🌓) 🔌 ⏳ 🏛 ⏬ 🕸 (🖥 & ✳). + +✋️ ⏭ 👈, 🚚 🔁 📟 🌖 🏗 & ⚠. + +⏮️ ⏬ 🐍, 👆 💪 ✔️ ⚙️ 🧵 ⚖️ 🐁. ✋️ 📟 🌌 🌖 🏗 🤔, ℹ, & 💭 🔃. + +⏮️ ⏬ ✳ / 🖥 🕸, 👆 🔜 ✔️ ⚙️ "⏲". ❔ ↘️ "⏲ 🔥😈". + +## 🔁 + +**🔁** 📶 🎀 ⚖ 👜 📨 `async def` 🔢. 🐍 💭 👈 ⚫️ 🕳 💖 🔢 👈 ⚫️ 💪 ▶️ & 👈 ⚫️ 🔜 🔚 ☝, ✋️ 👈 ⚫️ 5️⃣📆 ⏸ ⏸ 🔘 💁‍♂️, 🕐❔ 📤 `await` 🔘 ⚫️. + +✋️ 🌐 👉 🛠️ ⚙️ 🔁 📟 ⏮️ `async` & `await` 📚 🕰 🔬 ⚙️ "🔁". ⚫️ ⭐ 👑 🔑 ⚒ 🚶, "🔁". + +## 🏁 + +➡️ 👀 🎏 🔤 ⚪️➡️ 🔛: + +> 🏛 ⏬ 🐍 ✔️ 🐕‍🦺 **"🔁 📟"** ⚙️ 🕳 🤙 **"🔁"**, ⏮️ **`async` & `await`** ❕. + +👈 🔜 ⚒ 🌅 🔑 🔜. 👶 + +🌐 👈 ⚫️❔ 🏋️ FastAPI (🔘 💃) & ⚫️❔ ⚒ ⚫️ ✔️ ✅ 🎆 🎭. + +## 📶 📡 ℹ + +/// warning + +👆 💪 🎲 🚶 👉. + +👉 📶 📡 ℹ ❔ **FastAPI** 👷 🔘. + +🚥 👆 ✔️ 📡 💡 (🈶-🏋, 🧵, 🍫, ♒️.) & 😟 🔃 ❔ FastAPI 🍵 `async def` 🆚 😐 `def`, 🚶 ⤴️. + +/// + +### ➡ 🛠️ 🔢 + +🕐❔ 👆 📣 *➡ 🛠️ 🔢* ⏮️ 😐 `def` ↩️ `async def`, ⚫️ 🏃 🔢 🧵 👈 ⤴️ ⌛, ↩️ ➖ 🤙 🔗 (⚫️ 🔜 🍫 💽). + +🚥 👆 👟 ⚪️➡️ ➕1️⃣ 🔁 🛠️ 👈 🔨 🚫 👷 🌌 🔬 🔛 & 👆 ⚙️ ⚖ 🙃 📊-🕴 *➡ 🛠️ 🔢* ⏮️ ✅ `def` 🤪 🎭 📈 (🔃 1️⃣0️⃣0️⃣ 💓), 🙏 🗒 👈 **FastAPI** ⭐ 🔜 🔄. 👫 💼, ⚫️ 👻 ⚙️ `async def` 🚥 👆 *➡ 🛠️ 🔢* ⚙️ 📟 👈 🎭 🚧 👤/🅾. + +, 👯‍♂️ ⚠, 🤞 👈 **FastAPI** 🔜 [⏩](index.md#_15){.internal-link target=_blank} 🌘 (⚖️ 🌘 ⭐) 👆 ⏮️ 🛠️. + +### 🔗 + +🎏 ✔ [🔗](tutorial/dependencies/index.md){.internal-link target=_blank}. 🚥 🔗 🐩 `def` 🔢 ↩️ `async def`, ⚫️ 🏃 🔢 🧵. + +### 🎧-🔗 + +👆 💪 ✔️ 💗 🔗 & [🎧-🔗](tutorial/dependencies/sub-dependencies.md){.internal-link target=_blank} 🚫 🔠 🎏 (🔢 🔢 🔑), 👫 💪 ✍ ⏮️ `async def` & ⏮️ 😐 `def`. ⚫️ 🔜 👷, & 🕐 ✍ ⏮️ 😐 `def` 🔜 🤙 🔛 🔢 🧵 (⚪️➡️ 🧵) ↩️ ➖ "⌛". + +### 🎏 🚙 🔢 + +🙆 🎏 🚙 🔢 👈 👆 🤙 🔗 💪 ✍ ⏮️ 😐 `def` ⚖️ `async def` & FastAPI 🏆 🚫 📉 🌌 👆 🤙 ⚫️. + +👉 🔅 🔢 👈 FastAPI 🤙 👆: *➡ 🛠️ 🔢* & 🔗. + +🚥 👆 🚙 🔢 😐 🔢 ⏮️ `def`, ⚫️ 🔜 🤙 🔗 (👆 ✍ ⚫️ 👆 📟), 🚫 🧵, 🚥 🔢 ✍ ⏮️ `async def` ⤴️ 👆 🔜 `await` 👈 🔢 🕐❔ 👆 🤙 ⚫️ 👆 📟. + +--- + +🔄, 👉 📶 📡 ℹ 👈 🔜 🎲 ⚠ 🚥 👆 👟 🔎 👫. + +⏪, 👆 🔜 👍 ⏮️ 📄 ⚪️➡️ 📄 🔛: 🏃 ❓. diff --git a/docs/em/docs/benchmarks.md b/docs/em/docs/benchmarks.md new file mode 100644 index 0000000..003c3f6 --- /dev/null +++ b/docs/em/docs/benchmarks.md @@ -0,0 +1,34 @@ +# 📇 + +🔬 🇸🇲 📇 🎦 **FastAPI** 🈸 🏃‍♂ 🔽 Uvicorn 1️⃣ ⏩ 🐍 🛠️ 💪, 🕴 🔛 💃 & Uvicorn 👫 (⚙️ 🔘 FastAPI). (*) + +✋️ 🕐❔ ✅ 📇 & 🔺 👆 🔜 ✔️ 📄 🤯. + +## 📇 & 🚅 + +🕐❔ 👆 ✅ 📇, ⚫️ ⚠ 👀 📚 🧰 🎏 🆎 🔬 🌓. + +🎯, 👀 Uvicorn, 💃 & FastAPI 🔬 👯‍♂️ (👪 📚 🎏 🧰). + +🙅 ⚠ ❎ 🧰, 👍 🎭 ⚫️ 🔜 🤚. & 🏆 📇 🚫 💯 🌖 ⚒ 🚚 🧰. + +🔗 💖: + +* **Uvicorn**: 🔫 💽 + * **💃**: (⚙️ Uvicorn) 🕸 🕸 + * **FastAPI**: (⚙️ 💃) 🛠️ 🕸 ⏮️ 📚 🌖 ⚒ 🏗 🔗, ⏮️ 💽 🔬, ♒️. + +* **Uvicorn**: + * 🔜 ✔️ 🏆 🎭, ⚫️ 🚫 ✔️ 🌅 ➕ 📟 ↖️ ⚪️➡️ 💽 ⚫️. + * 👆 🚫🔜 ✍ 🈸 Uvicorn 🔗. 👈 🔜 ⛓ 👈 👆 📟 🔜 ✔️ 🔌 🌖 ⚖️ 🌘, 🌘, 🌐 📟 🚚 💃 (⚖️ **FastAPI**). & 🚥 👆 👈, 👆 🏁 🈸 🔜 ✔️ 🎏 🌥 ✔️ ⚙️ 🛠️ & 📉 👆 📱 📟 & 🐛. + * 🚥 👆 ⚖ Uvicorn, 🔬 ⚫️ 🛡 👸, Hypercorn, ✳, ♒️. 🈸 💽. +* **💃**: + * 🔜 ✔️ ⏭ 🏆 🎭, ⏮️ Uvicorn. 👐, 💃 ⚙️ Uvicorn 🏃. , ⚫️ 🎲 💪 🕴 🤚 "🐌" 🌘 Uvicorn ✔️ 🛠️ 🌅 📟. + * ✋️ ⚫️ 🚚 👆 🧰 🏗 🙅 🕸 🈸, ⏮️ 🕹 ⚓️ 🔛 ➡, ♒️. + * 🚥 👆 ⚖ 💃, 🔬 ⚫️ 🛡 🤣, 🏺, ✳, ♒️. 🕸 🛠️ (⚖️ 🕸). +* **FastAPI**: + * 🎏 🌌 👈 💃 ⚙️ Uvicorn & 🚫🔜 ⏩ 🌘 ⚫️, **FastAPI** ⚙️ 💃, ⚫️ 🚫🔜 ⏩ 🌘 ⚫️. + * FastAPI 🚚 🌅 ⚒ 🔛 🔝 💃. ⚒ 👈 👆 🌖 🕧 💪 🕐❔ 🏗 🔗, 💖 💽 🔬 & 🛠️. & ⚙️ ⚫️, 👆 🤚 🏧 🧾 🆓 (🏧 🧾 🚫 🚮 🌥 🏃‍♂ 🈸, ⚫️ 🏗 🔛 🕴). + * 🚥 👆 🚫 ⚙️ FastAPI & ⚙️ 💃 🔗 (⚖️ ➕1️⃣ 🧰, 💖 🤣, 🏺, 🆘, ♒️) 👆 🔜 ✔️ 🛠️ 🌐 💽 🔬 & 🛠️ 👆. , 👆 🏁 🈸 🔜 ✔️ 🎏 🌥 🚥 ⚫️ 🏗 ⚙️ FastAPI. & 📚 💼, 👉 💽 🔬 & 🛠️ 🦏 💸 📟 ✍ 🈸. + * , ⚙️ FastAPI 👆 ♻ 🛠️ 🕰, 🐛, ⏸ 📟, & 👆 🔜 🎲 🤚 🎏 🎭 (⚖️ 👍) 👆 🔜 🚥 👆 🚫 ⚙️ ⚫️ (👆 🔜 ✔️ 🛠️ ⚫️ 🌐 👆 📟). + * 🚥 👆 ⚖ FastAPI, 🔬 ⚫️ 🛡 🕸 🈸 🛠️ (⚖️ ⚒ 🧰) 👈 🚚 💽 🔬, 🛠️ & 🧾, 💖 🏺-apispec, NestJS, ♨, ♒️. 🛠️ ⏮️ 🛠️ 🏧 💽 🔬, 🛠️ & 🧾. diff --git a/docs/em/docs/deployment/concepts.md b/docs/em/docs/deployment/concepts.md new file mode 100644 index 0000000..bbb0172 --- /dev/null +++ b/docs/em/docs/deployment/concepts.md @@ -0,0 +1,323 @@ +# 🛠️ 🔧 + +🕐❔ 🛠️ **FastAPI** 🈸, ⚖️ 🤙, 🙆 🆎 🕸 🛠️, 📤 📚 🔧 👈 👆 🎲 💅 🔃, & ⚙️ 👫 👆 💪 🔎 **🏆 ☑** 🌌 **🛠️ 👆 🈸**. + +⚠ 🔧: + +* 💂‍♂ - 🇺🇸🔍 +* 🏃‍♂ 🔛 🕴 +* ⏏ +* 🧬 (🔢 🛠️ 🏃) +* 💾 +* ⏮️ 🔁 ⏭ ▶️ + +👥 🔜 👀 ❔ 👫 🔜 📉 **🛠️**. + +🔚, 🏆 🎯 💪 **🍦 👆 🛠️ 👩‍💻** 🌌 👈 **🔐**, **❎ 📉**, & ⚙️ **📊 ℹ** (🖼 🛰 💽/🕹 🎰) ♻ 💪. 👶 + +👤 🔜 💬 👆 🍖 🌖 🔃 👫 **🔧** 📥, & 👈 🔜 🤞 🤝 👆 **🤔** 👆 🔜 💪 💭 ❔ 🛠️ 👆 🛠️ 📶 🎏 🌐, 🎲 **🔮** 🕐 👈 🚫 🔀. + +🤔 👫 🔧, 👆 🔜 💪 **🔬 & 🔧** 🏆 🌌 🛠️ **👆 👍 🔗**. + +⏭ 📃, 👤 🔜 🤝 👆 🌅 **🧱 🍮** 🛠️ FastAPI 🈸. + +✋️ 🔜, ➡️ ✅ 👉 ⚠ **⚛ 💭**. 👫 🔧 ✔ 🙆 🎏 🆎 🕸 🛠️. 👶 + +## 💂‍♂ - 🇺🇸🔍 + +[⏮️ 📃 🔃 🇺🇸🔍](https.md){.internal-link target=_blank} 👥 🇭🇲 🔃 ❔ 🇺🇸🔍 🚚 🔐 👆 🛠️. + +👥 👀 👈 🇺🇸🔍 🛎 🚚 🦲 **🔢** 👆 🈸 💽, **🤝 ❎ 🗳**. + +& 📤 ✔️ 🕳 🈚 **♻ 🇺🇸🔍 📄**, ⚫️ 💪 🎏 🦲 ⚖️ ⚫️ 💪 🕳 🎏. + +### 🖼 🧰 🇺🇸🔍 + +🧰 👆 💪 ⚙️ 🤝 ❎ 🗳: + +* Traefik + * 🔁 🍵 📄 🔕 👶 +* 📥 + * 🔁 🍵 📄 🔕 👶 +* 👌 + * ⏮️ 🔢 🦲 💖 Certbot 📄 🔕 +* ✳ + * ⏮️ 🔢 🦲 💖 Certbot 📄 🔕 +* Kubernetes ⏮️ 🚧 🕹 💖 👌 + * ⏮️ 🔢 🦲 💖 🛂-👨‍💼 📄 🔕 +* 🍵 🔘 ☁ 🐕‍🦺 🍕 👫 🐕‍🦺 (✍ 🔛 👶) + +➕1️⃣ 🎛 👈 👆 💪 ⚙️ **☁ 🐕‍🦺** 👈 🔨 🌖 👷 ✅ ⚒ 🆙 🇺🇸🔍. ⚫️ 💪 ✔️ 🚫 ⚖️ 🈚 👆 🌅, ♒️. ✋️ 👈 💼, 👆 🚫🔜 ✔️ ⚒ 🆙 🤝 ❎ 🗳 👆. + +👤 🔜 🎦 👆 🧱 🖼 ⏭ 📃. + +--- + +⤴️ ⏭ 🔧 🤔 🌐 🔃 📋 🏃 👆 ☑ 🛠️ (✅ Uvicorn). + +## 📋 & 🛠️ + +👥 🔜 💬 📚 🔃 🏃 "**🛠️**", ⚫️ ⚠ ✔️ ☯ 🔃 ⚫️❔ ⚫️ ⛓, & ⚫️❔ 🔺 ⏮️ 🔤 "**📋**". + +### ⚫️❔ 📋 + +🔤 **📋** 🛎 ⚙️ 🔬 📚 👜: + +* **📟** 👈 👆 ✍, **🐍 📁**. +* **📁** 👈 💪 **🛠️** 🏃‍♂ ⚙️, 🖼: `python`, `python.exe` ⚖️ `uvicorn`. +* 🎯 📋 ⏪ ⚫️ **🏃‍♂** 🔛 🏗 ⚙️, ⚙️ 💽, & ♻ 👜 🔛 💾. 👉 🤙 **🛠️**. + +### ⚫️❔ 🛠️ + +🔤 **🛠️** 🛎 ⚙️ 🌖 🎯 🌌, 🕴 🔗 👜 👈 🏃 🏃‍♂ ⚙️ (💖 🏁 ☝ 🔛): + +* 🎯 📋 ⏪ ⚫️ **🏃‍♂** 🔛 🏃‍♂ ⚙️. + * 👉 🚫 🔗 📁, 🚫 📟, ⚫️ 🔗 **🎯** 👜 👈 ➖ **🛠️** & 🔄 🏃‍♂ ⚙️. +* 🙆 📋, 🙆 📟, **💪 🕴 👜** 🕐❔ ⚫️ ➖ **🛠️**. , 🕐❔ 📤 **🛠️ 🏃**. +* 🛠️ 💪 **❎** (⚖️ "💥") 👆, ⚖️ 🏃‍♂ ⚙️. 👈 ☝, ⚫️ ⛔️ 🏃/➖ 🛠️, & ⚫️ 💪 **🙅‍♂ 📏 👜**. +* 🔠 🈸 👈 👆 ✔️ 🏃 🔛 👆 💻 ✔️ 🛠️ ⛅ ⚫️, 🔠 🏃‍♂ 📋, 🔠 🚪, ♒️. & 📤 🛎 📚 🛠️ 🏃 **🎏 🕰** ⏪ 💻 🔛. +* 📤 💪 **💗 🛠️** **🎏 📋** 🏃 🎏 🕰. + +🚥 👆 ✅ 👅 "📋 👨‍💼" ⚖️ "⚙️ 🖥" (⚖️ 🎏 🧰) 👆 🏃‍♂ ⚙️, 👆 🔜 💪 👀 📚 👈 🛠️ 🏃‍♂. + +& , 🖼, 👆 🔜 🎲 👀 👈 📤 💗 🛠️ 🏃 🎏 🖥 📋 (🦎, 💄, 📐, ♒️). 👫 🛎 🏃 1️⃣ 🛠️ 📍 📑, ➕ 🎏 ➕ 🛠️. + + + +--- + +🔜 👈 👥 💭 🔺 🖖 ⚖ **🛠️** & **📋**, ➡️ 😣 💬 🔃 🛠️. + +## 🏃‍♂ 🔛 🕴 + +🌅 💼, 🕐❔ 👆 ✍ 🕸 🛠️, 👆 💚 ⚫️ **🕧 🏃‍♂**, ➡, 👈 👆 👩‍💻 💪 🕧 🔐 ⚫️. 👉 ↗️, 🚥 👆 ✔️ 🎯 🤔 ⚫️❔ 👆 💚 ⚫️ 🏃 🕴 🎯 ⚠, ✋️ 🌅 🕰 👆 💚 ⚫️ 🕧 🏃‍♂ & **💪**. + +### 🛰 💽 + +🕐❔ 👆 ⚒ 🆙 🛰 💽 (☁ 💽, 🕹 🎰, ♒️.) 🙅 👜 👆 💪 🏃 Uvicorn (⚖️ 🎏) ❎, 🎏 🌌 👆 🕐❔ 🛠️ 🌐. + +& ⚫️ 🔜 👷 & 🔜 ⚠ **⏮️ 🛠️**. + +✋️ 🚥 👆 🔗 💽 💸, **🏃‍♂ 🛠️** 🔜 🎲 ☠️. + +& 🚥 💽 ⏏ (🖼 ⏮️ ℹ, ⚖️ 🛠️ ⚪️➡️ ☁ 🐕‍🦺) 👆 🎲 **🏆 🚫 👀 ⚫️**. & ↩️ 👈, 👆 🏆 🚫 💭 👈 👆 ✔️ ⏏ 🛠️ ❎. , 👆 🛠️ 🔜 🚧 ☠️. 👶 + +### 🏃 🔁 🔛 🕴 + +🏢, 👆 🔜 🎲 💚 💽 📋 (✅ Uvicorn) ▶️ 🔁 🔛 💽 🕴, & 🍵 💪 🙆 **🗿 🏥**, ✔️ 🛠️ 🕧 🏃 ⏮️ 👆 🛠️ (✅ Uvicorn 🏃‍♂ 👆 FastAPI 📱). + +### 🎏 📋 + +🏆 👉, 👆 🔜 🛎 ✔️ **🎏 📋** 👈 🔜 ⚒ 💭 👆 🈸 🏃 🔛 🕴. & 📚 💼, ⚫️ 🔜 ⚒ 💭 🎏 🦲 ⚖️ 🈸 🏃, 🖼, 💽. + +### 🖼 🧰 🏃 🕴 + +🖼 🧰 👈 💪 👉 👨‍🏭: + +* ☁ +* Kubernetes +* ☁ ✍ +* ☁ 🐝 📳 +* ✳ +* 👨‍💻 +* 🍵 🔘 ☁ 🐕‍🦺 🍕 👫 🐕‍🦺 +* 🎏... + +👤 🔜 🤝 👆 🌅 🧱 🖼 ⏭ 📃. + +## ⏏ + +🎏 ⚒ 💭 👆 🈸 🏃 🔛 🕴, 👆 🎲 💚 ⚒ 💭 ⚫️ **⏏** ⏮️ ❌. + +### 👥 ⚒ ❌ + +👥, 🗿, ⚒ **❌**, 🌐 🕰. 🖥 🌖 *🕧* ✔️ **🐛** 🕵‍♂ 🎏 🥉. 👶 + +& 👥 👩‍💻 🚧 📉 📟 👥 🔎 👈 🐛 & 👥 🛠️ 🆕 ⚒ (🎲 ❎ 🆕 🐛 💁‍♂️ 👶). + +### 🤪 ❌ 🔁 🍵 + +🕐❔ 🏗 🕸 🔗 ⏮️ FastAPI, 🚥 📤 ❌ 👆 📟, FastAPI 🔜 🛎 🔌 ⚫️ 👁 📨 👈 ⏲ ❌. 🛡 + +👩‍💻 🔜 🤚 **5️⃣0️⃣0️⃣ 🔗 💽 ❌** 👈 📨, ✋️ 🈸 🔜 😣 👷 ⏭ 📨 ↩️ 💥 🍕. + +### 🦏 ❌ - 💥 + +👐, 📤 5️⃣📆 💼 🌐❔ 👥 ✍ 📟 👈 **💥 🎂 🈸** ⚒ Uvicorn & 🐍 💥. 👶 + +& , 👆 🔜 🎲 🚫 💚 🈸 🚧 ☠️ ↩️ 📤 ❌ 1️⃣ 🥉, 👆 🎲 💚 ⚫️ **😣 🏃** 🌘 *➡ 🛠️* 👈 🚫 💔. + +### ⏏ ⏮️ 💥 + +✋️ 👈 💼 ⏮️ 🤙 👎 ❌ 👈 💥 🏃‍♂ **🛠️**, 👆 🔜 💚 🔢 🦲 👈 🈚 **🔁** 🛠️, 🌘 👩‍❤‍👨 🕰... + +/// tip + +...👐 🚥 🎂 🈸 **💥 ⏪** ⚫️ 🎲 🚫 ⚒ 🔑 🚧 🔁 ⚫️ ♾. ✋️ 📚 💼, 👆 🔜 🎲 👀 ⚫️ ⏮️ 🛠️, ⚖️ 🌘 ▶️️ ⏮️ 🛠️. + +➡️ 🎯 🔛 👑 💼, 🌐❔ ⚫️ 💪 💥 🍕 🎯 💼 **🔮**, & ⚫️ ⚒ 🔑 ⏏ ⚫️. + +/// + +👆 🔜 🎲 💚 ✔️ 👜 🈚 🔁 👆 🈸 **🔢 🦲**, ↩️ 👈 ☝, 🎏 🈸 ⏮️ Uvicorn & 🐍 ⏪ 💥, 📤 🕳 🎏 📟 🎏 📱 👈 💪 🕳 🔃 ⚫️. + +### 🖼 🧰 ⏏ 🔁 + +🏆 💼, 🎏 🧰 👈 ⚙️ **🏃 📋 🔛 🕴** ⚙️ 🍵 🏧 **⏏**. + +🖼, 👉 💪 🍵: + +* ☁ +* Kubernetes +* ☁ ✍ +* ☁ 🐝 📳 +* ✳ +* 👨‍💻 +* 🍵 🔘 ☁ 🐕‍🦺 🍕 👫 🐕‍🦺 +* 🎏... + +## 🧬 - 🛠️ & 💾 + +⏮️ FastAPI 🈸, ⚙️ 💽 📋 💖 Uvicorn, 🏃‍♂ ⚫️ 🕐 **1️⃣ 🛠️** 💪 🍦 💗 👩‍💻 🔁. + +✋️ 📚 💼, 👆 🔜 💚 🏃 📚 👨‍🏭 🛠️ 🎏 🕰. + +### 💗 🛠️ - 👨‍🏭 + +🚥 👆 ✔️ 🌅 👩‍💻 🌘 ⚫️❔ 👁 🛠️ 💪 🍵 (🖼 🚥 🕹 🎰 🚫 💁‍♂️ 🦏) & 👆 ✔️ **💗 🐚** 💽 💽, ⤴️ 👆 💪 ✔️ **💗 🛠️** 🏃‍♂ ⏮️ 🎏 🈸 🎏 🕰, & 📎 🌐 📨 👪 👫. + +🕐❔ 👆 🏃 **💗 🛠️** 🎏 🛠️ 📋, 👫 🛎 🤙 **👨‍🏭**. + +### 👨‍🏭 🛠️ & ⛴ + +💭 ⚪️➡️ 🩺 [🔃 🇺🇸🔍](https.md){.internal-link target=_blank} 👈 🕴 1️⃣ 🛠️ 💪 👂 🔛 1️⃣ 🌀 ⛴ & 📢 📢 💽 ❓ + +👉 ☑. + +, 💪 ✔️ **💗 🛠️** 🎏 🕰, 📤 ✔️ **👁 🛠️ 👂 🔛 ⛴** 👈 ⤴️ 📶 📻 🔠 👨‍🏭 🛠️ 🌌. + +### 💾 📍 🛠️ + +🔜, 🕐❔ 📋 📐 👜 💾, 🖼, 🎰 🏫 🏷 🔢, ⚖️ 🎚 ⭕ 📁 🔢, 🌐 👈 **🍴 👄 💾 (💾)** 💽. + +& 💗 🛠️ 🛎 **🚫 💰 🙆 💾**. 👉 ⛓ 👈 🔠 🏃 🛠️ ✔️ 🚮 👍 👜, 🔢, & 💾. & 🚥 👆 😩 ⭕ 💸 💾 👆 📟, **🔠 🛠️** 🔜 🍴 🌓 💸 💾. + +### 💽 💾 + +🖼, 🚥 👆 📟 📐 🎰 🏫 🏷 ⏮️ **1️⃣ 💾 📐**, 🕐❔ 👆 🏃 1️⃣ 🛠️ ⏮️ 👆 🛠️, ⚫️ 🔜 🍴 🌘 1️⃣ 💾 💾. & 🚥 👆 ▶️ **4️⃣ 🛠️** (4️⃣ 👨‍🏭), 🔠 🔜 🍴 1️⃣ 💾 💾. 🌐, 👆 🛠️ 🔜 🍴 **4️⃣ 💾 💾**. + +& 🚥 👆 🛰 💽 ⚖️ 🕹 🎰 🕴 ✔️ 3️⃣ 💾 💾, 🔄 📐 🌅 🌘 4️⃣ 💾 💾 🔜 🤕 ⚠. 👶 + +### 💗 🛠️ - 🖼 + +👉 🖼, 📤 **👨‍💼 🛠️** 👈 ▶️ & 🎛 2️⃣ **👨‍🏭 🛠️**. + +👉 👨‍💼 🛠️ 🔜 🎲 1️⃣ 👂 🔛 **⛴** 📢. & ⚫️ 🔜 📶 🌐 📻 👨‍🏭 🛠️. + +👈 👨‍🏭 🛠️ 🔜 🕐 🏃‍♂ 👆 🈸, 👫 🔜 🎭 👑 📊 📨 **📨** & 📨 **📨**, & 👫 🔜 📐 🕳 👆 🚮 🔢 💾. + + + +& ↗️, 🎏 🎰 🔜 🎲 ✔️ **🎏 🛠️** 🏃 👍, ↖️ ⚪️➡️ 👆 🈸. + +😌 ℹ 👈 🌐 **💽 ⚙️** 🔠 🛠️ 💪 **🪀** 📚 🤭 🕰, ✋️ **💾 (💾)** 🛎 🚧 🌖 ⚖️ 🌘 **⚖**. + +🚥 👆 ✔️ 🛠️ 👈 🔨 ⭐ 💸 📊 🔠 🕰 & 👆 ✔️ 📚 👩‍💻, ⤴️ **💽 🛠️** 🔜 🎲 *⚖* (↩️ 🕧 🔜 🆙 & 🔽 🔜). + +### 🖼 🧬 🧰 & 🎛 + +📤 💪 📚 🎯 🏆 👉, & 👤 🔜 💬 👆 🌅 🔃 🎯 🎛 ⏭ 📃, 🖼 🕐❔ 💬 🔃 ☁ & 📦. + +👑 ⚛ 🤔 👈 📤 ✔️ **👁** 🦲 🚚 **⛴** **📢 📢**. & ⤴️ ⚫️ ✔️ ✔️ 🌌 **📶** 📻 🔁 **🛠️/👨‍🏭**. + +📥 💪 🌀 & 🎛: + +* **🐁** 🛠️ **Uvicorn 👨‍🏭** + * 🐁 🔜 **🛠️ 👨‍💼** 👂 🔛 **📢** & **⛴**, 🧬 🔜 ✔️ **💗 Uvicorn 👨‍🏭 🛠️** +* **Uvicorn** 🛠️ **Uvicorn 👨‍🏭** + * 1️⃣ Uvicorn **🛠️ 👨‍💼** 🔜 👂 🔛 **📢** & **⛴**, & ⚫️ 🔜 ▶️ **💗 Uvicorn 👨‍🏭 🛠️** +* **Kubernetes** & 🎏 📎 **📦 ⚙️** + * 🕳 **☁** 🧽 🔜 👂 🔛 **📢** & **⛴**. 🧬 🔜 ✔️ **💗 📦**, 🔠 ⏮️ **1️⃣ Uvicorn 🛠️** 🏃‍♂ +* **☁ 🐕‍🦺** 👈 🍵 👉 👆 + * ☁ 🐕‍🦺 🔜 🎲 **🍵 🧬 👆**. ⚫️ 🔜 🎲 ➡️ 👆 🔬 **🛠️ 🏃**, ⚖️ **📦 🖼** ⚙️, 🙆 💼, ⚫️ 🔜 🌅 🎲 **👁 Uvicorn 🛠️**, & ☁ 🐕‍🦺 🔜 🈚 🔁 ⚫️. + +/// tip + +🚫 😟 🚥 👫 🏬 🔃 **📦**, ☁, ⚖️ Kubernetes 🚫 ⚒ 📚 🔑. + +👤 🔜 💬 👆 🌅 🔃 📦 🖼, ☁, Kubernetes, ♒️. 🔮 📃: [FastAPI 📦 - ☁](docker.md){.internal-link target=_blank}. + +/// + +## ⏮️ 🔁 ⏭ ▶️ + +📤 📚 💼 🌐❔ 👆 💚 🎭 📶 **⏭ ▶️** 👆 🈸. + +🖼, 👆 💪 💚 🏃 **💽 🛠️**. + +✋️ 🌅 💼, 👆 🔜 💚 🎭 👉 🔁 🕴 **🕐**. + +, 👆 🔜 💚 ✔️ **👁 🛠️** 🎭 👈 **⏮️ 🔁**, ⏭ ▶️ 🈸. + +& 👆 🔜 ✔️ ⚒ 💭 👈 ⚫️ 👁 🛠️ 🏃 👈 ⏮️ 🔁 ** 🚥 ⏮️, 👆 ▶️ **💗 🛠️** (💗 👨‍🏭) 🈸 ⚫️. 🚥 👈 🔁 🏃 **💗 🛠️**, 👫 🔜 **❎** 👷 🏃‍♂ ⚫️ 🔛 **🔗**, & 🚥 📶 🕳 💎 💖 💽 🛠️, 👫 💪 🤕 ⚔ ⏮️ 🔠 🎏. + +↗️, 📤 💼 🌐❔ 📤 🙅‍♂ ⚠ 🏃 ⏮️ 🔁 💗 🕰, 👈 💼, ⚫️ 📚 ⏩ 🍵. + +/// tip + +, ✔️ 🤯 👈 ⚓️ 🔛 👆 🖥, 💼 👆 **5️⃣📆 🚫 💪 🙆 ⏮️ 🔁** ⏭ ▶️ 👆 🈸. + +👈 💼, 👆 🚫🔜 ✔️ 😟 🔃 🙆 👉. 🤷 + +/// + +### 🖼 ⏮️ 🔁 🎛 + +👉 🔜 **🪀 🙇** 🔛 🌌 👆 **🛠️ 👆 ⚙️**, & ⚫️ 🔜 🎲 🔗 🌌 👆 ▶️ 📋, 🚚 ⏏, ♒️. + +📥 💪 💭: + +* "🕑 📦" Kubernetes 👈 🏃 ⏭ 👆 📱 📦 +* 🎉 ✍ 👈 🏃 ⏮️ 🔁 & ⤴️ ▶️ 👆 🈸 + * 👆 🔜 💪 🌌 ▶️/⏏ *👈* 🎉 ✍, 🔍 ❌, ♒️. + +/// tip + +👤 🔜 🤝 👆 🌅 🧱 🖼 🔨 👉 ⏮️ 📦 🔮 📃: [FastAPI 📦 - ☁](docker.md){.internal-link target=_blank}. + +/// + +## ℹ 🛠️ + +👆 💽(Ⓜ) () **ℹ**, 👆 💪 🍴 ⚖️ **⚙️**, ⏮️ 👆 📋, 📊 🕰 🔛 💽, & 💾 💾 💪. + +❔ 🌅 ⚙️ ℹ 👆 💚 😩/♻ ❓ ⚫️ 💪 ⏩ 💭 "🚫 🌅", ✋️ 🌌, 👆 🔜 🎲 💚 🍴 **🌅 💪 🍵 💥**. + +🚥 👆 💸 3️⃣ 💽 ✋️ 👆 ⚙️ 🕴 🐥 🍖 👫 💾 & 💽, 👆 🎲 **🗑 💸** 👶, & 🎲 **🗑 💽 🔦 🏋️** 👶, ♒️. + +👈 💼, ⚫️ 💪 👻 ✔️ 🕴 2️⃣ 💽 & ⚙️ ↕ 🌐 👫 ℹ (💽, 💾, 💾, 🕸 💿, ♒️). + +🔛 🎏 ✋, 🚥 👆 ✔️ 2️⃣ 💽 & 👆 ⚙️ **1️⃣0️⃣0️⃣ 💯 👫 💽 & 💾**, ☝ 1️⃣ 🛠️ 🔜 💭 🌅 💾, & 💽 🔜 ✔️ ⚙️ 💾 "💾" (❔ 💪 💯 🕰 🐌), ⚖️ **💥**. ⚖️ 1️⃣ 🛠️ 💪 💪 📊 & 🔜 ✔️ ⌛ ⏭ 💽 🆓 🔄. + +👉 💼, ⚫️ 🔜 👍 🤚 **1️⃣ ➕ 💽** & 🏃 🛠️ 🔛 ⚫️ 👈 👫 🌐 ✔️ **🥃 💾 & 💽 🕰**. + +📤 🤞 👈 🤔 👆 ✔️ **🌵** ⚙️ 👆 🛠️. 🎲 ⚫️ 🚶 🦠, ⚖️ 🎲 🎏 🐕‍🦺 ⚖️ 🤖 ▶️ ⚙️ ⚫️. & 👆 💪 💚 ✔️ ➕ ℹ 🔒 👈 💼. + +👆 💪 🚮 **❌ 🔢** 🎯, 🖼, 🕳 **🖖 5️⃣0️⃣ 💯 9️⃣0️⃣ 💯** ℹ 🛠️. ☝ 👈 📚 🎲 👑 👜 👆 🔜 💚 ⚖ & ⚙️ ⚒ 👆 🛠️. + +👆 💪 ⚙️ 🙅 🧰 💖 `htop` 👀 💽 & 💾 ⚙️ 👆 💽 ⚖️ 💸 ⚙️ 🔠 🛠️. ⚖️ 👆 💪 ⚙️ 🌖 🏗 ⚖ 🧰, ❔ 5️⃣📆 📎 🤭 💽, ♒️. + +## 🌃 + +👆 ✔️ 👂 📥 👑 🔧 👈 👆 🔜 🎲 💪 ✔️ 🤯 🕐❔ 🤔 ❔ 🛠️ 👆 🈸: + +* 💂‍♂ - 🇺🇸🔍 +* 🏃‍♂ 🔛 🕴 +* ⏏ +* 🧬 (🔢 🛠️ 🏃) +* 💾 +* ⏮️ 🔁 ⏭ ▶️ + +🤔 👉 💭 & ❔ ✔ 👫 🔜 🤝 👆 🤔 💪 ✊ 🙆 🚫 🕐❔ 🛠️ & 🛠️ 👆 🛠️. 👶 + +⏭ 📄, 👤 🔜 🤝 👆 🌅 🧱 🖼 💪 🎛 👆 💪 ⏩. 👶 diff --git a/docs/em/docs/deployment/docker.md b/docs/em/docs/deployment/docker.md new file mode 100644 index 0000000..2152f1a --- /dev/null +++ b/docs/em/docs/deployment/docker.md @@ -0,0 +1,731 @@ +# FastAPI 📦 - ☁ + +🕐❔ 🛠️ FastAPI 🈸 ⚠ 🎯 🏗 **💾 📦 🖼**. ⚫️ 🛎 🔨 ⚙️ **☁**. 👆 💪 ⤴️ 🛠️ 👈 📦 🖼 1️⃣ 👩‍❤‍👨 💪 🌌. + +⚙️ 💾 📦 ✔️ 📚 📈 ✅ **💂‍♂**, **🔬**, **🦁**, & 🎏. + +/// tip + +🏃 & ⏪ 💭 👉 💩 ❓ 🦘 [`Dockerfile` 🔛 👶](#fastapi). + +/// + +
+📁 🎮 👶 + +```Dockerfile +FROM python:3.9 + +WORKDIR /code + +COPY ./requirements.txt /code/requirements.txt + +RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt + +COPY ./app /code/app + +CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80"] + +# If running behind a proxy like Nginx or Traefik add --proxy-headers +# CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80", "--proxy-headers"] +``` + +
+ +## ⚫️❔ 📦 + +📦 (✴️ 💾 📦) 📶 **💿** 🌌 📦 🈸 ✅ 🌐 👫 🔗 & 💪 📁 ⏪ 🚧 👫 ❎ ⚪️➡️ 🎏 📦 (🎏 🈸 ⚖️ 🦲) 🎏 ⚙️. + +💾 📦 🏃 ⚙️ 🎏 💾 💾 🦠 (🎰, 🕹 🎰, ☁ 💽, ♒️). 👉 ⛓ 👈 👫 📶 💿 (🔬 🌕 🕹 🎰 👍 🎂 🏃‍♂ ⚙️). + +👉 🌌, 📦 🍴 **🐥 ℹ**, 💸 ⭐ 🏃‍♂ 🛠️ 🔗 (🕹 🎰 🔜 🍴 🌅 🌅). + +📦 ✔️ 👫 👍 **❎** 🏃‍♂ 🛠️ (🛎 1️⃣ 🛠️), 📁 ⚙️, & 🕸, 🔬 🛠️, 💂‍♂, 🛠️, ♒️. + +## ⚫️❔ 📦 🖼 + +**📦** 🏃 ⚪️➡️ **📦 🖼**. + +📦 🖼 **🎻** ⏬ 🌐 📁, 🌐 🔢, & 🔢 📋/📋 👈 🔜 🎁 📦. **🎻** 📥 ⛓ 👈 📦 **🖼** 🚫 🏃, ⚫️ 🚫 ➖ 🛠️, ⚫️ 🕴 📦 📁 & 🗃. + +🔅 "**📦 🖼**" 👈 🏪 🎻 🎚,"**📦**" 🛎 🔗 🏃‍♂ 👐, 👜 👈 ➖ **🛠️**. + +🕐❔ **📦** ▶️ & 🏃‍♂ (▶️ ⚪️➡️ **📦 🖼**) ⚫️ 💪 ✍ ⚖️ 🔀 📁, 🌐 🔢, ♒️. 👈 🔀 🔜 🔀 🕴 👈 📦, ✋️ 🔜 🚫 😣 👽 📦 🖼 (🔜 🚫 🖊 💾). + +📦 🖼 ⭐ **📋** 📁 & 🎚, ✅ `python` & 📁 `main.py`. + +& **📦** ⚫️ (🔅 **📦 🖼**) ☑ 🏃 👐 🖼, ⭐ **🛠️**. 👐, 📦 🏃 🕴 🕐❔ ⚫️ ✔️ **🛠️ 🏃** (& 🛎 ⚫️ 🕴 👁 🛠️). 📦 ⛔️ 🕐❔ 📤 🙅‍♂ 🛠️ 🏃 ⚫️. + +## 📦 🖼 + +☁ ✔️ 1️⃣ 👑 🧰 ✍ & 🛠️ **📦 🖼** & **📦**. + +& 📤 📢 ☁ 🎡 ⏮️ 🏤-⚒ **🛂 📦 🖼** 📚 🧰, 🌐, 💽, & 🈸. + +🖼, 📤 🛂 🐍 🖼. + +& 📤 📚 🎏 🖼 🎏 👜 💖 💽, 🖼: + +* +* +* +* , ♒️. + +⚙️ 🏤-⚒ 📦 🖼 ⚫️ 📶 ⏩ **🌀** & ⚙️ 🎏 🧰. 🖼, 🔄 👅 🆕 💽. 🌅 💼, 👆 💪 ⚙️ **🛂 🖼**, & 🔗 👫 ⏮️ 🌐 🔢. + +👈 🌌, 📚 💼 👆 💪 💡 🔃 📦 & ☁ & 🏤-⚙️ 👈 💡 ⏮️ 📚 🎏 🧰 & 🦲. + +, 👆 🔜 🏃 **💗 📦** ⏮️ 🎏 👜, 💖 💽, 🐍 🈸, 🕸 💽 ⏮️ 😥 🕸 🈸, & 🔗 👫 👯‍♂️ 📨 👫 🔗 🕸. + +🌐 📦 🧾 ⚙️ (💖 ☁ ⚖️ Kubernetes) ✔️ 👫 🕸 ⚒ 🛠️ 🔘 👫. + +## 📦 & 🛠️ + +**📦 🖼** 🛎 🔌 🚮 🗃 🔢 📋 ⚖️ 📋 👈 🔜 🏃 🕐❔ **📦** ▶️ & 🔢 🚶‍♀️ 👈 📋. 📶 🎏 ⚫️❔ 🔜 🚥 ⚫️ 📋 ⏸. + +🕐❔ **📦** ▶️, ⚫️ 🔜 🏃 👈 📋/📋 (👐 👆 💪 🔐 ⚫️ & ⚒ ⚫️ 🏃 🎏 📋/📋). + +📦 🏃 📏 **👑 🛠️** (📋 ⚖️ 📋) 🏃. + +📦 🛎 ✔️ **👁 🛠️**, ✋️ ⚫️ 💪 ▶️ ✳ ⚪️➡️ 👑 🛠️, & 👈 🌌 👆 🔜 ✔️ **💗 🛠️** 🎏 📦. + +✋️ ⚫️ 🚫 💪 ✔️ 🏃‍♂ 📦 🍵 **🌘 1️⃣ 🏃‍♂ 🛠️**. 🚥 👑 🛠️ ⛔️, 📦 ⛔️. + +## 🏗 ☁ 🖼 FastAPI + +🆗, ➡️ 🏗 🕳 🔜 ❗ 👶 + +👤 🔜 🎦 👆 ❔ 🏗 **☁ 🖼** FastAPI **⚪️➡️ 🖌**, ⚓️ 🔛 **🛂 🐍** 🖼. + +👉 ⚫️❔ 👆 🔜 💚 **🏆 💼**, 🖼: + +* ⚙️ **Kubernetes** ⚖️ 🎏 🧰 +* 🕐❔ 🏃‍♂ 🔛 **🍓 👲** +* ⚙️ ☁ 🐕‍🦺 👈 🔜 🏃 📦 🖼 👆, ♒️. + +### 📦 📄 + +👆 🔜 🛎 ✔️ **📦 📄** 👆 🈸 📁. + +⚫️ 🔜 🪀 ✴️ 🔛 🧰 👆 ⚙️ **❎** 👈 📄. + +🌅 ⚠ 🌌 ⚫️ ✔️ 📁 `requirements.txt` ⏮️ 📦 📛 & 👫 ⏬, 1️⃣ 📍 ⏸. + +👆 🔜 ↗️ ⚙️ 🎏 💭 👆 ✍ [🔃 FastAPI ⏬](versions.md){.internal-link target=_blank} ⚒ ↔ ⏬. + +🖼, 👆 `requirements.txt` 💪 👀 💖: + +``` +fastapi>=0.68.0,<0.69.0 +pydantic>=1.8.0,<2.0.0 +uvicorn>=0.15.0,<0.16.0 +``` + +& 👆 🔜 🛎 ❎ 👈 📦 🔗 ⏮️ `pip`, 🖼: + +
+ +```console +$ pip install -r requirements.txt +---> 100% +Successfully installed fastapi pydantic uvicorn +``` + +
+ +/// info + +📤 🎏 📁 & 🧰 🔬 & ❎ 📦 🔗. + +👤 🔜 🎦 👆 🖼 ⚙️ 🎶 ⏪ 📄 🔛. 👶 + +/// + +### ✍ **FastAPI** 📟 + +* ✍ `app` 📁 & ⛔ ⚫️. +* ✍ 🛁 📁 `__init__.py`. +* ✍ `main.py` 📁 ⏮️: + +```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} +``` + +### 📁 + +🔜 🎏 🏗 📁 ✍ 📁 `Dockerfile` ⏮️: + +```{ .dockerfile .annotate } +# (1) +FROM python:3.9 + +# (2) +WORKDIR /code + +# (3) +COPY ./requirements.txt /code/requirements.txt + +# (4) +RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt + +# (5) +COPY ./app /code/app + +# (6) +CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80"] +``` + +1️⃣. ▶️ ⚪️➡️ 🛂 🐍 🧢 🖼. + +2️⃣. ⚒ ⏮️ 👷 📁 `/code`. + + 👉 🌐❔ 👥 🔜 🚮 `requirements.txt` 📁 & `app` 📁. + +3️⃣. 📁 📁 ⏮️ 📄 `/code` 📁. + + 📁 **🕴** 📁 ⏮️ 📄 🥇, 🚫 🎂 📟. + + 👉 📁 **🚫 🔀 🛎**, ☁ 🔜 🔍 ⚫️ & ⚙️ **💾** 👉 🔁, 🛠️ 💾 ⏭ 🔁 💁‍♂️. + +4️⃣. ❎ 📦 🔗 📄 📁. + + `--no-cache-dir` 🎛 💬 `pip` 🚫 🖊 ⏬ 📦 🌐, 👈 🕴 🚥 `pip` 🔜 🏃 🔄 ❎ 🎏 📦, ✋️ 👈 🚫 💼 🕐❔ 👷 ⏮️ 📦. + + /// note + + `--no-cache-dir` 🕴 🔗 `pip`, ⚫️ ✔️ 🕳 ⏮️ ☁ ⚖️ 📦. + + /// + + `--upgrade` 🎛 💬 `pip` ♻ 📦 🚥 👫 ⏪ ❎. + + ↩️ ⏮️ 🔁 🖨 📁 💪 🔍 **☁ 💾**, 👉 🔁 🔜 **⚙️ ☁ 💾** 🕐❔ 💪. + + ⚙️ 💾 👉 🔁 🔜 **🖊** 👆 📚 **🕰** 🕐❔ 🏗 🖼 🔄 & 🔄 ⏮️ 🛠️, ↩️ **⏬ & ❎** 🌐 🔗 **🔠 🕰**. + +5️⃣. 📁 `./app` 📁 🔘 `/code` 📁. + + 👉 ✔️ 🌐 📟 ❔ ⚫️❔ **🔀 🌅 🛎** ☁ **💾** 🏆 🚫 ⚙️ 👉 ⚖️ 🙆 **📄 🔁** 💪. + + , ⚫️ ⚠ 🚮 👉 **🏘 🔚** `Dockerfile`, 🔬 📦 🖼 🏗 🕰. + +6️⃣. ⚒ **📋** 🏃 `uvicorn` 💽. + + `CMD` ✊ 📇 🎻, 🔠 👫 🎻 ⚫️❔ 👆 🔜 🆎 📋 ⏸ 👽 🚀. + + 👉 📋 🔜 🏃 ⚪️➡️ **⏮️ 👷 📁**, 🎏 `/code` 📁 👆 ⚒ 🔛 ⏮️ `WORKDIR /code`. + + ↩️ 📋 🔜 ▶️ `/code` & 🔘 ⚫️ 📁 `./app` ⏮️ 👆 📟, **Uvicorn** 🔜 💪 👀 & **🗄** `app` ⚪️➡️ `app.main`. + +/// tip + +📄 ⚫️❔ 🔠 ⏸ 🔨 🖊 🔠 🔢 💭 📟. 👶 + +/// + +👆 🔜 🔜 ✔️ 📁 📊 💖: + +``` +. +├── app +│   ├── __init__.py +│ └── main.py +├── Dockerfile +└── requirements.txt +``` + +#### ⛅ 🤝 ❎ 🗳 + +🚥 👆 🏃‍♂ 👆 📦 ⛅ 🤝 ❎ 🗳 (📐 ⚙) 💖 👌 ⚖️ Traefik, 🚮 🎛 `--proxy-headers`, 👉 🔜 💬 Uvicorn 💙 🎚 📨 👈 🗳 💬 ⚫️ 👈 🈸 🏃 ⛅ 🇺🇸🔍, ♒️. + +```Dockerfile +CMD ["uvicorn", "app.main:app", "--proxy-headers", "--host", "0.0.0.0", "--port", "80"] +``` + +#### ☁ 💾 + +📤 ⚠ 🎱 👉 `Dockerfile`, 👥 🥇 📁 **📁 ⏮️ 🔗 😞**, 🚫 🎂 📟. ➡️ 👤 💬 👆 ⚫️❔ 👈. + +```Dockerfile +COPY ./requirements.txt /code/requirements.txt +``` + +☁ & 🎏 🧰 **🏗** 👉 📦 🖼 **🔁**, 🚮 **1️⃣ 🧽 🔛 🔝 🎏**, ▶️ ⚪️➡️ 🔝 `Dockerfile` & ❎ 🙆 📁 ✍ 🔠 👩‍🌾 `Dockerfile`. + +☁ & 🎏 🧰 ⚙️ **🔗 💾** 🕐❔ 🏗 🖼, 🚥 📁 🚫 🔀 ↩️ 🏁 🕰 🏗 📦 🖼, ⤴️ ⚫️ 🔜 **🏤-⚙️ 🎏 🧽** ✍ 🏁 🕰, ↩️ 🖨 📁 🔄 & 🏗 🆕 🧽 ⚪️➡️ 🖌. + +❎ 📁 📁 🚫 🎯 📉 👜 💁‍♂️ 🌅, ✋️ ↩️ ⚫️ ⚙️ 💾 👈 🔁, ⚫️ 💪 **⚙️ 💾 ⏭ 🔁**. 🖼, ⚫️ 💪 ⚙️ 💾 👩‍🌾 👈 ❎ 🔗 ⏮️: + +```Dockerfile +RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt +``` + +📁 ⏮️ 📦 📄 **🏆 🚫 🔀 🛎**. , 🖨 🕴 👈 📁, ☁ 🔜 💪 **⚙️ 💾** 👈 🔁. + +& ⤴️, ☁ 🔜 💪 **⚙️ 💾 ⏭ 🔁** 👈 ⏬ & ❎ 👈 🔗. & 📥 🌐❔ 👥 **🖊 📚 🕰**. 👶 ...& ❎ 😩 ⌛. 👶 👶 + +⏬ & ❎ 📦 🔗 **💪 ✊ ⏲**, ✋️ ⚙️ **💾** 🔜 **✊ 🥈** 🌅. + +& 👆 🔜 🏗 📦 🖼 🔄 & 🔄 ⏮️ 🛠️ ✅ 👈 👆 📟 🔀 👷, 📤 📚 📈 🕰 👉 🔜 🖊. + +⤴️, 🏘 🔚 `Dockerfile`, 👥 📁 🌐 📟. 👉 ⚫️❔ **🔀 🏆 🛎**, 👥 🚮 ⚫️ 🏘 🔚, ↩️ 🌖 🕧, 🕳 ⏮️ 👉 🔁 🔜 🚫 💪 ⚙️ 💾. + +```Dockerfile +COPY ./app /code/app +``` + +### 🏗 ☁ 🖼 + +🔜 👈 🌐 📁 🥉, ➡️ 🏗 📦 🖼. + +* 🚶 🏗 📁 (🌐❔ 👆 `Dockerfile` , ⚗ 👆 `app` 📁). +* 🏗 👆 FastAPI 🖼: + +
+ +```console +$ docker build -t myimage . + +---> 100% +``` + +
+ +/// tip + +👀 `.` 🔚, ⚫️ 🌓 `./`, ⚫️ 💬 ☁ 📁 ⚙️ 🏗 📦 🖼. + +👉 💼, ⚫️ 🎏 ⏮️ 📁 (`.`). + +/// + +### ▶️ ☁ 📦 + +* 🏃 📦 ⚓️ 🔛 👆 🖼: + +
+ +```console +$ docker run -d --name mycontainer -p 80:80 myimage +``` + +
+ +## ✅ ⚫️ + +👆 🔜 💪 ✅ ⚫️ 👆 ☁ 📦 📛, 🖼: http://192.168.99.100/items/5?q=somequery ⚖️ http://127.0.0.1/items/5?q=somequery (⚖️ 🌓, ⚙️ 👆 ☁ 🦠). + +👆 🔜 👀 🕳 💖: + +```JSON +{"item_id": 5, "q": "somequery"} +``` + +## 🎓 🛠️ 🩺 + +🔜 👆 💪 🚶 http://192.168.99.100/docs ⚖️ http://127.0.0.1/docs (⚖️ 🌓, ⚙️ 👆 ☁ 🦠). + +👆 🔜 👀 🏧 🎓 🛠️ 🧾 (🚚 🦁 🎚): + +![Swagger UI](https://fastapi.tiangolo.com/img/index/index-01-swagger-ui-simple.png) + +## 🎛 🛠️ 🩺 + +& 👆 💪 🚶 http://192.168.99.100/redoc ⚖️ http://127.0.0.1/redoc (⚖️ 🌓, ⚙️ 👆 ☁ 🦠). + +👆 🔜 👀 🎛 🏧 🧾 (🚚 📄): + +![ReDoc](https://fastapi.tiangolo.com/img/index/index-02-redoc-simple.png) + +## 🏗 ☁ 🖼 ⏮️ 👁-📁 FastAPI + +🚥 👆 FastAPI 👁 📁, 🖼, `main.py` 🍵 `./app` 📁, 👆 📁 📊 💪 👀 💖 👉: + +``` +. +├── Dockerfile +├── main.py +└── requirements.txt +``` + +⤴️ 👆 🔜 ✔️ 🔀 🔗 ➡ 📁 📁 🔘 `Dockerfile`: + +```{ .dockerfile .annotate hl_lines="10 13" } +FROM python:3.9 + +WORKDIR /code + +COPY ./requirements.txt /code/requirements.txt + +RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt + +# (1) +COPY ./main.py /code/ + +# (2) +CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80"] +``` + +1️⃣. 📁 `main.py` 📁 `/code` 📁 🔗 (🍵 🙆 `./app` 📁). + +2️⃣. 🏃 Uvicorn & 💬 ⚫️ 🗄 `app` 🎚 ⚪️➡️ `main` (↩️ 🏭 ⚪️➡️ `app.main`). + +⤴️ 🔆 Uvicorn 📋 ⚙️ 🆕 🕹 `main` ↩️ `app.main` 🗄 FastAPI 🎚 `app`. + +## 🛠️ 🔧 + +➡️ 💬 🔄 🔃 🎏 [🛠️ 🔧](concepts.md){.internal-link target=_blank} ⚖ 📦. + +📦 ✴️ 🧰 📉 🛠️ **🏗 & 🛠️** 🈸, ✋️ 👫 🚫 🛠️ 🎯 🎯 🍵 👉 **🛠️ 🔧**, & 📤 📚 💪 🎛. + +**👍 📰** 👈 ⏮️ 🔠 🎏 🎛 📤 🌌 📔 🌐 🛠️ 🔧. 👶 + +➡️ 📄 👉 **🛠️ 🔧** ⚖ 📦: + +* 🇺🇸🔍 +* 🏃‍♂ 🔛 🕴 +* ⏏ +* 🧬 (🔢 🛠️ 🏃) +* 💾 +* ⏮️ 🔁 ⏭ ▶️ + +## 🇺🇸🔍 + +🚥 👥 🎯 🔛 **📦 🖼** FastAPI 🈸 (& ⏪ 🏃‍♂ **📦**), 🇺🇸🔍 🛎 🔜 🍵 **🗜** ➕1️⃣ 🧰. + +⚫️ 💪 ➕1️⃣ 📦, 🖼 ⏮️ Traefik, 🚚 **🇺🇸🔍** & **🏧** 🛠️ **📄**. + +/// tip + +Traefik ✔️ 🛠️ ⏮️ ☁, Kubernetes, & 🎏, ⚫️ 📶 ⏩ ⚒ 🆙 & 🔗 🇺🇸🔍 👆 📦 ⏮️ ⚫️. + +/// + +👐, 🇺🇸🔍 💪 🍵 ☁ 🐕‍🦺 1️⃣ 👫 🐕‍🦺 (⏪ 🏃 🈸 📦). + +## 🏃‍♂ 🔛 🕴 & ⏏ + +📤 🛎 ➕1️⃣ 🧰 🈚 **▶️ & 🏃‍♂** 👆 📦. + +⚫️ 💪 **☁** 🔗, **☁ ✍**, **Kubernetes**, **☁ 🐕‍🦺**, ♒️. + +🌅 (⚖️ 🌐) 💼, 📤 🙅 🎛 🛠️ 🏃 📦 🔛 🕴 & 🛠️ ⏏ 🔛 ❌. 🖼, ☁, ⚫️ 📋 ⏸ 🎛 `--restart`. + +🍵 ⚙️ 📦, ⚒ 🈸 🏃 🔛 🕴 & ⏮️ ⏏ 💪 ⚠ & ⚠. ✋️ 🕐❔ **👷 ⏮️ 📦** 🌅 💼 👈 🛠️ 🔌 🔢. 👶 + +## 🧬 - 🔢 🛠️ + +🚥 👆 ✔️ 🌑 🎰 ⏮️ **☁**, ☁ 🐝 📳, 🖖, ⚖️ ➕1️⃣ 🎏 🏗 ⚙️ 🛠️ 📎 📦 🔛 💗 🎰, ⤴️ 👆 🔜 🎲 💚 **🍵 🧬** **🌑 🎚** ↩️ ⚙️ **🛠️ 👨‍💼** (💖 🐁 ⏮️ 👨‍🏭) 🔠 📦. + +1️⃣ 📚 📎 📦 🧾 ⚙️ 💖 Kubernetes 🛎 ✔️ 🛠️ 🌌 🚚 **🧬 📦** ⏪ 🔗 **📐 ⚖** 📨 📨. 🌐 **🌑 🎚**. + +📚 💼, 👆 🔜 🎲 💚 🏗 **☁ 🖼 ⚪️➡️ 🖌** [🔬 🔛](#_6), ❎ 👆 🔗, & 🏃‍♂ **👁 Uvicorn 🛠️** ↩️ 🏃‍♂ 🕳 💖 🐁 ⏮️ Uvicorn 👨‍🏭. + +### 📐 ⚙ + +🕐❔ ⚙️ 📦, 👆 🔜 🛎 ✔️ 🦲 **👂 🔛 👑 ⛴**. ⚫️ 💪 🎲 ➕1️⃣ 📦 👈 **🤝 ❎ 🗳** 🍵 **🇺🇸🔍** ⚖️ 🎏 🧰. + +👉 🦲 🔜 ✊ **📐** 📨 & 📎 👈 👪 👨‍🏭 (🤞) **⚖** 🌌, ⚫️ 🛎 🤙 **📐 ⚙**. + +/// tip + +🎏 **🤝 ❎ 🗳** 🦲 ⚙️ 🇺🇸🔍 🔜 🎲 **📐 ⚙**. + +/// + +& 🕐❔ 👷 ⏮️ 📦, 🎏 ⚙️ 👆 ⚙️ ▶️ & 🛠️ 👫 🔜 ⏪ ✔️ 🔗 🧰 📶 **🕸 📻** (✅ 🇺🇸🔍 📨) ⚪️➡️ 👈 **📐 ⚙** (👈 💪 **🤝 ❎ 🗳**) 📦(Ⓜ) ⏮️ 👆 📱. + +### 1️⃣ 📐 ⚙ - 💗 👨‍🏭 📦 + +🕐❔ 👷 ⏮️ **Kubernetes** ⚖️ 🎏 📎 📦 🧾 ⚙️, ⚙️ 👫 🔗 🕸 🛠️ 🔜 ✔ 👁 **📐 ⚙** 👈 👂 🔛 👑 **⛴** 📶 📻 (📨) 🎲 **💗 📦** 🏃 👆 📱. + +🔠 👫 📦 🏃‍♂ 👆 📱 🔜 🛎 ✔️ **1️⃣ 🛠️** (✅ Uvicorn 🛠️ 🏃 👆 FastAPI 🈸). 👫 🔜 🌐 **🌓 📦**, 🏃‍♂ 🎏 👜, ✋️ 🔠 ⏮️ 🚮 👍 🛠️, 💾, ♒️. 👈 🌌 👆 🔜 ✊ 📈 **🛠️** **🎏 🐚** 💽, ⚖️ **🎏 🎰**. + +& 📎 📦 ⚙️ ⏮️ **📐 ⚙** 🔜 **📎 📨** 🔠 1️⃣ 📦 ⏮️ 👆 📱 **🔄**. , 🔠 📨 💪 🍵 1️⃣ 💗 **🔁 📦** 🏃 👆 📱. + +& 🛎 👉 **📐 ⚙** 🔜 💪 🍵 📨 👈 🚶 *🎏* 📱 👆 🌑 (✅ 🎏 🆔, ⚖️ 🔽 🎏 📛 ➡ 🔡), & 🔜 📶 👈 📻 ▶️️ 📦 *👈 🎏* 🈸 🏃‍♂ 👆 🌑. + +### 1️⃣ 🛠️ 📍 📦 + +👉 🆎 😐, 👆 🎲 🔜 💚 ✔️ **👁 (Uvicorn) 🛠️ 📍 📦**, 👆 🔜 ⏪ 🚚 🧬 🌑 🎚. + +, 👉 💼, 👆 **🔜 🚫** 💚 ✔️ 🛠️ 👨‍💼 💖 🐁 ⏮️ Uvicorn 👨‍🏭, ⚖️ Uvicorn ⚙️ 🚮 👍 Uvicorn 👨‍🏭. 👆 🔜 💚 ✔️ **👁 Uvicorn 🛠️** 📍 📦 (✋️ 🎲 💗 📦). + +✔️ ➕1️⃣ 🛠️ 👨‍💼 🔘 📦 (🔜 ⏮️ 🐁 ⚖️ Uvicorn 🛠️ Uvicorn 👨‍🏭) 🔜 🕴 🚮 **🙃 🔀** 👈 👆 🌅 🎲 ⏪ ✊ 💅 ⏮️ 👆 🌑 ⚙️. + +### 📦 ⏮️ 💗 🛠️ & 🎁 💼 + +↗️, 📤 **🎁 💼** 🌐❔ 👆 💪 💚 ✔️ **📦** ⏮️ **🐁 🛠️ 👨‍💼** ▶️ 📚 **Uvicorn 👨‍🏭 🛠️** 🔘. + +📚 💼, 👆 💪 ⚙️ **🛂 ☁ 🖼** 👈 🔌 **🐁** 🛠️ 👨‍💼 🏃‍♂ 💗 **Uvicorn 👨‍🏭 🛠️**, & 🔢 ⚒ 🔆 🔢 👨‍🏭 ⚓️ 🔛 ⏮️ 💽 🐚 🔁. 👤 🔜 💬 👆 🌅 🔃 ⚫️ 🔛 [🛂 ☁ 🖼 ⏮️ 🐁 - Uvicorn](#-uvicorn). + +📥 🖼 🕐❔ 👈 💪 ⚒ 🔑: + +#### 🙅 📱 + +👆 💪 💚 🛠️ 👨‍💼 📦 🚥 👆 🈸 **🙅 🥃** 👈 👆 🚫 💪 (🐥 🚫) 👌-🎶 🔢 🛠️ 💁‍♂️ 🌅, & 👆 💪 ⚙️ 🏧 🔢 (⏮️ 🛂 ☁ 🖼), & 👆 🏃‍♂ ⚫️ 🔛 **👁 💽**, 🚫 🌑. + +#### ☁ ✍ + +👆 💪 🛠️ **👁 💽** (🚫 🌑) ⏮️ **☁ ✍**, 👆 🚫🔜 ✔️ ⏩ 🌌 🛠️ 🧬 📦 (⏮️ ☁ ✍) ⏪ 🛡 🔗 🕸 & **📐 ⚖**. + +⤴️ 👆 💪 💚 ✔️ **👁 📦** ⏮️ **🛠️ 👨‍💼** ▶️ **📚 👨‍🏭 🛠️** 🔘. + +#### 🤴 & 🎏 🤔 + +👆 💪 ✔️ **🎏 🤔** 👈 🔜 ⚒ ⚫️ ⏩ ✔️ **👁 📦** ⏮️ **💗 🛠️** ↩️ ✔️ **💗 📦** ⏮️ **👁 🛠️** 🔠 👫. + +🖼 (🪀 🔛 👆 🖥) 👆 💪 ✔️ 🧰 💖 🤴 🏭 🎏 📦 👈 🔜 ✔️ 🔐 **🔠 📨** 👈 👟. + +👉 💼, 🚥 👆 ✔️ **💗 📦**, 🔢, 🕐❔ 🤴 👟 **✍ ⚖**, ⚫️ 🔜 🤚 🕐 **👁 📦 🔠 🕰** (📦 👈 🍵 👈 🎯 📨), ↩️ 🤚 **📈 ⚖** 🌐 🔁 📦. + +⤴️, 👈 💼, ⚫️ 💪 🙅 ✔️ **1️⃣ 📦** ⏮️ **💗 🛠️**, & 🇧🇿 🧰 (✅ 🤴 🏭) 🔛 🎏 📦 📈 🤴 ⚖ 🌐 🔗 🛠️ & 🎦 👈 ⚖ 🔛 👈 👁 📦. + +--- + +👑 ☝, **👌** 👉 **🚫 ✍ 🗿** 👈 👆 ✔️ 😄 ⏩. 👆 💪 ⚙️ 👫 💭 **🔬 👆 👍 ⚙️ 💼** & 💭 ⚫️❔ 👍 🎯 👆 ⚙️, ✅ 👅 ❔ 🛠️ 🔧: + +* 💂‍♂ - 🇺🇸🔍 +* 🏃‍♂ 🔛 🕴 +* ⏏ +* 🧬 (🔢 🛠️ 🏃) +* 💾 +* ⏮️ 🔁 ⏭ ▶️ + +## 💾 + +🚥 👆 🏃 **👁 🛠️ 📍 📦** 👆 🔜 ✔️ 🌅 ⚖️ 🌘 👍-🔬, ⚖, & 📉 💸 💾 🍴 🔠 👈 📦 (🌅 🌘 1️⃣ 🚥 👫 🔁). + +& ⤴️ 👆 💪 ⚒ 👈 🎏 💾 📉 & 📄 👆 📳 👆 📦 🧾 ⚙️ (🖼 **Kubernetes**). 👈 🌌 ⚫️ 🔜 💪 **🔁 📦** **💪 🎰** ✊ 🔘 🏧 💸 💾 💪 👫, & 💸 💪 🎰 🌑. + +🚥 👆 🈸 **🙅**, 👉 🔜 🎲 **🚫 ⚠**, & 👆 💪 🚫 💪 ✔ 🏋️ 💾 📉. ✋️ 🚥 👆 **⚙️ 📚 💾** (🖼 ⏮️ **🎰 🏫** 🏷), 👆 🔜 ✅ ❔ 🌅 💾 👆 😩 & 🔆 **🔢 📦** 👈 🏃 **🔠 🎰** (& 🎲 🚮 🌖 🎰 👆 🌑). + +🚥 👆 🏃 **💗 🛠️ 📍 📦** (🖼 ⏮️ 🛂 ☁ 🖼) 👆 🔜 ✔️ ⚒ 💭 👈 🔢 🛠️ ▶️ 🚫 **🍴 🌖 💾** 🌘 ⚫️❔ 💪. + +## ⏮️ 🔁 ⏭ ▶️ & 📦 + +🚥 👆 ⚙️ 📦 (✅ ☁, Kubernetes), ⤴️ 📤 2️⃣ 👑 🎯 👆 💪 ⚙️. + +### 💗 📦 + +🚥 👆 ✔️ **💗 📦**, 🎲 🔠 1️⃣ 🏃 **👁 🛠️** (🖼, **Kubernetes** 🌑), ⤴️ 👆 🔜 🎲 💚 ✔️ **🎏 📦** 🔨 👷 **⏮️ 📶** 👁 📦, 🏃 👁 🛠️, **⏭** 🏃 🔁 👨‍🏭 📦. + +/// info + +🚥 👆 ⚙️ Kubernetes, 👉 🔜 🎲 🕑 📦. + +/// + +🚥 👆 ⚙️ 💼 📤 🙅‍♂ ⚠ 🏃‍♂ 👈 ⏮️ 📶 **💗 🕰 🔗** (🖼 🚥 👆 🚫 🏃 💽 🛠️, ✋️ ✅ 🚥 💽 🔜), ⤴️ 👆 💪 🚮 👫 🔠 📦 ▶️️ ⏭ ▶️ 👑 🛠️. + +### 👁 📦 + +🚥 👆 ✔️ 🙅 🖥, ⏮️ **👁 📦** 👈 ⤴️ ▶️ 💗 **👨‍🏭 🛠️** (⚖️ 1️⃣ 🛠️), ⤴️ 👆 💪 🏃 👈 ⏮️ 🔁 🎏 📦, ▶️️ ⏭ ▶️ 🛠️ ⏮️ 📱. 🛂 ☁ 🖼 🐕‍🦺 👉 🔘. + +## 🛂 ☁ 🖼 ⏮️ 🐁 - Uvicorn + +📤 🛂 ☁ 🖼 👈 🔌 🐁 🏃‍♂ ⏮️ Uvicorn 👨‍🏭, ℹ ⏮️ 📃: [💽 👨‍🏭 - 🐁 ⏮️ Uvicorn](server-workers.md){.internal-link target=_blank}. + +👉 🖼 🔜 ⚠ ✴️ ⚠ 🔬 🔛: [📦 ⏮️ 💗 🛠️ & 🎁 💼](#_18). + +* tiangolo/uvicorn-🐁-fastapi. + +/// warning + +📤 ↕ 🤞 👈 👆 **🚫** 💪 👉 🧢 🖼 ⚖️ 🙆 🎏 🎏 1️⃣, & 🔜 👻 📆 🏗 🖼 ⚪️➡️ 🖌 [🔬 🔛: 🏗 ☁ 🖼 FastAPI](#fastapi). + +/// + +👉 🖼 ✔️ **🚘-📳** 🛠️ 🔌 ⚒ **🔢 👨‍🏭 🛠️** ⚓️ 🔛 💽 🐚 💪. + +⚫️ ✔️ **🤔 🔢**, ✋️ 👆 💪 🔀 & ℹ 🌐 📳 ⏮️ **🌐 🔢** ⚖️ 📳 📁. + +⚫️ 🐕‍🦺 🏃 **⏮️ 🔁 ⏭ ▶️** ⏮️ ✍. + +/// tip + +👀 🌐 📳 & 🎛, 🚶 ☁ 🖼 📃: Tiangolo/uvicorn-🐁-fastapi. + +/// + +### 🔢 🛠️ 🔛 🛂 ☁ 🖼 + +**🔢 🛠️** 🔛 👉 🖼 **📊 🔁** ⚪️➡️ 💽 **🐚** 💪. + +👉 ⛓ 👈 ⚫️ 🔜 🔄 **🗜** 🌅 **🎭** ⚪️➡️ 💽 💪. + +👆 💪 🔆 ⚫️ ⏮️ 📳 ⚙️ **🌐 🔢**, ♒️. + +✋️ ⚫️ ⛓ 👈 🔢 🛠️ 🪀 🔛 💽 📦 🏃, **💸 💾 🍴** 🔜 🪀 🔛 👈. + +, 🚥 👆 🈸 🍴 📚 💾 (🖼 ⏮️ 🎰 🏫 🏷), & 👆 💽 ✔️ 📚 💽 🐚 **✋️ 🐥 💾**, ⤴️ 👆 📦 💪 🔚 🆙 🔄 ⚙️ 🌅 💾 🌘 ⚫️❔ 💪, & 🤕 🎭 📚 (⚖️ 💥). 👶 + +### ✍ `Dockerfile` + +📥 ❔ 👆 🔜 ✍ `Dockerfile` ⚓️ 🔛 👉 🖼: + +```Dockerfile +FROM tiangolo/uvicorn-gunicorn-fastapi:python3.9 + +COPY ./requirements.txt /app/requirements.txt + +RUN pip install --no-cache-dir --upgrade -r /app/requirements.txt + +COPY ./app /app +``` + +### 🦏 🈸 + +🚥 👆 ⏩ 📄 🔃 🏗 [🦏 🈸 ⏮️ 💗 📁](../tutorial/bigger-applications.md){.internal-link target=_blank}, 👆 `Dockerfile` 💪 ↩️ 👀 💖: + +```Dockerfile hl_lines="7" +FROM tiangolo/uvicorn-gunicorn-fastapi:python3.9 + +COPY ./requirements.txt /app/requirements.txt + +RUN pip install --no-cache-dir --upgrade -r /app/requirements.txt + +COPY ./app /app/app +``` + +### 🕐❔ ⚙️ + +👆 🔜 🎲 **🚫** ⚙️ 👉 🛂 🧢 🖼 (⚖️ 🙆 🎏 🎏 1️⃣) 🚥 👆 ⚙️ **Kubernetes** (⚖️ 🎏) & 👆 ⏪ ⚒ **🧬** 🌑 🎚, ⏮️ 💗 **📦**. 📚 💼, 👆 👍 📆 **🏗 🖼 ⚪️➡️ 🖌** 🔬 🔛: [🏗 ☁ 🖼 FastAPI](#fastapi). + +👉 🖼 🔜 ⚠ ✴️ 🎁 💼 🔬 🔛 [📦 ⏮️ 💗 🛠️ & 🎁 💼](#_18). 🖼, 🚥 👆 🈸 **🙅 🥃** 👈 ⚒ 🔢 🔢 🛠️ ⚓️ 🔛 💽 👷 👍, 👆 🚫 💚 😥 ⏮️ ❎ 🛠️ 🧬 🌑 🎚, & 👆 🚫 🏃 🌅 🌘 1️⃣ 📦 ⏮️ 👆 📱. ⚖️ 🚥 👆 🛠️ ⏮️ **☁ ✍**, 🏃 🔛 👁 💽, ♒️. + +## 🛠️ 📦 🖼 + +⏮️ ✔️ 📦 (☁) 🖼 📤 📚 🌌 🛠️ ⚫️. + +🖼: + +* ⏮️ **☁ ✍** 👁 💽 +* ⏮️ **Kubernetes** 🌑 +* ⏮️ ☁ 🐝 📳 🌑 +* ⏮️ ➕1️⃣ 🧰 💖 🖖 +* ⏮️ ☁ 🐕‍🦺 👈 ✊ 👆 📦 🖼 & 🛠️ ⚫️ + +## ☁ 🖼 ⏮️ 🎶 + +🚥 👆 ⚙️ 🎶 🛠️ 👆 🏗 🔗, 👆 💪 ⚙️ ☁ 👁-▶️ 🏗: + +```{ .dockerfile .annotate } +# (1) +FROM python:3.9 as requirements-stage + +# (2) +WORKDIR /tmp + +# (3) +RUN pip install poetry + +# (4) +COPY ./pyproject.toml ./poetry.lock* /tmp/ + +# (5) +RUN poetry export -f requirements.txt --output requirements.txt --without-hashes + +# (6) +FROM python:3.9 + +# (7) +WORKDIR /code + +# (8) +COPY --from=requirements-stage /tmp/requirements.txt /code/requirements.txt + +# (9) +RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt + +# (10) +COPY ./app /code/app + +# (11) +CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80"] +``` + +1️⃣. 👉 🥇 ▶️, ⚫️ 🌟 `requirements-stage`. + +2️⃣. ⚒ `/tmp` ⏮️ 👷 📁. + + 📥 🌐❔ 👥 🔜 🏗 📁 `requirements.txt` + +3️⃣. ❎ 🎶 👉 ☁ ▶️. + +4️⃣. 📁 `pyproject.toml` & `poetry.lock` 📁 `/tmp` 📁. + + ↩️ ⚫️ ⚙️ `./poetry.lock*` (▶️ ⏮️ `*`), ⚫️ 🏆 🚫 💥 🚥 👈 📁 🚫 💪. + +5️⃣. 🏗 `requirements.txt` 📁. + +6️⃣. 👉 🏁 ▶️, 🕳 📥 🔜 🛡 🏁 📦 🖼. + +7️⃣. ⚒ ⏮️ 👷 📁 `/code`. + +8️⃣. 📁 `requirements.txt` 📁 `/code` 📁. + + 👉 📁 🕴 🖖 ⏮️ ☁ ▶️, 👈 ⚫️❔ 👥 ⚙️ `--from-requirements-stage` 📁 ⚫️. + +9️⃣. ❎ 📦 🔗 🏗 `requirements.txt` 📁. + +1️⃣0️⃣. 📁 `app` 📁 `/code` 📁. + +1️⃣1️⃣. 🏃 `uvicorn` 📋, 💬 ⚫️ ⚙️ `app` 🎚 🗄 ⚪️➡️ `app.main`. + +/// tip + +🖊 💭 🔢 👀 ⚫️❔ 🔠 ⏸ 🔨. + +/// + +**☁ ▶️** 🍕 `Dockerfile` 👈 👷 **🍕 📦 🖼** 👈 🕴 ⚙️ 🏗 📁 ⚙️ ⏪. + +🥇 ▶️ 🔜 🕴 ⚙️ **❎ 🎶** & **🏗 `requirements.txt`** ⏮️ 👆 🏗 🔗 ⚪️➡️ 🎶 `pyproject.toml` 📁. + +👉 `requirements.txt` 📁 🔜 ⚙️ ⏮️ `pip` ⏪ **⏭ ▶️**. + +🏁 📦 🖼 **🕴 🏁 ▶️** 🛡. ⏮️ ▶️(Ⓜ) 🔜 ❎. + +🕐❔ ⚙️ 🎶, ⚫️ 🔜 ⚒ 🔑 ⚙️ **☁ 👁-▶️ 🏗** ↩️ 👆 🚫 🤙 💪 ✔️ 🎶 & 🚮 🔗 ❎ 🏁 📦 🖼, 👆 **🕴 💪** ✔️ 🏗 `requirements.txt` 📁 ❎ 👆 🏗 🔗. + +⤴️ ⏭ (& 🏁) ▶️ 👆 🔜 🏗 🖼 🌅 ⚖️ 🌘 🎏 🌌 🔬 ⏭. + +### ⛅ 🤝 ❎ 🗳 - 🎶 + +🔄, 🚥 👆 🏃‍♂ 👆 📦 ⛅ 🤝 ❎ 🗳 (📐 ⚙) 💖 👌 ⚖️ Traefik, 🚮 🎛 `--proxy-headers` 📋: + +```Dockerfile +CMD ["uvicorn", "app.main:app", "--proxy-headers", "--host", "0.0.0.0", "--port", "80"] +``` + +## 🌃 + +⚙️ 📦 ⚙️ (✅ ⏮️ **☁** & **Kubernetes**) ⚫️ ▶️️ 📶 🎯 🍵 🌐 **🛠️ 🔧**: + +* 🇺🇸🔍 +* 🏃‍♂ 🔛 🕴 +* ⏏ +* 🧬 (🔢 🛠️ 🏃) +* 💾 +* ⏮️ 🔁 ⏭ ▶️ + +🌅 💼, 👆 🎲 🏆 🚫 💚 ⚙️ 🙆 🧢 🖼, & ↩️ **🏗 📦 🖼 ⚪️➡️ 🖌** 1️⃣ ⚓️ 🔛 🛂 🐍 ☁ 🖼. + +✊ 💅 **✔** 👩‍🌾 `Dockerfile` & **☁ 💾** 👆 💪 **📉 🏗 🕰**, 📉 👆 📈 (& ❎ 😩). 👶 + +🎯 🎁 💼, 👆 💪 💚 ⚙️ 🛂 ☁ 🖼 FastAPI. 👶 diff --git a/docs/em/docs/deployment/https.md b/docs/em/docs/deployment/https.md new file mode 100644 index 0000000..6d2641a --- /dev/null +++ b/docs/em/docs/deployment/https.md @@ -0,0 +1,199 @@ +# 🔃 🇺🇸🔍 + +⚫️ ⏩ 🤔 👈 🇺🇸🔍 🕳 👈 "🛠️" ⚖️ 🚫. + +✋️ ⚫️ 🌌 🌖 🏗 🌘 👈. + +/// tip + +🚥 👆 🏃 ⚖️ 🚫 💅, 😣 ⏮️ ⏭ 📄 🔁 🔁 👩‍🌾 ⚒ 🌐 🆙 ⏮️ 🎏 ⚒. + +/// + +**💡 🔰 🇺🇸🔍**, ⚪️➡️ 🏬 🤔, ✅ https://howhttps.works/. + +🔜, ⚪️➡️ **👩‍💻 🤔**, 📥 📚 👜 ✔️ 🤯 ⏪ 💭 🔃 🇺🇸🔍: + +* 🇺🇸🔍, **💽** 💪 **✔️ "📄"** 🏗 **🥉 🥳**. + * 📚 📄 🤙 **🏆** ⚪️➡️ 🥉 🥳, 🚫 "🏗". +* 📄 ✔️ **1️⃣2️⃣🗓️**. + * 👫 **🕛**. + * & ⤴️ 👫 💪 **♻**, **🏆 🔄** ⚪️➡️ 🥉 🥳. +* 🔐 🔗 🔨 **🕸 🎚**. + * 👈 1️⃣ 🧽 **🔛 🇺🇸🔍**. + * , **📄 & 🔐** 🍵 🔨 **⏭ 🇺🇸🔍**. +* **🕸 🚫 💭 🔃 "🆔"**. 🕴 🔃 📢 📢. + * ℹ 🔃 **🎯 🆔** 📨 🚶 **🇺🇸🔍 💽**. +* **🇺🇸🔍 📄** "✔" **🎯 🆔**, ✋️ 🛠️ & 🔐 🔨 🕸 🎚, **⏭ 💭** ❔ 🆔 ➖ 🙅 ⏮️. +* **🔢**, 👈 🔜 ⛓ 👈 👆 💪 🕴 ✔️ **1️⃣ 🇺🇸🔍 📄 📍 📢 📢**. + * 🙅‍♂ 🤔 ❔ 🦏 👆 💽 ⚖️ ❔ 🤪 🔠 🈸 👆 ✔️ 🔛 ⚫️ 💪. + * 📤 **⚗** 👉, 👐. +* 📤 **↔** **🤝** 🛠️ (1️⃣ 🚚 🔐 🕸 🎚, ⏭ 🇺🇸🔍) 🤙 **👲**. + * 👉 👲 ↔ ✔ 1️⃣ 👁 💽 (⏮️ **👁 📢 📢**) ✔️ **📚 🇺🇸🔍 📄** & 🍦 **💗 🇺🇸🔍 🆔/🈸**. + * 👉 👷, **👁** 🦲 (📋) 🏃 🔛 💽, 👂 🔛 **📢 📢 📢**, 🔜 ✔️ **🌐 🇺🇸🔍 📄** 💽. +* **⏮️** 🏆 🔐 🔗, 📻 🛠️ **🇺🇸🔍**. + * 🎚 **🗜**, ✋️ 👫 ➖ 📨 ⏮️ **🇺🇸🔍 🛠️**. + +⚫️ ⚠ 💡 ✔️ **1️⃣ 📋/🇺🇸🔍 💽** 🏃 🔛 💽 (🎰, 🦠, ♒️.) & **🛠️ 🌐 🇺🇸🔍 🍕**: 📨 **🗜 🇺🇸🔍 📨**, 📨 **🗜 🇺🇸🔍 📨** ☑ 🇺🇸🔍 🈸 🏃 🎏 💽 ( **FastAPI** 🈸, 👉 💼), ✊ **🇺🇸🔍 📨** ⚪️➡️ 🈸, **🗜 ⚫️** ⚙️ ☑ **🇺🇸🔍 📄** & 📨 ⚫️ 🔙 👩‍💻 ⚙️ **🇺🇸🔍**. 👉 💽 🛎 🤙 **🤝 ❎ 🗳**. + +🎛 👆 💪 ⚙️ 🤝 ❎ 🗳: + +* Traefik (👈 💪 🍵 📄 🔕) +* 📥 (👈 💪 🍵 📄 🔕) +* 👌 +* ✳ + +## ➡️ 🗜 + +⏭ ➡️ 🗜, 👫 **🇺🇸🔍 📄** 💲 💙 🥉 🥳. + +🛠️ 📎 1️⃣ 👫 📄 ⚙️ ⚠, 🚚 📠 & 📄 😥. + +✋️ ⤴️ **➡️ 🗜** ✍. + +⚫️ 🏗 ⚪️➡️ 💾 🏛. ⚫️ 🚚 **🇺🇸🔍 📄 🆓**, 🏧 🌌. 👫 📄 ⚙️ 🌐 🐩 🔐 💂‍♂, & 📏-🖖 (🔃 3️⃣ 🗓️), **💂‍♂ 🤙 👍** ↩️ 👫 📉 🔆. + +🆔 🔐 ✔ & 📄 🏗 🔁. 👉 ✔ 🏧 🔕 👫 📄. + +💭 🏧 🛠️ & 🔕 👫 📄 👈 👆 💪 ✔️ **🔐 🇺🇸🔍, 🆓, ♾**. + +## 🇺🇸🔍 👩‍💻 + +📥 🖼 ❔ 🇺🇸🔍 🛠️ 💪 👀 💖, 🔁 🔁, 💸 🙋 ✴️ 💭 ⚠ 👩‍💻. + +### 🆔 📛 + +⚫️ 🔜 🎲 🌐 ▶️ 👆 **🏗** **🆔 📛**. ⤴️, 👆 🔜 🔗 ⚫️ 🏓 💽 (🎲 👆 🎏 ☁ 🐕‍🦺). + +👆 🔜 🎲 🤚 ☁ 💽 (🕹 🎰) ⚖️ 🕳 🎏, & ⚫️ 🔜 ✔️ 🔧 **📢 📢 📢**. + +🏓 💽(Ⓜ) 👆 🔜 🔗 ⏺ ("`A record`") ☝ **👆 🆔** 📢 **📢 📢 👆 💽**. + +👆 🔜 🎲 👉 🕐, 🥇 🕰, 🕐❔ ⚒ 🌐 🆙. + +/// tip + +👉 🆔 📛 🍕 🌌 ⏭ 🇺🇸🔍, ✋️ 🌐 🪀 🔛 🆔 & 📢 📢, ⚫️ 💸 💬 ⚫️ 📥. + +/// + +### 🏓 + +🔜 ➡️ 🎯 🔛 🌐 ☑ 🇺🇸🔍 🍕. + +🥇, 🖥 🔜 ✅ ⏮️ **🏓 💽** ⚫️❔ **📢 🆔**, 👉 💼, `someapp.example.com`. + +🏓 💽 🔜 💬 🖥 ⚙️ 🎯 **📢 📢**. 👈 🔜 📢 📢 📢 ⚙️ 👆 💽, 👈 👆 🔗 🏓 💽. + + + +### 🤝 🤝 ▶️ + +🖥 🔜 ⤴️ 🔗 ⏮️ 👈 📢 📢 🔛 **⛴ 4️⃣4️⃣3️⃣** (🇺🇸🔍 ⛴). + +🥇 🍕 📻 🛠️ 🔗 🖖 👩‍💻 & 💽 & 💭 🔐 🔑 👫 🔜 ⚙️, ♒️. + + + +👉 🔗 🖖 👩‍💻 & 💽 🛠️ 🤝 🔗 🤙 **🤝 🤝**. + +### 🤝 ⏮️ 👲 ↔ + +**🕴 1️⃣ 🛠️** 💽 💪 👂 🔛 🎯 **⛴** 🎯 **📢 📢**. 📤 💪 🎏 🛠️ 👂 🔛 🎏 ⛴ 🎏 📢 📢, ✋️ 🕴 1️⃣ 🔠 🌀 📢 📢 & ⛴. + +🤝 (🇺🇸🔍) ⚙️ 🎯 ⛴ `443` 🔢. 👈 ⛴ 👥 🔜 💪. + +🕴 1️⃣ 🛠️ 💪 👂 🔛 👉 ⛴, 🛠️ 👈 🔜 ⚫️ 🔜 **🤝 ❎ 🗳**. + +🤝 ❎ 🗳 🔜 ✔️ 🔐 1️⃣ ⚖️ 🌅 **🤝 📄** (🇺🇸🔍 📄). + +⚙️ **👲 ↔** 🔬 🔛, 🤝 ❎ 🗳 🔜 ✅ ❔ 🤝 (🇺🇸🔍) 📄 💪 ⚫️ 🔜 ⚙️ 👉 🔗, ⚙️ 1️⃣ 👈 🏏 🆔 📈 👩‍💻. + +👉 💼, ⚫️ 🔜 ⚙️ 📄 `someapp.example.com`. + + + +👩‍💻 ⏪ **💙** 👨‍💼 👈 🏗 👈 🤝 📄 (👉 💼 ➡️ 🗜, ✋️ 👥 🔜 👀 🔃 👈 ⏪), ⚫️ 💪 **✔** 👈 📄 ☑. + +⤴️, ⚙️ 📄, 👩‍💻 & 🤝 ❎ 🗳 **💭 ❔ 🗜** 🎂 **🕸 📻**. 👉 🏁 **🤝 🤝** 🍕. + +⏮️ 👉, 👩‍💻 & 💽 ✔️ **🗜 🕸 🔗**, 👉 ⚫️❔ 🤝 🚚. & ⤴️ 👫 💪 ⚙️ 👈 🔗 ▶️ ☑ **🇺🇸🔍 📻**. + +& 👈 ⚫️❔ **🇺🇸🔍** , ⚫️ ✅ **🇺🇸🔍** 🔘 **🔐 🤝 🔗** ↩️ 😁 (💽) 🕸 🔗. + +/// tip + +👀 👈 🔐 📻 🔨 **🕸 🎚**, 🚫 🇺🇸🔍 🎚. + +/// + +### 🇺🇸🔍 📨 + +🔜 👈 👩‍💻 & 💽 (🎯 🖥 & 🤝 ❎ 🗳) ✔️ **🗜 🕸 🔗**, 👫 💪 ▶️ **🇺🇸🔍 📻**. + +, 👩‍💻 📨 **🇺🇸🔍 📨**. 👉 🇺🇸🔍 📨 🔘 🗜 🤝 🔗. + + + +### 🗜 📨 + +🤝 ❎ 🗳 🔜 ⚙️ 🔐 ✔ **🗜 📨**, & 🔜 📶 **✅ (🗜) 🇺🇸🔍 📨** 🛠️ 🏃 🈸 (🖼 🛠️ ⏮️ Uvicorn 🏃‍♂ FastAPI 🈸). + + + +### 🇺🇸🔍 📨 + +🈸 🔜 🛠️ 📨 & 📨 **✅ (💽) 🇺🇸🔍 📨** 🤝 ❎ 🗳. + + + +### 🇺🇸🔍 📨 + +🤝 ❎ 🗳 🔜 ⤴️ **🗜 📨** ⚙️ ⚛ ✔ ⏭ (👈 ▶️ ⏮️ 📄 `someapp.example.com`), & 📨 ⚫️ 🔙 🖥. + +⏭, 🖥 🔜 ✔ 👈 📨 ☑ & 🗜 ⏮️ ▶️️ 🔐 🔑, ♒️. ⚫️ 🔜 ⤴️ **🗜 📨** & 🛠️ ⚫️. + + + +👩‍💻 (🖥) 🔜 💭 👈 📨 👟 ⚪️➡️ ☑ 💽 ↩️ ⚫️ ⚙️ ⚛ 👫 ✔ ⚙️ **🇺🇸🔍 📄** ⏭. + +### 💗 🈸 + +🎏 💽 (⚖️ 💽), 📤 💪 **💗 🈸**, 🖼, 🎏 🛠️ 📋 ⚖️ 💽. + +🕴 1️⃣ 🛠️ 💪 🚚 🎯 📢 & ⛴ (🤝 ❎ 🗳 👆 🖼) ✋️ 🎏 🈸/🛠️ 💪 🏃 🔛 💽(Ⓜ) 💁‍♂️, 📏 👫 🚫 🔄 ⚙️ 🎏 **🌀 📢 📢 & ⛴**. + + + +👈 🌌, 🤝 ❎ 🗳 💪 🍵 🇺🇸🔍 & 📄 **💗 🆔**, 💗 🈸, & ⤴️ 📶 📨 ▶️️ 🈸 🔠 💼. + +### 📄 🔕 + +☝ 🔮, 🔠 📄 🔜 **🕛** (🔃 3️⃣ 🗓️ ⏮️ 🏗 ⚫️). + +& ⤴️, 📤 🔜 ➕1️⃣ 📋 (💼 ⚫️ ➕1️⃣ 📋, 💼 ⚫️ 💪 🎏 🤝 ❎ 🗳) 👈 🔜 💬 ➡️ 🗜, & ♻ 📄(Ⓜ). + + + +**🤝 📄** **🔗 ⏮️ 🆔 📛**, 🚫 ⏮️ 📢 📢. + +, ♻ 📄, 🔕 📋 💪 **🎦** 🛃 (➡️ 🗜) 👈 ⚫️ 👐 **"👍" & 🎛 👈 🆔**. + +👈, & 🏗 🎏 🈸 💪, 📤 📚 🌌 ⚫️ 💪 ⚫️. 🌟 🌌: + +* **🔀 🏓 ⏺**. + * 👉, 🔕 📋 💪 🐕‍🦺 🔗 🏓 🐕‍🦺,, ⚓️ 🔛 🏓 🐕‍🦺 👆 ⚙️, 👉 5️⃣📆 ⚖️ 💪 🚫 🎛. +* **🏃 💽** (🌘 ⏮️ 📄 🛠️ 🛠️) 🔛 📢 📢 📢 🔗 ⏮️ 🆔. + * 👥 💬 🔛, 🕴 1️⃣ 🛠️ 💪 👂 🔛 🎯 📢 & ⛴. + * 👉 1️⃣ 🤔 ⚫️❔ ⚫️ 📶 ⚠ 🕐❔ 🎏 🤝 ❎ 🗳 ✊ 💅 📄 🔕 🛠️. + * ⏪, 👆 💪 ✔️ ⛔️ 🤝 ❎ 🗳 😖, ▶️ 🔕 📋 📎 📄, ⤴️ 🔗 👫 ⏮️ 🤝 ❎ 🗳, & ⤴️ ⏏ 🤝 ❎ 🗳. 👉 🚫 💯, 👆 📱(Ⓜ) 🔜 🚫 💪 ⏮️ 🕰 👈 🤝 ❎ 🗳 📆. + +🌐 👉 🔕 🛠️, ⏪ 🍦 📱, 1️⃣ 👑 🤔 ⚫️❔ 👆 🔜 💚 ✔️ **🎏 ⚙️ 🍵 🇺🇸🔍** ⏮️ 🤝 ❎ 🗳 ↩️ ⚙️ 🤝 📄 ⏮️ 🈸 💽 🔗 (✅ Uvicorn). + +## 🌃 + +✔️ **🇺🇸🔍** 📶 ⚠, & **🎯** 🏆 💼. 🌅 🎯 👆 👩‍💻 ✔️ 🚮 🤭 🇺🇸🔍 🔃 **🤔 👉 🔧** & ❔ 👫 👷. + +✋️ 🕐 👆 💭 🔰 ℹ **🇺🇸🔍 👩‍💻** 👆 💪 💪 🌀 & 🔗 🎏 🧰 ℹ 👆 🛠️ 🌐 🙅 🌌. + +⏭ 📃, 👤 🔜 🎦 👆 📚 🧱 🖼 ❔ ⚒ 🆙 **🇺🇸🔍** **FastAPI** 🈸. 👶 diff --git a/docs/em/docs/deployment/index.md b/docs/em/docs/deployment/index.md new file mode 100644 index 0000000..9bcf427 --- /dev/null +++ b/docs/em/docs/deployment/index.md @@ -0,0 +1,21 @@ +# 🛠️ + +🛠️ **FastAPI** 🈸 📶 ⏩. + +## ⚫️❔ 🔨 🛠️ ⛓ + +**🛠️** 🈸 ⛓ 🎭 💪 📶 ⚒ ⚫️ **💪 👩‍💻**. + +**🕸 🛠️**, ⚫️ 🛎 🔌 🚮 ⚫️ **🛰 🎰**, ⏮️ **💽 📋** 👈 🚚 👍 🎭, ⚖, ♒️, 👈 👆 **👩‍💻** 💪 **🔐** 🈸 ♻ & 🍵 🔁 ⚖️ ⚠. + +👉 🔅 **🛠️** ▶️, 🌐❔ 👆 🕧 🔀 📟, 💔 ⚫️ & ♻ ⚫️, ⛔️ & 🔁 🛠️ 💽, ♒️. + +## 🛠️ 🎛 + +📤 📚 🌌 ⚫️ ⚓️ 🔛 👆 🎯 ⚙️ 💼 & 🧰 👈 👆 ⚙️. + +👆 💪 **🛠️ 💽** 👆 ⚙️ 🌀 🧰, 👆 💪 ⚙️ **☁ 🐕‍🦺** 👈 🔨 🍕 👷 👆, ⚖️ 🎏 💪 🎛. + +👤 🔜 🎦 👆 👑 🔧 👆 🔜 🎲 ✔️ 🤯 🕐❔ 🛠️ **FastAPI** 🈸 (👐 🌅 ⚫️ ✔ 🙆 🎏 🆎 🕸 🈸). + +👆 🔜 👀 🌖 ℹ ✔️ 🤯 & ⚒ ⚫️ ⏭ 📄. 👶 diff --git a/docs/em/docs/deployment/manually.md b/docs/em/docs/deployment/manually.md new file mode 100644 index 0000000..4fa2d13 --- /dev/null +++ b/docs/em/docs/deployment/manually.md @@ -0,0 +1,159 @@ +# 🏃 💽 ❎ - Uvicorn + +👑 👜 👆 💪 🏃 **FastAPI** 🈸 🛰 💽 🎰 🔫 💽 📋 💖 **Uvicorn**. + +📤 3️⃣ 👑 🎛: + +* Uvicorn: ↕ 🎭 🔫 💽. +* Hypercorn: 🔫 💽 🔗 ⏮️ 🇺🇸🔍/2️⃣ & 🎻 👪 🎏 ⚒. +* 👸: 🔫 💽 🏗 ✳ 📻. + +## 💽 🎰 & 💽 📋 + +📤 🤪 ℹ 🔃 📛 ✔️ 🤯. 👶 + +🔤 "**💽**" 🛎 ⚙️ 🔗 👯‍♂️ 🛰/☁ 💻 (⚛ ⚖️ 🕹 🎰) & 📋 👈 🏃‍♂ 🔛 👈 🎰 (✅ Uvicorn). + +✔️ 👈 🤯 🕐❔ 👆 ✍ "💽" 🏢, ⚫️ 💪 🔗 1️⃣ 📚 2️⃣ 👜. + +🕐❔ 🔗 🛰 🎰, ⚫️ ⚠ 🤙 ⚫️ **💽**, ✋️ **🎰**, **💾** (🕹 🎰), **🕸**. 👈 🌐 🔗 🆎 🛰 🎰, 🛎 🏃‍♂ 💾, 🌐❔ 👆 🏃 📋. + +## ❎ 💽 📋 + +👆 💪 ❎ 🔫 🔗 💽 ⏮️: + +//// tab | Uvicorn + +* Uvicorn, 🌩-⏩ 🔫 💽, 🏗 🔛 uvloop & httptool. + +
+ +```console +$ pip install "uvicorn[standard]" + +---> 100% +``` + +
+ +/// tip + +❎ `standard`, Uvicorn 🔜 ❎ & ⚙️ 👍 ➕ 🔗. + +👈 ✅ `uvloop`, ↕-🎭 💧-♻ `asyncio`, 👈 🚚 🦏 🛠️ 🎭 📈. + +/// + +//// + +//// tab | Hypercorn + +* Hypercorn, 🔫 💽 🔗 ⏮️ 🇺🇸🔍/2️⃣. + +
+ +```console +$ pip install hypercorn + +---> 100% +``` + +
+ +...⚖️ 🙆 🎏 🔫 💽. + +//// + +## 🏃 💽 📋 + +👆 💪 ⤴️ 🏃 👆 🈸 🎏 🌌 👆 ✔️ ⌛ 🔰, ✋️ 🍵 `--reload` 🎛, ✅: + +//// tab | Uvicorn + +
+ +```console +$ uvicorn main:app --host 0.0.0.0 --port 80 + +INFO: Uvicorn running on http://0.0.0.0:80 (Press CTRL+C to quit) +``` + +
+ +//// + +//// tab | Hypercorn + +
+ +```console +$ hypercorn main:app --bind 0.0.0.0:80 + +Running on 0.0.0.0:8080 over http (CTRL + C to quit) +``` + +
+ +//// + +/// warning + +💭 ❎ `--reload` 🎛 🚥 👆 ⚙️ ⚫️. + + `--reload` 🎛 🍴 🌅 🌅 ℹ, 🌅 ⚠, ♒️. + +⚫️ ℹ 📚 ⏮️ **🛠️**, ✋️ 👆 **🚫🔜 🚫** ⚙️ ⚫️ **🏭**. + +/// + +## Hypercorn ⏮️ 🎻 + +💃 & **FastAPI** ⚓️ 🔛 AnyIO, ❔ ⚒ 👫 🔗 ⏮️ 👯‍♂️ 🐍 🐩 🗃 & 🎻. + +👐, Uvicorn ⏳ 🕴 🔗 ⏮️ ✳, & ⚫️ 🛎 ⚙️ `uvloop`, ↕-🎭 💧-♻ `asyncio`. + +✋️ 🚥 👆 💚 🔗 ⚙️ **🎻**, ⤴️ 👆 💪 ⚙️ **Hypercorn** ⚫️ 🐕‍🦺 ⚫️. 👶 + +### ❎ Hypercorn ⏮️ 🎻 + +🥇 👆 💪 ❎ Hypercorn ⏮️ 🎻 🐕‍🦺: + +
+ +```console +$ pip install "hypercorn[trio]" +---> 100% +``` + +
+ +### 🏃 ⏮️ 🎻 + +⤴️ 👆 💪 🚶‍♀️ 📋 ⏸ 🎛 `--worker-class` ⏮️ 💲 `trio`: + +
+ +```console +$ hypercorn main:app --worker-class trio +``` + +
+ +& 👈 🔜 ▶️ Hypercorn ⏮️ 👆 📱 ⚙️ 🎻 👩‍💻. + +🔜 👆 💪 ⚙️ 🎻 🔘 👆 📱. ⚖️ 👍, 👆 💪 ⚙️ AnyIO, 🚧 👆 📟 🔗 ⏮️ 👯‍♂️ 🎻 & ✳. 👶 + +## 🛠️ 🔧 + +👫 🖼 🏃 💽 📋 (📧.Ⓜ Uvicorn), ▶️ **👁 🛠️**, 👂 🔛 🌐 📢 (`0.0.0.0`) 🔛 🔁 ⛴ (✅ `80`). + +👉 🔰 💭. ✋️ 👆 🔜 🎲 💚 ✊ 💅 🌖 👜, 💖: + +* 💂‍♂ - 🇺🇸🔍 +* 🏃‍♂ 🔛 🕴 +* ⏏ +* 🧬 (🔢 🛠️ 🏃) +* 💾 +* ⏮️ 🔁 ⏭ ▶️ + +👤 🔜 💬 👆 🌅 🔃 🔠 👫 🔧, ❔ 💭 🔃 👫, & 🧱 🖼 ⏮️ 🎛 🍵 👫 ⏭ 📃. 👶 diff --git a/docs/em/docs/deployment/server-workers.md b/docs/em/docs/deployment/server-workers.md new file mode 100644 index 0000000..eb29b23 --- /dev/null +++ b/docs/em/docs/deployment/server-workers.md @@ -0,0 +1,181 @@ +# 💽 👨‍🏭 - 🐁 ⏮️ Uvicorn + +➡️ ✅ 🔙 👈 🛠️ 🔧 ⚪️➡️ ⏭: + +* 💂‍♂ - 🇺🇸🔍 +* 🏃‍♂ 🔛 🕴 +* ⏏ +* **🧬 (🔢 🛠️ 🏃)** +* 💾 +* ⏮️ 🔁 ⏭ ▶️ + +🆙 👉 ☝, ⏮️ 🌐 🔰 🩺, 👆 ✔️ 🎲 🏃‍♂ **💽 📋** 💖 Uvicorn, 🏃‍♂ **👁 🛠️**. + +🕐❔ 🛠️ 🈸 👆 🔜 🎲 💚 ✔️ **🧬 🛠️** ✊ 📈 **💗 🐚** & 💪 🍵 🌅 📨. + +👆 👀 ⏮️ 📃 🔃 [🛠️ 🔧](concepts.md){.internal-link target=_blank}, 📤 💗 🎛 👆 💪 ⚙️. + +📥 👤 🔜 🎦 👆 ❔ ⚙️ **🐁** ⏮️ **Uvicorn 👨‍🏭 🛠️**. + +/// info + +🚥 👆 ⚙️ 📦, 🖼 ⏮️ ☁ ⚖️ Kubernetes, 👤 🔜 💬 👆 🌅 🔃 👈 ⏭ 📃: [FastAPI 📦 - ☁](docker.md){.internal-link target=_blank}. + +🎯, 🕐❔ 🏃 🔛 **Kubernetes** 👆 🔜 🎲 **🚫** 💚 ⚙️ 🐁 & ↩️ 🏃 **👁 Uvicorn 🛠️ 📍 📦**, ✋️ 👤 🔜 💬 👆 🔃 ⚫️ ⏪ 👈 📃. + +/// + +## 🐁 ⏮️ Uvicorn 👨‍🏭 + +**🐁** ✴️ 🈸 💽 ⚙️ **🇨🇻 🐩**. 👈 ⛓ 👈 🐁 💪 🍦 🈸 💖 🏺 & ✳. 🐁 ⚫️ 🚫 🔗 ⏮️ **FastAPI**, FastAPI ⚙️ 🆕 **🔫 🐩**. + +✋️ 🐁 🐕‍🦺 👷 **🛠️ 👨‍💼** & 🤝 👩‍💻 💬 ⚫️ ❔ 🎯 **👨‍🏭 🛠️ 🎓** ⚙️. ⤴️ 🐁 🔜 ▶️ 1️⃣ ⚖️ 🌖 **👨‍🏭 🛠️** ⚙️ 👈 🎓. + +& **Uvicorn** ✔️ **🐁-🔗 👨‍🏭 🎓**. + +⚙️ 👈 🌀, 🐁 🔜 🚫 **🛠️ 👨‍💼**, 👂 🔛 **⛴** & **📢**. & ⚫️ 🔜 **📶** 📻 👨‍🏭 🛠️ 🏃 **Uvicorn 🎓**. + +& ⤴️ 🐁-🔗 **Uvicorn 👨‍🏭** 🎓 🔜 🈚 🏭 📊 📨 🐁 🔫 🐩 FastAPI ⚙️ ⚫️. + +## ❎ 🐁 & Uvicorn + +
+ +```console +$ pip install "uvicorn[standard]" gunicorn + +---> 100% +``` + +
+ +👈 🔜 ❎ 👯‍♂️ Uvicorn ⏮️ `standard` ➕ 📦 (🤚 ↕ 🎭) & 🐁. + +## 🏃 🐁 ⏮️ Uvicorn 👨‍🏭 + +⤴️ 👆 💪 🏃 🐁 ⏮️: + +
+ +```console +$ gunicorn main:app --workers 4 --worker-class uvicorn.workers.UvicornWorker --bind 0.0.0.0:80 + +[19499] [INFO] Starting gunicorn 20.1.0 +[19499] [INFO] Listening at: http://0.0.0.0:80 (19499) +[19499] [INFO] Using worker: uvicorn.workers.UvicornWorker +[19511] [INFO] Booting worker with pid: 19511 +[19513] [INFO] Booting worker with pid: 19513 +[19514] [INFO] Booting worker with pid: 19514 +[19515] [INFO] Booting worker with pid: 19515 +[19511] [INFO] Started server process [19511] +[19511] [INFO] Waiting for application startup. +[19511] [INFO] Application startup complete. +[19513] [INFO] Started server process [19513] +[19513] [INFO] Waiting for application startup. +[19513] [INFO] Application startup complete. +[19514] [INFO] Started server process [19514] +[19514] [INFO] Waiting for application startup. +[19514] [INFO] Application startup complete. +[19515] [INFO] Started server process [19515] +[19515] [INFO] Waiting for application startup. +[19515] [INFO] Application startup complete. +``` + +
+ +➡️ 👀 ⚫️❔ 🔠 👈 🎛 ⛓: + +* `main:app`: 👉 🎏 ❕ ⚙️ Uvicorn, `main` ⛓ 🐍 🕹 📛 "`main`",, 📁 `main.py`. & `app` 📛 🔢 👈 **FastAPI** 🈸. + * 👆 💪 🌈 👈 `main:app` 🌓 🐍 `import` 📄 💖: + + ```Python + from main import app + ``` + + * , ❤ `main:app` 🔜 🌓 🐍 `import` 🍕 `from main import app`. +* `--workers`: 🔢 👨‍🏭 🛠️ ⚙️, 🔠 🔜 🏃 Uvicorn 👨‍🏭, 👉 💼, 4️⃣ 👨‍🏭. +* `--worker-class`: 🐁-🔗 👨‍🏭 🎓 ⚙️ 👨‍🏭 🛠️. + * 📥 👥 🚶‍♀️ 🎓 👈 🐁 💪 🗄 & ⚙️ ⏮️: + + ```Python + import uvicorn.workers.UvicornWorker + ``` + +* `--bind`: 👉 💬 🐁 📢 & ⛴ 👂, ⚙️ ❤ (`:`) 🎏 📢 & ⛴. + * 🚥 👆 🏃‍♂ Uvicorn 🔗, ↩️ `--bind 0.0.0.0:80` (🐁 🎛) 👆 🔜 ⚙️ `--host 0.0.0.0` & `--port 80`. + +🔢, 👆 💪 👀 👈 ⚫️ 🎦 **🕹** (🛠️ 🆔) 🔠 🛠️ (⚫️ 🔢). + +👆 💪 👀 👈: + +* 🐁 **🛠️ 👨‍💼** ▶️ ⏮️ 🕹 `19499` (👆 💼 ⚫️ 🔜 🎏 🔢). +* ⤴️ ⚫️ ▶️ `Listening at: http://0.0.0.0:80`. +* ⤴️ ⚫️ 🔍 👈 ⚫️ ✔️ ⚙️ 👨‍🏭 🎓 `uvicorn.workers.UvicornWorker`. +* & ⤴️ ⚫️ ▶️ **4️⃣ 👨‍🏭**, 🔠 ⏮️ 🚮 👍 🕹: `19511`, `19513`, `19514`, & `19515`. + +🐁 🔜 ✊ 💅 🛠️ **☠️ 🛠️** & **🔁** 🆕 🕐 🚥 💚 🚧 🔢 👨‍🏭. 👈 ℹ 🍕 ⏮️ **⏏** 🔧 ⚪️➡️ 📇 🔛. + +👐, 👆 🔜 🎲 💚 ✔️ 🕳 🏞 ⚒ 💭 **⏏ 🐁** 🚥 💪, & **🏃 ⚫️ 🔛 🕴**, ♒️. + +## Uvicorn ⏮️ 👨‍🏭 + +Uvicorn ✔️ 🎛 ▶️ & 🏃 📚 **👨‍🏭 🛠️**. + +👐, 🔜, Uvicorn 🛠️ 🚚 👨‍🏭 🛠️ 🌅 📉 🌘 🐁. , 🚥 👆 💚 ✔️ 🛠️ 👨‍💼 👉 🎚 (🐍 🎚), ⤴️ ⚫️ 💪 👍 🔄 ⏮️ 🐁 🛠️ 👨‍💼. + +🙆 💼, 👆 🔜 🏃 ⚫️ 💖 👉: + +
+ +```console +$ uvicorn main:app --host 0.0.0.0 --port 8080 --workers 4 +INFO: Uvicorn running on http://0.0.0.0:8080 (Press CTRL+C to quit) +INFO: Started parent process [27365] +INFO: Started server process [27368] +INFO: Waiting for application startup. +INFO: Application startup complete. +INFO: Started server process [27369] +INFO: Waiting for application startup. +INFO: Application startup complete. +INFO: Started server process [27370] +INFO: Waiting for application startup. +INFO: Application startup complete. +INFO: Started server process [27367] +INFO: Waiting for application startup. +INFO: Application startup complete. +``` + +
+ +🕴 🆕 🎛 📥 `--workers` 💬 Uvicorn ▶️ 4️⃣ 👨‍🏭 🛠️. + +👆 💪 👀 👈 ⚫️ 🎦 **🕹** 🔠 🛠️, `27365` 👪 🛠️ (👉 **🛠️ 👨‍💼**) & 1️⃣ 🔠 👨‍🏭 🛠️: `27368`, `27369`, `27370`, & `27367`. + +## 🛠️ 🔧 + +📥 👆 👀 ❔ ⚙️ **🐁** (⚖️ Uvicorn) 🛠️ **Uvicorn 👨‍🏭 🛠️** **🔁** 🛠️ 🈸, ✊ 📈 **💗 🐚** 💽, & 💪 🍦 **🌅 📨**. + +⚪️➡️ 📇 🛠️ 🔧 ⚪️➡️ 🔛, ⚙️ 👨‍🏭 🔜 ✴️ ℹ ⏮️ **🧬** 🍕, & 🐥 🍖 ⏮️ **⏏**, ✋️ 👆 💪 ✊ 💅 🎏: + +* **💂‍♂ - 🇺🇸🔍** +* **🏃‍♂ 🔛 🕴** +* ***⏏*** +* 🧬 (🔢 🛠️ 🏃) +* **💾** +* **⏮️ 🔁 ⏭ ▶️** + +## 📦 & ☁ + +⏭ 📃 🔃 [FastAPI 📦 - ☁](docker.md){.internal-link target=_blank} 👤 🔜 💬 🎛 👆 💪 ⚙️ 🍵 🎏 **🛠️ 🔧**. + +👤 🔜 🎦 👆 **🛂 ☁ 🖼** 👈 🔌 **🐁 ⏮️ Uvicorn 👨‍🏭** & 🔢 📳 👈 💪 ⚠ 🙅 💼. + +📤 👤 🔜 🎦 👆 ❔ **🏗 👆 👍 🖼 ⚪️➡️ 🖌** 🏃 👁 Uvicorn 🛠️ (🍵 🐁). ⚫️ 🙅 🛠️ & 🎲 ⚫️❔ 👆 🔜 💚 🕐❔ ⚙️ 📎 📦 🧾 ⚙️ 💖 **Kubernetes**. + +## 🌃 + +👆 💪 ⚙️ **🐁** (⚖️ Uvicorn) 🛠️ 👨‍💼 ⏮️ Uvicorn 👨‍🏭 ✊ 📈 **👁-🐚 💽**, 🏃 **💗 🛠️ 🔗**. + +👆 💪 ⚙️ 👉 🧰 & 💭 🚥 👆 ⚒ 🆙 **👆 👍 🛠️ ⚙️** ⏪ ✊ 💅 🎏 🛠️ 🔧 👆. + +✅ 👅 ⏭ 📃 💡 🔃 **FastAPI** ⏮️ 📦 (✅ ☁ & Kubernetes). 👆 🔜 👀 👈 👈 🧰 ✔️ 🙅 🌌 ❎ 🎏 **🛠️ 🔧** 👍. 👶 diff --git a/docs/em/docs/deployment/versions.md b/docs/em/docs/deployment/versions.md new file mode 100644 index 0000000..6c9b8f9 --- /dev/null +++ b/docs/em/docs/deployment/versions.md @@ -0,0 +1,93 @@ +# 🔃 FastAPI ⏬ + +**FastAPI** ⏪ ➖ ⚙️ 🏭 📚 🈸 & ⚙️. & 💯 💰 🚧 1️⃣0️⃣0️⃣ 💯. ✋️ 🚮 🛠️ 🚚 🔜. + +🆕 ⚒ 🚮 🛎, 🐛 🔧 🛎, & 📟 🔁 📉. + +👈 ⚫️❔ ⏮️ ⏬ `0.x.x`, 👉 🎨 👈 🔠 ⏬ 💪 ⚠ ✔️ 💔 🔀. 👉 ⏩ ⚛ 🛠️ 🏛. + +👆 💪 ✍ 🏭 🈸 ⏮️ **FastAPI** ▶️️ 🔜 (& 👆 ✔️ 🎲 🔨 ⚫️ 🕰), 👆 ✔️ ⚒ 💭 👈 👆 ⚙️ ⏬ 👈 👷 ☑ ⏮️ 🎂 👆 📟. + +## 📌 👆 `fastapi` ⏬ + +🥇 👜 👆 🔜 "📌" ⏬ **FastAPI** 👆 ⚙️ 🎯 📰 ⏬ 👈 👆 💭 👷 ☑ 👆 🈸. + +🖼, ➡️ 💬 👆 ⚙️ ⏬ `0.45.0` 👆 📱. + +🚥 👆 ⚙️ `requirements.txt` 📁 👆 💪 ✔ ⏬ ⏮️: + +```txt +fastapi==0.45.0 +``` + +👈 🔜 ⛓ 👈 👆 🔜 ⚙️ ⚫️❔ ⏬ `0.45.0`. + +⚖️ 👆 💪 📌 ⚫️ ⏮️: + +```txt +fastapi>=0.45.0,<0.46.0 +``` + +👈 🔜 ⛓ 👈 👆 🔜 ⚙️ ⏬ `0.45.0` ⚖️ 🔛, ✋️ 🌘 🌘 `0.46.0`, 🖼, ⏬ `0.45.2` 🔜 🚫. + +🚥 👆 ⚙️ 🙆 🎏 🧰 🛠️ 👆 👷‍♂, 💖 🎶, Pipenv, ⚖️ 🎏, 👫 🌐 ✔️ 🌌 👈 👆 💪 ⚙️ 🔬 🎯 ⏬ 👆 📦. + +## 💪 ⏬ + +👆 💪 👀 💪 ⏬ (✅ ✅ ⚫️❔ ⏮️ 📰) [🚀 🗒](../release-notes.md){.internal-link target=_blank}. + +## 🔃 ⏬ + +📄 ⚛ 🛠️ 🏛, 🙆 ⏬ 🔛 `1.0.0` 💪 ⚠ 🚮 💔 🔀. + +FastAPI ⏩ 🏛 👈 🙆 "🐛" ⏬ 🔀 🐛 🔧 & 🚫-💔 🔀. + +/// tip + +"🐛" 🏁 🔢, 🖼, `0.2.3`, 🐛 ⏬ `3`. + +/// + +, 👆 🔜 💪 📌 ⏬ 💖: + +```txt +fastapi>=0.45.0,<0.46.0 +``` + +💔 🔀 & 🆕 ⚒ 🚮 "🇺🇲" ⏬. + +/// tip + +"🇺🇲" 🔢 🖕, 🖼, `0.2.3`, 🇺🇲 ⏬ `2`. + +/// + +## ♻ FastAPI ⏬ + +👆 🔜 🚮 💯 👆 📱. + +⏮️ **FastAPI** ⚫️ 📶 ⏩ (👏 💃), ✅ 🩺: [🔬](../tutorial/testing.md){.internal-link target=_blank} + +⏮️ 👆 ✔️ 💯, ⤴️ 👆 💪 ♻ **FastAPI** ⏬ 🌖 ⏮️ 1️⃣, & ⚒ 💭 👈 🌐 👆 📟 👷 ☑ 🏃 👆 💯. + +🚥 🌐 👷, ⚖️ ⏮️ 👆 ⚒ 💪 🔀, & 🌐 👆 💯 🚶‍♀️, ⤴️ 👆 💪 📌 👆 `fastapi` 👈 🆕 ⏮️ ⏬. + +## 🔃 💃 + +👆 🚫🔜 🚫 📌 ⏬ `starlette`. + +🎏 ⏬ **FastAPI** 🔜 ⚙️ 🎯 🆕 ⏬ 💃. + +, 👆 💪 ➡️ **FastAPI** ⚙️ ☑ 💃 ⏬. + +## 🔃 Pydantic + +Pydantic 🔌 💯 **FastAPI** ⏮️ 🚮 👍 💯, 🆕 ⏬ Pydantic (🔛 `1.0.0`) 🕧 🔗 ⏮️ FastAPI. + +👆 💪 📌 Pydantic 🙆 ⏬ 🔛 `1.0.0` 👈 👷 👆 & 🔛 `2.0.0`. + +🖼: + +```txt +pydantic>=1.2.0,<2.0.0 +``` diff --git a/docs/em/docs/features.md b/docs/em/docs/features.md new file mode 100644 index 0000000..ccbed0c --- /dev/null +++ b/docs/em/docs/features.md @@ -0,0 +1,201 @@ +# ⚒ + +## FastAPI ⚒ + +**FastAPI** 🤝 👆 📄: + +### ⚓️ 🔛 📂 🐩 + +* 🗄 🛠️ 🏗, ✅ 📄 🛠️, 🔢, 💪 📨, 💂‍♂, ♒️. +* 🏧 📊 🏷 🧾 ⏮️ 🎻 🔗 (🗄 ⚫️ 🧢 🔛 🎻 🔗). +* 🔧 🤭 👫 🐩, ⏮️ 😔 🔬. ↩️ 👎 🧽 🔛 🔝. +* 👉 ✔ ⚙️ 🏧 **👩‍💻 📟 ⚡** 📚 🇪🇸. + +### 🏧 🩺 + +🎓 🛠️ 🧾 & 🔬 🕸 👩‍💻 🔢. 🛠️ ⚓️ 🔛 🗄, 📤 💗 🎛, 2️⃣ 🔌 🔢. + +* 🦁 🎚, ⏮️ 🎓 🔬, 🤙 & 💯 👆 🛠️ 🔗 ⚪️➡️ 🖥. + +![Swagger UI interaction](https://fastapi.tiangolo.com/img/index/index-03-swagger-02.png) + +* 🎛 🛠️ 🧾 ⏮️ 📄. + +![ReDoc](https://fastapi.tiangolo.com/img/index/index-06-redoc-02.png) + +### 🏛 🐍 + +⚫️ 🌐 ⚓️ 🔛 🐩 **🐍 3️⃣.6️⃣ 🆎** 📄 (👏 Pydantic). 🙅‍♂ 🆕 ❕ 💡. 🐩 🏛 🐍. + +🚥 👆 💪 2️⃣ ⏲ ↗️ ❔ ⚙️ 🐍 🆎 (🚥 👆 🚫 ⚙️ FastAPI), ✅ 📏 🔰: [🐍 🆎](python-types.md){.internal-link target=_blank}. + +👆 ✍ 🐩 🐍 ⏮️ 🆎: + +```Python +from datetime import date + +from pydantic import BaseModel + +# Declare a variable as a str +# and get editor support inside the function +def main(user_id: str): + return user_id + + +# A Pydantic model +class User(BaseModel): + id: int + name: str + joined: date +``` + +👈 💪 ⤴️ ⚙️ 💖: + +```Python +my_user: User = User(id=3, name="John Doe", joined="2018-07-19") + +second_user_data = { + "id": 4, + "name": "Mary", + "joined": "2018-11-30", +} + +my_second_user: User = User(**second_user_data) +``` + +/// info + +`**second_user_data` ⛓: + +🚶‍♀️ 🔑 & 💲 `second_user_data` #️⃣ 🔗 🔑-💲 ❌, 🌓: `User(id=4, name="Mary", joined="2018-11-30")` + +/// + +### 👨‍🎨 🐕‍🦺 + +🌐 🛠️ 🏗 ⏩ & 🏋️ ⚙️, 🌐 🚫 💯 🔛 💗 👨‍🎨 ⏭ ▶️ 🛠️, 🚚 🏆 🛠️ 💡. + +🏁 🐍 👩‍💻 🔬 ⚫️ 🆑 👈 🌅 ⚙️ ⚒ "✍". + +🎂 **FastAPI** 🛠️ ⚓️ 😌 👈. ✍ 👷 🌐. + +👆 🔜 🛎 💪 👟 🔙 🩺. + +📥 ❔ 👆 👨‍🎨 💪 ℹ 👆: + +* 🎙 🎙 📟: + +![editor support](https://fastapi.tiangolo.com/img/vscode-completion.png) + +* 🗒: + +![editor support](https://fastapi.tiangolo.com/img/pycharm-completion.png) + +👆 🔜 🤚 🛠️ 📟 👆 5️⃣📆 🤔 💪 ⏭. 🖼, `price` 🔑 🔘 🎻 💪 (👈 💪 ✔️ 🐦) 👈 👟 ⚪️➡️ 📨. + +🙅‍♂ 🌖 ⌨ ❌ 🔑 📛, 👟 🔙 & ➡ 🖖 🩺, ⚖️ 📜 🆙 & 🔽 🔎 🚥 👆 😒 ⚙️ `username` ⚖️ `user_name`. + +### 📏 + +⚫️ ✔️ 🤔 **🔢** 🌐, ⏮️ 📦 📳 🌐. 🌐 🔢 💪 👌-🎧 ⚫️❔ 👆 💪 & 🔬 🛠️ 👆 💪. + +✋️ 🔢, ⚫️ 🌐 **"👷"**. + +### 🔬 + +* 🔬 🌅 (⚖️ 🌐 ❓) 🐍 **💽 🆎**, 🔌: + * 🎻 🎚 (`dict`). + * 🎻 🎻 (`list`) ⚖ 🏬 🆎. + * 🎻 (`str`) 🏑, 🔬 🕙 & 👟 📐. + * 🔢 (`int`, `float`) ⏮️ 🕙 & 👟 💲, ♒️. + +* 🔬 🌅 😍 🆎, 💖: + * 📛. + * 📧. + * 🆔. + * ...& 🎏. + +🌐 🔬 🍵 👍-🏛 & 🏋️ **Pydantic**. + +### 💂‍♂ & 🤝 + +💂‍♂ & 🤝 🛠️. 🍵 🙆 ⚠ ⏮️ 💽 ⚖️ 📊 🏷. + +🌐 💂‍♂ ⚖ 🔬 🗄, 🔌: + +* 🇺🇸🔍 🔰. +* **Oauth2️⃣** (⏮️ **🥙 🤝**). ✅ 🔰 🔛 [Oauth2️⃣ ⏮️ 🥙](tutorial/security/oauth2-jwt.md){.internal-link target=_blank}. +* 🛠️ 🔑: + * 🎚. + * 🔢 🔢. + * 🍪, ♒️. + +➕ 🌐 💂‍♂ ⚒ ⚪️➡️ 💃 (🔌 **🎉 🍪**). + +🌐 🏗 ♻ 🧰 & 🦲 👈 ⏩ 🛠️ ⏮️ 👆 ⚙️, 📊 🏪, 🔗 & ☁ 💽, ♒️. + +### 🔗 💉 + +FastAPI 🔌 📶 ⏩ ⚙️, ✋️ 📶 🏋️ 🔗 💉 ⚙️. + +* 🔗 💪 ✔️ 🔗, 🏗 🔗 ⚖️ **"📊" 🔗**. +* 🌐 **🔁 🍵** 🛠️. +* 🌐 🔗 💪 🚚 💽 ⚪️➡️ 📨 & **↔ ➡ 🛠️** ⚛ & 🏧 🧾. +* **🏧 🔬** *➡ 🛠️* 🔢 🔬 🔗. +* 🐕‍🦺 🏗 👩‍💻 🤝 ⚙️, **💽 🔗**, ♒️. +* **🙅‍♂ ⚠** ⏮️ 💽, 🕸, ♒️. ✋️ ⏩ 🛠️ ⏮️ 🌐 👫. + +### ♾ "🔌-🔌" + +⚖️ 🎏 🌌, 🙅‍♂ 💪 👫, 🗄 & ⚙️ 📟 👆 💪. + +🙆 🛠️ 🏗 🙅 ⚙️ (⏮️ 🔗) 👈 👆 💪 ✍ "🔌-" 👆 🈸 2️⃣ ⏸ 📟 ⚙️ 🎏 📊 & ❕ ⚙️ 👆 *➡ 🛠️*. + +### 💯 + +* 1️⃣0️⃣0️⃣ 💯 💯 💰. +* 1️⃣0️⃣0️⃣ 💯 🆎 ✍ 📟 🧢. +* ⚙️ 🏭 🈸. + +## 💃 ⚒ + +**FastAPI** 🍕 🔗 ⏮️ (& ⚓️ 🔛) 💃. , 🙆 🌖 💃 📟 👆 ✔️, 🔜 👷. + +`FastAPI` 🤙 🎧-🎓 `Starlette`. , 🚥 👆 ⏪ 💭 ⚖️ ⚙️ 💃, 🌅 🛠️ 🔜 👷 🎏 🌌. + +⏮️ **FastAPI** 👆 🤚 🌐 **💃**'Ⓜ ⚒ (FastAPI 💃 🔛 💊): + +* 🤙 🎆 🎭. ⚫️ 1️⃣ ⏩ 🐍 🛠️ 💪, 🔛 🇷🇪 ⏮️ **✳** & **🚶**. +* ** *️⃣ ** 🐕‍🦺. +* -🛠️ 🖥 📋. +* 🕴 & 🤫 🎉. +* 💯 👩‍💻 🏗 🔛 🇸🇲. +* **⚜**, 🗜, 🎻 📁, 🎏 📨. +* **🎉 & 🍪** 🐕‍🦺. +* 1️⃣0️⃣0️⃣ 💯 💯 💰. +* 1️⃣0️⃣0️⃣ 💯 🆎 ✍ ✍. + +## Pydantic ⚒ + +**FastAPI** 🍕 🔗 ⏮️ (& ⚓️ 🔛) Pydantic. , 🙆 🌖 Pydantic 📟 👆 ✔️, 🔜 👷. + +✅ 🔢 🗃 ⚓️ 🔛 Pydantic, 🐜Ⓜ, 🏭Ⓜ 💽. + +👉 ⛓ 👈 📚 💼 👆 💪 🚶‍♀️ 🎏 🎚 👆 🤚 ⚪️➡️ 📨 **🔗 💽**, 🌐 ✔ 🔁. + +🎏 ✔ 🎏 🌌 🤭, 📚 💼 👆 💪 🚶‍♀️ 🎚 👆 🤚 ⚪️➡️ 💽 **🔗 👩‍💻**. + +⏮️ **FastAPI** 👆 🤚 🌐 **Pydantic**'Ⓜ ⚒ (FastAPI ⚓️ 🔛 Pydantic 🌐 💽 🚚): + +* **🙅‍♂ 🔠**: + * 🙅‍♂ 🆕 🔗 🔑 ◾-🇪🇸 💡. + * 🚥 👆 💭 🐍 🆎 👆 💭 ❔ ⚙️ Pydantic. +* 🤾 🎆 ⏮️ 👆 **💾/🧶/🧠**: + * ↩️ Pydantic 📊 📊 👐 🎓 👆 🔬; 🚘-🛠️, 🧽, ✍ & 👆 🤔 🔜 🌐 👷 ☑ ⏮️ 👆 ✔ 💽. +* ✔ **🏗 📊**: + * ⚙️ 🔗 Pydantic 🏷, 🐍 `typing`'Ⓜ `List` & `Dict`, ♒️. + * & 💳 ✔ 🏗 💽 🔗 🎯 & 💪 🔬, ✅ & 📄 🎻 🔗. + * 👆 💪 ✔️ 🙇 **🐦 🎻** 🎚 & ✔️ 👫 🌐 ✔ & ✍. +* **🏧**: + * Pydantic ✔ 🛃 📊 🆎 🔬 ⚖️ 👆 💪 ↔ 🔬 ⏮️ 👩‍🔬 🔛 🏷 🎀 ⏮️ 💳 👨‍🎨. +* 1️⃣0️⃣0️⃣ 💯 💯 💰. diff --git a/docs/em/docs/help-fastapi.md b/docs/em/docs/help-fastapi.md new file mode 100644 index 0000000..9d802f9 --- /dev/null +++ b/docs/em/docs/help-fastapi.md @@ -0,0 +1,269 @@ +# ℹ FastAPI - 🤚 ℹ + +👆 💖 **FastAPI**❓ + +🔜 👆 💖 ℹ FastAPI, 🎏 👩‍💻, & 📕 ❓ + +⚖️ 🔜 👆 💖 🤚 ℹ ⏮️ **FastAPI**❓ + +📤 📶 🙅 🌌 ℹ (📚 🔌 1️⃣ ⚖️ 2️⃣ 🖊). + +& 📤 📚 🌌 🤚 ℹ 💁‍♂️. + +## 👱📔 📰 + +👆 💪 👱📔 (🐌) [**FastAPI & 👨‍👧‍👦** 📰](newsletter.md){.internal-link target=_blank} 🚧 ℹ 🔃: + +* 📰 🔃 FastAPI & 👨‍👧‍👦 👶 +* 🦮 👶 +* ⚒ 👶 +* 💔 🔀 👶 +* 💁‍♂ & 🎱 👶 + +## ⏩ FastAPI 🔛 👱📔 + +⏩ 🐶 Fastapi 🔛 **👱📔** 🤚 📰 📰 🔃 **FastAPI**. 👶 + +## ✴ **FastAPI** 📂 + +👆 💪 "✴" FastAPI 📂 (🖊 ✴ 🔼 🔝 ▶️️): https://github.com/fastapi/fastapi. 👶 👶 + +❎ ✴, 🎏 👩‍💻 🔜 💪 🔎 ⚫️ 🌅 💪 & 👀 👈 ⚫️ ✔️ ⏪ ⚠ 🎏. + +## ⌚ 📂 🗃 🚀 + +👆 💪 "⌚" FastAPI 📂 (🖊 "⌚" 🔼 🔝 ▶️️): https://github.com/fastapi/fastapi. 👶 + +📤 👆 💪 🖊 "🚀 🕴". + +🔨 ⚫️, 👆 🔜 📨 📨 (👆 📧) 🕐❔ 📤 🆕 🚀 (🆕 ⏬) **FastAPI** ⏮️ 🐛 🔧 & 🆕 ⚒. + +## 🔗 ⏮️ 📕 + +👆 💪 🔗 ⏮️ 👤 (🇹🇦 🇩🇬 / `tiangolo`), 📕. + +👆 💪: + +* ⏩ 👤 🔛 **📂**. + * 👀 🎏 📂 ℹ 🏗 👤 ✔️ ✍ 👈 💪 ℹ 👆. + * ⏩ 👤 👀 🕐❔ 👤 ✍ 🆕 📂 ℹ 🏗. +* ⏩ 👤 🔛 **👱📔** ⚖️ . + * 💬 👤 ❔ 👆 ⚙️ FastAPI (👤 💌 👂 👈). + * 👂 🕐❔ 👤 ⚒ 🎉 ⚖️ 🚀 🆕 🧰. + * 👆 💪 ⏩ 🐶 Fastapi 🔛 👱📔 (🎏 🏧). +* 🔗 ⏮️ 👤 🔛 **👱📔**. + * 👂 🕐❔ 👤 ⚒ 🎉 ⚖️ 🚀 🆕 🧰 (👐 👤 ⚙️ 👱📔 🌖 🛎 🤷 ♂). +* ✍ ⚫️❔ 👤 ✍ (⚖️ ⏩ 👤) 🔛 **🇸🇲.** ⚖️ **🔉**. + * ✍ 🎏 💭, 📄, & ✍ 🔃 🧰 👤 ✔️ ✍. + * ⏩ 👤 ✍ 🕐❔ 👤 ✍ 🕳 🆕. + +## 👱📔 🔃 **FastAPI** + +👱📔 🔃 **FastAPI** & ➡️ 👤 & 🎏 💭 ⚫️❔ 👆 💖 ⚫️. 👶 + +👤 💌 👂 🔃 ❔ **FastAPI** 💆‍♂ ⚙️, ⚫️❔ 👆 ✔️ 💖 ⚫️, ❔ 🏗/🏢 👆 ⚙️ ⚫️, ♒️. + +## 🗳 FastAPI + +* 🗳 **FastAPI** 📐. +* 🗳 **FastAPI** 📱. +* 💬 👆 ⚙️ **FastAPI** 🔛 ℹ. + +## ℹ 🎏 ⏮️ ❔ 📂 + +👆 💪 🔄 & ℹ 🎏 ⏮️ 👫 ❔: + +* 📂 💬 +* 📂 ❔ + +📚 💼 👆 5️⃣📆 ⏪ 💭 ❔ 📚 ❔. 👶 + +🚥 👆 🤝 📚 👫👫 ⏮️ 👫 ❔, 👆 🔜 ▶️️ 🛂 [FastAPI 🕴](fastapi-people.md#_2){.internal-link target=_blank}. 👶 + +💭, 🏆 ⚠ ☝: 🔄 😇. 👫👫 👟 ⏮️ 👫 😩 & 📚 💼 🚫 💭 🏆 🌌, ✋️ 🔄 🏆 👆 💪 😇. 👶 + +💭 **FastAPI** 👪 😇 & 👍. 🎏 🕰, 🚫 🚫 🎭 ⚖️ 😛 🎭 ⤵ 🎏. 👥 ✔️ ✊ 💅 🔠 🎏. + +--- + +📥 ❔ ℹ 🎏 ⏮️ ❔ (💬 ⚖️ ❔): + +### 🤔 ❔ + +* ✅ 🚥 👆 💪 🤔 ⚫️❔ **🎯** & ⚙️ 💼 👨‍💼 💬. + +* ⤴️ ✅ 🚥 ❔ (⭕ 👪 ❔) **🆑**. + +* 📚 💼 ❔ 💭 🔃 👽 ⚗ ⚪️➡️ 👩‍💻, ✋️ 📤 💪 **👍** 1️⃣. 🚥 👆 💪 🤔 ⚠ & ⚙️ 💼 👍, 👆 💪 💪 🤔 👍 **🎛 ⚗**. + +* 🚥 👆 💪 🚫 🤔 ❔, 💭 🌖 **ℹ**. + +### 🔬 ⚠ + +🌅 💼 & 🏆 ❔ 📤 🕳 🔗 👨‍💼 **⏮️ 📟**. + +📚 💼 👫 🔜 🕴 📁 🧬 📟, ✋️ 👈 🚫 🥃 **🔬 ⚠**. + +* 👆 💪 💭 👫 🚚 ⭐, 🔬, 🖼, 👈 👆 💪 **📁-📋** & 🏃 🌐 👀 🎏 ❌ ⚖️ 🎭 👫 👀, ⚖️ 🤔 👫 ⚙️ 💼 👍. + +* 🚥 👆 😟 💁‍♂️ 👍, 👆 💪 🔄 **✍ 🖼** 💖 👈 👆, 🧢 🔛 📛 ⚠. ✔️ 🤯 👈 👉 💪 ✊ 📚 🕰 & ⚫️ 💪 👻 💭 👫 ✍ ⚠ 🥇. + +### 🤔 ⚗ + +* ⏮️ 💆‍♂ 💪 🤔 ❔, 👆 💪 🤝 👫 💪 **❔**. + +* 📚 💼, ⚫️ 👍 🤔 👫 **📈 ⚠ ⚖️ ⚙️ 💼**, ↩️ 📤 5️⃣📆 👍 🌌 ❎ ⚫️ 🌘 ⚫️❔ 👫 🔄. + +### 💭 🔐 + +🚥 👫 📨, 📤 ↕ 🤞 👆 🔜 ✔️ ❎ 👫 ⚠, ㊗, **👆 💂**❗ 🦸 + +* 🔜, 🚥 👈 ❎ 👫 ⚠, 👆 💪 💭 👫: + + * 📂 💬: ™ 🏤 **❔**. + * 📂 ❔: **🔐** ❔**. + +## ⌚ 📂 🗃 + +👆 💪 "⌚" FastAPI 📂 (🖊 "⌚" 🔼 🔝 ▶️️): https://github.com/fastapi/fastapi. 👶 + +🚥 👆 🖊 "👀" ↩️ "🚀 🕴" 👆 🔜 📨 📨 🕐❔ 👱 ✍ 🆕 ❔ ⚖️ ❔. 👆 💪 ✔ 👈 👆 🕴 💚 🚨 🔃 🆕 ❔, ⚖️ 💬, ⚖️ 🎸, ♒️. + +⤴️ 👆 💪 🔄 & ℹ 👫 ❎ 👈 ❔. + +## 💭 ❔ + +👆 💪 ✍ 🆕 ❔ 📂 🗃, 🖼: + +* 💭 **❔** ⚖️ 💭 🔃 **⚠**. +* 🤔 🆕 **⚒**. + +**🗒**: 🚥 👆 ⚫️, ⤴️ 👤 🔜 💭 👆 ℹ 🎏. 👶 + +## 📄 🚲 📨 + +👆 💪 ℹ 👤 📄 🚲 📨 ⚪️➡️ 🎏. + +🔄, 🙏 🔄 👆 🏆 😇. 👶 + +--- + +📥 ⚫️❔ ✔️ 🤯 & ❔ 📄 🚲 📨: + +### 🤔 ⚠ + +* 🥇, ⚒ 💭 👆 **🤔 ⚠** 👈 🚲 📨 🔄 ❎. ⚫️ 💪 ✔️ 📏 💬 📂 💬 ⚖️ ❔. + +* 📤 👍 🤞 👈 🚲 📨 🚫 🤙 💪 ↩️ ⚠ 💪 ❎ **🎏 🌌**. ⤴️ 👆 💪 🤔 ⚖️ 💭 🔃 👈. + +### 🚫 😟 🔃 👗 + +* 🚫 😟 💁‍♂️ 🌅 🔃 👜 💖 💕 📧 👗, 👤 🔜 🥬 & 🔗 🛃 💕 ❎. + +* 🚫 😟 🔃 👗 🚫, 📤 ⏪ 🏧 🧰 ✅ 👈. + +& 🚥 📤 🙆 🎏 👗 ⚖️ ⚖ 💪, 👤 🔜 💭 🔗 👈, ⚖️ 👤 🔜 🚮 💕 🔛 🔝 ⏮️ 💪 🔀. + +### ✅ 📟 + +* ✅ & ✍ 📟, 👀 🚥 ⚫️ ⚒ 🔑, **🏃 ⚫️ 🌐** & 👀 🚥 ⚫️ 🤙 ❎ ⚠. + +* ⤴️ **🏤** 💬 👈 👆 👈, 👈 ❔ 👤 🔜 💭 👆 🤙 ✅ ⚫️. + +/// info + +👐, 👤 💪 🚫 🎯 💙 🎸 👈 ✔️ 📚 ✔. + +📚 🕰 ⚫️ ✔️ 🔨 👈 📤 🎸 ⏮️ 3️⃣, 5️⃣ ⚖️ 🌅 ✔, 🎲 ↩️ 📛 😌, ✋️ 🕐❔ 👤 ✅ 🎸, 👫 🤙 💔, ✔️ 🐛, ⚖️ 🚫 ❎ ⚠ 👫 🛄 ❎. 👶 + +, ⚫️ 🤙 ⚠ 👈 👆 🤙 ✍ & 🏃 📟, & ➡️ 👤 💭 🏤 👈 👆. 👶 + +/// + +* 🚥 🇵🇷 💪 📉 🌌, 👆 💪 💭 👈, ✋️ 📤 🙅‍♂ 💪 💁‍♂️ 😟, 📤 5️⃣📆 📚 🤔 ☝ 🎑 (& 👤 🔜 ✔️ 👇 👍 👍 👶), ⚫️ 👻 🚥 👆 💪 🎯 🔛 ⚛ 👜. + +### 💯 + +* ℹ 👤 ✅ 👈 🇵🇷 ✔️ **💯**. + +* ✅ 👈 💯 **❌** ⏭ 🇵🇷. 👶 + +* ⤴️ ✅ 👈 💯 **🚶‍♀️** ⏮️ 🇵🇷. 👶 + +* 📚 🎸 🚫 ✔️ 💯, 👆 💪 **🎗** 👫 🚮 💯, ⚖️ 👆 💪 **🤔** 💯 👆. 👈 1️⃣ 👜 👈 🍴 🌅 🕰 & 👆 💪 ℹ 📚 ⏮️ 👈. + +* ⤴️ 🏤 ⚫️❔ 👆 🔄, 👈 🌌 👤 🔜 💭 👈 👆 ✅ ⚫️. 👶 + +## ✍ 🚲 📨 + +👆 💪 [📉](contributing.md){.internal-link target=_blank} ℹ 📟 ⏮️ 🚲 📨, 🖼: + +* 🔧 🤭 👆 🔎 🔛 🧾. +* 💰 📄, 📹, ⚖️ 📻 👆 ✍ ⚖️ 🔎 🔃 FastAPI ✍ 👉 📁. + * ⚒ 💭 👆 🚮 👆 🔗 ▶️ 🔗 📄. +* ℹ [💬 🧾](contributing.md#_9){.internal-link target=_blank} 👆 🇪🇸. + * 👆 💪 ℹ 📄 ✍ ✍ 🎏. +* 🛠️ 🆕 🧾 📄. +* 🔧 ♻ ❔/🐛. + * ⚒ 💭 🚮 💯. +* 🚮 🆕 ⚒. + * ⚒ 💭 🚮 💯. + * ⚒ 💭 🚮 🧾 🚥 ⚫️ 🔗. + +## ℹ 🚧 FastAPI + +ℹ 👤 🚧 **FastAPI**❗ 👶 + +📤 📚 👷, & 🏆 ⚫️, **👆** 💪 ⚫️. + +👑 📋 👈 👆 💪 ▶️️ 🔜: + +* [ℹ 🎏 ⏮️ ❔ 📂](#i){.internal-link target=_blank} (👀 📄 🔛). +* [📄 🚲 📨](#i){.internal-link target=_blank} (👀 📄 🔛). + +👈 2️⃣ 📋 ⚫️❔ **🍴 🕰 🏆**. 👈 👑 👷 🏆 FastAPI. + +🚥 👆 💪 ℹ 👤 ⏮️ 👈, **👆 🤝 👤 🚧 FastAPI** & ⚒ 💭 ⚫️ 🚧 **🛠️ ⏩ & 👻**. 👶 + +## 🛑 💬 + +🛑 👶 😧 💬 💽 👶 & 🤙 👅 ⏮️ 🎏 FastAPI 👪. + +/// tip + +❔, 💭 👫 📂 💬, 📤 🌅 👍 🤞 👆 🔜 📨 ℹ [FastAPI 🕴](fastapi-people.md#_2){.internal-link target=_blank}. + +⚙️ 💬 🕴 🎏 🏢 💬. + +/// + +### 🚫 ⚙️ 💬 ❔ + +✔️ 🤯 👈 💬 ✔ 🌅 "🆓 💬", ⚫️ ⏩ 💭 ❔ 👈 💁‍♂️ 🏢 & 🌅 ⚠ ❔,, 👆 💪 🚫 📨 ❔. + +📂, 📄 🔜 🦮 👆 ✍ ▶️️ ❔ 👈 👆 💪 🌖 💪 🤚 👍 ❔, ⚖️ ❎ ⚠ 👆 ⏭ 💬. & 📂 👤 💪 ⚒ 💭 👤 🕧 ❔ 🌐, 🚥 ⚫️ ✊ 🕰. 👤 💪 🚫 🤙 👈 ⏮️ 💬 ⚙️. 👶 + +💬 💬 ⚙️ 🚫 💪 📇 📂, ❔ & ❔ 5️⃣📆 🤚 💸 💬. & 🕴 🕐 📂 💯 ▶️️ [FastAPI 🕴](fastapi-people.md#_2){.internal-link target=_blank}, 👆 🔜 🌅 🎲 📨 🌅 🙋 📂. + +🔛 🎏 🚄, 📤 💯 👩‍💻 💬 ⚙️, 📤 ↕ 🤞 👆 🔜 🔎 👱 💬 📤, 🌖 🌐 🕰. 👶 + +## 💰 📕 + +👆 💪 💰 🐕‍🦺 📕 (👤) 🔘 📂 💰. + +📤 👆 💪 🛍 👤 ☕ 👶 👶 💬 👏. 👶 + +& 👆 💪 ▶️️ 🥇1st ⚖️ 🌟 💰 FastAPI. 👶 👶 + +## 💰 🧰 👈 🏋️ FastAPI + +👆 ✔️ 👀 🧾, FastAPI 🧍 🔛 ⌚ 🐘, 💃 & Pydantic. + +👆 💪 💰: + +* ✡ 🍏 (Pydantic) +* 🗜 (💃, Uvicorn) + +--- + +👏 ❗ 👶 diff --git a/docs/em/docs/history-design-future.md b/docs/em/docs/history-design-future.md new file mode 100644 index 0000000..fe36643 --- /dev/null +++ b/docs/em/docs/history-design-future.md @@ -0,0 +1,79 @@ +# 📖, 🔧 & 🔮 + +🕰 🏁, **FastAPI** 👩‍💻 💭: + +> ⚫️❔ 📖 👉 🏗 ❓ ⚫️ 😑 ✔️ 👟 ⚪️➡️ 🕳 👌 👩‍❤‍👨 🗓️ [...] + +📥 🐥 🍖 👈 📖. + +## 🎛 + +👤 ✔️ 🏗 🔗 ⏮️ 🏗 📄 📚 1️⃣2️⃣🗓️ (🎰 🏫, 📎 ⚙️, 🔁 👨‍🏭, ☁ 💽, ♒️), ↘️ 📚 🏉 👩‍💻. + +🍕 👈, 👤 💪 🔬, 💯 & ⚙️ 📚 🎛. + +📖 **FastAPI** 👑 🍕 📖 🚮 ⏪. + +🙆‍♀ 📄 [🎛](alternatives.md){.internal-link target=_blank}: + +
+ +**FastAPI** 🚫🔜 🔀 🚥 🚫 ⏮️ 👷 🎏. + +📤 ✔️ 📚 🧰 ✍ ⏭ 👈 ✔️ ℹ 😮 🚮 🏗. + +👤 ✔️ ❎ 🏗 🆕 🛠️ 📚 1️⃣2️⃣🗓️. 🥇 👤 🔄 ❎ 🌐 ⚒ 📔 **FastAPI** ⚙️ 📚 🎏 🛠️, 🔌-🔌, & 🧰. + +✋️ ☝, 📤 🙅‍♂ 🎏 🎛 🌘 🏗 🕳 👈 🚚 🌐 👫 ⚒, ✊ 🏆 💭 ⚪️➡️ ⏮️ 🧰, & 🌀 👫 🏆 🌌 💪, ⚙️ 🇪🇸 ⚒ 👈 ➖🚫 💪 ⏭ (🐍 3️⃣.6️⃣ ➕ 🆎 🔑). + +
+ +## 🔬 + +⚙️ 🌐 ⏮️ 🎛 👤 ✔️ 🤞 💡 ⚪️➡️ 🌐 👫, ✊ 💭, & 🌀 👫 🏆 🌌 👤 💪 🔎 👤 & 🏉 👩‍💻 👤 ✔️ 👷 ⏮️. + +🖼, ⚫️ 🆑 👈 🎲 ⚫️ 🔜 ⚓️ 🔛 🐩 🐍 🆎 🔑. + +, 🏆 🎯 ⚙️ ⏪ ♻ 🐩. + +, ⏭ ▶️ 📟 **FastAPI**, 👤 💸 📚 🗓️ 🎓 🔌 🗄, 🎻 🔗, Oauth2️⃣, ♒️. 🎯 👫 💛, 🔀, & 🔺. + +## 🔧 + +⤴️ 👤 💸 🕰 🔧 👩‍💻 "🛠️" 👤 💚 ✔️ 👩‍💻 (👩‍💻 ⚙️ FastAPI). + +👤 💯 📚 💭 🏆 🌟 🐍 👨‍🎨: 🗒, 🆚 📟, 🎠 🧢 👨‍🎨. + +🏁 🐍 👩‍💻 🔬, 👈 📔 🔃 8️⃣0️⃣ 💯 👩‍💻. + +⚫️ ⛓ 👈 **FastAPI** 🎯 💯 ⏮️ 👨‍🎨 ⚙️ 8️⃣0️⃣ 💯 🐍 👩‍💻. & 🏆 🎏 👨‍🎨 😑 👷 ➡, 🌐 🚮 💰 🔜 👷 🌖 🌐 👨‍🎨. + +👈 🌌 👤 💪 🔎 🏆 🌌 📉 📟 ❎ 🌅 💪, ✔️ 🛠️ 🌐, 🆎 & ❌ ✅, ♒️. + +🌐 🌌 👈 🚚 🏆 🛠️ 💡 🌐 👩‍💻. + +## 📄 + +⏮️ 🔬 📚 🎛, 👤 💭 👈 👤 🔜 ⚙️ **Pydantic** 🚮 📈. + +⤴️ 👤 📉 ⚫️, ⚒ ⚫️ 🍕 🛠️ ⏮️ 🎻 🔗, 🐕‍🦺 🎏 🌌 🔬 ⚛ 📄, & 📉 👨‍🎨 🐕‍🦺 (🆎 ✅, ✍) ⚓️ 🔛 💯 📚 👨‍🎨. + +⏮️ 🛠️, 👤 📉 **💃**, 🎏 🔑 📄. + +## 🛠️ + +🕰 👤 ▶️ 🏗 **FastAPI** ⚫️, 🏆 🍖 ⏪ 🥉, 🔧 🔬, 📄 & 🧰 🔜, & 💡 🔃 🐩 & 🔧 🆑 & 🍋. + +## 🔮 + +👉 ☝, ⚫️ ⏪ 🆑 👈 **FastAPI** ⏮️ 🚮 💭 ➖ ⚠ 📚 👫👫. + +⚫️ 💆‍♂ 👐 🤭 ⏮️ 🎛 ♣ 📚 ⚙️ 💼 👍. + +📚 👩‍💻 & 🏉 ⏪ 🪀 🔛 **FastAPI** 👫 🏗 (🔌 👤 & 👇 🏉). + +✋️, 📤 📚 📈 & ⚒ 👟. + +**FastAPI** ✔️ 👑 🔮 ⤴️. + +& [👆 ℹ](help-fastapi.md){.internal-link target=_blank} 📉 👍. diff --git a/docs/em/docs/how-to/conditional-openapi.md b/docs/em/docs/how-to/conditional-openapi.md new file mode 100644 index 0000000..e47ea0c --- /dev/null +++ b/docs/em/docs/how-to/conditional-openapi.md @@ -0,0 +1,56 @@ +# 🎲 🗄 + +🚥 👆 💪, 👆 💪 ⚙️ ⚒ & 🌐 🔢 🔗 🗄 ✔ ⚓️ 🔛 🌐, & ❎ ⚫️ 🍕. + +## 🔃 💂‍♂, 🔗, & 🩺 + +🕵‍♂ 👆 🧾 👩‍💻 🔢 🏭 *🚫🔜 🚫* 🌌 🛡 👆 🛠️. + +👈 🚫 🚮 🙆 ➕ 💂‍♂ 👆 🛠️, *➡ 🛠️* 🔜 💪 🌐❔ 👫. + +🚥 📤 💂‍♂ ⚠ 👆 📟, ⚫️ 🔜 🔀. + +🕵‍♂ 🧾 ⚒ ⚫️ 🌅 ⚠ 🤔 ❔ 🔗 ⏮️ 👆 🛠️, & 💪 ⚒ ⚫️ 🌅 ⚠ 👆 ℹ ⚫️ 🏭. ⚫️ 💪 🤔 🎯 📨 💂‍♂ 🔘 🌌. + +🚥 👆 💚 🔐 👆 🛠️, 📤 📚 👍 👜 👆 💪, 🖼: + +* ⚒ 💭 👆 ✔️ 👍 🔬 Pydantic 🏷 👆 📨 💪 & 📨. +* 🔗 🙆 ✔ ✔ & 🔑 ⚙️ 🔗. +* 🙅 🏪 🔢 🔐, 🕴 🔐#️⃣. +* 🛠️ & ⚙️ 👍-💭 🔐 🧰, 💖 🇸🇲 & 🥙 🤝, ♒️. +* 🚮 🌅 🧽 ✔ 🎛 ⏮️ Oauth2️⃣ ↔ 🌐❔ 💪. +* ...♒️. + +👐, 👆 5️⃣📆 ✔️ 📶 🎯 ⚙️ 💼 🌐❔ 👆 🤙 💪 ❎ 🛠️ 🩺 🌐 (✅ 🏭) ⚖️ ⚓️ 🔛 📳 ⚪️➡️ 🌐 🔢. + +## 🎲 🗄 ⚪️➡️ ⚒ & 🇨🇻 { + +👆 💪 💪 ⚙️ 🎏 Pydantic ⚒ 🔗 👆 🏗 🗄 & 🩺 ⚜. + +🖼: + +{* ../../docs_src/conditional_openapi/tutorial001.py hl[6,11] *} + +📥 👥 📣 ⚒ `openapi_url` ⏮️ 🎏 🔢 `"/openapi.json"`. + +& ⤴️ 👥 ⚙️ ⚫️ 🕐❔ 🏗 `FastAPI` 📱. + +⤴️ 👆 💪 ❎ 🗄 (✅ 🎚 🩺) ⚒ 🌐 🔢 `OPENAPI_URL` 🛁 🎻, 💖: + +
+ +```console +$ OPENAPI_URL= uvicorn main:app + +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +``` + +
+ +⤴️ 🚥 👆 🚶 📛 `/openapi.json`, `/docs`, ⚖️ `/redoc` 👆 🔜 🤚 `404 Not Found` ❌ 💖: + +```JSON +{ + "detail": "Not Found" +} +``` diff --git a/docs/em/docs/how-to/custom-request-and-route.md b/docs/em/docs/how-to/custom-request-and-route.md new file mode 100644 index 0000000..32d7fbf --- /dev/null +++ b/docs/em/docs/how-to/custom-request-and-route.md @@ -0,0 +1,109 @@ +# 🛃 📨 & APIRoute 🎓 + +💼, 👆 5️⃣📆 💚 🔐 ⚛ ⚙️ `Request` & `APIRoute` 🎓. + +🎯, 👉 5️⃣📆 👍 🎛 ⚛ 🛠️. + +🖼, 🚥 👆 💚 ✍ ⚖️ 🔬 📨 💪 ⏭ ⚫️ 🛠️ 👆 🈸. + +/// danger + +👉 "🏧" ⚒. + +🚥 👆 ▶️ ⏮️ **FastAPI** 👆 💪 💚 🚶 👉 📄. + +/// + +## ⚙️ 💼 + +⚙️ 💼 🔌: + +* 🏭 🚫-🎻 📨 💪 🎻 (✅ `msgpack`). +* 🗜 🗜-🗜 📨 💪. +* 🔁 🚨 🌐 📨 💪. + +## 🚚 🛃 📨 💪 🔢 + +➡️ 👀 ❔ ⚒ ⚙️ 🛃 `Request` 🏿 🗜 🗜 📨. + +& `APIRoute` 🏿 ⚙️ 👈 🛃 📨 🎓. + +### ✍ 🛃 `GzipRequest` 🎓 + +/// tip + +👉 🧸 🖼 🎦 ❔ ⚫️ 👷, 🚥 👆 💪 🗜 🐕‍🦺, 👆 💪 ⚙️ 🚚 [`GzipMiddleware`](../advanced/middleware.md#gzipmiddleware){.internal-link target=_blank}. + +/// + +🥇, 👥 ✍ `GzipRequest` 🎓, ❔ 🔜 📁 `Request.body()` 👩‍🔬 🗜 💪 🔍 ☑ 🎚. + +🚥 📤 🙅‍♂ `gzip` 🎚, ⚫️ 🔜 🚫 🔄 🗜 💪. + +👈 🌌, 🎏 🛣 🎓 💪 🍵 🗜 🗜 ⚖️ 🗜 📨. + +{* ../../docs_src/custom_request_and_route/tutorial001.py hl[8:15] *} + +### ✍ 🛃 `GzipRoute` 🎓 + +⏭, 👥 ✍ 🛃 🏿 `fastapi.routing.APIRoute` 👈 🔜 ⚒ ⚙️ `GzipRequest`. + +👉 🕰, ⚫️ 🔜 📁 👩‍🔬 `APIRoute.get_route_handler()`. + +👉 👩‍🔬 📨 🔢. & 👈 🔢 ⚫️❔ 🔜 📨 📨 & 📨 📨. + +📥 👥 ⚙️ ⚫️ ✍ `GzipRequest` ⚪️➡️ ⏮️ 📨. + +{* ../../docs_src/custom_request_and_route/tutorial001.py hl[18:26] *} + +/// note | 📡 ℹ + +`Request` ✔️ `request.scope` 🔢, 👈 🐍 `dict` ⚗ 🗃 🔗 📨. + + `Request` ✔️ `request.receive`, 👈 🔢 "📨" 💪 📨. + + `scope` `dict` & `receive` 🔢 👯‍♂️ 🍕 🔫 🔧. + + & 👈 2️⃣ 👜, `scope` & `receive`, ⚫️❔ 💪 ✍ 🆕 `Request` 👐. + +💡 🌅 🔃 `Request` ✅ 💃 🩺 🔃 📨. + +/// + +🕴 👜 🔢 📨 `GzipRequest.get_route_handler` 🔨 🎏 🗜 `Request` `GzipRequest`. + +🔨 👉, 👆 `GzipRequest` 🔜 ✊ 💅 🗜 📊 (🚥 💪) ⏭ 🚶‍♀️ ⚫️ 👆 *➡ 🛠️*. + +⏮️ 👈, 🌐 🏭 ⚛ 🎏. + +✋️ ↩️ 👆 🔀 `GzipRequest.body`, 📨 💪 🔜 🔁 🗜 🕐❔ ⚫️ 📐 **FastAPI** 🕐❔ 💪. + +## 🔐 📨 💪 ⚠ 🐕‍🦺 + +/// tip + +❎ 👉 🎏 ⚠, ⚫️ 🎲 📚 ⏩ ⚙️ `body` 🛃 🐕‍🦺 `RequestValidationError` ([🚚 ❌](../tutorial/handling-errors.md#requestvalidationerror){.internal-link target=_blank}). + +✋️ 👉 🖼 ☑ & ⚫️ 🎦 ❔ 🔗 ⏮️ 🔗 🦲. + +/// + +👥 💪 ⚙️ 👉 🎏 🎯 🔐 📨 💪 ⚠ 🐕‍🦺. + +🌐 👥 💪 🍵 📨 🔘 `try`/`except` 🍫: + +{* ../../docs_src/custom_request_and_route/tutorial002.py hl[13,15] *} + +🚥 ⚠ 📉, `Request` 👐 🔜 ↔, 👥 💪 ✍ & ⚒ ⚙️ 📨 💪 🕐❔ 🚚 ❌: + +{* ../../docs_src/custom_request_and_route/tutorial002.py hl[16:18] *} + +## 🛃 `APIRoute` 🎓 📻 + +👆 💪 ⚒ `route_class` 🔢 `APIRouter`: + +{* ../../docs_src/custom_request_and_route/tutorial003.py hl[26] *} + +👉 🖼, *➡ 🛠️* 🔽 `router` 🔜 ⚙️ 🛃 `TimedRoute` 🎓, & 🔜 ✔️ ➕ `X-Response-Time` 🎚 📨 ⏮️ 🕰 ⚫️ ✊ 🏗 📨: + +{* ../../docs_src/custom_request_and_route/tutorial003.py hl[13:20] *} diff --git a/docs/em/docs/how-to/extending-openapi.md b/docs/em/docs/how-to/extending-openapi.md new file mode 100644 index 0000000..c3e6c7f --- /dev/null +++ b/docs/em/docs/how-to/extending-openapi.md @@ -0,0 +1,83 @@ +# ↔ 🗄 + +/// warning + +👉 👍 🏧 ⚒. 👆 🎲 💪 🚶 ⚫️. + +🚥 👆 📄 🔰 - 👩‍💻 🦮, 👆 💪 🎲 🚶 👉 📄. + +🚥 👆 ⏪ 💭 👈 👆 💪 🔀 🏗 🗄 🔗, 😣 👂. + +/// + +📤 💼 🌐❔ 👆 💪 💪 🔀 🏗 🗄 🔗. + +👉 📄 👆 🔜 👀 ❔. + +## 😐 🛠️ + +😐 (🔢) 🛠️, ⏩. + +`FastAPI` 🈸 (👐) ✔️ `.openapi()` 👩‍🔬 👈 📈 📨 🗄 🔗. + +🍕 🈸 🎚 🏗, *➡ 🛠️* `/openapi.json` (⚖️ ⚫️❔ 👆 ⚒ 👆 `openapi_url`) ®. + +⚫️ 📨 🎻 📨 ⏮️ 🏁 🈸 `.openapi()` 👩‍🔬. + +🔢, ⚫️❔ 👩‍🔬 `.openapi()` 🔨 ✅ 🏠 `.openapi_schema` 👀 🚥 ⚫️ ✔️ 🎚 & 📨 👫. + +🚥 ⚫️ 🚫, ⚫️ 🏗 👫 ⚙️ 🚙 🔢 `fastapi.openapi.utils.get_openapi`. + +& 👈 🔢 `get_openapi()` 📨 🔢: + +* `title`: 🗄 📛, 🎦 🩺. +* `version`: ⏬ 👆 🛠️, ✅ `2.5.0`. +* `openapi_version`: ⏬ 🗄 🔧 ⚙️. 🔢, ⏪: `3.0.2`. +* `description`: 📛 👆 🛠️. +* `routes`: 📇 🛣, 👫 🔠 ® *➡ 🛠️*. 👫 ✊ ⚪️➡️ `app.routes`. + +## 🔑 🔢 + +⚙️ ℹ 🔛, 👆 💪 ⚙️ 🎏 🚙 🔢 🏗 🗄 🔗 & 🔐 🔠 🍕 👈 👆 💪. + +🖼, ➡️ 🚮 📄 🗄 ↔ 🔌 🛃 🔱. + +### 😐 **FastAPI** + +🥇, ✍ 🌐 👆 **FastAPI** 🈸 🛎: + +{* ../../docs_src/extending_openapi/tutorial001.py hl[1,4,7:9] *} + +### 🏗 🗄 🔗 + +⤴️, ⚙️ 🎏 🚙 🔢 🏗 🗄 🔗, 🔘 `custom_openapi()` 🔢: + +{* ../../docs_src/extending_openapi/tutorial001.py hl[2,15:20] *} + +### 🔀 🗄 🔗 + +🔜 👆 💪 🚮 📄 ↔, ❎ 🛃 `x-logo` `info` "🎚" 🗄 🔗: + +{* ../../docs_src/extending_openapi/tutorial001.py hl[21:23] *} + +### 💾 🗄 🔗 + +👆 💪 ⚙️ 🏠 `.openapi_schema` "💾", 🏪 👆 🏗 🔗. + +👈 🌌, 👆 🈸 🏆 🚫 ✔️ 🏗 🔗 🔠 🕰 👩‍💻 📂 👆 🛠️ 🩺. + +⚫️ 🔜 🏗 🕴 🕐, & ⤴️ 🎏 💾 🔗 🔜 ⚙️ ⏭ 📨. + +{* ../../docs_src/extending_openapi/tutorial001.py hl[13:14,24:25] *} + +### 🔐 👩‍🔬 + +🔜 👆 💪 ❎ `.openapi()` 👩‍🔬 ⏮️ 👆 🆕 🔢. + +{* ../../docs_src/extending_openapi/tutorial001.py hl[28] *} + +### ✅ ⚫️ + +🕐 👆 🚶 http://127.0.0.1:8000/redoc 👆 🔜 👀 👈 👆 ⚙️ 👆 🛃 🔱 (👉 🖼, **FastAPI**'Ⓜ 🔱): + + diff --git a/docs/em/docs/how-to/graphql.md b/docs/em/docs/how-to/graphql.md new file mode 100644 index 0000000..083e9eb --- /dev/null +++ b/docs/em/docs/how-to/graphql.md @@ -0,0 +1,60 @@ +# 🕹 + +**FastAPI** ⚓️ 🔛 **🔫** 🐩, ⚫️ 📶 ⏩ 🛠️ 🙆 **🕹** 🗃 🔗 ⏮️ 🔫. + +👆 💪 🌀 😐 FastAPI *➡ 🛠️* ⏮️ 🕹 🔛 🎏 🈸. + +/// tip + +**🕹** ❎ 📶 🎯 ⚙️ 💼. + +⚫️ ✔️ **📈** & **⚠** 🕐❔ 🔬 ⚠ **🕸 🔗**. + +⚒ 💭 👆 🔬 🚥 **💰** 👆 ⚙️ 💼 ⚖ **👐**. 👶 + +/// + +## 🕹 🗃 + +📥 **🕹** 🗃 👈 ✔️ **🔫** 🐕‍🦺. 👆 💪 ⚙️ 👫 ⏮️ **FastAPI**: + +* 🍓 👶 + * ⏮️ 🩺 FastAPI +* 👸 + * ⏮️ 🩺 FastAPI +* 🍟 + * ⏮️ 🍟 🔫 🚚 🔫 🛠️ +* + * ⏮️ 💃-Graphene3️⃣ + +## 🕹 ⏮️ 🍓 + +🚥 👆 💪 ⚖️ 💚 👷 ⏮️ **🕹**, **🍓** **👍** 🗃 ⚫️ ✔️ 🔧 🔐 **FastAPI** 🔧, ⚫️ 🌐 ⚓️ 🔛 **🆎 ✍**. + +⚓️ 🔛 👆 ⚙️ 💼, 👆 5️⃣📆 💖 ⚙️ 🎏 🗃, ✋️ 🚥 👆 💭 👤, 👤 🔜 🎲 🤔 👆 🔄 **🍓**. + +📥 🤪 🎮 ❔ 👆 💪 🛠️ 🍓 ⏮️ FastAPI: + +{* ../../docs_src/graphql/tutorial001.py hl[3,22,25:26] *} + +👆 💪 💡 🌅 🔃 🍓 🍓 🧾. + +& 🩺 🔃 🍓 ⏮️ FastAPI. + +## 🗝 `GraphQLApp` ⚪️➡️ 💃 + +⏮️ ⏬ 💃 🔌 `GraphQLApp` 🎓 🛠️ ⏮️ . + +⚫️ 😢 ⚪️➡️ 💃, ✋️ 🚥 👆 ✔️ 📟 👈 ⚙️ ⚫️, 👆 💪 💪 **↔** 💃-Graphene3️⃣, 👈 📔 🎏 ⚙️ 💼 & ✔️ **🌖 🌓 🔢**. + +/// tip + +🚥 👆 💪 🕹, 👤 🔜 👍 👆 ✅ 👅 🍓, ⚫️ ⚓️ 🔛 🆎 ✍ ↩️ 🛃 🎓 & 🆎. + +/// + +## 💡 🌅 + +👆 💪 💡 🌅 🔃 **🕹** 🛂 🕹 🧾. + +👆 💪 ✍ 🌅 🔃 🔠 👈 🗃 🔬 🔛 👫 🔗. diff --git a/docs/em/docs/index.md b/docs/em/docs/index.md new file mode 100644 index 0000000..5f5fc2e --- /dev/null +++ b/docs/em/docs/index.md @@ -0,0 +1,474 @@ +# FastAPI + + + +

+ FastAPI +

+

+ FastAPI 🛠️, ↕ 🎭, ⏩ 💡, ⏩ 📟, 🔜 🏭 +

+

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

+ +--- + +**🧾**: https://fastapi.tiangolo.com + +**ℹ 📟**: https://github.com/fastapi/fastapi + +--- + +FastAPI 🏛, ⏩ (↕-🎭), 🕸 🛠️ 🏗 🛠️ ⏮️ 🐍 3️⃣.8️⃣ ➕ ⚓️ 🔛 🐩 🐍 🆎 🔑. + +🔑 ⚒: + +* **⏩**: 📶 ↕ 🎭, 🔛 🇷🇪 ⏮️ **✳** & **🚶** (👏 💃 & Pydantic). [1️⃣ ⏩ 🐍 🛠️ 💪](#_15). +* **⏩ 📟**: 📈 🚅 🛠️ ⚒ 🔃 2️⃣0️⃣0️⃣ 💯 3️⃣0️⃣0️⃣ 💯. * +* **👩‍❤‍👨 🐛**: 📉 🔃 4️⃣0️⃣ 💯 🗿 (👩‍💻) 📉 ❌. * +* **🏋️**: 👑 👨‍🎨 🐕‍🦺. 🛠️ 🌐. 🌘 🕰 🛠️. +* **⏩**: 🔧 ⏩ ⚙️ & 💡. 🌘 🕰 👂 🩺. +* **📏**: 📉 📟 ❎. 💗 ⚒ ⚪️➡️ 🔠 🔢 📄. 👩‍❤‍👨 🐛. +* **🏋️**: 🤚 🏭-🔜 📟. ⏮️ 🏧 🎓 🧾. +* **🐩-⚓️**: ⚓️ 🔛 (& 🍕 🔗 ⏮️) 📂 🐩 🔗: 🗄 (⏪ 💭 🦁) & 🎻 🔗. + +* ⚖ ⚓️ 🔛 💯 🔛 🔗 🛠️ 🏉, 🏗 🏭 🈸. + +## 💰 + + + +{% if sponsors %} +{% for sponsor in sponsors.gold -%} + +{% endfor -%} +{%- for sponsor in sponsors.silver -%} + +{% endfor %} +{% endif %} + + + +🎏 💰 + +## 🤔 + +"_[...] 👤 ⚙️ **FastAPI** 📚 👫 📆. [...] 👤 🤙 📆 ⚙️ ⚫️ 🌐 👇 🏉 **⚗ 🐕‍🦺 🤸‍♂**. 👫 💆‍♂ 🛠️ 🔘 🐚 **🖥** 🏬 & **📠** 🏬._" + +
🧿 🇵🇰 - 🤸‍♂ (🇦🇪)
+ +--- + +"_👥 🛠️ **FastAPI** 🗃 🤖 **🎂** 💽 👈 💪 🔢 🚚 **🔮**. [👨📛]_" + +
🇮🇹 🇸🇻, 👨📛 👨📛, & 🇱🇰 🕉 🕉 - 🙃 (🇦🇪)
+ +--- + +"_**📺** 🙏 📣 📂-ℹ 🚀 👆 **⚔ 🧾** 🎶 🛠️: **📨**❗ [🏗 ⏮️ **FastAPI**]_" + +
✡ 🍏, 👖 🇪🇸, 🌲 🍏 - 📺 (🇦🇪)
+ +--- + +"_👤 🤭 🌕 😄 🔃 **FastAPI**. ⚫️ 🎊 ❗_" + +
✡ 🇭🇰 - 🐍 🔢 📻 🦠 (🇦🇪)
+ +--- + +"_🤙, ⚫️❔ 👆 ✔️ 🏗 👀 💎 💠 & 🇵🇱. 📚 🌌, ⚫️ ⚫️❔ 👤 💚 **🤗** - ⚫️ 🤙 😍 👀 👱 🏗 👈._" + +
✡ 🗄 - 🤗 👼 (🇦🇪)
+ +--- + +"_🚥 👆 👀 💡 1️⃣ **🏛 🛠️** 🏗 🎂 🔗, ✅ 👅 **FastAPI** [...] ⚫️ ⏩, ⏩ ⚙️ & ⏩ 💡 [...]_" + +"_👥 ✔️ 🎛 🤭 **FastAPI** 👆 **🔗** [...] 👤 💭 👆 🔜 💖 ⚫️ [...]_" + +
🇱🇨 🇸🇲 - ✡ Honnibal - 💥 👲 🕴 - 🌈 👼 (🇦🇪) - (🇦🇪)
+ +--- + +"_🚥 🙆 👀 🏗 🏭 🐍 🛠️, 👤 🔜 🏆 👍 **FastAPI**. ⚫️ **💎 🏗**, **🙅 ⚙️** & **🏆 🛠️**, ⚫️ ✔️ ▶️️ **🔑 🦲** 👆 🛠️ 🥇 🛠️ 🎛 & 🚘 📚 🏧 & 🐕‍🦺 ✅ 👆 🕹 🔫 👨‍💻._" + +
🇹🇦 🍰 - 📻 (🇦🇪)
+ +--- + +## **🏎**, FastAPI 🇳🇨 + + + +🚥 👆 🏗 📱 ⚙️ 📶 ↩️ 🕸 🛠️, ✅ 👅 **🏎**. + +**🏎** FastAPI 🐥 👪. & ⚫️ 🎯 **FastAPI 🇳🇨**. 👶 👶 👶 + +## 📄 + +🐍 3️⃣.7️⃣ ➕ + +FastAPI 🧍 🔛 ⌚ 🐘: + +* 💃 🕸 🍕. +* Pydantic 📊 🍕. + +## 👷‍♂ + +
+ +```console +$ pip install "fastapi[standard]" + +---> 100% +``` + +
+ +👆 🔜 💪 🔫 💽, 🏭 ✅ Uvicorn ⚖️ Hypercorn. + +
+ +```console +$ pip install "uvicorn[standard]" + +---> 100% +``` + +
+ +## 🖼 + +### ✍ ⚫️ + +* ✍ 📁 `main.py` ⏮️: + +```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} +``` + +
+⚖️ ⚙️ async def... + +🚥 👆 📟 ⚙️ `async` / `await`, ⚙️ `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} +``` + +**🗒**: + +🚥 👆 🚫 💭, ✅ _"🏃 ❓" _ 📄 🔃 `async` & `await` 🩺. + +
+ +### 🏃 ⚫️ + +🏃 💽 ⏮️: + +
+ +```console +$ uvicorn main:app --reload + +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +INFO: Started reloader process [28720] +INFO: Started server process [28722] +INFO: Waiting for application startup. +INFO: Application startup complete. +``` + +
+ +
+🔃 📋 uvicorn main:app --reload... + +📋 `uvicorn main:app` 🔗: + +* `main`: 📁 `main.py` (🐍 "🕹"). +* `app`: 🎚 ✍ 🔘 `main.py` ⏮️ ⏸ `app = FastAPI()`. +* `--reload`: ⚒ 💽 ⏏ ⏮️ 📟 🔀. 🕴 👉 🛠️. + +
+ +### ✅ ⚫️ + +📂 👆 🖥 http://127.0.0.1:8000/items/5?q=somequery. + +👆 🔜 👀 🎻 📨: + +```JSON +{"item_id": 5, "q": "somequery"} +``` + +👆 ⏪ ✍ 🛠️ 👈: + +* 📨 🇺🇸🔍 📨 _➡_ `/` & `/items/{item_id}`. +* 👯‍♂️ _➡_ ✊ `GET` 🛠️ (💭 🇺🇸🔍 _👩‍🔬_). +* _➡_ `/items/{item_id}` ✔️ _➡ 🔢_ `item_id` 👈 🔜 `int`. +* _➡_ `/items/{item_id}` ✔️ 📦 `str` _🔢 = `q`. + +### 🎓 🛠️ 🩺 + +🔜 🚶 http://127.0.0.1:8000/docs. + +👆 🔜 👀 🏧 🎓 🛠️ 🧾 (🚚 🦁 🎚): + +![Swagger UI](https://fastapi.tiangolo.com/img/index/index-01-swagger-ui-simple.png) + +### 🎛 🛠️ 🩺 + +& 🔜, 🚶 http://127.0.0.1:8000/redoc. + +👆 🔜 👀 🎛 🏧 🧾 (🚚 📄): + +![ReDoc](https://fastapi.tiangolo.com/img/index/index-02-redoc-simple.png) + +## 🖼 ♻ + +🔜 🔀 📁 `main.py` 📨 💪 ⚪️➡️ `PUT` 📨. + +📣 💪 ⚙️ 🐩 🐍 🆎, 👏 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} +``` + +💽 🔜 🔃 🔁 (↩️ 👆 🚮 `--reload` `uvicorn` 📋 🔛). + +### 🎓 🛠️ 🩺 ♻ + +🔜 🚶 http://127.0.0.1:8000/docs. + +* 🎓 🛠️ 🧾 🔜 🔁 ℹ, 🔌 🆕 💪: + +![Swagger UI](https://fastapi.tiangolo.com/img/index/index-03-swagger-02.png) + +* 🖊 🔛 🔼 "🔄 ⚫️ 👅", ⚫️ ✔ 👆 🥧 🔢 & 🔗 🔗 ⏮️ 🛠️: + +![Swagger UI interaction](https://fastapi.tiangolo.com/img/index/index-04-swagger-03.png) + +* ⤴️ 🖊 🔛 "🛠️" 🔼, 👩‍💻 🔢 🔜 🔗 ⏮️ 👆 🛠️, 📨 🔢, 🤚 🏁 & 🎦 👫 🔛 🖥: + +![Swagger UI interaction](https://fastapi.tiangolo.com/img/index/index-05-swagger-04.png) + +### 🎛 🛠️ 🩺 ♻ + +& 🔜, 🚶 http://127.0.0.1:8000/redoc. + +* 🎛 🧾 🔜 🎨 🆕 🔢 🔢 & 💪: + +![ReDoc](https://fastapi.tiangolo.com/img/index/index-06-redoc-02.png) + +### 🌃 + +📄, 👆 📣 **🕐** 🆎 🔢, 💪, ♒️. 🔢 🔢. + +👆 👈 ⏮️ 🐩 🏛 🐍 🆎. + +👆 🚫 ✔️ 💡 🆕 ❕, 👩‍🔬 ⚖️ 🎓 🎯 🗃, ♒️. + +🐩 **🐍 3️⃣.7️⃣ ➕**. + +🖼, `int`: + +```Python +item_id: int +``` + +⚖️ 🌖 🏗 `Item` 🏷: + +```Python +item: Item +``` + +...& ⏮️ 👈 👁 📄 👆 🤚: + +* 👨‍🎨 🐕‍🦺, 🔌: + * 🛠️. + * 🆎 ✅. +* 🔬 💽: + * 🏧 & 🆑 ❌ 🕐❔ 📊 ❌. + * 🔬 🙇 🐦 🎻 🎚. +* 🛠️ 🔢 💽: 👟 ⚪️➡️ 🕸 🐍 💽 & 🆎. 👂 ⚪️➡️: + * 🎻. + * ➡ 🔢. + * 🔢 🔢. + * 🍪. + * 🎚. + * 📨. + * 📁. +* 🛠️ 🔢 📊: 🗜 ⚪️➡️ 🐍 💽 & 🆎 🕸 💽 (🎻): + * 🗜 🐍 🆎 (`str`, `int`, `float`, `bool`, `list`, ♒️). + * `datetime` 🎚. + * `UUID` 🎚. + * 💽 🏷. + * ...& 📚 🌖. +* 🏧 🎓 🛠️ 🧾, 🔌 2️⃣ 🎛 👩‍💻 🔢: + * 🦁 🎚. + * 📄. + +--- + +👟 🔙 ⏮️ 📟 🖼, **FastAPI** 🔜: + +* ✔ 👈 📤 `item_id` ➡ `GET` & `PUT` 📨. +* ✔ 👈 `item_id` 🆎 `int` `GET` & `PUT` 📨. + * 🚥 ⚫️ 🚫, 👩‍💻 🔜 👀 ⚠, 🆑 ❌. +* ✅ 🚥 📤 📦 🔢 🔢 📛 `q` ( `http://127.0.0.1:8000/items/foo?q=somequery`) `GET` 📨. + * `q` 🔢 📣 ⏮️ `= None`, ⚫️ 📦. + * 🍵 `None` ⚫️ 🔜 🚚 (💪 💼 ⏮️ `PUT`). +* `PUT` 📨 `/items/{item_id}`, ✍ 💪 🎻: + * ✅ 👈 ⚫️ ✔️ ✔ 🔢 `name` 👈 🔜 `str`. + * ✅ 👈 ⚫️ ✔️ ✔ 🔢 `price` 👈 ✔️ `float`. + * ✅ 👈 ⚫️ ✔️ 📦 🔢 `is_offer`, 👈 🔜 `bool`, 🚥 🎁. + * 🌐 👉 🔜 👷 🙇 🐦 🎻 🎚. +* 🗜 ⚪️➡️ & 🎻 🔁. +* 📄 🌐 ⏮️ 🗄, 👈 💪 ⚙️: + * 🎓 🧾 ⚙️. + * 🏧 👩‍💻 📟 ⚡ ⚙️, 📚 🇪🇸. +* 🚚 2️⃣ 🎓 🧾 🕸 🔢 🔗. + +--- + +👥 🖌 🧽, ✋️ 👆 ⏪ 🤚 💭 ❔ ⚫️ 🌐 👷. + +🔄 🔀 ⏸ ⏮️: + +```Python + return {"item_name": item.name, "item_id": item_id} +``` + +...⚪️➡️: + +```Python + ... "item_name": item.name ... +``` + +...: + +```Python + ... "item_price": item.price ... +``` + +...& 👀 ❔ 👆 👨‍🎨 🔜 🚘-🏁 🔢 & 💭 👫 🆎: + +![editor support](https://fastapi.tiangolo.com/img/vscode-completion.png) + +🌅 🏁 🖼 🔌 🌅 ⚒, 👀 🔰 - 👩‍💻 🦮. + +**🚘 🚨**: 🔰 - 👩‍💻 🦮 🔌: + +* 📄 **🔢** ⚪️➡️ 🎏 🎏 🥉: **🎚**, **🍪**, **📨 🏑** & **📁**. +* ❔ ⚒ **🔬 ⚛** `maximum_length` ⚖️ `regex`. +* 📶 🏋️ & ⏩ ⚙️ **🔗 💉** ⚙️. +* 💂‍♂ & 🤝, ✅ 🐕‍🦺 **Oauth2️⃣** ⏮️ **🥙 🤝** & **🇺🇸🔍 🔰** 🔐. +* 🌅 🏧 (✋️ 😨 ⏩) ⚒ 📣 **🙇 🐦 🎻 🏷** (👏 Pydantic). +* **🕹** 🛠️ ⏮️ 🍓 & 🎏 🗃. +* 📚 ➕ ⚒ (👏 💃): + * ** *️⃣ ** + * 📶 ⏩ 💯 ⚓️ 🔛 🇸🇲 & `pytest` + * **⚜** + * **🍪 🎉** + * ...& 🌖. + +## 🎭 + +🔬 🇸🇲 📇 🎦 **FastAPI** 🈸 🏃‍♂ 🔽 Uvicorn 1️⃣ ⏩ 🐍 🛠️ 💪, 🕴 🔛 💃 & Uvicorn 👫 (⚙️ 🔘 FastAPI). (*) + +🤔 🌖 🔃 ⚫️, 👀 📄 📇. + +## 📦 🔗 + +⚙️ Pydantic: + +* email-validator - 📧 🔬. + +⚙️ 💃: + +* httpx - ✔ 🚥 👆 💚 ⚙️ `TestClient`. +* jinja2 - ✔ 🚥 👆 💚 ⚙️ 🔢 📄 📳. +* python-multipart - ✔ 🚥 👆 💚 🐕‍🦺 📨 "✍", ⏮️ `request.form()`. +* itsdangerous - ✔ `SessionMiddleware` 🐕‍🦺. +* pyyaml - ✔ 💃 `SchemaGenerator` 🐕‍🦺 (👆 🎲 🚫 💪 ⚫️ ⏮️ FastAPI). + +⚙️ FastAPI / 💃: + +* uvicorn - 💽 👈 📐 & 🍦 👆 🈸. +* orjson - ✔ 🚥 👆 💚 ⚙️ `ORJSONResponse`. +* ujson - ✔ 🚥 👆 💚 ⚙️ `UJSONResponse`. + +👆 💪 ❎ 🌐 👫 ⏮️ `pip install "fastapi[all]"`. + +## 🛂 + +👉 🏗 ® 🔽 ⚖ 🇩🇪 🛂. diff --git a/docs/em/docs/project-generation.md b/docs/em/docs/project-generation.md new file mode 100644 index 0000000..ef6a218 --- /dev/null +++ b/docs/em/docs/project-generation.md @@ -0,0 +1,84 @@ +# 🏗 ⚡ - 📄 + +👆 💪 ⚙️ 🏗 🚂 🤚 ▶️, ⚫️ 🔌 📚 ▶️ ⚒ 🆙, 💂‍♂, 💽 & 🛠️ 🔗 ⏪ ⌛ 👆. + +🏗 🚂 🔜 🕧 ✔️ 📶 🙃 🖥 👈 👆 🔜 ℹ & 🛠️ 👆 👍 💪, ✋️ ⚫️ 💪 👍 ▶️ ☝ 👆 🏗. + +## 🌕 📚 FastAPI ✳ + +📂: https://github.com/tiangolo/full-stack-fastapi-postgresql + +### 🌕 📚 FastAPI ✳ - ⚒ + +* 🌕 **☁** 🛠️ (☁ 🧢). +* ☁ 🐝 📳 🛠️. +* **☁ ✍** 🛠️ & 🛠️ 🇧🇿 🛠️. +* **🏭 🔜** 🐍 🕸 💽 ⚙️ Uvicorn & 🐁. +* 🐍 **FastAPI** 👩‍💻: + * **⏩**: 📶 ↕ 🎭, 🔛 🇷🇪 ⏮️ **✳** & **🚶** (👏 💃 & Pydantic). + * **🏋️**: 👑 👨‍🎨 🐕‍🦺. 🛠️ 🌐. 🌘 🕰 🛠️. + * **⏩**: 🔧 ⏩ ⚙️ & 💡. 🌘 🕰 👂 🩺. + * **📏**: 📉 📟 ❎. 💗 ⚒ ⚪️➡️ 🔠 🔢 📄. + * **🏋️**: 🤚 🏭-🔜 📟. ⏮️ 🏧 🎓 🧾. + * **🐩-⚓️**: ⚓️ 🔛 (& 🍕 🔗 ⏮️) 📂 🐩 🔗: 🗄 & 🎻 🔗. + * **📚 🎏 ⚒** 🔌 🏧 🔬, 🛠️, 🎓 🧾, 🤝 ⏮️ Oauth2️⃣ 🥙 🤝, ♒️. +* **🔐 🔐** 🔁 🔢. +* **🥙 🤝** 🤝. +* **🇸🇲** 🏷 (🔬 🏺 ↔, 👫 💪 ⚙️ ⏮️ 🥒 👨‍🏭 🔗). +* 🔰 ▶️ 🏷 👩‍💻 (🔀 & ❎ 👆 💪). +* **⚗** 🛠️. +* **⚜** (✖️ 🇨🇳 ℹ 🤝). +* **🥒** 👨‍🏭 👈 💪 🗄 & ⚙️ 🏷 & 📟 ⚪️➡️ 🎂 👩‍💻 🍕. +* 🎂 👩‍💻 💯 ⚓️ 🔛 **✳**, 🛠️ ⏮️ ☁, 👆 💪 💯 🌕 🛠️ 🔗, 🔬 🔛 💽. ⚫️ 🏃 ☁, ⚫️ 💪 🏗 🆕 💽 🏪 ⚪️➡️ 🖌 🔠 🕰 (👆 💪 ⚙️ ✳, ✳, ✳, ⚖️ ⚫️❔ 👆 💚, & 💯 👈 🛠️ 👷). +* ⏩ 🐍 🛠️ ⏮️ **📂 💾** 🛰 ⚖️-☁ 🛠️ ⏮️ ↔ 💖 ⚛ ⚗ ⚖️ 🎙 🎙 📟 📂. +* **🎦** 🕸: + * 🏗 ⏮️ 🎦 ✳. + * **🥙 🤝** 🚚. + * 💳 🎑. + * ⏮️ 💳, 👑 🕹 🎑. + * 👑 🕹 ⏮️ 👩‍💻 🏗 & 📕. + * 👤 👩‍💻 📕. + * **🇷🇪**. + * **🎦-📻**. + * **Vuetify** 🌹 🧽 🔧 🦲. + * **📕**. + * ☁ 💽 ⚓️ 🔛 **👌** (📶 🤾 🎆 ⏮️ 🎦-📻). + * ☁ 👁-▶️ 🏗, 👆 🚫 💪 🖊 ⚖️ 💕 ✍ 📟. + * 🕸 💯 🏃 🏗 🕰 (💪 🔕 💁‍♂️). + * ⚒ 🔧 💪, ⚫️ 👷 👅 📦, ✋️ 👆 💪 🏤-🏗 ⏮️ 🎦 ✳ ⚖️ ✍ ⚫️ 👆 💪, & 🏤-⚙️ ⚫️❔ 👆 💚. +* ** *️⃣ ** ✳ 💽, 👆 💪 🔀 ⚫️ ⚙️ 📁 & ✳ 💪. +* **🥀** 🥒 👨‍🏭 ⚖. +* 📐 ⚖ 🖖 🕸 & 👩‍💻 ⏮️ **Traefik**, 👆 💪 ✔️ 👯‍♂️ 🔽 🎏 🆔, 👽 ➡, ✋️ 🍦 🎏 📦. +* Traefik 🛠️, ✅ ➡️ 🗜 **🇺🇸🔍** 📄 🏧 ⚡. +* ✳ **🆑** (🔁 🛠️), 🔌 🕸 & 👩‍💻 🔬. + +## 🌕 📚 FastAPI 🗄 + +📂: https://github.com/tiangolo/full-stack-fastapi-couchbase + +👶 👶 **⚠** 👶 👶 + +🚥 👆 ▶️ 🆕 🏗 ⚪️➡️ 🖌, ✅ 🎛 📥. + +🖼, 🏗 🚂 🌕 📚 FastAPI ✳ 💪 👍 🎛, ⚫️ 🎯 🚧 & ⚙️. & ⚫️ 🔌 🌐 🆕 ⚒ & 📈. + +👆 🆓 ⚙️ 🗄-⚓️ 🚂 🚥 👆 💚, ⚫️ 🔜 🎲 👷 👌, & 🚥 👆 ⏪ ✔️ 🏗 🏗 ⏮️ ⚫️ 👈 👌 👍 (& 👆 🎲 ⏪ ℹ ⚫️ ♣ 👆 💪). + +👆 💪 ✍ 🌅 🔃 ⚫️ 🩺 🏦. + +## 🌕 📚 FastAPI ✳ + +...💪 👟 ⏪, ⚓️ 🔛 👇 🕰 🚚 & 🎏 ⚖. 👶 👶 + +## 🎰 🏫 🏷 ⏮️ 🌈 & FastAPI + +📂: https://github.com/microsoft/cookiecutter-spacy-fastapi + +### 🎰 🏫 🏷 ⏮️ 🌈 & FastAPI - ⚒ + +* **🌈** 🕜 🏷 🛠️. +* **☁ 🧠 🔎** 📨 📁 🏗. +* **🏭 🔜** 🐍 🕸 💽 ⚙️ Uvicorn & 🐁. +* **☁ 👩‍💻** Kubernetes (🦲) 🆑/💿 🛠️ 🏗. +* **🤸‍♂** 💪 ⚒ 1️⃣ 🌈 🏗 🇪🇸 ⏮️ 🏗 🖥. +* **💪 🏧** 🎏 🏷 🛠️ (Pytorch, 🇸🇲), 🚫 🌈. diff --git a/docs/em/docs/python-types.md b/docs/em/docs/python-types.md new file mode 100644 index 0000000..d2af23b --- /dev/null +++ b/docs/em/docs/python-types.md @@ -0,0 +1,542 @@ +# 🐍 🆎 🎶 + +🐍 ✔️ 🐕‍🦺 📦 "🆎 🔑". + +👫 **"🆎 🔑"** 🎁 ❕ 👈 ✔ 📣 🆎 🔢. + +📣 🆎 👆 🔢, 👨‍🎨 & 🧰 💪 🤝 👆 👍 🐕‍🦺. + +👉 **⏩ 🔰 / ↗️** 🔃 🐍 🆎 🔑. ⚫️ 📔 🕴 💯 💪 ⚙️ 👫 ⏮️ **FastAPI**... ❔ 🤙 📶 🐥. + +**FastAPI** 🌐 ⚓️ 🔛 👫 🆎 🔑, 👫 🤝 ⚫️ 📚 📈 & 💰. + +✋️ 🚥 👆 🙅 ⚙️ **FastAPI**, 👆 🔜 💰 ⚪️➡️ 🏫 🍖 🔃 👫. + +/// note + +🚥 👆 🐍 🕴, & 👆 ⏪ 💭 🌐 🔃 🆎 🔑, 🚶 ⏭ 📃. + +/// + +## 🎯 + +➡️ ▶️ ⏮️ 🙅 🖼: + +```Python +{!../../docs_src/python_types/tutorial001.py!} +``` + +🤙 👉 📋 🔢: + +``` +John Doe +``` + +🔢 🔨 📄: + +* ✊ `first_name` & `last_name`. +* 🗜 🥇 🔤 🔠 1️⃣ ↖ 💼 ⏮️ `title()`. +* 🔢 👫 ⏮️ 🚀 🖕. + +```Python hl_lines="2" +{!../../docs_src/python_types/tutorial001.py!} +``` + +### ✍ ⚫️ + +⚫️ 📶 🙅 📋. + +✋️ 🔜 🌈 👈 👆 ✍ ⚫️ ⚪️➡️ 🖌. + +☝ 👆 🔜 ✔️ ▶️ 🔑 🔢, 👆 ✔️ 🔢 🔜... + +✋️ ⤴️ 👆 ✔️ 🤙 "👈 👩‍🔬 👈 🗜 🥇 🔤 ↖ 💼". + +⚫️ `upper`❓ ⚫️ `uppercase`❓ `first_uppercase`❓ `capitalize`❓ + +⤴️, 👆 🔄 ⏮️ 🗝 👩‍💻 👨‍👧‍👦, 👨‍🎨 ✍. + +👆 🆎 🥇 🔢 🔢, `first_name`, ⤴️ ❣ (`.`) & ⤴️ 🎯 `Ctrl+Space` ⏲ 🛠️. + +✋️, 😞, 👆 🤚 🕳 ⚠: + + + +### 🚮 🆎 + +➡️ 🔀 👁 ⏸ ⚪️➡️ ⏮️ ⏬. + +👥 🔜 🔀 ⚫️❔ 👉 🧬, 🔢 🔢, ⚪️➡️: + +```Python + first_name, last_name +``` + +: + +```Python + first_name: str, last_name: str +``` + +👈 ⚫️. + +👈 "🆎 🔑": + +```Python hl_lines="1" +{!../../docs_src/python_types/tutorial002.py!} +``` + +👈 🚫 🎏 📣 🔢 💲 💖 🔜 ⏮️: + +```Python + first_name="john", last_name="doe" +``` + +⚫️ 🎏 👜. + +👥 ⚙️ ❤ (`:`), 🚫 🌓 (`=`). + +& ❎ 🆎 🔑 🛎 🚫 🔀 ⚫️❔ 🔨 ⚪️➡️ ⚫️❔ 🔜 🔨 🍵 👫. + +✋️ 🔜, 🌈 👆 🔄 🖕 🏗 👈 🔢, ✋️ ⏮️ 🆎 🔑. + +🎏 ☝, 👆 🔄 ⏲ 📋 ⏮️ `Ctrl+Space` & 👆 👀: + + + +⏮️ 👈, 👆 💪 📜, 👀 🎛, ⏭ 👆 🔎 1️⃣ 👈 "💍 🔔": + + + +## 🌅 🎯 + +✅ 👉 🔢, ⚫️ ⏪ ✔️ 🆎 🔑: + +```Python hl_lines="1" +{!../../docs_src/python_types/tutorial003.py!} +``` + +↩️ 👨‍🎨 💭 🆎 🔢, 👆 🚫 🕴 🤚 🛠️, 👆 🤚 ❌ ✅: + + + +🔜 👆 💭 👈 👆 ✔️ 🔧 ⚫️, 🗜 `age` 🎻 ⏮️ `str(age)`: + +```Python hl_lines="2" +{!../../docs_src/python_types/tutorial004.py!} +``` + +## 📣 🆎 + +👆 👀 👑 🥉 📣 🆎 🔑. 🔢 🔢. + +👉 👑 🥉 👆 🔜 ⚙️ 👫 ⏮️ **FastAPI**. + +### 🙅 🆎 + +👆 💪 📣 🌐 🐩 🐍 🆎, 🚫 🕴 `str`. + +👆 💪 ⚙️, 🖼: + +* `int` +* `float` +* `bool` +* `bytes` + +```Python hl_lines="1" +{!../../docs_src/python_types/tutorial005.py!} +``` + +### 💊 🆎 ⏮️ 🆎 🔢 + +📤 📊 📊 👈 💪 🔌 🎏 💲, 💖 `dict`, `list`, `set` & `tuple`. & 🔗 💲 💪 ✔️ 👫 👍 🆎 💁‍♂️. + +👉 🆎 👈 ✔️ 🔗 🆎 🤙 "**💊**" 🆎. & ⚫️ 💪 📣 👫, ⏮️ 👫 🔗 🆎. + +📣 👈 🆎 & 🔗 🆎, 👆 💪 ⚙️ 🐩 🐍 🕹 `typing`. ⚫️ 🔀 🎯 🐕‍🦺 👫 🆎 🔑. + +#### 🆕 ⏬ 🐍 + +❕ ⚙️ `typing` **🔗** ⏮️ 🌐 ⏬, ⚪️➡️ 🐍 3️⃣.6️⃣ ⏪ 🕐, ✅ 🐍 3️⃣.9️⃣, 🐍 3️⃣.1️⃣0️⃣, ♒️. + +🐍 🏧, **🆕 ⏬** 👟 ⏮️ 📉 🐕‍🦺 👉 🆎 ✍ & 📚 💼 👆 🏆 🚫 💪 🗄 & ⚙️ `typing` 🕹 📣 🆎 ✍. + +🚥 👆 💪 ⚒ 🌖 ⏮️ ⏬ 🐍 👆 🏗, 👆 🔜 💪 ✊ 📈 👈 ➕ 🦁. 👀 🖼 🔛. + +#### 📇 + +🖼, ➡️ 🔬 🔢 `list` `str`. + +//// tab | 🐍 3️⃣.6️⃣ & 🔛 + +⚪️➡️ `typing`, 🗄 `List` (⏮️ 🔠 `L`): + +```Python hl_lines="1" +{!> ../../docs_src/python_types/tutorial006.py!} +``` + +📣 🔢, ⏮️ 🎏 ❤ (`:`) ❕. + +🆎, 🚮 `List` 👈 👆 🗄 ⚪️➡️ `typing`. + +📇 🆎 👈 🔌 🔗 🆎, 👆 🚮 👫 ⬜ 🗜: + +```Python hl_lines="4" +{!> ../../docs_src/python_types/tutorial006.py!} +``` + +//// + +//// tab | 🐍 3️⃣.9️⃣ & 🔛 + +📣 🔢, ⏮️ 🎏 ❤ (`:`) ❕. + +🆎, 🚮 `list`. + +📇 🆎 👈 🔌 🔗 🆎, 👆 🚮 👫 ⬜ 🗜: + +```Python hl_lines="1" +{!> ../../docs_src/python_types/tutorial006_py39.py!} +``` + +//// + +/// info + +👈 🔗 🆎 ⬜ 🗜 🤙 "🆎 🔢". + +👉 💼, `str` 🆎 🔢 🚶‍♀️ `List` (⚖️ `list` 🐍 3️⃣.9️⃣ & 🔛). + +/// + +👈 ⛓: "🔢 `items` `list`, & 🔠 🏬 👉 📇 `str`". + +/// tip + +🚥 👆 ⚙️ 🐍 3️⃣.9️⃣ ⚖️ 🔛, 👆 🚫 ✔️ 🗄 `List` ⚪️➡️ `typing`, 👆 💪 ⚙️ 🎏 🥔 `list` 🆎 ↩️. + +/// + +🔨 👈, 👆 👨‍🎨 💪 🚚 🐕‍🦺 ⏪ 🏭 🏬 ⚪️➡️ 📇: + + + +🍵 🆎, 👈 🌖 💪 🏆. + +👀 👈 🔢 `item` 1️⃣ 🔣 📇 `items`. + +& , 👨‍🎨 💭 ⚫️ `str`, & 🚚 🐕‍🦺 👈. + +#### 🔢 & ⚒ + +👆 🔜 🎏 📣 `tuple`Ⓜ & `set`Ⓜ: + +//// tab | 🐍 3️⃣.6️⃣ & 🔛 + +```Python hl_lines="1 4" +{!> ../../docs_src/python_types/tutorial007.py!} +``` + +//// + +//// tab | 🐍 3️⃣.9️⃣ & 🔛 + +```Python hl_lines="1" +{!> ../../docs_src/python_types/tutorial007_py39.py!} +``` + +//// + +👉 ⛓: + +* 🔢 `items_t` `tuple` ⏮️ 3️⃣ 🏬, `int`, ➕1️⃣ `int`, & `str`. +* 🔢 `items_s` `set`, & 🔠 🚮 🏬 🆎 `bytes`. + +#### #️⃣ + +🔬 `dict`, 👆 🚶‍♀️ 2️⃣ 🆎 🔢, 🎏 ❕. + +🥇 🆎 🔢 🔑 `dict`. + +🥈 🆎 🔢 💲 `dict`: + +//// tab | 🐍 3️⃣.6️⃣ & 🔛 + +```Python hl_lines="1 4" +{!> ../../docs_src/python_types/tutorial008.py!} +``` + +//// + +//// tab | 🐍 3️⃣.9️⃣ & 🔛 + +```Python hl_lines="1" +{!> ../../docs_src/python_types/tutorial008_py39.py!} +``` + +//// + +👉 ⛓: + +* 🔢 `prices` `dict`: + * 🔑 👉 `dict` 🆎 `str` (➡️ 💬, 📛 🔠 🏬). + * 💲 👉 `dict` 🆎 `float` (➡️ 💬, 🔖 🔠 🏬). + +#### 🇪🇺 + +👆 💪 📣 👈 🔢 💪 🙆 **📚 🆎**, 🖼, `int` ⚖️ `str`. + +🐍 3️⃣.6️⃣ & 🔛 (✅ 🐍 3️⃣.1️⃣0️⃣) 👆 💪 ⚙️ `Union` 🆎 ⚪️➡️ `typing` & 🚮 🔘 ⬜ 🗜 💪 🆎 🚫. + +🐍 3️⃣.1️⃣0️⃣ 📤 **🎛 ❕** 🌐❔ 👆 💪 🚮 💪 🆎 👽 ⏸ ⏸ (`|`). + +//// tab | 🐍 3️⃣.6️⃣ & 🔛 + +```Python hl_lines="1 4" +{!> ../../docs_src/python_types/tutorial008b.py!} +``` + +//// + +//// tab | 🐍 3️⃣.1️⃣0️⃣ & 🔛 + +```Python hl_lines="1" +{!> ../../docs_src/python_types/tutorial008b_py310.py!} +``` + +//// + +👯‍♂️ 💼 👉 ⛓ 👈 `item` 💪 `int` ⚖️ `str`. + +#### 🎲 `None` + +👆 💪 📣 👈 💲 💪 ✔️ 🆎, 💖 `str`, ✋️ 👈 ⚫️ 💪 `None`. + +🐍 3️⃣.6️⃣ & 🔛 (✅ 🐍 3️⃣.1️⃣0️⃣) 👆 💪 📣 ⚫️ 🏭 & ⚙️ `Optional` ⚪️➡️ `typing` 🕹. + +```Python hl_lines="1 4" +{!../../docs_src/python_types/tutorial009.py!} +``` + +⚙️ `Optional[str]` ↩️ `str` 🔜 ➡️ 👨‍🎨 ℹ 👆 🔍 ❌ 🌐❔ 👆 💪 🤔 👈 💲 🕧 `str`, 🕐❔ ⚫️ 💪 🤙 `None` 💁‍♂️. + +`Optional[Something]` 🤙 ⌨ `Union[Something, None]`, 👫 🌓. + +👉 ⛓ 👈 🐍 3️⃣.1️⃣0️⃣, 👆 💪 ⚙️ `Something | None`: + +//// tab | 🐍 3️⃣.6️⃣ & 🔛 + +```Python hl_lines="1 4" +{!> ../../docs_src/python_types/tutorial009.py!} +``` + +//// + +//// tab | 🐍 3️⃣.6️⃣ & 🔛 - 🎛 + +```Python hl_lines="1 4" +{!> ../../docs_src/python_types/tutorial009b.py!} +``` + +//// + +//// tab | 🐍 3️⃣.1️⃣0️⃣ & 🔛 + +```Python hl_lines="1" +{!> ../../docs_src/python_types/tutorial009_py310.py!} +``` + +//// + +#### ⚙️ `Union` ⚖️ `Optional` + +🚥 👆 ⚙️ 🐍 ⏬ 🔛 3️⃣.1️⃣0️⃣, 📥 💁‍♂ ⚪️➡️ 👇 📶 **🤔** ☝ 🎑: + +* 👶 ❎ ⚙️ `Optional[SomeType]` +* ↩️ 👶 **⚙️ `Union[SomeType, None]`** 👶. + +👯‍♂️ 🌓 & 🔘 👫 🎏, ✋️ 👤 🔜 👍 `Union` ↩️ `Optional` ↩️ 🔤 "**📦**" 🔜 😑 🔑 👈 💲 📦, & ⚫️ 🤙 ⛓ "⚫️ 💪 `None`", 🚥 ⚫️ 🚫 📦 & ✔. + +👤 💭 `Union[SomeType, None]` 🌖 🔑 🔃 ⚫️❔ ⚫️ ⛓. + +⚫️ 🔃 🔤 & 📛. ✋️ 👈 🔤 💪 📉 ❔ 👆 & 👆 🤽‍♂ 💭 🔃 📟. + +🖼, ➡️ ✊ 👉 🔢: + +```Python hl_lines="1 4" +{!../../docs_src/python_types/tutorial009c.py!} +``` + +🔢 `name` 🔬 `Optional[str]`, ✋️ ⚫️ **🚫 📦**, 👆 🚫🔜 🤙 🔢 🍵 🔢: + +```Python +say_hi() # Oh, no, this throws an error! 😱 +``` + +`name` 🔢 **✔** (🚫 *📦*) ↩️ ⚫️ 🚫 ✔️ 🔢 💲. , `name` 🚫 `None` 💲: + +```Python +say_hi(name=None) # This works, None is valid 🎉 +``` + +👍 📰, 🕐 👆 🔛 🐍 3️⃣.1️⃣0️⃣ 👆 🏆 🚫 ✔️ 😟 🔃 👈, 👆 🔜 💪 🎯 ⚙️ `|` 🔬 🇪🇺 🆎: + +```Python hl_lines="1 4" +{!../../docs_src/python_types/tutorial009c_py310.py!} +``` + +& ⤴️ 👆 🏆 🚫 ✔️ 😟 🔃 📛 💖 `Optional` & `Union`. 👶 + +#### 💊 🆎 + +👉 🆎 👈 ✊ 🆎 🔢 ⬜ 🗜 🤙 **💊 🆎** ⚖️ **💊**, 🖼: + +//// tab | 🐍 3️⃣.6️⃣ & 🔛 + +* `List` +* `Tuple` +* `Set` +* `Dict` +* `Union` +* `Optional` +* ...& 🎏. + +//// + +//// tab | 🐍 3️⃣.9️⃣ & 🔛 + +👆 💪 ⚙️ 🎏 💽 🆎 💊 (⏮️ ⬜ 🗜 & 🆎 🔘): + +* `list` +* `tuple` +* `set` +* `dict` + + & 🎏 ⏮️ 🐍 3️⃣.6️⃣, ⚪️➡️ `typing` 🕹: + +* `Union` +* `Optional` +* ...& 🎏. + +//// + +//// tab | 🐍 3️⃣.1️⃣0️⃣ & 🔛 + +👆 💪 ⚙️ 🎏 💽 🆎 💊 (⏮️ ⬜ 🗜 & 🆎 🔘): + +* `list` +* `tuple` +* `set` +* `dict` + + & 🎏 ⏮️ 🐍 3️⃣.6️⃣, ⚪️➡️ `typing` 🕹: + +* `Union` +* `Optional` (🎏 ⏮️ 🐍 3️⃣.6️⃣) +* ...& 🎏. + +🐍 3️⃣.1️⃣0️⃣, 🎛 ⚙️ 💊 `Union` & `Optional`, 👆 💪 ⚙️ ⏸ ⏸ (`|`) 📣 🇪🇺 🆎. + +//// + +### 🎓 🆎 + +👆 💪 📣 🎓 🆎 🔢. + +➡️ 💬 👆 ✔️ 🎓 `Person`, ⏮️ 📛: + +```Python hl_lines="1-3" +{!../../docs_src/python_types/tutorial010.py!} +``` + +⤴️ 👆 💪 📣 🔢 🆎 `Person`: + +```Python hl_lines="6" +{!../../docs_src/python_types/tutorial010.py!} +``` + +& ⤴️, 🔄, 👆 🤚 🌐 👨‍🎨 🐕‍🦺: + + + +## Pydantic 🏷 + +Pydantic 🐍 🗃 🎭 📊 🔬. + +👆 📣 "💠" 💽 🎓 ⏮️ 🔢. + +& 🔠 🔢 ✔️ 🆎. + +⤴️ 👆 ✍ 👐 👈 🎓 ⏮️ 💲 & ⚫️ 🔜 ✔ 💲, 🗜 👫 ☑ 🆎 (🚥 👈 💼) & 🤝 👆 🎚 ⏮️ 🌐 💽. + +& 👆 🤚 🌐 👨‍🎨 🐕‍🦺 ⏮️ 👈 📉 🎚. + +🖼 ⚪️➡️ 🛂 Pydantic 🩺: + +//// tab | 🐍 3️⃣.6️⃣ & 🔛 + +```Python +{!> ../../docs_src/python_types/tutorial011.py!} +``` + +//// + +//// tab | 🐍 3️⃣.9️⃣ & 🔛 + +```Python +{!> ../../docs_src/python_types/tutorial011_py39.py!} +``` + +//// + +//// tab | 🐍 3️⃣.1️⃣0️⃣ & 🔛 + +```Python +{!> ../../docs_src/python_types/tutorial011_py310.py!} +``` + +//// + +/// info + +💡 🌖 🔃 Pydantic, ✅ 🚮 🩺. + +/// + +**FastAPI** 🌐 ⚓️ 🔛 Pydantic. + +👆 🔜 👀 📚 🌅 🌐 👉 💡 [🔰 - 👩‍💻 🦮](tutorial/index.md){.internal-link target=_blank}. + +/// tip + +Pydantic ✔️ 🎁 🎭 🕐❔ 👆 ⚙️ `Optional` ⚖️ `Union[Something, None]` 🍵 🔢 💲, 👆 💪 ✍ 🌅 🔃 ⚫️ Pydantic 🩺 🔃 ✔ 📦 🏑. + +/// + +## 🆎 🔑 **FastAPI** + +**FastAPI** ✊ 📈 👫 🆎 🔑 📚 👜. + +⏮️ **FastAPI** 👆 📣 🔢 ⏮️ 🆎 🔑 & 👆 🤚: + +* **👨‍🎨 🐕‍🦺**. +* **🆎 ✅**. + +...and **FastAPI** uses the same declarations : + +* **🔬 📄**: ⚪️➡️ 📨 ➡ 🔢, 🔢 🔢, 🎚, 💪, 🔗, ♒️. +* **🗜 💽**: ⚪️➡️ 📨 🚚 🆎. +* **✔ 💽**: 👟 ⚪️➡️ 🔠 📨: + * 🏭 **🏧 ❌** 📨 👩‍💻 🕐❔ 📊 ❌. +* **📄** 🛠️ ⚙️ 🗄: + * ❔ ⤴️ ⚙️ 🏧 🎓 🧾 👩‍💻 🔢. + +👉 5️⃣📆 🌐 🔊 📝. 🚫 😟. 👆 🔜 👀 🌐 👉 🎯 [🔰 - 👩‍💻 🦮](tutorial/index.md){.internal-link target=_blank}. + +⚠ 👜 👈 ⚙️ 🐩 🐍 🆎, 👁 🥉 (↩️ ❎ 🌖 🎓, 👨‍🎨, ♒️), **FastAPI** 🔜 📚 👷 👆. + +/// info + +🚥 👆 ⏪ 🚶 🔘 🌐 🔰 & 👟 🔙 👀 🌅 🔃 🆎, 👍 ℹ "🎮 🎼" ⚪️➡️ `mypy`. + +/// diff --git a/docs/em/docs/tutorial/background-tasks.md b/docs/em/docs/tutorial/background-tasks.md new file mode 100644 index 0000000..4cbcbc7 --- /dev/null +++ b/docs/em/docs/tutorial/background-tasks.md @@ -0,0 +1,84 @@ +# 🖥 📋 + +👆 💪 🔬 🖥 📋 🏃 *⏮️* 🛬 📨. + +👉 ⚠ 🛠️ 👈 💪 🔨 ⏮️ 📨, ✋️ 👈 👩‍💻 🚫 🤙 ✔️ ⌛ 🛠️ 🏁 ⏭ 📨 📨. + +👉 🔌, 🖼: + +* 📧 📨 📨 ⏮️ 🎭 🎯: + * 🔗 📧 💽 & 📨 📧 😑 "🐌" (📚 🥈), 👆 💪 📨 📨 ▶️️ ↖️ & 📨 📧 📨 🖥. +* 🏭 💽: + * 🖼, ➡️ 💬 👆 📨 📁 👈 🔜 🚶 🔘 🐌 🛠️, 👆 💪 📨 📨 "🚫" (🇺🇸🔍 2️⃣0️⃣2️⃣) & 🛠️ ⚫️ 🖥. + +## ⚙️ `BackgroundTasks` + +🥇, 🗄 `BackgroundTasks` & 🔬 🔢 👆 *➡ 🛠️ 🔢* ⏮️ 🆎 📄 `BackgroundTasks`: + +{* ../../docs_src/background_tasks/tutorial001.py hl[1,13] *} + +**FastAPI** 🔜 ✍ 🎚 🆎 `BackgroundTasks` 👆 & 🚶‍♀️ ⚫️ 👈 🔢. + +## ✍ 📋 🔢 + +✍ 🔢 🏃 🖥 📋. + +⚫️ 🐩 🔢 👈 💪 📨 🔢. + +⚫️ 💪 `async def` ⚖️ 😐 `def` 🔢, **FastAPI** 🔜 💭 ❔ 🍵 ⚫️ ☑. + +👉 💼, 📋 🔢 🔜 ✍ 📁 (⚖ 📨 📧). + +& ✍ 🛠️ 🚫 ⚙️ `async` & `await`, 👥 🔬 🔢 ⏮️ 😐 `def`: + +{* ../../docs_src/background_tasks/tutorial001.py hl[6:9] *} + +## 🚮 🖥 📋 + +🔘 👆 *➡ 🛠️ 🔢*, 🚶‍♀️ 👆 📋 🔢 *🖥 📋* 🎚 ⏮️ 👩‍🔬 `.add_task()`: + +{* ../../docs_src/background_tasks/tutorial001.py hl[14] *} + +`.add_task()` 📨 ❌: + +* 📋 🔢 🏃 🖥 (`write_notification`). +* 🙆 🔁 ❌ 👈 🔜 🚶‍♀️ 📋 🔢 ✔ (`email`). +* 🙆 🇨🇻 ❌ 👈 🔜 🚶‍♀️ 📋 🔢 (`message="some notification"`). + +## 🔗 💉 + +⚙️ `BackgroundTasks` 👷 ⏮️ 🔗 💉 ⚙️, 👆 💪 📣 🔢 🆎 `BackgroundTasks` 💗 🎚: *➡ 🛠️ 🔢*, 🔗 (☑), 🎧-🔗, ♒️. + +**FastAPI** 💭 ⚫️❔ 🔠 💼 & ❔ 🏤-⚙️ 🎏 🎚, 👈 🌐 🖥 📋 🔗 👯‍♂️ & 🏃 🖥 ⏮️: + +{* ../../docs_src/background_tasks/tutorial002.py hl[13,15,22,25] *} + +👉 🖼, 📧 🔜 ✍ `log.txt` 📁 *⏮️* 📨 📨. + +🚥 📤 🔢 📨, ⚫️ 🔜 ✍ 🕹 🖥 📋. + +& ⤴️ ➕1️⃣ 🖥 📋 🏗 *➡ 🛠️ 🔢* 🔜 ✍ 📧 ⚙️ `email` ➡ 🔢. + +## 📡 ℹ + +🎓 `BackgroundTasks` 👟 🔗 ⚪️➡️ `starlette.background`. + +⚫️ 🗄/🔌 🔗 🔘 FastAPI 👈 👆 💪 🗄 ⚫️ ⚪️➡️ `fastapi` & ❎ 😫 🗄 🎛 `BackgroundTask` (🍵 `s` 🔚) ⚪️➡️ `starlette.background`. + +🕴 ⚙️ `BackgroundTasks` (& 🚫 `BackgroundTask`), ⚫️ ⤴️ 💪 ⚙️ ⚫️ *➡ 🛠️ 🔢* 🔢 & ✔️ **FastAPI** 🍵 🎂 👆, 💖 🕐❔ ⚙️ `Request` 🎚 🔗. + +⚫️ 💪 ⚙️ `BackgroundTask` 😞 FastAPI, ✋️ 👆 ✔️ ✍ 🎚 👆 📟 & 📨 💃 `Response` 🔌 ⚫️. + +👆 💪 👀 🌖 ℹ 💃 🛂 🩺 🖥 📋. + +## ⚠ + +🚥 👆 💪 🎭 🏋️ 🖥 📊 & 👆 🚫 🎯 💪 ⚫️ 🏃 🎏 🛠️ (🖼, 👆 🚫 💪 💰 💾, 🔢, ♒️), 👆 💪 💰 ⚪️➡️ ⚙️ 🎏 🦏 🧰 💖 🥒. + +👫 😑 🚚 🌖 🏗 📳, 📧/👨‍🏭 📤 👨‍💼, 💖 ✳ ⚖️ ✳, ✋️ 👫 ✔ 👆 🏃 🖥 📋 💗 🛠️, & ✴️, 💗 💽. + +✋️ 🚥 👆 💪 🔐 🔢 & 🎚 ⚪️➡️ 🎏 **FastAPI** 📱, ⚖️ 👆 💪 🎭 🤪 🖥 📋 (💖 📨 📧 📨), 👆 💪 🎯 ⚙️ `BackgroundTasks`. + +## 🌃 + +🗄 & ⚙️ `BackgroundTasks` ⏮️ 🔢 *➡ 🛠️ 🔢* & 🔗 🚮 🖥 📋. diff --git a/docs/em/docs/tutorial/bigger-applications.md b/docs/em/docs/tutorial/bigger-applications.md new file mode 100644 index 0000000..78a321a --- /dev/null +++ b/docs/em/docs/tutorial/bigger-applications.md @@ -0,0 +1,530 @@ +# 🦏 🈸 - 💗 📁 + +🚥 👆 🏗 🈸 ⚖️ 🕸 🛠️, ⚫️ 🛎 💼 👈 👆 💪 🚮 🌐 🔛 👁 📁. + +**FastAPI** 🚚 🏪 🧰 📊 👆 🈸 ⏪ 🚧 🌐 💪. + +/// info + +🚥 👆 👟 ⚪️➡️ 🏺, 👉 🔜 🌓 🏺 📗. + +/// + +## 🖼 📁 📊 + +➡️ 💬 👆 ✔️ 📁 📊 💖 👉: + +``` +. +├── app +│   ├── __init__.py +│   ├── main.py +│   ├── dependencies.py +│   └── routers +│   │ ├── __init__.py +│   │ ├── items.py +│   │ └── users.py +│   └── internal +│   ├── __init__.py +│   └── admin.py +``` + +/// tip + +📤 📚 `__init__.py` 📁: 1️⃣ 🔠 📁 ⚖️ 📁. + +👉 ⚫️❔ ✔ 🏭 📟 ⚪️➡️ 1️⃣ 📁 🔘 ➕1️⃣. + +🖼, `app/main.py` 👆 💪 ✔️ ⏸ 💖: + +``` +from app.routers import items +``` + +/// + +* `app` 📁 🔌 🌐. & ⚫️ ✔️ 🛁 📁 `app/__init__.py`, ⚫️ "🐍 📦" (🗃 "🐍 🕹"): `app`. +* ⚫️ 🔌 `app/main.py` 📁. ⚫️ 🔘 🐍 📦 (📁 ⏮️ 📁 `__init__.py`), ⚫️ "🕹" 👈 📦: `app.main`. +* 📤 `app/dependencies.py` 📁, 💖 `app/main.py`, ⚫️ "🕹": `app.dependencies`. +* 📤 📁 `app/routers/` ⏮️ ➕1️⃣ 📁 `__init__.py`, ⚫️ "🐍 📦": `app.routers`. +* 📁 `app/routers/items.py` 🔘 📦, `app/routers/`,, ⚫️ 🔁: `app.routers.items`. +* 🎏 ⏮️ `app/routers/users.py`, ⚫️ ➕1️⃣ 🔁: `app.routers.users`. +* 📤 📁 `app/internal/` ⏮️ ➕1️⃣ 📁 `__init__.py`, ⚫️ ➕1️⃣ "🐍 📦": `app.internal`. +* & 📁 `app/internal/admin.py` ➕1️⃣ 🔁: `app.internal.admin`. + + + +🎏 📁 📊 ⏮️ 🏤: + +``` +. +├── app # "app" is a Python package +│   ├── __init__.py # this file makes "app" a "Python package" +│   ├── main.py # "main" module, e.g. import app.main +│   ├── dependencies.py # "dependencies" module, e.g. import app.dependencies +│   └── routers # "routers" is a "Python subpackage" +│   │ ├── __init__.py # makes "routers" a "Python subpackage" +│   │ ├── items.py # "items" submodule, e.g. import app.routers.items +│   │ └── users.py # "users" submodule, e.g. import app.routers.users +│   └── internal # "internal" is a "Python subpackage" +│   ├── __init__.py # makes "internal" a "Python subpackage" +│   └── admin.py # "admin" submodule, e.g. import app.internal.admin +``` + +## `APIRouter` + +➡️ 💬 📁 💡 🚚 👩‍💻 🔁 `/app/routers/users.py`. + +👆 💚 ✔️ *➡ 🛠️* 🔗 👆 👩‍💻 👽 ⚪️➡️ 🎂 📟, 🚧 ⚫️ 🏗. + +✋️ ⚫️ 🍕 🎏 **FastAPI** 🈸/🕸 🛠️ (⚫️ 🍕 🎏 "🐍 📦"). + +👆 💪 ✍ *➡ 🛠️* 👈 🕹 ⚙️ `APIRouter`. + +### 🗄 `APIRouter` + +👆 🗄 ⚫️ & ✍ "👐" 🎏 🌌 👆 🔜 ⏮️ 🎓 `FastAPI`: + +```Python hl_lines="1 3" title="app/routers/users.py" +{!../../docs_src/bigger_applications/app/routers/users.py!} +``` + +### *➡ 🛠️* ⏮️ `APIRouter` + +& ⤴️ 👆 ⚙️ ⚫️ 📣 👆 *➡ 🛠️*. + +⚙️ ⚫️ 🎏 🌌 👆 🔜 ⚙️ `FastAPI` 🎓: + +```Python hl_lines="6 11 16" title="app/routers/users.py" +{!../../docs_src/bigger_applications/app/routers/users.py!} +``` + +👆 💪 💭 `APIRouter` "🐩 `FastAPI`" 🎓. + +🌐 🎏 🎛 🐕‍🦺. + +🌐 🎏 `parameters`, `responses`, `dependencies`, `tags`, ♒️. + +/// tip + +👉 🖼, 🔢 🤙 `router`, ✋️ 👆 💪 📛 ⚫️ 👐 👆 💚. + +/// + +👥 🔜 🔌 👉 `APIRouter` 👑 `FastAPI` 📱, ✋️ 🥇, ➡️ ✅ 🔗 & ➕1️⃣ `APIRouter`. + +## 🔗 + +👥 👀 👈 👥 🔜 💪 🔗 ⚙️ 📚 🥉 🈸. + +👥 🚮 👫 👫 👍 `dependencies` 🕹 (`app/dependencies.py`). + +👥 🔜 🔜 ⚙️ 🙅 🔗 ✍ 🛃 `X-Token` 🎚: + +```Python hl_lines="1 4-6" title="app/dependencies.py" +{!../../docs_src/bigger_applications/app/dependencies.py!} +``` + +/// tip + +👥 ⚙️ 💭 🎚 📉 👉 🖼. + +✋️ 🎰 💼 👆 🔜 🤚 👍 🏁 ⚙️ 🛠️ [💂‍♂ 🚙](security/index.md){.internal-link target=_blank}. + +/// + +## ➕1️⃣ 🕹 ⏮️ `APIRouter` + +➡️ 💬 👆 ✔️ 🔗 💡 🚚 "🏬" ⚪️➡️ 👆 🈸 🕹 `app/routers/items.py`. + +👆 ✔️ *➡ 🛠️* : + +* `/items/` +* `/items/{item_id}` + +⚫️ 🌐 🎏 📊 ⏮️ `app/routers/users.py`. + +✋️ 👥 💚 🙃 & 📉 📟 🍖. + +👥 💭 🌐 *➡ 🛠️* 👉 🕹 ✔️ 🎏: + +* ➡ `prefix`: `/items`. +* `tags`: (1️⃣ 🔖: `items`). +* ➕ `responses`. +* `dependencies`: 👫 🌐 💪 👈 `X-Token` 🔗 👥 ✍. + +, ↩️ ❎ 🌐 👈 🔠 *➡ 🛠️*, 👥 💪 🚮 ⚫️ `APIRouter`. + +```Python hl_lines="5-10 16 21" title="app/routers/items.py" +{!../../docs_src/bigger_applications/app/routers/items.py!} +``` + +➡ 🔠 *➡ 🛠️* ✔️ ▶️ ⏮️ `/`, 💖: + +```Python hl_lines="1" +@router.get("/{item_id}") +async def read_item(item_id: str): + ... +``` + +...🔡 🔜 🚫 🔌 🏁 `/`. + +, 🔡 👉 💼 `/items`. + +👥 💪 🚮 📇 `tags` & ➕ `responses` 👈 🔜 ✔ 🌐 *➡ 🛠️* 🔌 👉 📻. + +& 👥 💪 🚮 📇 `dependencies` 👈 🔜 🚮 🌐 *➡ 🛠️* 📻 & 🔜 🛠️/❎ 🔠 📨 ⚒ 👫. + +/// tip + +🗒 👈, 🌅 💖 [🔗 *➡ 🛠️ 👨‍🎨*](dependencies/dependencies-in-path-operation-decorators.md){.internal-link target=_blank}, 🙅‍♂ 💲 🔜 🚶‍♀️ 👆 *➡ 🛠️ 🔢*. + +/// + +🔚 🏁 👈 🏬 ➡ 🔜: + +* `/items/` +* `/items/{item_id}` + +...👥 🎯. + +* 👫 🔜 ™ ⏮️ 📇 🔖 👈 🔌 👁 🎻 `"items"`. + * 👫 "🔖" ✴️ ⚠ 🏧 🎓 🧾 ⚙️ (⚙️ 🗄). +* 🌐 👫 🔜 🔌 🔁 `responses`. +* 🌐 👫 *➡ 🛠️* 🔜 ✔️ 📇 `dependencies` 🔬/🛠️ ⏭ 👫. + * 🚥 👆 📣 🔗 🎯 *➡ 🛠️*, **👫 🔜 🛠️ 💁‍♂️**. + * 📻 🔗 🛠️ 🥇, ⤴️ [`dependencies` 👨‍🎨](dependencies/dependencies-in-path-operation-decorators.md){.internal-link target=_blank}, & ⤴️ 😐 🔢 🔗. + * 👆 💪 🚮 [`Security` 🔗 ⏮️ `scopes`](../advanced/security/oauth2-scopes.md){.internal-link target=_blank}. + +/// tip + +✔️ `dependencies` `APIRouter` 💪 ⚙️, 🖼, 🚚 🤝 🎂 👪 *➡ 🛠️*. 🚥 🔗 🚫 🚮 📦 🔠 1️⃣ 👫. + +/// + +/// check + +`prefix`, `tags`, `responses`, & `dependencies` 🔢 (📚 🎏 💼) ⚒ ⚪️➡️ **FastAPI** ℹ 👆 ❎ 📟 ❎. + +/// + +### 🗄 🔗 + +👉 📟 👨‍❤‍👨 🕹 `app.routers.items`, 📁 `app/routers/items.py`. + +& 👥 💪 🤚 🔗 🔢 ⚪️➡️ 🕹 `app.dependencies`, 📁 `app/dependencies.py`. + +👥 ⚙️ ⚖ 🗄 ⏮️ `..` 🔗: + +```Python hl_lines="3" title="app/routers/items.py" +{!../../docs_src/bigger_applications/app/routers/items.py!} +``` + +#### ❔ ⚖ 🗄 👷 + +/// tip + +🚥 👆 💭 👌 ❔ 🗄 👷, 😣 ⏭ 📄 🔛. + +/// + +👁 ❣ `.`, 💖: + +```Python +from .dependencies import get_token_header +``` + +🔜 ⛓: + +* ▶️ 🎏 📦 👈 👉 🕹 (📁 `app/routers/items.py`) 🖖 (📁 `app/routers/`)... +* 🔎 🕹 `dependencies` (👽 📁 `app/routers/dependencies.py`)... +* & ⚪️➡️ ⚫️, 🗄 🔢 `get_token_header`. + +✋️ 👈 📁 🚫 🔀, 👆 🔗 📁 `app/dependencies.py`. + +💭 ❔ 👆 📱/📁 📊 👀 💖: + + + +--- + +2️⃣ ❣ `..`, 💖: + +```Python +from ..dependencies import get_token_header +``` + +⛓: + +* ▶️ 🎏 📦 👈 👉 🕹 (📁 `app/routers/items.py`) 🖖 (📁 `app/routers/`)... +* 🚶 👪 📦 (📁 `app/`)... +* & 📤, 🔎 🕹 `dependencies` (📁 `app/dependencies.py`)... +* & ⚪️➡️ ⚫️, 🗄 🔢 `get_token_header`. + +👈 👷 ☑ ❗ 👶 + +--- + +🎏 🌌, 🚥 👥 ✔️ ⚙️ 3️⃣ ❣ `...`, 💖: + +```Python +from ...dependencies import get_token_header +``` + +that 🔜 ⛓: + +* ▶️ 🎏 📦 👈 👉 🕹 (📁 `app/routers/items.py`) 🖖 (📁 `app/routers/`)... +* 🚶 👪 📦 (📁 `app/`)... +* ⤴️ 🚶 👪 👈 📦 (📤 🙅‍♂ 👪 📦, `app` 🔝 🎚 👶)... +* & 📤, 🔎 🕹 `dependencies` (📁 `app/dependencies.py`)... +* & ⚪️➡️ ⚫️, 🗄 🔢 `get_token_header`. + +👈 🔜 🔗 📦 🔛 `app/`, ⏮️ 🚮 👍 📁 `__init__.py`, ♒️. ✋️ 👥 🚫 ✔️ 👈. , 👈 🔜 🚮 ❌ 👆 🖼. 👶 + +✋️ 🔜 👆 💭 ❔ ⚫️ 👷, 👆 💪 ⚙️ ⚖ 🗄 👆 👍 📱 🙅‍♂ 🤔 ❔ 🏗 👫. 👶 + +### 🚮 🛃 `tags`, `responses`, & `dependencies` + +👥 🚫 ❎ 🔡 `/items` 🚫 `tags=["items"]` 🔠 *➡ 🛠️* ↩️ 👥 🚮 👫 `APIRouter`. + +✋️ 👥 💪 🚮 _🌅_ `tags` 👈 🔜 ✔ 🎯 *➡ 🛠️*, & ➕ `responses` 🎯 👈 *➡ 🛠️*: + +```Python hl_lines="30-31" title="app/routers/items.py" +{!../../docs_src/bigger_applications/app/routers/items.py!} +``` + +/// tip + +👉 🏁 ➡ 🛠️ 🔜 ✔️ 🌀 🔖: `["items", "custom"]`. + + & ⚫️ 🔜 ✔️ 👯‍♂️ 📨 🧾, 1️⃣ `404` & 1️⃣ `403`. + +/// + +## 👑 `FastAPI` + +🔜, ➡️ 👀 🕹 `app/main.py`. + +📥 🌐❔ 👆 🗄 & ⚙️ 🎓 `FastAPI`. + +👉 🔜 👑 📁 👆 🈸 👈 👔 🌐 👯‍♂️. + +& 🏆 👆 ⚛ 🔜 🔜 🖖 🚮 👍 🎯 🕹, 👑 📁 🔜 🙅. + +### 🗄 `FastAPI` + +👆 🗄 & ✍ `FastAPI` 🎓 🛎. + +& 👥 💪 📣 [🌐 🔗](dependencies/global-dependencies.md){.internal-link target=_blank} 👈 🔜 🌀 ⏮️ 🔗 🔠 `APIRouter`: + +```Python hl_lines="1 3 7" title="app/main.py" +{!../../docs_src/bigger_applications/app/main.py!} +``` + +### 🗄 `APIRouter` + +🔜 👥 🗄 🎏 🔁 👈 ✔️ `APIRouter`Ⓜ: + +```Python hl_lines="5" title="app/main.py" +{!../../docs_src/bigger_applications/app/main.py!} +``` + +📁 `app/routers/users.py` & `app/routers/items.py` 🔁 👈 🍕 🎏 🐍 📦 `app`, 👥 💪 ⚙️ 👁 ❣ `.` 🗄 👫 ⚙️ "⚖ 🗄". + +### ❔ 🏭 👷 + +📄: + +```Python +from .routers import items, users +``` + +⛓: + +* ▶️ 🎏 📦 👈 👉 🕹 (📁 `app/main.py`) 🖖 (📁 `app/`)... +* 👀 📦 `routers` (📁 `app/routers/`)... +* & ⚪️➡️ ⚫️, 🗄 🔁 `items` (📁 `app/routers/items.py`) & `users` (📁 `app/routers/users.py`)... + +🕹 `items` 🔜 ✔️ 🔢 `router` (`items.router`). 👉 🎏 1️⃣ 👥 ✍ 📁 `app/routers/items.py`, ⚫️ `APIRouter` 🎚. + +& ⤴️ 👥 🎏 🕹 `users`. + +👥 💪 🗄 👫 💖: + +```Python +from app.routers import items, users +``` + +/// info + +🥇 ⏬ "⚖ 🗄": + +```Python +from .routers import items, users +``` + +🥈 ⏬ "🎆 🗄": + +```Python +from app.routers import items, users +``` + +💡 🌅 🔃 🐍 📦 & 🕹, ✍ 🛂 🐍 🧾 🔃 🕹. + +/// + +### ❎ 📛 💥 + +👥 🏭 🔁 `items` 🔗, ↩️ 🏭 🚮 🔢 `router`. + +👉 ↩️ 👥 ✔️ ➕1️⃣ 🔢 📛 `router` 🔁 `users`. + +🚥 👥 ✔️ 🗄 1️⃣ ⏮️ 🎏, 💖: + +```Python +from .routers.items import router +from .routers.users import router +``` + +`router` ⚪️➡️ `users` 🔜 📁 1️⃣ ⚪️➡️ `items` & 👥 🚫🔜 💪 ⚙️ 👫 🎏 🕰. + +, 💪 ⚙️ 👯‍♂️ 👫 🎏 📁, 👥 🗄 🔁 🔗: + +```Python hl_lines="5" title="app/main.py" +{!../../docs_src/bigger_applications/app/main.py!} +``` + +### 🔌 `APIRouter`Ⓜ `users` & `items` + +🔜, ➡️ 🔌 `router`Ⓜ ⚪️➡️ 🔁 `users` & `items`: + +```Python hl_lines="10-11" title="app/main.py" +{!../../docs_src/bigger_applications/app/main.py!} +``` + +/// info + +`users.router` 🔌 `APIRouter` 🔘 📁 `app/routers/users.py`. + + & `items.router` 🔌 `APIRouter` 🔘 📁 `app/routers/items.py`. + +/// + +⏮️ `app.include_router()` 👥 💪 🚮 🔠 `APIRouter` 👑 `FastAPI` 🈸. + +⚫️ 🔜 🔌 🌐 🛣 ⚪️➡️ 👈 📻 🍕 ⚫️. + +/// note | 📡 ℹ + +⚫️ 🔜 🤙 🔘 ✍ *➡ 🛠️* 🔠 *➡ 🛠️* 👈 📣 `APIRouter`. + +, ⛅ 🎑, ⚫️ 🔜 🤙 👷 🚥 🌐 🎏 👁 📱. + +/// + +/// check + +👆 🚫 ✔️ 😟 🔃 🎭 🕐❔ ✅ 📻. + +👉 🔜 ✊ ⏲ & 🔜 🕴 🔨 🕴. + +⚫️ 🏆 🚫 📉 🎭. 👶 + +/// + +### 🔌 `APIRouter` ⏮️ 🛃 `prefix`, `tags`, `responses`, & `dependencies` + +🔜, ➡️ 🌈 👆 🏢 🤝 👆 `app/internal/admin.py` 📁. + +⚫️ 🔌 `APIRouter` ⏮️ 📡 *➡ 🛠️* 👈 👆 🏢 💰 🖖 📚 🏗. + +👉 🖼 ⚫️ 🔜 💎 🙅. ✋️ ➡️ 💬 👈 ↩️ ⚫️ 💰 ⏮️ 🎏 🏗 🏢, 👥 🚫🔜 🔀 ⚫️ & 🚮 `prefix`, `dependencies`, `tags`, ♒️. 🔗 `APIRouter`: + +```Python hl_lines="3" title="app/internal/admin.py" +{!../../docs_src/bigger_applications/app/internal/admin.py!} +``` + +✋️ 👥 💚 ⚒ 🛃 `prefix` 🕐❔ ✅ `APIRouter` 👈 🌐 🚮 *➡ 🛠️* ▶️ ⏮️ `/admin`, 👥 💚 🔐 ⚫️ ⏮️ `dependencies` 👥 ⏪ ✔️ 👉 🏗, & 👥 💚 🔌 `tags` & `responses`. + +👥 💪 📣 🌐 👈 🍵 ✔️ 🔀 ⏮️ `APIRouter` 🚶‍♀️ 👈 🔢 `app.include_router()`: + +```Python hl_lines="14-17" title="app/main.py" +{!../../docs_src/bigger_applications/app/main.py!} +``` + +👈 🌌, ⏮️ `APIRouter` 🔜 🚧 ⚗, 👥 💪 💰 👈 🎏 `app/internal/admin.py` 📁 ⏮️ 🎏 🏗 🏢. + +🏁 👈 👆 📱, 🔠 *➡ 🛠️* ⚪️➡️ `admin` 🕹 🔜 ✔️: + +* 🔡 `/admin`. +* 🔖 `admin`. +* 🔗 `get_token_header`. +* 📨 `418`. 👶 + +✋️ 👈 🔜 🕴 📉 👈 `APIRouter` 👆 📱, 🚫 🙆 🎏 📟 👈 ⚙️ ⚫️. + +, 🖼, 🎏 🏗 💪 ⚙️ 🎏 `APIRouter` ⏮️ 🎏 🤝 👩‍🔬. + +### 🔌 *➡ 🛠️* + +👥 💪 🚮 *➡ 🛠️* 🔗 `FastAPI` 📱. + +📥 👥 ⚫️... 🎦 👈 👥 💪 🤷: + +```Python hl_lines="21-23" title="app/main.py" +{!../../docs_src/bigger_applications/app/main.py!} +``` + +& ⚫️ 🔜 👷 ☑, 👯‍♂️ ⏮️ 🌐 🎏 *➡ 🛠️* 🚮 ⏮️ `app.include_router()`. + +/// info | 📶 📡 ℹ + +**🗒**: 👉 📶 📡 ℹ 👈 👆 🎲 💪 **🚶**. + +--- + + `APIRouter`Ⓜ 🚫 "🗻", 👫 🚫 👽 ⚪️➡️ 🎂 🈸. + +👉 ↩️ 👥 💚 🔌 👫 *➡ 🛠️* 🗄 🔗 & 👩‍💻 🔢. + +👥 🚫🔜 ❎ 👫 & "🗻" 👫 ➡ 🎂, *➡ 🛠️* "🖖" (🏤-✍), 🚫 🔌 🔗. + +/// + +## ✅ 🏧 🛠️ 🩺 + +🔜, 🏃 `uvicorn`, ⚙️ 🕹 `app.main` & 🔢 `app`: + +
+ +```console +$ uvicorn app.main:app --reload + +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +``` + +
+ +& 📂 🩺 http://127.0.0.1:8000/docs. + +👆 🔜 👀 🏧 🛠️ 🩺, ✅ ➡ ⚪️➡️ 🌐 🔁, ⚙️ ☑ ➡ (& 🔡) & ☑ 🔖: + + + +## 🔌 🎏 📻 💗 🕰 ⏮️ 🎏 `prefix` + +👆 💪 ⚙️ `.include_router()` 💗 🕰 ⏮️ *🎏* 📻 ⚙️ 🎏 🔡. + +👉 💪 ⚠, 🖼, 🎦 🎏 🛠️ 🔽 🎏 🔡, ✅ `/api/v1` & `/api/latest`. + +👉 🏧 ⚙️ 👈 👆 5️⃣📆 🚫 🤙 💪, ✋️ ⚫️ 📤 💼 👆. + +## 🔌 `APIRouter` ➕1️⃣ + +🎏 🌌 👆 💪 🔌 `APIRouter` `FastAPI` 🈸, 👆 💪 🔌 `APIRouter` ➕1️⃣ `APIRouter` ⚙️: + +```Python +router.include_router(other_router) +``` + +⚒ 💭 👆 ⚫️ ⏭ 🔌 `router` `FastAPI` 📱, 👈 *➡ 🛠️* ⚪️➡️ `other_router` 🔌. diff --git a/docs/em/docs/tutorial/body-fields.md b/docs/em/docs/tutorial/body-fields.md new file mode 100644 index 0000000..f202284 --- /dev/null +++ b/docs/em/docs/tutorial/body-fields.md @@ -0,0 +1,60 @@ +# 💪 - 🏑 + +🎏 🌌 👆 💪 📣 🌖 🔬 & 🗃 *➡ 🛠️ 🔢* 🔢 ⏮️ `Query`, `Path` & `Body`, 👆 💪 📣 🔬 & 🗃 🔘 Pydantic 🏷 ⚙️ Pydantic `Field`. + +## 🗄 `Field` + +🥇, 👆 ✔️ 🗄 ⚫️: + +{* ../../docs_src/body_fields/tutorial001.py hl[4] *} + +/// warning + +👀 👈 `Field` 🗄 🔗 ⚪️➡️ `pydantic`, 🚫 ⚪️➡️ `fastapi` 🌐 🎂 (`Query`, `Path`, `Body`, ♒️). + +/// + +## 📣 🏷 🔢 + +👆 💪 ⤴️ ⚙️ `Field` ⏮️ 🏷 🔢: + +{* ../../docs_src/body_fields/tutorial001.py hl[11:14] *} + +`Field` 👷 🎏 🌌 `Query`, `Path` & `Body`, ⚫️ ✔️ 🌐 🎏 🔢, ♒️. + +/// note | 📡 ℹ + +🤙, `Query`, `Path` & 🎏 👆 🔜 👀 ⏭ ✍ 🎚 🏿 ⚠ `Param` 🎓, ❔ ⚫️ 🏿 Pydantic `FieldInfo` 🎓. + + & Pydantic `Field` 📨 👐 `FieldInfo` 👍. + +`Body` 📨 🎚 🏿 `FieldInfo` 🔗. & 📤 🎏 👆 🔜 👀 ⏪ 👈 🏿 `Body` 🎓. + +💭 👈 🕐❔ 👆 🗄 `Query`, `Path`, & 🎏 ⚪️➡️ `fastapi`, 👈 🤙 🔢 👈 📨 🎁 🎓. + +/// + +/// tip + +👀 ❔ 🔠 🏷 🔢 ⏮️ 🆎, 🔢 💲 & `Field` ✔️ 🎏 📊 *➡ 🛠️ 🔢* 🔢, ⏮️ `Field` ↩️ `Path`, `Query` & `Body`. + +/// + +## 🚮 ➕ ℹ + +👆 💪 📣 ➕ ℹ `Field`, `Query`, `Body`, ♒️. & ⚫️ 🔜 🔌 🏗 🎻 🔗. + +👆 🔜 💡 🌅 🔃 ❎ ➕ ℹ ⏪ 🩺, 🕐❔ 🏫 📣 🖼. + +/// warning + +➕ 🔑 🚶‍♀️ `Field` 🔜 🎁 📉 🗄 🔗 👆 🈸. +👫 🔑 5️⃣📆 🚫 🎯 🍕 🗄 🔧, 🗄 🧰, 🖼 [🗄 💳](https://validator.swagger.io/), 5️⃣📆 🚫 👷 ⏮️ 👆 🏗 🔗. + +/// + +## 🌃 + +👆 💪 ⚙️ Pydantic `Field` 📣 ➕ 🔬 & 🗃 🏷 🔢. + +👆 💪 ⚙️ ➕ 🇨🇻 ❌ 🚶‍♀️ 🌖 🎻 🔗 🗃. diff --git a/docs/em/docs/tutorial/body-multiple-params.md b/docs/em/docs/tutorial/body-multiple-params.md new file mode 100644 index 0000000..3a2f2bd --- /dev/null +++ b/docs/em/docs/tutorial/body-multiple-params.md @@ -0,0 +1,171 @@ +# 💪 - 💗 🔢 + +🔜 👈 👥 ✔️ 👀 ❔ ⚙️ `Path` & `Query`, ➡️ 👀 🌅 🏧 ⚙️ 📨 💪 📄. + +## 🌀 `Path`, `Query` & 💪 🔢 + +🥇, ↗️, 👆 💪 🌀 `Path`, `Query` & 📨 💪 🔢 📄 ➡ & **FastAPI** 🔜 💭 ⚫️❔. + +& 👆 💪 📣 💪 🔢 📦, ⚒ 🔢 `None`: + +{* ../../docs_src/body_multiple_params/tutorial001.py hl[19:21] *} + +/// note + +👀 👈, 👉 💼, `item` 👈 🔜 ✊ ⚪️➡️ 💪 📦. ⚫️ ✔️ `None` 🔢 💲. + +/// + +## 💗 💪 🔢 + +⏮️ 🖼, *➡ 🛠️* 🔜 ⌛ 🎻 💪 ⏮️ 🔢 `Item`, 💖: + +```JSON +{ + "name": "Foo", + "description": "The pretender", + "price": 42.0, + "tax": 3.2 +} +``` + +✋️ 👆 💪 📣 💗 💪 🔢, ✅ `item` & `user`: + +{* ../../docs_src/body_multiple_params/tutorial002.py hl[22] *} + +👉 💼, **FastAPI** 🔜 👀 👈 📤 🌅 🌘 1️⃣ 💪 🔢 🔢 (2️⃣ 🔢 👈 Pydantic 🏷). + +, ⚫️ 🔜 ⤴️ ⚙️ 🔢 📛 🔑 (🏑 📛) 💪, & ⌛ 💪 💖: + +```JSON +{ + "item": { + "name": "Foo", + "description": "The pretender", + "price": 42.0, + "tax": 3.2 + }, + "user": { + "username": "dave", + "full_name": "Dave Grohl" + } +} +``` + +/// note + +👀 👈 ✋️ `item` 📣 🎏 🌌 ⏭, ⚫️ 🔜 ⌛ 🔘 💪 ⏮️ 🔑 `item`. + +/// + +**FastAPI** 🔜 🏧 🛠️ ⚪️➡️ 📨, 👈 🔢 `item` 📨 ⚫️ 🎯 🎚 & 🎏 `user`. + +⚫️ 🔜 🎭 🔬 ⚗ 💽, & 🔜 📄 ⚫️ 💖 👈 🗄 🔗 & 🏧 🩺. + +## ⭐ 💲 💪 + +🎏 🌌 📤 `Query` & `Path` 🔬 ➕ 💽 🔢 & ➡ 🔢, **FastAPI** 🚚 🌓 `Body`. + +🖼, ↔ ⏮️ 🏷, 👆 💪 💭 👈 👆 💚 ✔️ ➕1️⃣ 🔑 `importance` 🎏 💪, 🥈 `item` & `user`. + +🚥 👆 📣 ⚫️, ↩️ ⚫️ ⭐ 💲, **FastAPI** 🔜 🤔 👈 ⚫️ 🔢 🔢. + +✋️ 👆 💪 💡 **FastAPI** 😥 ⚫️ ➕1️⃣ 💪 🔑 ⚙️ `Body`: + +{* ../../docs_src/body_multiple_params/tutorial003.py hl[22] *} + +👉 💼, **FastAPI** 🔜 ⌛ 💪 💖: + +```JSON +{ + "item": { + "name": "Foo", + "description": "The pretender", + "price": 42.0, + "tax": 3.2 + }, + "user": { + "username": "dave", + "full_name": "Dave Grohl" + }, + "importance": 5 +} +``` + +🔄, ⚫️ 🔜 🗜 📊 🆎, ✔, 📄, ♒️. + +## 💗 💪 = & 🔢 + +↗️, 👆 💪 📣 🌖 🔢 🔢 🕐❔ 👆 💪, 🌖 🙆 💪 🔢. + +, 🔢, ⭐ 💲 🔬 🔢 🔢, 👆 🚫 ✔️ 🎯 🚮 `Query`, 👆 💪: + +```Python +q: Union[str, None] = None +``` + +⚖️ 🐍 3️⃣.1️⃣0️⃣ & 🔛: + +```Python +q: str | None = None +``` + +🖼: + +{* ../../docs_src/body_multiple_params/tutorial004.py hl[27] *} + +/// info + +`Body` ✔️ 🌐 🎏 ➕ 🔬 & 🗃 🔢 `Query`,`Path` & 🎏 👆 🔜 👀 ⏪. + +/// + +## ⏯ 👁 💪 🔢 + +➡️ 💬 👆 🕴 ✔️ 👁 `item` 💪 🔢 ⚪️➡️ Pydantic 🏷 `Item`. + +🔢, **FastAPI** 🔜 ⤴️ ⌛ 🚮 💪 🔗. + +✋️ 🚥 👆 💚 ⚫️ ⌛ 🎻 ⏮️ 🔑 `item` & 🔘 ⚫️ 🏷 🎚, ⚫️ 🔨 🕐❔ 👆 📣 ➕ 💪 🔢, 👆 💪 ⚙️ 🎁 `Body` 🔢 `embed`: + +```Python +item: Item = Body(embed=True) +``` + +: + +{* ../../docs_src/body_multiple_params/tutorial005.py hl[17] *} + +👉 💼 **FastAPI** 🔜 ⌛ 💪 💖: + +```JSON hl_lines="2" +{ + "item": { + "name": "Foo", + "description": "The pretender", + "price": 42.0, + "tax": 3.2 + } +} +``` + +↩️: + +```JSON +{ + "name": "Foo", + "description": "The pretender", + "price": 42.0, + "tax": 3.2 +} +``` + +## 🌃 + +👆 💪 🚮 💗 💪 🔢 👆 *➡ 🛠️ 🔢*, ✋️ 📨 💪 🕴 ✔️ 👁 💪. + +✋️ **FastAPI** 🔜 🍵 ⚫️, 🤝 👆 ☑ 📊 👆 🔢, & ✔ & 📄 ☑ 🔗 *➡ 🛠️*. + +👆 💪 📣 ⭐ 💲 📨 🍕 💪. + +& 👆 💪 💡 **FastAPI** ⏯ 💪 🔑 🕐❔ 📤 🕴 👁 🔢 📣. diff --git a/docs/em/docs/tutorial/body-nested-models.md b/docs/em/docs/tutorial/body-nested-models.md new file mode 100644 index 0000000..6c8d5a6 --- /dev/null +++ b/docs/em/docs/tutorial/body-nested-models.md @@ -0,0 +1,247 @@ +# 💪 - 🔁 🏷 + +⏮️ **FastAPI**, 👆 💪 🔬, ✔, 📄, & ⚙️ 🎲 🙇 🐦 🏷 (👏 Pydantic). + +## 📇 🏑 + +👆 💪 🔬 🔢 🏾. 🖼, 🐍 `list`: + +{* ../../docs_src/body_nested_models/tutorial001.py hl[14] *} + +👉 🔜 ⚒ `tags` 📇, 👐 ⚫️ 🚫 📣 🆎 🔣 📇. + +## 📇 🏑 ⏮️ 🆎 🔢 + +✋️ 🐍 ✔️ 🎯 🌌 📣 📇 ⏮️ 🔗 🆎, ⚖️ "🆎 🔢": + +### 🗄 ⌨ `List` + +🐍 3️⃣.9️⃣ & 🔛 👆 💪 ⚙️ 🐩 `list` 📣 👫 🆎 ✍ 👥 🔜 👀 🔛. 👶 + +✋️ 🐍 ⏬ ⏭ 3️⃣.9️⃣ (3️⃣.6️⃣ & 🔛), 👆 🥇 💪 🗄 `List` ⚪️➡️ 🐩 🐍 `typing` 🕹: + +{* ../../docs_src/body_nested_models/tutorial002.py hl[1] *} + +### 📣 `list` ⏮️ 🆎 🔢 + +📣 🆎 👈 ✔️ 🆎 🔢 (🔗 🆎), 💖 `list`, `dict`, `tuple`: + +* 🚥 👆 🐍 ⏬ 🔅 🌘 3️⃣.9️⃣, 🗄 👫 🌓 ⏬ ⚪️➡️ `typing` 🕹 +* 🚶‍♀️ 🔗 🆎(Ⓜ) "🆎 🔢" ⚙️ ⬜ 🗜: `[` & `]` + +🐍 3️⃣.9️⃣ ⚫️ 🔜: + +```Python +my_list: list[str] +``` + +⏬ 🐍 ⏭ 3️⃣.9️⃣, ⚫️ 🔜: + +```Python +from typing import List + +my_list: List[str] +``` + +👈 🌐 🐩 🐍 ❕ 🆎 📄. + +⚙️ 👈 🎏 🐩 ❕ 🏷 🔢 ⏮️ 🔗 🆎. + +, 👆 🖼, 👥 💪 ⚒ `tags` 🎯 "📇 🎻": + +{* ../../docs_src/body_nested_models/tutorial002.py hl[14] *} + +## ⚒ 🆎 + +✋️ ⤴️ 👥 💭 🔃 ⚫️, & 🤔 👈 🔖 🚫🔜 🚫 🔁, 👫 🔜 🎲 😍 🎻. + +& 🐍 ✔️ 🎁 💽 🆎 ⚒ 😍 🏬, `set`. + +⤴️ 👥 💪 📣 `tags` ⚒ 🎻: + +{* ../../docs_src/body_nested_models/tutorial003.py hl[1,14] *} + +⏮️ 👉, 🚥 👆 📨 📨 ⏮️ ❎ 📊, ⚫️ 🔜 🗜 ⚒ 😍 🏬. + +& 🕐❔ 👆 🔢 👈 📊, 🚥 ℹ ✔️ ❎, ⚫️ 🔜 🔢 ⚒ 😍 🏬. + +& ⚫️ 🔜 ✍ / 📄 ➡️ 💁‍♂️. + +## 🐦 🏷 + +🔠 🔢 Pydantic 🏷 ✔️ 🆎. + +✋️ 👈 🆎 💪 ⚫️ ➕1️⃣ Pydantic 🏷. + +, 👆 💪 📣 🙇 🐦 🎻 "🎚" ⏮️ 🎯 🔢 📛, 🆎 & 🔬. + +🌐 👈, 🎲 🐦. + +### 🔬 📊 + +🖼, 👥 💪 🔬 `Image` 🏷: + +{* ../../docs_src/body_nested_models/tutorial004.py hl[9:11] *} + +### ⚙️ 📊 🆎 + +& ⤴️ 👥 💪 ⚙️ ⚫️ 🆎 🔢: + +{* ../../docs_src/body_nested_models/tutorial004.py hl[20] *} + +👉 🔜 ⛓ 👈 **FastAPI** 🔜 ⌛ 💪 🎏: + +```JSON +{ + "name": "Foo", + "description": "The pretender", + "price": 42.0, + "tax": 3.2, + "tags": ["rock", "metal", "bar"], + "image": { + "url": "http://example.com/baz.jpg", + "name": "The Foo live" + } +} +``` + +🔄, 🤸 👈 📄, ⏮️ **FastAPI** 👆 🤚: + +* 👨‍🎨 🐕‍🦺 (🛠️, ♒️), 🐦 🏷 +* 💽 🛠️ +* 💽 🔬 +* 🏧 🧾 + +## 🎁 🆎 & 🔬 + +↖️ ⚪️➡️ 😐 ⭐ 🆎 💖 `str`, `int`, `float`, ♒️. 👆 💪 ⚙️ 🌅 🏗 ⭐ 🆎 👈 😖 ⚪️➡️ `str`. + +👀 🌐 🎛 👆 ✔️, 🛒 🩺 Pydantic 😍 🆎. 👆 🔜 👀 🖼 ⏭ 📃. + +🖼, `Image` 🏷 👥 ✔️ `url` 🏑, 👥 💪 📣 ⚫️ ↩️ `str`, Pydantic `HttpUrl`: + +{* ../../docs_src/body_nested_models/tutorial005.py hl[4,10] *} + +🎻 🔜 ✅ ☑ 📛, & 📄 🎻 🔗 / 🗄 ✅. + +## 🔢 ⏮️ 📇 📊 + +👆 💪 ⚙️ Pydantic 🏷 🏾 `list`, `set`, ♒️: + +{* ../../docs_src/body_nested_models/tutorial006.py hl[20] *} + +👉 🔜 ⌛ (🗜, ✔, 📄, ♒️) 🎻 💪 💖: + +```JSON hl_lines="11" +{ + "name": "Foo", + "description": "The pretender", + "price": 42.0, + "tax": 3.2, + "tags": [ + "rock", + "metal", + "bar" + ], + "images": [ + { + "url": "http://example.com/baz.jpg", + "name": "The Foo live" + }, + { + "url": "http://example.com/dave.jpg", + "name": "The Baz" + } + ] +} +``` + +/// info + +👀 ❔ `images` 🔑 🔜 ✔️ 📇 🖼 🎚. + +/// + +## 🙇 🐦 🏷 + +👆 💪 🔬 🎲 🙇 🐦 🏷: + +{* ../../docs_src/body_nested_models/tutorial007.py hl[9,14,20,23,27] *} + +/// info + +👀 ❔ `Offer` ✔️ 📇 `Item`Ⓜ, ❔ 🔄 ✔️ 📦 📇 `Image`Ⓜ + +/// + +## 💪 😁 📇 + +🚥 🔝 🎚 💲 🎻 💪 👆 ⌛ 🎻 `array` (🐍 `list`), 👆 💪 📣 🆎 🔢 🔢, 🎏 Pydantic 🏷: + +```Python +images: List[Image] +``` + +⚖️ 🐍 3️⃣.9️⃣ & 🔛: + +```Python +images: list[Image] +``` + +: + +{* ../../docs_src/body_nested_models/tutorial008.py hl[15] *} + +## 👨‍🎨 🐕‍🦺 🌐 + +& 👆 🤚 👨‍🎨 🐕‍🦺 🌐. + +🏬 🔘 📇: + + + +👆 🚫 🚫 🤚 👉 😇 👨‍🎨 🐕‍🦺 🚥 👆 👷 🔗 ⏮️ `dict` ↩️ Pydantic 🏷. + +✋️ 👆 🚫 ✔️ 😟 🔃 👫 👯‍♂️, 📨 #️⃣ 🗜 🔁 & 👆 🔢 🗜 🔁 🎻 💁‍♂️. + +## 💪 ❌ `dict`Ⓜ + +👆 💪 📣 💪 `dict` ⏮️ 🔑 🆎 & 💲 🎏 🆎. + +🍵 ✔️ 💭 ⏪ ⚫️❔ ☑ 🏑/🔢 📛 (🔜 💼 ⏮️ Pydantic 🏷). + +👉 🔜 ⚠ 🚥 👆 💚 📨 🔑 👈 👆 🚫 ⏪ 💭. + +--- + +🎏 ⚠ 💼 🕐❔ 👆 💚 ✔️ 🔑 🎏 🆎, ✅ `int`. + +👈 ⚫️❔ 👥 🔜 👀 📥. + +👉 💼, 👆 🔜 🚫 🙆 `dict` 📏 ⚫️ ✔️ `int` 🔑 ⏮️ `float` 💲: + +{* ../../docs_src/body_nested_models/tutorial009.py hl[9] *} + +/// tip + +✔️ 🤯 👈 🎻 🕴 🐕‍🦺 `str` 🔑. + +✋️ Pydantic ✔️ 🏧 💽 🛠️. + +👉 ⛓ 👈, ✋️ 👆 🛠️ 👩‍💻 💪 🕴 📨 🎻 🔑, 📏 👈 🎻 🔌 😁 🔢, Pydantic 🔜 🗜 👫 & ✔ 👫. + + & `dict` 👆 📨 `weights` 🔜 🤙 ✔️ `int` 🔑 & `float` 💲. + +/// + +## 🌃 + +⏮️ **FastAPI** 👆 ✔️ 🔆 💪 🚚 Pydantic 🏷, ⏪ 🚧 👆 📟 🙅, 📏 & 😍. + +✋️ ⏮️ 🌐 💰: + +* 👨‍🎨 🐕‍🦺 (🛠️ 🌐 ❗) +* 💽 🛠️ (.Ⓜ.. ✍ / 🛠️) +* 💽 🔬 +* 🔗 🧾 +* 🏧 🩺 diff --git a/docs/em/docs/tutorial/body-updates.md b/docs/em/docs/tutorial/body-updates.md new file mode 100644 index 0000000..7e2fbfa --- /dev/null +++ b/docs/em/docs/tutorial/body-updates.md @@ -0,0 +1,100 @@ +# 💪 - ℹ + +## ℹ ❎ ⏮️ `PUT` + +ℹ 🏬 👆 💪 ⚙️ 🇺🇸🔍 `PUT` 🛠️. + +👆 💪 ⚙️ `jsonable_encoder` 🗜 🔢 💽 📊 👈 💪 🏪 🎻 (✅ ⏮️ ☁ 💽). 🖼, 🏭 `datetime` `str`. + +{* ../../docs_src/body_updates/tutorial001.py hl[30:35] *} + +`PUT` ⚙️ 📨 💽 👈 🔜 ❎ ♻ 💽. + +### ⚠ 🔃 ❎ + +👈 ⛓ 👈 🚥 👆 💚 ℹ 🏬 `bar` ⚙️ `PUT` ⏮️ 💪 ⚗: + +```Python +{ + "name": "Barz", + "price": 3, + "description": None, +} +``` + +↩️ ⚫️ 🚫 🔌 ⏪ 🏪 🔢 `"tax": 20.2`, 🔢 🏷 🔜 ✊ 🔢 💲 `"tax": 10.5`. + +& 📊 🔜 🖊 ⏮️ 👈 "🆕" `tax` `10.5`. + +## 🍕 ℹ ⏮️ `PATCH` + +👆 💪 ⚙️ 🇺🇸🔍 `PATCH` 🛠️ *🍕* ℹ 💽. + +👉 ⛓ 👈 👆 💪 📨 🕴 💽 👈 👆 💚 ℹ, 🍂 🎂 🐣. + +/// note + +`PATCH` 🌘 🛎 ⚙️ & 💭 🌘 `PUT`. + + & 📚 🏉 ⚙️ 🕴 `PUT`, 🍕 ℹ. + +👆 **🆓** ⚙️ 👫 👐 👆 💚, **FastAPI** 🚫 🚫 🙆 🚫. + +✋️ 👉 🦮 🎦 👆, 🌖 ⚖️ 🌘, ❔ 👫 🎯 ⚙️. + +/// + +### ⚙️ Pydantic `exclude_unset` 🔢 + +🚥 👆 💚 📨 🍕 ℹ, ⚫️ 📶 ⚠ ⚙️ 🔢 `exclude_unset` Pydantic 🏷 `.dict()`. + +💖 `item.dict(exclude_unset=True)`. + +👈 🔜 🏗 `dict` ⏮️ 🕴 💽 👈 ⚒ 🕐❔ 🏗 `item` 🏷, 🚫 🔢 💲. + +⤴️ 👆 💪 ⚙️ 👉 🏗 `dict` ⏮️ 🕴 💽 👈 ⚒ (📨 📨), 🚫 🔢 💲: + +{* ../../docs_src/body_updates/tutorial002.py hl[34] *} + +### ⚙️ Pydantic `update` 🔢 + +🔜, 👆 💪 ✍ 📁 ♻ 🏷 ⚙️ `.copy()`, & 🚶‍♀️ `update` 🔢 ⏮️ `dict` ⚗ 💽 ℹ. + +💖 `stored_item_model.copy(update=update_data)`: + +{* ../../docs_src/body_updates/tutorial002.py hl[35] *} + +### 🍕 ℹ 🌃 + +📄, ✔ 🍕 ℹ 👆 🔜: + +* (⚗) ⚙️ `PATCH` ↩️ `PUT`. +* 🗃 🏪 💽. +* 🚮 👈 💽 Pydantic 🏷. +* 🏗 `dict` 🍵 🔢 💲 ⚪️➡️ 🔢 🏷 (⚙️ `exclude_unset`). + * 👉 🌌 👆 💪 ℹ 🕴 💲 🤙 ⚒ 👩‍💻, ↩️ 🔐 💲 ⏪ 🏪 ⏮️ 🔢 💲 👆 🏷. +* ✍ 📁 🏪 🏷, 🛠️ ⚫️ 🔢 ⏮️ 📨 🍕 ℹ (⚙️ `update` 🔢). +* 🗜 📁 🏷 🕳 👈 💪 🏪 👆 💽 (🖼, ⚙️ `jsonable_encoder`). + * 👉 ⭐ ⚙️ 🏷 `.dict()` 👩‍🔬 🔄, ✋️ ⚫️ ⚒ 💭 (& 🗜) 💲 💽 🆎 👈 💪 🗜 🎻, 🖼, `datetime` `str`. +* 🖊 💽 👆 💽. +* 📨 ℹ 🏷. + +{* ../../docs_src/body_updates/tutorial002.py hl[30:37] *} + +/// tip + +👆 💪 🤙 ⚙️ 👉 🎏 ⚒ ⏮️ 🇺🇸🔍 `PUT` 🛠️. + +✋️ 🖼 📥 ⚙️ `PATCH` ↩️ ⚫️ ✍ 👫 ⚙️ 💼. + +/// + +/// note + +👀 👈 🔢 🏷 ✔. + +, 🚥 👆 💚 📨 🍕 ℹ 👈 💪 🚫 🌐 🔢, 👆 💪 ✔️ 🏷 ⏮️ 🌐 🔢 ™ 📦 (⏮️ 🔢 💲 ⚖️ `None`). + +🔬 ⚪️➡️ 🏷 ⏮️ 🌐 📦 💲 **ℹ** & 🏷 ⏮️ ✔ 💲 **🏗**, 👆 💪 ⚙️ 💭 🔬 [➕ 🏷](extra-models.md){.internal-link target=_blank}. + +/// diff --git a/docs/em/docs/tutorial/body.md b/docs/em/docs/tutorial/body.md new file mode 100644 index 0000000..09e1d7c --- /dev/null +++ b/docs/em/docs/tutorial/body.md @@ -0,0 +1,162 @@ +# 📨 💪 + +🕐❔ 👆 💪 📨 📊 ⚪️➡️ 👩‍💻 (➡️ 💬, 🖥) 👆 🛠️, 👆 📨 ⚫️ **📨 💪**. + +**📨** 💪 📊 📨 👩‍💻 👆 🛠️. **📨** 💪 💽 👆 🛠️ 📨 👩‍💻. + +👆 🛠️ 🌖 🕧 ✔️ 📨 **📨** 💪. ✋️ 👩‍💻 🚫 🎯 💪 📨 **📨** 💪 🌐 🕰. + +📣 **📨** 💪, 👆 ⚙️ Pydantic 🏷 ⏮️ 🌐 👫 🏋️ & 💰. + +/// info + +📨 💽, 👆 🔜 ⚙️ 1️⃣: `POST` (🌅 ⚠), `PUT`, `DELETE` ⚖️ `PATCH`. + +📨 💪 ⏮️ `GET` 📨 ✔️ ⚠ 🎭 🔧, 👐, ⚫️ 🐕‍🦺 FastAPI, 🕴 📶 🏗/😕 ⚙️ 💼. + +⚫️ 🚫, 🎓 🩺 ⏮️ 🦁 🎚 🏆 🚫 🎦 🧾 💪 🕐❔ ⚙️ `GET`, & 🗳 🖕 💪 🚫 🐕‍🦺 ⚫️. + +/// + +## 🗄 Pydantic `BaseModel` + +🥇, 👆 💪 🗄 `BaseModel` ⚪️➡️ `pydantic`: + +{* ../../docs_src/body/tutorial001.py hl[4] *} + +## ✍ 👆 💽 🏷 + +⤴️ 👆 📣 👆 💽 🏷 🎓 👈 😖 ⚪️➡️ `BaseModel`. + +⚙️ 🐩 🐍 🆎 🌐 🔢: + +{* ../../docs_src/body/tutorial001.py hl[7:11] *} + +🎏 🕐❔ 📣 🔢 🔢, 🕐❔ 🏷 🔢 ✔️ 🔢 💲, ⚫️ 🚫 ✔. ⏪, ⚫️ ✔. ⚙️ `None` ⚒ ⚫️ 📦. + +🖼, 👉 🏷 🔛 📣 🎻 "`object`" (⚖️ 🐍 `dict`) 💖: + +```JSON +{ + "name": "Foo", + "description": "An optional description", + "price": 45.2, + "tax": 3.5 +} +``` + +... `description` & `tax` 📦 (⏮️ 🔢 💲 `None`), 👉 🎻 "`object`" 🔜 ☑: + +```JSON +{ + "name": "Foo", + "price": 45.2 +} +``` + +## 📣 ⚫️ 🔢 + +🚮 ⚫️ 👆 *➡ 🛠️*, 📣 ⚫️ 🎏 🌌 👆 📣 ➡ & 🔢 🔢: + +{* ../../docs_src/body/tutorial001.py hl[18] *} + +...& 📣 🚮 🆎 🏷 👆 ✍, `Item`. + +## 🏁 + +⏮️ 👈 🐍 🆎 📄, **FastAPI** 🔜: + +* ✍ 💪 📨 🎻. +* 🗜 🔗 🆎 (🚥 💪). +* ✔ 💽. + * 🚥 💽 ❌, ⚫️ 🔜 📨 👌 & 🆑 ❌, ☠️ ⚫️❔ 🌐❔ & ⚫️❔ ❌ 📊. +* 🤝 👆 📨 📊 🔢 `item`. + * 👆 📣 ⚫️ 🔢 🆎 `Item`, 👆 🔜 ✔️ 🌐 👨‍🎨 🐕‍🦺 (🛠️, ♒️) 🌐 🔢 & 👫 🆎. +* 🏗 🎻 🔗 🔑 👆 🏷, 👆 💪 ⚙️ 👫 🙆 🙆 👆 💖 🚥 ⚫️ ⚒ 🔑 👆 🏗. +* 👈 🔗 🔜 🍕 🏗 🗄 🔗, & ⚙️ 🏧 🧾 . + +## 🏧 🩺 + +🎻 🔗 👆 🏷 🔜 🍕 👆 🗄 🏗 🔗, & 🔜 🎦 🎓 🛠️ 🩺: + + + +& 🔜 ⚙️ 🛠️ 🩺 🔘 🔠 *➡ 🛠️* 👈 💪 👫: + + + +## 👨‍🎨 🐕‍🦺 + +👆 👨‍🎨, 🔘 👆 🔢 👆 🔜 🤚 🆎 🔑 & 🛠️ 🌐 (👉 🚫🔜 🔨 🚥 👆 📨 `dict` ↩️ Pydantic 🏷): + + + +👆 🤚 ❌ ✅ ❌ 🆎 🛠️: + + + +👉 🚫 🤞, 🎂 🛠️ 🏗 🤭 👈 🔧. + +& ⚫️ 🙇 💯 🔧 🌓, ⏭ 🙆 🛠️, 🚚 ⚫️ 🔜 👷 ⏮️ 🌐 👨‍🎨. + +📤 🔀 Pydantic ⚫️ 🐕‍🦺 👉. + +⏮️ 🖼 ✊ ⏮️ 🎙 🎙 📟. + +✋️ 👆 🔜 🤚 🎏 👨‍🎨 🐕‍🦺 ⏮️ 🗒 & 🌅 🎏 🐍 👨‍🎨: + + + +/// tip + +🚥 👆 ⚙️ 🗒 👆 👨‍🎨, 👆 💪 ⚙️ Pydantic 🗒 📁. + +⚫️ 📉 👨‍🎨 🐕‍🦺 Pydantic 🏷, ⏮️: + +* 🚘-🛠️ +* 🆎 ✅ +* 🛠️ +* 🔎 +* 🔬 + +/// + +## ⚙️ 🏷 + +🔘 🔢, 👆 💪 🔐 🌐 🔢 🏷 🎚 🔗: + +{* ../../docs_src/body/tutorial002.py hl[21] *} + +## 📨 💪 ➕ ➡ 🔢 + +👆 💪 📣 ➡ 🔢 & 📨 💪 🎏 🕰. + +**FastAPI** 🔜 🤔 👈 🔢 🔢 👈 🏏 ➡ 🔢 🔜 **✊ ⚪️➡️ ➡**, & 👈 🔢 🔢 👈 📣 Pydantic 🏷 🔜 **✊ ⚪️➡️ 📨 💪**. + +{* ../../docs_src/body/tutorial003.py hl[17:18] *} + +## 📨 💪 ➕ ➡ ➕ 🔢 🔢 + +👆 💪 📣 **💪**, **➡** & **🔢** 🔢, 🌐 🎏 🕰. + +**FastAPI** 🔜 🤔 🔠 👫 & ✊ 📊 ⚪️➡️ ☑ 🥉. + +{* ../../docs_src/body/tutorial004.py hl[18] *} + +🔢 🔢 🔜 🤔 ⏩: + +* 🚥 🔢 📣 **➡**, ⚫️ 🔜 ⚙️ ➡ 🔢. +* 🚥 🔢 **⭐ 🆎** (💖 `int`, `float`, `str`, `bool`, ♒️) ⚫️ 🔜 🔬 **🔢** 🔢. +* 🚥 🔢 📣 🆎 **Pydantic 🏷**, ⚫️ 🔜 🔬 📨 **💪**. + +/// note + +FastAPI 🔜 💭 👈 💲 `q` 🚫 ✔ ↩️ 🔢 💲 `= None`. + + `Union` `Union[str, None]` 🚫 ⚙️ FastAPI, ✋️ 🔜 ✔ 👆 👨‍🎨 🤝 👆 👍 🐕‍🦺 & 🔍 ❌. + +/// + +## 🍵 Pydantic + +🚥 👆 🚫 💚 ⚙️ Pydantic 🏷, 👆 💪 ⚙️ **💪** 🔢. 👀 🩺 [💪 - 💗 🔢: ⭐ 💲 💪](body-multiple-params.md#_2){.internal-link target=_blank}. diff --git a/docs/em/docs/tutorial/cookie-params.md b/docs/em/docs/tutorial/cookie-params.md new file mode 100644 index 0000000..4699fe2 --- /dev/null +++ b/docs/em/docs/tutorial/cookie-params.md @@ -0,0 +1,35 @@ +# 🍪 🔢 + +👆 💪 🔬 🍪 🔢 🎏 🌌 👆 🔬 `Query` & `Path` 🔢. + +## 🗄 `Cookie` + +🥇 🗄 `Cookie`: + +{* ../../docs_src/cookie_params/tutorial001.py hl[3] *} + +## 📣 `Cookie` 🔢 + +⤴️ 📣 🍪 🔢 ⚙️ 🎏 📊 ⏮️ `Path` & `Query`. + +🥇 💲 🔢 💲, 👆 💪 🚶‍♀️ 🌐 ➕ 🔬 ⚖️ ✍ 🔢: + +{* ../../docs_src/cookie_params/tutorial001.py hl[9] *} + +/// note | 📡 ℹ + +`Cookie` "👭" 🎓 `Path` & `Query`. ⚫️ 😖 ⚪️➡️ 🎏 ⚠ `Param` 🎓. + +✋️ 💭 👈 🕐❔ 👆 🗄 `Query`, `Path`, `Cookie` & 🎏 ⚪️➡️ `fastapi`, 👈 🤙 🔢 👈 📨 🎁 🎓. + +/// + +/// info + +📣 🍪, 👆 💪 ⚙️ `Cookie`, ↩️ ⏪ 🔢 🔜 🔬 🔢 🔢. + +/// + +## 🌃 + +📣 🍪 ⏮️ `Cookie`, ⚙️ 🎏 ⚠ ⚓ `Query` & `Path`. diff --git a/docs/em/docs/tutorial/cors.md b/docs/em/docs/tutorial/cors.md new file mode 100644 index 0000000..44ab4ad --- /dev/null +++ b/docs/em/docs/tutorial/cors.md @@ -0,0 +1,85 @@ +# ⚜ (✖️-🇨🇳 ℹ 🤝) + +⚜ ⚖️ "✖️-🇨🇳 ℹ 🤝" 🔗 ⚠ 🕐❔ 🕸 🏃‍♂ 🖥 ✔️ 🕸 📟 👈 🔗 ⏮️ 👩‍💻, & 👩‍💻 🎏 "🇨🇳" 🌘 🕸. + +## 🇨🇳 + +🇨🇳 🌀 🛠️ (`http`, `https`), 🆔 (`myapp.com`, `localhost`, `localhost.tiangolo.com`), & ⛴ (`80`, `443`, `8080`). + +, 🌐 👫 🎏 🇨🇳: + +* `http://localhost` +* `https://localhost` +* `http://localhost:8080` + +🚥 👫 🌐 `localhost`, 👫 ⚙️ 🎏 🛠️ ⚖️ ⛴,, 👫 🎏 "🇨🇳". + +## 🔁 + +, ➡️ 💬 👆 ✔️ 🕸 🏃 👆 🖥 `http://localhost:8080`, & 🚮 🕸 🔄 🔗 ⏮️ 👩‍💻 🏃 `http://localhost` (↩️ 👥 🚫 ✔ ⛴, 🖥 🔜 🤔 🔢 ⛴ `80`). + +⤴️, 🖥 🔜 📨 🇺🇸🔍 `OPTIONS` 📨 👩‍💻, & 🚥 👩‍💻 📨 ☑ 🎚 ✔ 📻 ⚪️➡️ 👉 🎏 🇨🇳 (`http://localhost:8080`) ⤴️ 🖥 🔜 ➡️ 🕸 🕸 📨 🚮 📨 👩‍💻. + +🏆 👉, 👩‍💻 🔜 ✔️ 📇 "✔ 🇨🇳". + +👉 💼, ⚫️ 🔜 ✔️ 🔌 `http://localhost:8080` 🕸 👷 ☑. + +## 🃏 + +⚫️ 💪 📣 📇 `"*"` ("🃏") 💬 👈 🌐 ✔. + +✋️ 👈 🔜 🕴 ✔ 🎯 🆎 📻, 🚫 🌐 👈 🔌 🎓: 🍪, ✔ 🎚 💖 📚 ⚙️ ⏮️ 📨 🤝, ♒️. + +, 🌐 👷 ☑, ⚫️ 👻 ✔ 🎯 ✔ 🇨🇳. + +## ⚙️ `CORSMiddleware` + +👆 💪 🔗 ⚫️ 👆 **FastAPI** 🈸 ⚙️ `CORSMiddleware`. + +* 🗄 `CORSMiddleware`. +* ✍ 📇 ✔ 🇨🇳 (🎻). +* 🚮 ⚫️ "🛠️" 👆 **FastAPI** 🈸. + +👆 💪 ✔ 🚥 👆 👩‍💻 ✔: + +* 🎓 (✔ 🎚, 🍪, ♒️). +* 🎯 🇺🇸🔍 👩‍🔬 (`POST`, `PUT`) ⚖️ 🌐 👫 ⏮️ 🃏 `"*"`. +* 🎯 🇺🇸🔍 🎚 ⚖️ 🌐 👫 ⏮️ 🃏 `"*"`. + +{* ../../docs_src/cors/tutorial001.py hl[2,6:11,13:19] *} + +🔢 🔢 ⚙️ `CORSMiddleware` 🛠️ 🚫 🔢, 👆 🔜 💪 🎯 🛠️ 🎯 🇨🇳, 👩‍🔬, ⚖️ 🎚, ✔ 🖥 ✔ ⚙️ 👫 ✖️-🆔 🔑. + +📄 ❌ 🐕‍🦺: + +* `allow_origins` - 📇 🇨🇳 👈 🔜 ✔ ⚒ ✖️-🇨🇳 📨. 🤶 Ⓜ. `['https://example.org', 'https://www.example.org']`. 👆 💪 ⚙️ `['*']` ✔ 🙆 🇨🇳. +* `allow_origin_regex` - 🎻 🎻 🏏 🛡 🇨🇳 👈 🔜 ✔ ⚒ ✖️-🇨🇳 📨. ✅ `'https://.*\.example\.org'`. +* `allow_methods` - 📇 🇺🇸🔍 👩‍🔬 👈 🔜 ✔ ✖️-🇨🇳 📨. 🔢 `['GET']`. 👆 💪 ⚙️ `['*']` ✔ 🌐 🐩 👩‍🔬. +* `allow_headers` - 📇 🇺🇸🔍 📨 🎚 👈 🔜 🐕‍🦺 ✖️-🇨🇳 📨. 🔢 `[]`. 👆 💪 ⚙️ `['*']` ✔ 🌐 🎚. `Accept`, `Accept-Language`, `Content-Language` & `Content-Type` 🎚 🕧 ✔ 🙅 ⚜ 📨. +* `allow_credentials` - 🎦 👈 🍪 🔜 🐕‍🦺 ✖️-🇨🇳 📨. 🔢 `False`. , `allow_origins` 🚫🔜 ⚒ `['*']` 🎓 ✔, 🇨🇳 🔜 ✔. +* `expose_headers` - 🎦 🙆 📨 🎚 👈 🔜 ⚒ ♿ 🖥. 🔢 `[]`. +* `max_age` - ⚒ 🔆 🕰 🥈 🖥 💾 ⚜ 📨. 🔢 `600`. + +🛠️ 📨 2️⃣ 🎯 🆎 🇺🇸🔍 📨... + +### ⚜ 🛫 📨 + +👉 🙆 `OPTIONS` 📨 ⏮️ `Origin` & `Access-Control-Request-Method` 🎚. + +👉 💼 🛠️ 🔜 🆘 📨 📨 & 📨 ⏮️ ☑ ⚜ 🎚, & 👯‍♂️ `200` ⚖️ `400` 📨 🎓 🎯. + +### 🙅 📨 + +🙆 📨 ⏮️ `Origin` 🎚. 👉 💼 🛠️ 🔜 🚶‍♀️ 📨 🔘 😐, ✋️ 🔜 🔌 ☑ ⚜ 🎚 🔛 📨. + +## 🌅 ℹ + +🌖 ℹ 🔃 , ✅ 🦎 ⚜ 🧾. + +/// note | 📡 ℹ + +👆 💪 ⚙️ `from starlette.middleware.cors import CORSMiddleware`. + +**FastAPI** 🚚 📚 🛠️ `fastapi.middleware` 🏪 👆, 👩‍💻. ✋️ 🌅 💪 🛠️ 👟 🔗 ⚪️➡️ 💃. + +/// diff --git a/docs/em/docs/tutorial/debugging.md b/docs/em/docs/tutorial/debugging.md new file mode 100644 index 0000000..97e61a7 --- /dev/null +++ b/docs/em/docs/tutorial/debugging.md @@ -0,0 +1,113 @@ +# 🛠️ + +👆 💪 🔗 🕹 👆 👨‍🎨, 🖼 ⏮️ 🎙 🎙 📟 ⚖️ 🗒. + +## 🤙 `uvicorn` + +👆 FastAPI 🈸, 🗄 & 🏃 `uvicorn` 🔗: + +{* ../../docs_src/debugging/tutorial001.py hl[1,15] *} + +### 🔃 `__name__ == "__main__"` + +👑 🎯 `__name__ == "__main__"` ✔️ 📟 👈 🛠️ 🕐❔ 👆 📁 🤙 ⏮️: + +
+ +```console +$ python myapp.py +``` + +
+ +✋️ 🚫 🤙 🕐❔ ➕1️⃣ 📁 🗄 ⚫️, 💖: + +```Python +from myapp import app +``` + +#### 🌅 ℹ + +➡️ 💬 👆 📁 🌟 `myapp.py`. + +🚥 👆 🏃 ⚫️ ⏮️: + +
+ +```console +$ python myapp.py +``` + +
+ +⤴️ 🔗 🔢 `__name__` 👆 📁, ✍ 🔁 🐍, 🔜 ✔️ 💲 🎻 `"__main__"`. + +, 📄: + +```Python + uvicorn.run(app, host="0.0.0.0", port=8000) +``` + +🔜 🏃. + +--- + +👉 🏆 🚫 🔨 🚥 👆 🗄 👈 🕹 (📁). + +, 🚥 👆 ✔️ ➕1️⃣ 📁 `importer.py` ⏮️: + +```Python +from myapp import app + +# Some more code +``` + +👈 💼, 🏧 🔢 🔘 `myapp.py` 🔜 🚫 ✔️ 🔢 `__name__` ⏮️ 💲 `"__main__"`. + +, ⏸: + +```Python + uvicorn.run(app, host="0.0.0.0", port=8000) +``` + +🔜 🚫 🛠️. + +/// info + +🌅 ℹ, ✅ 🛂 🐍 🩺. + +/// + +## 🏃 👆 📟 ⏮️ 👆 🕹 + +↩️ 👆 🏃 Uvicorn 💽 🔗 ⚪️➡️ 👆 📟, 👆 💪 🤙 👆 🐍 📋 (👆 FastAPI 🈸) 🔗 ⚪️➡️ 🕹. + +--- + +🖼, 🎙 🎙 📟, 👆 💪: + +* 🚶 "ℹ" 🎛. +* "🚮 📳...". +* 🖊 "🐍" +* 🏃 🕹 ⏮️ 🎛 "`Python: Current File (Integrated Terminal)`". + +⚫️ 🔜 ⤴️ ▶️ 💽 ⏮️ 👆 **FastAPI** 📟, ⛔️ 👆 0️⃣, ♒️. + +📥 ❔ ⚫️ 💪 👀: + + + +--- + +🚥 👆 ⚙️ 🗒, 👆 💪: + +* 📂 "🏃" 🍣. +* 🖊 🎛 "ℹ...". +* ⤴️ 🔑 🍣 🎦 🆙. +* 🖊 📁 ℹ (👉 💼, `main.py`). + +⚫️ 🔜 ⤴️ ▶️ 💽 ⏮️ 👆 **FastAPI** 📟, ⛔️ 👆 0️⃣, ♒️. + +📥 ❔ ⚫️ 💪 👀: + + diff --git a/docs/em/docs/tutorial/dependencies/classes-as-dependencies.md b/docs/em/docs/tutorial/dependencies/classes-as-dependencies.md new file mode 100644 index 0000000..41938bc --- /dev/null +++ b/docs/em/docs/tutorial/dependencies/classes-as-dependencies.md @@ -0,0 +1,180 @@ +# 🎓 🔗 + +⏭ 🤿 ⏬ 🔘 **🔗 💉** ⚙️, ➡️ ♻ ⏮️ 🖼. + +## `dict` ⚪️➡️ ⏮️ 🖼 + +⏮️ 🖼, 👥 🛬 `dict` ⚪️➡️ 👆 🔗 ("☑"): + +{* ../../docs_src/dependencies/tutorial001.py hl[9] *} + +✋️ ⤴️ 👥 🤚 `dict` 🔢 `commons` *➡ 🛠️ 🔢*. + +& 👥 💭 👈 👨‍🎨 💪 🚫 🚚 📚 🐕‍🦺 (💖 🛠️) `dict`Ⓜ, ↩️ 👫 💪 🚫 💭 👫 🔑 & 💲 🆎. + +👥 💪 👍... + +## ⚫️❔ ⚒ 🔗 + +🆙 🔜 👆 ✔️ 👀 🔗 📣 🔢. + +✋️ 👈 🚫 🕴 🌌 📣 🔗 (👐 ⚫️ 🔜 🎲 🌖 ⚠). + +🔑 ⚖ 👈 🔗 🔜 "🇧🇲". + +"**🇧🇲**" 🐍 🕳 👈 🐍 💪 "🤙" 💖 🔢. + +, 🚥 👆 ✔️ 🎚 `something` (👈 💪 _🚫_ 🔢) & 👆 💪 "🤙" ⚫️ (🛠️ ⚫️) 💖: + +```Python +something() +``` + +⚖️ + +```Python +something(some_argument, some_keyword_argument="foo") +``` + +⤴️ ⚫️ "🇧🇲". + +## 🎓 🔗 + +👆 5️⃣📆 👀 👈 ✍ 👐 🐍 🎓, 👆 ⚙️ 👈 🎏 ❕. + +🖼: + +```Python +class Cat: + def __init__(self, name: str): + self.name = name + + +fluffy = Cat(name="Mr Fluffy") +``` + +👉 💼, `fluffy` 👐 🎓 `Cat`. + +& ✍ `fluffy`, 👆 "🤙" `Cat`. + +, 🐍 🎓 **🇧🇲**. + +⤴️, **FastAPI**, 👆 💪 ⚙️ 🐍 🎓 🔗. + +⚫️❔ FastAPI 🤙 ✅ 👈 ⚫️ "🇧🇲" (🔢, 🎓 ⚖️ 🕳 🙆) & 🔢 🔬. + +🚥 👆 🚶‍♀️ "🇧🇲" 🔗 **FastAPI**, ⚫️ 🔜 🔬 🔢 👈 "🇧🇲", & 🛠️ 👫 🎏 🌌 🔢 *➡ 🛠️ 🔢*. ✅ 🎧-🔗. + +👈 ✔ 🇧🇲 ⏮️ 🙅‍♂ 🔢 🌐. 🎏 ⚫️ 🔜 *➡ 🛠️ 🔢* ⏮️ 🙅‍♂ 🔢. + +⤴️, 👥 💪 🔀 🔗 "☑" `common_parameters` ⚪️➡️ 🔛 🎓 `CommonQueryParams`: + +{* ../../docs_src/dependencies/tutorial002.py hl[11:15] *} + +💸 🙋 `__init__` 👩‍🔬 ⚙️ ✍ 👐 🎓: + +{* ../../docs_src/dependencies/tutorial002.py hl[12] *} + +...⚫️ ✔️ 🎏 🔢 👆 ⏮️ `common_parameters`: + +{* ../../docs_src/dependencies/tutorial001.py hl[9] *} + +📚 🔢 ⚫️❔ **FastAPI** 🔜 ⚙️ "❎" 🔗. + +👯‍♂️ 💼, ⚫️ 🔜 ✔️: + +* 📦 `q` 🔢 🔢 👈 `str`. +* `skip` 🔢 🔢 👈 `int`, ⏮️ 🔢 `0`. +* `limit` 🔢 🔢 👈 `int`, ⏮️ 🔢 `100`. + +👯‍♂️ 💼 💽 🔜 🗜, ✔, 📄 🔛 🗄 🔗, ♒️. + +## ⚙️ ⚫️ + +🔜 👆 💪 📣 👆 🔗 ⚙️ 👉 🎓. + +{* ../../docs_src/dependencies/tutorial002.py hl[19] *} + +**FastAPI** 🤙 `CommonQueryParams` 🎓. 👉 ✍ "👐" 👈 🎓 & 👐 🔜 🚶‍♀️ 🔢 `commons` 👆 🔢. + +## 🆎 ✍ 🆚 `Depends` + +👀 ❔ 👥 ✍ `CommonQueryParams` 🕐 🔛 📟: + +```Python +commons: CommonQueryParams = Depends(CommonQueryParams) +``` + +🏁 `CommonQueryParams`,: + +```Python +... = Depends(CommonQueryParams) +``` + +...⚫️❔ **FastAPI** 🔜 🤙 ⚙️ 💭 ⚫️❔ 🔗. + +⚪️➡️ ⚫️ 👈 FastAPI 🔜 ⚗ 📣 🔢 & 👈 ⚫️❔ FastAPI 🔜 🤙 🤙. + +--- + +👉 💼, 🥇 `CommonQueryParams`,: + +```Python +commons: CommonQueryParams ... +``` + +...🚫 ✔️ 🙆 🎁 🔑 **FastAPI**. FastAPI 🏆 🚫 ⚙️ ⚫️ 💽 🛠️, 🔬, ♒️. (⚫️ ⚙️ `= Depends(CommonQueryParams)` 👈). + +👆 💪 🤙 ✍: + +```Python +commons = Depends(CommonQueryParams) +``` + +...: + +{* ../../docs_src/dependencies/tutorial003.py hl[19] *} + +✋️ 📣 🆎 💡 👈 🌌 👆 👨‍🎨 🔜 💭 ⚫️❔ 🔜 🚶‍♀️ 🔢 `commons`, & ⤴️ ⚫️ 💪 ℹ 👆 ⏮️ 📟 🛠️, 🆎 ✅, ♒️: + + + +## ⌨ + +✋️ 👆 👀 👈 👥 ✔️ 📟 🔁 📥, ✍ `CommonQueryParams` 🕐: + +```Python +commons: CommonQueryParams = Depends(CommonQueryParams) +``` + +**FastAPI** 🚚 ⌨ 👫 💼, 🌐❔ 🔗 *🎯* 🎓 👈 **FastAPI** 🔜 "🤙" ✍ 👐 🎓 ⚫️. + +📚 🎯 💼, 👆 💪 📄: + +↩️ ✍: + +```Python +commons: CommonQueryParams = Depends(CommonQueryParams) +``` + +...👆 ✍: + +```Python +commons: CommonQueryParams = Depends() +``` + +👆 📣 🔗 🆎 🔢, & 👆 ⚙️ `Depends()` 🚮 "🔢" 💲 (👈 ⏮️ `=`) 👈 🔢 🔢, 🍵 🙆 🔢 `Depends()`, ↩️ ✔️ ✍ 🌕 🎓 *🔄* 🔘 `Depends(CommonQueryParams)`. + +🎏 🖼 🔜 ⤴️ 👀 💖: + +{* ../../docs_src/dependencies/tutorial004.py hl[19] *} + +...& **FastAPI** 🔜 💭 ⚫️❔. + +/// tip + +🚥 👈 😑 🌅 😨 🌘 👍, 🤷‍♂ ⚫️, 👆 🚫 *💪* ⚫️. + +⚫️ ⌨. ↩️ **FastAPI** 💅 🔃 🤝 👆 📉 📟 🔁. + +/// diff --git a/docs/em/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md b/docs/em/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md new file mode 100644 index 0000000..ab144a4 --- /dev/null +++ b/docs/em/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md @@ -0,0 +1,69 @@ +# 🔗 ➡ 🛠️ 👨‍🎨 + +💼 👆 🚫 🤙 💪 📨 💲 🔗 🔘 👆 *➡ 🛠️ 🔢*. + +⚖️ 🔗 🚫 📨 💲. + +✋️ 👆 💪 ⚫️ 🛠️/❎. + +📚 💼, ↩️ 📣 *➡ 🛠️ 🔢* 🔢 ⏮️ `Depends`, 👆 💪 🚮 `list` `dependencies` *➡ 🛠️ 👨‍🎨*. + +## 🚮 `dependencies` *➡ 🛠️ 👨‍🎨* + +*➡ 🛠️ 👨‍🎨* 📨 📦 ❌ `dependencies`. + +⚫️ 🔜 `list` `Depends()`: + +{* ../../docs_src/dependencies/tutorial006.py hl[17] *} + +👉 🔗 🔜 🛠️/❎ 🎏 🌌 😐 🔗. ✋️ 👫 💲 (🚥 👫 📨 🙆) 🏆 🚫 🚶‍♀️ 👆 *➡ 🛠️ 🔢*. + +/// tip + +👨‍🎨 ✅ ♻ 🔢 🔢, & 🎦 👫 ❌. + +⚙️ 👉 `dependencies` *➡ 🛠️ 👨‍🎨* 👆 💪 ⚒ 💭 👫 🛠️ ⏪ ❎ 👨‍🎨/🏭 ❌. + +⚫️ 💪 ℹ ❎ 😨 🆕 👩‍💻 👈 👀 ♻ 🔢 👆 📟 & 💪 💭 ⚫️ 🙃. + +/// + +/// info + +👉 🖼 👥 ⚙️ 💭 🛃 🎚 `X-Key` & `X-Token`. + +✋️ 🎰 💼, 🕐❔ 🛠️ 💂‍♂, 👆 🔜 🤚 🌖 💰 ⚪️➡️ ⚙️ 🛠️ [💂‍♂ 🚙 (⏭ 📃)](../security/index.md){.internal-link target=_blank}. + +/// + +## 🔗 ❌ & 📨 💲 + +👆 💪 ⚙️ 🎏 🔗 *🔢* 👆 ⚙️ 🛎. + +### 🔗 📄 + +👫 💪 📣 📨 📄 (💖 🎚) ⚖️ 🎏 🎧-🔗: + +{* ../../docs_src/dependencies/tutorial006.py hl[6,11] *} + +### 🤚 ⚠ + +👫 🔗 💪 `raise` ⚠, 🎏 😐 🔗: + +{* ../../docs_src/dependencies/tutorial006.py hl[8,13] *} + +### 📨 💲 + +& 👫 💪 📨 💲 ⚖️ 🚫, 💲 🏆 🚫 ⚙️. + +, 👆 💪 🏤-⚙️ 😐 🔗 (👈 📨 💲) 👆 ⏪ ⚙️ 👱 🙆, & ✋️ 💲 🏆 🚫 ⚙️, 🔗 🔜 🛠️: + +{* ../../docs_src/dependencies/tutorial006.py hl[9,14] *} + +## 🔗 👪 *➡ 🛠️* + +⏪, 🕐❔ 👂 🔃 ❔ 📊 🦏 🈸 ([🦏 🈸 - 💗 📁](../../tutorial/bigger-applications.md){.internal-link target=_blank}), 🎲 ⏮️ 💗 📁, 👆 🔜 💡 ❔ 📣 👁 `dependencies` 🔢 👪 *➡ 🛠️*. + +## 🌐 🔗 + +⏭ 👥 🔜 👀 ❔ 🚮 🔗 🎂 `FastAPI` 🈸, 👈 👫 ✔ 🔠 *➡ 🛠️*. diff --git a/docs/em/docs/tutorial/dependencies/dependencies-with-yield.md b/docs/em/docs/tutorial/dependencies/dependencies-with-yield.md new file mode 100644 index 0000000..1b37b1c --- /dev/null +++ b/docs/em/docs/tutorial/dependencies/dependencies-with-yield.md @@ -0,0 +1,232 @@ +# 🔗 ⏮️ 🌾 + +FastAPI 🐕‍🦺 🔗 👈 ➕ 🔁 ⏮️ 🏁. + +👉, ⚙️ `yield` ↩️ `return`, & ✍ ➕ 🔁 ⏮️. + +/// tip + +⚒ 💭 ⚙️ `yield` 1️⃣ 👁 🕰. + +/// + +/// note | 📡 ℹ + +🙆 🔢 👈 ☑ ⚙️ ⏮️: + +* `@contextlib.contextmanager` ⚖️ +* `@contextlib.asynccontextmanager` + +🔜 ☑ ⚙️ **FastAPI** 🔗. + +👐, FastAPI ⚙️ 📚 2️⃣ 👨‍🎨 🔘. + +/// + +## 💽 🔗 ⏮️ `yield` + +🖼, 👆 💪 ⚙️ 👉 ✍ 💽 🎉 & 🔐 ⚫️ ⏮️ 🏁. + +🕴 📟 ⏭ & 🔌 `yield` 📄 🛠️ ⏭ 📨 📨: + +{* ../../docs_src/dependencies/tutorial007.py hl[2:4] *} + +🌾 💲 ⚫️❔ 💉 🔘 *➡ 🛠️* & 🎏 🔗: + +{* ../../docs_src/dependencies/tutorial007.py hl[4] *} + +📟 📄 `yield` 📄 🛠️ ⏮️ 📨 ✔️ 🚚: + +{* ../../docs_src/dependencies/tutorial007.py hl[5:6] *} + +/// tip + +👆 💪 ⚙️ `async` ⚖️ 😐 🔢. + +**FastAPI** 🔜 ▶️️ 👜 ⏮️ 🔠, 🎏 ⏮️ 😐 🔗. + +/// + +## 🔗 ⏮️ `yield` & `try` + +🚥 👆 ⚙️ `try` 🍫 🔗 ⏮️ `yield`, 👆 🔜 📨 🙆 ⚠ 👈 🚮 🕐❔ ⚙️ 🔗. + +🖼, 🚥 📟 ☝ 🖕, ➕1️⃣ 🔗 ⚖️ *➡ 🛠️*, ⚒ 💽 💵 "💾" ⚖️ ✍ 🙆 🎏 ❌, 👆 🔜 📨 ⚠ 👆 🔗. + +, 👆 💪 👀 👈 🎯 ⚠ 🔘 🔗 ⏮️ `except SomeException`. + +🎏 🌌, 👆 💪 ⚙️ `finally` ⚒ 💭 🚪 📶 🛠️, 🙅‍♂ 🤔 🚥 📤 ⚠ ⚖️ 🚫. + +{* ../../docs_src/dependencies/tutorial007.py hl[3,5] *} + +## 🎧-🔗 ⏮️ `yield` + +👆 💪 ✔️ 🎧-🔗 & "🌲" 🎧-🔗 🙆 📐 & 💠, & 🙆 ⚖️ 🌐 👫 💪 ⚙️ `yield`. + +**FastAPI** 🔜 ⚒ 💭 👈 "🚪 📟" 🔠 🔗 ⏮️ `yield` 🏃 ☑ ✔. + +🖼, `dependency_c` 💪 ✔️ 🔗 🔛 `dependency_b`, & `dependency_b` 🔛 `dependency_a`: + +{* ../../docs_src/dependencies/tutorial008.py hl[4,12,20] *} + +& 🌐 👫 💪 ⚙️ `yield`. + +👉 💼 `dependency_c`, 🛠️ 🚮 🚪 📟, 💪 💲 ⚪️➡️ `dependency_b` (📥 📛 `dep_b`) 💪. + +& , 🔄, `dependency_b` 💪 💲 ⚪️➡️ `dependency_a` (📥 📛 `dep_a`) 💪 🚮 🚪 📟. + +{* ../../docs_src/dependencies/tutorial008.py hl[16:17,24:25] *} + +🎏 🌌, 👆 💪 ✔️ 🔗 ⏮️ `yield` & `return` 🌀. + +& 👆 💪 ✔️ 👁 🔗 👈 🚚 📚 🎏 🔗 ⏮️ `yield`, ♒️. + +👆 💪 ✔️ 🙆 🌀 🔗 👈 👆 💚. + +**FastAPI** 🔜 ⚒ 💭 🌐 🏃 ☑ ✔. + +/// note | 📡 ℹ + +👉 👷 👏 🐍 🔑 👨‍💼. + +**FastAPI** ⚙️ 👫 🔘 🏆 👉. + +/// + +## 🔗 ⏮️ `yield` & `HTTPException` + +👆 👀 👈 👆 💪 ⚙️ 🔗 ⏮️ `yield` & ✔️ `try` 🍫 👈 ✊ ⚠. + +⚫️ 5️⃣📆 😋 🤚 `HTTPException` ⚖️ 🎏 🚪 📟, ⏮️ `yield`. ✋️ **⚫️ 🏆 🚫 👷**. + +🚪 📟 🔗 ⏮️ `yield` 🛠️ *⏮️* 📨 📨, [⚠ 🐕‍🦺](../handling-errors.md#_4){.internal-link target=_blank} 🔜 ✔️ ⏪ 🏃. 📤 🕳 😽 ⚠ 🚮 👆 🔗 🚪 📟 (⏮️ `yield`). + +, 🚥 👆 🤚 `HTTPException` ⏮️ `yield`, 🔢 (⚖️ 🙆 🛃) ⚠ 🐕‍🦺 👈 ✊ `HTTPException`Ⓜ & 📨 🇺🇸🔍 4️⃣0️⃣0️⃣ 📨 🏆 🚫 📤 ✊ 👈 ⚠ 🚫🔜. + +👉 ⚫️❔ ✔ 🕳 ⚒ 🔗 (✅ 💽 🎉), 🖼, ⚙️ 🖥 📋. + +🖥 📋 🏃 *⏮️* 📨 ✔️ 📨. 📤 🙅‍♂ 🌌 🤚 `HTTPException` ↩️ 📤 🚫 🌌 🔀 📨 👈 *⏪ 📨*. + +✋️ 🚥 🖥 📋 ✍ 💽 ❌, 🌘 👆 💪 💾 ⚖️ 😬 🔐 🎉 🔗 ⏮️ `yield`, & 🎲 🕹 ❌ ⚖️ 📄 ⚫️ 🛰 🕵 ⚙️. + +🚥 👆 ✔️ 📟 👈 👆 💭 💪 🤚 ⚠, 🏆 😐/"🙃" 👜 & 🚮 `try` 🍫 👈 📄 📟. + +🚥 👆 ✔️ 🛃 ⚠ 👈 👆 🔜 💖 🍵 *⏭* 🛬 📨 & 🎲 ❎ 📨, 🎲 🙋‍♀ `HTTPException`, ✍ [🛃 ⚠ 🐕‍🦺](../handling-errors.md#_4){.internal-link target=_blank}. + +/// tip + +👆 💪 🤚 ⚠ 🔌 `HTTPException` *⏭* `yield`. ✋️ 🚫 ⏮️. + +/// + +🔁 🛠️ 🌅 ⚖️ 🌘 💖 👉 📊. 🕰 💧 ⚪️➡️ 🔝 🔝. & 🔠 🏓 1️⃣ 🍕 🔗 ⚖️ 🛠️ 📟. + +```mermaid +sequenceDiagram + +participant client as Client +participant handler as Exception handler +participant dep as Dep with yield +participant operation as Path Operation +participant tasks as Background tasks + + Note over client,tasks: Can raise exception for dependency, handled after response is sent + Note over client,operation: Can raise HTTPException and can change the response + client ->> dep: Start request + Note over dep: Run code up to yield + opt raise + dep -->> handler: Raise HTTPException + handler -->> client: HTTP error response + dep -->> dep: Raise other exception + end + dep ->> operation: Run dependency, e.g. DB session + opt raise + operation -->> dep: Raise HTTPException + dep -->> handler: Auto forward exception + handler -->> client: HTTP error response + operation -->> dep: Raise other exception + dep -->> handler: Auto forward exception + end + operation ->> client: Return response to client + Note over client,operation: Response is already sent, can't change it anymore + opt Tasks + operation -->> tasks: Send background tasks + end + opt Raise other exception + tasks -->> dep: Raise other exception + end + Note over dep: After yield + opt Handle other exception + dep -->> dep: Handle exception, can't change response. E.g. close DB session. + end +``` + +/// info + +🕴 **1️⃣ 📨** 🔜 📨 👩‍💻. ⚫️ 💪 1️⃣ ❌ 📨 ⚖️ ⚫️ 🔜 📨 ⚪️➡️ *➡ 🛠️*. + +⏮️ 1️⃣ 📚 📨 📨, 🙅‍♂ 🎏 📨 💪 📨. + +/// + +/// tip + +👉 📊 🎦 `HTTPException`, ✋️ 👆 💪 🤚 🙆 🎏 ⚠ ❔ 👆 ✍ [🛃 ⚠ 🐕‍🦺](../handling-errors.md#_4){.internal-link target=_blank}. + +🚥 👆 🤚 🙆 ⚠, ⚫️ 🔜 🚶‍♀️ 🔗 ⏮️ 🌾, 🔌 `HTTPException`, & ⤴️ **🔄** ⚠ 🐕‍🦺. 🚥 📤 🙅‍♂ ⚠ 🐕‍🦺 👈 ⚠, ⚫️ 🔜 ⤴️ 🍵 🔢 🔗 `ServerErrorMiddleware`, 🛬 5️⃣0️⃣0️⃣ 🇺🇸🔍 👔 📟, ➡️ 👩‍💻 💭 👈 📤 ❌ 💽. + +/// + +## 🔑 👨‍💼 + +### ⚫️❔ "🔑 👨‍💼" + +"🔑 👨‍💼" 🙆 👈 🐍 🎚 👈 👆 💪 ⚙️ `with` 📄. + +🖼, 👆 💪 ⚙️ `with` ✍ 📁: + +```Python +with open("./somefile.txt") as f: + contents = f.read() + print(contents) +``` + +🔘, `open("./somefile.txt")` ✍ 🎚 👈 🤙 "🔑 👨‍💼". + +🕐❔ `with` 🍫 🏁, ⚫️ ⚒ 💭 🔐 📁, 🚥 📤 ⚠. + +🕐❔ 👆 ✍ 🔗 ⏮️ `yield`, **FastAPI** 🔜 🔘 🗜 ⚫️ 🔑 👨‍💼, & 🌀 ⚫️ ⏮️ 🎏 🔗 🧰. + +### ⚙️ 🔑 👨‍💼 🔗 ⏮️ `yield` + +/// warning + +👉, 🌅 ⚖️ 🌘, "🏧" 💭. + +🚥 👆 ▶️ ⏮️ **FastAPI** 👆 💪 💚 🚶 ⚫️ 🔜. + +/// + +🐍, 👆 💪 ✍ 🔑 👨‍💼 🏗 🎓 ⏮️ 2️⃣ 👩‍🔬: `__enter__()` & `__exit__()`. + +👆 💪 ⚙️ 👫 🔘 **FastAPI** 🔗 ⏮️ `yield` ⚙️ +`with` ⚖️ `async with` 📄 🔘 🔗 🔢: + +{* ../../docs_src/dependencies/tutorial010.py hl[1:9,13] *} + +/// tip + +➕1️⃣ 🌌 ✍ 🔑 👨‍💼 ⏮️: + +* `@contextlib.contextmanager` ⚖️ +* `@contextlib.asynccontextmanager` + +⚙️ 👫 🎀 🔢 ⏮️ 👁 `yield`. + +👈 ⚫️❔ **FastAPI** ⚙️ 🔘 🔗 ⏮️ `yield`. + +✋️ 👆 🚫 ✔️ ⚙️ 👨‍🎨 FastAPI 🔗 (& 👆 🚫🔜 🚫). + +FastAPI 🔜 ⚫️ 👆 🔘. + +/// diff --git a/docs/em/docs/tutorial/dependencies/global-dependencies.md b/docs/em/docs/tutorial/dependencies/global-dependencies.md new file mode 100644 index 0000000..5a22e5f --- /dev/null +++ b/docs/em/docs/tutorial/dependencies/global-dependencies.md @@ -0,0 +1,15 @@ +# 🌐 🔗 + +🆎 🈸 👆 💪 💚 🚮 🔗 🎂 🈸. + +🎏 🌌 👆 💪 [🚮 `dependencies` *➡ 🛠️ 👨‍🎨*](dependencies-in-path-operation-decorators.md){.internal-link target=_blank}, 👆 💪 🚮 👫 `FastAPI` 🈸. + +👈 💼, 👫 🔜 ✔ 🌐 *➡ 🛠️* 🈸: + +{* ../../docs_src/dependencies/tutorial012.py hl[15] *} + +& 🌐 💭 📄 🔃 [❎ `dependencies` *➡ 🛠️ 👨‍🎨*](dependencies-in-path-operation-decorators.md){.internal-link target=_blank} ✔, ✋️ 👉 💼, 🌐 *➡ 🛠️* 📱. + +## 🔗 👪 *➡ 🛠️* + +⏪, 🕐❔ 👂 🔃 ❔ 📊 🦏 🈸 ([🦏 🈸 - 💗 📁](../../tutorial/bigger-applications.md){.internal-link target=_blank}), 🎲 ⏮️ 💗 📁, 👆 🔜 💡 ❔ 📣 👁 `dependencies` 🔢 👪 *➡ 🛠️*. diff --git a/docs/em/docs/tutorial/dependencies/index.md b/docs/em/docs/tutorial/dependencies/index.md new file mode 100644 index 0000000..ce87d9e --- /dev/null +++ b/docs/em/docs/tutorial/dependencies/index.md @@ -0,0 +1,212 @@ +# 🔗 + +**FastAPI** ✔️ 📶 🏋️ ✋️ 🏋️ **🔗 💉** ⚙️. + +⚫️ 🏗 📶 🙅 ⚙️, & ⚒ ⚫️ 📶 ⏩ 🙆 👩‍💻 🛠️ 🎏 🦲 ⏮️ **FastAPI**. + +## ⚫️❔ "🔗 💉" + +**"🔗 💉"** ⛓, 📋, 👈 📤 🌌 👆 📟 (👉 💼, 👆 *➡ 🛠️ 🔢*) 📣 👜 👈 ⚫️ 🚚 👷 & ⚙️: "🔗". + +& ⤴️, 👈 ⚙️ (👉 💼 **FastAPI**) 🔜 ✊ 💅 🔨 ⚫️❔ 💪 🚚 👆 📟 ⏮️ 📚 💪 🔗 ("💉" 🔗). + +👉 📶 ⚠ 🕐❔ 👆 💪: + +* ✔️ 💰 ⚛ (🎏 📟 ⚛ 🔄 & 🔄). +* 💰 💽 🔗. +* 🛠️ 💂‍♂, 🤝, 🔑 📄, ♒️. +* & 📚 🎏 👜... + +🌐 👫, ⏪ 📉 📟 🔁. + +## 🥇 🔁 + +➡️ 👀 📶 🙅 🖼. ⚫️ 🔜 🙅 👈 ⚫️ 🚫 📶 ⚠, 🔜. + +✋️ 👉 🌌 👥 💪 🎯 🔛 ❔ **🔗 💉** ⚙️ 👷. + +### ✍ 🔗, ⚖️ "☑" + +➡️ 🥇 🎯 🔛 🔗. + +⚫️ 🔢 👈 💪 ✊ 🌐 🎏 🔢 👈 *➡ 🛠️ 🔢* 💪 ✊: + +{* ../../docs_src/dependencies/tutorial001.py hl[8:11] *} + +👈 ⚫️. + +**2️⃣ ⏸**. + +& ⚫️ ✔️ 🎏 💠 & 📊 👈 🌐 👆 *➡ 🛠️ 🔢* ✔️. + +👆 💪 💭 ⚫️ *➡ 🛠️ 🔢* 🍵 "👨‍🎨" (🍵 `@app.get("/some-path")`). + +& ⚫️ 💪 📨 🕳 👆 💚. + +👉 💼, 👉 🔗 ⌛: + +* 📦 🔢 🔢 `q` 👈 `str`. +* 📦 🔢 🔢 `skip` 👈 `int`, & 🔢 `0`. +* 📦 🔢 🔢 `limit` 👈 `int`, & 🔢 `100`. + +& ⤴️ ⚫️ 📨 `dict` ⚗ 📚 💲. + +### 🗄 `Depends` + +{* ../../docs_src/dependencies/tutorial001.py hl[3] *} + +### 📣 🔗, "⚓️" + +🎏 🌌 👆 ⚙️ `Body`, `Query`, ♒️. ⏮️ 👆 *➡ 🛠️ 🔢* 🔢, ⚙️ `Depends` ⏮️ 🆕 🔢: + +{* ../../docs_src/dependencies/tutorial001.py hl[15,20] *} + +👐 👆 ⚙️ `Depends` 🔢 👆 🔢 🎏 🌌 👆 ⚙️ `Body`, `Query`, ♒️, `Depends` 👷 👄 🎏. + +👆 🕴 🤝 `Depends` 👁 🔢. + +👉 🔢 🔜 🕳 💖 🔢. + +& 👈 🔢 ✊ 🔢 🎏 🌌 👈 *➡ 🛠️ 🔢* . + +/// tip + +👆 🔜 👀 ⚫️❔ 🎏 "👜", ↖️ ⚪️➡️ 🔢, 💪 ⚙️ 🔗 ⏭ 📃. + +/// + +🕐❔ 🆕 📨 🛬, **FastAPI** 🔜 ✊ 💅: + +* 🤙 👆 🔗 ("☑") 🔢 ⏮️ ☑ 🔢. +* 🤚 🏁 ⚪️➡️ 👆 🔢. +* 🛠️ 👈 🏁 🔢 👆 *➡ 🛠️ 🔢*. + +```mermaid +graph TB + +common_parameters(["common_parameters"]) +read_items["/items/"] +read_users["/users/"] + +common_parameters --> read_items +common_parameters --> read_users +``` + +👉 🌌 👆 ✍ 🔗 📟 🕐 & **FastAPI** ✊ 💅 🤙 ⚫️ 👆 *➡ 🛠️*. + +/// check + +👀 👈 👆 🚫 ✔️ ✍ 🎁 🎓 & 🚶‍♀️ ⚫️ 👱 **FastAPI** "®" ⚫️ ⚖️ 🕳 🎏. + +👆 🚶‍♀️ ⚫️ `Depends` & **FastAPI** 💭 ❔ 🎂. + +/// + +## `async` ⚖️ 🚫 `async` + +🔗 🔜 🤙 **FastAPI** (🎏 👆 *➡ 🛠️ 🔢*), 🎏 🚫 ✔ ⏪ 🔬 👆 🔢. + +👆 💪 ⚙️ `async def` ⚖️ 😐 `def`. + +& 👆 💪 📣 🔗 ⏮️ `async def` 🔘 😐 `def` *➡ 🛠️ 🔢*, ⚖️ `def` 🔗 🔘 `async def` *➡ 🛠️ 🔢*, ♒️. + +⚫️ 🚫 🤔. **FastAPI** 🔜 💭 ⚫️❔. + +/// note + +🚥 👆 🚫 💭, ✅ [🔁: *"🏃 ❓" *](../../async.md){.internal-link target=_blank} 📄 🔃 `async` & `await` 🩺. + +/// + +## 🛠️ ⏮️ 🗄 + +🌐 📨 📄, 🔬 & 📄 👆 🔗 (& 🎧-🔗) 🔜 🛠️ 🎏 🗄 🔗. + +, 🎓 🩺 🔜 ✔️ 🌐 ℹ ⚪️➡️ 👫 🔗 💁‍♂️: + + + +## 🙅 ⚙️ + +🚥 👆 👀 ⚫️, *➡ 🛠️ 🔢* 📣 ⚙️ 🕐❔ *➡* & *🛠️* 🏏, & ⤴️ **FastAPI** ✊ 💅 🤙 🔢 ⏮️ ☑ 🔢, ❎ 📊 ⚪️➡️ 📨. + +🤙, 🌐 (⚖️ 🏆) 🕸 🛠️ 👷 👉 🎏 🌌. + +👆 🙅 🤙 👈 🔢 🔗. 👫 🤙 👆 🛠️ (👉 💼, **FastAPI**). + +⏮️ 🔗 💉 ⚙️, 👆 💪 💬 **FastAPI** 👈 👆 *➡ 🛠️ 🔢* "🪀" 🔛 🕳 🙆 👈 🔜 🛠️ ⏭ 👆 *➡ 🛠️ 🔢*, & **FastAPI** 🔜 ✊ 💅 🛠️ ⚫️ & "💉" 🏁. + +🎏 ⚠ ⚖ 👉 🎏 💭 "🔗 💉": + +* ℹ +* 🐕‍🦺 +* 🐕‍🦺 +* 💉 +* 🦲 + +## **FastAPI** 🔌-🔌 + +🛠️ & "🔌-"Ⓜ 💪 🏗 ⚙️ **🔗 💉** ⚙️. ✋️ 👐, 📤 🤙 **🙅‍♂ 💪 ✍ "🔌-🔌"**, ⚙️ 🔗 ⚫️ 💪 📣 ♾ 🔢 🛠️ & 🔗 👈 ▶️️ 💪 👆 *➡ 🛠️ 🔢*. + +& 🔗 💪 ✍ 📶 🙅 & 🏋️ 🌌 👈 ✔ 👆 🗄 🐍 📦 👆 💪, & 🛠️ 👫 ⏮️ 👆 🛠️ 🔢 👩‍❤‍👨 ⏸ 📟, *🌖*. + +👆 🔜 👀 🖼 👉 ⏭ 📃, 🔃 🔗 & ☁ 💽, 💂‍♂, ♒️. + +## **FastAPI** 🔗 + +🦁 🔗 💉 ⚙️ ⚒ **FastAPI** 🔗 ⏮️: + +* 🌐 🔗 💽 +* ☁ 💽 +* 🔢 📦 +* 🔢 🔗 +* 🤝 & ✔ ⚙️ +* 🛠️ ⚙️ ⚖ ⚙️ +* 📨 💽 💉 ⚙️ +* ♒️. + +## 🙅 & 🏋️ + +👐 🔗 🔗 💉 ⚙️ 📶 🙅 🔬 & ⚙️, ⚫️ 📶 🏋️. + +👆 💪 🔬 🔗 👈 🔄 💪 🔬 🔗 👫. + +🔚, 🔗 🌲 🔗 🏗, & **🔗 💉** ⚙️ ✊ 💅 🔬 🌐 👉 🔗 👆 (& 👫 🎧-🔗) & 🚚 (💉) 🏁 🔠 🔁. + +🖼, ➡️ 💬 👆 ✔️ 4️⃣ 🛠️ 🔗 (*➡ 🛠️*): + +* `/items/public/` +* `/items/private/` +* `/users/{user_id}/activate` +* `/items/pro/` + +⤴️ 👆 💪 🚮 🎏 ✔ 📄 🔠 👫 ⏮️ 🔗 & 🎧-🔗: + +```mermaid +graph TB + +current_user(["current_user"]) +active_user(["active_user"]) +admin_user(["admin_user"]) +paying_user(["paying_user"]) + +public["/items/public/"] +private["/items/private/"] +activate_user["/users/{user_id}/activate"] +pro_items["/items/pro/"] + +current_user --> active_user +active_user --> admin_user +active_user --> paying_user + +current_user --> public +active_user --> private +admin_user --> activate_user +paying_user --> pro_items +``` + +## 🛠️ ⏮️ **🗄** + +🌐 👫 🔗, ⏪ 📣 👫 📄, 🚮 🔢, 🔬, ♒️. 👆 *➡ 🛠️*. + +**FastAPI** 🔜 ✊ 💅 🚮 ⚫️ 🌐 🗄 🔗, 👈 ⚫️ 🎦 🎓 🧾 ⚙️. diff --git a/docs/em/docs/tutorial/dependencies/sub-dependencies.md b/docs/em/docs/tutorial/dependencies/sub-dependencies.md new file mode 100644 index 0000000..6d622e9 --- /dev/null +++ b/docs/em/docs/tutorial/dependencies/sub-dependencies.md @@ -0,0 +1,86 @@ +# 🎧-🔗 + +👆 💪 ✍ 🔗 👈 ✔️ **🎧-🔗**. + +👫 💪 **⏬** 👆 💪 👫. + +**FastAPI** 🔜 ✊ 💅 🔬 👫. + +## 🥇 🔗 "☑" + +👆 💪 ✍ 🥇 🔗 ("☑") 💖: + +{* ../../docs_src/dependencies/tutorial005.py hl[8:9] *} + +⚫️ 📣 📦 🔢 🔢 `q` `str`, & ⤴️ ⚫️ 📨 ⚫️. + +👉 🙅 (🚫 📶 ⚠), ✋️ 🔜 ℹ 👥 🎯 🔛 ❔ 🎧-🔗 👷. + +## 🥈 🔗, "☑" & "⚓️" + +⤴️ 👆 💪 ✍ ➕1️⃣ 🔗 🔢 ("☑") 👈 🎏 🕰 📣 🔗 🚮 👍 (⚫️ "⚓️" 💁‍♂️): + +{* ../../docs_src/dependencies/tutorial005.py hl[13] *} + +➡️ 🎯 🔛 🔢 📣: + +* ✋️ 👉 🔢 🔗 ("☑") ⚫️, ⚫️ 📣 ➕1️⃣ 🔗 (⚫️ "🪀" 🔛 🕳 🙆). + * ⚫️ 🪀 🔛 `query_extractor`, & 🛠️ 💲 📨 ⚫️ 🔢 `q`. +* ⚫️ 📣 📦 `last_query` 🍪, `str`. + * 🚥 👩‍💻 🚫 🚚 🙆 🔢 `q`, 👥 ⚙️ 🏁 🔢 ⚙️, ❔ 👥 🖊 🍪 ⏭. + +## ⚙️ 🔗 + +⤴️ 👥 💪 ⚙️ 🔗 ⏮️: + +{* ../../docs_src/dependencies/tutorial005.py hl[22] *} + +/// info + +👀 👈 👥 🕴 📣 1️⃣ 🔗 *➡ 🛠️ 🔢*, `query_or_cookie_extractor`. + +✋️ **FastAPI** 🔜 💭 👈 ⚫️ ✔️ ❎ `query_extractor` 🥇, 🚶‍♀️ 🏁 👈 `query_or_cookie_extractor` ⏪ 🤙 ⚫️. + +/// + +```mermaid +graph TB + +query_extractor(["query_extractor"]) +query_or_cookie_extractor(["query_or_cookie_extractor"]) + +read_query["/items/"] + +query_extractor --> query_or_cookie_extractor --> read_query +``` + +## ⚙️ 🎏 🔗 💗 🕰 + +🚥 1️⃣ 👆 🔗 📣 💗 🕰 🎏 *➡ 🛠️*, 🖼, 💗 🔗 ✔️ ⚠ 🎧-🔗, **FastAPI** 🔜 💭 🤙 👈 🎧-🔗 🕴 🕐 📍 📨. + +& ⚫️ 🔜 🖊 📨 💲 "💾" & 🚶‍♀️ ⚫️ 🌐 "⚓️" 👈 💪 ⚫️ 👈 🎯 📨, ↩️ 🤙 🔗 💗 🕰 🎏 📨. + +🏧 😐 🌐❔ 👆 💭 👆 💪 🔗 🤙 🔠 🔁 (🎲 💗 🕰) 🎏 📨 ↩️ ⚙️ "💾" 💲, 👆 💪 ⚒ 🔢 `use_cache=False` 🕐❔ ⚙️ `Depends`: + +```Python hl_lines="1" +async def needy_dependency(fresh_value: str = Depends(get_value, use_cache=False)): + return {"fresh_value": fresh_value} +``` + +## 🌃 + +↖️ ⚪️➡️ 🌐 🎀 🔤 ⚙️ 📥, **🔗 💉** ⚙️ 🙅. + +🔢 👈 👀 🎏 *➡ 🛠️ 🔢*. + +✋️, ⚫️ 📶 🏋️, & ✔ 👆 📣 🎲 🙇 🐦 🔗 "📊" (🌲). + +/// tip + +🌐 👉 💪 🚫 😑 ⚠ ⏮️ 👫 🙅 🖼. + +✋️ 👆 🔜 👀 ❔ ⚠ ⚫️ 📃 🔃 **💂‍♂**. + + & 👆 🔜 👀 💸 📟 ⚫️ 🔜 🖊 👆. + +/// diff --git a/docs/em/docs/tutorial/encoder.md b/docs/em/docs/tutorial/encoder.md new file mode 100644 index 0000000..ad05f70 --- /dev/null +++ b/docs/em/docs/tutorial/encoder.md @@ -0,0 +1,35 @@ +# 🎻 🔗 🔢 + +📤 💼 🌐❔ 👆 5️⃣📆 💪 🗜 💽 🆎 (💖 Pydantic 🏷) 🕳 🔗 ⏮️ 🎻 (💖 `dict`, `list`, ♒️). + +🖼, 🚥 👆 💪 🏪 ⚫️ 💽. + +👈, **FastAPI** 🚚 `jsonable_encoder()` 🔢. + +## ⚙️ `jsonable_encoder` + +➡️ 🌈 👈 👆 ✔️ 💽 `fake_db` 👈 🕴 📨 🎻 🔗 💽. + +🖼, ⚫️ 🚫 📨 `datetime` 🎚, 👈 🚫 🔗 ⏮️ 🎻. + +, `datetime` 🎚 🔜 ✔️ 🗜 `str` ⚗ 💽 💾 📁. + +🎏 🌌, 👉 💽 🚫🔜 📨 Pydantic 🏷 (🎚 ⏮️ 🔢), 🕴 `dict`. + +👆 💪 ⚙️ `jsonable_encoder` 👈. + +⚫️ 📨 🎚, 💖 Pydantic 🏷, & 📨 🎻 🔗 ⏬: + +{* ../../docs_src/encoder/tutorial001.py hl[5,22] *} + +👉 🖼, ⚫️ 🔜 🗜 Pydantic 🏷 `dict`, & `datetime` `str`. + +🏁 🤙 ⚫️ 🕳 👈 💪 🗜 ⏮️ 🐍 🐩 `json.dumps()`. + +⚫️ 🚫 📨 ⭕ `str` ⚗ 💽 🎻 📁 (🎻). ⚫️ 📨 🐍 🐩 💽 📊 (✅ `dict`) ⏮️ 💲 & 🎧-💲 👈 🌐 🔗 ⏮️ 🎻. + +/// note + +`jsonable_encoder` 🤙 ⚙️ **FastAPI** 🔘 🗜 💽. ✋️ ⚫️ ⚠ 📚 🎏 😐. + +/// diff --git a/docs/em/docs/tutorial/extra-data-types.md b/docs/em/docs/tutorial/extra-data-types.md new file mode 100644 index 0000000..f15a74b --- /dev/null +++ b/docs/em/docs/tutorial/extra-data-types.md @@ -0,0 +1,62 @@ +# ➕ 💽 🆎 + +🆙 🔜, 👆 ✔️ ⚙️ ⚠ 📊 🆎, 💖: + +* `int` +* `float` +* `str` +* `bool` + +✋️ 👆 💪 ⚙️ 🌅 🏗 📊 🆎. + +& 👆 🔜 ✔️ 🎏 ⚒ 👀 🆙 🔜: + +* 👑 👨‍🎨 🐕‍🦺. +* 💽 🛠️ ⚪️➡️ 📨 📨. +* 💽 🛠️ 📨 💽. +* 💽 🔬. +* 🏧 ✍ & 🧾. + +## 🎏 💽 🆎 + +📥 🌖 📊 🆎 👆 💪 ⚙️: + +* `UUID`: + * 🐩 "⭐ 😍 🆔", ⚠ 🆔 📚 💽 & ⚙️. + * 📨 & 📨 🔜 🎨 `str`. +* `datetime.datetime`: + * 🐍 `datetime.datetime`. + * 📨 & 📨 🔜 🎨 `str` 💾 8️⃣6️⃣0️⃣1️⃣ 📁, 💖: `2008-09-15T15:53:00+05:00`. +* `datetime.date`: + * 🐍 `datetime.date`. + * 📨 & 📨 🔜 🎨 `str` 💾 8️⃣6️⃣0️⃣1️⃣ 📁, 💖: `2008-09-15`. +* `datetime.time`: + * 🐍 `datetime.time`. + * 📨 & 📨 🔜 🎨 `str` 💾 8️⃣6️⃣0️⃣1️⃣ 📁, 💖: `14:23:55.003`. +* `datetime.timedelta`: + * 🐍 `datetime.timedelta`. + * 📨 & 📨 🔜 🎨 `float` 🌐 🥈. + * Pydantic ✔ 🎦 ⚫️ "💾 8️⃣6️⃣0️⃣1️⃣ 🕰 ➕ 🔢", 👀 🩺 🌅 ℹ. +* `frozenset`: + * 📨 & 📨, 😥 🎏 `set`: + * 📨, 📇 🔜 ✍, ❎ ❎ & 🏭 ⚫️ `set`. + * 📨, `set` 🔜 🗜 `list`. + * 🏗 🔗 🔜 ✔ 👈 `set` 💲 😍 (⚙️ 🎻 🔗 `uniqueItems`). +* `bytes`: + * 🐩 🐍 `bytes`. + * 📨 & 📨 🔜 😥 `str`. + * 🏗 🔗 🔜 ✔ 👈 ⚫️ `str` ⏮️ `binary` "📁". +* `Decimal`: + * 🐩 🐍 `Decimal`. + * 📨 & 📨, 🍵 🎏 `float`. +* 👆 💪 ✅ 🌐 ☑ Pydantic 📊 🆎 📥: Pydantic 📊 🆎. + +## 🖼 + +📥 🖼 *➡ 🛠️* ⏮️ 🔢 ⚙️ 🔛 🆎. + +{* ../../docs_src/extra_data_types/tutorial001.py hl[1,3,12:16] *} + +🗒 👈 🔢 🔘 🔢 ✔️ 👫 🐠 💽 🆎, & 👆 💪, 🖼, 🎭 😐 📅 🎭, 💖: + +{* ../../docs_src/extra_data_types/tutorial001.py hl[18:19] *} diff --git a/docs/em/docs/tutorial/extra-models.md b/docs/em/docs/tutorial/extra-models.md new file mode 100644 index 0000000..19ab5b7 --- /dev/null +++ b/docs/em/docs/tutorial/extra-models.md @@ -0,0 +1,211 @@ +# ➕ 🏷 + +▶️ ⏮️ ⏮️ 🖼, ⚫️ 🔜 ⚠ ✔️ 🌅 🌘 1️⃣ 🔗 🏷. + +👉 ✴️ 💼 👩‍💻 🏷, ↩️: + +* **🔢 🏷** 💪 💪 ✔️ 🔐. +* **🔢 🏷** 🔜 🚫 ✔️ 🔐. +* **💽 🏷** 🔜 🎲 💪 ✔️ #️⃣ 🔐. + +/// danger + +🙅 🏪 👩‍💻 🔢 🔐. 🕧 🏪 "🔐 #️⃣" 👈 👆 💪 ⤴️ ✔. + +🚥 👆 🚫 💭, 👆 🔜 💡 ⚫️❔ "🔐#️⃣" [💂‍♂ 📃](security/simple-oauth2.md#_4){.internal-link target=_blank}. + +/// + +## 💗 🏷 + +📥 🏢 💭 ❔ 🏷 💪 👀 💖 ⏮️ 👫 🔐 🏑 & 🥉 🌐❔ 👫 ⚙️: + +{* ../../docs_src/extra_models/tutorial001.py hl[9,11,16,22,24,29:30,33:35,40:41] *} + +### 🔃 `**user_in.dict()` + +#### Pydantic `.dict()` + +`user_in` Pydantic 🏷 🎓 `UserIn`. + +Pydantic 🏷 ✔️ `.dict()` 👩‍🔬 👈 📨 `dict` ⏮️ 🏷 💽. + +, 🚥 👥 ✍ Pydantic 🎚 `user_in` 💖: + +```Python +user_in = UserIn(username="john", password="secret", email="john.doe@example.com") +``` + +& ⤴️ 👥 🤙: + +```Python +user_dict = user_in.dict() +``` + +👥 🔜 ✔️ `dict` ⏮️ 💽 🔢 `user_dict` (⚫️ `dict` ↩️ Pydantic 🏷 🎚). + +& 🚥 👥 🤙: + +```Python +print(user_dict) +``` + +👥 🔜 🤚 🐍 `dict` ⏮️: + +```Python +{ + 'username': 'john', + 'password': 'secret', + 'email': 'john.doe@example.com', + 'full_name': None, +} +``` + +#### 🎁 `dict` + +🚥 👥 ✊ `dict` 💖 `user_dict` & 🚶‍♀️ ⚫️ 🔢 (⚖️ 🎓) ⏮️ `**user_dict`, 🐍 🔜 "🎁" ⚫️. ⚫️ 🔜 🚶‍♀️ 🔑 & 💲 `user_dict` 🔗 🔑-💲 ❌. + +, ▶️ ⏮️ `user_dict` ⚪️➡️ 🔛, ✍: + +```Python +UserInDB(**user_dict) +``` + +🔜 🏁 🕳 🌓: + +```Python +UserInDB( + username="john", + password="secret", + email="john.doe@example.com", + full_name=None, +) +``` + +⚖️ 🌅 ⚫️❔, ⚙️ `user_dict` 🔗, ⏮️ ⚫️❔ 🎚 ⚫️ 💪 ✔️ 🔮: + +```Python +UserInDB( + username = user_dict["username"], + password = user_dict["password"], + email = user_dict["email"], + full_name = user_dict["full_name"], +) +``` + +#### Pydantic 🏷 ⚪️➡️ 🎚 ➕1️⃣ + +🖼 🔛 👥 🤚 `user_dict` ⚪️➡️ `user_in.dict()`, 👉 📟: + +```Python +user_dict = user_in.dict() +UserInDB(**user_dict) +``` + +🔜 🌓: + +```Python +UserInDB(**user_in.dict()) +``` + +...↩️ `user_in.dict()` `dict`, & ⤴️ 👥 ⚒ 🐍 "🎁" ⚫️ 🚶‍♀️ ⚫️ `UserInDB` 🔠 ⏮️ `**`. + +, 👥 🤚 Pydantic 🏷 ⚪️➡️ 💽 ➕1️⃣ Pydantic 🏷. + +#### 🎁 `dict` & ➕ 🇨🇻 + +& ⤴️ ❎ ➕ 🇨🇻 ❌ `hashed_password=hashed_password`, 💖: + +```Python +UserInDB(**user_in.dict(), hashed_password=hashed_password) +``` + +...🔚 🆙 💆‍♂ 💖: + +```Python +UserInDB( + username = user_dict["username"], + password = user_dict["password"], + email = user_dict["email"], + full_name = user_dict["full_name"], + hashed_password = hashed_password, +) +``` + +/// warning + +🔗 🌖 🔢 🤖 💪 💧 💽, ✋️ 👫 ↗️ 🚫 🚚 🙆 🎰 💂‍♂. + +/// + +## 📉 ❎ + +📉 📟 ❎ 1️⃣ 🐚 💭 **FastAPI**. + +📟 ❎ 📈 🤞 🐛, 💂‍♂ ❔, 📟 🔁 ❔ (🕐❔ 👆 ℹ 1️⃣ 🥉 ✋️ 🚫 🎏), ♒️. + +& 👉 🏷 🌐 🤝 📚 💽 & ❎ 🔢 📛 & 🆎. + +👥 💪 👻. + +👥 💪 📣 `UserBase` 🏷 👈 🍦 🧢 👆 🎏 🏷. & ⤴️ 👥 💪 ⚒ 🏿 👈 🏷 👈 😖 🚮 🔢 (🆎 📄, 🔬, ♒️). + +🌐 💽 🛠️, 🔬, 🧾, ♒️. 🔜 👷 🛎. + +👈 🌌, 👥 💪 📣 🔺 🖖 🏷 (⏮️ 🔢 `password`, ⏮️ `hashed_password` & 🍵 🔐): + +{* ../../docs_src/extra_models/tutorial002.py hl[9,15:16,19:20,23:24] *} + +## `Union` ⚖️ `anyOf` + +👆 💪 📣 📨 `Union` 2️⃣ 🆎, 👈 ⛓, 👈 📨 🔜 🙆 2️⃣. + +⚫️ 🔜 🔬 🗄 ⏮️ `anyOf`. + +👈, ⚙️ 🐩 🐍 🆎 🔑 `typing.Union`: + +/// note + +🕐❔ ⚖ `Union`, 🔌 🏆 🎯 🆎 🥇, ⏩ 🌘 🎯 🆎. 🖼 🔛, 🌖 🎯 `PlaneItem` 👟 ⏭ `CarItem` `Union[PlaneItem, CarItem]`. + +/// + +{* ../../docs_src/extra_models/tutorial003.py hl[1,14:15,18:20,33] *} + +### `Union` 🐍 3️⃣.1️⃣0️⃣ + +👉 🖼 👥 🚶‍♀️ `Union[PlaneItem, CarItem]` 💲 ❌ `response_model`. + +↩️ 👥 🚶‍♀️ ⚫️ **💲 ❌** ↩️ 🚮 ⚫️ **🆎 ✍**, 👥 ✔️ ⚙️ `Union` 🐍 3️⃣.1️⃣0️⃣. + +🚥 ⚫️ 🆎 ✍ 👥 💪 ✔️ ⚙️ ⏸ ⏸,: + +```Python +some_variable: PlaneItem | CarItem +``` + +✋️ 🚥 👥 🚮 👈 `response_model=PlaneItem | CarItem` 👥 🔜 🤚 ❌, ↩️ 🐍 🔜 🔄 🎭 **❌ 🛠️** 🖖 `PlaneItem` & `CarItem` ↩️ 🔬 👈 🆎 ✍. + +## 📇 🏷 + +🎏 🌌, 👆 💪 📣 📨 📇 🎚. + +👈, ⚙️ 🐩 🐍 `typing.List` (⚖️ `list` 🐍 3️⃣.9️⃣ & 🔛): + +{* ../../docs_src/extra_models/tutorial004.py hl[1,20] *} + +## 📨 ⏮️ ❌ `dict` + +👆 💪 📣 📨 ⚙️ ✅ ❌ `dict`, 📣 🆎 🔑 & 💲, 🍵 ⚙️ Pydantic 🏷. + +👉 ⚠ 🚥 👆 🚫 💭 ☑ 🏑/🔢 📛 (👈 🔜 💪 Pydantic 🏷) ⏪. + +👉 💼, 👆 💪 ⚙️ `typing.Dict` (⚖️ `dict` 🐍 3️⃣.9️⃣ & 🔛): + +{* ../../docs_src/extra_models/tutorial005.py hl[1,8] *} + +## 🌃 + +⚙️ 💗 Pydantic 🏷 & 😖 ➡ 🔠 💼. + +👆 🚫 💪 ✔️ 👁 💽 🏷 📍 👨‍💼 🚥 👈 👨‍💼 🔜 💪 ✔️ 🎏 "🇵🇸". 💼 ⏮️ 👩‍💻 "👨‍💼" ⏮️ 🇵🇸 ✅ `password`, `password_hash` & 🙅‍♂ 🔐. diff --git a/docs/em/docs/tutorial/first-steps.md b/docs/em/docs/tutorial/first-steps.md new file mode 100644 index 0000000..f9bb3fb --- /dev/null +++ b/docs/em/docs/tutorial/first-steps.md @@ -0,0 +1,335 @@ +# 🥇 🔁 + +🙅 FastAPI 📁 💪 👀 💖 👉: + +{* ../../docs_src/first_steps/tutorial001.py *} + +📁 👈 📁 `main.py`. + +🏃 🖖 💽: + +
+ +```console +$ uvicorn main:app --reload + +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +INFO: Started reloader process [28720] +INFO: Started server process [28722] +INFO: Waiting for application startup. +INFO: Application startup complete. +``` + +
+ +/// note + +📋 `uvicorn main:app` 🔗: + +* `main`: 📁 `main.py` (🐍 "🕹"). +* `app`: 🎚 ✍ 🔘 `main.py` ⏮️ ⏸ `app = FastAPI()`. +* `--reload`: ⚒ 💽 ⏏ ⏮️ 📟 🔀. 🕴 ⚙️ 🛠️. + +/// + +🔢, 📤 ⏸ ⏮️ 🕳 💖: + +```hl_lines="4" +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +``` + +👈 ⏸ 🎦 📛 🌐❔ 👆 📱 ➖ 🍦, 👆 🇧🇿 🎰. + +### ✅ ⚫️ + +📂 👆 🖥 http://127.0.0.1:8000. + +👆 🔜 👀 🎻 📨: + +```JSON +{"message": "Hello World"} +``` + +### 🎓 🛠️ 🩺 + +🔜 🚶 http://127.0.0.1:8000/docs. + +👆 🔜 👀 🏧 🎓 🛠️ 🧾 (🚚 🦁 🎚): + +![Swagger UI](https://fastapi.tiangolo.com/img/index/index-01-swagger-ui-simple.png) + +### 🎛 🛠️ 🩺 + +& 🔜, 🚶 http://127.0.0.1:8000/redoc. + +👆 🔜 👀 🎛 🏧 🧾 (🚚 📄): + +![ReDoc](https://fastapi.tiangolo.com/img/index/index-02-redoc-simple.png) + +### 🗄 + +**FastAPI** 🏗 "🔗" ⏮️ 🌐 👆 🛠️ ⚙️ **🗄** 🐩 ⚖ 🔗. + +#### "🔗" + +"🔗" 🔑 ⚖️ 📛 🕳. 🚫 📟 👈 🛠️ ⚫️, ✋️ 📝 📛. + +#### 🛠️ "🔗" + +👉 💼, 🗄 🔧 👈 🤔 ❔ 🔬 🔗 👆 🛠️. + +👉 🔗 🔑 🔌 👆 🛠️ ➡, 💪 🔢 👫 ✊, ♒️. + +#### 💽 "🔗" + +⚖ "🔗" 💪 🔗 💠 💽, 💖 🎻 🎚. + +👈 💼, ⚫️ 🔜 ⛓ 🎻 🔢, & 📊 🆎 👫 ✔️, ♒️. + +#### 🗄 & 🎻 🔗 + +🗄 🔬 🛠️ 🔗 👆 🛠️. & 👈 🔗 🔌 🔑 (⚖️ "🔗") 📊 📨 & 📨 👆 🛠️ ⚙️ **🎻 🔗**, 🐩 🎻 📊 🔗. + +#### ✅ `openapi.json` + +🚥 👆 😟 🔃 ❔ 🍣 🗄 🔗 👀 💖, FastAPI 🔁 🏗 🎻 (🔗) ⏮️ 📛 🌐 👆 🛠️. + +👆 💪 👀 ⚫️ 🔗: http://127.0.0.1:8000/openapi.json. + +⚫️ 🔜 🎦 🎻 ▶️ ⏮️ 🕳 💖: + +```JSON +{ + "openapi": "3.0.2", + "info": { + "title": "FastAPI", + "version": "0.1.0" + }, + "paths": { + "/items/": { + "get": { + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + + + +... +``` + +#### ⚫️❔ 🗄 + +🗄 🔗 ⚫️❔ 🏋️ 2️⃣ 🎓 🧾 ⚙️ 🔌. + +& 📤 💯 🎛, 🌐 ⚓️ 🔛 🗄. 👆 💪 💪 🚮 🙆 📚 🎛 👆 🈸 🏗 ⏮️ **FastAPI**. + +👆 💪 ⚙️ ⚫️ 🏗 📟 🔁, 👩‍💻 👈 🔗 ⏮️ 👆 🛠️. 🖼, 🕸, 📱 ⚖️ ☁ 🈸. + +## 🌃, 🔁 🔁 + +### 🔁 1️⃣: 🗄 `FastAPI` + +{* ../../docs_src/first_steps/tutorial001.py hl[1] *} + +`FastAPI` 🐍 🎓 👈 🚚 🌐 🛠️ 👆 🛠️. + +/// note | 📡 ℹ + +`FastAPI` 🎓 👈 😖 🔗 ⚪️➡️ `Starlette`. + +👆 💪 ⚙️ 🌐 💃 🛠️ ⏮️ `FastAPI` 💁‍♂️. + +/// + +### 🔁 2️⃣: ✍ `FastAPI` "👐" + +{* ../../docs_src/first_steps/tutorial001.py hl[3] *} + +📥 `app` 🔢 🔜 "👐" 🎓 `FastAPI`. + +👉 🔜 👑 ☝ 🔗 ✍ 🌐 👆 🛠️. + +👉 `app` 🎏 1️⃣ 🔗 `uvicorn` 📋: + +
+ +```console +$ uvicorn main:app --reload + +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +``` + +
+ +🚥 👆 ✍ 👆 📱 💖: + +{* ../../docs_src/first_steps/tutorial002.py hl[3] *} + +& 🚮 ⚫️ 📁 `main.py`, ⤴️ 👆 🔜 🤙 `uvicorn` 💖: + +
+ +```console +$ uvicorn main:my_awesome_api --reload + +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +``` + +
+ +### 🔁 3️⃣: ✍ *➡ 🛠️* + +#### ➡ + +"➡" 📥 🔗 🏁 🍕 📛 ▶️ ⚪️➡️ 🥇 `/`. + +, 📛 💖: + +``` +https://example.com/items/foo +``` + +...➡ 🔜: + +``` +/items/foo +``` + +/// info + +"➡" 🛎 🤙 "🔗" ⚖️ "🛣". + +/// + +⏪ 🏗 🛠️, "➡" 👑 🌌 🎏 "⚠" & "ℹ". + +#### 🛠️ + +"🛠️" 📥 🔗 1️⃣ 🇺🇸🔍 "👩‍🔬". + +1️⃣: + +* `POST` +* `GET` +* `PUT` +* `DELETE` + +...& 🌅 😍 🕐: + +* `OPTIONS` +* `HEAD` +* `PATCH` +* `TRACE` + +🇺🇸🔍 🛠️, 👆 💪 🔗 🔠 ➡ ⚙️ 1️⃣ (⚖️ 🌅) 👫 "👩‍🔬". + +--- + +🕐❔ 🏗 🔗, 👆 🛎 ⚙️ 👫 🎯 🇺🇸🔍 👩‍🔬 🎭 🎯 🎯. + +🛎 👆 ⚙️: + +* `POST`: ✍ 💽. +* `GET`: ✍ 💽. +* `PUT`: ℹ 💽. +* `DELETE`: ❎ 💽. + +, 🗄, 🔠 🇺🇸🔍 👩‍🔬 🤙 "🛠️". + +👥 🔜 🤙 👫 "**🛠️**" 💁‍♂️. + +#### 🔬 *➡ 🛠️ 👨‍🎨* + +{* ../../docs_src/first_steps/tutorial001.py hl[6] *} + +`@app.get("/")` 💬 **FastAPI** 👈 🔢 ▶️️ 🔛 🈚 🚚 📨 👈 🚶: + +* ➡ `/` +* ⚙️ get 🛠️ + +/// info | `@decorator` ℹ + +👈 `@something` ❕ 🐍 🤙 "👨‍🎨". + +👆 🚮 ⚫️ 🔛 🔝 🔢. 💖 📶 📔 👒 (👤 💭 👈 🌐❔ ⚖ 👟 ⚪️➡️). + + "👨‍🎨" ✊ 🔢 🔛 & 🔨 🕳 ⏮️ ⚫️. + +👆 💼, 👉 👨‍🎨 💬 **FastAPI** 👈 🔢 🔛 🔗 **➡** `/` ⏮️ **🛠️** `get`. + +⚫️ "**➡ 🛠️ 👨‍🎨**". + +/// + +👆 💪 ⚙️ 🎏 🛠️: + +* `@app.post()` +* `@app.put()` +* `@app.delete()` + +& 🌅 😍 🕐: + +* `@app.options()` +* `@app.head()` +* `@app.patch()` +* `@app.trace()` + +/// tip + +👆 🆓 ⚙️ 🔠 🛠️ (🇺🇸🔍 👩‍🔬) 👆 🎋. + +**FastAPI** 🚫 🛠️ 🙆 🎯 🔑. + +ℹ 📥 🎁 📄, 🚫 📄. + +🖼, 🕐❔ ⚙️ 🕹 👆 🛎 🎭 🌐 🎯 ⚙️ 🕴 `POST` 🛠️. + +/// + +### 🔁 4️⃣: 🔬 **➡ 🛠️ 🔢** + +👉 👆 "**➡ 🛠️ 🔢**": + +* **➡**: `/`. +* **🛠️**: `get`. +* **🔢**: 🔢 🔛 "👨‍🎨" (🔛 `@app.get("/")`). + +{* ../../docs_src/first_steps/tutorial001.py hl[7] *} + +👉 🐍 🔢. + +⚫️ 🔜 🤙 **FastAPI** 🕐❔ ⚫️ 📨 📨 📛 "`/`" ⚙️ `GET` 🛠️. + +👉 💼, ⚫️ `async` 🔢. + +--- + +👆 💪 🔬 ⚫️ 😐 🔢 ↩️ `async def`: + +{* ../../docs_src/first_steps/tutorial003.py hl[7] *} + +/// note + +🚥 👆 🚫 💭 🔺, ✅ [🔁: *"🏃 ❓"*](../async.md#_2){.internal-link target=_blank}. + +/// + +### 🔁 5️⃣: 📨 🎚 + +{* ../../docs_src/first_steps/tutorial001.py hl[8] *} + +👆 💪 📨 `dict`, `list`, ⭐ 💲 `str`, `int`, ♒️. + +👆 💪 📨 Pydantic 🏷 (👆 🔜 👀 🌅 🔃 👈 ⏪). + +📤 📚 🎏 🎚 & 🏷 👈 🔜 🔁 🗜 🎻 (🔌 🐜, ♒️). 🔄 ⚙️ 👆 💕 🕐, ⚫️ 🏆 🎲 👈 👫 ⏪ 🐕‍🦺. + +## 🌃 + +* 🗄 `FastAPI`. +* ✍ `app` 👐. +* ✍ **➡ 🛠️ 👨‍🎨** (💖 `@app.get("/")`). +* ✍ **➡ 🛠️ 🔢** (💖 `def root(): ...` 🔛). +* 🏃 🛠️ 💽 (💖 `uvicorn main:app --reload`). diff --git a/docs/em/docs/tutorial/handling-errors.md b/docs/em/docs/tutorial/handling-errors.md new file mode 100644 index 0000000..6d72775 --- /dev/null +++ b/docs/em/docs/tutorial/handling-errors.md @@ -0,0 +1,257 @@ +# 🚚 ❌ + +📤 📚 ⚠ 🌐❔ 👆 💪 🚨 ❌ 👩‍💻 👈 ⚙️ 👆 🛠️. + +👉 👩‍💻 💪 🖥 ⏮️ 🕸, 📟 ⚪️➡️ 👱 🙆, ☁ 📳, ♒️. + +👆 💪 💪 💬 👩‍💻 👈: + +* 👩‍💻 🚫 ✔️ 🥃 😌 👈 🛠️. +* 👩‍💻 🚫 ✔️ 🔐 👈 ℹ. +* 🏬 👩‍💻 🔄 🔐 🚫 🔀. +* ♒️. + +👫 💼, 👆 🔜 🛎 📨 **🇺🇸🔍 👔 📟** ↔ **4️⃣0️⃣0️⃣** (⚪️➡️ 4️⃣0️⃣0️⃣ 4️⃣9️⃣9️⃣). + +👉 🎏 2️⃣0️⃣0️⃣ 🇺🇸🔍 👔 📟 (⚪️➡️ 2️⃣0️⃣0️⃣ 2️⃣9️⃣9️⃣). 👈 "2️⃣0️⃣0️⃣" 👔 📟 ⛓ 👈 😫 📤 "🏆" 📨. + +👔 📟 4️⃣0️⃣0️⃣ ↔ ⛓ 👈 📤 ❌ ⚪️➡️ 👩‍💻. + +💭 🌐 👈 **"4️⃣0️⃣4️⃣ 🚫 🔎"** ❌ (& 🤣) ❓ + +## ⚙️ `HTTPException` + +📨 🇺🇸🔍 📨 ⏮️ ❌ 👩‍💻 👆 ⚙️ `HTTPException`. + +### 🗄 `HTTPException` + +{* ../../docs_src/handling_errors/tutorial001.py hl[1] *} + +### 🤚 `HTTPException` 👆 📟 + +`HTTPException` 😐 🐍 ⚠ ⏮️ 🌖 📊 🔗 🔗. + +↩️ ⚫️ 🐍 ⚠, 👆 🚫 `return` ⚫️, 👆 `raise` ⚫️. + +👉 ⛓ 👈 🚥 👆 🔘 🚙 🔢 👈 👆 🤙 🔘 👆 *➡ 🛠️ 🔢*, & 👆 🤚 `HTTPException` ⚪️➡️ 🔘 👈 🚙 🔢, ⚫️ 🏆 🚫 🏃 🎂 📟 *➡ 🛠️ 🔢*, ⚫️ 🔜 ❎ 👈 📨 ▶️️ ↖️ & 📨 🇺🇸🔍 ❌ ⚪️➡️ `HTTPException` 👩‍💻. + +💰 🙋‍♀ ⚠ 🤭 `return`😅 💲 🔜 🌖 ⭐ 📄 🔃 🔗 & 💂‍♂. + +👉 🖼, 🕐❔ 👩‍💻 📨 🏬 🆔 👈 🚫 🔀, 🤚 ⚠ ⏮️ 👔 📟 `404`: + +{* ../../docs_src/handling_errors/tutorial001.py hl[11] *} + +### 📉 📨 + +🚥 👩‍💻 📨 `http://example.com/items/foo` ( `item_id` `"foo"`), 👈 👩‍💻 🔜 📨 🇺🇸🔍 👔 📟 2️⃣0️⃣0️⃣, & 🎻 📨: + +```JSON +{ + "item": "The Foo Wrestlers" +} +``` + +✋️ 🚥 👩‍💻 📨 `http://example.com/items/bar` (🚫-🚫 `item_id` `"bar"`), 👈 👩‍💻 🔜 📨 🇺🇸🔍 👔 📟 4️⃣0️⃣4️⃣ ("🚫 🔎" ❌), & 🎻 📨: + +```JSON +{ + "detail": "Item not found" +} +``` + +/// tip + +🕐❔ 🙋‍♀ `HTTPException`, 👆 💪 🚶‍♀️ 🙆 💲 👈 💪 🗜 🎻 🔢 `detail`, 🚫 🕴 `str`. + +👆 💪 🚶‍♀️ `dict`, `list`, ♒️. + +👫 🍵 🔁 **FastAPI** & 🗜 🎻. + +/// + +## 🚮 🛃 🎚 + +📤 ⚠ 🌐❔ ⚫️ ⚠ 💪 🚮 🛃 🎚 🇺🇸🔍 ❌. 🖼, 🆎 💂‍♂. + +👆 🎲 🏆 🚫 💪 ⚙️ ⚫️ 🔗 👆 📟. + +✋️ 💼 👆 💪 ⚫️ 🏧 😐, 👆 💪 🚮 🛃 🎚: + +{* ../../docs_src/handling_errors/tutorial002.py hl[14] *} + +## ❎ 🛃 ⚠ 🐕‍🦺 + +👆 💪 🚮 🛃 ⚠ 🐕‍🦺 ⏮️ 🎏 ⚠ 🚙 ⚪️➡️ 💃. + +➡️ 💬 👆 ✔️ 🛃 ⚠ `UnicornException` 👈 👆 (⚖️ 🗃 👆 ⚙️) 💪 `raise`. + +& 👆 💚 🍵 👉 ⚠ 🌐 ⏮️ FastAPI. + +👆 💪 🚮 🛃 ⚠ 🐕‍🦺 ⏮️ `@app.exception_handler()`: + +{* ../../docs_src/handling_errors/tutorial003.py hl[5:7,13:18,24] *} + +📥, 🚥 👆 📨 `/unicorns/yolo`, *➡ 🛠️* 🔜 `raise` `UnicornException`. + +✋️ ⚫️ 🔜 🍵 `unicorn_exception_handler`. + +, 👆 🔜 📨 🧹 ❌, ⏮️ 🇺🇸🔍 👔 📟 `418` & 🎻 🎚: + +```JSON +{"message": "Oops! yolo did something. There goes a rainbow..."} +``` + +/// note | 📡 ℹ + +👆 💪 ⚙️ `from starlette.requests import Request` & `from starlette.responses import JSONResponse`. + +**FastAPI** 🚚 🎏 `starlette.responses` `fastapi.responses` 🏪 👆, 👩‍💻. ✋️ 🌅 💪 📨 👟 🔗 ⚪️➡️ 💃. 🎏 ⏮️ `Request`. + +/// + +## 🔐 🔢 ⚠ 🐕‍🦺 + +**FastAPI** ✔️ 🔢 ⚠ 🐕‍🦺. + +👫 🐕‍🦺 🈚 🛬 🔢 🎻 📨 🕐❔ 👆 `raise` `HTTPException` & 🕐❔ 📨 ✔️ ❌ 💽. + +👆 💪 🔐 👫 ⚠ 🐕‍🦺 ⏮️ 👆 👍. + +### 🔐 📨 🔬 ⚠ + +🕐❔ 📨 🔌 ❌ 📊, **FastAPI** 🔘 🤚 `RequestValidationError`. + +& ⚫️ 🔌 🔢 ⚠ 🐕‍🦺 ⚫️. + +🔐 ⚫️, 🗄 `RequestValidationError` & ⚙️ ⚫️ ⏮️ `@app.exception_handler(RequestValidationError)` 🎀 ⚠ 🐕‍🦺. + +⚠ 🐕‍🦺 🔜 📨 `Request` & ⚠. + +{* ../../docs_src/handling_errors/tutorial004.py hl[2,14:16] *} + +🔜, 🚥 👆 🚶 `/items/foo`, ↩️ 💆‍♂ 🔢 🎻 ❌ ⏮️: + +```JSON +{ + "detail": [ + { + "loc": [ + "path", + "item_id" + ], + "msg": "value is not a valid integer", + "type": "type_error.integer" + } + ] +} +``` + +👆 🔜 🤚 ✍ ⏬, ⏮️: + +``` +1 validation error +path -> item_id + value is not a valid integer (type=type_error.integer) +``` + +#### `RequestValidationError` 🆚 `ValidationError` + +/// warning + +👫 📡 ℹ 👈 👆 💪 🚶 🚥 ⚫️ 🚫 ⚠ 👆 🔜. + +/// + +`RequestValidationError` 🎧-🎓 Pydantic `ValidationError`. + +**FastAPI** ⚙️ ⚫️ 👈, 🚥 👆 ⚙️ Pydantic 🏷 `response_model`, & 👆 💽 ✔️ ❌, 👆 🔜 👀 ❌ 👆 🕹. + +✋️ 👩‍💻/👩‍💻 🔜 🚫 👀 ⚫️. ↩️, 👩‍💻 🔜 📨 "🔗 💽 ❌" ⏮️ 🇺🇸🔍 👔 📟 `500`. + +⚫️ 🔜 👉 🌌 ↩️ 🚥 👆 ✔️ Pydantic `ValidationError` 👆 *📨* ⚖️ 🙆 👆 📟 (🚫 👩‍💻 *📨*), ⚫️ 🤙 🐛 👆 📟. + +& ⏪ 👆 🔧 ⚫️, 👆 👩‍💻/👩‍💻 🚫🔜 🚫 ✔️ 🔐 🔗 ℹ 🔃 ❌, 👈 💪 🎦 💂‍♂ ⚠. + +### 🔐 `HTTPException` ❌ 🐕‍🦺 + +🎏 🌌, 👆 💪 🔐 `HTTPException` 🐕‍🦺. + +🖼, 👆 💪 💚 📨 ✅ ✍ 📨 ↩️ 🎻 👫 ❌: + +{* ../../docs_src/handling_errors/tutorial004.py hl[3:4,9:11,22] *} + +/// note | 📡 ℹ + +👆 💪 ⚙️ `from starlette.responses import PlainTextResponse`. + +**FastAPI** 🚚 🎏 `starlette.responses` `fastapi.responses` 🏪 👆, 👩‍💻. ✋️ 🌅 💪 📨 👟 🔗 ⚪️➡️ 💃. + +/// + +### ⚙️ `RequestValidationError` 💪 + +`RequestValidationError` 🔌 `body` ⚫️ 📨 ⏮️ ❌ 💽. + +👆 💪 ⚙️ ⚫️ ⏪ 🛠️ 👆 📱 🕹 💪 & ℹ ⚫️, 📨 ⚫️ 👩‍💻, ♒️. + +{* ../../docs_src/handling_errors/tutorial005.py hl[14] *} + +🔜 🔄 📨 ❌ 🏬 💖: + +```JSON +{ + "title": "towel", + "size": "XL" +} +``` + +👆 🔜 📨 📨 💬 👆 👈 💽 ❌ ⚗ 📨 💪: + +```JSON hl_lines="12-15" +{ + "detail": [ + { + "loc": [ + "body", + "size" + ], + "msg": "value is not a valid integer", + "type": "type_error.integer" + } + ], + "body": { + "title": "towel", + "size": "XL" + } +} +``` + +#### FastAPI `HTTPException` 🆚 💃 `HTTPException` + +**FastAPI** ✔️ 🚮 👍 `HTTPException`. + +& **FastAPI**'Ⓜ `HTTPException` ❌ 🎓 😖 ⚪️➡️ 💃 `HTTPException` ❌ 🎓. + +🕴 🔺, 👈 **FastAPI**'Ⓜ `HTTPException` ✔ 👆 🚮 🎚 🔌 📨. + +👉 💪/⚙️ 🔘 ✳ 2️⃣.0️⃣ & 💂‍♂ 🚙. + +, 👆 💪 🚧 🙋‍♀ **FastAPI**'Ⓜ `HTTPException` 🛎 👆 📟. + +✋️ 🕐❔ 👆 ® ⚠ 🐕‍🦺, 👆 🔜 ® ⚫️ 💃 `HTTPException`. + +👉 🌌, 🚥 🙆 🍕 💃 🔗 📟, ⚖️ 💃 ↔ ⚖️ 🔌 -, 🤚 💃 `HTTPException`, 👆 🐕‍🦺 🔜 💪 ✊ & 🍵 ⚫️. + +👉 🖼, 💪 ✔️ 👯‍♂️ `HTTPException`Ⓜ 🎏 📟, 💃 ⚠ 📁 `StarletteHTTPException`: + +```Python +from starlette.exceptions import HTTPException as StarletteHTTPException +``` + +### 🏤-⚙️ **FastAPI**'Ⓜ ⚠ 🐕‍🦺 + +🚥 👆 💚 ⚙️ ⚠ ⤴️ ⏮️ 🎏 🔢 ⚠ 🐕‍🦺 ⚪️➡️ **FastAPI**, 👆 💪 🗄 & 🏤-⚙️ 🔢 ⚠ 🐕‍🦺 ⚪️➡️ `fastapi.exception_handlers`: + +{* ../../docs_src/handling_errors/tutorial006.py hl[2:5,15,21] *} + +👉 🖼 👆 `print`😅 ❌ ⏮️ 📶 🎨 📧, ✋️ 👆 🤚 💭. 👆 💪 ⚙️ ⚠ & ⤴️ 🏤-⚙️ 🔢 ⚠ 🐕‍🦺. diff --git a/docs/em/docs/tutorial/header-params.md b/docs/em/docs/tutorial/header-params.md new file mode 100644 index 0000000..fa5e3a2 --- /dev/null +++ b/docs/em/docs/tutorial/header-params.md @@ -0,0 +1,91 @@ +# 🎚 🔢 + +👆 💪 🔬 🎚 🔢 🎏 🌌 👆 🔬 `Query`, `Path` & `Cookie` 🔢. + +## 🗄 `Header` + +🥇 🗄 `Header`: + +{* ../../docs_src/header_params/tutorial001.py hl[3] *} + +## 📣 `Header` 🔢 + +⤴️ 📣 🎚 🔢 ⚙️ 🎏 📊 ⏮️ `Path`, `Query` & `Cookie`. + +🥇 💲 🔢 💲, 👆 💪 🚶‍♀️ 🌐 ➕ 🔬 ⚖️ ✍ 🔢: + +{* ../../docs_src/header_params/tutorial001.py hl[9] *} + +/// note | 📡 ℹ + +`Header` "👭" 🎓 `Path`, `Query` & `Cookie`. ⚫️ 😖 ⚪️➡️ 🎏 ⚠ `Param` 🎓. + +✋️ 💭 👈 🕐❔ 👆 🗄 `Query`, `Path`, `Header`, & 🎏 ⚪️➡️ `fastapi`, 👈 🤙 🔢 👈 📨 🎁 🎓. + +/// + +/// info + +📣 🎚, 👆 💪 ⚙️ `Header`, ↩️ ⏪ 🔢 🔜 🔬 🔢 🔢. + +/// + +## 🏧 🛠️ + +`Header` ✔️ 🐥 ➕ 🛠️ 🔛 🔝 ⚫️❔ `Path`, `Query` & `Cookie` 🚚. + +🌅 🐩 🎚 🎏 "🔠" 🦹, 💭 "➖ 🔣" (`-`). + +✋️ 🔢 💖 `user-agent` ❌ 🐍. + +, 🔢, `Header` 🔜 🗜 🔢 📛 🦹 ⚪️➡️ 🎦 (`_`) 🔠 (`-`) ⚗ & 📄 🎚. + +, 🇺🇸🔍 🎚 💼-😛,, 👆 💪 📣 👫 ⏮️ 🐩 🐍 👗 (💭 "🔡"). + +, 👆 💪 ⚙️ `user_agent` 👆 🛎 🔜 🐍 📟, ↩️ 💆‍♂ 🎯 🥇 🔤 `User_Agent` ⚖️ 🕳 🎏. + +🚥 🤔 👆 💪 ❎ 🏧 🛠️ 🎦 🔠, ⚒ 🔢 `convert_underscores` `Header` `False`: + +{* ../../docs_src/header_params/tutorial002.py hl[10] *} + +/// warning + +⏭ ⚒ `convert_underscores` `False`, 🐻 🤯 👈 🇺🇸🔍 🗳 & 💽 / ⚙️ 🎚 ⏮️ 🎦. + +/// + +## ❎ 🎚 + +⚫️ 💪 📨 ❎ 🎚. 👈 ⛓, 🎏 🎚 ⏮️ 💗 💲. + +👆 💪 🔬 👈 💼 ⚙️ 📇 🆎 📄. + +👆 🔜 📨 🌐 💲 ⚪️➡️ ❎ 🎚 🐍 `list`. + +🖼, 📣 🎚 `X-Token` 👈 💪 😑 🌅 🌘 🕐, 👆 💪 ✍: + +{* ../../docs_src/header_params/tutorial003.py hl[9] *} + +🚥 👆 🔗 ⏮️ 👈 *➡ 🛠️* 📨 2️⃣ 🇺🇸🔍 🎚 💖: + +``` +X-Token: foo +X-Token: bar +``` + +📨 🔜 💖: + +```JSON +{ + "X-Token values": [ + "bar", + "foo" + ] +} +``` + +## 🌃 + +📣 🎚 ⏮️ `Header`, ⚙️ 🎏 ⚠ ⚓ `Query`, `Path` & `Cookie`. + +& 🚫 😟 🔃 🎦 👆 🔢, **FastAPI** 🔜 ✊ 💅 🏭 👫. diff --git a/docs/em/docs/tutorial/index.md b/docs/em/docs/tutorial/index.md new file mode 100644 index 0000000..5f75323 --- /dev/null +++ b/docs/em/docs/tutorial/index.md @@ -0,0 +1,83 @@ +# 🔰 - 👩‍💻 🦮 + +👉 🔰 🎦 👆 ❔ ⚙️ **FastAPI** ⏮️ 🌅 🚮 ⚒, 🔁 🔁. + +🔠 📄 📉 🏗 🔛 ⏮️ 🕐, ✋️ ⚫️ 🏗 🎏 ❔, 👈 👆 💪 🚶 🔗 🙆 🎯 1️⃣ ❎ 👆 🎯 🛠️ 💪. + +⚫️ 🏗 👷 🔮 🔗. + +👆 💪 👟 🔙 & 👀 ⚫️❔ ⚫️❔ 👆 💪. + +## 🏃 📟 + +🌐 📟 🍫 💪 📁 & ⚙️ 🔗 (👫 🤙 💯 🐍 📁). + +🏃 🙆 🖼, 📁 📟 📁 `main.py`, & ▶️ `uvicorn` ⏮️: + +
+ +```console +$ uvicorn main:app --reload + +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +INFO: Started reloader process [28720] +INFO: Started server process [28722] +INFO: Waiting for application startup. +INFO: Application startup complete. +``` + +
+ +⚫️ **🏆 💡** 👈 👆 ✍ ⚖️ 📁 📟, ✍ ⚫️ & 🏃 ⚫️ 🌐. + +⚙️ ⚫️ 👆 👨‍🎨 ⚫️❔ 🤙 🎦 👆 💰 FastAPI, 👀 ❔ 🐥 📟 👆 ✔️ ✍, 🌐 🆎 ✅, ✍, ♒️. + +--- + +## ❎ FastAPI + +🥇 🔁 ❎ FastAPI. + +🔰, 👆 💪 💚 ❎ ⚫️ ⏮️ 🌐 📦 🔗 & ⚒: + +
+ +```console +$ pip install "fastapi[all]" + +---> 100% +``` + +
+ +...👈 🔌 `uvicorn`, 👈 👆 💪 ⚙️ 💽 👈 🏃 👆 📟. + +/// note + +👆 💪 ❎ ⚫️ 🍕 🍕. + +👉 ⚫️❔ 👆 🔜 🎲 🕐 👆 💚 🛠️ 👆 🈸 🏭: + +``` +pip install "fastapi[standard]" +``` + +❎ `uvicorn` 👷 💽: + +``` +pip install "uvicorn[standard]" +``` + + & 🎏 🔠 📦 🔗 👈 👆 💚 ⚙️. + +/// + +## 🏧 👩‍💻 🦮 + +📤 **🏧 👩‍💻 🦮** 👈 👆 💪 ✍ ⏪ ⏮️ 👉 **🔰 - 👩‍💻 🦮**. + +**🏧 👩‍💻 🦮**, 🏗 🔛 👉, ⚙️ 🎏 🔧, & 💡 👆 ➕ ⚒. + +✋️ 👆 🔜 🥇 ✍ **🔰 - 👩‍💻 🦮** (⚫️❔ 👆 👂 ▶️️ 🔜). + +⚫️ 🔧 👈 👆 💪 🏗 🏁 🈸 ⏮️ **🔰 - 👩‍💻 🦮**, & ⤴️ ↔ ⚫️ 🎏 🌌, ⚓️ 🔛 👆 💪, ⚙️ 🌖 💭 ⚪️➡️ **🏧 👩‍💻 🦮**. diff --git a/docs/em/docs/tutorial/metadata.md b/docs/em/docs/tutorial/metadata.md new file mode 100644 index 0000000..eaf605d --- /dev/null +++ b/docs/em/docs/tutorial/metadata.md @@ -0,0 +1,111 @@ +# 🗃 & 🩺 📛 + +👆 💪 🛃 📚 🗃 📳 👆 **FastAPI** 🈸. + +## 🗃 🛠️ + +👆 💪 ⚒ 📄 🏑 👈 ⚙️ 🗄 🔧 & 🏧 🛠️ 🩺 ⚜: + +| 🔢 | 🆎 | 📛 | +|------------|------|-------------| +| `title` | `str` | 📛 🛠️. | +| `description` | `str` | 📏 📛 🛠️. ⚫️ 💪 ⚙️ ✍. | +| `version` | `string` | ⏬ 🛠️. 👉 ⏬ 👆 👍 🈸, 🚫 🗄. 🖼 `2.5.0`. | +| `terms_of_service` | `str` | 📛 ⚖ 🐕‍🦺 🛠️. 🚥 🚚, 👉 ✔️ 📛. | +| `contact` | `dict` | 📧 ℹ 🎦 🛠️. ⚫️ 💪 🔌 📚 🏑.
contact 🏑
🔢🆎📛
namestr⚖ 📛 📧 👨‍💼/🏢.
urlstr📛 ☝ 📧 ℹ. 🔜 📁 📛.
emailstr📧 📢 📧 👨‍💼/🏢. 🔜 📁 📧 📢.
| +| `license_info` | `dict` | 🛂 ℹ 🎦 🛠️. ⚫️ 💪 🔌 📚 🏑.
license_info 🏑
🔢🆎📛
namestr🚚 (🚥 license_info ⚒). 🛂 📛 ⚙️ 🛠️.
urlstr📛 🛂 ⚙️ 🛠️. 🔜 📁 📛.
| + +👆 💪 ⚒ 👫 ⏩: + +{* ../../docs_src/metadata/tutorial001.py hl[3:16,19:31] *} + +/// tip + +👆 💪 ✍ ✍ `description` 🏑 & ⚫️ 🔜 ✍ 🔢. + +/// + +⏮️ 👉 📳, 🏧 🛠️ 🩺 🔜 👀 💖: + + + +## 🗃 🔖 + +👆 💪 🚮 🌖 🗃 🎏 🔖 ⚙️ 👪 👆 ➡ 🛠️ ⏮️ 🔢 `openapi_tags`. + +⚫️ ✊ 📇 ⚗ 1️⃣ 📖 🔠 🔖. + +🔠 📖 💪 🔌: + +* `name` (**✔**): `str` ⏮️ 🎏 📛 👆 ⚙️ `tags` 🔢 👆 *➡ 🛠️* & `APIRouter`Ⓜ. +* `description`: `str` ⏮️ 📏 📛 🔖. ⚫️ 💪 ✔️ ✍ & 🔜 🎦 🩺 🎚. +* `externalDocs`: `dict` 🔬 🔢 🧾 ⏮️: + * `description`: `str` ⏮️ 📏 📛 🔢 🩺. + * `url` (**✔**): `str` ⏮️ 📛 🔢 🧾. + +### ✍ 🗃 🔖 + +➡️ 🔄 👈 🖼 ⏮️ 🔖 `users` & `items`. + +✍ 🗃 👆 🔖 & 🚶‍♀️ ⚫️ `openapi_tags` 🔢: + +{* ../../docs_src/metadata/tutorial004.py hl[3:16,18] *} + +👀 👈 👆 💪 ⚙️ ✍ 🔘 📛, 🖼 "💳" 🔜 🎦 🦁 (**💳**) & "🎀" 🔜 🎦 ❕ (_🎀_). + +/// tip + +👆 🚫 ✔️ 🚮 🗃 🌐 🔖 👈 👆 ⚙️. + +/// + +### ⚙️ 👆 🔖 + +⚙️ `tags` 🔢 ⏮️ 👆 *➡ 🛠️* (& `APIRouter`Ⓜ) 🛠️ 👫 🎏 🔖: + +{* ../../docs_src/metadata/tutorial004.py hl[21,26] *} + +/// info + +✍ 🌅 🔃 🔖 [➡ 🛠️ 📳](path-operation-configuration.md#_3){.internal-link target=_blank}. + +/// + +### ✅ 🩺 + +🔜, 🚥 👆 ✅ 🩺, 👫 🔜 🎦 🌐 🌖 🗃: + + + +### ✔ 🔖 + +✔ 🔠 🔖 🗃 📖 🔬 ✔ 🎦 🩺 🎚. + +🖼, ✋️ `users` 🔜 🚶 ⏮️ `items` 🔤 ✔, ⚫️ 🎦 ⏭ 👫, ↩️ 👥 🚮 👫 🗃 🥇 📖 📇. + +## 🗄 📛 + +🔢, 🗄 🔗 🍦 `/openapi.json`. + +✋️ 👆 💪 🔗 ⚫️ ⏮️ 🔢 `openapi_url`. + +🖼, ⚒ ⚫️ 🍦 `/api/v1/openapi.json`: + +{* ../../docs_src/metadata/tutorial002.py hl[3] *} + +🚥 👆 💚 ❎ 🗄 🔗 🍕 👆 💪 ⚒ `openapi_url=None`, 👈 🔜 ❎ 🧾 👩‍💻 🔢 👈 ⚙️ ⚫️. + +## 🩺 📛 + +👆 💪 🔗 2️⃣ 🧾 👩‍💻 🔢 🔌: + +* **🦁 🎚**: 🍦 `/docs`. + * 👆 💪 ⚒ 🚮 📛 ⏮️ 🔢 `docs_url`. + * 👆 💪 ❎ ⚫️ ⚒ `docs_url=None`. +* **📄**: 🍦 `/redoc`. + * 👆 💪 ⚒ 🚮 📛 ⏮️ 🔢 `redoc_url`. + * 👆 💪 ❎ ⚫️ ⚒ `redoc_url=None`. + +🖼, ⚒ 🦁 🎚 🍦 `/documentation` & ❎ 📄: + +{* ../../docs_src/metadata/tutorial003.py hl[3] *} diff --git a/docs/em/docs/tutorial/middleware.md b/docs/em/docs/tutorial/middleware.md new file mode 100644 index 0000000..c77b105 --- /dev/null +++ b/docs/em/docs/tutorial/middleware.md @@ -0,0 +1,66 @@ +# 🛠️ + +👆 💪 🚮 🛠️ **FastAPI** 🈸. + +"🛠️" 🔢 👈 👷 ⏮️ 🔠 **📨** ⏭ ⚫️ 🛠️ 🙆 🎯 *➡ 🛠️*. & ⏮️ 🔠 **📨** ⏭ 🛬 ⚫️. + +* ⚫️ ✊ 🔠 **📨** 👈 👟 👆 🈸. +* ⚫️ 💪 ⤴️ 🕳 👈 **📨** ⚖️ 🏃 🙆 💪 📟. +* ⤴️ ⚫️ 🚶‍♀️ **📨** 🛠️ 🎂 🈸 ( *➡ 🛠️*). +* ⚫️ ⤴️ ✊ **📨** 🏗 🈸 ( *➡ 🛠️*). +* ⚫️ 💪 🕳 👈 **📨** ⚖️ 🏃 🙆 💪 📟. +* ⤴️ ⚫️ 📨 **📨**. + +/// note | 📡 ℹ + +🚥 👆 ✔️ 🔗 ⏮️ `yield`, 🚪 📟 🔜 🏃 *⏮️* 🛠️. + +🚥 📤 🙆 🖥 📋 (📄 ⏪), 👫 🔜 🏃 *⏮️* 🌐 🛠️. + +/// + +## ✍ 🛠️ + +✍ 🛠️ 👆 ⚙️ 👨‍🎨 `@app.middleware("http")` 🔛 🔝 🔢. + +🛠️ 🔢 📨: + +* `request`. +* 🔢 `call_next` 👈 🔜 📨 `request` 🔢. + * 👉 🔢 🔜 🚶‍♀️ `request` 🔗 *➡ 🛠️*. + * ⤴️ ⚫️ 📨 `response` 🏗 🔗 *➡ 🛠️*. +* 👆 💪 ⤴️ 🔀 🌅 `response` ⏭ 🛬 ⚫️. + +{* ../../docs_src/middleware/tutorial001.py hl[8:9,11,14] *} + +/// tip + +✔️ 🤯 👈 🛃 © 🎚 💪 🚮 ⚙️ '✖-' 🔡. + +✋️ 🚥 👆 ✔️ 🛃 🎚 👈 👆 💚 👩‍💻 🖥 💪 👀, 👆 💪 🚮 👫 👆 ⚜ 📳 ([⚜ (✖️-🇨🇳 ℹ 🤝)](cors.md){.internal-link target=_blank}) ⚙️ 🔢 `expose_headers` 📄 💃 ⚜ 🩺. + +/// + +/// note | 📡 ℹ + +👆 💪 ⚙️ `from starlette.requests import Request`. + +**FastAPI** 🚚 ⚫️ 🏪 👆, 👩‍💻. ✋️ ⚫️ 👟 🔗 ⚪️➡️ 💃. + +/// + +### ⏭ & ⏮️ `response` + +👆 💪 🚮 📟 🏃 ⏮️ `request`, ⏭ 🙆 *➡ 🛠️* 📨 ⚫️. + +& ⏮️ `response` 🏗, ⏭ 🛬 ⚫️. + +🖼, 👆 💪 🚮 🛃 🎚 `X-Process-Time` ⚗ 🕰 🥈 👈 ⚫️ ✊ 🛠️ 📨 & 🏗 📨: + +{* ../../docs_src/middleware/tutorial001.py hl[10,12:13] *} + +## 🎏 🛠️ + +👆 💪 ⏪ ✍ 🌖 🔃 🎏 🛠️ [🏧 👩‍💻 🦮: 🏧 🛠️](../advanced/middleware.md){.internal-link target=_blank}. + +👆 🔜 ✍ 🔃 ❔ 🍵 ⏮️ 🛠️ ⏭ 📄. diff --git a/docs/em/docs/tutorial/path-operation-configuration.md b/docs/em/docs/tutorial/path-operation-configuration.md new file mode 100644 index 0000000..c6030c0 --- /dev/null +++ b/docs/em/docs/tutorial/path-operation-configuration.md @@ -0,0 +1,107 @@ +# ➡ 🛠️ 📳 + +📤 📚 🔢 👈 👆 💪 🚶‍♀️ 👆 *➡ 🛠️ 👨‍🎨* 🔗 ⚫️. + +/// warning + +👀 👈 👫 🔢 🚶‍♀️ 🔗 *➡ 🛠️ 👨‍🎨*, 🚫 👆 *➡ 🛠️ 🔢*. + +/// + +## 📨 👔 📟 + +👆 💪 🔬 (🇺🇸🔍) `status_code` ⚙️ 📨 👆 *➡ 🛠️*. + +👆 💪 🚶‍♀️ 🔗 `int` 📟, 💖 `404`. + +✋️ 🚥 👆 🚫 💭 ⚫️❔ 🔠 🔢 📟, 👆 💪 ⚙️ ⌨ 📉 `status`: + +{* ../../docs_src/path_operation_configuration/tutorial001.py hl[3,17] *} + +👈 👔 📟 🔜 ⚙️ 📨 & 🔜 🚮 🗄 🔗. + +/// note | 📡 ℹ + +👆 💪 ⚙️ `from starlette import status`. + +**FastAPI** 🚚 🎏 `starlette.status` `fastapi.status` 🏪 👆, 👩‍💻. ✋️ ⚫️ 👟 🔗 ⚪️➡️ 💃. + +/// + +## 🔖 + +👆 💪 🚮 🔖 👆 *➡ 🛠️*, 🚶‍♀️ 🔢 `tags` ⏮️ `list` `str` (🛎 1️⃣ `str`): + +{* ../../docs_src/path_operation_configuration/tutorial002.py hl[17,22,27] *} + +👫 🔜 🚮 🗄 🔗 & ⚙️ 🏧 🧾 🔢: + + + +### 🔖 ⏮️ 🔢 + +🚥 👆 ✔️ 🦏 🈸, 👆 5️⃣📆 🔚 🆙 📈 **📚 🔖**, & 👆 🔜 💚 ⚒ 💭 👆 🕧 ⚙️ **🎏 🔖** 🔗 *➡ 🛠️*. + +👫 💼, ⚫️ 💪 ⚒ 🔑 🏪 🔖 `Enum`. + +**FastAPI** 🐕‍🦺 👈 🎏 🌌 ⏮️ ✅ 🎻: + +{* ../../docs_src/path_operation_configuration/tutorial002b.py hl[1,8:10,13,18] *} + +## 📄 & 📛 + +👆 💪 🚮 `summary` & `description`: + +{* ../../docs_src/path_operation_configuration/tutorial003.py hl[20:21] *} + +## 📛 ⚪️➡️ #️⃣ + +📛 😑 📏 & 📔 💗 ⏸, 👆 💪 📣 *➡ 🛠️* 📛 🔢 #️⃣ & **FastAPI** 🔜 ✍ ⚫️ ⚪️➡️ 📤. + +👆 💪 ✍ #️⃣ , ⚫️ 🔜 🔬 & 🖥 ☑ (✊ 🔘 🏧 #️⃣ 📐). + +{* ../../docs_src/path_operation_configuration/tutorial004.py hl[19:27] *} + +⚫️ 🔜 ⚙️ 🎓 🩺: + + + +## 📨 📛 + +👆 💪 ✔ 📨 📛 ⏮️ 🔢 `response_description`: + +{* ../../docs_src/path_operation_configuration/tutorial005.py hl[21] *} + +/// info + +👀 👈 `response_description` 🔗 🎯 📨, `description` 🔗 *➡ 🛠️* 🏢. + +/// + +/// check + +🗄 ✔ 👈 🔠 *➡ 🛠️* 🚚 📨 📛. + +, 🚥 👆 🚫 🚚 1️⃣, **FastAPI** 🔜 🔁 🏗 1️⃣ "🏆 📨". + +/// + + + +## 😢 *➡ 🛠️* + +🚥 👆 💪 ™ *➡ 🛠️* 😢, ✋️ 🍵 ❎ ⚫️, 🚶‍♀️ 🔢 `deprecated`: + +{* ../../docs_src/path_operation_configuration/tutorial006.py hl[16] *} + +⚫️ 🔜 🎯 ™ 😢 🎓 🩺: + + + +✅ ❔ 😢 & 🚫-😢 *➡ 🛠️* 👀 💖: + + + +## 🌃 + +👆 💪 🔗 & 🚮 🗃 👆 *➡ 🛠️* 💪 🚶‍♀️ 🔢 *➡ 🛠️ 👨‍🎨*. diff --git a/docs/em/docs/tutorial/path-params-numeric-validations.md b/docs/em/docs/tutorial/path-params-numeric-validations.md new file mode 100644 index 0000000..b45e055 --- /dev/null +++ b/docs/em/docs/tutorial/path-params-numeric-validations.md @@ -0,0 +1,117 @@ +# ➡ 🔢 & 🔢 🔬 + +🎏 🌌 👈 👆 💪 📣 🌅 🔬 & 🗃 🔢 🔢 ⏮️ `Query`, 👆 💪 📣 🎏 🆎 🔬 & 🗃 ➡ 🔢 ⏮️ `Path`. + +## 🗄 ➡ + +🥇, 🗄 `Path` ⚪️➡️ `fastapi`: + +{* ../../docs_src/path_params_numeric_validations/tutorial001.py hl[3] *} + +## 📣 🗃 + +👆 💪 📣 🌐 🎏 🔢 `Query`. + +🖼, 📣 `title` 🗃 💲 ➡ 🔢 `item_id` 👆 💪 🆎: + +{* ../../docs_src/path_params_numeric_validations/tutorial001.py hl[10] *} + +/// note + +➡ 🔢 🕧 ✔ ⚫️ ✔️ 🍕 ➡. + +, 👆 🔜 📣 ⚫️ ⏮️ `...` ™ ⚫️ ✔. + +👐, 🚥 👆 📣 ⚫️ ⏮️ `None` ⚖️ ⚒ 🔢 💲, ⚫️ 🔜 🚫 📉 🕳, ⚫️ 🔜 🕧 🚚. + +/// + +## ✔ 🔢 👆 💪 + +➡️ 💬 👈 👆 💚 📣 🔢 🔢 `q` ✔ `str`. + +& 👆 🚫 💪 📣 🕳 🙆 👈 🔢, 👆 🚫 🤙 💪 ⚙️ `Query`. + +✋️ 👆 💪 ⚙️ `Path` `item_id` ➡ 🔢. + +🐍 🔜 😭 🚥 👆 🚮 💲 ⏮️ "🔢" ⏭ 💲 👈 🚫 ✔️ "🔢". + +✋️ 👆 💪 🏤-✔ 👫, & ✔️ 💲 🍵 🔢 (🔢 🔢 `q`) 🥇. + +⚫️ 🚫 🤔 **FastAPI**. ⚫️ 🔜 🔍 🔢 👫 📛, 🆎 & 🔢 📄 (`Query`, `Path`, ♒️), ⚫️ 🚫 💅 🔃 ✔. + +, 👆 💪 📣 👆 🔢: + +{* ../../docs_src/path_params_numeric_validations/tutorial002.py hl[7] *} + +## ✔ 🔢 👆 💪, 🎱 + +🚥 👆 💚 📣 `q` 🔢 🔢 🍵 `Query` 🚫 🙆 🔢 💲, & ➡ 🔢 `item_id` ⚙️ `Path`, & ✔️ 👫 🎏 ✔, 🐍 ✔️ 🐥 🎁 ❕ 👈. + +🚶‍♀️ `*`, 🥇 🔢 🔢. + +🐍 🏆 🚫 🕳 ⏮️ 👈 `*`, ✋️ ⚫️ 🔜 💭 👈 🌐 📄 🔢 🔜 🤙 🇨🇻 ❌ (🔑-💲 👫), 💭 kwargs. 🚥 👫 🚫 ✔️ 🔢 💲. + +{* ../../docs_src/path_params_numeric_validations/tutorial003.py hl[7] *} + +## 🔢 🔬: 👑 🌘 ⚖️ 🌓 + +⏮️ `Query` & `Path` (& 🎏 👆 🔜 👀 ⏪) 👆 💪 📣 🔢 ⚛. + +📥, ⏮️ `ge=1`, `item_id` 🔜 💪 🔢 🔢 "`g`🅾 🌘 ⚖️ `e`🅾" `1`. + +{* ../../docs_src/path_params_numeric_validations/tutorial004.py hl[8] *} + +## 🔢 🔬: 🌘 🌘 & 🌘 🌘 ⚖️ 🌓 + +🎏 ✔: + +* `gt`: `g`🅾 `t`👲 +* `le`: `l`👭 🌘 ⚖️ `e`🅾 + +{* ../../docs_src/path_params_numeric_validations/tutorial005.py hl[9] *} + +## 🔢 🔬: 🎈, 🌘 🌘 & 🌘 🌘 + +🔢 🔬 👷 `float` 💲. + +📥 🌐❔ ⚫️ ▶️️ ⚠ 💪 📣 gt & 🚫 ge. ⏮️ ⚫️ 👆 💪 🚚, 🖼, 👈 💲 🔜 👑 🌘 `0`, 🚥 ⚫️ 🌘 🌘 `1`. + +, `0.5` 🔜 ☑ 💲. ✋️ `0.0` ⚖️ `0` 🔜 🚫. + +& 🎏 lt. + +{* ../../docs_src/path_params_numeric_validations/tutorial006.py hl[11] *} + +## 🌃 + +⏮️ `Query`, `Path` (& 🎏 👆 🚫 👀) 👆 💪 📣 🗃 & 🎻 🔬 🎏 🌌 ⏮️ [🔢 🔢 & 🎻 🔬](query-params-str-validations.md){.internal-link target=_blank}. + +& 👆 💪 📣 🔢 🔬: + +* `gt`: `g`🅾 `t`👲 +* `ge`: `g`🅾 🌘 ⚖️ `e`🅾 +* `lt`: `l`👭 `t`👲 +* `le`: `l`👭 🌘 ⚖️ `e`🅾 + +/// info + +`Query`, `Path`, & 🎏 🎓 👆 🔜 👀 ⏪ 🏿 ⚠ `Param` 🎓. + +🌐 👫 💰 🎏 🔢 🌖 🔬 & 🗃 👆 ✔️ 👀. + +/// + +/// note | 📡 ℹ + +🕐❔ 👆 🗄 `Query`, `Path` & 🎏 ⚪️➡️ `fastapi`, 👫 🤙 🔢. + +👈 🕐❔ 🤙, 📨 👐 🎓 🎏 📛. + +, 👆 🗄 `Query`, ❔ 🔢. & 🕐❔ 👆 🤙 ⚫️, ⚫️ 📨 👐 🎓 🌟 `Query`. + +👫 🔢 📤 (↩️ ⚙️ 🎓 🔗) 👈 👆 👨‍🎨 🚫 ™ ❌ 🔃 👫 🆎. + +👈 🌌 👆 💪 ⚙️ 👆 😐 👨‍🎨 & 🛠️ 🧰 🍵 ✔️ 🚮 🛃 📳 🤷‍♂ 📚 ❌. + +/// diff --git a/docs/em/docs/tutorial/path-params.md b/docs/em/docs/tutorial/path-params.md new file mode 100644 index 0000000..a914dc9 --- /dev/null +++ b/docs/em/docs/tutorial/path-params.md @@ -0,0 +1,256 @@ +# ➡ 🔢 + +👆 💪 📣 ➡ "🔢" ⚖️ "🔢" ⏮️ 🎏 ❕ ⚙️ 🐍 📁 🎻: + +{* ../../docs_src/path_params/tutorial001.py hl[6:7] *} + +💲 ➡ 🔢 `item_id` 🔜 🚶‍♀️ 👆 🔢 ❌ `item_id`. + +, 🚥 👆 🏃 👉 🖼 & 🚶 http://127.0.0.1:8000/items/foo, 👆 🔜 👀 📨: + +```JSON +{"item_id":"foo"} +``` + +## ➡ 🔢 ⏮️ 🆎 + +👆 💪 📣 🆎 ➡ 🔢 🔢, ⚙️ 🐩 🐍 🆎 ✍: + +{* ../../docs_src/path_params/tutorial002.py hl[7] *} + +👉 💼, `item_id` 📣 `int`. + +/// check + +👉 🔜 🤝 👆 👨‍🎨 🐕‍🦺 🔘 👆 🔢, ⏮️ ❌ ✅, 🛠️, ♒️. + +/// + +## 💽 🛠️ + +🚥 👆 🏃 👉 🖼 & 📂 👆 🖥 http://127.0.0.1:8000/items/3, 👆 🔜 👀 📨: + +```JSON +{"item_id":3} +``` + +/// check + +👀 👈 💲 👆 🔢 📨 (& 📨) `3`, 🐍 `int`, 🚫 🎻 `"3"`. + +, ⏮️ 👈 🆎 📄, **FastAPI** 🤝 👆 🏧 📨 "✍". + +/// + +## 💽 🔬 + +✋️ 🚥 👆 🚶 🖥 http://127.0.0.1:8000/items/foo, 👆 🔜 👀 👌 🇺🇸🔍 ❌: + +```JSON +{ + "detail": [ + { + "loc": [ + "path", + "item_id" + ], + "msg": "value is not a valid integer", + "type": "type_error.integer" + } + ] +} +``` + +↩️ ➡ 🔢 `item_id` ✔️ 💲 `"foo"`, ❔ 🚫 `int`. + +🎏 ❌ 🔜 😑 🚥 👆 🚚 `float` ↩️ `int`,: http://127.0.0.1:8000/items/4.2 + +/// check + +, ⏮️ 🎏 🐍 🆎 📄, **FastAPI** 🤝 👆 💽 🔬. + +👀 👈 ❌ 🎯 🇵🇸 ⚫️❔ ☝ 🌐❔ 🔬 🚫 🚶‍♀️. + +👉 🙃 👍 ⏪ 🛠️ & 🛠️ 📟 👈 🔗 ⏮️ 👆 🛠️. + +/// + +## 🧾 + +& 🕐❔ 👆 📂 👆 🖥 http://127.0.0.1:8000/docs, 👆 🔜 👀 🏧, 🎓, 🛠️ 🧾 💖: + + + +/// check + +🔄, ⏮️ 👈 🎏 🐍 🆎 📄, **FastAPI** 🤝 👆 🏧, 🎓 🧾 (🛠️ 🦁 🎚). + +👀 👈 ➡ 🔢 📣 🔢. + +/// + +## 🐩-⚓️ 💰, 🎛 🧾 + +& ↩️ 🏗 🔗 ⚪️➡️ 🗄 🐩, 📤 📚 🔗 🧰. + +↩️ 👉, **FastAPI** ⚫️ 🚚 🎛 🛠️ 🧾 (⚙️ 📄), ❔ 👆 💪 🔐 http://127.0.0.1:8000/redoc: + + + +🎏 🌌, 📤 📚 🔗 🧰. ✅ 📟 ⚡ 🧰 📚 🇪🇸. + +## Pydantic + +🌐 💽 🔬 🎭 🔽 🚘 Pydantic, 👆 🤚 🌐 💰 ⚪️➡️ ⚫️. & 👆 💭 👆 👍 ✋. + +👆 💪 ⚙️ 🎏 🆎 📄 ⏮️ `str`, `float`, `bool` & 📚 🎏 🏗 📊 🆎. + +📚 👫 🔬 ⏭ 📃 🔰. + +## ✔ 🤔 + +🕐❔ 🏗 *➡ 🛠️*, 👆 💪 🔎 ⚠ 🌐❔ 👆 ✔️ 🔧 ➡. + +💖 `/users/me`, ➡️ 💬 👈 ⚫️ 🤚 📊 🔃 ⏮️ 👩‍💻. + +& ⤴️ 👆 💪 ✔️ ➡ `/users/{user_id}` 🤚 💽 🔃 🎯 👩‍💻 👩‍💻 🆔. + +↩️ *➡ 🛠️* 🔬 ✔, 👆 💪 ⚒ 💭 👈 ➡ `/users/me` 📣 ⏭ 1️⃣ `/users/{user_id}`: + +{* ../../docs_src/path_params/tutorial003.py hl[6,11] *} + +⏪, ➡ `/users/{user_id}` 🔜 🏏 `/users/me`, "💭" 👈 ⚫️ 📨 🔢 `user_id` ⏮️ 💲 `"me"`. + +➡, 👆 🚫🔜 ↔ ➡ 🛠️: + +{* ../../docs_src/path_params/tutorial003b.py hl[6,11] *} + +🥇 🕐 🔜 🕧 ⚙️ ↩️ ➡ 🏏 🥇. + +## 🔁 💲 + +🚥 👆 ✔️ *➡ 🛠️* 👈 📨 *➡ 🔢*, ✋️ 👆 💚 💪 ☑ *➡ 🔢* 💲 🔁, 👆 💪 ⚙️ 🐩 🐍 `Enum`. + +### ✍ `Enum` 🎓 + +🗄 `Enum` & ✍ 🎧-🎓 👈 😖 ⚪️➡️ `str` & ⚪️➡️ `Enum`. + +😖 ⚪️➡️ `str` 🛠️ 🩺 🔜 💪 💭 👈 💲 🔜 🆎 `string` & 🔜 💪 ✍ ☑. + +⤴️ ✍ 🎓 🔢 ⏮️ 🔧 💲, ❔ 🔜 💪 ☑ 💲: + +{* ../../docs_src/path_params/tutorial005.py hl[1,6:9] *} + +/// info + +🔢 (⚖️ 🔢) 💪 🐍 ↩️ ⏬ 3️⃣.4️⃣. + +/// + +/// tip + +🚥 👆 💭, "📊", "🎓", & "🍏" 📛 🎰 🏫 🏷. + +/// + +### 📣 *➡ 🔢* + +⤴️ ✍ *➡ 🔢* ⏮️ 🆎 ✍ ⚙️ 🔢 🎓 👆 ✍ (`ModelName`): + +{* ../../docs_src/path_params/tutorial005.py hl[16] *} + +### ✅ 🩺 + +↩️ 💪 💲 *➡ 🔢* 🔢, 🎓 🩺 💪 🎦 👫 🎆: + + + +### 👷 ⏮️ 🐍 *🔢* + +💲 *➡ 🔢* 🔜 *🔢 👨‍🎓*. + +#### 🔬 *🔢 👨‍🎓* + +👆 💪 🔬 ⚫️ ⏮️ *🔢 👨‍🎓* 👆 ✍ 🔢 `ModelName`: + +{* ../../docs_src/path_params/tutorial005.py hl[17] *} + +#### 🤚 *🔢 💲* + +👆 💪 🤚 ☑ 💲 ( `str` 👉 💼) ⚙️ `model_name.value`, ⚖️ 🏢, `your_enum_member.value`: + +{* ../../docs_src/path_params/tutorial005.py hl[20] *} + +/// tip + +👆 💪 🔐 💲 `"lenet"` ⏮️ `ModelName.lenet.value`. + +/// + +#### 📨 *🔢 👨‍🎓* + +👆 💪 📨 *🔢 👨‍🎓* ⚪️➡️ 👆 *➡ 🛠️*, 🐦 🎻 💪 (✅ `dict`). + +👫 🔜 🗜 👫 🔗 💲 (🎻 👉 💼) ⏭ 🛬 👫 👩‍💻: + +{* ../../docs_src/path_params/tutorial005.py hl[18,21,23] *} + +👆 👩‍💻 👆 🔜 🤚 🎻 📨 💖: + +```JSON +{ + "model_name": "alexnet", + "message": "Deep Learning FTW!" +} +``` + +## ➡ 🔢 ⚗ ➡ + +➡️ 💬 👆 ✔️ *➡ 🛠️* ⏮️ ➡ `/files/{file_path}`. + +✋️ 👆 💪 `file_path` ⚫️ 🔌 *➡*, 💖 `home/johndoe/myfile.txt`. + +, 📛 👈 📁 🔜 🕳 💖: `/files/home/johndoe/myfile.txt`. + +### 🗄 🐕‍🦺 + +🗄 🚫 🐕‍🦺 🌌 📣 *➡ 🔢* 🔌 *➡* 🔘, 👈 💪 ↘️ 😐 👈 ⚠ 💯 & 🔬. + +👐, 👆 💪 ⚫️ **FastAPI**, ⚙️ 1️⃣ 🔗 🧰 ⚪️➡️ 💃. + +& 🩺 🔜 👷, 👐 🚫 ❎ 🙆 🧾 💬 👈 🔢 🔜 🔌 ➡. + +### ➡ 🔌 + +⚙️ 🎛 🔗 ⚪️➡️ 💃 👆 💪 📣 *➡ 🔢* ⚗ *➡* ⚙️ 📛 💖: + +``` +/files/{file_path:path} +``` + +👉 💼, 📛 🔢 `file_path`, & 🏁 🍕, `:path`, 💬 ⚫️ 👈 🔢 🔜 🏏 🙆 *➡*. + +, 👆 💪 ⚙️ ⚫️ ⏮️: + +{* ../../docs_src/path_params/tutorial004.py hl[6] *} + +/// tip + +👆 💪 💪 🔢 🔌 `/home/johndoe/myfile.txt`, ⏮️ 🏁 🔪 (`/`). + +👈 💼, 📛 🔜: `/files//home/johndoe/myfile.txt`, ⏮️ 2️⃣✖️ 🔪 (`//`) 🖖 `files` & `home`. + +/// + +## 🌃 + +⏮️ **FastAPI**, ⚙️ 📏, 🏋️ & 🐩 🐍 🆎 📄, 👆 🤚: + +* 👨‍🎨 🐕‍🦺: ❌ ✅, ✍, ♒️. +* 💽 "" +* 💽 🔬 +* 🛠️ ✍ & 🏧 🧾 + +& 👆 🕴 ✔️ 📣 👫 🕐. + +👈 🎲 👑 ⭐ 📈 **FastAPI** 🔬 🎛 🛠️ (↖️ ⚪️➡️ 🍣 🎭). diff --git a/docs/em/docs/tutorial/query-params-str-validations.md b/docs/em/docs/tutorial/query-params-str-validations.md new file mode 100644 index 0000000..fd077bf --- /dev/null +++ b/docs/em/docs/tutorial/query-params-str-validations.md @@ -0,0 +1,320 @@ +# 🔢 🔢 & 🎻 🔬 + +**FastAPI** ✔ 👆 📣 🌖 ℹ & 🔬 👆 🔢. + +➡️ ✊ 👉 🈸 🖼: + +{* ../../docs_src/query_params_str_validations/tutorial001.py hl[9] *} + +🔢 🔢 `q` 🆎 `Union[str, None]` (⚖️ `str | None` 🐍 3️⃣.1️⃣0️⃣), 👈 ⛓ 👈 ⚫️ 🆎 `str` ✋️ 💪 `None`, & 👐, 🔢 💲 `None`, FastAPI 🔜 💭 ⚫️ 🚫 ✔. + +/// note + +FastAPI 🔜 💭 👈 💲 `q` 🚫 ✔ ↩️ 🔢 💲 `= None`. + + `Union` `Union[str, None]` 🔜 ✔ 👆 👨‍🎨 🤝 👆 👍 🐕‍🦺 & 🔍 ❌. + +/// + +## 🌖 🔬 + +👥 🔜 🛠️ 👈 ✋️ `q` 📦, 🕐❔ ⚫️ 🚚, **🚮 📐 🚫 📉 5️⃣0️⃣ 🦹**. + +### 🗄 `Query` + +🏆 👈, 🥇 🗄 `Query` ⚪️➡️ `fastapi`: + +{* ../../docs_src/query_params_str_validations/tutorial002.py hl[3] *} + +## ⚙️ `Query` 🔢 💲 + +& 🔜 ⚙️ ⚫️ 🔢 💲 👆 🔢, ⚒ 🔢 `max_length` 5️⃣0️⃣: + +{* ../../docs_src/query_params_str_validations/tutorial002.py hl[9] *} + +👥 ✔️ ❎ 🔢 💲 `None` 🔢 ⏮️ `Query()`, 👥 💪 🔜 ⚒ 🔢 💲 ⏮️ 🔢 `Query(default=None)`, ⚫️ 🍦 🎏 🎯 ⚖ 👈 🔢 💲. + +: + +```Python +q: Union[str, None] = Query(default=None) +``` + +...⚒ 🔢 📦, 🎏: + +```Python +q: Union[str, None] = None +``` + +& 🐍 3️⃣.1️⃣0️⃣ & 🔛: + +```Python +q: str | None = Query(default=None) +``` + +...⚒ 🔢 📦, 🎏: + +```Python +q: str | None = None +``` + +✋️ ⚫️ 📣 ⚫️ 🎯 💆‍♂ 🔢 🔢. + +/// info + +✔️ 🤯 👈 🌅 ⚠ 🍕 ⚒ 🔢 📦 🍕: + +```Python += None +``` + +⚖️: + +```Python += Query(default=None) +``` + +⚫️ 🔜 ⚙️ 👈 `None` 🔢 💲, & 👈 🌌 ⚒ 🔢 **🚫 ✔**. + + `Union[str, None]` 🍕 ✔ 👆 👨‍🎨 🚚 👻 🐕‍🦺, ✋️ ⚫️ 🚫 ⚫️❔ 💬 FastAPI 👈 👉 🔢 🚫 ✔. + +/// + +⤴️, 👥 💪 🚶‍♀️ 🌅 🔢 `Query`. 👉 💼, `max_length` 🔢 👈 ✔ 🎻: + +```Python +q: Union[str, None] = Query(default=None, max_length=50) +``` + +👉 🔜 ✔ 📊, 🎦 🆑 ❌ 🕐❔ 📊 🚫 ☑, & 📄 🔢 🗄 🔗 *➡ 🛠️*. + +## 🚮 🌅 🔬 + +👆 💪 🚮 🔢 `min_length`: + +{* ../../docs_src/query_params_str_validations/tutorial003.py hl[10] *} + +## 🚮 🥔 🧬 + +👆 💪 🔬 🥔 🧬 👈 🔢 🔜 🏏: + +{* ../../docs_src/query_params_str_validations/tutorial004.py hl[11] *} + +👉 🎯 🥔 🧬 ✅ 👈 📨 🔢 💲: + +* `^`: ▶️ ⏮️ 📄 🦹, 🚫 ✔️ 🦹 ⏭. +* `fixedquery`: ✔️ ☑ 💲 `fixedquery`. +* `$`: 🔚 📤, 🚫 ✔️ 🙆 🌖 🦹 ⏮️ `fixedquery`. + +🚥 👆 💭 💸 ⏮️ 🌐 👉 **"🥔 🧬"** 💭, 🚫 😟. 👫 🏋️ ❔ 📚 👫👫. 👆 💪 📚 💩 🍵 💆‍♂ 🥔 🧬. + +✋️ 🕐❔ 👆 💪 👫 & 🚶 & 💡 👫, 💭 👈 👆 💪 ⏪ ⚙️ 👫 🔗 **FastAPI**. + +## 🔢 💲 + +🎏 🌌 👈 👆 💪 🚶‍♀️ `None` 💲 `default` 🔢, 👆 💪 🚶‍♀️ 🎏 💲. + +➡️ 💬 👈 👆 💚 📣 `q` 🔢 🔢 ✔️ `min_length` `3`, & ✔️ 🔢 💲 `"fixedquery"`: + +{* ../../docs_src/query_params_str_validations/tutorial005.py hl[7] *} + +/// note + +✔️ 🔢 💲 ⚒ 🔢 📦. + +/// + +## ⚒ ⚫️ ✔ + +🕐❔ 👥 🚫 💪 📣 🌅 🔬 ⚖️ 🗃, 👥 💪 ⚒ `q` 🔢 🔢 ✔ 🚫 📣 🔢 💲, 💖: + +```Python +q: str +``` + +↩️: + +```Python +q: Union[str, None] = None +``` + +✋️ 👥 🔜 📣 ⚫️ ⏮️ `Query`, 🖼 💖: + +```Python +q: Union[str, None] = Query(default=None, min_length=3) +``` + +, 🕐❔ 👆 💪 📣 💲 ✔ ⏪ ⚙️ `Query`, 👆 💪 🎯 🚫 📣 🔢 💲: + +{* ../../docs_src/query_params_str_validations/tutorial006.py hl[7] *} + +### ✔ ⏮️ `None` + +👆 💪 📣 👈 🔢 💪 🚫 `None`, ✋️ 👈 ⚫️ ✔. 👉 🔜 ⚡ 👩‍💻 📨 💲, 🚥 💲 `None`. + +👈, 👆 💪 📣 👈 `None` ☑ 🆎 ✋️ ⚙️ `default=...`: + +{* ../../docs_src/query_params_str_validations/tutorial006c.py hl[9] *} + +/// tip + +Pydantic, ❔ ⚫️❔ 🏋️ 🌐 💽 🔬 & 🛠️ FastAPI, ✔️ 🎁 🎭 🕐❔ 👆 ⚙️ `Optional` ⚖️ `Union[Something, None]` 🍵 🔢 💲, 👆 💪 ✍ 🌅 🔃 ⚫️ Pydantic 🩺 🔃 ✔ 📦 🏑. + +/// + +## 🔢 🔢 📇 / 💗 💲 + +🕐❔ 👆 🔬 🔢 🔢 🎯 ⏮️ `Query` 👆 💪 📣 ⚫️ 📨 📇 💲, ⚖️ 🙆‍♀ 🎏 🌌, 📨 💗 💲. + +🖼, 📣 🔢 🔢 `q` 👈 💪 😑 💗 🕰 📛, 👆 💪 ✍: + +{* ../../docs_src/query_params_str_validations/tutorial011.py hl[9] *} + +⤴️, ⏮️ 📛 💖: + +``` +http://localhost:8000/items/?q=foo&q=bar +``` + +👆 🔜 📨 💗 `q` *🔢 🔢'* 💲 (`foo` & `bar`) 🐍 `list` 🔘 👆 *➡ 🛠️ 🔢*, *🔢 🔢* `q`. + +, 📨 👈 📛 🔜: + +```JSON +{ + "q": [ + "foo", + "bar" + ] +} +``` + +/// tip + +📣 🔢 🔢 ⏮️ 🆎 `list`, 💖 🖼 🔛, 👆 💪 🎯 ⚙️ `Query`, ⏪ ⚫️ 🔜 🔬 📨 💪. + +/// + +🎓 🛠️ 🩺 🔜 ℹ ➡️, ✔ 💗 💲: + + + +### 🔢 🔢 📇 / 💗 💲 ⏮️ 🔢 + +& 👆 💪 🔬 🔢 `list` 💲 🚥 👌 🚚: + +{* ../../docs_src/query_params_str_validations/tutorial012.py hl[9] *} + +🚥 👆 🚶: + +``` +http://localhost:8000/items/ +``` + +🔢 `q` 🔜: `["foo", "bar"]` & 👆 📨 🔜: + +```JSON +{ + "q": [ + "foo", + "bar" + ] +} +``` + +#### ⚙️ `list` + +👆 💪 ⚙️ `list` 🔗 ↩️ `List[str]` (⚖️ `list[str]` 🐍 3️⃣.9️⃣ ➕): + +{* ../../docs_src/query_params_str_validations/tutorial013.py hl[7] *} + +/// note + +✔️ 🤯 👈 👉 💼, FastAPI 🏆 🚫 ✅ 🎚 📇. + +🖼, `List[int]` 🔜 ✅ (& 📄) 👈 🎚 📇 🔢. ✋️ `list` 😞 🚫🔜. + +/// + +## 📣 🌅 🗃 + +👆 💪 🚮 🌅 ℹ 🔃 🔢. + +👈 ℹ 🔜 🔌 🏗 🗄 & ⚙️ 🧾 👩‍💻 🔢 & 🔢 🧰. + +/// note + +✔️ 🤯 👈 🎏 🧰 5️⃣📆 ✔️ 🎏 🎚 🗄 🐕‍🦺. + +👫 💪 🚫 🎦 🌐 ➕ ℹ 📣, 👐 🌅 💼, ❌ ⚒ ⏪ 📄 🛠️. + +/// + +👆 💪 🚮 `title`: + +{* ../../docs_src/query_params_str_validations/tutorial007.py hl[10] *} + +& `description`: + +{* ../../docs_src/query_params_str_validations/tutorial008.py hl[13] *} + +## 📛 🔢 + +🌈 👈 👆 💚 🔢 `item-query`. + +💖: + +``` +http://127.0.0.1:8000/items/?item-query=foobaritems +``` + +✋️ `item-query` 🚫 ☑ 🐍 🔢 📛. + +🔐 🔜 `item_query`. + +✋️ 👆 💪 ⚫️ ⚫️❔ `item-query`... + +⤴️ 👆 💪 📣 `alias`, & 👈 📛 ⚫️❔ 🔜 ⚙️ 🔎 🔢 💲: + +{* ../../docs_src/query_params_str_validations/tutorial009.py hl[9] *} + +## 😛 🔢 + +🔜 ➡️ 💬 👆 🚫 💖 👉 🔢 🚫🔜. + +👆 ✔️ 👈 ⚫️ 📤 ⏪ ↩️ 📤 👩‍💻 ⚙️ ⚫️, ✋️ 👆 💚 🩺 🎯 🎦 ⚫️ 😢. + +⤴️ 🚶‍♀️ 🔢 `deprecated=True` `Query`: + +{* ../../docs_src/query_params_str_validations/tutorial010.py hl[18] *} + +🩺 🔜 🎦 ⚫️ 💖 👉: + + + +## 🚫 ⚪️➡️ 🗄 + +🚫 🔢 🔢 ⚪️➡️ 🏗 🗄 🔗 (& ➡️, ⚪️➡️ 🏧 🧾 ⚙️), ⚒ 🔢 `include_in_schema` `Query` `False`: + +{* ../../docs_src/query_params_str_validations/tutorial014.py hl[10] *} + +## 🌃 + +👆 💪 📣 🌖 🔬 & 🗃 👆 🔢. + +💊 🔬 & 🗃: + +* `alias` +* `title` +* `description` +* `deprecated` + +🔬 🎯 🎻: + +* `min_length` +* `max_length` +* `regex` + +👫 🖼 👆 👀 ❔ 📣 🔬 `str` 💲. + +👀 ⏭ 📃 👀 ❔ 📣 🔬 🎏 🆎, 💖 🔢. diff --git a/docs/em/docs/tutorial/query-params.md b/docs/em/docs/tutorial/query-params.md new file mode 100644 index 0000000..5c8d868 --- /dev/null +++ b/docs/em/docs/tutorial/query-params.md @@ -0,0 +1,187 @@ +# 🔢 🔢 + +🕐❔ 👆 📣 🎏 🔢 🔢 👈 🚫 🍕 ➡ 🔢, 👫 🔁 🔬 "🔢" 🔢. + +{* ../../docs_src/query_params/tutorial001.py hl[9] *} + +🔢 ⚒ 🔑-💲 👫 👈 🚶 ⏮️ `?` 📛, 🎏 `&` 🦹. + +🖼, 📛: + +``` +http://127.0.0.1:8000/items/?skip=0&limit=10 +``` + +...🔢 🔢: + +* `skip`: ⏮️ 💲 `0` +* `limit`: ⏮️ 💲 `10` + +👫 🍕 📛, 👫 "🛎" 🎻. + +✋️ 🕐❔ 👆 📣 👫 ⏮️ 🐍 🆎 (🖼 🔛, `int`), 👫 🗜 👈 🆎 & ✔ 🛡 ⚫️. + +🌐 🎏 🛠️ 👈 ⚖ ➡ 🔢 ✔ 🔢 🔢: + +* 👨‍🎨 🐕‍🦺 (🎲) +* 💽 "✍" +* 💽 🔬 +* 🏧 🧾 + +## 🔢 + +🔢 🔢 🚫 🔧 🍕 ➡, 👫 💪 📦 & 💪 ✔️ 🔢 💲. + +🖼 🔛 👫 ✔️ 🔢 💲 `skip=0` & `limit=10`. + +, 🔜 📛: + +``` +http://127.0.0.1:8000/items/ +``` + +🔜 🎏 🔜: + +``` +http://127.0.0.1:8000/items/?skip=0&limit=10 +``` + +✋️ 🚥 👆 🚶, 🖼: + +``` +http://127.0.0.1:8000/items/?skip=20 +``` + +🔢 💲 👆 🔢 🔜: + +* `skip=20`: ↩️ 👆 ⚒ ⚫️ 📛 +* `limit=10`: ↩️ 👈 🔢 💲 + +## 📦 🔢 + +🎏 🌌, 👆 💪 📣 📦 🔢 🔢, ⚒ 👫 🔢 `None`: + +{* ../../docs_src/query_params/tutorial002.py hl[9] *} + +👉 💼, 🔢 🔢 `q` 🔜 📦, & 🔜 `None` 🔢. + +/// check + +👀 👈 **FastAPI** 🙃 🥃 👀 👈 ➡ 🔢 `item_id` ➡ 🔢 & `q` 🚫,, ⚫️ 🔢 🔢. + +/// + +## 🔢 🔢 🆎 🛠️ + +👆 💪 📣 `bool` 🆎, & 👫 🔜 🗜: + +{* ../../docs_src/query_params/tutorial003.py hl[9] *} + +👉 💼, 🚥 👆 🚶: + +``` +http://127.0.0.1:8000/items/foo?short=1 +``` + +⚖️ + +``` +http://127.0.0.1:8000/items/foo?short=True +``` + +⚖️ + +``` +http://127.0.0.1:8000/items/foo?short=true +``` + +⚖️ + +``` +http://127.0.0.1:8000/items/foo?short=on +``` + +⚖️ + +``` +http://127.0.0.1:8000/items/foo?short=yes +``` + +⚖️ 🙆 🎏 💼 📈 (🔠, 🥇 🔤 🔠, ♒️), 👆 🔢 🔜 👀 🔢 `short` ⏮️ `bool` 💲 `True`. ⏪ `False`. + + +## 💗 ➡ & 🔢 🔢 + +👆 💪 📣 💗 ➡ 🔢 & 🔢 🔢 🎏 🕰, **FastAPI** 💭 ❔ ❔. + +& 👆 🚫 ✔️ 📣 👫 🙆 🎯 ✔. + +👫 🔜 🔬 📛: + +{* ../../docs_src/query_params/tutorial004.py hl[8,10] *} + +## ✔ 🔢 🔢 + +🕐❔ 👆 📣 🔢 💲 🚫-➡ 🔢 (🔜, 👥 ✔️ 🕴 👀 🔢 🔢), ⤴️ ⚫️ 🚫 ✔. + +🚥 👆 🚫 💚 🚮 🎯 💲 ✋️ ⚒ ⚫️ 📦, ⚒ 🔢 `None`. + +✋️ 🕐❔ 👆 💚 ⚒ 🔢 🔢 ✔, 👆 💪 🚫 📣 🙆 🔢 💲: + +{* ../../docs_src/query_params/tutorial005.py hl[6:7] *} + +📥 🔢 🔢 `needy` ✔ 🔢 🔢 🆎 `str`. + +🚥 👆 📂 👆 🖥 📛 💖: + +``` +http://127.0.0.1:8000/items/foo-item +``` + +...🍵 ❎ ✔ 🔢 `needy`, 👆 🔜 👀 ❌ 💖: + +```JSON +{ + "detail": [ + { + "loc": [ + "query", + "needy" + ], + "msg": "field required", + "type": "value_error.missing" + } + ] +} +``` + +`needy` 🚚 🔢, 👆 🔜 💪 ⚒ ⚫️ 📛: + +``` +http://127.0.0.1:8000/items/foo-item?needy=sooooneedy +``` + +...👉 🔜 👷: + +```JSON +{ + "item_id": "foo-item", + "needy": "sooooneedy" +} +``` + +& ↗️, 👆 💪 🔬 🔢 ✔, ✔️ 🔢 💲, & 🍕 📦: + +{* ../../docs_src/query_params/tutorial006.py hl[10] *} + +👉 💼, 📤 3️⃣ 🔢 🔢: + +* `needy`, ✔ `str`. +* `skip`, `int` ⏮️ 🔢 💲 `0`. +* `limit`, 📦 `int`. + +/// tip + +👆 💪 ⚙️ `Enum`Ⓜ 🎏 🌌 ⏮️ [➡ 🔢](path-params.md#_7){.internal-link target=_blank}. + +/// diff --git a/docs/em/docs/tutorial/request-files.md b/docs/em/docs/tutorial/request-files.md new file mode 100644 index 0000000..c3bdeaf --- /dev/null +++ b/docs/em/docs/tutorial/request-files.md @@ -0,0 +1,172 @@ +# 📨 📁 + +👆 💪 🔬 📁 📂 👩‍💻 ⚙️ `File`. + +/// info + +📨 📂 📁, 🥇 ❎ `python-multipart`. + +🤶 Ⓜ. `pip install python-multipart`. + +👉 ↩️ 📂 📁 📨 "📨 💽". + +/// + +## 🗄 `File` + +🗄 `File` & `UploadFile` ⚪️➡️ `fastapi`: + +{* ../../docs_src/request_files/tutorial001.py hl[1] *} + +## 🔬 `File` 🔢 + +✍ 📁 🔢 🎏 🌌 👆 🔜 `Body` ⚖️ `Form`: + +{* ../../docs_src/request_files/tutorial001.py hl[7] *} + +/// info + +`File` 🎓 👈 😖 🔗 ⚪️➡️ `Form`. + +✋️ 💭 👈 🕐❔ 👆 🗄 `Query`, `Path`, `File` & 🎏 ⚪️➡️ `fastapi`, 👈 🤙 🔢 👈 📨 🎁 🎓. + +/// + +/// tip + +📣 📁 💪, 👆 💪 ⚙️ `File`, ↩️ ⏪ 🔢 🔜 🔬 🔢 🔢 ⚖️ 💪 (🎻) 🔢. + +/// + +📁 🔜 📂 "📨 💽". + +🚥 👆 📣 🆎 👆 *➡ 🛠️ 🔢* 🔢 `bytes`, **FastAPI** 🔜 ✍ 📁 👆 & 👆 🔜 📨 🎚 `bytes`. + +✔️ 🤯 👈 👉 ⛓ 👈 🎂 🎚 🔜 🏪 💾. 👉 🔜 👷 👍 🤪 📁. + +✋️ 📤 📚 💼 ❔ 👆 💪 💰 ⚪️➡️ ⚙️ `UploadFile`. + +## 📁 🔢 ⏮️ `UploadFile` + +🔬 📁 🔢 ⏮️ 🆎 `UploadFile`: + +{* ../../docs_src/request_files/tutorial001.py hl[12] *} + +⚙️ `UploadFile` ✔️ 📚 📈 🤭 `bytes`: + +* 👆 🚫 ✔️ ⚙️ `File()` 🔢 💲 🔢. +* ⚫️ ⚙️ "🧵" 📁: + * 📁 🏪 💾 🆙 🔆 📐 📉, & ⏮️ 🚶‍♀️ 👉 📉 ⚫️ 🔜 🏪 💾. +* 👉 ⛓ 👈 ⚫️ 🔜 👷 👍 ⭕ 📁 💖 🖼, 📹, ⭕ 💱, ♒️. 🍵 😩 🌐 💾. +* 👆 💪 🤚 🗃 ⚪️➡️ 📂 📁. +* ⚫️ ✔️ 📁-💖 `async` 🔢. +* ⚫️ 🎦 ☑ 🐍 `SpooledTemporaryFile` 🎚 👈 👆 💪 🚶‍♀️ 🔗 🎏 🗃 👈 ⌛ 📁-💖 🎚. + +### `UploadFile` + +`UploadFile` ✔️ 📄 🔢: + +* `filename`: `str` ⏮️ ⏮️ 📁 📛 👈 📂 (✅ `myimage.jpg`). +* `content_type`: `str` ⏮️ 🎚 🆎 (📁 🆎 / 📻 🆎) (✅ `image/jpeg`). +* `file`: `SpooledTemporaryFile` ( 📁-💖 🎚). 👉 ☑ 🐍 📁 👈 👆 💪 🚶‍♀️ 🔗 🎏 🔢 ⚖️ 🗃 👈 ⌛ "📁-💖" 🎚. + +`UploadFile` ✔️ 📄 `async` 👩‍🔬. 👫 🌐 🤙 🔗 📁 👩‍🔬 🔘 (⚙️ 🔗 `SpooledTemporaryFile`). + +* `write(data)`: ✍ `data` (`str` ⚖️ `bytes`) 📁. +* `read(size)`: ✍ `size` (`int`) 🔢/🦹 📁. +* `seek(offset)`: 🚶 🔢 🧘 `offset` (`int`) 📁. + * 🤶 Ⓜ., `await myfile.seek(0)` 🔜 🚶 ▶️ 📁. + * 👉 ✴️ ⚠ 🚥 👆 🏃 `await myfile.read()` 🕐 & ⤴️ 💪 ✍ 🎚 🔄. +* `close()`: 🔐 📁. + +🌐 👫 👩‍🔬 `async` 👩‍🔬, 👆 💪 "⌛" 👫. + +🖼, 🔘 `async` *➡ 🛠️ 🔢* 👆 💪 🤚 🎚 ⏮️: + +```Python +contents = await myfile.read() +``` + +🚥 👆 🔘 😐 `def` *➡ 🛠️ 🔢*, 👆 💪 🔐 `UploadFile.file` 🔗, 🖼: + +```Python +contents = myfile.file.read() +``` + +/// note | `async` 📡 ℹ + +🕐❔ 👆 ⚙️ `async` 👩‍🔬, **FastAPI** 🏃 📁 👩‍🔬 🧵 & ⌛ 👫. + +/// + +/// note | 💃 📡 ℹ + +**FastAPI**'Ⓜ `UploadFile` 😖 🔗 ⚪️➡️ **💃**'Ⓜ `UploadFile`, ✋️ 🚮 💪 🍕 ⚒ ⚫️ 🔗 ⏮️ **Pydantic** & 🎏 🍕 FastAPI. + +/// + +## ⚫️❔ "📨 💽" + +🌌 🕸 📨 (`
`) 📨 💽 💽 🛎 ⚙️ "🎁" 🔢 👈 📊, ⚫️ 🎏 ⚪️➡️ 🎻. + +**FastAPI** 🔜 ⚒ 💭 ✍ 👈 📊 ⚪️➡️ ▶️️ 🥉 ↩️ 🎻. + +/// note | 📡 ℹ + +📊 ⚪️➡️ 📨 🛎 🗜 ⚙️ "📻 🆎" `application/x-www-form-urlencoded` 🕐❔ ⚫️ 🚫 🔌 📁. + +✋️ 🕐❔ 📨 🔌 📁, ⚫️ 🗜 `multipart/form-data`. 🚥 👆 ⚙️ `File`, **FastAPI** 🔜 💭 ⚫️ ✔️ 🤚 📁 ⚪️➡️ ☑ 🍕 💪. + +🚥 👆 💚 ✍ 🌖 🔃 👉 🔢 & 📨 🏑, 👳 🏇 🕸 🩺 POST. + +/// + +/// warning + +👆 💪 📣 💗 `File` & `Form` 🔢 *➡ 🛠️*, ✋️ 👆 💪 🚫 📣 `Body` 🏑 👈 👆 ⌛ 📨 🎻, 📨 🔜 ✔️ 💪 🗜 ⚙️ `multipart/form-data` ↩️ `application/json`. + +👉 🚫 🚫 **FastAPI**, ⚫️ 🍕 🇺🇸🔍 🛠️. + +/// + +## 📦 📁 📂 + +👆 💪 ⚒ 📁 📦 ⚙️ 🐩 🆎 ✍ & ⚒ 🔢 💲 `None`: + +{* ../../docs_src/request_files/tutorial001_02.py hl[9,17] *} + +## `UploadFile` ⏮️ 🌖 🗃 + +👆 💪 ⚙️ `File()` ⏮️ `UploadFile`, 🖼, ⚒ 🌖 🗃: + +{* ../../docs_src/request_files/tutorial001_03.py hl[13] *} + +## 💗 📁 📂 + +⚫️ 💪 📂 📚 📁 🎏 🕰. + +👫 🔜 👨‍💼 🎏 "📨 🏑" 📨 ⚙️ "📨 💽". + +⚙️ 👈, 📣 📇 `bytes` ⚖️ `UploadFile`: + +{* ../../docs_src/request_files/tutorial002.py hl[10,15] *} + +👆 🔜 📨, 📣, `list` `bytes` ⚖️ `UploadFile`Ⓜ. + +/// note | 📡 ℹ + +👆 💪 ⚙️ `from starlette.responses import HTMLResponse`. + +**FastAPI** 🚚 🎏 `starlette.responses` `fastapi.responses` 🏪 👆, 👩‍💻. ✋️ 🌅 💪 📨 👟 🔗 ⚪️➡️ 💃. + +/// + +### 💗 📁 📂 ⏮️ 🌖 🗃 + +& 🎏 🌌 ⏭, 👆 💪 ⚙️ `File()` ⚒ 🌖 🔢, `UploadFile`: + +{* ../../docs_src/request_files/tutorial003.py hl[18] *} + +## 🌃 + +⚙️ `File`, `bytes`, & `UploadFile` 📣 📁 📂 📨, 📨 📨 💽. diff --git a/docs/em/docs/tutorial/request-forms-and-files.md b/docs/em/docs/tutorial/request-forms-and-files.md new file mode 100644 index 0000000..680b1a9 --- /dev/null +++ b/docs/em/docs/tutorial/request-forms-and-files.md @@ -0,0 +1,37 @@ +# 📨 📨 & 📁 + +👆 💪 🔬 📁 & 📨 🏑 🎏 🕰 ⚙️ `File` & `Form`. + +/// info + +📨 📂 📁 & /⚖️ 📨 📊, 🥇 ❎ `python-multipart`. + +🤶 Ⓜ. `pip install python-multipart`. + +/// + +## 🗄 `File` & `Form` + +{* ../../docs_src/request_forms_and_files/tutorial001.py hl[1] *} + +## 🔬 `File` & `Form` 🔢 + +✍ 📁 & 📨 🔢 🎏 🌌 👆 🔜 `Body` ⚖️ `Query`: + +{* ../../docs_src/request_forms_and_files/tutorial001.py hl[8] *} + +📁 & 📨 🏑 🔜 📂 📨 📊 & 👆 🔜 📨 📁 & 📨 🏑. + +& 👆 💪 📣 📁 `bytes` & `UploadFile`. + +/// warning + +👆 💪 📣 💗 `File` & `Form` 🔢 *➡ 🛠️*, ✋️ 👆 💪 🚫 📣 `Body` 🏑 👈 👆 ⌛ 📨 🎻, 📨 🔜 ✔️ 💪 🗜 ⚙️ `multipart/form-data` ↩️ `application/json`. + +👉 🚫 🚫 **FastAPI**, ⚫️ 🍕 🇺🇸🔍 🛠️. + +/// + +## 🌃 + +⚙️ `File` & `Form` 👯‍♂️ 🕐❔ 👆 💪 📨 💽 & 📁 🎏 📨. diff --git a/docs/em/docs/tutorial/request-forms.md b/docs/em/docs/tutorial/request-forms.md new file mode 100644 index 0000000..1cc1ea5 --- /dev/null +++ b/docs/em/docs/tutorial/request-forms.md @@ -0,0 +1,69 @@ +# 📨 💽 + +🕐❔ 👆 💪 📨 📨 🏑 ↩️ 🎻, 👆 💪 ⚙️ `Form`. + +/// info + +⚙️ 📨, 🥇 ❎ `python-multipart`. + +🤶 Ⓜ. `pip install python-multipart`. + +/// + +## 🗄 `Form` + +🗄 `Form` ⚪️➡️ `fastapi`: + +{* ../../docs_src/request_forms/tutorial001.py hl[1] *} + +## 🔬 `Form` 🔢 + +✍ 📨 🔢 🎏 🌌 👆 🔜 `Body` ⚖️ `Query`: + +{* ../../docs_src/request_forms/tutorial001.py hl[7] *} + +🖼, 1️⃣ 🌌 Oauth2️⃣ 🔧 💪 ⚙️ (🤙 "🔐 💧") ⚫️ ✔ 📨 `username` & `password` 📨 🏑. + +🔌 🚚 🏑 ⚫️❔ 📛 `username` & `password`, & 📨 📨 🏑, 🚫 🎻. + +⏮️ `Form` 👆 💪 📣 🎏 📳 ⏮️ `Body` (& `Query`, `Path`, `Cookie`), 🔌 🔬, 🖼, 📛 (✅ `user-name` ↩️ `username`), ♒️. + +/// info + +`Form` 🎓 👈 😖 🔗 ⚪️➡️ `Body`. + +/// + +/// tip + +📣 📨 💪, 👆 💪 ⚙️ `Form` 🎯, ↩️ 🍵 ⚫️ 🔢 🔜 🔬 🔢 🔢 ⚖️ 💪 (🎻) 🔢. + +/// + +## 🔃 "📨 🏑" + +🌌 🕸 📨 (`
`) 📨 💽 💽 🛎 ⚙️ "🎁" 🔢 👈 📊, ⚫️ 🎏 ⚪️➡️ 🎻. + +**FastAPI** 🔜 ⚒ 💭 ✍ 👈 📊 ⚪️➡️ ▶️️ 🥉 ↩️ 🎻. + +/// note | 📡 ℹ + +📊 ⚪️➡️ 📨 🛎 🗜 ⚙️ "📻 🆎" `application/x-www-form-urlencoded`. + +✋️ 🕐❔ 📨 🔌 📁, ⚫️ 🗜 `multipart/form-data`. 👆 🔜 ✍ 🔃 🚚 📁 ⏭ 📃. + +🚥 👆 💚 ✍ 🌖 🔃 👉 🔢 & 📨 🏑, 👳 🏇 🕸 🩺 POST. + +/// + +/// warning + +👆 💪 📣 💗 `Form` 🔢 *➡ 🛠️*, ✋️ 👆 💪 🚫 📣 `Body` 🏑 👈 👆 ⌛ 📨 🎻, 📨 🔜 ✔️ 💪 🗜 ⚙️ `application/x-www-form-urlencoded` ↩️ `application/json`. + +👉 🚫 🚫 **FastAPI**, ⚫️ 🍕 🇺🇸🔍 🛠️. + +/// + +## 🌃 + +⚙️ `Form` 📣 📨 💽 🔢 🔢. diff --git a/docs/em/docs/tutorial/response-model.md b/docs/em/docs/tutorial/response-model.md new file mode 100644 index 0000000..4773764 --- /dev/null +++ b/docs/em/docs/tutorial/response-model.md @@ -0,0 +1,340 @@ +# 📨 🏷 - 📨 🆎 + +👆 💪 📣 🆎 ⚙️ 📨 ✍ *➡ 🛠️ 🔢* **📨 🆎**. + +👆 💪 ⚙️ **🆎 ✍** 🎏 🌌 👆 🔜 🔢 💽 🔢 **🔢**, 👆 💪 ⚙️ Pydantic 🏷, 📇, 📖, 📊 💲 💖 🔢, 🎻, ♒️. + +{* ../../docs_src/response_model/tutorial001_01.py hl[18,23] *} + +FastAPI 🔜 ⚙️ 👉 📨 🆎: + +* **✔** 📨 💽. + * 🚥 💽 ❌ (✅ 👆 ❌ 🏑), ⚫️ ⛓ 👈 *👆* 📱 📟 💔, 🚫 🛬 ⚫️❔ ⚫️ 🔜, & ⚫️ 🔜 📨 💽 ❌ ↩️ 🛬 ❌ 💽. 👉 🌌 👆 & 👆 👩‍💻 💪 🎯 👈 👫 🔜 📨 💽 & 💽 💠 📈. +* 🚮 **🎻 🔗** 📨, 🗄 *➡ 🛠️*. + * 👉 🔜 ⚙️ **🏧 🩺**. + * ⚫️ 🔜 ⚙️ 🏧 👩‍💻 📟 ⚡ 🧰. + +✋️ 🏆 🥈: + +* ⚫️ 🔜 **📉 & ⛽** 🔢 📊 ⚫️❔ 🔬 📨 🆎. + * 👉 ✴️ ⚠ **💂‍♂**, 👥 🔜 👀 🌅 👈 🔛. + +## `response_model` 🔢 + +📤 💼 🌐❔ 👆 💪 ⚖️ 💚 📨 💽 👈 🚫 ⚫️❔ ⚫️❔ 🆎 📣. + +🖼, 👆 💪 💚 **📨 📖** ⚖️ 💽 🎚, ✋️ **📣 ⚫️ Pydantic 🏷**. 👉 🌌 Pydantic 🏷 🔜 🌐 💽 🧾, 🔬, ♒️. 🎚 👈 👆 📨 (✅ 📖 ⚖️ 💽 🎚). + +🚥 👆 🚮 📨 🆎 ✍, 🧰 & 👨‍🎨 🔜 😭 ⏮️ (☑) ❌ 💬 👆 👈 👆 🔢 🛬 🆎 (✅#️⃣) 👈 🎏 ⚪️➡️ ⚫️❔ 👆 📣 (✅ Pydantic 🏷). + +📚 💼, 👆 💪 ⚙️ *➡ 🛠️ 👨‍🎨* 🔢 `response_model` ↩️ 📨 🆎. + +👆 💪 ⚙️ `response_model` 🔢 🙆 *➡ 🛠️*: + +* `@app.get()` +* `@app.post()` +* `@app.put()` +* `@app.delete()` +* ♒️. + +{* ../../docs_src/response_model/tutorial001.py hl[17,22,24:27] *} + +/// note + +👀 👈 `response_model` 🔢 "👨‍🎨" 👩‍🔬 (`get`, `post`, ♒️). 🚫 👆 *➡ 🛠️ 🔢*, 💖 🌐 🔢 & 💪. + +/// + +`response_model` 📨 🎏 🆎 👆 🔜 📣 Pydantic 🏷 🏑,, ⚫️ 💪 Pydantic 🏷, ✋️ ⚫️ 💪, ✅ `list` Pydantic 🏷, 💖 `List[Item]`. + +FastAPI 🔜 ⚙️ 👉 `response_model` 🌐 💽 🧾, 🔬, ♒️. & **🗜 & ⛽ 🔢 📊** 🚮 🆎 📄. + +/// tip + +🚥 👆 ✔️ ⚠ 🆎 ✅ 👆 👨‍🎨, ✍, ♒️, 👆 💪 📣 🔢 📨 🆎 `Any`. + +👈 🌌 👆 💬 👨‍🎨 👈 👆 😫 🛬 🕳. ✋️ FastAPI 🔜 💽 🧾, 🔬, 🖥, ♒️. ⏮️ `response_model`. + +/// + +### `response_model` 📫 + +🚥 👆 📣 👯‍♂️ 📨 🆎 & `response_model`, `response_model` 🔜 ✊ 📫 & ⚙️ FastAPI. + +👉 🌌 👆 💪 🚮 ☑ 🆎 ✍ 👆 🔢 🕐❔ 👆 🛬 🆎 🎏 🌘 📨 🏷, ⚙️ 👨‍🎨 & 🧰 💖 ✍. & 👆 💪 ✔️ FastAPI 💽 🔬, 🧾, ♒️. ⚙️ `response_model`. + +👆 💪 ⚙️ `response_model=None` ❎ 🏗 📨 🏷 👈 *➡ 🛠️*, 👆 5️⃣📆 💪 ⚫️ 🚥 👆 ❎ 🆎 ✍ 👜 👈 🚫 ☑ Pydantic 🏑, 👆 🔜 👀 🖼 👈 1️⃣ 📄 🔛. + +## 📨 🎏 🔢 💽 + +📥 👥 📣 `UserIn` 🏷, ⚫️ 🔜 🔌 🔢 🔐: + +{* ../../docs_src/response_model/tutorial002.py hl[9,11] *} + +/// info + +⚙️ `EmailStr`, 🥇 ❎ `email-validator`. + +🤶 Ⓜ. `pip install email-validator` +⚖️ `pip install pydantic[email]`. + +/// + +& 👥 ⚙️ 👉 🏷 📣 👆 🔢 & 🎏 🏷 📣 👆 🔢: + +{* ../../docs_src/response_model/tutorial002.py hl[18] *} + +🔜, 🕐❔ 🖥 🏗 👩‍💻 ⏮️ 🔐, 🛠️ 🔜 📨 🎏 🔐 📨. + +👉 💼, ⚫️ 💪 🚫 ⚠, ↩️ ⚫️ 🎏 👩‍💻 📨 🔐. + +✋️ 🚥 👥 ⚙️ 🎏 🏷 ➕1️⃣ *➡ 🛠️*, 👥 💪 📨 👆 👩‍💻 🔐 🔠 👩‍💻. + +/// danger + +🙅 🏪 ✅ 🔐 👩‍💻 ⚖️ 📨 ⚫️ 📨 💖 👉, 🚥 👆 💭 🌐 ⚠ & 👆 💭 ⚫️❔ 👆 🔨. + +/// + +## 🚮 🔢 🏷 + +👥 💪 ↩️ ✍ 🔢 🏷 ⏮️ 🔢 🔐 & 🔢 🏷 🍵 ⚫️: + +{* ../../docs_src/response_model/tutorial003.py hl[9,11,16] *} + +📥, ✋️ 👆 *➡ 🛠️ 🔢* 🛬 🎏 🔢 👩‍💻 👈 🔌 🔐: + +{* ../../docs_src/response_model/tutorial003.py hl[24] *} + +...👥 📣 `response_model` 👆 🏷 `UserOut`, 👈 🚫 🔌 🔐: + +{* ../../docs_src/response_model/tutorial003.py hl[22] *} + +, **FastAPI** 🔜 ✊ 💅 🖥 👅 🌐 💽 👈 🚫 📣 🔢 🏷 (⚙️ Pydantic). + +### `response_model` ⚖️ 📨 🆎 + +👉 💼, ↩️ 2️⃣ 🏷 🎏, 🚥 👥 ✍ 🔢 📨 🆎 `UserOut`, 👨‍🎨 & 🧰 🔜 😭 👈 👥 🛬 ❌ 🆎, 📚 🎏 🎓. + +👈 ⚫️❔ 👉 🖼 👥 ✔️ 📣 ⚫️ `response_model` 🔢. + +...✋️ 😣 👂 🔛 👀 ❔ ❎ 👈. + +## 📨 🆎 & 💽 🖥 + +➡️ 😣 ⚪️➡️ ⏮️ 🖼. 👥 💚 **✍ 🔢 ⏮️ 1️⃣ 🆎** ✋️ 📨 🕳 👈 🔌 **🌅 💽**. + +👥 💚 FastAPI 🚧 **🖥** 📊 ⚙️ 📨 🏷. + +⏮️ 🖼, ↩️ 🎓 🎏, 👥 ✔️ ⚙️ `response_model` 🔢. ✋️ 👈 ⛓ 👈 👥 🚫 🤚 🐕‍🦺 ⚪️➡️ 👨‍🎨 & 🧰 ✅ 🔢 📨 🆎. + +✋️ 🌅 💼 🌐❔ 👥 💪 🕳 💖 👉, 👥 💚 🏷 **⛽/❎** 📊 👉 🖼. + +& 👈 💼, 👥 💪 ⚙️ 🎓 & 🧬 ✊ 📈 🔢 **🆎 ✍** 🤚 👍 🐕‍🦺 👨‍🎨 & 🧰, & 🤚 FastAPI **💽 🖥**. + +{* ../../docs_src/response_model/tutorial003_01.py hl[9:13,15:16,20] *} + +⏮️ 👉, 👥 🤚 🏭 🐕‍🦺, ⚪️➡️ 👨‍🎨 & ✍ 👉 📟 ☑ ⚖ 🆎, ✋️ 👥 🤚 💽 🖥 ⚪️➡️ FastAPI. + +❔ 🔨 👉 👷 ❓ ➡️ ✅ 👈 👅. 👶 + +### 🆎 ✍ & 🏭 + +🥇 ➡️ 👀 ❔ 👨‍🎨, ✍ & 🎏 🧰 🔜 👀 👉. + +`BaseUser` ✔️ 🧢 🏑. ⤴️ `UserIn` 😖 ⚪️➡️ `BaseUser` & 🚮 `password` 🏑,, ⚫️ 🔜 🔌 🌐 🏑 ⚪️➡️ 👯‍♂️ 🏷. + +👥 ✍ 🔢 📨 🆎 `BaseUser`, ✋️ 👥 🤙 🛬 `UserIn` 👐. + +👨‍🎨, ✍, & 🎏 🧰 🏆 🚫 😭 🔃 👉 ↩️, ⌨ ⚖, `UserIn` 🏿 `BaseUser`, ❔ ⛓ ⚫️ *☑* 🆎 🕐❔ ⚫️❔ ⌛ 🕳 👈 `BaseUser`. + +### FastAPI 💽 🖥 + +🔜, FastAPI, ⚫️ 🔜 👀 📨 🆎 & ⚒ 💭 👈 ⚫️❔ 👆 📨 🔌 **🕴** 🏑 👈 📣 🆎. + +FastAPI 🔨 📚 👜 🔘 ⏮️ Pydantic ⚒ 💭 👈 📚 🎏 🚫 🎓 🧬 🚫 ⚙️ 📨 💽 🖥, ⏪ 👆 💪 🔚 🆙 🛬 🌅 🌅 💽 🌘 ⚫️❔ 👆 📈. + +👉 🌌, 👆 💪 🤚 🏆 👯‍♂️ 🌏: 🆎 ✍ ⏮️ **🏭 🐕‍🦺** & **💽 🖥**. + +## 👀 ⚫️ 🩺 + +🕐❔ 👆 👀 🏧 🩺, 👆 💪 ✅ 👈 🔢 🏷 & 🔢 🏷 🔜 👯‍♂️ ✔️ 👫 👍 🎻 🔗: + + + +& 👯‍♂️ 🏷 🔜 ⚙️ 🎓 🛠️ 🧾: + + + +## 🎏 📨 🆎 ✍ + +📤 5️⃣📆 💼 🌐❔ 👆 📨 🕳 👈 🚫 ☑ Pydantic 🏑 & 👆 ✍ ⚫️ 🔢, 🕴 🤚 🐕‍🦺 🚚 🏭 (👨‍🎨, ✍, ♒️). + +### 📨 📨 🔗 + +🏆 ⚠ 💼 🔜 [🛬 📨 🔗 🔬 ⏪ 🏧 🩺](../advanced/response-directly.md){.internal-link target=_blank}. + +{* ../../docs_src/response_model/tutorial003_02.py hl[8,10:11] *} + +👉 🙅 💼 🍵 🔁 FastAPI ↩️ 📨 🆎 ✍ 🎓 (⚖️ 🏿) `Response`. + +& 🧰 🔜 😄 ↩️ 👯‍♂️ `RedirectResponse` & `JSONResponse` 🏿 `Response`, 🆎 ✍ ☑. + +### ✍ 📨 🏿 + +👆 💪 ⚙️ 🏿 `Response` 🆎 ✍: + +{* ../../docs_src/response_model/tutorial003_03.py hl[8:9] *} + +👉 🔜 👷 ↩️ `RedirectResponse` 🏿 `Response`, & FastAPI 🔜 🔁 🍵 👉 🙅 💼. + +### ❌ 📨 🆎 ✍ + +✋️ 🕐❔ 👆 📨 🎏 ❌ 🎚 👈 🚫 ☑ Pydantic 🆎 (✅ 💽 🎚) & 👆 ✍ ⚫️ 💖 👈 🔢, FastAPI 🔜 🔄 ✍ Pydantic 📨 🏷 ⚪️➡️ 👈 🆎 ✍, & 🔜 ❌. + +🎏 🔜 🔨 🚥 👆 ✔️ 🕳 💖 🇪🇺 🖖 🎏 🆎 🌐❔ 1️⃣ ⚖️ 🌅 👫 🚫 ☑ Pydantic 🆎, 🖼 👉 🔜 ❌ 👶: + +{* ../../docs_src/response_model/tutorial003_04.py hl[10] *} + +...👉 ❌ ↩️ 🆎 ✍ 🚫 Pydantic 🆎 & 🚫 👁 `Response` 🎓 ⚖️ 🏿, ⚫️ 🇪🇺 (🙆 2️⃣) 🖖 `Response` & `dict`. + +### ❎ 📨 🏷 + +▶️ ⚪️➡️ 🖼 🔛, 👆 5️⃣📆 🚫 💚 ✔️ 🔢 💽 🔬, 🧾, 🖥, ♒️. 👈 🎭 FastAPI. + +✋️ 👆 💪 💚 🚧 📨 🆎 ✍ 🔢 🤚 🐕‍🦺 ⚪️➡️ 🧰 💖 👨‍🎨 & 🆎 ☑ (✅ ✍). + +👉 💼, 👆 💪 ❎ 📨 🏷 ⚡ ⚒ `response_model=None`: + +{* ../../docs_src/response_model/tutorial003_05.py hl[9] *} + +👉 🔜 ⚒ FastAPI 🚶 📨 🏷 ⚡ & 👈 🌌 👆 💪 ✔️ 🙆 📨 🆎 ✍ 👆 💪 🍵 ⚫️ 🤕 👆 FastAPI 🈸. 👶 + +## 📨 🏷 🔢 🔢 + +👆 📨 🏷 💪 ✔️ 🔢 💲, 💖: + +{* ../../docs_src/response_model/tutorial004.py hl[11,13:14] *} + +* `description: Union[str, None] = None` (⚖️ `str | None = None` 🐍 3️⃣.1️⃣0️⃣) ✔️ 🔢 `None`. +* `tax: float = 10.5` ✔️ 🔢 `10.5`. +* `tags: List[str] = []` 🔢 🛁 📇: `[]`. + +✋️ 👆 💪 💚 🚫 👫 ⚪️➡️ 🏁 🚥 👫 🚫 🤙 🏪. + +🖼, 🚥 👆 ✔️ 🏷 ⏮️ 📚 📦 🔢 ☁ 💽, ✋️ 👆 🚫 💚 📨 📶 📏 🎻 📨 🌕 🔢 💲. + +### ⚙️ `response_model_exclude_unset` 🔢 + +👆 💪 ⚒ *➡ 🛠️ 👨‍🎨* 🔢 `response_model_exclude_unset=True`: + +{* ../../docs_src/response_model/tutorial004.py hl[24] *} + +& 👈 🔢 💲 🏆 🚫 🔌 📨, 🕴 💲 🤙 ⚒. + +, 🚥 👆 📨 📨 👈 *➡ 🛠️* 🏬 ⏮️ 🆔 `foo`, 📨 (🚫 ✅ 🔢 💲) 🔜: + +```JSON +{ + "name": "Foo", + "price": 50.2 +} +``` + +/// info + +FastAPI ⚙️ Pydantic 🏷 `.dict()` ⏮️ 🚮 `exclude_unset` 🔢 🏆 👉. + +/// + +/// info + +👆 💪 ⚙️: + +* `response_model_exclude_defaults=True` +* `response_model_exclude_none=True` + +🔬 Pydantic 🩺 `exclude_defaults` & `exclude_none`. + +/// + +#### 📊 ⏮️ 💲 🏑 ⏮️ 🔢 + +✋️ 🚥 👆 📊 ✔️ 💲 🏷 🏑 ⏮️ 🔢 💲, 💖 🏬 ⏮️ 🆔 `bar`: + +```Python hl_lines="3 5" +{ + "name": "Bar", + "description": "The bartenders", + "price": 62, + "tax": 20.2 +} +``` + +👫 🔜 🔌 📨. + +#### 📊 ⏮️ 🎏 💲 🔢 + +🚥 📊 ✔️ 🎏 💲 🔢 🕐, 💖 🏬 ⏮️ 🆔 `baz`: + +```Python hl_lines="3 5-6" +{ + "name": "Baz", + "description": None, + "price": 50.2, + "tax": 10.5, + "tags": [] +} +``` + +FastAPI 🙃 🥃 (🤙, Pydantic 🙃 🥃) 🤔 👈, ✋️ `description`, `tax`, & `tags` ✔️ 🎏 💲 🔢, 👫 ⚒ 🎯 (↩️ ✊ ⚪️➡️ 🔢). + +, 👫 🔜 🔌 🎻 📨. + +/// tip + +👀 👈 🔢 💲 💪 🕳, 🚫 🕴 `None`. + +👫 💪 📇 (`[]`), `float` `10.5`, ♒️. + +/// + +### `response_model_include` & `response_model_exclude` + +👆 💪 ⚙️ *➡ 🛠️ 👨‍🎨* 🔢 `response_model_include` & `response_model_exclude`. + +👫 ✊ `set` `str` ⏮️ 📛 🔢 🔌 (❎ 🎂) ⚖️ 🚫 (✅ 🎂). + +👉 💪 ⚙️ ⏩ ⌨ 🚥 👆 ✔️ 🕴 1️⃣ Pydantic 🏷 & 💚 ❎ 💽 ⚪️➡️ 🔢. + +/// tip + +✋️ ⚫️ 👍 ⚙️ 💭 🔛, ⚙️ 💗 🎓, ↩️ 👫 🔢. + +👉 ↩️ 🎻 🔗 🏗 👆 📱 🗄 (& 🩺) 🔜 1️⃣ 🏁 🏷, 🚥 👆 ⚙️ `response_model_include` ⚖️ `response_model_exclude` 🚫 🔢. + +👉 ✔ `response_model_by_alias` 👈 👷 ➡. + +/// + +{* ../../docs_src/response_model/tutorial005.py hl[31,37] *} + +/// tip + +❕ `{"name", "description"}` ✍ `set` ⏮️ 📚 2️⃣ 💲. + +⚫️ 🌓 `set(["name", "description"])`. + +/// + +#### ⚙️ `list`Ⓜ ↩️ `set`Ⓜ + +🚥 👆 💭 ⚙️ `set` & ⚙️ `list` ⚖️ `tuple` ↩️, FastAPI 🔜 🗜 ⚫️ `set` & ⚫️ 🔜 👷 ☑: + +{* ../../docs_src/response_model/tutorial006.py hl[31,37] *} + +## 🌃 + +⚙️ *➡ 🛠️ 👨‍🎨* 🔢 `response_model` 🔬 📨 🏷 & ✴️ 🚚 📢 💽 ⛽ 👅. + +⚙️ `response_model_exclude_unset` 📨 🕴 💲 🎯 ⚒. diff --git a/docs/em/docs/tutorial/response-status-code.md b/docs/em/docs/tutorial/response-status-code.md new file mode 100644 index 0000000..413ceb9 --- /dev/null +++ b/docs/em/docs/tutorial/response-status-code.md @@ -0,0 +1,101 @@ +# 📨 👔 📟 + +🎏 🌌 👆 💪 ✔ 📨 🏷, 👆 💪 📣 🇺🇸🔍 👔 📟 ⚙️ 📨 ⏮️ 🔢 `status_code` 🙆 *➡ 🛠️*: + +* `@app.get()` +* `@app.post()` +* `@app.put()` +* `@app.delete()` +* ♒️. + +{* ../../docs_src/response_status_code/tutorial001.py hl[6] *} + +/// note + +👀 👈 `status_code` 🔢 "👨‍🎨" 👩‍🔬 (`get`, `post`, ♒️). 🚫 👆 *➡ 🛠️ 🔢*, 💖 🌐 🔢 & 💪. + +/// + +`status_code` 🔢 📨 🔢 ⏮️ 🇺🇸🔍 👔 📟. + +/// info + +`status_code` 💪 👐 📨 `IntEnum`, ✅ 🐍 `http.HTTPStatus`. + +/// + +⚫️ 🔜: + +* 📨 👈 👔 📟 📨. +* 📄 ⚫️ ✅ 🗄 🔗 ( & , 👩‍💻 🔢): + + + +/// note + +📨 📟 (👀 ⏭ 📄) 🎦 👈 📨 🔨 🚫 ✔️ 💪. + +FastAPI 💭 👉, & 🔜 🏭 🗄 🩺 👈 🇵🇸 📤 🙅‍♂ 📨 💪. + +/// + +## 🔃 🇺🇸🔍 👔 📟 + +/// note + +🚥 👆 ⏪ 💭 ⚫️❔ 🇺🇸🔍 👔 📟, 🚶 ⏭ 📄. + +/// + +🇺🇸🔍, 👆 📨 🔢 👔 📟 3️⃣ 9️⃣ 🍕 📨. + +👫 👔 📟 ✔️ 📛 🔗 🤔 👫, ✋️ ⚠ 🍕 🔢. + +📏: + +* `100` & 🔛 "ℹ". 👆 🛎 ⚙️ 👫 🔗. 📨 ⏮️ 👫 👔 📟 🚫🔜 ✔️ 💪. +* **`200`** & 🔛 "🏆" 📨. 👫 🕐 👆 🔜 ⚙️ 🏆. + * `200` 🔢 👔 📟, ❔ ⛓ 🌐 "👌". + * ➕1️⃣ 🖼 🔜 `201`, "✍". ⚫️ 🛎 ⚙️ ⏮️ 🏗 🆕 ⏺ 💽. + * 🎁 💼 `204`, "🙅‍♂ 🎚". 👉 📨 ⚙️ 🕐❔ 📤 🙅‍♂ 🎚 📨 👩‍💻, & 📨 🔜 🚫 ✔️ 💪. +* **`300`** & 🔛 "❎". 📨 ⏮️ 👫 👔 📟 5️⃣📆 ⚖️ 5️⃣📆 🚫 ✔️ 💪, 🌖 `304`, "🚫 🔀", ❔ 🔜 🚫 ✔️ 1️⃣. +* **`400`** & 🔛 "👩‍💻 ❌" 📨. 👫 🥈 🆎 👆 🔜 🎲 ⚙️ 🏆. + * 🖼 `404`, "🚫 🔎" 📨. + * 💊 ❌ ⚪️➡️ 👩‍💻, 👆 💪 ⚙️ `400`. +* `500` & 🔛 💽 ❌. 👆 🌖 🙅 ⚙️ 👫 🔗. 🕐❔ 🕳 🚶 ❌ 🍕 👆 🈸 📟, ⚖️ 💽, ⚫️ 🔜 🔁 📨 1️⃣ 👫 👔 📟. + +/// tip + +💭 🌅 🔃 🔠 👔 📟 & ❔ 📟 ⚫️❔, ✅ 🏇 🧾 🔃 🇺🇸🔍 👔 📟. + +/// + +## ⌨ 💭 📛 + +➡️ 👀 ⏮️ 🖼 🔄: + +{* ../../docs_src/response_status_code/tutorial001.py hl[6] *} + +`201` 👔 📟 "✍". + +✋️ 👆 🚫 ✔️ ✍ ⚫️❔ 🔠 👉 📟 ⛓. + +👆 💪 ⚙️ 🏪 🔢 ⚪️➡️ `fastapi.status`. + +{* ../../docs_src/response_status_code/tutorial002.py hl[1,6] *} + +👫 🏪, 👫 🧑‍🤝‍🧑 🎏 🔢, ✋️ 👈 🌌 👆 💪 ⚙️ 👨‍🎨 📋 🔎 👫: + + + +/// note | 📡 ℹ + +👆 💪 ⚙️ `from starlette import status`. + +**FastAPI** 🚚 🎏 `starlette.status` `fastapi.status` 🏪 👆, 👩‍💻. ✋️ ⚫️ 👟 🔗 ⚪️➡️ 💃. + +/// + +## 🔀 🔢 + +⏪, [🏧 👩‍💻 🦮](../advanced/response-change-status-code.md){.internal-link target=_blank}, 👆 🔜 👀 ❔ 📨 🎏 👔 📟 🌘 🔢 👆 📣 📥. diff --git a/docs/em/docs/tutorial/schema-extra-example.md b/docs/em/docs/tutorial/schema-extra-example.md new file mode 100644 index 0000000..1bd314c --- /dev/null +++ b/docs/em/docs/tutorial/schema-extra-example.md @@ -0,0 +1,110 @@ +# 📣 📨 🖼 💽 + +👆 💪 📣 🖼 💽 👆 📱 💪 📨. + +📥 📚 🌌 ⚫️. + +## Pydantic `schema_extra` + +👆 💪 📣 `example` Pydantic 🏷 ⚙️ `Config` & `schema_extra`, 🔬 Pydantic 🩺: 🔗 🛃: + +{* ../../docs_src/schema_extra_example/tutorial001.py hl[15:23] *} + +👈 ➕ ℹ 🔜 🚮-🔢 **🎻 🔗** 👈 🏷, & ⚫️ 🔜 ⚙️ 🛠️ 🩺. + +/// tip + +👆 💪 ⚙️ 🎏 ⚒ ↔ 🎻 🔗 & 🚮 👆 👍 🛃 ➕ ℹ. + +🖼 👆 💪 ⚙️ ⚫️ 🚮 🗃 🕸 👩‍💻 🔢, ♒️. + +/// + +## `Field` 🌖 ❌ + +🕐❔ ⚙️ `Field()` ⏮️ Pydantic 🏷, 👆 💪 📣 ➕ ℹ **🎻 🔗** 🚶‍♀️ 🙆 🎏 ❌ ❌ 🔢. + +👆 💪 ⚙️ 👉 🚮 `example` 🔠 🏑: + +{* ../../docs_src/schema_extra_example/tutorial002.py hl[4,10:13] *} + +/// warning + +🚧 🤯 👈 📚 ➕ ❌ 🚶‍♀️ 🏆 🚫 🚮 🙆 🔬, 🕴 ➕ ℹ, 🧾 🎯. + +/// + +## `example` & `examples` 🗄 + +🕐❔ ⚙️ 🙆: + +* `Path()` +* `Query()` +* `Header()` +* `Cookie()` +* `Body()` +* `Form()` +* `File()` + +👆 💪 📣 💽 `example` ⚖️ 👪 `examples` ⏮️ 🌖 ℹ 👈 🔜 🚮 **🗄**. + +### `Body` ⏮️ `example` + +📥 👥 🚶‍♀️ `example` 📊 ⌛ `Body()`: + +{* ../../docs_src/schema_extra_example/tutorial003.py hl[20:25] *} + +### 🖼 🩺 🎚 + +⏮️ 🙆 👩‍🔬 🔛 ⚫️ 🔜 👀 💖 👉 `/docs`: + + + +### `Body` ⏮️ 💗 `examples` + +👐 👁 `example`, 👆 💪 🚶‍♀️ `examples` ⚙️ `dict` ⏮️ **💗 🖼**, 🔠 ⏮️ ➕ ℹ 👈 🔜 🚮 **🗄** 💁‍♂️. + +🔑 `dict` 🔬 🔠 🖼, & 🔠 💲 ➕1️⃣ `dict`. + +🔠 🎯 🖼 `dict` `examples` 💪 🔌: + +* `summary`: 📏 📛 🖼. +* `description`: 📏 📛 👈 💪 🔌 ✍ ✍. +* `value`: 👉 ☑ 🖼 🎦, ✅ `dict`. +* `externalValue`: 🎛 `value`, 📛 ☝ 🖼. 👐 👉 5️⃣📆 🚫 🐕‍🦺 📚 🧰 `value`. + +{* ../../docs_src/schema_extra_example/tutorial004.py hl[21:47] *} + +### 🖼 🩺 🎚 + +⏮️ `examples` 🚮 `Body()` `/docs` 🔜 👀 💖: + + + +## 📡 ℹ + +/// warning + +👉 📶 📡 ℹ 🔃 🐩 **🎻 🔗** & **🗄**. + +🚥 💭 🔛 ⏪ 👷 👆, 👈 💪 🥃, & 👆 🎲 🚫 💪 👉 ℹ, 💭 🆓 🚶 👫. + +/// + +🕐❔ 👆 🚮 🖼 🔘 Pydantic 🏷, ⚙️ `schema_extra` ⚖️ `Field(example="something")` 👈 🖼 🚮 **🎻 🔗** 👈 Pydantic 🏷. + +& 👈 **🎻 🔗** Pydantic 🏷 🔌 **🗄** 👆 🛠️, & ⤴️ ⚫️ ⚙️ 🩺 🎚. + +**🎻 🔗** 🚫 🤙 ✔️ 🏑 `example` 🐩. ⏮️ ⏬ 🎻 🔗 🔬 🏑 `examples`, ✋️ 🗄 3️⃣.0️⃣.3️⃣ ⚓️ 🔛 🗝 ⏬ 🎻 🔗 👈 🚫 ✔️ `examples`. + +, 🗄 3️⃣.0️⃣.3️⃣ 🔬 🚮 👍 `example` 🔀 ⏬ **🎻 🔗** ⚫️ ⚙️, 🎏 🎯 (✋️ ⚫️ 👁 `example`, 🚫 `examples`), & 👈 ⚫️❔ ⚙️ 🛠️ 🩺 🎚 (⚙️ 🦁 🎚). + +, 👐 `example` 🚫 🍕 🎻 🔗, ⚫️ 🍕 🗄 🛃 ⏬ 🎻 🔗, & 👈 ⚫️❔ 🔜 ⚙️ 🩺 🎚. + +✋️ 🕐❔ 👆 ⚙️ `example` ⚖️ `examples` ⏮️ 🙆 🎏 🚙 (`Query()`, `Body()`, ♒️.) 📚 🖼 🚫 🚮 🎻 🔗 👈 🔬 👈 💽 (🚫 🗄 👍 ⏬ 🎻 🔗), 👫 🚮 🔗 *➡ 🛠️* 📄 🗄 (🏞 🍕 🗄 👈 ⚙️ 🎻 🔗). + +`Path()`, `Query()`, `Header()`, & `Cookie()`, `example` ⚖️ `examples` 🚮 🗄 🔑, `Parameter Object` (🔧). + +& `Body()`, `File()`, & `Form()`, `example` ⚖️ `examples` 📊 🚮 🗄 🔑, `Request Body Object`, 🏑 `content`, 🔛 `Media Type Object` (🔧). + +🔛 🎏 ✋, 📤 🆕 ⏬ 🗄: **3️⃣.1️⃣.0️⃣**, ⏳ 🚀. ⚫️ ⚓️ 🔛 ⏪ 🎻 🔗 & 🏆 🛠️ ⚪️➡️ 🗄 🛃 ⏬ 🎻 🔗 ❎, 💱 ⚒ ⚪️➡️ ⏮️ ⏬ 🎻 🔗, 🌐 👫 🤪 🔺 📉. 👐, 🦁 🎚 ⏳ 🚫 🐕‍🦺 🗄 3️⃣.1️⃣.0️⃣,, 🔜, ⚫️ 👍 😣 ⚙️ 💭 🔛. diff --git a/docs/em/docs/tutorial/security/first-steps.md b/docs/em/docs/tutorial/security/first-steps.md new file mode 100644 index 0000000..8fb459a --- /dev/null +++ b/docs/em/docs/tutorial/security/first-steps.md @@ -0,0 +1,197 @@ +# 💂‍♂ - 🥇 🔁 + +➡️ 🌈 👈 👆 ✔️ 👆 **👩‍💻** 🛠️ 🆔. + +& 👆 ✔️ **🕸** ➕1️⃣ 🆔 ⚖️ 🎏 ➡ 🎏 🆔 (⚖️ 📱 🈸). + +& 👆 💚 ✔️ 🌌 🕸 🔓 ⏮️ 👩‍💻, ⚙️ **🆔** & **🔐**. + +👥 💪 ⚙️ **Oauth2️⃣** 🏗 👈 ⏮️ **FastAPI**. + +✋️ ➡️ 🖊 👆 🕰 👂 🌕 📏 🔧 🔎 👈 🐥 🍖 ℹ 👆 💪. + +➡️ ⚙️ 🧰 🚚 **FastAPI** 🍵 💂‍♂. + +## ❔ ⚫️ 👀 + +➡️ 🥇 ⚙️ 📟 & 👀 ❔ ⚫️ 👷, & ⤴️ 👥 🔜 👟 🔙 🤔 ⚫️❔ 😥. + +## ✍ `main.py` + +📁 🖼 📁 `main.py`: + +{* ../../docs_src/security/tutorial001.py *} + +## 🏃 ⚫️ + +/// info + +🥇 ❎ `python-multipart`. + +🤶 Ⓜ. `pip install python-multipart`. + +👉 ↩️ **Oauth2️⃣** ⚙️ "📨 📊" 📨 `username` & `password`. + +/// + +🏃 🖼 ⏮️: + +
+ +```console +$ uvicorn main:app --reload + +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +``` + +
+ +## ✅ ⚫️ + +🚶 🎓 🩺: http://127.0.0.1:8000/docs. + +👆 🔜 👀 🕳 💖 👉: + + + +/// check | ✔ 🔼 ❗ + +👆 ⏪ ✔️ ✨ 🆕 "✔" 🔼. + + & 👆 *➡ 🛠️* ✔️ 🐥 🔒 🔝-▶️️ ↩ 👈 👆 💪 🖊. + +/// + +& 🚥 👆 🖊 ⚫️, 👆 ✔️ 🐥 ✔ 📨 🆎 `username` & `password` (& 🎏 📦 🏑): + + + +/// note + +⚫️ 🚫 🤔 ⚫️❔ 👆 🆎 📨, ⚫️ 🏆 🚫 👷. ✋️ 👥 🔜 🤚 📤. + +/// + +👉 ↗️ 🚫 🕸 🏁 👩‍💻, ✋️ ⚫️ 👑 🏧 🧰 📄 🖥 🌐 👆 🛠️. + +⚫️ 💪 ⚙️ 🕸 🏉 (👈 💪 👆). + +⚫️ 💪 ⚙️ 🥉 🥳 🈸 & ⚙️. + +& ⚫️ 💪 ⚙️ 👆, ℹ, ✅ & 💯 🎏 🈸. + +## `password` 💧 + +🔜 ➡️ 🚶 🔙 👄 & 🤔 ⚫️❔ 🌐 👈. + +`password` "💧" 1️⃣ 🌌 ("💧") 🔬 Oauth2️⃣, 🍵 💂‍♂ & 🤝. + +Oauth2️⃣ 🔧 👈 👩‍💻 ⚖️ 🛠️ 💪 🔬 💽 👈 🔓 👩‍💻. + +✋️ 👉 💼, 🎏 **FastAPI** 🈸 🔜 🍵 🛠️ & 🤝. + +, ➡️ 📄 ⚫️ ⚪️➡️ 👈 📉 ☝ 🎑: + +* 👩‍💻 🆎 `username` & `password` 🕸, & 🎯 `Enter`. +* 🕸 (🏃‍♂ 👩‍💻 🖥) 📨 👈 `username` & `password` 🎯 📛 👆 🛠️ (📣 ⏮️ `tokenUrl="token"`). +* 🛠️ ✅ 👈 `username` & `password`, & 📨 ⏮️ "🤝" (👥 🚫 🛠️ 🙆 👉). + * "🤝" 🎻 ⏮️ 🎚 👈 👥 💪 ⚙️ ⏪ ✔ 👉 👩‍💻. + * 🛎, 🤝 ⚒ 🕛 ⏮️ 🕰. + * , 👩‍💻 🔜 ✔️ 🕹 🔄 ☝ ⏪. + * & 🚥 🤝 📎, ⚠ 🌘. ⚫️ 🚫 💖 🧲 🔑 👈 🔜 👷 ♾ (🏆 💼). +* 🕸 🏪 👈 🤝 🍕 👱. +* 👩‍💻 🖊 🕸 🚶 ➕1️⃣ 📄 🕸 🕸 📱. +* 🕸 💪 ☕ 🌅 💽 ⚪️➡️ 🛠️. + * ✋️ ⚫️ 💪 🤝 👈 🎯 🔗. + * , 🔓 ⏮️ 👆 🛠️, ⚫️ 📨 🎚 `Authorization` ⏮️ 💲 `Bearer ` ➕ 🤝. + * 🚥 🤝 🔌 `foobar`, 🎚 `Authorization` 🎚 🔜: `Bearer foobar`. + +## **FastAPI**'Ⓜ `OAuth2PasswordBearer` + +**FastAPI** 🚚 📚 🧰, 🎏 🎚 ⚛, 🛠️ 👫 💂‍♂ ⚒. + +👉 🖼 👥 🔜 ⚙️ **Oauth2️⃣**, ⏮️ **🔐** 💧, ⚙️ **📨** 🤝. 👥 👈 ⚙️ `OAuth2PasswordBearer` 🎓. + +/// info + +"📨" 🤝 🚫 🕴 🎛. + +✋️ ⚫️ 🏆 1️⃣ 👆 ⚙️ 💼. + + & ⚫️ 💪 🏆 🏆 ⚙️ 💼, 🚥 👆 Oauth2️⃣ 🕴 & 💭 ⚫️❔ ⚫️❔ 📤 ➕1️⃣ 🎛 👈 ♣ 👻 👆 💪. + +👈 💼, **FastAPI** 🚚 👆 ⏮️ 🧰 🏗 ⚫️. + +/// + +🕐❔ 👥 ✍ 👐 `OAuth2PasswordBearer` 🎓 👥 🚶‍♀️ `tokenUrl` 🔢. 👉 🔢 🔌 📛 👈 👩‍💻 (🕸 🏃 👩‍💻 🖥) 🔜 ⚙️ 📨 `username` & `password` ✔ 🤚 🤝. + +{* ../../docs_src/security/tutorial001.py hl[6] *} + +/// tip + +📥 `tokenUrl="token"` 🔗 ⚖ 📛 `token` 👈 👥 🚫 ✍. ⚫️ ⚖ 📛, ⚫️ 🌓 `./token`. + +↩️ 👥 ⚙️ ⚖ 📛, 🚥 👆 🛠️ 🔎 `https://example.com/`, ⤴️ ⚫️ 🔜 🔗 `https://example.com/token`. ✋️ 🚥 👆 🛠️ 🔎 `https://example.com/api/v1/`, ⤴️ ⚫️ 🔜 🔗 `https://example.com/api/v1/token`. + +⚙️ ⚖ 📛 ⚠ ⚒ 💭 👆 🈸 🚧 👷 🏧 ⚙️ 💼 💖 [⛅ 🗳](../../advanced/behind-a-proxy.md){.internal-link target=_blank}. + +/// + +👉 🔢 🚫 ✍ 👈 🔗 / *➡ 🛠️*, ✋️ 📣 👈 📛 `/token` 🔜 1️⃣ 👈 👩‍💻 🔜 ⚙️ 🤚 🤝. 👈 ℹ ⚙️ 🗄, & ⤴️ 🎓 🛠️ 🧾 ⚙️. + +👥 🔜 🔜 ✍ ☑ ➡ 🛠️. + +/// info + +🚥 👆 📶 ⚠ "✍" 👆 💪 👎 👗 🔢 📛 `tokenUrl` ↩️ `token_url`. + +👈 ↩️ ⚫️ ⚙️ 🎏 📛 🗄 🔌. 👈 🚥 👆 💪 🔬 🌅 🔃 🙆 👫 💂‍♂ ⚖ 👆 💪 📁 & 📋 ⚫️ 🔎 🌖 ℹ 🔃 ⚫️. + +/// + +`oauth2_scheme` 🔢 👐 `OAuth2PasswordBearer`, ✋️ ⚫️ "🇧🇲". + +⚫️ 💪 🤙: + +```Python +oauth2_scheme(some, parameters) +``` + +, ⚫️ 💪 ⚙️ ⏮️ `Depends`. + +### ⚙️ ⚫️ + +🔜 👆 💪 🚶‍♀️ 👈 `oauth2_scheme` 🔗 ⏮️ `Depends`. + +{* ../../docs_src/security/tutorial001.py hl[10] *} + +👉 🔗 🔜 🚚 `str` 👈 🛠️ 🔢 `token` *➡ 🛠️ 🔢*. + +**FastAPI** 🔜 💭 👈 ⚫️ 💪 ⚙️ 👉 🔗 🔬 "💂‍♂ ⚖" 🗄 🔗 (& 🏧 🛠️ 🩺). + +/// info | 📡 ℹ + +**FastAPI** 🔜 💭 👈 ⚫️ 💪 ⚙️ 🎓 `OAuth2PasswordBearer` (📣 🔗) 🔬 💂‍♂ ⚖ 🗄 ↩️ ⚫️ 😖 ⚪️➡️ `fastapi.security.oauth2.OAuth2`, ❔ 🔄 😖 ⚪️➡️ `fastapi.security.base.SecurityBase`. + +🌐 💂‍♂ 🚙 👈 🛠️ ⏮️ 🗄 (& 🏧 🛠️ 🩺) 😖 ⚪️➡️ `SecurityBase`, 👈 ❔ **FastAPI** 💪 💭 ❔ 🛠️ 👫 🗄. + +/// + +## ⚫️❔ ⚫️ 🔨 + +⚫️ 🔜 🚶 & 👀 📨 👈 `Authorization` 🎚, ✅ 🚥 💲 `Bearer ` ➕ 🤝, & 🔜 📨 🤝 `str`. + +🚥 ⚫️ 🚫 👀 `Authorization` 🎚, ⚖️ 💲 🚫 ✔️ `Bearer ` 🤝, ⚫️ 🔜 📨 ⏮️ 4️⃣0️⃣1️⃣ 👔 📟 ❌ (`UNAUTHORIZED`) 🔗. + +👆 🚫 ✔️ ✅ 🚥 🤝 🔀 📨 ❌. 👆 💪 💭 👈 🚥 👆 🔢 🛠️, ⚫️ 🔜 ✔️ `str` 👈 🤝. + +👆 💪 🔄 ⚫️ ⏪ 🎓 🩺: + + + +👥 🚫 ✔ 🔬 🤝, ✋️ 👈 ▶️ ⏪. + +## 🌃 + +, 3️⃣ ⚖️ 4️⃣ ➕ ⏸, 👆 ⏪ ✔️ 🐒 📨 💂‍♂. diff --git a/docs/em/docs/tutorial/security/get-current-user.md b/docs/em/docs/tutorial/security/get-current-user.md new file mode 100644 index 0000000..2f4a26f --- /dev/null +++ b/docs/em/docs/tutorial/security/get-current-user.md @@ -0,0 +1,105 @@ +# 🤚 ⏮️ 👩‍💻 + +⏮️ 📃 💂‍♂ ⚙️ (❔ 🧢 🔛 🔗 💉 ⚙️) 🤝 *➡ 🛠️ 🔢* `token` `str`: + +{* ../../docs_src/security/tutorial001.py hl[10] *} + +✋️ 👈 🚫 👈 ⚠. + +➡️ ⚒ ⚫️ 🤝 👥 ⏮️ 👩‍💻. + +## ✍ 👩‍💻 🏷 + +🥇, ➡️ ✍ Pydantic 👩‍💻 🏷. + +🎏 🌌 👥 ⚙️ Pydantic 📣 💪, 👥 💪 ⚙️ ⚫️ 🙆 🙆: + +{* ../../docs_src/security/tutorial002.py hl[5,12:16] *} + +## ✍ `get_current_user` 🔗 + +➡️ ✍ 🔗 `get_current_user`. + +💭 👈 🔗 💪 ✔️ 🎧-🔗 ❓ + +`get_current_user` 🔜 ✔️ 🔗 ⏮️ 🎏 `oauth2_scheme` 👥 ✍ ⏭. + +🎏 👥 🔨 ⏭ *➡ 🛠️* 🔗, 👆 🆕 🔗 `get_current_user` 🔜 📨 `token` `str` ⚪️➡️ 🎧-🔗 `oauth2_scheme`: + +{* ../../docs_src/security/tutorial002.py hl[25] *} + +## 🤚 👩‍💻 + +`get_current_user` 🔜 ⚙️ (❌) 🚙 🔢 👥 ✍, 👈 ✊ 🤝 `str` & 📨 👆 Pydantic `User` 🏷: + +{* ../../docs_src/security/tutorial002.py hl[19:22,26:27] *} + +## 💉 ⏮️ 👩‍💻 + +🔜 👥 💪 ⚙️ 🎏 `Depends` ⏮️ 👆 `get_current_user` *➡ 🛠️*: + +{* ../../docs_src/security/tutorial002.py hl[31] *} + +👀 👈 👥 📣 🆎 `current_user` Pydantic 🏷 `User`. + +👉 🔜 ℹ 🇺🇲 🔘 🔢 ⏮️ 🌐 🛠️ & 🆎 ✅. + +/// tip + +👆 5️⃣📆 💭 👈 📨 💪 📣 ⏮️ Pydantic 🏷. + +📥 **FastAPI** 🏆 🚫 🤚 😨 ↩️ 👆 ⚙️ `Depends`. + +/// + +/// check + +🌌 👉 🔗 ⚙️ 🏗 ✔ 👥 ✔️ 🎏 🔗 (🎏 "☑") 👈 🌐 📨 `User` 🏷. + +👥 🚫 🚫 ✔️ 🕴 1️⃣ 🔗 👈 💪 📨 👈 🆎 💽. + +/// + +## 🎏 🏷 + +👆 💪 🔜 🤚 ⏮️ 👩‍💻 🔗 *➡ 🛠️ 🔢* & 🙅 ⏮️ 💂‍♂ 🛠️ **🔗 💉** 🎚, ⚙️ `Depends`. + +& 👆 💪 ⚙️ 🙆 🏷 ⚖️ 💽 💂‍♂ 📄 (👉 💼, Pydantic 🏷 `User`). + +✋️ 👆 🚫 🚫 ⚙️ 🎯 💽 🏷, 🎓 ⚖️ 🆎. + +👆 💚 ✔️ `id` & `email` & 🚫 ✔️ 🙆 `username` 👆 🏷 ❓ 💭. 👆 💪 ⚙️ 👉 🎏 🧰. + +👆 💚 ✔️ `str`❓ ⚖️ `dict`❓ ⚖️ 💽 🎓 🏷 👐 🔗 ❓ ⚫️ 🌐 👷 🎏 🌌. + +👆 🤙 🚫 ✔️ 👩‍💻 👈 🕹 👆 🈸 ✋️ 🤖, 🤖, ⚖️ 🎏 ⚙️, 👈 ✔️ 🔐 🤝 ❓ 🔄, ⚫️ 🌐 👷 🎏. + +⚙️ 🙆 😇 🏷, 🙆 😇 🎓, 🙆 😇 💽 👈 👆 💪 👆 🈸. **FastAPI** ✔️ 👆 📔 ⏮️ 🔗 💉 ⚙️. + +## 📟 📐 + +👉 🖼 5️⃣📆 😑 🔁. ✔️ 🤯 👈 👥 🌀 💂‍♂, 📊 🏷, 🚙 🔢 & *➡ 🛠️* 🎏 📁. + +✋️ 📥 🔑 ☝. + +💂‍♂ & 🔗 💉 💩 ✍ 🕐. + +& 👆 💪 ⚒ ⚫️ 🏗 👆 💚. & , ✔️ ⚫️ ✍ 🕴 🕐, 👁 🥉. ⏮️ 🌐 💪. + +✋️ 👆 💪 ✔️ 💯 🔗 (*➡ 🛠️*) ⚙️ 🎏 💂‍♂ ⚙️. + +& 🌐 👫 (⚖️ 🙆 ↔ 👫 👈 👆 💚) 💪 ✊ 📈 🏤-⚙️ 👫 🔗 ⚖️ 🙆 🎏 🔗 👆 ✍. + +& 🌐 👉 💯 *➡ 🛠️* 💪 🤪 3️⃣ ⏸: + +{* ../../docs_src/security/tutorial002.py hl[30:32] *} + +## 🌃 + +👆 💪 🔜 🤚 ⏮️ 👩‍💻 🔗 👆 *➡ 🛠️ 🔢*. + +👥 ⏪ 😬 📤. + +👥 💪 🚮 *➡ 🛠️* 👩‍💻/👩‍💻 🤙 📨 `username` & `password`. + +👈 👟 ⏭. diff --git a/docs/em/docs/tutorial/security/index.md b/docs/em/docs/tutorial/security/index.md new file mode 100644 index 0000000..1a47e55 --- /dev/null +++ b/docs/em/docs/tutorial/security/index.md @@ -0,0 +1,106 @@ +# 💂‍♂ + +📤 📚 🌌 🍵 💂‍♂, 🤝 & ✔. + +& ⚫️ 🛎 🏗 & "⚠" ❔. + +📚 🛠️ & ⚙️ 🍵 💂‍♂ & 🤝 ✊ 🦏 💸 🎯 & 📟 (📚 💼 ⚫️ 💪 5️⃣0️⃣ 💯 ⚖️ 🌅 🌐 📟 ✍). + +**FastAPI** 🚚 📚 🧰 ℹ 👆 🙅 ⏮️ **💂‍♂** 💪, 📉, 🐩 🌌, 🍵 ✔️ 🔬 & 💡 🌐 💂‍♂ 🔧. + +✋️ 🥇, ➡️ ✅ 🤪 🔧. + +## 🏃 ❓ + +🚥 👆 🚫 💅 🔃 🙆 👉 ⚖ & 👆 💪 🚮 💂‍♂ ⏮️ 🤝 ⚓️ 🔛 🆔 & 🔐 *▶️️ 🔜*, 🚶 ⏭ 📃. + +## Oauth2️⃣ + +Oauth2️⃣ 🔧 👈 🔬 📚 🌌 🍵 🤝 & ✔. + +⚫️ 🔬 🔧 & 📔 📚 🏗 ⚙️ 💼. + +⚫️ 🔌 🌌 🔓 ⚙️ "🥉 🥳". + +👈 ⚫️❔ 🌐 ⚙️ ⏮️ "💳 ⏮️ 👱📔, 🇺🇸🔍, 👱📔, 📂" ⚙️ 🔘. + +### ✳ 1️⃣ + +📤 ✳ 1️⃣, ❔ 📶 🎏 ⚪️➡️ Oauth2️⃣, & 🌖 🏗, ⚫️ 🔌 🔗 🔧 🔛 ❔ 🗜 📻. + +⚫️ 🚫 📶 🌟 ⚖️ ⚙️ 🛎. + +Oauth2️⃣ 🚫 ✔ ❔ 🗜 📻, ⚫️ ⌛ 👆 ✔️ 👆 🈸 🍦 ⏮️ 🇺🇸🔍. + +/// tip + +📄 🔃 **🛠️** 👆 🔜 👀 ❔ ⚒ 🆙 🇺🇸🔍 🆓, ⚙️ Traefik & ➡️ 🗜. + +/// + +## 👩‍💻 🔗 + +👩‍💻 🔗 ➕1️⃣ 🔧, 🧢 🔛 **Oauth2️⃣**. + +⚫️ ↔ Oauth2️⃣ ✔ 👜 👈 📶 🌌 Oauth2️⃣, 🔄 ⚒ ⚫️ 🌅 🛠️. + +🖼, 🇺🇸🔍 💳 ⚙️ 👩‍💻 🔗 (❔ 🔘 ⚙️ Oauth2️⃣). + +✋️ 👱📔 💳 🚫 🐕‍🦺 👩‍💻 🔗. ⚫️ ✔️ 🚮 👍 🍛 Oauth2️⃣. + +### 👩‍💻 (🚫 "👩‍💻 🔗") + +📤 "👩‍💻" 🔧. 👈 🔄 ❎ 🎏 👜 **👩‍💻 🔗**, ✋️ 🚫 ⚓️ 🔛 Oauth2️⃣. + +, ⚫️ 🏁 🌖 ⚙️. + +⚫️ 🚫 📶 🌟 ⚖️ ⚙️ 🛎. + +## 🗄 + +🗄 (⏪ 💭 🦁) 📂 🔧 🏗 🔗 (🔜 🍕 💾 🏛). + +**FastAPI** ⚓️ 🔛 **🗄**. + +👈 ⚫️❔ ⚒ ⚫️ 💪 ✔️ 💗 🏧 🎓 🧾 🔢, 📟 ⚡, ♒️. + +🗄 ✔️ 🌌 🔬 💗 💂‍♂ "⚖". + +⚙️ 👫, 👆 💪 ✊ 📈 🌐 👫 🐩-⚓️ 🧰, 🔌 👉 🎓 🧾 ⚙️. + +🗄 🔬 📄 💂‍♂ ⚖: + +* `apiKey`: 🈸 🎯 🔑 👈 💪 👟 ⚪️➡️: + * 🔢 🔢. + * 🎚. + * 🍪. +* `http`: 🐩 🇺🇸🔍 🤝 ⚙️, 🔌: + * `bearer`: 🎚 `Authorization` ⏮️ 💲 `Bearer ` ➕ 🤝. 👉 😖 ⚪️➡️ Oauth2️⃣. + * 🇺🇸🔍 🔰 🤝. + * 🇺🇸🔍 📰, ♒️. +* `oauth2`: 🌐 Oauth2️⃣ 🌌 🍵 💂‍♂ (🤙 "💧"). + * 📚 👫 💧 ☑ 🏗 ✳ 2️⃣.0️⃣ 🤝 🐕‍🦺 (💖 🇺🇸🔍, 👱📔, 👱📔, 📂, ♒️): + * `implicit` + * `clientCredentials` + * `authorizationCode` + * ✋️ 📤 1️⃣ 🎯 "💧" 👈 💪 👌 ⚙️ 🚚 🤝 🎏 🈸 🔗: + * `password`: ⏭ 📃 🔜 📔 🖼 👉. +* `openIdConnect`: ✔️ 🌌 🔬 ❔ 🔎 Oauth2️⃣ 🤝 📊 🔁. + * 👉 🏧 🔍 ⚫️❔ 🔬 👩‍💻 🔗 🔧. + + +/// tip + +🛠️ 🎏 🤝/✔ 🐕‍🦺 💖 🇺🇸🔍, 👱📔, 👱📔, 📂, ♒️. 💪 & 📶 ⏩. + +🌅 🏗 ⚠ 🏗 🤝/✔ 🐕‍🦺 💖 👈, ✋️ **FastAPI** 🤝 👆 🧰 ⚫️ 💪, ⏪ 🔨 🏋️ 🏋‍♂ 👆. + +/// + +## **FastAPI** 🚙 + +FastAPI 🚚 📚 🧰 🔠 👉 💂‍♂ ⚖ `fastapi.security` 🕹 👈 📉 ⚙️ 👉 💂‍♂ 🛠️. + +⏭ 📃 👆 🔜 👀 ❔ 🚮 💂‍♂ 👆 🛠️ ⚙️ 📚 🧰 🚚 **FastAPI**. + +& 👆 🔜 👀 ❔ ⚫️ 🤚 🔁 🛠️ 🔘 🎓 🧾 ⚙️. diff --git a/docs/em/docs/tutorial/security/oauth2-jwt.md b/docs/em/docs/tutorial/security/oauth2-jwt.md new file mode 100644 index 0000000..ee7bc2d --- /dev/null +++ b/docs/em/docs/tutorial/security/oauth2-jwt.md @@ -0,0 +1,275 @@ +# Oauth2️⃣ ⏮️ 🔐 (& 🔁), 📨 ⏮️ 🥙 🤝 + +🔜 👈 👥 ✔️ 🌐 💂‍♂ 💧, ➡️ ⚒ 🈸 🤙 🔐, ⚙️ 🥙 🤝 & 🔐 🔐 🔁. + +👉 📟 🕳 👆 💪 🤙 ⚙️ 👆 🈸, 🖊 🔐 #️⃣ 👆 💽, ♒️. + +👥 🔜 ▶️ ⚪️➡️ 🌐❔ 👥 ◀️ ⏮️ 📃 & 📈 ⚫️. + +## 🔃 🥙 + +🥙 ⛓ "🎻 🕸 🤝". + +⚫️ 🐩 🚫 🎻 🎚 📏 💧 🎻 🍵 🚀. ⚫️ 👀 💖 👉: + +``` +eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c +``` + +⚫️ 🚫 🗜,, 🙆 💪 🛡 ℹ ⚪️➡️ 🎚. + +✋️ ⚫️ 🛑. , 🕐❔ 👆 📨 🤝 👈 👆 ♨, 👆 💪 ✔ 👈 👆 🤙 ♨ ⚫️. + +👈 🌌, 👆 💪 ✍ 🤝 ⏮️ 👔, ➡️ 💬, 1️⃣ 🗓️. & ⤴️ 🕐❔ 👩‍💻 👟 🔙 ⏭ 📆 ⏮️ 🤝, 👆 💭 👈 👩‍💻 🕹 👆 ⚙️. + +⏮️ 🗓️, 🤝 🔜 🕛 & 👩‍💻 🔜 🚫 ✔ & 🔜 ✔️ 🛑 🔄 🤚 🆕 🤝. & 🚥 👩‍💻 (⚖️ 🥉 🥳) 🔄 🔀 🤝 🔀 👔, 👆 🔜 💪 🔎 ⚫️, ↩️ 💳 🔜 🚫 🏏. + +🚥 👆 💚 🤾 ⏮️ 🥙 🤝 & 👀 ❔ 👫 👷, ✅ https://jwt.io. + +## ❎ `python-jose` + +👥 💪 ❎ `python-jose` 🏗 & ✔ 🥙 🤝 🐍: + +
+ +```console +$ pip install "python-jose[cryptography]" + +---> 100% +``` + +
+ +🐍-🇩🇬 🚚 🔐 👩‍💻 ➕. + +📥 👥 ⚙️ 👍 1️⃣: )/⚛. + +/// tip + +👉 🔰 ⏪ ⚙️ PyJWT. + +✋️ ⚫️ ℹ ⚙️ 🐍-🇩🇬 ↩️ ⚫️ 🚚 🌐 ⚒ ⚪️➡️ PyJWT ➕ ➕ 👈 👆 💪 💪 ⏪ 🕐❔ 🏗 🛠️ ⏮️ 🎏 🧰. + +/// + +## 🔐 🔁 + +"🔁" ⛓ 🏭 🎚 (🔐 👉 💼) 🔘 🔁 🔢 (🎻) 👈 👀 💖 🙃. + +🕐❔ 👆 🚶‍♀️ ⚫️❔ 🎏 🎚 (⚫️❔ 🎏 🔐) 👆 🤚 ⚫️❔ 🎏 🙃. + +✋️ 👆 🚫🔜 🗜 ⚪️➡️ 🙃 🔙 🔐. + +### ⚫️❔ ⚙️ 🔐 🔁 + +🚥 👆 💽 📎, 🧙‍♀ 🏆 🚫 ✔️ 👆 👩‍💻' 🔢 🔐, 🕴#️⃣. + +, 🧙‍♀ 🏆 🚫 💪 🔄 ⚙️ 👈 🔐 ➕1️⃣ ⚙️ (📚 👩‍💻 ⚙️ 🎏 🔐 🌐, 👉 🔜 ⚠). + +## ❎ `passlib` + +🇸🇲 👑 🐍 📦 🍵 🔐#️⃣. + +⚫️ 🐕‍🦺 📚 🔐 🔁 📊 & 🚙 👷 ⏮️ 👫. + +👍 📊 "🐡". + +, ❎ 🇸🇲 ⏮️ 🐡: + +
+ +```console +$ pip install "passlib[bcrypt]" + +---> 100% +``` + +
+ +/// tip + +⏮️ `passlib`, 👆 💪 🔗 ⚫️ 💪 ✍ 🔐 ✍ **✳**, **🏺** 💂‍♂ 🔌-⚖️ 📚 🎏. + +, 👆 🔜 💪, 🖼, 💰 🎏 📊 ⚪️➡️ ✳ 🈸 💽 ⏮️ FastAPI 🈸. ⚖️ 📉 ↔ ✳ 🈸 ⚙️ 🎏 💽. + + & 👆 👩‍💻 🔜 💪 💳 ⚪️➡️ 👆 ✳ 📱 ⚖️ ⚪️➡️ 👆 **FastAPI** 📱, 🎏 🕰. + +/// + +## #️⃣ & ✔ 🔐 + +🗄 🧰 👥 💪 ⚪️➡️ `passlib`. + +✍ 🇸🇲 "🔑". 👉 ⚫️❔ 🔜 ⚙️ #️⃣ & ✔ 🔐. + +/// tip + +🇸🇲 🔑 ✔️ 🛠️ ⚙️ 🎏 🔁 📊, 🔌 😢 🗝 🕐 🕴 ✔ ✔ 👫, ♒️. + +🖼, 👆 💪 ⚙️ ⚫️ ✍ & ✔ 🔐 🏗 ➕1️⃣ ⚙️ (💖 ✳) ✋️ #️⃣ 🙆 🆕 🔐 ⏮️ 🎏 📊 💖 🐡. + + & 🔗 ⏮️ 🌐 👫 🎏 🕰. + +/// + +✍ 🚙 🔢 #️⃣ 🔐 👟 ⚪️➡️ 👩‍💻. + +& ➕1️⃣ 🚙 ✔ 🚥 📨 🔐 🏏 #️⃣ 🏪. + +& ➕1️⃣ 1️⃣ 🔓 & 📨 👩‍💻. + +{* ../../docs_src/security/tutorial004.py hl[7,48,55:56,59:60,69:75] *} + +/// note + +🚥 👆 ✅ 🆕 (❌) 💽 `fake_users_db`, 👆 🔜 👀 ❔ #️⃣ 🔐 👀 💖 🔜: `"$2b$12$EixZaYVK1fsbw1ZfbX3OXePaWxn96p36WQoeG6Lruj3vjPGga31lW"`. + +/// + +## 🍵 🥙 🤝 + +🗄 🕹 ❎. + +✍ 🎲 ㊙ 🔑 👈 🔜 ⚙️ 🛑 🥙 🤝. + +🏗 🔐 🎲 ㊙ 🔑 ⚙️ 📋: + +
+ +```console +$ openssl rand -hex 32 + +09d25e094faa6ca2556c818166b7a9563b93f7099f6f0f4caa6cf63b88e8d3e7 +``` + +
+ +& 📁 🔢 🔢 `SECRET_KEY` (🚫 ⚙️ 1️⃣ 🖼). + +✍ 🔢 `ALGORITHM` ⏮️ 📊 ⚙️ 🛑 🥙 🤝 & ⚒ ⚫️ `"HS256"`. + +✍ 🔢 👔 🤝. + +🔬 Pydantic 🏷 👈 🔜 ⚙️ 🤝 🔗 📨. + +✍ 🚙 🔢 🏗 🆕 🔐 🤝. + +{* ../../docs_src/security/tutorial004.py hl[6,12:14,28:30,78:86] *} + +## ℹ 🔗 + +ℹ `get_current_user` 📨 🎏 🤝 ⏭, ✋️ 👉 🕰, ⚙️ 🥙 🤝. + +🔣 📨 🤝, ✔ ⚫️, & 📨 ⏮️ 👩‍💻. + +🚥 🤝 ❌, 📨 🇺🇸🔍 ❌ ▶️️ ↖️. + +{* ../../docs_src/security/tutorial004.py hl[89:106] *} + +## ℹ `/token` *➡ 🛠️* + +✍ `timedelta` ⏮️ 👔 🕰 🤝. + +✍ 🎰 🥙 🔐 🤝 & 📨 ⚫️. + +{* ../../docs_src/security/tutorial004.py hl[115:130] *} + +### 📡 ℹ 🔃 🥙 "📄" `sub` + +🥙 🔧 💬 👈 📤 🔑 `sub`, ⏮️ 📄 🤝. + +⚫️ 📦 ⚙️ ⚫️, ✋️ 👈 🌐❔ 👆 🔜 🚮 👩‍💻 🆔, 👥 ⚙️ ⚫️ 📥. + +🥙 5️⃣📆 ⚙️ 🎏 👜 ↖️ ⚪️➡️ ⚖ 👩‍💻 & 🤝 👫 🎭 🛠️ 🔗 🔛 👆 🛠️. + +🖼, 👆 💪 🔬 "🚘" ⚖️ "📰 🏤". + +⤴️ 👆 💪 🚮 ✔ 🔃 👈 👨‍💼, 💖 "💾" (🚘) ⚖️ "✍" (📰). + +& ⤴️, 👆 💪 🤝 👈 🥙 🤝 👩‍💻 (⚖️ 🤖), & 👫 💪 ⚙️ ⚫️ 🎭 👈 🎯 (💾 🚘, ⚖️ ✍ 📰 🏤) 🍵 💆‍♂ ✔️ 🏧, ⏮️ 🥙 🤝 👆 🛠️ 🏗 👈. + +⚙️ 👫 💭, 🥙 💪 ⚙️ 🌌 🌖 🤓 😐. + +📚 💼, 📚 👈 👨‍💼 💪 ✔️ 🎏 🆔, ➡️ 💬 `foo` (👩‍💻 `foo`, 🚘 `foo`, & 📰 🏤 `foo`). + +, ❎ 🆔 💥, 🕐❔ 🏗 🥙 🤝 👩‍💻, 👆 💪 🔡 💲 `sub` 🔑, ✅ ⏮️ `username:`. , 👉 🖼, 💲 `sub` 💪 ✔️: `username:johndoe`. + +⚠ 👜 ✔️ 🤯 👈 `sub` 🔑 🔜 ✔️ 😍 🆔 🤭 🎂 🈸, & ⚫️ 🔜 🎻. + +## ✅ ⚫️ + +🏃 💽 & 🚶 🩺: http://127.0.0.1:8000/docs. + +👆 🔜 👀 👩‍💻 🔢 💖: + + + +✔ 🈸 🎏 🌌 ⏭. + +⚙️ 🎓: + +🆔: `johndoe` +🔐: `secret` + +/// check + +👀 👈 🕳 📟 🔢 🔐 "`secret`", 👥 🕴 ✔️ #️⃣ ⏬. + +/// + + + +🤙 🔗 `/users/me/`, 👆 🔜 🤚 📨: + +```JSON +{ + "username": "johndoe", + "email": "johndoe@example.com", + "full_name": "John Doe", + "disabled": false +} +``` + + + +🚥 👆 📂 👩‍💻 🧰, 👆 💪 👀 ❔ 📊 📨 🕴 🔌 🤝, 🔐 🕴 📨 🥇 📨 🔓 👩‍💻 & 🤚 👈 🔐 🤝, ✋️ 🚫 ⏮️: + + + +/// note + +👀 🎚 `Authorization`, ⏮️ 💲 👈 ▶️ ⏮️ `Bearer `. + +/// + +## 🏧 ⚙️ ⏮️ `scopes` + +Oauth2️⃣ ✔️ 🔑 "↔". + +👆 💪 ⚙️ 👫 🚮 🎯 ⚒ ✔ 🥙 🤝. + +⤴️ 👆 💪 🤝 👉 🤝 👩‍💻 🔗 ⚖️ 🥉 🥳, 🔗 ⏮️ 👆 🛠️ ⏮️ ⚒ 🚫. + +👆 💪 💡 ❔ ⚙️ 👫 & ❔ 👫 🛠️ 🔘 **FastAPI** ⏪ **🏧 👩‍💻 🦮**. + +## 🌃 + +⏮️ ⚫️❔ 👆 ✔️ 👀 🆙 🔜, 👆 💪 ⚒ 🆙 🔐 **FastAPI** 🈸 ⚙️ 🐩 💖 Oauth2️⃣ & 🥙. + +🌖 🙆 🛠️ 🚚 💂‍♂ ▶️️ 👍 🏗 📄 🔜. + +📚 📦 👈 📉 ⚫️ 📚 ✔️ ⚒ 📚 ⚠ ⏮️ 💽 🏷, 💽, & 💪 ⚒. & 👉 📦 👈 📉 👜 💁‍♂️ 🌅 🤙 ✔️ 💂‍♂ ⚠ 🔘. + +--- + +**FastAPI** 🚫 ⚒ 🙆 ⚠ ⏮️ 🙆 💽, 💽 🏷 ⚖️ 🧰. + +⚫️ 🤝 👆 🌐 💪 ⚒ 🕐 👈 👖 👆 🏗 🏆. + +& 👆 💪 ⚙️ 🔗 📚 👍 🚧 & 🛎 ⚙️ 📦 💖 `passlib` & `python-jose`, ↩️ **FastAPI** 🚫 🚚 🙆 🏗 🛠️ 🛠️ 🔢 📦. + +✋️ ⚫️ 🚚 👆 🧰 📉 🛠️ 🌅 💪 🍵 🎯 💪, ⚖, ⚖️ 💂‍♂. + +& 👆 💪 ⚙️ & 🛠️ 🔐, 🐩 🛠️, 💖 Oauth2️⃣ 📶 🙅 🌌. + +👆 💪 💡 🌅 **🏧 👩‍💻 🦮** 🔃 ❔ ⚙️ Oauth2️⃣ "↔", 🌖 👌-🧽 ✔ ⚙️, 📄 👫 🎏 🐩. Oauth2️⃣ ⏮️ ↔ 🛠️ ⚙️ 📚 🦏 🤝 🐕‍🦺, 💖 👱📔, 🇺🇸🔍, 📂, 🤸‍♂, 👱📔, ♒️. ✔ 🥉 🥳 🈸 🔗 ⏮️ 👫 🔗 🔛 👨‍💼 👫 👩‍💻. diff --git a/docs/em/docs/tutorial/security/simple-oauth2.md b/docs/em/docs/tutorial/security/simple-oauth2.md new file mode 100644 index 0000000..1fd513d --- /dev/null +++ b/docs/em/docs/tutorial/security/simple-oauth2.md @@ -0,0 +1,289 @@ +# 🙅 Oauth2️⃣ ⏮️ 🔐 & 📨 + +🔜 ➡️ 🏗 ⚪️➡️ ⏮️ 📃 & 🚮 ❌ 🍕 ✔️ 🏁 💂‍♂ 💧. + +## 🤚 `username` & `password` + +👥 🔜 ⚙️ **FastAPI** 💂‍♂ 🚙 🤚 `username` & `password`. + +Oauth2️⃣ ✔ 👈 🕐❔ ⚙️ "🔐 💧" (👈 👥 ⚙️) 👩‍💻/👩‍💻 🔜 📨 `username` & `password` 🏑 📨 💽. + +& 🔌 💬 👈 🏑 ✔️ 🌟 💖 👈. `user-name` ⚖️ `email` 🚫🔜 👷. + +✋️ 🚫 😟, 👆 💪 🎦 ⚫️ 👆 🎋 👆 🏁 👩‍💻 🕸. + +& 👆 💽 🏷 💪 ⚙️ 🙆 🎏 📛 👆 💚. + +✋️ 💳 *➡ 🛠️*, 👥 💪 ⚙️ 👉 📛 🔗 ⏮️ 🔌 (& 💪, 🖼, ⚙️ 🛠️ 🛠️ 🧾 ⚙️). + +🔌 🇵🇸 👈 `username` & `password` 🔜 📨 📨 💽 (, 🙅‍♂ 🎻 📥). + +### `scope` + +🔌 💬 👈 👩‍💻 💪 📨 ➕1️⃣ 📨 🏑 "`scope`". + +📨 🏑 📛 `scope` (⭐), ✋️ ⚫️ 🤙 📏 🎻 ⏮️ "↔" 🎏 🚀. + +🔠 "↔" 🎻 (🍵 🚀). + +👫 🛎 ⚙️ 📣 🎯 💂‍♂ ✔, 🖼: + +* `users:read` ⚖️ `users:write` ⚠ 🖼. +* `instagram_basic` ⚙️ 👱📔 / 👱📔. +* `https://www.googleapis.com/auth/drive` ⚙️ 🇺🇸🔍. + +/// info + +Oauth2️⃣ "↔" 🎻 👈 📣 🎯 ✔ ✔. + +⚫️ 🚫 🤔 🚥 ⚫️ ✔️ 🎏 🦹 💖 `:` ⚖️ 🚥 ⚫️ 📛. + +👈 ℹ 🛠️ 🎯. + +Oauth2️⃣ 👫 🎻. + +/// + +## 📟 🤚 `username` & `password` + +🔜 ➡️ ⚙️ 🚙 🚚 **FastAPI** 🍵 👉. + +### `OAuth2PasswordRequestForm` + +🥇, 🗄 `OAuth2PasswordRequestForm`, & ⚙️ ⚫️ 🔗 ⏮️ `Depends` *➡ 🛠️* `/token`: + +{* ../../docs_src/security/tutorial003.py hl[4,76] *} + +`OAuth2PasswordRequestForm` 🎓 🔗 👈 📣 📨 💪 ⏮️: + +* `username`. +* `password`. +* 📦 `scope` 🏑 🦏 🎻, ✍ 🎻 🎏 🚀. +* 📦 `grant_type`. + +/// tip + +Oauth2️⃣ 🔌 🤙 *🚚* 🏑 `grant_type` ⏮️ 🔧 💲 `password`, ✋️ `OAuth2PasswordRequestForm` 🚫 🛠️ ⚫️. + +🚥 👆 💪 🛠️ ⚫️, ⚙️ `OAuth2PasswordRequestFormStrict` ↩️ `OAuth2PasswordRequestForm`. + +/// + +* 📦 `client_id` (👥 🚫 💪 ⚫️ 👆 🖼). +* 📦 `client_secret` (👥 🚫 💪 ⚫️ 👆 🖼). + +/// info + +`OAuth2PasswordRequestForm` 🚫 🎁 🎓 **FastAPI** `OAuth2PasswordBearer`. + +`OAuth2PasswordBearer` ⚒ **FastAPI** 💭 👈 ⚫️ 💂‍♂ ⚖. ⚫️ 🚮 👈 🌌 🗄. + +✋️ `OAuth2PasswordRequestForm` 🎓 🔗 👈 👆 💪 ✔️ ✍ 👆, ⚖️ 👆 💪 ✔️ 📣 `Form` 🔢 🔗. + +✋️ ⚫️ ⚠ ⚙️ 💼, ⚫️ 🚚 **FastAPI** 🔗, ⚒ ⚫️ ⏩. + +/// + +### ⚙️ 📨 💽 + +/// tip + +👐 🔗 🎓 `OAuth2PasswordRequestForm` 🏆 🚫 ✔️ 🔢 `scope` ⏮️ 📏 🎻 👽 🚀, ↩️, ⚫️ 🔜 ✔️ `scopes` 🔢 ⏮️ ☑ 📇 🎻 🔠 ↔ 📨. + +👥 🚫 ⚙️ `scopes` 👉 🖼, ✋️ 🛠️ 📤 🚥 👆 💪 ⚫️. + +/// + +🔜, 🤚 👩‍💻 📊 ⚪️➡️ (❌) 💽, ⚙️ `username` ⚪️➡️ 📨 🏑. + +🚥 📤 🙅‍♂ ✅ 👩‍💻, 👥 📨 ❌ 💬 "❌ 🆔 ⚖️ 🔐". + +❌, 👥 ⚙️ ⚠ `HTTPException`: + +{* ../../docs_src/security/tutorial003.py hl[3,77:79] *} + +### ✅ 🔐 + +👉 ☝ 👥 ✔️ 👩‍💻 📊 ⚪️➡️ 👆 💽, ✋️ 👥 🚫 ✅ 🔐. + +➡️ 🚮 👈 💽 Pydantic `UserInDB` 🏷 🥇. + +👆 🔜 🙅 🖊 🔢 🔐,, 👥 🔜 ⚙️ (❌) 🔐 🔁 ⚙️. + +🚥 🔐 🚫 🏏, 👥 📨 🎏 ❌. + +#### 🔐 🔁 + +"🔁" ⛓: 🏭 🎚 (🔐 👉 💼) 🔘 🔁 🔢 (🎻) 👈 👀 💖 🙃. + +🕐❔ 👆 🚶‍♀️ ⚫️❔ 🎏 🎚 (⚫️❔ 🎏 🔐) 👆 🤚 ⚫️❔ 🎏 🙃. + +✋️ 👆 🚫🔜 🗜 ⚪️➡️ 🙃 🔙 🔐. + +##### ⚫️❔ ⚙️ 🔐 🔁 + +🚥 👆 💽 📎, 🧙‍♀ 🏆 🚫 ✔️ 👆 👩‍💻' 🔢 🔐, 🕴#️⃣. + +, 🧙‍♀ 🏆 🚫 💪 🔄 ⚙️ 👈 🎏 🔐 ➕1️⃣ ⚙️ (📚 👩‍💻 ⚙️ 🎏 🔐 🌐, 👉 🔜 ⚠). + +{* ../../docs_src/security/tutorial003.py hl[80:83] *} + +#### 🔃 `**user_dict` + +`UserInDB(**user_dict)` ⛓: + +*🚶‍♀️ 🔑 & 💲 `user_dict` 🔗 🔑-💲 ❌, 🌓:* + +```Python +UserInDB( + username = user_dict["username"], + email = user_dict["email"], + full_name = user_dict["full_name"], + disabled = user_dict["disabled"], + hashed_password = user_dict["hashed_password"], +) +``` + +/// info + +🌅 🏁 🔑 `**👩‍💻_ #️⃣ ` ✅ 🔙 [🧾 **➕ 🏷**](../extra-models.md#user_indict){.internal-link target=_blank}. + +/// + +## 📨 🤝 + +📨 `token` 🔗 🔜 🎻 🎚. + +⚫️ 🔜 ✔️ `token_type`. 👆 💼, 👥 ⚙️ "📨" 🤝, 🤝 🆎 🔜 "`bearer`". + +& ⚫️ 🔜 ✔️ `access_token`, ⏮️ 🎻 ⚗ 👆 🔐 🤝. + +👉 🙅 🖼, 👥 🔜 🍕 😟 & 📨 🎏 `username` 🤝. + +/// tip + +⏭ 📃, 👆 🔜 👀 🎰 🔐 🛠️, ⏮️ 🔐 #️⃣ & 🥙 🤝. + +✋️ 🔜, ➡️ 🎯 🔛 🎯 ℹ 👥 💪. + +/// + +{* ../../docs_src/security/tutorial003.py hl[85] *} + +/// tip + +🔌, 👆 🔜 📨 🎻 ⏮️ `access_token` & `token_type`, 🎏 👉 🖼. + +👉 🕳 👈 👆 ✔️ 👆 👆 📟, & ⚒ 💭 👆 ⚙️ 📚 🎻 🔑. + +⚫️ 🌖 🕴 👜 👈 👆 ✔️ 💭 ☑ 👆, 🛠️ ⏮️ 🔧. + +🎂, **FastAPI** 🍵 ⚫️ 👆. + +/// + +## ℹ 🔗 + +🔜 👥 🔜 ℹ 👆 🔗. + +👥 💚 🤚 `current_user` *🕴* 🚥 👉 👩‍💻 🦁. + +, 👥 ✍ 🌖 🔗 `get_current_active_user` 👈 🔄 ⚙️ `get_current_user` 🔗. + +👯‍♂️ 👉 🔗 🔜 📨 🇺🇸🔍 ❌ 🚥 👩‍💻 🚫 🔀, ⚖️ 🚥 🔕. + +, 👆 🔗, 👥 🔜 🕴 🤚 👩‍💻 🚥 👩‍💻 🔀, ☑ 🔓, & 🦁: + +{* ../../docs_src/security/tutorial003.py hl[58:66,69:72,90] *} + +/// info + +🌖 🎚 `WWW-Authenticate` ⏮️ 💲 `Bearer` 👥 🛬 📥 🍕 🔌. + +🙆 🇺🇸🔍 (❌) 👔 📟 4️⃣0️⃣1️⃣ "⛔" 🤔 📨 `WWW-Authenticate` 🎚. + +💼 📨 🤝 (👆 💼), 💲 👈 🎚 🔜 `Bearer`. + +👆 💪 🤙 🚶 👈 ➕ 🎚 & ⚫️ 🔜 👷. + +✋️ ⚫️ 🚚 📥 🛠️ ⏮️ 🔧. + +, 📤 5️⃣📆 🧰 👈 ⌛ & ⚙️ ⚫️ (🔜 ⚖️ 🔮) & 👈 💪 ⚠ 👆 ⚖️ 👆 👩‍💻, 🔜 ⚖️ 🔮. + +👈 💰 🐩... + +/// + +## 👀 ⚫️ 🎯 + +📂 🎓 🩺: http://127.0.0.1:8000/docs. + +### 🔓 + +🖊 "✔" 🔼. + +⚙️ 🎓: + +👩‍💻: `johndoe` + +🔐: `secret` + + + +⏮️ 🔗 ⚙️, 👆 🔜 👀 ⚫️ 💖: + + + +### 🤚 👆 👍 👩‍💻 💽 + +🔜 ⚙️ 🛠️ `GET` ⏮️ ➡ `/users/me`. + +👆 🔜 🤚 👆 👩‍💻 📊, 💖: + +```JSON +{ + "username": "johndoe", + "email": "johndoe@example.com", + "full_name": "John Doe", + "disabled": false, + "hashed_password": "fakehashedsecret" +} +``` + + + +🚥 👆 🖊 🔒 ℹ & ⏏, & ⤴️ 🔄 🎏 🛠️ 🔄, 👆 🔜 🤚 🇺🇸🔍 4️⃣0️⃣1️⃣ ❌: + +```JSON +{ + "detail": "Not authenticated" +} +``` + +### 🔕 👩‍💻 + +🔜 🔄 ⏮️ 🔕 👩‍💻, 🔓 ⏮️: + +👩‍💻: `alice` + +🔐: `secret2` + +& 🔄 ⚙️ 🛠️ `GET` ⏮️ ➡ `/users/me`. + +👆 🔜 🤚 "🔕 👩‍💻" ❌, 💖: + +```JSON +{ + "detail": "Inactive user" +} +``` + +## 🌃 + +👆 🔜 ✔️ 🧰 🛠️ 🏁 💂‍♂ ⚙️ ⚓️ 🔛 `username` & `password` 👆 🛠️. + +⚙️ 👫 🧰, 👆 💪 ⚒ 💂‍♂ ⚙️ 🔗 ⏮️ 🙆 💽 & ⏮️ 🙆 👩‍💻 ⚖️ 💽 🏷. + +🕴 ℹ ❌ 👈 ⚫️ 🚫 🤙 "🔐". + +⏭ 📃 👆 🔜 👀 ❔ ⚙️ 🔐 🔐 🔁 🗃 & 🥙 🤝. diff --git a/docs/em/docs/tutorial/static-files.md b/docs/em/docs/tutorial/static-files.md new file mode 100644 index 0000000..27685c0 --- /dev/null +++ b/docs/em/docs/tutorial/static-files.md @@ -0,0 +1,40 @@ +# 🎻 📁 + +👆 💪 🍦 🎻 📁 🔁 ⚪️➡️ 📁 ⚙️ `StaticFiles`. + +## ⚙️ `StaticFiles` + +* 🗄 `StaticFiles`. +* "🗻" `StaticFiles()` 👐 🎯 ➡. + +{* ../../docs_src/static_files/tutorial001.py hl[2,6] *} + +/// note | 📡 ℹ + +👆 💪 ⚙️ `from starlette.staticfiles import StaticFiles`. + +**FastAPI** 🚚 🎏 `starlette.staticfiles` `fastapi.staticfiles` 🏪 👆, 👩‍💻. ✋️ ⚫️ 🤙 👟 🔗 ⚪️➡️ 💃. + +/// + +### ⚫️❔ "🗜" + +"🗜" ⛓ ❎ 🏁 "🔬" 🈸 🎯 ➡, 👈 ⤴️ ✊ 💅 🚚 🌐 🎧-➡. + +👉 🎏 ⚪️➡️ ⚙️ `APIRouter` 🗻 🈸 🍕 🔬. 🗄 & 🩺 ⚪️➡️ 👆 👑 🈸 🏆 🚫 🔌 🕳 ⚪️➡️ 🗻 🈸, ♒️. + +👆 💪 ✍ 🌅 🔃 👉 **🏧 👩‍💻 🦮**. + +## ℹ + +🥇 `"/static"` 🔗 🎧-➡ 👉 "🎧-🈸" 🔜 "🗻" 🔛. , 🙆 ➡ 👈 ▶️ ⏮️ `"/static"` 🔜 🍵 ⚫️. + +`directory="static"` 🔗 📛 📁 👈 🔌 👆 🎻 📁. + +`name="static"` 🤝 ⚫️ 📛 👈 💪 ⚙️ 🔘 **FastAPI**. + +🌐 👫 🔢 💪 🎏 🌘 "`static`", 🔆 👫 ⏮️ 💪 & 🎯 ℹ 👆 👍 🈸. + +## 🌅 ℹ + +🌖 ℹ & 🎛 ✅ 💃 🩺 🔃 🎻 📁. diff --git a/docs/em/docs/tutorial/testing.md b/docs/em/docs/tutorial/testing.md new file mode 100644 index 0000000..2e4a531 --- /dev/null +++ b/docs/em/docs/tutorial/testing.md @@ -0,0 +1,185 @@ +# 🔬 + +👏 💃, 🔬 **FastAPI** 🈸 ⏩ & 😌. + +⚫️ ⚓️ 🔛 🇸🇲, ❔ 🔄 🏗 ⚓️ 🔛 📨, ⚫️ 📶 😰 & 🏋️. + +⏮️ ⚫️, 👆 💪 ⚙️ 🔗 ⏮️ **FastAPI**. + +## ⚙️ `TestClient` + +/// info + +⚙️ `TestClient`, 🥇 ❎ `httpx`. + +🤶 Ⓜ. `pip install httpx`. + +/// + +🗄 `TestClient`. + +✍ `TestClient` 🚶‍♀️ 👆 **FastAPI** 🈸 ⚫️. + +✍ 🔢 ⏮️ 📛 👈 ▶️ ⏮️ `test_` (👉 🐩 `pytest` 🏛). + +⚙️ `TestClient` 🎚 🎏 🌌 👆 ⏮️ `httpx`. + +✍ 🙅 `assert` 📄 ⏮️ 🐩 🐍 🧬 👈 👆 💪 ✅ (🔄, 🐩 `pytest`). + +{* ../../docs_src/app_testing/tutorial001.py hl[2,12,15:18] *} + +/// tip + +👀 👈 🔬 🔢 😐 `def`, 🚫 `async def`. + + & 🤙 👩‍💻 😐 🤙, 🚫 ⚙️ `await`. + +👉 ✔ 👆 ⚙️ `pytest` 🔗 🍵 🤢. + +/// + +/// note | 📡 ℹ + +👆 💪 ⚙️ `from starlette.testclient import TestClient`. + +**FastAPI** 🚚 🎏 `starlette.testclient` `fastapi.testclient` 🏪 👆, 👩‍💻. ✋️ ⚫️ 👟 🔗 ⚪️➡️ 💃. + +/// + +/// tip + +🚥 👆 💚 🤙 `async` 🔢 👆 💯 ↖️ ⚪️➡️ 📨 📨 👆 FastAPI 🈸 (✅ 🔁 💽 🔢), ✔️ 👀 [🔁 💯](../advanced/async-tests.md){.internal-link target=_blank} 🏧 🔰. + +/// + +## 🎏 💯 + +🎰 🈸, 👆 🎲 🔜 ✔️ 👆 💯 🎏 📁. + +& 👆 **FastAPI** 🈸 5️⃣📆 ✍ 📚 📁/🕹, ♒️. + +### **FastAPI** 📱 📁 + +➡️ 💬 👆 ✔️ 📁 📊 🔬 [🦏 🈸](bigger-applications.md){.internal-link target=_blank}: + +``` +. +├── app +│   ├── __init__.py +│   └── main.py +``` + +📁 `main.py` 👆 ✔️ 👆 **FastAPI** 📱: + + +{* ../../docs_src/app_testing/main.py *} + +### 🔬 📁 + +⤴️ 👆 💪 ✔️ 📁 `test_main.py` ⏮️ 👆 💯. ⚫️ 💪 🖖 🔛 🎏 🐍 📦 (🎏 📁 ⏮️ `__init__.py` 📁): + +``` hl_lines="5" +. +├── app +│   ├── __init__.py +│   ├── main.py +│   └── test_main.py +``` + +↩️ 👉 📁 🎏 📦, 👆 💪 ⚙️ ⚖ 🗄 🗄 🎚 `app` ⚪️➡️ `main` 🕹 (`main.py`): + +{* ../../docs_src/app_testing/test_main.py hl[3] *} + +...& ✔️ 📟 💯 💖 ⏭. + +## 🔬: ↔ 🖼 + +🔜 ➡️ ↔ 👉 🖼 & 🚮 🌖 ℹ 👀 ❔ 💯 🎏 🍕. + +### ↔ **FastAPI** 📱 📁 + +➡️ 😣 ⏮️ 🎏 📁 📊 ⏭: + +``` +. +├── app +│   ├── __init__.py +│   ├── main.py +│   └── test_main.py +``` + +➡️ 💬 👈 🔜 📁 `main.py` ⏮️ 👆 **FastAPI** 📱 ✔️ 🎏 **➡ 🛠️**. + +⚫️ ✔️ `GET` 🛠️ 👈 💪 📨 ❌. + +⚫️ ✔️ `POST` 🛠️ 👈 💪 📨 📚 ❌. + +👯‍♂️ *➡ 🛠️* 🚚 `X-Token` 🎚. + +{* ../../docs_src/app_testing/app_b/main.py *} + +### ↔ 🔬 📁 + +👆 💪 ⤴️ ℹ `test_main.py` ⏮️ ↔ 💯: + +{* ../../docs_src/app_testing/app_b/test_main.py *} + +🕐❔ 👆 💪 👩‍💻 🚶‍♀️ ℹ 📨 & 👆 🚫 💭 ❔, 👆 💪 🔎 (🇺🇸🔍) ❔ ⚫️ `httpx`, ⚖️ ❔ ⚫️ ⏮️ `requests`, 🇸🇲 🔧 ⚓️ 🔛 📨' 🔧. + +⤴️ 👆 🎏 👆 💯. + +🤶 Ⓜ.: + +* 🚶‍♀️ *➡* ⚖️ *🔢* 🔢, 🚮 ⚫️ 📛 ⚫️. +* 🚶‍♀️ 🎻 💪, 🚶‍♀️ 🐍 🎚 (✅ `dict`) 🔢 `json`. +* 🚥 👆 💪 📨 *📨 💽* ↩️ 🎻, ⚙️ `data` 🔢 ↩️. +* 🚶‍♀️ *🎚*, ⚙️ `dict` `headers` 🔢. +* *🍪*, `dict` `cookies` 🔢. + +🌖 ℹ 🔃 ❔ 🚶‍♀️ 💽 👩‍💻 (⚙️ `httpx` ⚖️ `TestClient`) ✅ 🇸🇲 🧾. + +/// info + +🗒 👈 `TestClient` 📨 💽 👈 💪 🗜 🎻, 🚫 Pydantic 🏷. + +🚥 👆 ✔️ Pydantic 🏷 👆 💯 & 👆 💚 📨 🚮 💽 🈸 ⏮️ 🔬, 👆 💪 ⚙️ `jsonable_encoder` 🔬 [🎻 🔗 🔢](encoder.md){.internal-link target=_blank}. + +/// + +## 🏃 ⚫️ + +⏮️ 👈, 👆 💪 ❎ `pytest`: + +
+ +```console +$ pip install pytest + +---> 100% +``` + +
+ +⚫️ 🔜 🔍 📁 & 💯 🔁, 🛠️ 👫, & 📄 🏁 🔙 👆. + +🏃 💯 ⏮️: + +
+ +```console +$ pytest + +================ test session starts ================ +platform linux -- Python 3.6.9, pytest-5.3.5, py-1.8.1, pluggy-0.13.1 +rootdir: /home/user/code/superawesome-cli/app +plugins: forked-1.1.3, xdist-1.31.0, cov-2.8.1 +collected 6 items + +---> 100% + +test_main.py ...... [100%] + +================= 1 passed in 0.03s ================= +``` + +
diff --git a/docs/em/mkdocs.yml b/docs/em/mkdocs.yml new file mode 100644 index 0000000..de18856 --- /dev/null +++ b/docs/em/mkdocs.yml @@ -0,0 +1 @@ +INHERIT: ../en/mkdocs.yml diff --git a/docs/en/data/contributors.yml b/docs/en/data/contributors.yml new file mode 100644 index 0000000..163dc68 --- /dev/null +++ b/docs/en/data/contributors.yml @@ -0,0 +1,570 @@ +tiangolo: + login: tiangolo + count: 808 + avatarUrl: https://avatars.githubusercontent.com/u/1326112?u=cb5d06e73a9e1998141b1641aa88e443c6717651&v=4 + url: https://github.com/tiangolo +dependabot: + login: dependabot + count: 130 + avatarUrl: https://avatars.githubusercontent.com/in/29110?v=4 + url: https://github.com/apps/dependabot +alejsdev: + login: alejsdev + count: 52 + avatarUrl: https://avatars.githubusercontent.com/u/90076947?u=85ceac49fb87138aebe8d663912e359447329090&v=4 + url: https://github.com/alejsdev +pre-commit-ci: + login: pre-commit-ci + count: 50 + avatarUrl: https://avatars.githubusercontent.com/in/68672?v=4 + url: https://github.com/apps/pre-commit-ci +github-actions: + login: github-actions + count: 26 + avatarUrl: https://avatars.githubusercontent.com/in/15368?v=4 + url: https://github.com/apps/github-actions +Kludex: + login: Kludex + count: 25 + avatarUrl: https://avatars.githubusercontent.com/u/7353520?u=df8a3f06ba8f55ae1967a3e2d5ed882903a4e330&v=4 + url: https://github.com/Kludex +YuriiMotov: + login: YuriiMotov + count: 20 + avatarUrl: https://avatars.githubusercontent.com/u/109919500?u=b9b13d598dddfab529a52d264df80a900bfe7060&v=4 + url: https://github.com/YuriiMotov +dmontagu: + login: dmontagu + count: 17 + avatarUrl: https://avatars.githubusercontent.com/u/35119617?u=540f30c937a6450812628b9592a1dfe91bbe148e&v=4 + url: https://github.com/dmontagu +nilslindemann: + login: nilslindemann + count: 15 + avatarUrl: https://avatars.githubusercontent.com/u/6892179?u=1dca6a22195d6cd1ab20737c0e19a4c55d639472&v=4 + url: https://github.com/nilslindemann +svlandeg: + login: svlandeg + count: 14 + avatarUrl: https://avatars.githubusercontent.com/u/8796347?u=556c97650c27021911b0b9447ec55e75987b0e8a&v=4 + url: https://github.com/svlandeg +euri10: + login: euri10 + count: 13 + avatarUrl: https://avatars.githubusercontent.com/u/1104190?u=321a2e953e6645a7d09b732786c7a8061e0f8a8b&v=4 + url: https://github.com/euri10 +kantandane: + login: kantandane + count: 13 + avatarUrl: https://avatars.githubusercontent.com/u/3978368?u=cccc199291f991a73b1ebba5abc735a948e0bd16&v=4 + url: https://github.com/kantandane +zhaohan-dong: + login: zhaohan-dong + count: 11 + avatarUrl: https://avatars.githubusercontent.com/u/65422392?u=8260f8781f50248410ebfa4c9bf70e143fe5c9f2&v=4 + url: https://github.com/zhaohan-dong +mariacamilagl: + login: mariacamilagl + count: 9 + avatarUrl: https://avatars.githubusercontent.com/u/11489395?u=4adb6986bf3debfc2b8216ae701f2bd47d73da7d&v=4 + url: https://github.com/mariacamilagl +handabaldeep: + login: handabaldeep + count: 9 + avatarUrl: https://avatars.githubusercontent.com/u/12239103?u=6c39ef15d14c6d5211f5dd775cc4842f8d7f2f3a&v=4 + url: https://github.com/handabaldeep +vishnuvskvkl: + login: vishnuvskvkl + count: 8 + avatarUrl: https://avatars.githubusercontent.com/u/84698110?u=8af5de0520dd4fa195f53c2850a26f57c0f6bc64&v=4 + url: https://github.com/vishnuvskvkl +alissadb: + login: alissadb + count: 6 + avatarUrl: https://avatars.githubusercontent.com/u/96190409?u=be42d85938c241be781505a5a872575be28b2906&v=4 + url: https://github.com/alissadb +alv2017: + login: alv2017 + count: 6 + avatarUrl: https://avatars.githubusercontent.com/u/31544722?v=4 + url: https://github.com/alv2017 +wshayes: + login: wshayes + count: 5 + avatarUrl: https://avatars.githubusercontent.com/u/365303?u=07ca03c5ee811eb0920e633cc3c3db73dbec1aa5&v=4 + url: https://github.com/wshayes +samuelcolvin: + login: samuelcolvin + count: 5 + avatarUrl: https://avatars.githubusercontent.com/u/4039449?u=42eb3b833047c8c4b4f647a031eaef148c16d93f&v=4 + url: https://github.com/samuelcolvin +waynerv: + login: waynerv + count: 5 + avatarUrl: https://avatars.githubusercontent.com/u/39515546?u=ec35139777597cdbbbddda29bf8b9d4396b429a9&v=4 + url: https://github.com/waynerv +musicinmybrain: + login: musicinmybrain + count: 5 + avatarUrl: https://avatars.githubusercontent.com/u/6898909?u=9010312053e7141383b9bdf538036c7f37fbaba0&v=4 + url: https://github.com/musicinmybrain +krishnamadhavan: + login: krishnamadhavan + count: 5 + avatarUrl: https://avatars.githubusercontent.com/u/31798870?u=950693b28f3ae01105fd545c046e46ca3d31ab06&v=4 + url: https://github.com/krishnamadhavan +jekirl: + login: jekirl + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/2546697?u=a027452387d85bd4a14834e19d716c99255fb3b7&v=4 + url: https://github.com/jekirl +hitrust: + login: hitrust + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/3360631?u=5fa1f475ad784d64eb9666bdd43cc4d285dcc773&v=4 + url: https://github.com/hitrust +ShahriyarR: + login: ShahriyarR + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/3852029?u=631b2ae59360ab380c524b32bc3d245aff1165af&v=4 + url: https://github.com/ShahriyarR +adriangb: + login: adriangb + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/1755071?u=612704256e38d6ac9cbed24f10e4b6ac2da74ecb&v=4 + url: https://github.com/adriangb +iudeen: + login: iudeen + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/10519440?u=f09cdd745e5bf16138f29b42732dd57c7f02bee1&v=4 + url: https://github.com/iudeen +philipokiokio: + login: philipokiokio + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/55271518?u=d30994d339aaaf1f6bf1b8fc810132016fbd4fdc&v=4 + url: https://github.com/philipokiokio +AlexWendland: + login: AlexWendland + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/3949212?u=c4c0c615e0ea33d00bfe16b779cf6ebc0f58071c&v=4 + url: https://github.com/AlexWendland +divums: + login: divums + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/1397556?v=4 + url: https://github.com/divums +prostomarkeloff: + login: prostomarkeloff + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/28061158?u=6918e39a1224194ba636e897461a02a20126d7ad&v=4 + url: https://github.com/prostomarkeloff +frankie567: + login: frankie567 + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/1144727?u=f3e79acfe4ed207e15c2145161a8a9759925fcd2&v=4 + url: https://github.com/frankie567 +nsidnev: + login: nsidnev + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/22559461?u=a9cc3238217e21dc8796a1a500f01b722adb082c&v=4 + url: https://github.com/nsidnev +pawamoy: + login: pawamoy + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/3999221?u=b030e4c89df2f3a36bc4710b925bdeb6745c9856&v=4 + url: https://github.com/pawamoy +patrickmckenna: + login: patrickmckenna + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/3589536?u=53aef07250d226d35e526768e26891964907b41a&v=4 + url: https://github.com/patrickmckenna +hukkin: + login: hukkin + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/3275109?u=77bb83759127965eacbfe67e2ca983066e964fde&v=4 + url: https://github.com/hukkin +marcosmmb: + login: marcosmmb + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/6181089?u=03c50eec631857d84df5232890780d00a3f76903&v=4 + url: https://github.com/marcosmmb +Serrones: + login: Serrones + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/22691749?u=4795b880e13ca33a73e52fc0ef7dc9c60c8fce47&v=4 + url: https://github.com/Serrones +uriyyo: + login: uriyyo + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/32038156?u=c26ca9b821fcf6499b84db75f553d4980bf8d023&v=4 + url: https://github.com/uriyyo +andrew222651: + login: andrew222651 + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/889657?u=d70187989940b085bcbfa3bedad8dbc5f3ab1fe7&v=4 + url: https://github.com/andrew222651 +rkbeatss: + login: rkbeatss + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/23391143?u=56ab6bff50be950fa8cae5cf736f2ae66e319ff3&v=4 + url: https://github.com/rkbeatss +asheux: + login: asheux + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/22955146?u=4553ebf5b5a7c7fe031a46182083aa224faba2e1&v=4 + url: https://github.com/asheux +blkst8: + login: blkst8 + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/49960770?u=7d8a6d5f0a75a5e9a865a2527edfd48895ea27ae&v=4 + url: https://github.com/blkst8 +ghandic: + login: ghandic + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/23500353?u=e2e1d736f924d9be81e8bfc565b6d8836ba99773&v=4 + url: https://github.com/ghandic +TeoZosa: + login: TeoZosa + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/13070236?u=96fdae85800ef85dcfcc4b5f8281dc8778c8cb7d&v=4 + url: https://github.com/TeoZosa +graingert: + login: graingert + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/413772?v=4 + url: https://github.com/graingert +jaystone776: + login: jaystone776 + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/11191137?u=299205a95e9b6817a43144a48b643346a5aac5cc&v=4 + url: https://github.com/jaystone776 +zanieb: + login: zanieb + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/2586601?u=e5c86f7ff3b859e7e183187ac2b17fd6ee32b3ab&v=4 + url: https://github.com/zanieb +MicaelJarniac: + login: MicaelJarniac + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/19514231?u=158c91874ea98d6e9e6f0c6db37ee2ce60c55ff2&v=4 + url: https://github.com/MicaelJarniac +papb: + login: papb + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/20914054?u=890511fae7ea90d887e2a65ce44a1775abba38d5&v=4 + url: https://github.com/papb +tamird: + login: tamird + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/1535036?v=4 + url: https://github.com/tamird +Nimitha-jagadeesha: + login: Nimitha-jagadeesha + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/58389915?v=4 + url: https://github.com/Nimitha-jagadeesha +lucaromagnoli: + login: lucaromagnoli + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/38782977?u=15df02e806a2293af40ac619fba11dbe3c0c4fd4&v=4 + url: https://github.com/lucaromagnoli +salmantec: + login: salmantec + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/41512228?u=443551b893ff2425c59d5d021644f098cf7c68d5&v=4 + url: https://github.com/salmantec +OCE1960: + login: OCE1960 + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/45076670?u=0e9a44712b92ffa89ddfbaa83c112f3f8e1d68e2&v=4 + url: https://github.com/OCE1960 +hamidrasti: + login: hamidrasti + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/43915620?v=4 + url: https://github.com/hamidrasti +valentinDruzhinin: + login: valentinDruzhinin + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/12831905?u=aae1ebc675c91e8fa582df4fcc4fc4128106344d&v=4 + url: https://github.com/valentinDruzhinin +kkinder: + login: kkinder + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/1115018?u=c5e90284a9f5c5049eae1bb029e3655c7dc913ed&v=4 + url: https://github.com/kkinder +kabirkhan: + login: kabirkhan + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/13891834?u=e0eabf792376443ac853e7dca6f550db4166fe35&v=4 + url: https://github.com/kabirkhan +zamiramir: + login: zamiramir + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/40475662?v=4 + url: https://github.com/zamiramir +trim21: + login: trim21 + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/13553903?u=3cadf0f02095c9621aa29df6875f53a80ca4fbfb&v=4 + url: https://github.com/trim21 +koxudaxi: + login: koxudaxi + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/630670?u=507d8577b4b3670546b449c4c2ccbc5af40d72f7&v=4 + url: https://github.com/koxudaxi +pablogamboa: + login: pablogamboa + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/12892536?u=326a57059ee0c40c4eb1b38413957236841c631b&v=4 + url: https://github.com/pablogamboa +dconathan: + login: dconathan + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/15098095?v=4 + url: https://github.com/dconathan +Jamim: + login: Jamim + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/5607572?u=9ce0b6a6d1a5124e28b3c04d8d26827ca328713a&v=4 + url: https://github.com/Jamim +svalouch: + login: svalouch + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/54674660?v=4 + url: https://github.com/svalouch +marier-nico: + login: marier-nico + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/30477068?u=c7df6af853c8f4163d1517814f3e9a0715c82713&v=4 + url: https://github.com/marier-nico +Dustyposa: + login: Dustyposa + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/27180793?u=5cf2877f50b3eb2bc55086089a78a36f07042889&v=4 + url: https://github.com/Dustyposa +aviramha: + login: aviramha + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/41201924?u=ce5d3ea7037c2e6b3f82eff87e2217d4fb63214b&v=4 + url: https://github.com/aviramha +iwpnd: + login: iwpnd + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/6152183?u=ec59396e9437fff488791c5ecdf6d23f1f1ebf3a&v=4 + url: https://github.com/iwpnd +raphaelauv: + login: raphaelauv + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/10202690?u=e6f86f5c0c3026a15d6b51792fa3e532b12f1371&v=4 + url: https://github.com/raphaelauv +windson: + login: windson + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/1826682?u=8b28dcd716c46289f191f8828e01d74edd058bef&v=4 + url: https://github.com/windson +sm-Fifteen: + login: sm-Fifteen + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/516999?u=437c0c5038558c67e887ccd863c1ba0f846c03da&v=4 + url: https://github.com/sm-Fifteen +sattosan: + login: sattosan + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/20574756?u=b0d8474d2938189c6954423ae8d81d91013f80a8&v=4 + url: https://github.com/sattosan +michaeloliverx: + login: michaeloliverx + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/55017335?u=efb0cb6e261ff64d862fafb91ee80fc2e1f8a2ed&v=4 + url: https://github.com/michaeloliverx +voegtlel: + login: voegtlel + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/5764745?u=db8df3d70d427928ab6d7dbfc395a4a7109c1d1b&v=4 + url: https://github.com/voegtlel +HarshaLaxman: + login: HarshaLaxman + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/19939186?u=a112f38b0f6b4d4402dc8b51978b5a0b2e5c5970&v=4 + url: https://github.com/HarshaLaxman +RunningIkkyu: + login: RunningIkkyu + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/31848542?u=494ecc298e3f26197495bb357ad0f57cfd5f7a32&v=4 + url: https://github.com/RunningIkkyu +cassiobotaro: + login: cassiobotaro + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/3127847?u=a08022b191ddbd0a6159b2981d9d878b6d5bb71f&v=4 + url: https://github.com/cassiobotaro +chenl: + login: chenl + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/1677651?u=c618508eaad6d596cea36c8ea784b424288f6857&v=4 + url: https://github.com/chenl +retnikt: + login: retnikt + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/24581770?v=4 + url: https://github.com/retnikt +yankeexe: + login: yankeexe + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/13623913?u=f970e66421775a8d3cdab89c0c752eaead186f6d&v=4 + url: https://github.com/yankeexe +patrickkwang: + login: patrickkwang + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/1263870?u=4bf74020e15be490f19ef8322a76eec882220b96&v=4 + url: https://github.com/patrickkwang +victorphoenix3: + login: victorphoenix3 + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/48182195?u=e4875bd088623cb4ddeb7be194ec54b453aff035&v=4 + url: https://github.com/victorphoenix3 +davidefiocco: + login: davidefiocco + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/4547987?v=4 + url: https://github.com/davidefiocco +adriencaccia: + login: adriencaccia + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/19605940?u=9a59081f46bfc9d839886a49d5092cf572879049&v=4 + url: https://github.com/adriencaccia +jamescurtin: + login: jamescurtin + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/10189269?u=0b491fc600ca51f41cf1d95b49fa32a3eba1de57&v=4 + url: https://github.com/jamescurtin +jmriebold: + login: jmriebold + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/6983392?u=4efdc97bf2422dcc7e9ff65b9ff80087c8eb2a20&v=4 + url: https://github.com/jmriebold +nukopy: + login: nukopy + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/42367320?u=6061be0bd060506f6d564a8df3ae73fab048cdfe&v=4 + url: https://github.com/nukopy +imba-tjd: + login: imba-tjd + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/24759802?u=01e901a4fe004b4b126549d3ff1c4000fe3720b5&v=4 + url: https://github.com/imba-tjd +johnthagen: + login: johnthagen + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/10340167?u=47147fc4e4db1f573bee3fe428deeacb3197bc5f&v=4 + url: https://github.com/johnthagen +paxcodes: + login: paxcodes + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/13646646?u=e7429cc7ab11211ef762f4cd3efea7db6d9ef036&v=4 + url: https://github.com/paxcodes +kaustubhgupta: + login: kaustubhgupta + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/43691873?u=8dd738718ac7ffad4ef31e86b5d780a1141c695d&v=4 + url: https://github.com/kaustubhgupta +kinuax: + login: kinuax + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/13321374?u=22dc9873d6d9f2c7e4fc44c6480c3505efb1531f&v=4 + url: https://github.com/kinuax +wakabame: + login: wakabame + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/35513518?u=41ef6b0a55076e5c540620d68fb006e386c2ddb0&v=4 + url: https://github.com/wakabame +nzig: + login: nzig + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/7372858?u=e769add36ed73c778cdb136eb10bf96b1e119671&v=4 + url: https://github.com/nzig +kristjanvalur: + login: kristjanvalur + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/6009543?u=1419f20bbfff8f031be8cb470962e7e62de2595e&v=4 + url: https://github.com/kristjanvalur +yezz123: + login: yezz123 + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/52716203?u=21b53ce4115062b1e20cb513e64ca0000c2ef127&v=4 + url: https://github.com/yezz123 +softwarebloat: + login: softwarebloat + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/16540684?v=4 + url: https://github.com/softwarebloat +Lancetnik: + login: Lancetnik + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/44573917?u=6eaa0cdd35259fba40a76b82e4903440cba03fa9&v=4 + url: https://github.com/Lancetnik +joakimnordling: + login: joakimnordling + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/6637576?u=df5d99db9b899b399effd429f4358baaa6f7199c&v=4 + url: https://github.com/joakimnordling +yogabonito: + login: yogabonito + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/7026269?v=4 + url: https://github.com/yogabonito +s111d: + login: s111d + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/4954856?v=4 + url: https://github.com/s111d +estebanx64: + login: estebanx64 + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/10840422?u=1900887aeed268699e5ea6f3fb7db614f7b77cd3&v=4 + url: https://github.com/estebanx64 +ndimares: + login: ndimares + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/6267663?u=cfb27efde7a7212be8142abb6c058a1aeadb41b1&v=4 + url: https://github.com/ndimares +rabinlamadong: + login: rabinlamadong + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/170439781?v=4 + url: https://github.com/rabinlamadong +AyushSinghal1794: + login: AyushSinghal1794 + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/89984761?v=4 + url: https://github.com/AyushSinghal1794 +gsheni: + login: gsheni + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/8726321?u=ee3bd9ff6320f4715d1dd9671a3d55cccb65b984&v=4 + url: https://github.com/gsheni +chailandau: + login: chailandau + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/112015853?u=2e6aaf2b1647db43834aabeae8d8282b4ec01873&v=4 + url: https://github.com/chailandau +DanielKusyDev: + login: DanielKusyDev + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/36250676?u=2ea6114ff751fc48b55f231987a0e2582c6b1bd2&v=4 + url: https://github.com/DanielKusyDev +DanielYang59: + login: DanielYang59 + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/80093591?u=63873f701c7c74aac83c906800a1dddc0bc8c92f&v=4 + url: https://github.com/DanielYang59 +blueswen: + login: blueswen + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/1564148?u=6d6b8cc8f2b5cef715e68d6175154a8a94d518ee&v=4 + url: https://github.com/blueswen +Taoup: + login: Taoup + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/22348542?v=4 + url: https://github.com/Taoup diff --git a/docs/en/data/external_links.yml b/docs/en/data/external_links.yml new file mode 100644 index 0000000..6e71ab9 --- /dev/null +++ b/docs/en/data/external_links.yml @@ -0,0 +1,430 @@ +Articles: + English: + - author: Apitally + author_link: https://apitally.io + link: https://apitally.io/blog/getting-started-with-logging-in-fastapi + title: Getting started with logging in FastAPI + - author: Balthazar Rouberol + author_link: https://balthazar-rouberol.com + link: https://blog.balthazar-rouberol.com/how-to-profile-a-fastapi-asynchronous-request + title: How to profile a FastAPI asynchronous request + - author: Stephen Siegert - Neon + link: https://neon.tech/blog/deploy-a-serverless-fastapi-app-with-neon-postgres-and-aws-app-runner-at-any-scale + title: Deploy a Serverless FastAPI App with Neon Postgres and AWS App Runner at any scale + - author: Kurtis Pykes - NVIDIA + link: https://developer.nvidia.com/blog/building-a-machine-learning-microservice-with-fastapi/ + title: Building a Machine Learning Microservice with FastAPI + - author: Ravgeet Dhillon - Twilio + link: https://www.twilio.com/en-us/blog/booking-appointments-twilio-notion-fastapi + title: Booking Appointments with Twilio, Notion, and FastAPI + - author: Abhinav Tripathi - Microsoft Blogs + link: https://devblogs.microsoft.com/cosmosdb/azure-cosmos-db-python-and-fastapi/ + title: Write a Python data layer with Azure Cosmos DB and FastAPI + - author: Donny Peeters + author_link: https://github.com/Donnype + link: https://bitestreams.com/blog/fastapi-sqlalchemy/ + title: 10 Tips for adding SQLAlchemy to FastAPI + - author: Jessica Temporal + author_link: https://jtemporal.com/socials + link: https://jtemporal.com/tips-on-migrating-from-flask-to-fastapi-and-vice-versa/ + title: Tips on migrating from Flask to FastAPI and vice-versa + - author: Ankit Anchlia + author_link: https://linkedin.com/in/aanchlia21 + link: https://hackernoon.com/explore-how-to-effectively-use-jwt-with-fastapi + title: Explore How to Effectively Use JWT With FastAPI + - author: Nicoló Lino + author_link: https://www.nlino.com + link: https://github.com/softwarebloat/python-tracing-demo + title: Instrument FastAPI with OpenTelemetry tracing and visualize traces in Grafana Tempo. + - author: Mikhail Rozhkov, Elena Samuylova + author_link: https://www.linkedin.com/in/mnrozhkov/ + link: https://www.evidentlyai.com/blog/fastapi-tutorial + title: ML serving and monitoring with FastAPI and Evidently + - author: Visual Studio Code Team + author_link: https://code.visualstudio.com/ + link: https://code.visualstudio.com/docs/python/tutorial-fastapi + title: FastAPI Tutorial in Visual Studio Code + - author: Apitally + author_link: https://apitally.io + link: https://blog.apitally.io/fastapi-application-monitoring-made-easy + title: FastAPI application monitoring made easy + - author: John Philip + author_link: https://medium.com/@amjohnphilip + link: https://python.plainenglish.io/building-a-restful-api-with-fastapi-secure-signup-and-login-functionality-included-45cdbcb36106 + title: "Building a RESTful API with FastAPI: Secure Signup and Login Functionality Included" + - author: Keshav Malik + author_link: https://theinfosecguy.xyz/ + link: https://blog.theinfosecguy.xyz/building-a-crud-api-with-fastapi-and-supabase-a-step-by-step-guide + title: Building a CRUD API with FastAPI and Supabase + - author: Adejumo Ridwan Suleiman + author_link: https://www.linkedin.com/in/adejumoridwan/ + link: https://medium.com/python-in-plain-english/build-an-sms-spam-classifier-serverless-database-with-faunadb-and-fastapi-23dbb275bc5b + title: Build an SMS Spam Classifier Serverless Database with FaunaDB and FastAPI + - author: Raf Rasenberg + author_link: https://rafrasenberg.com/about/ + link: https://rafrasenberg.com/fastapi-lambda/ + title: 'FastAPI lambda container: serverless simplified' + - author: Teresa N. Fontanella De Santis + author_link: https://dev.to/ + link: https://dev.to/teresafds/authorization-on-fastapi-with-casbin-41og + title: Authorization on FastAPI with Casbin + - author: New Relic + author_link: https://newrelic.com + link: https://newrelic.com/instant-observability/fastapi/e559ec64-f765-4470-a15f-1901fcebb468 + title: How to monitor FastAPI application performance using Python agent + - author: Jean-Baptiste Rocher + author_link: https://hashnode.com/@jibrocher + link: https://dev.indooroutdoor.io/series/fastapi-react-poll-app + title: Building the Poll App From Django Tutorial With FastAPI And React + - author: Silvan Melchior + author_link: https://github.com/silvanmelchior + link: https://blog.devgenius.io/seamless-fastapi-configuration-with-confz-90949c14ea12 + title: Seamless FastAPI Configuration with ConfZ + - author: Kaustubh Gupta + author_link: https://medium.com/@kaustubhgupta1828/ + link: https://levelup.gitconnected.com/5-advance-features-of-fastapi-you-should-try-7c0ac7eebb3e + title: 5 Advanced Features of FastAPI You Should Try + - author: Kaustubh Gupta + author_link: https://medium.com/@kaustubhgupta1828/ + link: https://www.analyticsvidhya.com/blog/2021/06/deploying-ml-models-as-api-using-fastapi-and-heroku/ + title: Deploying ML Models as API Using FastAPI and Heroku + - link: https://jarmos.netlify.app/posts/using-github-actions-to-deploy-a-fastapi-project-to-heroku/ + title: Using GitHub Actions to Deploy a FastAPI Project to Heroku + author_link: https://jarmos.netlify.app/ + author: Somraj Saha + - author: "@pystar" + author_link: https://pystar.substack.com/ + link: https://pystar.substack.com/p/how-to-create-a-fake-certificate + title: How to Create A Fake Certificate Authority And Generate TLS Certs for FastAPI + - author: Ben Gamble + author_link: https://uk.linkedin.com/in/bengamble7 + link: https://ably.com/blog/realtime-ticket-booking-solution-kafka-fastapi-ably + title: Building a realtime ticket booking solution with Kafka, FastAPI, and Ably + - author: Shahriyar(Shako) Rzayev + author_link: https://www.linkedin.com/in/shahriyar-rzayev/ + link: https://www.azepug.az/posts/fastapi/#building-simple-e-commerce-with-nuxtjs-and-fastapi-series + title: Building simple E-Commerce with NuxtJS and FastAPI + - author: Rodrigo Arenas + author_link: https://rodrigo-arenas.medium.com/ + link: https://medium.com/analytics-vidhya/serve-a-machine-learning-model-using-sklearn-fastapi-and-docker-85aabf96729b + title: "Serve a machine learning model using Sklearn, FastAPI and Docker" + - author: Yashasvi Singh + author_link: https://hashnode.com/@aUnicornDev + link: https://aunicorndev.hashnode.dev/series/supafast-api + title: "Building an API with FastAPI and Supabase and Deploying on Deta" + - author: Navule Pavan Kumar Rao + author_link: https://www.linkedin.com/in/navule/ + link: https://www.tutlinks.com/deploy-fastapi-on-ubuntu-gunicorn-caddy-2/ + title: Deploy FastAPI on Ubuntu and Serve using Caddy 2 Web Server + - author: Patrick Ladon + author_link: https://dev.to/factorlive + link: https://dev.to/factorlive/python-facebook-messenger-webhook-with-fastapi-on-glitch-4n90 + title: Python Facebook messenger webhook with FastAPI on Glitch + - author: Valon Januzaj + author_link: https://www.linkedin.com/in/valon-januzaj-b02692187/ + link: https://valonjanuzaj.medium.com/deploy-a-dockerized-fastapi-application-to-aws-cc757830ba1b + title: Deploy a dockerized FastAPI application to AWS + - author: Amit Chaudhary + author_link: https://x.com/amitness + link: https://amitness.com/2020/06/fastapi-vs-flask/ + title: FastAPI for Flask Users + - author: Louis Guitton + author_link: https://x.com/louis_guitton + link: https://guitton.co/posts/fastapi-monitoring/ + title: How to monitor your FastAPI service + - author: Precious Ndubueze + author_link: https://medium.com/@gabbyprecious2000 + link: https://medium.com/@gabbyprecious2000/creating-a-crud-app-with-fastapi-part-one-7c049292ad37 + title: Creating a CRUD App with FastAPI (Part one) + - author: Farhad Malik + author_link: https://medium.com/@farhadmalik + link: https://towardsdatascience.com/build-and-host-fast-data-science-applications-using-fastapi-823be8a1d6a0 + title: Build And Host Fast Data Science Applications Using FastAPI + - author: Navule Pavan Kumar Rao + author_link: https://www.linkedin.com/in/navule/ + link: https://www.tutlinks.com/deploy-fastapi-on-azure/ + title: Deploy FastAPI on Azure App Service + - author: Davide Fiocco + author_link: https://github.com/davidefiocco + link: https://davidefiocco.github.io/streamlit-fastapi-ml-serving/ + title: Machine learning model serving in Python using FastAPI and streamlit + - author: Netflix + author_link: https://netflixtechblog.com/ + link: https://netflixtechblog.com/introducing-dispatch-da4b8a2a8072 + title: Introducing Dispatch + - author: Stavros Korokithakis + author_link: https://x.com/Stavros + link: https://www.stavros.io/posts/fastapi-with-django/ + title: Using FastAPI with Django + - author: Twilio + author_link: https://www.twilio.com + link: https://www.twilio.com/blog/build-secure-twilio-webhook-python-fastapi + title: Build a Secure Twilio Webhook with Python and FastAPI + - author: Sebastián Ramírez (tiangolo) + author_link: https://x.com/tiangolo + link: https://dev.to/tiangolo/build-a-web-api-from-scratch-with-fastapi-the-workshop-2ehe + title: Build a web API from scratch with FastAPI - the workshop + - author: Paul Sec + author_link: https://x.com/PaulWebSec + link: https://paulsec.github.io/posts/fastapi_plus_zeit_serverless_fu/ + title: FastAPI + Zeit.co = 🚀 + - author: cuongld2 + author_link: https://dev.to/cuongld2 + link: https://dev.to/cuongld2/build-simple-api-service-with-python-fastapi-part-1-581o + title: Build simple API service with Python FastAPI — Part 1 + - author: Paurakh Sharma Humagain + author_link: https://x.com/PaurakhSharma + link: https://dev.to/paurakhsharma/microservice-in-python-using-fastapi-24cc + title: Microservice in Python using FastAPI + - author: Guillermo Cruz + author_link: https://wuilly.com/ + link: https://wuilly.com/2019/10/real-time-notifications-with-python-and-postgres/ + title: Real-time Notifications with Python and Postgres + - author: Navule Pavan Kumar Rao + author_link: https://www.linkedin.com/in/navule/ + link: https://www.tutlinks.com/create-and-deploy-fastapi-app-to-heroku/ + title: Create and Deploy FastAPI app to Heroku without using Docker + - author: Arthur Henrique + author_link: https://x.com/arthurheinrique + link: https://medium.com/@arthur393/another-boilerplate-to-fastapi-azure-pipeline-ci-pytest-3c8d9a4be0bb + title: 'Another Boilerplate to FastAPI: Azure Pipeline CI + Pytest' + - author: Shane Soh + author_link: https://medium.com/@shane.soh + link: https://medium.com/analytics-vidhya/deploy-machine-learning-models-with-keras-fastapi-redis-and-docker-4940df614ece + title: Deploy Machine Learning Models with Keras, FastAPI, Redis and Docker + - author: Mandy Gu + author_link: https://towardsdatascience.com/@mandygu + link: https://towardsdatascience.com/deploying-iris-classifications-with-fastapi-and-docker-7c9b83fdec3a + title: 'Towards Data Science: Deploying Iris Classifications with FastAPI and Docker' + - author: Michael Herman + author_link: https://testdriven.io/authors/herman + link: https://testdriven.io/blog/fastapi-crud/ + title: 'TestDriven.io: Developing and Testing an Asynchronous API with FastAPI and Pytest' + - author: Bernard Brenyah + author_link: https://medium.com/@bbrenyah + link: https://medium.com/python-data/how-to-deploy-tensorflow-2-0-models-as-an-api-service-with-fastapi-docker-128b177e81f3 + title: How To Deploy Tensorflow 2.0 Models As An API Service With FastAPI & Docker + - author: Dylan Anthony + author_link: https://dev.to/dbanty + link: https://dev.to/dbanty/why-i-m-leaving-flask-3ki6 + title: Why I'm Leaving Flask + - author: Mike Moritz + author_link: https://medium.com/@mike.p.moritz + link: https://medium.com/@mike.p.moritz/using-docker-compose-to-deploy-a-lightweight-python-rest-api-with-a-job-queue-37e6072a209b + title: Using Docker Compose to deploy a lightweight Python REST API with a job queue + - author: '@euri10' + author_link: https://gitlab.com/euri10 + link: https://gitlab.com/euri10/fastapi_cheatsheet + title: A FastAPI and Swagger UI visual cheatsheet + - author: Uber Engineering + author_link: https://eng.uber.com + link: https://eng.uber.com/ludwig-v0-2/ + title: 'Uber: Ludwig v0.2 Adds New Features and Other Improvements to its Deep Learning Toolbox [including a FastAPI server]' + - author: Maarten Grootendorst + author_link: https://www.linkedin.com/in/mgrootendorst/ + link: https://towardsdatascience.com/how-to-deploy-a-machine-learning-model-dc51200fe8cf + title: How to Deploy a Machine Learning Model + - author: Johannes Gontrum + author_link: https://x.com/gntrm + link: https://medium.com/@gntrm/jwt-authentication-with-fastapi-and-aws-cognito-1333f7f2729e + title: JWT Authentication with FastAPI and AWS Cognito + - author: Ankush Thakur + author_link: https://geekflare.com/author/ankush/ + link: https://geekflare.com/python-asynchronous-web-frameworks/ + title: Top 5 Asynchronous Web Frameworks for Python + - author: Nico Axtmann + author_link: https://www.linkedin.com/in/nico-axtmann + link: https://medium.com/@nico.axtmann95/deploying-a-scikit-learn-model-with-onnx-und-fastapi-1af398268915 + title: Deploying a scikit-learn model with ONNX and FastAPI + - author: Nils de Bruin + author_link: https://medium.com/@nilsdebruin + link: https://medium.com/data-rebels/fastapi-authentication-revisited-enabling-api-key-authentication-122dc5975680 + title: 'FastAPI authentication revisited: Enabling API key authentication' + - author: Nick Cortale + author_link: https://nickc1.github.io/ + link: https://nickc1.github.io/api,/scikit-learn/2019/01/10/scikit-fastapi.html + title: 'FastAPI and Scikit-Learn: Easily Deploy Models' + - author: Errieta Kostala + author_link: https://dev.to/errietta + link: https://dev.to/errietta/introduction-to-the-fastapi-python-framework-2n10 + title: Introduction to the fastapi python framework + - author: Nils de Bruin + author_link: https://medium.com/@nilsdebruin + link: https://medium.com/data-rebels/fastapi-how-to-add-basic-and-cookie-authentication-a45c85ef47d3 + title: FastAPI — How to add basic and cookie authentication + - author: Nils de Bruin + author_link: https://medium.com/@nilsdebruin + link: https://medium.com/data-rebels/fastapi-google-as-an-external-authentication-provider-3a527672cf33 + title: FastAPI — Google as an external authentication provider + - author: William Hayes + author_link: https://medium.com/@williamhayes + link: https://medium.com/@williamhayes/fastapi-starlette-debug-vs-prod-5f7561db3a59 + title: FastAPI/Starlette debug vs prod + - author: Mukul Mantosh + author_link: https://x.com/MantoshMukul + link: https://www.jetbrains.com/pycharm/guide/tutorials/fastapi-aws-kubernetes/ + title: Developing FastAPI Application using K8s & AWS + - author: KrishNa + author_link: https://medium.com/@krishnardt365 + link: https://medium.com/@krishnardt365/fastapi-docker-and-postgres-91943e71be92 + title: Fastapi, Docker(Docker compose) and Postgres + - author: Devon Ray + author_link: https://devonray.com + link: https://devonray.com/blog/deploying-a-fastapi-project-using-aws-lambda-aurora-cdk + title: Deployment using Docker, Lambda, Aurora, CDK & GH Actions + - author: Shubhendra Kushwaha + author_link: https://www.linkedin.com/in/theshubhendra/ + link: https://theshubhendra.medium.com/mastering-soft-delete-advanced-sqlalchemy-techniques-4678f4738947 + title: 'Mastering Soft Delete: Advanced SQLAlchemy Techniques' + - author: Shubhendra Kushwaha + author_link: https://www.linkedin.com/in/theshubhendra/ + link: https://theshubhendra.medium.com/role-based-row-filtering-advanced-sqlalchemy-techniques-733e6b1328f6 + title: 'Role based row filtering: Advanced SQLAlchemy Techniques' + German: + - author: Marcel Sander (actidoo) + author_link: https://www.actidoo.com + link: https://www.actidoo.com/de/blog/python-fastapi-domain-driven-design + title: Domain-driven Design mit Python und FastAPI + - author: Nico Axtmann + author_link: https://x.com/_nicoax + link: https://blog.codecentric.de/2019/08/inbetriebnahme-eines-scikit-learn-modells-mit-onnx-und-fastapi/ + title: Inbetriebnahme eines scikit-learn-Modells mit ONNX und FastAPI + - author: Felix Schürmeyer + author_link: https://hellocoding.de/autor/felix-schuermeyer/ + link: https://hellocoding.de/blog/coding-language/python/fastapi + title: REST-API Programmieren mittels Python und dem FastAPI Modul + Japanese: + - author: '@bee2' + author_link: https://qiita.com/bee2 + link: https://qiita.com/bee2/items/75d9c0d7ba20e7a4a0e9 + title: '[FastAPI] Python製のASGI Web フレームワーク FastAPIに入門する' + - author: '@bee2' + author_link: https://qiita.com/bee2 + link: https://qiita.com/bee2/items/0ad260ab9835a2087dae + title: PythonのWeb frameworkのパフォーマンス比較 (Django, Flask, responder, FastAPI, japronto) + - author: ライトコードメディア編集部 + author_link: https://rightcode.co.jp/author/jun + link: https://rightcode.co.jp/blog/information-technology/fastapi-tutorial-todo-apps-admin-page-improvement + title: '【第4回】FastAPIチュートリアル: toDoアプリを作ってみよう【管理者ページ改良編】' + - author: ライトコードメディア編集部 + author_link: https://rightcode.co.jp/author/jun + link: https://rightcode.co.jp/blog/information-technology/fastapi-tutorial-todo-apps-authentication-user-registration + title: '【第3回】FastAPIチュートリアル: toDoアプリを作ってみよう【認証・ユーザ登録編】' + - author: ライトコードメディア編集部 + author_link: https://rightcode.co.jp/author/jun + link: https://rightcode.co.jp/blog/information-technology/fastapi-tutorial-todo-apps-model-building + title: '【第2回】FastAPIチュートリアル: ToDoアプリを作ってみよう【モデル構築編】' + - author: ライトコードメディア編集部 + author_link: https://rightcode.co.jp/author/jun + link: https://rightcode.co.jp/blog/information-technology/fastapi-tutorial-todo-apps-environment + title: '【第1回】FastAPIチュートリアル: ToDoアプリを作ってみよう【環境構築編】' + - author: Hikaru Takahashi + author_link: https://qiita.com/hikarut + link: https://qiita.com/hikarut/items/b178af2e2440c67c6ac4 + title: フロントエンド開発者向けのDockerによるPython開発環境構築 + - author: '@angel_katayoku' + author_link: https://qiita.com/angel_katayoku + link: https://qiita.com/angel_katayoku/items/8a458a8952f50b73f420 + title: FastAPIでPOSTされたJSONのレスポンスbodyを受け取る + - author: '@angel_katayoku' + author_link: https://qiita.com/angel_katayoku + link: https://qiita.com/angel_katayoku/items/4fbc1a4e2b33fa2237d2 + title: FastAPIをMySQLと接続してDockerで管理してみる + - author: '@angel_katayoku' + author_link: https://qiita.com/angel_katayoku + link: https://qiita.com/angel_katayoku/items/0e1f5dbbe62efc612a78 + title: FastAPIでCORSを回避 + - author: '@ryoryomaru' + author_link: https://qiita.com/ryoryomaru + link: https://qiita.com/ryoryomaru/items/59958ed385b3571d50de + title: python製の最新APIフレームワーク FastAPI を触ってみた + - author: '@mtitg' + author_link: https://qiita.com/mtitg + link: https://qiita.com/mtitg/items/47770e9a562dd150631d + title: FastAPI|DB接続してCRUDするPython製APIサーバーを構築 + Portuguese: + - author: Eduardo Mendes + author_link: https://bolha.us/@dunossauro + link: https://fastapidozero.dunossauro.com/ + title: FastAPI do ZERO + - author: Jessica Temporal + author_link: https://jtemporal.com/socials + link: https://jtemporal.com/dicas-para-migrar-de-flask-para-fastapi-e-vice-versa/ + title: Dicas para migrar uma aplicação de Flask para FastAPI e vice-versa + Russian: + - author: Troy Köhler + author_link: https://www.linkedin.com/in/trkohler/ + link: https://trkohler.com/fast-api-introduction-to-framework + title: 'FastAPI: знакомимся с фреймворком' + - author: prostomarkeloff + author_link: https://github.com/prostomarkeloff + link: https://habr.com/ru/post/478620/ + title: Почему Вы должны попробовать FastAPI? + - author: Andrey Korchak + author_link: https://habr.com/ru/users/57uff3r/ + link: https://habr.com/ru/post/454440/ + title: 'Мелкая питонячая радость #2: Starlette - Солидная примочка – FastAPI' + Vietnamese: + - author: Nguyễn Nhân + author_link: https://fullstackstation.com/author/figonking/ + link: https://fullstackstation.com/fastapi-trien-khai-bang-docker/ + title: 'FASTAPI: TRIỂN KHAI BẰNG DOCKER' + Taiwanese: + - author: Leon + author_link: http://editor.leonh.space/ + link: https://editor.leonh.space/2022/tortoise/ + title: 'Tortoise ORM / FastAPI 整合快速筆記' + Spanish: + - author: Eduardo Zepeda + author_link: https://coffeebytes.dev/en/authors/eduardo-zepeda/ + link: https://coffeebytes.dev/es/python-fastapi-el-mejor-framework-de-python/ + title: 'Tutorial de FastAPI, ¿el mejor framework de Python?' +Podcasts: + English: + - author: Behind the Commit + author_link: https://www.youtube.com/@BehindtheCommit + link: https://youtu.be/iaDRYUQ0OMM + title: Why FastAPI Became Python’s Fastest‑Growing Framework – Chat with Sebastián Ramírez + - author: Real Python + author_link: https://realpython.com/ + link: https://realpython.com/podcasts/rpp/72/ + title: Starting With FastAPI and Examining Python's Import System - Episode 72 + - author: Python Bytes FM + author_link: https://pythonbytes.fm/ + link: https://www.pythonpodcast.com/fastapi-web-application-framework-episode-259/ + title: 'Do you dare to press "."? - Episode 247 - Dan #6: SQLModel - use the same models for SQL and FastAPI' + - author: Podcast.`__init__` + author_link: https://www.pythonpodcast.com/ + link: https://www.pythonpodcast.com/fastapi-web-application-framework-episode-259/ + title: Build The Next Generation Of Python Web Applications With FastAPI - Episode 259 - interview to Sebastían Ramírez (tiangolo) + - author: Python Bytes FM + author_link: https://pythonbytes.fm/ + link: https://pythonbytes.fm/episodes/show/123/time-to-right-the-py-wrongs?time_in_sec=855 + title: FastAPI on PythonBytes +Talks: + English: + - author: Sebastián Ramírez (tiangolo) + author_link: https://x.com/tiangolo + link: https://www.youtube.com/watch?v=mwvmfl8nN_U + title: 'Keynote: Behind the scenes of FastAPI and friends for developers and builders — Sebastián Ramírez' + - author: Jeny Sadadia + author_link: https://github.com/JenySadadia + link: https://www.youtube.com/watch?v=uZdTe8_Z6BQ + title: 'PyCon AU 2023: Testing asynchronous applications with FastAPI and pytest' + - author: Sebastián Ramírez (tiangolo) + author_link: https://x.com/tiangolo + link: https://www.youtube.com/watch?v=PnpTY1f4k2U + title: '[VIRTUAL] Py.Amsterdam''s flying Software Circus: Intro to FastAPI' + - author: Sebastián Ramírez (tiangolo) + author_link: https://x.com/tiangolo + link: https://www.youtube.com/watch?v=z9K5pwb0rt8 + title: 'PyConBY 2020: Serve ML models easily with FastAPI' + - author: Chris Withers + author_link: https://x.com/chriswithers13 + link: https://www.youtube.com/watch?v=3DLwPcrE5mA + title: 'PyCon UK 2019: FastAPI from the ground up' + Taiwanese: + - author: Blueswen + author_link: https://github.com/blueswen + link: https://www.youtube.com/watch?v=y3sumuoDq4w + title: 'PyCon TW 2024: 全方位強化 Python 服務可觀測性:以 FastAPI 和 Grafana Stack 為例' diff --git a/docs/en/data/github_sponsors.yml b/docs/en/data/github_sponsors.yml new file mode 100644 index 0000000..2478060 --- /dev/null +++ b/docs/en/data/github_sponsors.yml @@ -0,0 +1,397 @@ +sponsors: +- - login: renderinc + avatarUrl: https://avatars.githubusercontent.com/u/36424661?v=4 + url: https://github.com/renderinc + - login: andrew-propelauth + avatarUrl: https://avatars.githubusercontent.com/u/89474256?u=c98993dec8553c09d424ede67bbe86e5c35f48c9&v=4 + url: https://github.com/andrew-propelauth + - login: blockbee-io + avatarUrl: https://avatars.githubusercontent.com/u/115143449?u=1b8620c2d6567c4df2111a371b85a51f448f9b85&v=4 + url: https://github.com/blockbee-io + - login: zuplo + avatarUrl: https://avatars.githubusercontent.com/u/85497839?v=4 + url: https://github.com/zuplo + - login: coderabbitai + avatarUrl: https://avatars.githubusercontent.com/u/132028505?v=4 + url: https://github.com/coderabbitai + - login: greptileai + avatarUrl: https://avatars.githubusercontent.com/u/140149887?v=4 + url: https://github.com/greptileai + - login: subtotal + avatarUrl: https://avatars.githubusercontent.com/u/176449348?v=4 + url: https://github.com/subtotal + - login: railwayapp + avatarUrl: https://avatars.githubusercontent.com/u/66716858?v=4 + url: https://github.com/railwayapp +- - login: dribia + avatarUrl: https://avatars.githubusercontent.com/u/41189616?v=4 + url: https://github.com/dribia + - login: svix + avatarUrl: https://avatars.githubusercontent.com/u/80175132?v=4 + url: https://github.com/svix + - login: stainless-api + avatarUrl: https://avatars.githubusercontent.com/u/88061651?v=4 + url: https://github.com/stainless-api + - login: speakeasy-api + avatarUrl: https://avatars.githubusercontent.com/u/91446104?v=4 + url: https://github.com/speakeasy-api + - login: databento + avatarUrl: https://avatars.githubusercontent.com/u/64141749?v=4 + url: https://github.com/databento + - login: permitio + avatarUrl: https://avatars.githubusercontent.com/u/71775833?v=4 + url: https://github.com/permitio +- - login: Ponte-Energy-Partners + avatarUrl: https://avatars.githubusercontent.com/u/114745848?v=4 + url: https://github.com/Ponte-Energy-Partners + - login: LambdaTest-Inc + avatarUrl: https://avatars.githubusercontent.com/u/171592363?u=96606606a45fa170427206199014f2a5a2a4920b&v=4 + url: https://github.com/LambdaTest-Inc + - login: BoostryJP + avatarUrl: https://avatars.githubusercontent.com/u/57932412?v=4 + url: https://github.com/BoostryJP + - login: requestly + avatarUrl: https://avatars.githubusercontent.com/u/12287519?v=4 + url: https://github.com/requestly + - login: acsone + avatarUrl: https://avatars.githubusercontent.com/u/7601056?v=4 + url: https://github.com/acsone +- - login: scalar + avatarUrl: https://avatars.githubusercontent.com/u/301879?v=4 + url: https://github.com/scalar + - login: Trivie + avatarUrl: https://avatars.githubusercontent.com/u/8161763?v=4 + url: https://github.com/Trivie +- - login: takashi-yoneya + avatarUrl: https://avatars.githubusercontent.com/u/33813153?u=2d0522bceba0b8b69adf1f2db866503bd96f944e&v=4 + url: https://github.com/takashi-yoneya + - login: Doist + avatarUrl: https://avatars.githubusercontent.com/u/2565372?v=4 + url: https://github.com/Doist + - login: bholagabbar + avatarUrl: https://avatars.githubusercontent.com/u/11693595?v=4 + url: https://github.com/bholagabbar +- - login: mainframeindustries + avatarUrl: https://avatars.githubusercontent.com/u/55092103?v=4 + url: https://github.com/mainframeindustries +- - login: alixlahuec + avatarUrl: https://avatars.githubusercontent.com/u/29543316?u=44357eb2a93bccf30fb9d389b8befe94a3d00985&v=4 + url: https://github.com/alixlahuec +- - login: primer-io + avatarUrl: https://avatars.githubusercontent.com/u/62146168?v=4 + url: https://github.com/primer-io +- - login: upciti + avatarUrl: https://avatars.githubusercontent.com/u/43346262?v=4 + url: https://github.com/upciti + - login: ChargeStorm + avatarUrl: https://avatars.githubusercontent.com/u/26000165?v=4 + url: https://github.com/ChargeStorm + - login: nilslindemann + avatarUrl: https://avatars.githubusercontent.com/u/6892179?u=1dca6a22195d6cd1ab20737c0e19a4c55d639472&v=4 + url: https://github.com/nilslindemann +- - login: samuelcolvin + avatarUrl: https://avatars.githubusercontent.com/u/4039449?u=42eb3b833047c8c4b4f647a031eaef148c16d93f&v=4 + url: https://github.com/samuelcolvin + - login: otosky + avatarUrl: https://avatars.githubusercontent.com/u/42260747?u=69d089387c743d89427aa4ad8740cfb34045a9e0&v=4 + url: https://github.com/otosky + - login: ramonalmeidam + avatarUrl: https://avatars.githubusercontent.com/u/45269580?u=3358750b3a5854d7c3ed77aaca7dd20a0f529d32&v=4 + url: https://github.com/ramonalmeidam + - login: roboflow + avatarUrl: https://avatars.githubusercontent.com/u/53104118?v=4 + url: https://github.com/roboflow + - login: dudikbender + avatarUrl: https://avatars.githubusercontent.com/u/53487583?u=3a57542938ebfd57579a0111db2b297e606d9681&v=4 + url: https://github.com/dudikbender + - login: ehaca + avatarUrl: https://avatars.githubusercontent.com/u/25950317?u=cec1a3e0643b785288ae8260cc295a85ab344995&v=4 + url: https://github.com/ehaca + - login: raphaellaude + avatarUrl: https://avatars.githubusercontent.com/u/28026311?u=91e1c00d9ac4f8045527e13de8050d504531cbc0&v=4 + url: https://github.com/raphaellaude + - login: timlrx + avatarUrl: https://avatars.githubusercontent.com/u/28362229?u=9a745ca31372ee324af682715ae88ce8522f9094&v=4 + url: https://github.com/timlrx + - login: Leay15 + avatarUrl: https://avatars.githubusercontent.com/u/32212558?u=c4aa9c1737e515959382a5515381757b1fd86c53&v=4 + url: https://github.com/Leay15 + - login: Karine-Bauch + avatarUrl: https://avatars.githubusercontent.com/u/90465103?u=7feb1018abb1a5631cfd9a91fea723d1ceb5f49b&v=4 + url: https://github.com/Karine-Bauch + - login: jugeeem + avatarUrl: https://avatars.githubusercontent.com/u/116043716?u=ae590d79c38ac79c91b9c5caa6887d061e865a3d&v=4 + url: https://github.com/jugeeem + - login: patsatsia + avatarUrl: https://avatars.githubusercontent.com/u/61111267?u=3271b85f7a37b479c8d0ae0a235182e83c166edf&v=4 + url: https://github.com/patsatsia + - login: anthonycepeda + avatarUrl: https://avatars.githubusercontent.com/u/72019805?u=60bdf46240cff8fca482ff0fc07d963fd5e1a27c&v=4 + url: https://github.com/anthonycepeda + - login: patricioperezv + avatarUrl: https://avatars.githubusercontent.com/u/73832292?u=5f471f156e19ee7920e62ae0f4a47b95580e61cf&v=4 + url: https://github.com/patricioperezv + - login: chickenandstats + avatarUrl: https://avatars.githubusercontent.com/u/79477966?u=ae2b894aa954070db1d7830dab99b49eba4e4567&v=4 + url: https://github.com/chickenandstats + - login: kaoru0310 + avatarUrl: https://avatars.githubusercontent.com/u/80977929?u=1b61d10142b490e56af932ddf08a390fae8ee94f&v=4 + url: https://github.com/kaoru0310 + - login: jstanden + avatarUrl: https://avatars.githubusercontent.com/u/63288?u=c3658d57d2862c607a0e19c2101c3c51876e36ad&v=4 + url: https://github.com/jstanden + - login: knallgelb + avatarUrl: https://avatars.githubusercontent.com/u/2358812?u=c48cb6362b309d74cbf144bd6ad3aed3eb443e82&v=4 + url: https://github.com/knallgelb + - login: dblackrun + avatarUrl: https://avatars.githubusercontent.com/u/3528486?v=4 + url: https://github.com/dblackrun + - login: zsinx6 + avatarUrl: https://avatars.githubusercontent.com/u/3532625?u=ba75a5dc744d1116ccfeaaf30d41cb2fe81fe8dd&v=4 + url: https://github.com/zsinx6 + - login: kennywakeland + avatarUrl: https://avatars.githubusercontent.com/u/3631417?u=7c8f743f1ae325dfadea7c62bbf1abd6a824fc55&v=4 + url: https://github.com/kennywakeland + - login: aacayaco + avatarUrl: https://avatars.githubusercontent.com/u/3634801?u=eaadda178c964178fcb64886f6c732172c8f8219&v=4 + url: https://github.com/aacayaco + - login: anomaly + avatarUrl: https://avatars.githubusercontent.com/u/3654837?v=4 + url: https://github.com/anomaly + - login: mj0331 + avatarUrl: https://avatars.githubusercontent.com/u/3890353?u=1c627ac1a024515b4871de5c3ebbfaa1a57f65d4&v=4 + url: https://github.com/mj0331 + - login: gorhack + avatarUrl: https://avatars.githubusercontent.com/u/4141690?u=ec119ebc4bdf00a7bc84657a71aa17834f4f27f3&v=4 + url: https://github.com/gorhack + - login: Ryandaydev + avatarUrl: https://avatars.githubusercontent.com/u/4292423?u=679ff84cb7b988c5795a5fa583857f574a055763&v=4 + url: https://github.com/Ryandaydev + - login: jaredtrog + avatarUrl: https://avatars.githubusercontent.com/u/4381365?v=4 + url: https://github.com/jaredtrog + - login: oliverxchen + avatarUrl: https://avatars.githubusercontent.com/u/4471774?u=534191f25e32eeaadda22dfab4b0a428733d5489&v=4 + url: https://github.com/oliverxchen + - login: paulcwatts + avatarUrl: https://avatars.githubusercontent.com/u/150269?u=1819e145d573b44f0ad74b87206d21cd60331d4e&v=4 + url: https://github.com/paulcwatts + - login: robintw + avatarUrl: https://avatars.githubusercontent.com/u/296686?v=4 + url: https://github.com/robintw + - login: pamelafox + avatarUrl: https://avatars.githubusercontent.com/u/297042?v=4 + url: https://github.com/pamelafox + - login: wshayes + avatarUrl: https://avatars.githubusercontent.com/u/365303?u=07ca03c5ee811eb0920e633cc3c3db73dbec1aa5&v=4 + url: https://github.com/wshayes + - login: koxudaxi + avatarUrl: https://avatars.githubusercontent.com/u/630670?u=507d8577b4b3670546b449c4c2ccbc5af40d72f7&v=4 + url: https://github.com/koxudaxi + - login: falkben + avatarUrl: https://avatars.githubusercontent.com/u/653031?u=ad9838e089058c9e5a0bab94c0eec7cc181e0cd0&v=4 + url: https://github.com/falkben + - login: mintuhouse + avatarUrl: https://avatars.githubusercontent.com/u/769950?u=ecfbd79a97d33177e0d093ddb088283cf7fe8444&v=4 + url: https://github.com/mintuhouse + - login: dodo5522 + avatarUrl: https://avatars.githubusercontent.com/u/1362607?u=9bf1e0e520cccc547c046610c468ce6115bbcf9f&v=4 + url: https://github.com/dodo5522 + - login: wdwinslow + avatarUrl: https://avatars.githubusercontent.com/u/11562137?u=371272f2c69e680e0559a7b0a57385e83a5dc728&v=4 + url: https://github.com/wdwinslow + - login: jsoques + avatarUrl: https://avatars.githubusercontent.com/u/12414216?u=620921d94196546cc8b9eae2cc4cbc3f95bab42f&v=4 + url: https://github.com/jsoques + - login: dannywade + avatarUrl: https://avatars.githubusercontent.com/u/13680237?u=418ee985bd41577b20fde81417fb2d901e875e8a&v=4 + url: https://github.com/dannywade + - login: khadrawy + avatarUrl: https://avatars.githubusercontent.com/u/13686061?u=59f25ef42ecf04c22657aac4238ce0e2d3d30304&v=4 + url: https://github.com/khadrawy + - login: mjohnsey + avatarUrl: https://avatars.githubusercontent.com/u/16784016?u=38fad2e6b411244560b3af99c5f5a4751bc81865&v=4 + url: https://github.com/mjohnsey + - login: ashi-agrawal + avatarUrl: https://avatars.githubusercontent.com/u/17105294?u=99c7a854035e5398d8e7b674f2d42baae6c957f8&v=4 + url: https://github.com/ashi-agrawal + - login: RaamEEIL + avatarUrl: https://avatars.githubusercontent.com/u/20320552?v=4 + url: https://github.com/RaamEEIL + - login: ternaus + avatarUrl: https://avatars.githubusercontent.com/u/5481618?u=513a26b02a39e7a28d587cd37c6cc877ea368e6e&v=4 + url: https://github.com/ternaus + - login: eseglem + avatarUrl: https://avatars.githubusercontent.com/u/5920492?u=208d419cf667b8ac594c82a8db01932c7e50d057&v=4 + url: https://github.com/eseglem + - login: FernandoCelmer + avatarUrl: https://avatars.githubusercontent.com/u/6262214?u=58ba6d5888fa7f355934e52db19f950e20b38162&v=4 + url: https://github.com/FernandoCelmer + - login: Rehket + avatarUrl: https://avatars.githubusercontent.com/u/7015688?u=3afb0ba200feebbc7f958950e92db34df2a3c172&v=4 + url: https://github.com/Rehket + - login: hiancdtrsnm + avatarUrl: https://avatars.githubusercontent.com/u/7343177?v=4 + url: https://github.com/hiancdtrsnm +- - login: manoelpqueiroz + avatarUrl: https://avatars.githubusercontent.com/u/23669137?u=b12e84b28a84369ab5b30bd5a79e5788df5a0756&v=4 + url: https://github.com/manoelpqueiroz +- - login: pawamoy + avatarUrl: https://avatars.githubusercontent.com/u/3999221?u=b030e4c89df2f3a36bc4710b925bdeb6745c9856&v=4 + url: https://github.com/pawamoy + - login: siavashyj + avatarUrl: https://avatars.githubusercontent.com/u/43583410?u=562005ddc7901cd27a1219a118a2363817b14977&v=4 + url: https://github.com/siavashyj + - login: mobyw + avatarUrl: https://avatars.githubusercontent.com/u/44370805?v=4 + url: https://github.com/mobyw + - login: ArtyomVancyan + avatarUrl: https://avatars.githubusercontent.com/u/44609997?v=4 + url: https://github.com/ArtyomVancyan + - login: caviri + avatarUrl: https://avatars.githubusercontent.com/u/45425937?u=5f3d66ea5edea94c028c51ebf1c0f3b37e6c3db5&v=4 + url: https://github.com/caviri + - login: hgalytoby + avatarUrl: https://avatars.githubusercontent.com/u/50397689?u=6cc9028f3db63f8f60ad21c17b1ce4b88c4e2e60&v=4 + url: https://github.com/hgalytoby + - login: nisutec + avatarUrl: https://avatars.githubusercontent.com/u/25281462?u=e562484c451fdfc59053163f64405f8eb262b8b0&v=4 + url: https://github.com/nisutec + - login: hoenie-ams + avatarUrl: https://avatars.githubusercontent.com/u/25708487?u=cda07434f0509ac728d9edf5e681117c0f6b818b&v=4 + url: https://github.com/hoenie-ams + - login: joerambo + avatarUrl: https://avatars.githubusercontent.com/u/26282974?v=4 + url: https://github.com/joerambo + - login: engineerjoe440 + avatarUrl: https://avatars.githubusercontent.com/u/33275230?u=eb223cad27017bb1e936ee9b429b450d092d0236&v=4 + url: https://github.com/engineerjoe440 + - login: bnkc + avatarUrl: https://avatars.githubusercontent.com/u/34930566?u=db5e6f4f87836cad26c2aa90ce390ce49041c5a9&v=4 + url: https://github.com/bnkc + - login: petercool + avatarUrl: https://avatars.githubusercontent.com/u/37613029?u=75aa8c6729e6e8f85a300561c4dbeef9d65c8797&v=4 + url: https://github.com/petercool + - login: johnl28 + avatarUrl: https://avatars.githubusercontent.com/u/54412955?u=47dd06082d1c39caa90c752eb55566e4f3813957&v=4 + url: https://github.com/johnl28 + - login: PunRabbit + avatarUrl: https://avatars.githubusercontent.com/u/70463212?u=1a835cfbc99295a60c8282f6aa6199d1b42241a5&v=4 + url: https://github.com/PunRabbit + - login: PelicanQ + avatarUrl: https://avatars.githubusercontent.com/u/77930606?v=4 + url: https://github.com/PelicanQ + - login: WillHogan + avatarUrl: https://avatars.githubusercontent.com/u/1661551?u=8a80356e3e7d5a417157aba7ea565dabc8678327&v=4 + url: https://github.com/WillHogan + - login: my3 + avatarUrl: https://avatars.githubusercontent.com/u/1825270?v=4 + url: https://github.com/my3 + - login: danielunderwood + avatarUrl: https://avatars.githubusercontent.com/u/4472301?v=4 + url: https://github.com/danielunderwood + - login: ddanier + avatarUrl: https://avatars.githubusercontent.com/u/113563?u=ed1dc79de72f93bd78581f88ebc6952b62f472da&v=4 + url: https://github.com/ddanier + - login: bryanculbertson + avatarUrl: https://avatars.githubusercontent.com/u/144028?u=defda4f90e93429221cc667500944abde60ebe4a&v=4 + url: https://github.com/bryanculbertson + - login: slafs + avatarUrl: https://avatars.githubusercontent.com/u/210173?v=4 + url: https://github.com/slafs + - login: ceb10n + avatarUrl: https://avatars.githubusercontent.com/u/235213?u=edcce471814a1eba9f0cdaa4cd0de18921a940a6&v=4 + url: https://github.com/ceb10n + - login: tochikuji + avatarUrl: https://avatars.githubusercontent.com/u/851759?v=4 + url: https://github.com/tochikuji + - login: miguelgr + avatarUrl: https://avatars.githubusercontent.com/u/1484589?u=54556072b8136efa12ae3b6902032ea2a39ace4b&v=4 + url: https://github.com/miguelgr + - login: xncbf + avatarUrl: https://avatars.githubusercontent.com/u/9462045?u=a80a7bb349555b277645632ed66639ff43400614&v=4 + url: https://github.com/xncbf + - login: DMantis + avatarUrl: https://avatars.githubusercontent.com/u/9536869?u=652dd0d49717803c0cbcbf44f7740e53cf2d4892&v=4 + url: https://github.com/DMantis + - login: hard-coders + avatarUrl: https://avatars.githubusercontent.com/u/9651103?u=95db33927bbff1ed1c07efddeb97ac2ff33068ed&v=4 + url: https://github.com/hard-coders + - login: mntolia + avatarUrl: https://avatars.githubusercontent.com/u/10390224?v=4 + url: https://github.com/mntolia + - login: Zuzah + avatarUrl: https://avatars.githubusercontent.com/u/10934846?u=1ef43e075ddc87bd1178372bf4d95ee6175cae27&v=4 + url: https://github.com/Zuzah + - login: TheR1D + avatarUrl: https://avatars.githubusercontent.com/u/16740832?u=b0dfdbdb27b79729430c71c6128962f77b7b53f7&v=4 + url: https://github.com/TheR1D + - login: joshuatz + avatarUrl: https://avatars.githubusercontent.com/u/17817563?u=f1bf05b690d1fc164218f0b420cdd3acb7913e21&v=4 + url: https://github.com/joshuatz + - login: rangulvers + avatarUrl: https://avatars.githubusercontent.com/u/5235430?u=e254d4af4ace5a05fa58372ae677c7d26f0d5a53&v=4 + url: https://github.com/rangulvers + - login: sdevkota + avatarUrl: https://avatars.githubusercontent.com/u/5250987?u=4ed9a120c89805a8aefda1cbdc0cf6512e64d1b4&v=4 + url: https://github.com/sdevkota + - login: Baghdady92 + avatarUrl: https://avatars.githubusercontent.com/u/5708590?v=4 + url: https://github.com/Baghdady92 + - login: KentShikama + avatarUrl: https://avatars.githubusercontent.com/u/6329898?u=8b236810db9b96333230430837e1f021f9246da1&v=4 + url: https://github.com/KentShikama + - login: katnoria + avatarUrl: https://avatars.githubusercontent.com/u/7674948?u=09767eb13e07e09496c5fee4e5ce21d9eac34a56&v=4 + url: https://github.com/katnoria + - login: harsh183 + avatarUrl: https://avatars.githubusercontent.com/u/7780198?v=4 + url: https://github.com/harsh183 + - login: moonape1226 + avatarUrl: https://avatars.githubusercontent.com/u/8532038?u=d9f8b855a429fff9397c3833c2ff83849ebf989d&v=4 + url: https://github.com/moonape1226 +- - login: andrecorumba + avatarUrl: https://avatars.githubusercontent.com/u/37807517?u=9b9be3b41da9bda60957da9ef37b50dbf65baa61&v=4 + url: https://github.com/andrecorumba + - login: KOZ39 + avatarUrl: https://avatars.githubusercontent.com/u/38822500?u=9dfc0a697df1c9628f08e20dc3fb17b1afc4e5a7&v=4 + url: https://github.com/KOZ39 + - login: rwxd + avatarUrl: https://avatars.githubusercontent.com/u/40308458?u=cd04a39e3655923be4f25c2ba8a5a07b3da3230a&v=4 + url: https://github.com/rwxd + - login: morzan1001 + avatarUrl: https://avatars.githubusercontent.com/u/47593005?u=c30ab7230f82a12a9b938dcb54f84a996931409a&v=4 + url: https://github.com/morzan1001 + - login: Olegt0rr + avatarUrl: https://avatars.githubusercontent.com/u/25399456?u=3e87b5239a2f4600975ba13be73054f8567c6060&v=4 + url: https://github.com/Olegt0rr + - login: dinoz0rg + avatarUrl: https://avatars.githubusercontent.com/u/32940067?u=739cda1eb123a2dd5e1db45c361396f239e23f8b&v=4 + url: https://github.com/dinoz0rg + - login: larsyngvelundin + avatarUrl: https://avatars.githubusercontent.com/u/34173819?u=74958599695bf83ac9f1addd935a51548a10c6b0&v=4 + url: https://github.com/larsyngvelundin + - login: hippoley + avatarUrl: https://avatars.githubusercontent.com/u/135493401?u=1164ef48a645a7c12664fabc1638fbb7e1c459b0&v=4 + url: https://github.com/hippoley + - login: 4anklee + avatarUrl: https://avatars.githubusercontent.com/u/144109238?u=a79c0d581b2a3d8f3897e7ef4c012640a6c1eb3a&v=4 + url: https://github.com/4anklee + - login: CoderDeltaLAN + avatarUrl: https://avatars.githubusercontent.com/u/152043745?u=4ff541efffb7d134e60c5fcf2dd1e343f90bb782&v=4 + url: https://github.com/CoderDeltaLAN + - login: onestn + avatarUrl: https://avatars.githubusercontent.com/u/62360849?u=746dd21c34e7e06eefb11b03e8bb01aaae3c2a4f&v=4 + url: https://github.com/onestn + - login: nayasinghania + avatarUrl: https://avatars.githubusercontent.com/u/74111380?u=752e99a5e139389fdc0a0677122adc08438eb076&v=4 + url: https://github.com/nayasinghania + - login: Toothwitch + avatarUrl: https://avatars.githubusercontent.com/u/1710406?u=5eebb23b46cd26e48643b9e5179536cad491c17a&v=4 + url: https://github.com/Toothwitch + - login: andreagrandi + avatarUrl: https://avatars.githubusercontent.com/u/636391?u=13d90cb8ec313593a5b71fbd4e33b78d6da736f5&v=4 + url: https://github.com/andreagrandi + - login: msserpa + avatarUrl: https://avatars.githubusercontent.com/u/6334934?u=82c4489eb1559d88d2990d60001901b14f722bbb&v=4 + url: https://github.com/msserpa diff --git a/docs/en/data/members.yml b/docs/en/data/members.yml new file mode 100644 index 0000000..7ec16e9 --- /dev/null +++ b/docs/en/data/members.yml @@ -0,0 +1,22 @@ +members: +- login: tiangolo + avatar_url: https://avatars.githubusercontent.com/u/1326112 + url: https://github.com/tiangolo +- login: Kludex + avatar_url: https://avatars.githubusercontent.com/u/7353520 + url: https://github.com/Kludex +- login: alejsdev + avatar_url: https://avatars.githubusercontent.com/u/90076947 + url: https://github.com/alejsdev +- login: svlandeg + avatar_url: https://avatars.githubusercontent.com/u/8796347 + url: https://github.com/svlandeg +- login: YuriiMotov + avatar_url: https://avatars.githubusercontent.com/u/109919500 + url: https://github.com/YuriiMotov +- login: patrick91 + avatar_url: https://avatars.githubusercontent.com/u/667029 + url: https://github.com/patrick91 +- login: luzzodev + avatar_url: https://avatars.githubusercontent.com/u/27291415 + url: https://github.com/luzzodev diff --git a/docs/en/data/people.yml b/docs/en/data/people.yml new file mode 100644 index 0000000..2fdb21a --- /dev/null +++ b/docs/en/data/people.yml @@ -0,0 +1,702 @@ +maintainers: +- login: tiangolo + answers: 1900 + avatarUrl: https://avatars.githubusercontent.com/u/1326112?u=cb5d06e73a9e1998141b1641aa88e443c6717651&v=4 + url: https://github.com/tiangolo +experts: +- login: tiangolo + count: 1900 + avatarUrl: https://avatars.githubusercontent.com/u/1326112?u=cb5d06e73a9e1998141b1641aa88e443c6717651&v=4 + url: https://github.com/tiangolo +- login: YuriiMotov + count: 971 + avatarUrl: https://avatars.githubusercontent.com/u/109919500?u=b9b13d598dddfab529a52d264df80a900bfe7060&v=4 + url: https://github.com/YuriiMotov +- login: github-actions + count: 769 + avatarUrl: https://avatars.githubusercontent.com/in/15368?v=4 + url: https://github.com/apps/github-actions +- login: Kludex + count: 654 + avatarUrl: https://avatars.githubusercontent.com/u/7353520?u=df8a3f06ba8f55ae1967a3e2d5ed882903a4e330&v=4 + url: https://github.com/Kludex +- login: jgould22 + count: 263 + avatarUrl: https://avatars.githubusercontent.com/u/4335847?u=ed77f67e0bb069084639b24d812dbb2a2b1dc554&v=4 + url: https://github.com/jgould22 +- login: dmontagu + count: 240 + avatarUrl: https://avatars.githubusercontent.com/u/35119617?u=540f30c937a6450812628b9592a1dfe91bbe148e&v=4 + url: https://github.com/dmontagu +- login: Mause + count: 219 + avatarUrl: https://avatars.githubusercontent.com/u/1405026?v=4 + url: https://github.com/Mause +- login: ycd + count: 216 + avatarUrl: https://avatars.githubusercontent.com/u/62724709?u=f1e7bae394a315da950912c92dc861a8eaf95d4c&v=4 + url: https://github.com/ycd +- login: JarroVGIT + count: 190 + avatarUrl: https://avatars.githubusercontent.com/u/13659033?u=e8bea32d07a5ef72f7dde3b2079ceb714923ca05&v=4 + url: https://github.com/JarroVGIT +- login: euri10 + count: 153 + avatarUrl: https://avatars.githubusercontent.com/u/1104190?u=321a2e953e6645a7d09b732786c7a8061e0f8a8b&v=4 + url: https://github.com/euri10 +- login: iudeen + count: 128 + avatarUrl: https://avatars.githubusercontent.com/u/10519440?u=f09cdd745e5bf16138f29b42732dd57c7f02bee1&v=4 + url: https://github.com/iudeen +- login: phy25 + count: 126 + avatarUrl: https://avatars.githubusercontent.com/u/331403?v=4 + url: https://github.com/phy25 +- login: JavierSanchezCastro + count: 94 + avatarUrl: https://avatars.githubusercontent.com/u/72013291?u=ae5679e6bd971d9d98cd5e76e8683f83642ba950&v=4 + url: https://github.com/JavierSanchezCastro +- login: luzzodev + count: 89 + avatarUrl: https://avatars.githubusercontent.com/u/27291415?u=5607ae1ce75c5f54f09500ca854227f7bfd2033b&v=4 + url: https://github.com/luzzodev +- login: raphaelauv + count: 83 + avatarUrl: https://avatars.githubusercontent.com/u/10202690?u=e6f86f5c0c3026a15d6b51792fa3e532b12f1371&v=4 + url: https://github.com/raphaelauv +- login: ArcLightSlavik + count: 71 + avatarUrl: https://avatars.githubusercontent.com/u/31127044?u=b0f2c37142f4b762e41ad65dc49581813422bd71&v=4 + url: https://github.com/ArcLightSlavik +- login: ghandic + count: 71 + avatarUrl: https://avatars.githubusercontent.com/u/23500353?u=e2e1d736f924d9be81e8bfc565b6d8836ba99773&v=4 + url: https://github.com/ghandic +- login: n8sty + count: 67 + avatarUrl: https://avatars.githubusercontent.com/u/2964996?v=4 + url: https://github.com/n8sty +- login: falkben + count: 59 + avatarUrl: https://avatars.githubusercontent.com/u/653031?u=ad9838e089058c9e5a0bab94c0eec7cc181e0cd0&v=4 + url: https://github.com/falkben +- login: yinziyan1206 + count: 54 + avatarUrl: https://avatars.githubusercontent.com/u/37829370?u=da44ca53aefd5c23f346fab8e9fd2e108294c179&v=4 + url: https://github.com/yinziyan1206 +- login: sm-Fifteen + count: 49 + avatarUrl: https://avatars.githubusercontent.com/u/516999?u=437c0c5038558c67e887ccd863c1ba0f846c03da&v=4 + url: https://github.com/sm-Fifteen +- login: acidjunk + count: 49 + avatarUrl: https://avatars.githubusercontent.com/u/685002?u=b5094ab4527fc84b006c0ac9ff54367bdebb2267&v=4 + url: https://github.com/acidjunk +- login: adriangb + count: 46 + avatarUrl: https://avatars.githubusercontent.com/u/1755071?u=612704256e38d6ac9cbed24f10e4b6ac2da74ecb&v=4 + url: https://github.com/adriangb +- login: Dustyposa + count: 45 + avatarUrl: https://avatars.githubusercontent.com/u/27180793?u=5cf2877f50b3eb2bc55086089a78a36f07042889&v=4 + url: https://github.com/Dustyposa +- login: insomnes + count: 45 + avatarUrl: https://avatars.githubusercontent.com/u/16958893?u=f8be7088d5076d963984a21f95f44e559192d912&v=4 + url: https://github.com/insomnes +- login: frankie567 + count: 43 + avatarUrl: https://avatars.githubusercontent.com/u/1144727?u=c159fe047727aedecbbeeaa96a1b03ceb9d39add&v=4 + url: https://github.com/frankie567 +- login: odiseo0 + count: 43 + avatarUrl: https://avatars.githubusercontent.com/u/87550035?u=241a71f6b7068738b81af3e57f45ffd723538401&v=4 + url: https://github.com/odiseo0 +- login: sinisaos + count: 41 + avatarUrl: https://avatars.githubusercontent.com/u/30960668?v=4 + url: https://github.com/sinisaos +- login: includeamin + count: 40 + avatarUrl: https://avatars.githubusercontent.com/u/11836741?u=8bd5ef7e62fe6a82055e33c4c0e0a7879ff8cfb6&v=4 + url: https://github.com/includeamin +- login: STeveShary + count: 37 + avatarUrl: https://avatars.githubusercontent.com/u/5167622?u=de8f597c81d6336fcebc37b32dfd61a3f877160c&v=4 + url: https://github.com/STeveShary +- login: chbndrhnns + count: 37 + avatarUrl: https://avatars.githubusercontent.com/u/7534547?v=4 + url: https://github.com/chbndrhnns +- login: krishnardt + count: 35 + avatarUrl: https://avatars.githubusercontent.com/u/31960541?u=47f4829c77f4962ab437ffb7995951e41eeebe9b&v=4 + url: https://github.com/krishnardt +- login: panla + count: 32 + avatarUrl: https://avatars.githubusercontent.com/u/41326348?u=ba2fda6b30110411ecbf406d187907e2b420ac19&v=4 + url: https://github.com/panla +- login: prostomarkeloff + count: 28 + avatarUrl: https://avatars.githubusercontent.com/u/28061158?u=6918e39a1224194ba636e897461a02a20126d7ad&v=4 + url: https://github.com/prostomarkeloff +- login: hasansezertasan + count: 27 + avatarUrl: https://avatars.githubusercontent.com/u/13135006?u=99f0b0f0fc47e88e8abb337b4447357939ef93e7&v=4 + url: https://github.com/hasansezertasan +- login: alv2017 + count: 26 + avatarUrl: https://avatars.githubusercontent.com/u/31544722?v=4 + url: https://github.com/alv2017 +- login: dbanty + count: 26 + avatarUrl: https://avatars.githubusercontent.com/u/43723790?u=9d726785d08e50b1e1cd96505800c8ea8405bce2&v=4 + url: https://github.com/dbanty +- login: wshayes + count: 25 + avatarUrl: https://avatars.githubusercontent.com/u/365303?u=07ca03c5ee811eb0920e633cc3c3db73dbec1aa5&v=4 + url: https://github.com/wshayes +- login: valentinDruzhinin + count: 24 + avatarUrl: https://avatars.githubusercontent.com/u/12831905?u=aae1ebc675c91e8fa582df4fcc4fc4128106344d&v=4 + url: https://github.com/valentinDruzhinin +- login: SirTelemak + count: 23 + avatarUrl: https://avatars.githubusercontent.com/u/9435877?u=719327b7d2c4c62212456d771bfa7c6b8dbb9eac&v=4 + url: https://github.com/SirTelemak +- login: connebs + count: 22 + avatarUrl: https://avatars.githubusercontent.com/u/9054108?u=e151d5f545a3395136d711c227c22032fda67cfa&v=4 + url: https://github.com/connebs +- login: nymous + count: 22 + avatarUrl: https://avatars.githubusercontent.com/u/4216559?u=360a36fb602cded27273cbfc0afc296eece90662&v=4 + url: https://github.com/nymous +- login: chrisK824 + count: 22 + avatarUrl: https://avatars.githubusercontent.com/u/79946379?u=03d85b22d696a58a9603e55fbbbe2de6b0f4face&v=4 + url: https://github.com/chrisK824 +- login: rafsaf + count: 21 + avatarUrl: https://avatars.githubusercontent.com/u/51059348?u=5fe59a56e1f2f9ccd8005d71752a8276f133ae1a&v=4 + url: https://github.com/rafsaf +- login: nsidnev + count: 20 + avatarUrl: https://avatars.githubusercontent.com/u/22559461?u=a9cc3238217e21dc8796a1a500f01b722adb082c&v=4 + url: https://github.com/nsidnev +- login: chris-allnutt + count: 20 + avatarUrl: https://avatars.githubusercontent.com/u/565544?v=4 + url: https://github.com/chris-allnutt +- login: ebottos94 + count: 20 + avatarUrl: https://avatars.githubusercontent.com/u/100039558?u=8b91053b3abe4a9209375e3651e1c1ef192d884b&v=4 + url: https://github.com/ebottos94 +- login: estebanx64 + count: 19 + avatarUrl: https://avatars.githubusercontent.com/u/10840422?u=1900887aeed268699e5ea6f3fb7db614f7b77cd3&v=4 + url: https://github.com/estebanx64 +- login: sehraramiz + count: 18 + avatarUrl: https://avatars.githubusercontent.com/u/14166324?u=8fac65e84dfff24245d304a5b5b09f7b5bd69dc9&v=4 + url: https://github.com/sehraramiz +- login: retnikt + count: 18 + avatarUrl: https://avatars.githubusercontent.com/u/24581770?v=4 + url: https://github.com/retnikt +- login: zoliknemet + count: 18 + avatarUrl: https://avatars.githubusercontent.com/u/22326718?u=31ba446ac290e23e56eea8e4f0c558aaf0b40779&v=4 + url: https://github.com/zoliknemet +- login: caeser1996 + count: 17 + avatarUrl: https://avatars.githubusercontent.com/u/16540232?u=05d2beb8e034d584d0a374b99d8826327bd7f614&v=4 + url: https://github.com/caeser1996 +- login: Hultner + count: 17 + avatarUrl: https://avatars.githubusercontent.com/u/2669034?u=115e53df959309898ad8dc9443fbb35fee71df07&v=4 + url: https://github.com/Hultner +- login: harunyasar + count: 17 + avatarUrl: https://avatars.githubusercontent.com/u/1765494?u=5b1ab7c582db4b4016fa31affe977d10af108ad4&v=4 + url: https://github.com/harunyasar +- login: nkhitrov + count: 17 + avatarUrl: https://avatars.githubusercontent.com/u/28262306?u=e19427d8dc296d6950e9c424adacc92d37496fe9&v=4 + url: https://github.com/nkhitrov +- login: dstlny + count: 16 + avatarUrl: https://avatars.githubusercontent.com/u/41964673?u=9f2174f9d61c15c6e3a4c9e3aeee66f711ce311f&v=4 + url: https://github.com/dstlny +- login: pythonweb2 + count: 16 + avatarUrl: https://avatars.githubusercontent.com/u/32141163?v=4 + url: https://github.com/pythonweb2 +- login: jonatasoli + count: 16 + avatarUrl: https://avatars.githubusercontent.com/u/26334101?u=f601c3f111f2148bd9244c2cb3ebbd57b592e674&v=4 + url: https://github.com/jonatasoli +- login: ghost + count: 15 + avatarUrl: https://avatars.githubusercontent.com/u/10137?u=b1951d34a583cf12ec0d3b0781ba19be97726318&v=4 + url: https://github.com/ghost +- login: abhint + count: 15 + avatarUrl: https://avatars.githubusercontent.com/u/25699289?u=b5d219277b4d001ac26fb8be357fddd88c29d51b&v=4 + url: https://github.com/abhint +last_month_experts: +- login: YuriiMotov + count: 17 + avatarUrl: https://avatars.githubusercontent.com/u/109919500?u=b9b13d598dddfab529a52d264df80a900bfe7060&v=4 + url: https://github.com/YuriiMotov +- login: valentinDruzhinin + count: 5 + avatarUrl: https://avatars.githubusercontent.com/u/12831905?u=aae1ebc675c91e8fa582df4fcc4fc4128106344d&v=4 + url: https://github.com/valentinDruzhinin +- login: yinziyan1206 + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/37829370?u=da44ca53aefd5c23f346fab8e9fd2e108294c179&v=4 + url: https://github.com/yinziyan1206 +- login: tiangolo + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/1326112?u=cb5d06e73a9e1998141b1641aa88e443c6717651&v=4 + url: https://github.com/tiangolo +- login: luzzodev + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/27291415?u=5607ae1ce75c5f54f09500ca854227f7bfd2033b&v=4 + url: https://github.com/luzzodev +three_months_experts: +- login: YuriiMotov + count: 397 + avatarUrl: https://avatars.githubusercontent.com/u/109919500?u=b9b13d598dddfab529a52d264df80a900bfe7060&v=4 + url: https://github.com/YuriiMotov +- login: valentinDruzhinin + count: 24 + avatarUrl: https://avatars.githubusercontent.com/u/12831905?u=aae1ebc675c91e8fa582df4fcc4fc4128106344d&v=4 + url: https://github.com/valentinDruzhinin +- login: luzzodev + count: 17 + avatarUrl: https://avatars.githubusercontent.com/u/27291415?u=5607ae1ce75c5f54f09500ca854227f7bfd2033b&v=4 + url: https://github.com/luzzodev +- login: raceychan + count: 6 + avatarUrl: https://avatars.githubusercontent.com/u/75417963?u=060c62870ec5a791765e63ac20d8885d11143786&v=4 + url: https://github.com/raceychan +- login: yinziyan1206 + count: 5 + avatarUrl: https://avatars.githubusercontent.com/u/37829370?u=da44ca53aefd5c23f346fab8e9fd2e108294c179&v=4 + url: https://github.com/yinziyan1206 +- login: DoctorJohn + count: 5 + avatarUrl: https://avatars.githubusercontent.com/u/14076775?u=2913e70a6142772847e91e2aaa5b9152391715e9&v=4 + url: https://github.com/DoctorJohn +- login: tiangolo + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/1326112?u=cb5d06e73a9e1998141b1641aa88e443c6717651&v=4 + url: https://github.com/tiangolo +- login: sachinh35 + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/21972708?u=8560b97b8b41e175f476270b56de8a493b84f302&v=4 + url: https://github.com/sachinh35 +- login: eqsdxr + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/157279130?u=58fddf77ed76966eaa8c73eea9bea4bb0c53b673&v=4 + url: https://github.com/eqsdxr +- login: Jelle-tenB + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/210023470?u=c25d66addf36a747bd9fab773c4a6e7b238f45d4&v=4 + url: https://github.com/Jelle-tenB +- login: pythonweb2 + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/32141163?v=4 + url: https://github.com/pythonweb2 +- login: WilliamDEdwards + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/12184311?u=9b29d5d1d71f5f1a7ef9e439963ad3529e3b33a4&v=4 + url: https://github.com/WilliamDEdwards +- login: Brikas + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/80290187?v=4 + url: https://github.com/Brikas +- login: purepani + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/7587353?v=4 + url: https://github.com/purepani +- login: JavierSanchezCastro + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/72013291?u=ae5679e6bd971d9d98cd5e76e8683f83642ba950&v=4 + url: https://github.com/JavierSanchezCastro +- login: TaigoFr + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/17792131?u=372b27056ec82f1ae03d8b3f37ef55b04a7cfdd1&v=4 + url: https://github.com/TaigoFr +- login: Garrett-R + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/6614695?u=c128fd775002882f6e391bda5a89d1bdc5bdf45f&v=4 + url: https://github.com/Garrett-R +- login: jymchng + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/27895426?u=fb88c47775147d62a395fdb895d1af4148c7b566&v=4 + url: https://github.com/jymchng +- login: davidhuser + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/4357648?u=6ed702f8f6d49a8b2a0ed33cbd8ab59c2d7db7f7&v=4 + url: https://github.com/davidhuser +six_months_experts: +- login: YuriiMotov + count: 763 + avatarUrl: https://avatars.githubusercontent.com/u/109919500?u=b9b13d598dddfab529a52d264df80a900bfe7060&v=4 + url: https://github.com/YuriiMotov +- login: luzzodev + count: 45 + avatarUrl: https://avatars.githubusercontent.com/u/27291415?u=5607ae1ce75c5f54f09500ca854227f7bfd2033b&v=4 + url: https://github.com/luzzodev +- login: valentinDruzhinin + count: 24 + avatarUrl: https://avatars.githubusercontent.com/u/12831905?u=aae1ebc675c91e8fa582df4fcc4fc4128106344d&v=4 + url: https://github.com/valentinDruzhinin +- login: alv2017 + count: 16 + avatarUrl: https://avatars.githubusercontent.com/u/31544722?v=4 + url: https://github.com/alv2017 +- login: sachinh35 + count: 9 + avatarUrl: https://avatars.githubusercontent.com/u/21972708?u=8560b97b8b41e175f476270b56de8a493b84f302&v=4 + url: https://github.com/sachinh35 +- login: yauhen-sobaleu + count: 9 + avatarUrl: https://avatars.githubusercontent.com/u/51629535?u=fc1817060daf2df438bfca86c44f33da5cd667db&v=4 + url: https://github.com/yauhen-sobaleu +- login: tiangolo + count: 6 + avatarUrl: https://avatars.githubusercontent.com/u/1326112?u=cb5d06e73a9e1998141b1641aa88e443c6717651&v=4 + url: https://github.com/tiangolo +- login: JavierSanchezCastro + count: 6 + avatarUrl: https://avatars.githubusercontent.com/u/72013291?u=ae5679e6bd971d9d98cd5e76e8683f83642ba950&v=4 + url: https://github.com/JavierSanchezCastro +- login: raceychan + count: 6 + avatarUrl: https://avatars.githubusercontent.com/u/75417963?u=060c62870ec5a791765e63ac20d8885d11143786&v=4 + url: https://github.com/raceychan +- login: yinziyan1206 + count: 5 + avatarUrl: https://avatars.githubusercontent.com/u/37829370?u=da44ca53aefd5c23f346fab8e9fd2e108294c179&v=4 + url: https://github.com/yinziyan1206 +- login: DoctorJohn + count: 5 + avatarUrl: https://avatars.githubusercontent.com/u/14076775?u=2913e70a6142772847e91e2aaa5b9152391715e9&v=4 + url: https://github.com/DoctorJohn +- login: eqsdxr + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/157279130?u=58fddf77ed76966eaa8c73eea9bea4bb0c53b673&v=4 + url: https://github.com/eqsdxr +- login: Kludex + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/7353520?u=df8a3f06ba8f55ae1967a3e2d5ed882903a4e330&v=4 + url: https://github.com/Kludex +- login: Jelle-tenB + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/210023470?u=c25d66addf36a747bd9fab773c4a6e7b238f45d4&v=4 + url: https://github.com/Jelle-tenB +- login: adsouza + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/275832?u=f90f110cfafeafed2f14339e840941c2c328c186&v=4 + url: https://github.com/adsouza +- login: pythonweb2 + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/32141163?v=4 + url: https://github.com/pythonweb2 +- login: WilliamDEdwards + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/12184311?u=9b29d5d1d71f5f1a7ef9e439963ad3529e3b33a4&v=4 + url: https://github.com/WilliamDEdwards +- login: Brikas + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/80290187?v=4 + url: https://github.com/Brikas +- login: purepani + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/7587353?v=4 + url: https://github.com/purepani +- login: TaigoFr + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/17792131?u=372b27056ec82f1ae03d8b3f37ef55b04a7cfdd1&v=4 + url: https://github.com/TaigoFr +- login: Garrett-R + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/6614695?u=c128fd775002882f6e391bda5a89d1bdc5bdf45f&v=4 + url: https://github.com/Garrett-R +- login: EverStarck + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/51029456?u=343409b7cb6b3ea6a59359f4e8370d9c3f140ecd&v=4 + url: https://github.com/EverStarck +- login: henrymcl + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/26480299?v=4 + url: https://github.com/henrymcl +- login: jymchng + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/27895426?u=fb88c47775147d62a395fdb895d1af4148c7b566&v=4 + url: https://github.com/jymchng +- login: davidhuser + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/4357648?u=6ed702f8f6d49a8b2a0ed33cbd8ab59c2d7db7f7&v=4 + url: https://github.com/davidhuser +- login: PidgeyBE + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/19860056?u=47b584eb1c1ab45e31c1b474109a962d7e82be49&v=4 + url: https://github.com/PidgeyBE +- login: KianAnbarestani + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/145364424?u=dcc3d8fb4ca07d36fb52a17f38b6650565de40be&v=4 + url: https://github.com/KianAnbarestani +- login: jgould22 + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/4335847?u=ed77f67e0bb069084639b24d812dbb2a2b1dc554&v=4 + url: https://github.com/jgould22 +- login: marsboy02 + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/86903678?u=04cc319d6605f8d1ba3a0bed9f4f55a582719ae6&v=4 + url: https://github.com/marsboy02 +one_year_experts: +- login: YuriiMotov + count: 824 + avatarUrl: https://avatars.githubusercontent.com/u/109919500?u=b9b13d598dddfab529a52d264df80a900bfe7060&v=4 + url: https://github.com/YuriiMotov +- login: luzzodev + count: 89 + avatarUrl: https://avatars.githubusercontent.com/u/27291415?u=5607ae1ce75c5f54f09500ca854227f7bfd2033b&v=4 + url: https://github.com/luzzodev +- login: Kludex + count: 50 + avatarUrl: https://avatars.githubusercontent.com/u/7353520?u=df8a3f06ba8f55ae1967a3e2d5ed882903a4e330&v=4 + url: https://github.com/Kludex +- login: sinisaos + count: 33 + avatarUrl: https://avatars.githubusercontent.com/u/30960668?v=4 + url: https://github.com/sinisaos +- login: alv2017 + count: 26 + avatarUrl: https://avatars.githubusercontent.com/u/31544722?v=4 + url: https://github.com/alv2017 +- login: valentinDruzhinin + count: 24 + avatarUrl: https://avatars.githubusercontent.com/u/12831905?u=aae1ebc675c91e8fa582df4fcc4fc4128106344d&v=4 + url: https://github.com/valentinDruzhinin +- login: JavierSanchezCastro + count: 24 + avatarUrl: https://avatars.githubusercontent.com/u/72013291?u=ae5679e6bd971d9d98cd5e76e8683f83642ba950&v=4 + url: https://github.com/JavierSanchezCastro +- login: jgould22 + count: 17 + avatarUrl: https://avatars.githubusercontent.com/u/4335847?u=ed77f67e0bb069084639b24d812dbb2a2b1dc554&v=4 + url: https://github.com/jgould22 +- login: tiangolo + count: 14 + avatarUrl: https://avatars.githubusercontent.com/u/1326112?u=cb5d06e73a9e1998141b1641aa88e443c6717651&v=4 + url: https://github.com/tiangolo +- login: Kfir-G + count: 13 + avatarUrl: https://avatars.githubusercontent.com/u/57500876?u=a3bf923ab27bce3d1b13779a8dd22eb7675017fd&v=4 + url: https://github.com/Kfir-G +- login: sehraramiz + count: 11 + avatarUrl: https://avatars.githubusercontent.com/u/14166324?u=8fac65e84dfff24245d304a5b5b09f7b5bd69dc9&v=4 + url: https://github.com/sehraramiz +- login: sachinh35 + count: 9 + avatarUrl: https://avatars.githubusercontent.com/u/21972708?u=8560b97b8b41e175f476270b56de8a493b84f302&v=4 + url: https://github.com/sachinh35 +- login: yauhen-sobaleu + count: 9 + avatarUrl: https://avatars.githubusercontent.com/u/51629535?u=fc1817060daf2df438bfca86c44f33da5cd667db&v=4 + url: https://github.com/yauhen-sobaleu +- login: estebanx64 + count: 7 + avatarUrl: https://avatars.githubusercontent.com/u/10840422?u=1900887aeed268699e5ea6f3fb7db614f7b77cd3&v=4 + url: https://github.com/estebanx64 +- login: ceb10n + count: 7 + avatarUrl: https://avatars.githubusercontent.com/u/235213?u=edcce471814a1eba9f0cdaa4cd0de18921a940a6&v=4 + url: https://github.com/ceb10n +- login: yvallois + count: 7 + avatarUrl: https://avatars.githubusercontent.com/u/36999744?v=4 + url: https://github.com/yvallois +- login: raceychan + count: 6 + avatarUrl: https://avatars.githubusercontent.com/u/75417963?u=060c62870ec5a791765e63ac20d8885d11143786&v=4 + url: https://github.com/raceychan +- login: yinziyan1206 + count: 5 + avatarUrl: https://avatars.githubusercontent.com/u/37829370?u=da44ca53aefd5c23f346fab8e9fd2e108294c179&v=4 + url: https://github.com/yinziyan1206 +- login: DoctorJohn + count: 5 + avatarUrl: https://avatars.githubusercontent.com/u/14076775?u=2913e70a6142772847e91e2aaa5b9152391715e9&v=4 + url: https://github.com/DoctorJohn +- login: n8sty + count: 5 + avatarUrl: https://avatars.githubusercontent.com/u/2964996?v=4 + url: https://github.com/n8sty +- login: pythonweb2 + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/32141163?v=4 + url: https://github.com/pythonweb2 +- login: eqsdxr + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/157279130?u=58fddf77ed76966eaa8c73eea9bea4bb0c53b673&v=4 + url: https://github.com/eqsdxr +- login: yokwejuste + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/71908316?u=4ba43bd63c169b5c015137d8916752a44001445a&v=4 + url: https://github.com/yokwejuste +- login: WilliamDEdwards + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/12184311?u=9b29d5d1d71f5f1a7ef9e439963ad3529e3b33a4&v=4 + url: https://github.com/WilliamDEdwards +- login: mattmess1221 + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/3409962?u=d22ea18aa8ea688af25a45df306134d593621a44&v=4 + url: https://github.com/mattmess1221 +- login: Jelle-tenB + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/210023470?u=c25d66addf36a747bd9fab773c4a6e7b238f45d4&v=4 + url: https://github.com/Jelle-tenB +- login: viniciusCalcantara + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/108818737?u=80f3ec7427fa6a41d5896984d0c526432f2299fa&v=4 + url: https://github.com/viniciusCalcantara +- login: davidhuser + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/4357648?u=6ed702f8f6d49a8b2a0ed33cbd8ab59c2d7db7f7&v=4 + url: https://github.com/davidhuser +- login: dbfreem + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/9778569?u=f2f1e9135b5e4f1b0c6821a548b17f97572720fc&v=4 + url: https://github.com/dbfreem +- login: SobikXexe + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/87701130?v=4 + url: https://github.com/SobikXexe +- login: pawelad + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/7062874?u=d27dc220545a8401ad21840590a97d474d7101e6&v=4 + url: https://github.com/pawelad +- login: Isuxiz + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/48672727?u=34d7b4ade252687d22a27cf53037b735b244bfc1&v=4 + url: https://github.com/Isuxiz +- login: Minibrams + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/8108085?u=b028dbc308fa8485e0e2e9402b3d03d8deb22bf9&v=4 + url: https://github.com/Minibrams +- login: adsouza + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/275832?u=f90f110cfafeafed2f14339e840941c2c328c186&v=4 + url: https://github.com/adsouza +- login: Synrom + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/30272537?v=4 + url: https://github.com/Synrom +- login: gaby + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/835733?u=8c72dec16fa560bdc81113354f2ffd79ad062bde&v=4 + url: https://github.com/gaby +- login: Ale-Cas + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/64859146?u=d52a6ecf8d83d2927e2ae270bdfcc83495dba8c9&v=4 + url: https://github.com/Ale-Cas +- login: CharlesPerrotMinotHCHB + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/112571330?u=e3a666718ff5ad1d1c49d6c31358a9f80c841b30&v=4 + url: https://github.com/CharlesPerrotMinotHCHB +- login: yanggeorge + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/2434407?v=4 + url: https://github.com/yanggeorge +- login: Brikas + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/80290187?v=4 + url: https://github.com/Brikas +- login: dolfinus + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/4661021?u=ed5ddadcf36d9b943ebe61febe0b96ee34e5425d&v=4 + url: https://github.com/dolfinus +- login: slafs + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/210173?v=4 + url: https://github.com/slafs +- login: purepani + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/7587353?v=4 + url: https://github.com/purepani +- login: ddahan + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/1933516?u=1d200a620e8d6841df017e9f2bb7efb58b580f40&v=4 + url: https://github.com/ddahan +- login: TaigoFr + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/17792131?u=372b27056ec82f1ae03d8b3f37ef55b04a7cfdd1&v=4 + url: https://github.com/TaigoFr +- login: Garrett-R + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/6614695?u=c128fd775002882f6e391bda5a89d1bdc5bdf45f&v=4 + url: https://github.com/Garrett-R +- login: jd-solanki + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/47495003?u=6e225cb42c688d0cd70e65c6baedb9f5922b1178&v=4 + url: https://github.com/jd-solanki +- login: EverStarck + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/51029456?u=343409b7cb6b3ea6a59359f4e8370d9c3f140ecd&v=4 + url: https://github.com/EverStarck +- login: henrymcl + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/26480299?v=4 + url: https://github.com/henrymcl +- login: jymchng + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/27895426?u=fb88c47775147d62a395fdb895d1af4148c7b566&v=4 + url: https://github.com/jymchng +- login: christiansicari + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/29756552?v=4 + url: https://github.com/christiansicari +- login: JacobHayes + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/2555532?u=354a525847a276bbb4426b0c95791a8ba5970f9b&v=4 + url: https://github.com/JacobHayes +- login: iloveitaly + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/150855?v=4 + url: https://github.com/iloveitaly +- login: iiotsrc + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/131771119?u=bcaf2559ef6266af70b151b7fda31a1ee3dbecb3&v=4 + url: https://github.com/iiotsrc +- login: PidgeyBE + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/19860056?u=47b584eb1c1ab45e31c1b474109a962d7e82be49&v=4 + url: https://github.com/PidgeyBE +- login: KianAnbarestani + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/145364424?u=dcc3d8fb4ca07d36fb52a17f38b6650565de40be&v=4 + url: https://github.com/KianAnbarestani +- login: ykaiqx + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/56395004?u=1eebf5ce25a8067f7bfa6251a24f667be492d9d6&v=4 + url: https://github.com/ykaiqx +- login: AliYmn + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/18416653?u=a77e2605e3ce6aaf6fef8ad4a7b0d32954fba47a&v=4 + url: https://github.com/AliYmn +- login: gelezo43 + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/40732698?u=611f39d3c1d2f4207a590937a78c1f10eed6232c&v=4 + url: https://github.com/gelezo43 +- login: jfeaver + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/1091338?u=0bcba366447d8fadad63f6705a52d128da4c7ec2&v=4 + url: https://github.com/jfeaver diff --git a/docs/en/data/skip_users.yml b/docs/en/data/skip_users.yml new file mode 100644 index 0000000..cf24003 --- /dev/null +++ b/docs/en/data/skip_users.yml @@ -0,0 +1,5 @@ +- tiangolo +- codecov +- github-actions +- pre-commit-ci +- dependabot diff --git a/docs/en/data/sponsors.yml b/docs/en/data/sponsors.yml new file mode 100644 index 0000000..50b1145 --- /dev/null +++ b/docs/en/data/sponsors.yml @@ -0,0 +1,73 @@ +keystone: + - url: https://fastapicloud.com + title: FastAPI Cloud. By the same team behind FastAPI. You code. We Cloud. + img: https://fastapi.tiangolo.com/img/sponsors/fastapicloud.png +gold: + - url: https://blockbee.io?ref=fastapi + title: BlockBee Cryptocurrency Payment Gateway + img: https://fastapi.tiangolo.com/img/sponsors/blockbee.png + - url: https://github.com/scalar/scalar/?utm_source=fastapi&utm_medium=website&utm_campaign=main-badge + title: "Scalar: Beautiful Open-Source API References from Swagger/OpenAPI files" + img: https://fastapi.tiangolo.com/img/sponsors/scalar.svg + - url: https://www.propelauth.com/?utm_source=fastapi&utm_campaign=1223&utm_medium=mainbadge + title: Auth, user management and more for your B2B product + img: https://fastapi.tiangolo.com/img/sponsors/propelauth.png + - url: https://zuplo.link/fastapi-gh + title: 'Zuplo: Deploy, Secure, Document, and Monetize your FastAPI' + img: https://fastapi.tiangolo.com/img/sponsors/zuplo.png + - url: https://liblab.com?utm_source=fastapi + title: liblab - Generate SDKs from FastAPI + img: https://fastapi.tiangolo.com/img/sponsors/liblab.png + - url: https://docs.render.com/deploy-fastapi?utm_source=deploydoc&utm_medium=referral&utm_campaign=fastapi + title: Deploy & scale any full-stack web app on Render. Focus on building apps, not infra. + img: https://fastapi.tiangolo.com/img/sponsors/render.svg + - url: https://www.coderabbit.ai/?utm_source=fastapi&utm_medium=badge&utm_campaign=fastapi + title: Cut Code Review Time & Bugs in Half with CodeRabbit + img: https://fastapi.tiangolo.com/img/sponsors/coderabbit.png + - url: https://subtotal.com/?utm_source=fastapi&utm_medium=sponsorship&utm_campaign=open-source + title: The Gold Standard in Retail Account Linking + img: https://fastapi.tiangolo.com/img/sponsors/subtotal.svg + - url: https://docs.railway.com/guides/fastapi?utm_medium=integration&utm_source=docs&utm_campaign=fastapi + title: Deploy enterprise applications at startup speed + img: https://fastapi.tiangolo.com/img/sponsors/railway.png + - url: https://serpapi.com/?utm_source=fastapi_website + title: "SerpApi: Web Search API" + img: https://fastapi.tiangolo.com/img/sponsors/serpapi.png + - url: https://www.greptile.com/?utm_source=fastapi&utm_medium=sponsorship&utm_campaign=fastapi_sponsor_page + title: "Greptile: The AI Code Reviewer" + img: https://fastapi.tiangolo.com/img/sponsors/greptile.png +silver: + - url: https://databento.com/?utm_source=fastapi&utm_medium=sponsor&utm_content=display + title: Pay as you go for market data + img: https://fastapi.tiangolo.com/img/sponsors/databento.svg + - url: https://speakeasy.com/editor?utm_source=fastapi+repo&utm_medium=github+sponsorship + title: SDKs for your API | Speakeasy + img: https://fastapi.tiangolo.com/img/sponsors/speakeasy.png + - url: https://www.svix.com/ + title: Svix - Webhooks as a service + img: https://fastapi.tiangolo.com/img/sponsors/svix.svg + - url: https://www.stainlessapi.com/?utm_source=fastapi&utm_medium=referral + title: Stainless | Generate best-in-class SDKs + img: https://fastapi.tiangolo.com/img/sponsors/stainless.png + - url: https://www.permit.io/blog/implement-authorization-in-fastapi?utm_source=github&utm_medium=referral&utm_campaign=fastapi + title: Fine-Grained Authorization for FastAPI + img: https://fastapi.tiangolo.com/img/sponsors/permit.png + - url: https://www.interviewpal.com/?utm_source=fastapi&utm_medium=open-source&utm_campaign=dev-hiring + title: InterviewPal - AI Interview Coach for Engineers and Devs + img: https://fastapi.tiangolo.com/img/sponsors/interviewpal.png + - url: https://dribia.com/en/ + title: Dribia - Data Science within your reach + img: https://fastapi.tiangolo.com/img/sponsors/dribia.png +bronze: + - url: https://www.exoflare.com/open-source/?utm_source=FastAPI&utm_campaign=open_source + title: Biosecurity risk assessments made easy. + img: https://fastapi.tiangolo.com/img/sponsors/exoflare.png + # - url: https://testdriven.io/courses/tdd-fastapi/ + # title: Learn to build high-quality web apps with best practices + # img: https://fastapi.tiangolo.com/img/sponsors/testdriven.svg + - url: https://lambdatest.com/?utm_source=fastapi&utm_medium=partner&utm_campaign=sponsor&utm_term=opensource&utm_content=webpage + title: LambdaTest, AI-Powered Cloud-based Test Orchestration Platform + img: https://fastapi.tiangolo.com/img/sponsors/lambdatest.png + - url: https://requestly.com/fastapi + title: All-in-one platform to Test, Mock and Intercept APIs. Built for speed, privacy and offline support. + img: https://fastapi.tiangolo.com/img/sponsors/requestly.png diff --git a/docs/en/data/sponsors_badge.yml b/docs/en/data/sponsors_badge.yml new file mode 100644 index 0000000..d648be5 --- /dev/null +++ b/docs/en/data/sponsors_badge.yml @@ -0,0 +1,50 @@ +logins: + - jina-ai + - deta + - investsuite + - mikeckennedy + - deepset-ai + - cryptapi + - xoflare + - DropbaseHQ + - VincentParedes + - BLUE-DEVIL1134 + - ObliviousAI + - Doist + - nihpo + - armand-sauzay + - databento-bot + - databento + - nanram22 + - Flint-company + - porter-dev + - fern-api + - ndimares + - svixhq + - Alek99 + - codacy + - zanfaruqui + - scalar + - bump-sh + - andrew-propelauth + - svix + - zuplo-oss + - zuplo + - Kong + - speakeasy-api + - jess-render + - blockbee-io + - liblaber + - render-sponsorships + - renderinc + - stainless-api + - snapit-cypher + - coderabbitai + - permitio + - LambdaTest-Inc + - dribia + - madisonredtfeldt + - railwayapp + - subtotal + - requestly + - greptileai diff --git a/docs/en/data/topic_repos.yml b/docs/en/data/topic_repos.yml new file mode 100644 index 0000000..cb7e3c0 --- /dev/null +++ b/docs/en/data/topic_repos.yml @@ -0,0 +1,495 @@ +- name: full-stack-fastapi-template + html_url: https://github.com/fastapi/full-stack-fastapi-template + stars: 39475 + owner_login: fastapi + owner_html_url: https://github.com/fastapi +- name: Hello-Python + html_url: https://github.com/mouredev/Hello-Python + stars: 33090 + owner_login: mouredev + owner_html_url: https://github.com/mouredev +- name: serve + html_url: https://github.com/jina-ai/serve + stars: 21798 + owner_login: jina-ai + owner_html_url: https://github.com/jina-ai +- name: HivisionIDPhotos + html_url: https://github.com/Zeyi-Lin/HivisionIDPhotos + stars: 20258 + owner_login: Zeyi-Lin + owner_html_url: https://github.com/Zeyi-Lin +- name: sqlmodel + html_url: https://github.com/fastapi/sqlmodel + stars: 17212 + owner_login: fastapi + owner_html_url: https://github.com/fastapi +- name: Douyin_TikTok_Download_API + html_url: https://github.com/Evil0ctal/Douyin_TikTok_Download_API + stars: 15145 + owner_login: Evil0ctal + owner_html_url: https://github.com/Evil0ctal +- name: fastapi-best-practices + html_url: https://github.com/zhanymkanov/fastapi-best-practices + stars: 14644 + owner_login: zhanymkanov + owner_html_url: https://github.com/zhanymkanov +- name: machine-learning-zoomcamp + html_url: https://github.com/DataTalksClub/machine-learning-zoomcamp + stars: 12320 + owner_login: DataTalksClub + owner_html_url: https://github.com/DataTalksClub +- name: fastapi_mcp + html_url: https://github.com/tadata-org/fastapi_mcp + stars: 11174 + owner_login: tadata-org + owner_html_url: https://github.com/tadata-org +- name: SurfSense + html_url: https://github.com/MODSetter/SurfSense + stars: 10858 + owner_login: MODSetter + owner_html_url: https://github.com/MODSetter +- name: awesome-fastapi + html_url: https://github.com/mjhea0/awesome-fastapi + stars: 10758 + owner_login: mjhea0 + owner_html_url: https://github.com/mjhea0 +- name: XHS-Downloader + html_url: https://github.com/JoeanAmier/XHS-Downloader + stars: 9313 + owner_login: JoeanAmier + owner_html_url: https://github.com/JoeanAmier +- name: FastUI + html_url: https://github.com/pydantic/FastUI + stars: 8915 + owner_login: pydantic + owner_html_url: https://github.com/pydantic +- name: polar + html_url: https://github.com/polarsource/polar + stars: 8339 + owner_login: polarsource + owner_html_url: https://github.com/polarsource +- name: FileCodeBox + html_url: https://github.com/vastsa/FileCodeBox + stars: 7721 + owner_login: vastsa + owner_html_url: https://github.com/vastsa +- name: nonebot2 + html_url: https://github.com/nonebot/nonebot2 + stars: 7170 + owner_login: nonebot + owner_html_url: https://github.com/nonebot +- name: hatchet + html_url: https://github.com/hatchet-dev/hatchet + stars: 6253 + owner_login: hatchet-dev + owner_html_url: https://github.com/hatchet-dev +- name: fastapi-users + html_url: https://github.com/fastapi-users/fastapi-users + stars: 5849 + owner_login: fastapi-users + owner_html_url: https://github.com/fastapi-users +- name: serge + html_url: https://github.com/serge-chat/serge + stars: 5756 + owner_login: serge-chat + owner_html_url: https://github.com/serge-chat +- name: strawberry + html_url: https://github.com/strawberry-graphql/strawberry + stars: 4569 + owner_login: strawberry-graphql + owner_html_url: https://github.com/strawberry-graphql +- name: chatgpt-web-share + html_url: https://github.com/chatpire/chatgpt-web-share + stars: 4294 + owner_login: chatpire + owner_html_url: https://github.com/chatpire +- name: poem + html_url: https://github.com/poem-web/poem + stars: 4276 + owner_login: poem-web + owner_html_url: https://github.com/poem-web +- name: dynaconf + html_url: https://github.com/dynaconf/dynaconf + stars: 4202 + owner_login: dynaconf + owner_html_url: https://github.com/dynaconf +- name: atrilabs-engine + html_url: https://github.com/Atri-Labs/atrilabs-engine + stars: 4093 + owner_login: Atri-Labs + owner_html_url: https://github.com/Atri-Labs +- name: Kokoro-FastAPI + html_url: https://github.com/remsky/Kokoro-FastAPI + stars: 4019 + owner_login: remsky + owner_html_url: https://github.com/remsky +- name: logfire + html_url: https://github.com/pydantic/logfire + stars: 3805 + owner_login: pydantic + owner_html_url: https://github.com/pydantic +- name: LitServe + html_url: https://github.com/Lightning-AI/LitServe + stars: 3719 + owner_login: Lightning-AI + owner_html_url: https://github.com/Lightning-AI +- name: fastapi-admin + html_url: https://github.com/fastapi-admin/fastapi-admin + stars: 3632 + owner_login: fastapi-admin + owner_html_url: https://github.com/fastapi-admin +- name: datamodel-code-generator + html_url: https://github.com/koxudaxi/datamodel-code-generator + stars: 3609 + owner_login: koxudaxi + owner_html_url: https://github.com/koxudaxi +- name: huma + html_url: https://github.com/danielgtaylor/huma + stars: 3603 + owner_login: danielgtaylor + owner_html_url: https://github.com/danielgtaylor +- name: farfalle + html_url: https://github.com/rashadphz/farfalle + stars: 3490 + owner_login: rashadphz + owner_html_url: https://github.com/rashadphz +- name: tracecat + html_url: https://github.com/TracecatHQ/tracecat + stars: 3379 + owner_login: TracecatHQ + owner_html_url: https://github.com/TracecatHQ +- name: opyrator + html_url: https://github.com/ml-tooling/opyrator + stars: 3135 + owner_login: ml-tooling + owner_html_url: https://github.com/ml-tooling +- name: docarray + html_url: https://github.com/docarray/docarray + stars: 3114 + owner_login: docarray + owner_html_url: https://github.com/docarray +- name: devpush + html_url: https://github.com/hunvreus/devpush + stars: 3097 + owner_login: hunvreus + owner_html_url: https://github.com/hunvreus +- name: fastapi-realworld-example-app + html_url: https://github.com/nsidnev/fastapi-realworld-example-app + stars: 3050 + owner_login: nsidnev + owner_html_url: https://github.com/nsidnev +- name: uvicorn-gunicorn-fastapi-docker + html_url: https://github.com/tiangolo/uvicorn-gunicorn-fastapi-docker + stars: 2911 + owner_login: tiangolo + owner_html_url: https://github.com/tiangolo +- name: mcp-context-forge + html_url: https://github.com/IBM/mcp-context-forge + stars: 2899 + owner_login: IBM + owner_html_url: https://github.com/IBM +- name: best-of-web-python + html_url: https://github.com/ml-tooling/best-of-web-python + stars: 2648 + owner_login: ml-tooling + owner_html_url: https://github.com/ml-tooling +- name: FastAPI-template + html_url: https://github.com/s3rius/FastAPI-template + stars: 2637 + owner_login: s3rius + owner_html_url: https://github.com/s3rius +- name: YC-Killer + html_url: https://github.com/sahibzada-allahyar/YC-Killer + stars: 2599 + owner_login: sahibzada-allahyar + owner_html_url: https://github.com/sahibzada-allahyar +- name: fastapi-react + html_url: https://github.com/Buuntu/fastapi-react + stars: 2569 + owner_login: Buuntu + owner_html_url: https://github.com/Buuntu +- name: Yuxi-Know + html_url: https://github.com/xerrors/Yuxi-Know + stars: 2563 + owner_login: xerrors + owner_html_url: https://github.com/xerrors +- name: sqladmin + html_url: https://github.com/aminalaee/sqladmin + stars: 2558 + owner_login: aminalaee + owner_html_url: https://github.com/aminalaee +- name: RasaGPT + html_url: https://github.com/paulpierre/RasaGPT + stars: 2451 + owner_login: paulpierre + owner_html_url: https://github.com/paulpierre +- name: supabase-py + html_url: https://github.com/supabase/supabase-py + stars: 2344 + owner_login: supabase + owner_html_url: https://github.com/supabase +- name: nextpy + html_url: https://github.com/dot-agent/nextpy + stars: 2335 + owner_login: dot-agent + owner_html_url: https://github.com/dot-agent +- name: fastapi-utils + html_url: https://github.com/fastapiutils/fastapi-utils + stars: 2291 + owner_login: fastapiutils + owner_html_url: https://github.com/fastapiutils +- name: 30-Days-of-Python + html_url: https://github.com/codingforentrepreneurs/30-Days-of-Python + stars: 2220 + owner_login: codingforentrepreneurs + owner_html_url: https://github.com/codingforentrepreneurs +- name: langserve + html_url: https://github.com/langchain-ai/langserve + stars: 2215 + owner_login: langchain-ai + owner_html_url: https://github.com/langchain-ai +- name: solara + html_url: https://github.com/widgetti/solara + stars: 2122 + owner_login: widgetti + owner_html_url: https://github.com/widgetti +- name: mangum + html_url: https://github.com/Kludex/mangum + stars: 2029 + owner_login: Kludex + owner_html_url: https://github.com/Kludex +- name: agentkit + html_url: https://github.com/BCG-X-Official/agentkit + stars: 1912 + owner_login: BCG-X-Official + owner_html_url: https://github.com/BCG-X-Official +- name: manage-fastapi + html_url: https://github.com/ycd/manage-fastapi + stars: 1885 + owner_login: ycd + owner_html_url: https://github.com/ycd +- name: openapi-python-client + html_url: https://github.com/openapi-generators/openapi-python-client + stars: 1862 + owner_login: openapi-generators + owner_html_url: https://github.com/openapi-generators +- name: piccolo + html_url: https://github.com/piccolo-orm/piccolo + stars: 1836 + owner_login: piccolo-orm + owner_html_url: https://github.com/piccolo-orm +- name: vue-fastapi-admin + html_url: https://github.com/mizhexiaoxiao/vue-fastapi-admin + stars: 1831 + owner_login: mizhexiaoxiao + owner_html_url: https://github.com/mizhexiaoxiao +- name: python-week-2022 + html_url: https://github.com/rochacbruno/python-week-2022 + stars: 1817 + owner_login: rochacbruno + owner_html_url: https://github.com/rochacbruno +- name: slowapi + html_url: https://github.com/laurentS/slowapi + stars: 1798 + owner_login: laurentS + owner_html_url: https://github.com/laurentS +- name: fastapi-cache + html_url: https://github.com/long2ice/fastapi-cache + stars: 1789 + owner_login: long2ice + owner_html_url: https://github.com/long2ice +- name: ormar + html_url: https://github.com/collerek/ormar + stars: 1783 + owner_login: collerek + owner_html_url: https://github.com/collerek +- name: termpair + html_url: https://github.com/cs01/termpair + stars: 1716 + owner_login: cs01 + owner_html_url: https://github.com/cs01 +- name: FastAPI-boilerplate + html_url: https://github.com/benavlabs/FastAPI-boilerplate + stars: 1660 + owner_login: benavlabs + owner_html_url: https://github.com/benavlabs +- name: fastapi-langgraph-agent-production-ready-template + html_url: https://github.com/wassim249/fastapi-langgraph-agent-production-ready-template + stars: 1638 + owner_login: wassim249 + owner_html_url: https://github.com/wassim249 +- name: langchain-serve + html_url: https://github.com/jina-ai/langchain-serve + stars: 1635 + owner_login: jina-ai + owner_html_url: https://github.com/jina-ai +- name: awesome-fastapi-projects + html_url: https://github.com/Kludex/awesome-fastapi-projects + stars: 1589 + owner_login: Kludex + owner_html_url: https://github.com/Kludex +- name: fastapi-pagination + html_url: https://github.com/uriyyo/fastapi-pagination + stars: 1585 + owner_login: uriyyo + owner_html_url: https://github.com/uriyyo +- name: coronavirus-tracker-api + html_url: https://github.com/ExpDev07/coronavirus-tracker-api + stars: 1574 + owner_login: ExpDev07 + owner_html_url: https://github.com/ExpDev07 +- name: fastapi-crudrouter + html_url: https://github.com/awtkns/fastapi-crudrouter + stars: 1559 + owner_login: awtkns + owner_html_url: https://github.com/awtkns +- name: bracket + html_url: https://github.com/evroon/bracket + stars: 1489 + owner_login: evroon + owner_html_url: https://github.com/evroon +- name: fastapi-amis-admin + html_url: https://github.com/amisadmin/fastapi-amis-admin + stars: 1475 + owner_login: amisadmin + owner_html_url: https://github.com/amisadmin +- name: fastapi-boilerplate + html_url: https://github.com/teamhide/fastapi-boilerplate + stars: 1436 + owner_login: teamhide + owner_html_url: https://github.com/teamhide +- name: awesome-python-resources + html_url: https://github.com/DjangoEx/awesome-python-resources + stars: 1426 + owner_login: DjangoEx + owner_html_url: https://github.com/DjangoEx +- name: fastcrud + html_url: https://github.com/benavlabs/fastcrud + stars: 1414 + owner_login: benavlabs + owner_html_url: https://github.com/benavlabs +- name: prometheus-fastapi-instrumentator + html_url: https://github.com/trallnag/prometheus-fastapi-instrumentator + stars: 1388 + owner_login: trallnag + owner_html_url: https://github.com/trallnag +- name: fastapi_best_architecture + html_url: https://github.com/fastapi-practices/fastapi_best_architecture + stars: 1378 + owner_login: fastapi-practices + owner_html_url: https://github.com/fastapi-practices +- name: fastapi-code-generator + html_url: https://github.com/koxudaxi/fastapi-code-generator + stars: 1375 + owner_login: koxudaxi + owner_html_url: https://github.com/koxudaxi +- name: budgetml + html_url: https://github.com/ebhy/budgetml + stars: 1345 + owner_login: ebhy + owner_html_url: https://github.com/ebhy +- name: fastapi-tutorial + html_url: https://github.com/liaogx/fastapi-tutorial + stars: 1327 + owner_login: liaogx + owner_html_url: https://github.com/liaogx +- name: fastapi-alembic-sqlmodel-async + html_url: https://github.com/jonra1993/fastapi-alembic-sqlmodel-async + stars: 1259 + owner_login: jonra1993 + owner_html_url: https://github.com/jonra1993 +- name: fastapi-scaff + html_url: https://github.com/atpuxiner/fastapi-scaff + stars: 1255 + owner_login: atpuxiner + owner_html_url: https://github.com/atpuxiner +- name: bedrock-chat + html_url: https://github.com/aws-samples/bedrock-chat + stars: 1254 + owner_login: aws-samples + owner_html_url: https://github.com/aws-samples +- name: bolt-python + html_url: https://github.com/slackapi/bolt-python + stars: 1253 + owner_login: slackapi + owner_html_url: https://github.com/slackapi +- name: fastapi_production_template + html_url: https://github.com/zhanymkanov/fastapi_production_template + stars: 1217 + owner_login: zhanymkanov + owner_html_url: https://github.com/zhanymkanov +- name: langchain-extract + html_url: https://github.com/langchain-ai/langchain-extract + stars: 1176 + owner_login: langchain-ai + owner_html_url: https://github.com/langchain-ai +- name: restish + html_url: https://github.com/rest-sh/restish + stars: 1140 + owner_login: rest-sh + owner_html_url: https://github.com/rest-sh +- name: odmantic + html_url: https://github.com/art049/odmantic + stars: 1138 + owner_login: art049 + owner_html_url: https://github.com/art049 +- name: authx + html_url: https://github.com/yezz123/authx + stars: 1119 + owner_login: yezz123 + owner_html_url: https://github.com/yezz123 +- name: NoteDiscovery + html_url: https://github.com/gamosoft/NoteDiscovery + stars: 1107 + owner_login: gamosoft + owner_html_url: https://github.com/gamosoft +- name: flock + html_url: https://github.com/Onelevenvy/flock + stars: 1055 + owner_login: Onelevenvy + owner_html_url: https://github.com/Onelevenvy +- name: fastapi-observability + html_url: https://github.com/blueswen/fastapi-observability + stars: 1038 + owner_login: blueswen + owner_html_url: https://github.com/blueswen +- name: aktools + html_url: https://github.com/akfamily/aktools + stars: 1027 + owner_login: akfamily + owner_html_url: https://github.com/akfamily +- name: RuoYi-Vue3-FastAPI + html_url: https://github.com/insistence/RuoYi-Vue3-FastAPI + stars: 1016 + owner_login: insistence + owner_html_url: https://github.com/insistence +- name: autollm + html_url: https://github.com/viddexa/autollm + stars: 1002 + owner_login: viddexa + owner_html_url: https://github.com/viddexa +- name: titiler + html_url: https://github.com/developmentseed/titiler + stars: 999 + owner_login: developmentseed + owner_html_url: https://github.com/developmentseed +- name: lanarky + html_url: https://github.com/ajndkr/lanarky + stars: 994 + owner_login: ajndkr + owner_html_url: https://github.com/ajndkr +- name: every-pdf + html_url: https://github.com/DDULDDUCK/every-pdf + stars: 985 + owner_login: DDULDDUCK + owner_html_url: https://github.com/DDULDDUCK +- name: enterprise-deep-research + html_url: https://github.com/SalesforceAIResearch/enterprise-deep-research + stars: 973 + owner_login: SalesforceAIResearch + owner_html_url: https://github.com/SalesforceAIResearch +- name: fastapi-mail + html_url: https://github.com/sabuhish/fastapi-mail + stars: 964 + owner_login: sabuhish + owner_html_url: https://github.com/sabuhish diff --git a/docs/en/data/translation_reviewers.yml b/docs/en/data/translation_reviewers.yml new file mode 100644 index 0000000..c3d3d03 --- /dev/null +++ b/docs/en/data/translation_reviewers.yml @@ -0,0 +1,1850 @@ +s111d: + login: s111d + count: 147 + avatarUrl: https://avatars.githubusercontent.com/u/4954856?v=4 + url: https://github.com/s111d +Xewus: + login: Xewus + count: 140 + avatarUrl: https://avatars.githubusercontent.com/u/85196001?u=f8e2dc7e5104f109cef944af79050ea8d1b8f914&v=4 + url: https://github.com/Xewus +sodaMelon: + login: sodaMelon + count: 127 + avatarUrl: https://avatars.githubusercontent.com/u/66295123?u=be939db90f1119efee9e6110cc05066ff1f40f00&v=4 + url: https://github.com/sodaMelon +ceb10n: + login: ceb10n + count: 116 + avatarUrl: https://avatars.githubusercontent.com/u/235213?u=edcce471814a1eba9f0cdaa4cd0de18921a940a6&v=4 + url: https://github.com/ceb10n +tokusumi: + login: tokusumi + count: 104 + avatarUrl: https://avatars.githubusercontent.com/u/41147016?u=55010621aece725aa702270b54fed829b6a1fe60&v=4 + url: https://github.com/tokusumi +hasansezertasan: + login: hasansezertasan + count: 95 + avatarUrl: https://avatars.githubusercontent.com/u/13135006?u=99f0b0f0fc47e88e8abb337b4447357939ef93e7&v=4 + url: https://github.com/hasansezertasan +hard-coders: + login: hard-coders + count: 93 + avatarUrl: https://avatars.githubusercontent.com/u/9651103?u=95db33927bbff1ed1c07efddeb97ac2ff33068ed&v=4 + url: https://github.com/hard-coders +alv2017: + login: alv2017 + count: 88 + avatarUrl: https://avatars.githubusercontent.com/u/31544722?v=4 + url: https://github.com/alv2017 +nazarepiedady: + login: nazarepiedady + count: 86 + avatarUrl: https://avatars.githubusercontent.com/u/31008635?u=f69ddc4ea8bda3bdfac7aa0e2ea38de282e6ee2d&v=4 + url: https://github.com/nazarepiedady +AlertRED: + login: AlertRED + count: 81 + avatarUrl: https://avatars.githubusercontent.com/u/15695000?u=f5a4944c6df443030409c88da7d7fa0b7ead985c&v=4 + url: https://github.com/AlertRED +Alexandrhub: + login: Alexandrhub + count: 68 + avatarUrl: https://avatars.githubusercontent.com/u/119126536?u=9fc0d48f3307817bafecc5861eb2168401a6cb04&v=4 + url: https://github.com/Alexandrhub +waynerv: + login: waynerv + count: 63 + avatarUrl: https://avatars.githubusercontent.com/u/39515546?u=ec35139777597cdbbbddda29bf8b9d4396b429a9&v=4 + url: https://github.com/waynerv +cassiobotaro: + login: cassiobotaro + count: 62 + avatarUrl: https://avatars.githubusercontent.com/u/3127847?u=a08022b191ddbd0a6159b2981d9d878b6d5bb71f&v=4 + url: https://github.com/cassiobotaro +nilslindemann: + login: nilslindemann + count: 59 + avatarUrl: https://avatars.githubusercontent.com/u/6892179?u=1dca6a22195d6cd1ab20737c0e19a4c55d639472&v=4 + url: https://github.com/nilslindemann +mattwang44: + login: mattwang44 + count: 59 + avatarUrl: https://avatars.githubusercontent.com/u/24987826?u=58e37fb3927b9124b458945ac4c97aa0f1062d85&v=4 + url: https://github.com/mattwang44 +tiangolo: + login: tiangolo + count: 56 + avatarUrl: https://avatars.githubusercontent.com/u/1326112?u=cb5d06e73a9e1998141b1641aa88e443c6717651&v=4 + url: https://github.com/tiangolo +Laineyzhang55: + login: Laineyzhang55 + count: 48 + avatarUrl: https://avatars.githubusercontent.com/u/59285379?v=4 + url: https://github.com/Laineyzhang55 +Kludex: + login: Kludex + count: 47 + avatarUrl: https://avatars.githubusercontent.com/u/7353520?u=df8a3f06ba8f55ae1967a3e2d5ed882903a4e330&v=4 + url: https://github.com/Kludex +komtaki: + login: komtaki + count: 45 + avatarUrl: https://avatars.githubusercontent.com/u/39375566?u=260ad6b1a4b34c07dbfa728da5e586f16f6d1824&v=4 + url: https://github.com/komtaki +rostik1410: + login: rostik1410 + count: 42 + avatarUrl: https://avatars.githubusercontent.com/u/11443899?u=e26a635c2ba220467b308a326a579b8ccf4a8701&v=4 + url: https://github.com/rostik1410 +svlandeg: + login: svlandeg + count: 42 + avatarUrl: https://avatars.githubusercontent.com/u/8796347?u=556c97650c27021911b0b9447ec55e75987b0e8a&v=4 + url: https://github.com/svlandeg +alperiox: + login: alperiox + count: 42 + avatarUrl: https://avatars.githubusercontent.com/u/34214152?u=2c5acad3461d4dbc2d48371ba86cac56ae9b25cc&v=4 + url: https://github.com/alperiox +Rishat-F: + login: Rishat-F + count: 42 + avatarUrl: https://avatars.githubusercontent.com/u/66554797?v=4 + url: https://github.com/Rishat-F +Winand: + login: Winand + count: 40 + avatarUrl: https://avatars.githubusercontent.com/u/53390?u=bb0e71a2fc3910a8e0ee66da67c33de40ea695f8&v=4 + url: https://github.com/Winand +YuriiMotov: + login: YuriiMotov + count: 40 + avatarUrl: https://avatars.githubusercontent.com/u/109919500?u=b9b13d598dddfab529a52d264df80a900bfe7060&v=4 + url: https://github.com/YuriiMotov +solomein-sv: + login: solomein-sv + count: 38 + avatarUrl: https://avatars.githubusercontent.com/u/46193920?u=789927ee09cfabd752d3bd554fa6baf4850d2777&v=4 + url: https://github.com/solomein-sv +JavierSanchezCastro: + login: JavierSanchezCastro + count: 38 + avatarUrl: https://avatars.githubusercontent.com/u/72013291?u=ae5679e6bd971d9d98cd5e76e8683f83642ba950&v=4 + url: https://github.com/JavierSanchezCastro +alejsdev: + login: alejsdev + count: 37 + avatarUrl: https://avatars.githubusercontent.com/u/90076947?u=85ceac49fb87138aebe8d663912e359447329090&v=4 + url: https://github.com/alejsdev +stlucasgarcia: + login: stlucasgarcia + count: 36 + avatarUrl: https://avatars.githubusercontent.com/u/61513630?u=c22d8850e9dc396a8820766a59837f967e14f9a0&v=4 + url: https://github.com/stlucasgarcia +SwftAlpc: + login: SwftAlpc + count: 36 + avatarUrl: https://avatars.githubusercontent.com/u/52768429?u=6a3aa15277406520ad37f6236e89466ed44bc5b8&v=4 + url: https://github.com/SwftAlpc +timothy-jeong: + login: timothy-jeong + count: 36 + avatarUrl: https://avatars.githubusercontent.com/u/53824764?u=db3d0cea2f5fab64d810113c5039a369699a2774&v=4 + url: https://github.com/timothy-jeong +mezgoodle: + login: mezgoodle + count: 35 + avatarUrl: https://avatars.githubusercontent.com/u/41520940?u=4a9c765af688389d54296845d18b8f6cd6ddf09a&v=4 + url: https://github.com/mezgoodle +rjNemo: + login: rjNemo + count: 34 + avatarUrl: https://avatars.githubusercontent.com/u/56785022?u=d5c3a02567c8649e146fcfc51b6060ccaf8adef8&v=4 + url: https://github.com/rjNemo +codingjenny: + login: codingjenny + count: 34 + avatarUrl: https://avatars.githubusercontent.com/u/103817302?u=3a042740dc0ff58615da0d8679230966fd7693e8&v=4 + url: https://github.com/codingjenny +akarev0: + login: akarev0 + count: 33 + avatarUrl: https://avatars.githubusercontent.com/u/53393089?u=6e528bb4789d56af887ce6fe237bea4010885406&v=4 + url: https://github.com/akarev0 +romashevchenko: + login: romashevchenko + count: 32 + avatarUrl: https://avatars.githubusercontent.com/u/132477732?v=4 + url: https://github.com/romashevchenko +LorhanSohaky: + login: LorhanSohaky + count: 30 + avatarUrl: https://avatars.githubusercontent.com/u/16273730?u=095b66f243a2cd6a0aadba9a095009f8aaf18393&v=4 + url: https://github.com/LorhanSohaky +Vincy1230: + login: Vincy1230 + count: 30 + avatarUrl: https://avatars.githubusercontent.com/u/81342412?u=ab5e256a4077a4a91f3f9cd2115ba80780454cbe&v=4 + url: https://github.com/Vincy1230 +black-redoc: + login: black-redoc + count: 29 + avatarUrl: https://avatars.githubusercontent.com/u/18581590?u=7b6336166d0797fbbd44ea70c1c3ecadfc89af9e&v=4 + url: https://github.com/black-redoc +pedabraham: + login: pedabraham + count: 28 + avatarUrl: https://avatars.githubusercontent.com/u/16860088?u=abf922a7b920bf8fdb7867d8b43e091f1e796178&v=4 + url: https://github.com/pedabraham +Smlep: + login: Smlep + count: 28 + avatarUrl: https://avatars.githubusercontent.com/u/16785985?u=ffe99fa954c8e774ef1117e58d34aece92051e27&v=4 + url: https://github.com/Smlep +dedkot01: + login: dedkot01 + count: 28 + avatarUrl: https://avatars.githubusercontent.com/u/26196675?u=e2966887124e67932853df4f10f86cb526edc7b0&v=4 + url: https://github.com/dedkot01 +hsuanchi: + login: hsuanchi + count: 28 + avatarUrl: https://avatars.githubusercontent.com/u/24913710?u=7d25a398e478b6e63503bf6f26c54efa9e0da07b&v=4 + url: https://github.com/hsuanchi +dpinezich: + login: dpinezich + count: 28 + avatarUrl: https://avatars.githubusercontent.com/u/3204540?u=a2e1465e3ee10d537614d513589607eddefde09f&v=4 + url: https://github.com/dpinezich +maoyibo: + login: maoyibo + count: 27 + avatarUrl: https://avatars.githubusercontent.com/u/7887703?v=4 + url: https://github.com/maoyibo +0417taehyun: + login: 0417taehyun + count: 27 + avatarUrl: https://avatars.githubusercontent.com/u/63915557?u=47debaa860fd52c9b98c97ef357ddcec3b3fb399&v=4 + url: https://github.com/0417taehyun +BilalAlpaslan: + login: BilalAlpaslan + count: 26 + avatarUrl: https://avatars.githubusercontent.com/u/47563997?u=63ed66e304fe8d765762c70587d61d9196e5c82d&v=4 + url: https://github.com/BilalAlpaslan +junah201: + login: junah201 + count: 26 + avatarUrl: https://avatars.githubusercontent.com/u/75025529?u=2451c256e888fa2a06bcfc0646d09b87ddb6a945&v=4 + url: https://github.com/junah201 +zy7y: + login: zy7y + count: 25 + avatarUrl: https://avatars.githubusercontent.com/u/67154681?u=5d634834cc514028ea3f9115f7030b99a1f4d5a4&v=4 + url: https://github.com/zy7y +mycaule: + login: mycaule + count: 25 + avatarUrl: https://avatars.githubusercontent.com/u/6161385?u=e3cec75bd6d938a0d73fae0dc5534d1ab2ed1b0e&v=4 + url: https://github.com/mycaule +Aruelius: + login: Aruelius + count: 24 + avatarUrl: https://avatars.githubusercontent.com/u/25380989?u=574f8cfcda3ea77a3f81884f6b26a97068e36a9d&v=4 + url: https://github.com/Aruelius +wisderfin: + login: wisderfin + count: 24 + avatarUrl: https://avatars.githubusercontent.com/u/77553770?u=9a23740d520d65dc0051cdc1ecd87f31cb900313&v=4 + url: https://github.com/wisderfin +OzgunCaglarArslan: + login: OzgunCaglarArslan + count: 24 + avatarUrl: https://avatars.githubusercontent.com/u/86166426?v=4 + url: https://github.com/OzgunCaglarArslan +sh0nk: + login: sh0nk + count: 23 + avatarUrl: https://avatars.githubusercontent.com/u/6478810?u=af15d724875cec682ed8088a86d36b2798f981c0&v=4 + url: https://github.com/sh0nk +axel584: + login: axel584 + count: 23 + avatarUrl: https://avatars.githubusercontent.com/u/1334088?u=9667041f5b15dc002b6f9665fda8c0412933ac04&v=4 + url: https://github.com/axel584 +DianaTrufanova: + login: DianaTrufanova + count: 23 + avatarUrl: https://avatars.githubusercontent.com/u/119067607?u=1cd55f841b68b4a187fa6d06a7dafa5f070195aa&v=4 + url: https://github.com/DianaTrufanova +AGolicyn: + login: AGolicyn + count: 21 + avatarUrl: https://avatars.githubusercontent.com/u/86262613?u=3c21606ab8d210a061a1673decff1e7d5592b380&v=4 + url: https://github.com/AGolicyn +Attsun1031: + login: Attsun1031 + count: 20 + avatarUrl: https://avatars.githubusercontent.com/u/1175560?v=4 + url: https://github.com/Attsun1031 +ycd: + login: ycd + count: 20 + avatarUrl: https://avatars.githubusercontent.com/u/62724709?u=f1e7bae394a315da950912c92dc861a8eaf95d4c&v=4 + url: https://github.com/ycd +delhi09: + login: delhi09 + count: 20 + avatarUrl: https://avatars.githubusercontent.com/u/63476957?u=6c86e59b48e0394d4db230f37fc9ad4d7e2c27c7&v=4 + url: https://github.com/delhi09 +rogerbrinkmann: + login: rogerbrinkmann + count: 20 + avatarUrl: https://avatars.githubusercontent.com/u/5690226?v=4 + url: https://github.com/rogerbrinkmann +DevDae: + login: DevDae + count: 20 + avatarUrl: https://avatars.githubusercontent.com/u/87962045?u=08e10fa516e844934f4b3fc7c38b33c61697e4a1&v=4 + url: https://github.com/DevDae +sattosan: + login: sattosan + count: 19 + avatarUrl: https://avatars.githubusercontent.com/u/20574756?u=b0d8474d2938189c6954423ae8d81d91013f80a8&v=4 + url: https://github.com/sattosan +yes0ng: + login: yes0ng + count: 19 + avatarUrl: https://avatars.githubusercontent.com/u/25501794?u=3aed18b0d491e0220a167a1e9e58bea3638c6707&v=4 + url: https://github.com/yes0ng +ComicShrimp: + login: ComicShrimp + count: 18 + avatarUrl: https://avatars.githubusercontent.com/u/43503750?u=d2fbf412e7730183ce91686ca48d4147e1b7dc74&v=4 + url: https://github.com/ComicShrimp +simatheone: + login: simatheone + count: 18 + avatarUrl: https://avatars.githubusercontent.com/u/78508673?u=1b9658d9ee0bde33f56130dd52275493ddd38690&v=4 + url: https://github.com/simatheone +ivan-abc: + login: ivan-abc + count: 18 + avatarUrl: https://avatars.githubusercontent.com/u/36765187?u=c6e0ba571c1ccb6db9d94e62e4b8b5eda811a870&v=4 + url: https://github.com/ivan-abc +Limsunoh: + login: Limsunoh + count: 18 + avatarUrl: https://avatars.githubusercontent.com/u/90311848?u=f456e0c5709fd50c8cd2898b551558eda14e5f21&v=4 + url: https://github.com/Limsunoh +SofiiaTrufanova: + login: SofiiaTrufanova + count: 18 + avatarUrl: https://avatars.githubusercontent.com/u/63260929?u=483e0b64fabc76343b3be39b7e1dcb930a95e1bb&v=4 + url: https://github.com/SofiiaTrufanova +bezaca: + login: bezaca + count: 17 + avatarUrl: https://avatars.githubusercontent.com/u/69092910?u=4ac58eab99bd37d663f3d23551df96d4fbdbf760&v=4 + url: https://github.com/bezaca +lbmendes: + login: lbmendes + count: 17 + avatarUrl: https://avatars.githubusercontent.com/u/80999926?u=646619e2f07ac5a7c3f65fe7834197461a4fff9f&v=4 + url: https://github.com/lbmendes +spacesphere: + login: spacesphere + count: 17 + avatarUrl: https://avatars.githubusercontent.com/u/34628304?u=cde91f6002dd33156e1bf8005f11a7a3ed76b790&v=4 + url: https://github.com/spacesphere +panko: + login: panko + count: 17 + avatarUrl: https://avatars.githubusercontent.com/u/1569515?u=a84a5d255621ed82f8e1ca052f5f2eeb75997da2&v=4 + url: https://github.com/panko +jeison-araya: + login: jeison-araya + count: 17 + avatarUrl: https://avatars.githubusercontent.com/u/57369279?u=17001e68af7d8e5b8c343e5e9df4050f419998d5&v=4 + url: https://github.com/jeison-araya +yanever: + login: yanever + count: 16 + avatarUrl: https://avatars.githubusercontent.com/u/21978760?v=4 + url: https://github.com/yanever +mastizada: + login: mastizada + count: 16 + avatarUrl: https://avatars.githubusercontent.com/u/1975818?u=0751a06d7271c8bf17cb73b1b845644ab4d2c6dc&v=4 + url: https://github.com/mastizada +Joao-Pedro-P-Holanda: + login: Joao-Pedro-P-Holanda + count: 16 + avatarUrl: https://avatars.githubusercontent.com/u/110267046?u=331bd016326dac4cf3df4848f6db2dbbf8b5f978&v=4 + url: https://github.com/Joao-Pedro-P-Holanda +JaeHyuckSa: + login: JaeHyuckSa + count: 16 + avatarUrl: https://avatars.githubusercontent.com/u/104830931?u=f3b4a2baea550f428a4c602a30ebee6721c1e3df&v=4 + url: https://github.com/JaeHyuckSa +Jedore: + login: Jedore + count: 15 + avatarUrl: https://avatars.githubusercontent.com/u/17944025?u=81d503e1c800eb666b3861ca47a3a773bbc3f539&v=4 + url: https://github.com/Jedore +kim-sangah: + login: kim-sangah + count: 15 + avatarUrl: https://avatars.githubusercontent.com/u/173775778?v=4 + url: https://github.com/kim-sangah +PandaHun: + login: PandaHun + count: 14 + avatarUrl: https://avatars.githubusercontent.com/u/13096845?u=646eba44db720e37d0dbe8e98e77ab534ea78a20&v=4 + url: https://github.com/PandaHun +dukkee: + login: dukkee + count: 14 + avatarUrl: https://avatars.githubusercontent.com/u/36825394?u=ccfd86e6a4f2d093dad6f7544cc875af67fa2df8&v=4 + url: https://github.com/dukkee +BORA040126: + login: BORA040126 + count: 14 + avatarUrl: https://avatars.githubusercontent.com/u/88664069?u=98e382727a485971e04aaa7c873d9a75a17ee3be&v=4 + url: https://github.com/BORA040126 +mattkoehne: + login: mattkoehne + count: 14 + avatarUrl: https://avatars.githubusercontent.com/u/80362153?v=4 + url: https://github.com/mattkoehne +jovicon: + login: jovicon + count: 13 + avatarUrl: https://avatars.githubusercontent.com/u/21287303?u=b049eac3e51a4c0473c2efe66b4d28a7d8f2b572&v=4 + url: https://github.com/jovicon +izaguerreiro: + login: izaguerreiro + count: 13 + avatarUrl: https://avatars.githubusercontent.com/u/2241504?v=4 + url: https://github.com/izaguerreiro +jburckel: + login: jburckel + count: 13 + avatarUrl: https://avatars.githubusercontent.com/u/11768758?u=044462e4130e086a0621f4abb45f0d7a289ab7fa&v=4 + url: https://github.com/jburckel +peidrao: + login: peidrao + count: 13 + avatarUrl: https://avatars.githubusercontent.com/u/32584628?u=979c62398e16ff000cc0faa028e028efd679887c&v=4 + url: https://github.com/peidrao +impocode: + login: impocode + count: 13 + avatarUrl: https://avatars.githubusercontent.com/u/109408819?u=9cdfc5ccb31a2094c520f41b6087012fa9048982&v=4 + url: https://github.com/impocode +wesinalves: + login: wesinalves + count: 13 + avatarUrl: https://avatars.githubusercontent.com/u/13563128?u=9eb17ed50645dd684bfec47e75dba4e9772ec9c1&v=4 + url: https://github.com/wesinalves +NastasiaSaby: + login: NastasiaSaby + count: 12 + avatarUrl: https://avatars.githubusercontent.com/u/8245071?u=b3afd005f9e4bf080c219ef61a592b3a8004b764&v=4 + url: https://github.com/NastasiaSaby +oandersonmagalhaes: + login: oandersonmagalhaes + count: 12 + avatarUrl: https://avatars.githubusercontent.com/u/83456692?v=4 + url: https://github.com/oandersonmagalhaes +mkdir700: + login: mkdir700 + count: 12 + avatarUrl: https://avatars.githubusercontent.com/u/56359329?u=3d6ea8714f5000829b60dcf7b13a75b1e73aaf47&v=4 + url: https://github.com/mkdir700 +batlopes: + login: batlopes + count: 12 + avatarUrl: https://avatars.githubusercontent.com/u/33462923?u=0fb3d7acb316764616f11e4947faf080e49ad8d9&v=4 + url: https://github.com/batlopes +joonas-yoon: + login: joonas-yoon + count: 12 + avatarUrl: https://avatars.githubusercontent.com/u/9527681?u=0166d22ef4749e617c6516e79f833cd8d73f1949&v=4 + url: https://github.com/joonas-yoon +baseplate-admin: + login: baseplate-admin + count: 12 + avatarUrl: https://avatars.githubusercontent.com/u/61817579?u=ce4c268fa949ae9a0290996e7949195302055812&v=4 + url: https://github.com/baseplate-admin +KaniKim: + login: KaniKim + count: 12 + avatarUrl: https://avatars.githubusercontent.com/u/19832624?u=296dbdd490e0eb96e3d45a2608c065603b17dc31&v=4 + url: https://github.com/KaniKim +andersonrocha0: + login: andersonrocha0 + count: 12 + avatarUrl: https://avatars.githubusercontent.com/u/22346169?u=93a1359c8c5461d894802c0cc65bcd09217e7a02&v=4 + url: https://github.com/andersonrocha0 +gitgernit: + login: gitgernit + count: 12 + avatarUrl: https://avatars.githubusercontent.com/u/129539613?u=d04f10143ab32c93f563ea14bf242d1d2bc991b0&v=4 + url: https://github.com/gitgernit +kwang1215: + login: kwang1215 + count: 12 + avatarUrl: https://avatars.githubusercontent.com/u/74170199?u=2a63ff6692119dde3f5e5693365b9fcd6f977b08&v=4 + url: https://github.com/kwang1215 +AdrianDeAnda: + login: AdrianDeAnda + count: 11 + avatarUrl: https://avatars.githubusercontent.com/u/1024932?u=b2ea249c6b41ddf98679c8d110d0f67d4a3ebf93&v=4 + url: https://github.com/AdrianDeAnda +blt232018: + login: blt232018 + count: 11 + avatarUrl: https://avatars.githubusercontent.com/u/43393471?u=172b0e0391db1aa6c1706498d6dfcb003c8a4857&v=4 + url: https://github.com/blt232018 +NinaHwang: + login: NinaHwang + count: 11 + avatarUrl: https://avatars.githubusercontent.com/u/79563565?u=241f2cb6d38a2d379536608a8ea5a22ed4b1a3ea&v=4 + url: https://github.com/NinaHwang +glsglsgls: + login: glsglsgls + count: 11 + avatarUrl: https://avatars.githubusercontent.com/u/76133879?v=4 + url: https://github.com/glsglsgls +k94-ishi: + login: k94-ishi + count: 11 + avatarUrl: https://avatars.githubusercontent.com/u/32672580?u=bc7c5c07af0656be9fe4f1784a444af8d81ded89&v=4 + url: https://github.com/k94-ishi +codespearhead: + login: codespearhead + count: 11 + avatarUrl: https://avatars.githubusercontent.com/u/72931357?u=0fce6b82219b604d58adb614a761556425579cb5&v=4 + url: https://github.com/codespearhead +emrhnsyts: + login: emrhnsyts + count: 11 + avatarUrl: https://avatars.githubusercontent.com/u/42899027?u=ad26798e3f8feed2041c5dd5f87e58933d6c3283&v=4 + url: https://github.com/emrhnsyts +Lufa1u: + login: Lufa1u + count: 11 + avatarUrl: https://avatars.githubusercontent.com/u/112495876?u=087658920ed9e74311597bdd921d8d2de939d276&v=4 + url: https://github.com/Lufa1u +waketzheng: + login: waketzheng + count: 11 + avatarUrl: https://avatars.githubusercontent.com/u/35413830?u=df19e4fd5bb928e7d086e053ef26a46aad23bf84&v=4 + url: https://github.com/waketzheng +KNChiu: + login: KNChiu + count: 11 + avatarUrl: https://avatars.githubusercontent.com/u/36751646?v=4 + url: https://github.com/KNChiu +maru0123-2004: + login: maru0123-2004 + count: 11 + avatarUrl: https://avatars.githubusercontent.com/u/43961566?u=16ed8603a4d6a4665cb6c53a7aece6f31379b769&v=4 + url: https://github.com/maru0123-2004 +mariacamilagl: + login: mariacamilagl + count: 10 + avatarUrl: https://avatars.githubusercontent.com/u/11489395?u=4adb6986bf3debfc2b8216ae701f2bd47d73da7d&v=4 + url: https://github.com/mariacamilagl +ryuckel: + login: ryuckel + count: 10 + avatarUrl: https://avatars.githubusercontent.com/u/36391432?u=094eec0cfddd5013f76f31e55e56147d78b19553&v=4 + url: https://github.com/ryuckel +umitkaanusta: + login: umitkaanusta + count: 10 + avatarUrl: https://avatars.githubusercontent.com/u/53405015?v=4 + url: https://github.com/umitkaanusta +kty4119: + login: kty4119 + count: 10 + avatarUrl: https://avatars.githubusercontent.com/u/49435654?v=4 + url: https://github.com/kty4119 +RobotToI: + login: RobotToI + count: 10 + avatarUrl: https://avatars.githubusercontent.com/u/44951382?u=e41dbc19191ce7abed86694b1a44ea0523e1c60e&v=4 + url: https://github.com/RobotToI +vitumenezes: + login: vitumenezes + count: 10 + avatarUrl: https://avatars.githubusercontent.com/u/9680878?u=05fd25cfafdc09382bf8907c37293a696c205754&v=4 + url: https://github.com/vitumenezes +fcrozetta: + login: fcrozetta + count: 10 + avatarUrl: https://avatars.githubusercontent.com/u/8006246?u=fa2a743e803de2c3a84d3ed8042faefed16c5e43&v=4 + url: https://github.com/fcrozetta +sUeharaE4: + login: sUeharaE4 + count: 10 + avatarUrl: https://avatars.githubusercontent.com/u/44468359?v=4 + url: https://github.com/sUeharaE4 +Ernilia: + login: Ernilia + count: 10 + avatarUrl: https://avatars.githubusercontent.com/u/125735800?u=13bfaac417a53fd5b5cf992efea363ca72598813&v=4 + url: https://github.com/Ernilia +socket-socket: + login: socket-socket + count: 10 + avatarUrl: https://avatars.githubusercontent.com/u/121552599?u=104df6503242e8d762fe293e7036f7260f245d49&v=4 + url: https://github.com/socket-socket +nick-cjyx9: + login: nick-cjyx9 + count: 10 + avatarUrl: https://avatars.githubusercontent.com/u/119087246?u=7227a2de948c68fb8396d5beff1ee5b0e057c42e&v=4 + url: https://github.com/nick-cjyx9 +lucasbalieiro: + login: lucasbalieiro + count: 10 + avatarUrl: https://avatars.githubusercontent.com/u/37416577?u=dad91601ee4f40458d691774ec439aff308344d7&v=4 + url: https://github.com/lucasbalieiro +Zhongheng-Cheng: + login: Zhongheng-Cheng + count: 10 + avatarUrl: https://avatars.githubusercontent.com/u/95612344?u=a0f7730a3cc7486827965e01a119ad610bda4b0a&v=4 + url: https://github.com/Zhongheng-Cheng +RunningIkkyu: + login: RunningIkkyu + count: 9 + avatarUrl: https://avatars.githubusercontent.com/u/31848542?u=494ecc298e3f26197495bb357ad0f57cfd5f7a32&v=4 + url: https://github.com/RunningIkkyu +JulianMaurin: + login: JulianMaurin + count: 9 + avatarUrl: https://avatars.githubusercontent.com/u/63545168?u=b7d15ac865268cbefc2d739e2f23d9aeeac1a622&v=4 + url: https://github.com/JulianMaurin +JeongHyeongKim: + login: JeongHyeongKim + count: 9 + avatarUrl: https://avatars.githubusercontent.com/u/26577800?u=77f060f4686f32c248907b81b16ee2b3177ca44c&v=4 + url: https://github.com/JeongHyeongKim +arthurio: + login: arthurio + count: 9 + avatarUrl: https://avatars.githubusercontent.com/u/950449?u=76b997138273ce5e1990b971c4f27c9aff979fd5&v=4 + url: https://github.com/arthurio +Lenclove: + login: Lenclove + count: 9 + avatarUrl: https://avatars.githubusercontent.com/u/32355298?u=d0065e01650c63c2b2413f42d983634b2ea85481&v=4 + url: https://github.com/Lenclove +eVery1337: + login: eVery1337 + count: 9 + avatarUrl: https://avatars.githubusercontent.com/u/84917945?u=7af243f05ecfba59191199a70d8ba365c1327768&v=4 + url: https://github.com/eVery1337 +aykhans: + login: aykhans + count: 9 + avatarUrl: https://avatars.githubusercontent.com/u/88669260?u=798da457cc3276d3c6dd7fd628d0005ad8b298cc&v=4 + url: https://github.com/aykhans +riroan: + login: riroan + count: 9 + avatarUrl: https://avatars.githubusercontent.com/u/33053284?u=2d18e3771506ee874b66d6aa2b3b1107fd95c38f&v=4 + url: https://github.com/riroan +MinLee0210: + login: MinLee0210 + count: 9 + avatarUrl: https://avatars.githubusercontent.com/u/57653278?u=8ca05a7efbc76048183da00da87d148b755a3ba8&v=4 + url: https://github.com/MinLee0210 +yodai-yodai: + login: yodai-yodai + count: 9 + avatarUrl: https://avatars.githubusercontent.com/u/7031039?u=4f3593f5931892b931a745cfab846eff6e9332e7&v=4 + url: https://github.com/yodai-yodai +marcelomarkus: + login: marcelomarkus + count: 9 + avatarUrl: https://avatars.githubusercontent.com/u/20115018?u=dda090ce9160ef0cd2ff69b1e5ea741283425cba&v=4 + url: https://github.com/marcelomarkus +JoaoGustavoRogel: + login: JoaoGustavoRogel + count: 9 + avatarUrl: https://avatars.githubusercontent.com/u/29525510?u=a0a91251f5e43e132608d55d28ccb8645c5ea405&v=4 + url: https://github.com/JoaoGustavoRogel +Yarous: + login: Yarous + count: 9 + avatarUrl: https://avatars.githubusercontent.com/u/61277193?u=5b462347458a373b2d599c6f416d2b75eddbffad&v=4 + url: https://github.com/Yarous +dimaqq: + login: dimaqq + count: 8 + avatarUrl: https://avatars.githubusercontent.com/u/662249?u=15313dec91bae789685e4abb3c2152251de41948&v=4 + url: https://github.com/dimaqq +julianofischer: + login: julianofischer + count: 8 + avatarUrl: https://avatars.githubusercontent.com/u/158303?u=d91662eb949d4cc7368831cf37a5cdfd90b7010c&v=4 + url: https://github.com/julianofischer +bnzone: + login: bnzone + count: 8 + avatarUrl: https://avatars.githubusercontent.com/u/39371503?u=c16f00c41d88479fa2d57b0d7d233b758eacce2d&v=4 + url: https://github.com/bnzone +shamosishen: + login: shamosishen + count: 8 + avatarUrl: https://avatars.githubusercontent.com/u/9498321?u=c83c20c79e019a0b555a125adf20fc4fb7a882c8&v=4 + url: https://github.com/shamosishen +mertssmnoglu: + login: mertssmnoglu + count: 8 + avatarUrl: https://avatars.githubusercontent.com/u/61623638?u=59dd885b68ff1832f9ab3b4a4446896358c23442&v=4 + url: https://github.com/mertssmnoglu +mahone3297: + login: mahone3297 + count: 8 + avatarUrl: https://avatars.githubusercontent.com/u/1701379?u=20588ff0e456d13e8017333eb237595d11410234&v=4 + url: https://github.com/mahone3297 +KimJoonSeo: + login: KimJoonSeo + count: 8 + avatarUrl: https://avatars.githubusercontent.com/u/17760162?u=a58cdc77ae1c069a64166f7ecc4d42eecfd9a468&v=4 + url: https://github.com/KimJoonSeo +camigomezdev: + login: camigomezdev + count: 8 + avatarUrl: https://avatars.githubusercontent.com/u/16061815?u=25b5ebc042fff53fa03dc107ded10e36b1b7a5b9&v=4 + url: https://github.com/camigomezdev +minaton-ru: + login: minaton-ru + count: 8 + avatarUrl: https://avatars.githubusercontent.com/u/53541518?u=67336ca11a85493f75031508aade588dad3b9910&v=4 + url: https://github.com/minaton-ru +sungchan1: + login: sungchan1 + count: 8 + avatarUrl: https://avatars.githubusercontent.com/u/28076127?u=a816d86ef3e60450a7225f128caf9a394c9320f9&v=4 + url: https://github.com/sungchan1 +Serrones: + login: Serrones + count: 7 + avatarUrl: https://avatars.githubusercontent.com/u/22691749?u=4795b880e13ca33a73e52fc0ef7dc9c60c8fce47&v=4 + url: https://github.com/Serrones +israteneda: + login: israteneda + count: 7 + avatarUrl: https://avatars.githubusercontent.com/u/20668624?u=67574648f89019d1c73b16a6a009da659557f9e5&v=4 + url: https://github.com/israteneda +krocdort: + login: krocdort + count: 7 + avatarUrl: https://avatars.githubusercontent.com/u/34248814?v=4 + url: https://github.com/krocdort +anthonycepeda: + login: anthonycepeda + count: 7 + avatarUrl: https://avatars.githubusercontent.com/u/72019805?u=60bdf46240cff8fca482ff0fc07d963fd5e1a27c&v=4 + url: https://github.com/anthonycepeda +fabioueno: + login: fabioueno + count: 7 + avatarUrl: https://avatars.githubusercontent.com/u/14273852?u=edd700982b16317ac6ebfd24c47bc0029b21d360&v=4 + url: https://github.com/fabioueno +cfraboulet: + login: cfraboulet + count: 7 + avatarUrl: https://avatars.githubusercontent.com/u/62244267?u=ed0e286ba48fa1dafd64a08e50f3364b8e12df34&v=4 + url: https://github.com/cfraboulet +HiemalBeryl: + login: HiemalBeryl + count: 7 + avatarUrl: https://avatars.githubusercontent.com/u/63165207?u=276f4af2829baf28b912c718675852bfccb0e7b4&v=4 + url: https://github.com/HiemalBeryl +pablocm83: + login: pablocm83 + count: 7 + avatarUrl: https://avatars.githubusercontent.com/u/28315068?u=3310fbb05bb8bfc50d2c48b6cb64ac9ee4a14549&v=4 + url: https://github.com/pablocm83 +d2a-raudenaerde: + login: d2a-raudenaerde + count: 7 + avatarUrl: https://avatars.githubusercontent.com/u/5213150?u=e6d0ef65c571c7e544fc1c7ec151c7c0a72fb6bb&v=4 + url: https://github.com/d2a-raudenaerde +valentinDruzhinin: + login: valentinDruzhinin + count: 7 + avatarUrl: https://avatars.githubusercontent.com/u/12831905?u=aae1ebc675c91e8fa582df4fcc4fc4128106344d&v=4 + url: https://github.com/valentinDruzhinin +Zerohertz: + login: Zerohertz + count: 7 + avatarUrl: https://avatars.githubusercontent.com/u/42334717?u=5ebf4d33e73b1ad373154f6cdee44f7cab4d05ba&v=4 + url: https://github.com/Zerohertz +deniscapeto: + login: deniscapeto + count: 6 + avatarUrl: https://avatars.githubusercontent.com/u/12864353?u=20c5b2300b264a585a8381acf3cef44bcfcc1ead&v=4 + url: https://github.com/deniscapeto +bsab: + login: bsab + count: 6 + avatarUrl: https://avatars.githubusercontent.com/u/9799799?u=c4a09b1abb794cd8280c4793d43d0e2eb963ecda&v=4 + url: https://github.com/bsab +ArcLightSlavik: + login: ArcLightSlavik + count: 6 + avatarUrl: https://avatars.githubusercontent.com/u/31127044?u=b0f2c37142f4b762e41ad65dc49581813422bd71&v=4 + url: https://github.com/ArcLightSlavik +Cajuteq: + login: Cajuteq + count: 6 + avatarUrl: https://avatars.githubusercontent.com/u/26676532?u=8ee0422981810e51480855de1c0d67b6b79cd3f2&v=4 + url: https://github.com/Cajuteq +emmrichard: + login: emmrichard + count: 6 + avatarUrl: https://avatars.githubusercontent.com/u/1328018?u=8114d8fc0e8e42a092e4283013a1c54b792c466b&v=4 + url: https://github.com/emmrichard +wakabame: + login: wakabame + count: 6 + avatarUrl: https://avatars.githubusercontent.com/u/35513518?u=41ef6b0a55076e5c540620d68fb006e386c2ddb0&v=4 + url: https://github.com/wakabame +mawassk: + login: mawassk + count: 6 + avatarUrl: https://avatars.githubusercontent.com/u/84179197?v=4 + url: https://github.com/mawassk +diogoduartec: + login: diogoduartec + count: 6 + avatarUrl: https://avatars.githubusercontent.com/u/31852339?u=7514a5f05fcbeccc62f8c5dc25879efeb1ef9335&v=4 + url: https://github.com/diogoduartec +aqcool: + login: aqcool + count: 6 + avatarUrl: https://avatars.githubusercontent.com/u/52229895?v=4 + url: https://github.com/aqcool +'1320555911': + login: '1320555911' + count: 6 + avatarUrl: https://avatars.githubusercontent.com/u/58590086?u=6d8f4fbf08d5ac72c1c895892c461c5e0b013dc3&v=4 + url: https://github.com/1320555911 +mcthesw: + login: mcthesw + count: 6 + avatarUrl: https://avatars.githubusercontent.com/u/61224072?u=82a1b106298348f060c3f4f39817e0cae5ce2b7c&v=4 + url: https://github.com/mcthesw +xzmeng: + login: xzmeng + count: 6 + avatarUrl: https://avatars.githubusercontent.com/u/40202897?v=4 + url: https://github.com/xzmeng +negadive: + login: negadive + count: 6 + avatarUrl: https://avatars.githubusercontent.com/u/47322392?u=c1be2e9b9b346b4a77d9157da2a5739ab25ce0f8&v=4 + url: https://github.com/negadive +mbroton: + login: mbroton + count: 6 + avatarUrl: https://avatars.githubusercontent.com/u/50829834?u=a48610bf1bffaa9c75d03228926e2eb08a2e24ee&v=4 + url: https://github.com/mbroton +Kirilex: + login: Kirilex + count: 6 + avatarUrl: https://avatars.githubusercontent.com/u/100281552?v=4 + url: https://github.com/Kirilex +arunppsg: + login: arunppsg + count: 6 + avatarUrl: https://avatars.githubusercontent.com/u/26398753?v=4 + url: https://github.com/arunppsg +dimastbk: + login: dimastbk + count: 6 + avatarUrl: https://avatars.githubusercontent.com/u/3132181?u=66587398d43466a1dc75c238df5f048e0afc77ed&v=4 + url: https://github.com/dimastbk +dudyaosuplayer: + login: dudyaosuplayer + count: 6 + avatarUrl: https://avatars.githubusercontent.com/u/62661898?u=7864cc5f01b1c845ae8ad49acf45dec6faca0c57&v=4 + url: https://github.com/dudyaosuplayer +talhaumer: + login: talhaumer + count: 6 + avatarUrl: https://avatars.githubusercontent.com/u/46643702?u=5d1fd7057ea9534fb3221931b809a3d750157212&v=4 + url: https://github.com/talhaumer +bankofsardine: + login: bankofsardine + count: 6 + avatarUrl: https://avatars.githubusercontent.com/u/44944207?u=0368e1b698ffab6bf29e202f9fd2dddd352429f1&v=4 + url: https://github.com/bankofsardine +Rekl0w: + login: Rekl0w + count: 6 + avatarUrl: https://avatars.githubusercontent.com/u/91488737?u=3b62b04a3e6699eab9b1eea4e88c09a39b753a17&v=4 + url: https://github.com/Rekl0w +rsip22: + login: rsip22 + count: 5 + avatarUrl: https://avatars.githubusercontent.com/u/16676222?v=4 + url: https://github.com/rsip22 +jessicapaz: + login: jessicapaz + count: 5 + avatarUrl: https://avatars.githubusercontent.com/u/20428941?u=6ffdaab5a85bf77a2d8870dade5e53555f34577b&v=4 + url: https://github.com/jessicapaz +mohsen-mahmoodi: + login: mohsen-mahmoodi + count: 5 + avatarUrl: https://avatars.githubusercontent.com/u/2872586?u=3a9fc1aa16a3a0ab93a1f8550de82a940592857d&v=4 + url: https://github.com/mohsen-mahmoodi +jeesang7: + login: jeesang7 + count: 5 + avatarUrl: https://avatars.githubusercontent.com/u/30719956?u=35fc8bca04d32d3c4ce085956f0636b959ba30f6&v=4 + url: https://github.com/jeesang7 +TemaSpb: + login: TemaSpb + count: 5 + avatarUrl: https://avatars.githubusercontent.com/u/20205738?u=d7dce0718720a7107803a573d628d8dd3d5c2fb4&v=4 + url: https://github.com/TemaSpb +BugLight: + login: BugLight + count: 5 + avatarUrl: https://avatars.githubusercontent.com/u/13618366?u=7d733749f80e5f7e66a434cf42aedcfc60340f43&v=4 + url: https://github.com/BugLight +0x4Dark: + login: 0x4Dark + count: 5 + avatarUrl: https://avatars.githubusercontent.com/u/7569289?v=4 + url: https://github.com/0x4Dark +Wuerike: + login: Wuerike + count: 5 + avatarUrl: https://avatars.githubusercontent.com/u/35462243?u=80c753dedf4a78db12ef66316dbdebbe6d84a2b9&v=4 + url: https://github.com/Wuerike +jvmazagao: + login: jvmazagao + count: 5 + avatarUrl: https://avatars.githubusercontent.com/u/22477816?u=2b57addf5830906bf6ae5f25cd4c8c2fa5c2d68e&v=4 + url: https://github.com/jvmazagao +cun3yt: + login: cun3yt + count: 5 + avatarUrl: https://avatars.githubusercontent.com/u/24409240?u=06abfd77786db859b0602d5369d2ae18c932c17c&v=4 + url: https://github.com/cun3yt +Mordson: + login: Mordson + count: 5 + avatarUrl: https://avatars.githubusercontent.com/u/39025897?u=b94ea96ef35bbe43bc85359cfb31d28ac16d470c&v=4 + url: https://github.com/Mordson +aminkhani: + login: aminkhani + count: 5 + avatarUrl: https://avatars.githubusercontent.com/u/51851950?u=051896c4933816bc61d11091d887f6e8dfd1d27b&v=4 + url: https://github.com/aminkhani +nifadyev: + login: nifadyev + count: 5 + avatarUrl: https://avatars.githubusercontent.com/u/36514612?u=e101da8641d5a09901d2155255a93f8ab3d9c468&v=4 + url: https://github.com/nifadyev +LaurEars: + login: LaurEars + count: 5 + avatarUrl: https://avatars.githubusercontent.com/u/4914725?v=4 + url: https://github.com/LaurEars +Chushine: + login: Chushine + count: 5 + avatarUrl: https://avatars.githubusercontent.com/u/135534400?v=4 + url: https://github.com/Chushine +ChuyuChoyeon: + login: ChuyuChoyeon + count: 5 + avatarUrl: https://avatars.githubusercontent.com/u/129537877?u=f0c76f3327817a8b86b422d62e04a34bf2827f2b&v=4 + url: https://github.com/ChuyuChoyeon +frwl404: + login: frwl404 + count: 5 + avatarUrl: https://avatars.githubusercontent.com/u/42642656?u=8395a3d991d9fac86901277d76f0f70857b56ec5&v=4 + url: https://github.com/frwl404 +esrefzeki: + login: esrefzeki + count: 5 + avatarUrl: https://avatars.githubusercontent.com/u/54935247?u=193cf5a169ca05fc54995a4dceabc82c7dc6e5ea&v=4 + url: https://github.com/esrefzeki +dtleal: + login: dtleal + count: 5 + avatarUrl: https://avatars.githubusercontent.com/u/31096951?u=704664ec74ab655485e5c909b25de3fa09a922ba&v=4 + url: https://github.com/dtleal +art3xa: + login: art3xa + count: 5 + avatarUrl: https://avatars.githubusercontent.com/u/92092049?v=4 + url: https://github.com/art3xa +SamuelBFavarin: + login: SamuelBFavarin + count: 5 + avatarUrl: https://avatars.githubusercontent.com/u/17628602?u=5aac13ae492fa9a86e397a70803ac723dba2efe7&v=4 + url: https://github.com/SamuelBFavarin +takacs: + login: takacs + count: 5 + avatarUrl: https://avatars.githubusercontent.com/u/44911031?u=f6c6b70b3ba86ceb93b0f9bcab609bf9328b2305&v=4 + url: https://github.com/takacs +anton2yakovlev: + login: anton2yakovlev + count: 5 + avatarUrl: https://avatars.githubusercontent.com/u/44229180?u=ac245e57bc834ff80f08ca8128000bb650a77a3d&v=4 + url: https://github.com/anton2yakovlev +ILoveSorasakiHina: + login: ILoveSorasakiHina + count: 5 + avatarUrl: https://avatars.githubusercontent.com/u/114038930?u=3d3ed8dc3bf57e641d1b26badee5bc79ef34f25b&v=4 + url: https://github.com/ILoveSorasakiHina +devluisrodrigues: + login: devluisrodrigues + count: 5 + avatarUrl: https://avatars.githubusercontent.com/u/103431660?u=d9674a3249edc4601d2c712cdebf899918503c3a&v=4 + url: https://github.com/devluisrodrigues +11kkw: + login: 11kkw + count: 5 + avatarUrl: https://avatars.githubusercontent.com/u/21125286?v=4 + url: https://github.com/11kkw +lpdswing: + login: lpdswing + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/20874036?u=7a4fc3e4d0719e37b305deb7af234a7b63200787&v=4 + url: https://github.com/lpdswing +SepehrRasouli: + login: SepehrRasouli + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/81516241?u=3987e880c77d653dd85963302150e07bb7c0ef99&v=4 + url: https://github.com/SepehrRasouli +Zxilly: + login: Zxilly + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/31370133?u=c5359b8d9d80a7cdc23d5295d179ed90174996c8&v=4 + url: https://github.com/Zxilly +eavv: + login: eavv + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/18273429?u=c05e8b4ea62810ee7889ca049e510cdd0a66fd26&v=4 + url: https://github.com/eavv +AlexandreBiguet: + login: AlexandreBiguet + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/1483079?u=ff926455cd4cab03c6c49441aa5dc2b21df3e266&v=4 + url: https://github.com/AlexandreBiguet +FelipeSilva93: + login: FelipeSilva93 + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/66804965?u=e7cb4b580e46f2e04ecb4cd4d7a12acdddd3c6c1&v=4 + url: https://github.com/FelipeSilva93 +peacekimjapan: + login: peacekimjapan + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/33534175?u=e4219bcebc3773a7068cc34c3eb268ef77cec31b&v=4 + url: https://github.com/peacekimjapan +bas-baskara: + login: bas-baskara + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/41407847?u=cdabfaff7481c3323f24a76d9350393b964f2b89&v=4 + url: https://github.com/bas-baskara +odiseo0: + login: odiseo0 + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/87550035?u=241a71f6b7068738b81af3e57f45ffd723538401&v=4 + url: https://github.com/odiseo0 +eryknn: + login: eryknn + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/87120651?v=4 + url: https://github.com/eryknn +personage-hub: + login: personage-hub + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/76659786?v=4 + url: https://github.com/personage-hub +aminalaee: + login: aminalaee + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/19784933?v=4 + url: https://github.com/aminalaee +erfan-rfmhr: + login: erfan-rfmhr + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/98986056?u=0acda1ff1df0989f3f3eb79977baa35da4cb6c8c&v=4 + url: https://github.com/erfan-rfmhr +Scorpionchiques: + login: Scorpionchiques + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/15703294?v=4 + url: https://github.com/Scorpionchiques +lordqyxz: + login: lordqyxz + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/31722468?u=974553c0ba53526d9be7e9876544283291be3b0d&v=4 + url: https://github.com/lordqyxz +heysaeid: + login: heysaeid + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/63112273?u=5397ead391319a147a18b70cc04d1a334f235ef3&v=4 + url: https://github.com/heysaeid +Yois4101: + login: Yois4101 + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/119609381?v=4 + url: https://github.com/Yois4101 +tamtam-fitness: + login: tamtam-fitness + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/62091034?u=8da19a6bd3d02f5d6ba30c7247d5b46c98dd1403&v=4 + url: https://github.com/tamtam-fitness +mpmeleshko: + login: mpmeleshko + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/34425664?v=4 + url: https://github.com/mpmeleshko +SonnyYou: + login: SonnyYou + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/18657569?v=4 + url: https://github.com/SonnyYou +matiasbertani: + login: matiasbertani + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/65260383?u=d5edd86a6e2ab4fb1aab7751931fe045a963afd7&v=4 + url: https://github.com/matiasbertani +thiennc254: + login: thiennc254 + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/97406628?u=1b2860679694b9a552764d0fa81dbd7a016322ec&v=4 + url: https://github.com/thiennc254 +javillegasna: + login: javillegasna + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/38879192?u=df9ab0d628f8c1f1c849db7b3c0939337f42c3f1&v=4 + url: https://github.com/javillegasna +9zimin9: + login: 9zimin9 + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/174453744?v=4 + url: https://github.com/9zimin9 +ilhamfadillah: + login: ilhamfadillah + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/20577838?u=c56192cf99b55affcaad408b240259c62e633450&v=4 + url: https://github.com/ilhamfadillah +gerry-sabar: + login: gerry-sabar + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/1120123?v=4 + url: https://github.com/gerry-sabar +cookie-byte217: + login: cookie-byte217 + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/57880178?v=4 + url: https://github.com/cookie-byte217 +AbolfazlKameli: + login: AbolfazlKameli + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/120686133?u=af8f025278cce0d489007071254e4055df60b78c&v=4 + url: https://github.com/AbolfazlKameli +tyronedamasceno: + login: tyronedamasceno + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/12273721?u=913bca6bab96d9416ad8c9874c80de0833782050&v=4 + url: https://github.com/tyronedamasceno +LikoIlya: + login: LikoIlya + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/15039930?v=4 + url: https://github.com/LikoIlya +ss-o-furda: + login: ss-o-furda + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/56111536?u=d2326baa464a3778c280ed85fd14c00f87eb1080&v=4 + url: https://github.com/ss-o-furda +Frans06: + login: Frans06 + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/5842109?u=77529d5517ae80438249b1a45f2d59372a31a212&v=4 + url: https://github.com/Frans06 +Jefidev: + login: Jefidev + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/9964497?u=1da6eee587a8b425ca4afbfdfc6c3a639fe85d02&v=4 + url: https://github.com/Jefidev +Xaraxx: + login: Xaraxx + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/29824698?u=dde2e233e22bb5ca1f8bb0c6e353ccd0d06e6066&v=4 + url: https://github.com/Xaraxx +Suyoung789: + login: Suyoung789 + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/31277231?u=1591aaf651eb860017231a36590050e154c026b6&v=4 + url: https://github.com/Suyoung789 +akagaeng: + login: akagaeng + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/17076841?u=9ada2eb6a33dc705ba96d58f802c787dea3859b8&v=4 + url: https://github.com/akagaeng +phamquanganh31101998: + login: phamquanganh31101998 + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/43257497?u=6b3419ea9e318c356c42a973fb947682590bd8d3&v=4 + url: https://github.com/phamquanganh31101998 +peebbv6364: + login: peebbv6364 + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/26784747?u=75583df215ee01a5cd2dc646aecb81e7dbd33d06&v=4 + url: https://github.com/peebbv6364 +mrparalon: + login: mrparalon + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/19637629?u=6339508ceb665717cae862a4d33816ac874cbb8f&v=4 + url: https://github.com/mrparalon +creyD: + login: creyD + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/15138480?u=51cd2873cd93807beb578af8e23975856fdbc945&v=4 + url: https://github.com/creyD +zhoonit: + login: zhoonit + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/17230883?u=698cb26dcce4770374b592aad3b7489e91c07fc6&v=4 + url: https://github.com/zhoonit +Sefank: + login: Sefank + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/12670778?u=ca16995c68a82cabc7435c54ac0564930f62dd59&v=4 + url: https://github.com/Sefank +RuslanTer: + login: RuslanTer + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/48125303?v=4 + url: https://github.com/RuslanTer +FedorGN: + login: FedorGN + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/66411909?u=22382380e7d66ee57ffbfc2ae6bd5efd0cdb672e&v=4 + url: https://github.com/FedorGN +rafsaf: + login: rafsaf + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/51059348?u=5fe59a56e1f2f9ccd8005d71752a8276f133ae1a&v=4 + url: https://github.com/rafsaf +frnsimoes: + login: frnsimoes + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/66239468?u=fd8d408946633acc4bea057c207e6c0833871527&v=4 + url: https://github.com/frnsimoes +lieryan: + login: lieryan + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/1006989?v=4 + url: https://github.com/lieryan +ValeryVal: + login: ValeryVal + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/85856176?v=4 + url: https://github.com/ValeryVal +chesstrian: + login: chesstrian + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/3923412?u=8ea9bea6cfb5e6c64dc81be65ac2a9aaf23c5d47&v=4 + url: https://github.com/chesstrian +PabloEmidio: + login: PabloEmidio + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/69937719?u=f4d04cb78da68bb93a641f0b793ff665162e712a&v=4 + url: https://github.com/PabloEmidio +PraveenNanda124: + login: PraveenNanda124 + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/116082827?u=b40c4f23c191692e88f676dc3bf33fc7f315edd4&v=4 + url: https://github.com/PraveenNanda124 +guites: + login: guites + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/71985299?u=5dab5eb82b0a67fe709fc893f47a423df4de5d46&v=4 + url: https://github.com/guites +Junhyung21: + login: Junhyung21 + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/138214497?u=66377988eaad4f57004decb183f396560407a73f&v=4 + url: https://github.com/Junhyung21 +rinaatt: + login: rinaatt + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/6111202?u=9f62ebd2a72879db54d0b51c07c1d1e7203a4813&v=4 + url: https://github.com/rinaatt +Slijeff: + login: Slijeff + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/31459252?u=083776331690bbcf427766071e33ac28bb8d271d&v=4 + url: https://github.com/Slijeff +GeorchW: + login: GeorchW + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/8687777?u=ae4160f1d88f32692760003f3be9b5fc40a6e00d&v=4 + url: https://github.com/GeorchW +Vlad0395: + login: Vlad0395 + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/37487589?u=57dc6660b9904cc0bc59b73569bbfb1ac871a4a1&v=4 + url: https://github.com/Vlad0395 +bisibuka: + login: bisibuka + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/221887?v=4 + url: https://github.com/bisibuka +aimasheraz1: + login: aimasheraz1 + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/132935019?v=4 + url: https://github.com/aimasheraz1 +whysage: + login: whysage + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/67018871?u=a05d63a1b315dcf56a4c0dda3c0ca84ce3d6c87f&v=4 + url: https://github.com/whysage +Chake9928: + login: Chake9928 + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/62596047?u=7aa2c0aad46911934ce3d22f83a895d05fa54e09&v=4 + url: https://github.com/Chake9928 +qaerial: + login: qaerial + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/41595550?v=4 + url: https://github.com/qaerial +bluefish6: + login: bluefish6 + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/3324881?u=d107f6d0017927191644829fb845a8ceb8ac20ee&v=4 + url: https://github.com/bluefish6 +Sion99: + login: Sion99 + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/82511301?v=4 + url: https://github.com/Sion99 +nymous: + login: nymous + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/4216559?u=360a36fb602cded27273cbfc0afc296eece90662&v=4 + url: https://github.com/nymous +EpsilonRationes: + login: EpsilonRationes + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/148639079?v=4 + url: https://github.com/EpsilonRationes +SametEmin: + login: SametEmin + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/115692383?u=bda9052f698e50b0df6657fb9436d07e8496fe2f&v=4 + url: https://github.com/SametEmin +fhabers21: + login: fhabers21 + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/58401847?v=4 + url: https://github.com/fhabers21 +kohiry: + login: kohiry + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/57669492?u=f6ab0a062740261e882879269a41a47788c84043&v=4 + url: https://github.com/kohiry +ptt3199: + login: ptt3199 + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/51350651?u=2c3d947a80283e32bf616d4c3af139a6be69680f&v=4 + url: https://github.com/ptt3199 +arynoot: + login: arynoot + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/73756088?v=4 + url: https://github.com/arynoot +GDemay: + login: GDemay + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/7033942?u=bbdcb4e2a67df4ec9caa2440362d8cebc44d65e8&v=4 + url: https://github.com/GDemay +maxscheijen: + login: maxscheijen + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/47034840?v=4 + url: https://github.com/maxscheijen +celestywang: + login: celestywang + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/184830753?v=4 + url: https://github.com/celestywang +RyaWcksn: + login: RyaWcksn + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/42831964?u=0cb4265faf3e3425a89e59b6fddd3eb2de180af0&v=4 + url: https://github.com/RyaWcksn +tienduong-21: + login: tienduong-21 + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/80129618?v=4 + url: https://github.com/tienduong-21 +zbellos: + login: zbellos + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/204500646?v=4 + url: https://github.com/zbellos +Mohammad222PR: + login: Mohammad222PR + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/116789737?u=25810a5fe049d2f1618e2e7417cea011cc353ce4&v=4 + url: https://github.com/Mohammad222PR +EdmilsonRodrigues: + login: EdmilsonRodrigues + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/62777025?u=217d6f3cd6cc750bb8818a3af7726c8d74eb7c2d&v=4 + url: https://github.com/EdmilsonRodrigues +blaisep: + login: blaisep + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/254456?u=97d584b7c0a6faf583aa59975df4f993f671d121&v=4 + url: https://github.com/blaisep +SirTelemak: + login: SirTelemak + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/9435877?u=719327b7d2c4c62212456d771bfa7c6b8dbb9eac&v=4 + url: https://github.com/SirTelemak +ovezovs: + login: ovezovs + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/44060682?u=9cb4d738b15e64157cb65afbe2e31bd0c8f3f6e6&v=4 + url: https://github.com/ovezovs +neatek: + login: neatek + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/3075678?u=3001e778e4aa0bf6d3142d09f0b9d13b2c55066f&v=4 + url: https://github.com/neatek +sprytnyk: + login: sprytnyk + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/16718258?u=4893ea96bfebfbdbde8abd9e06851eca12b01bc9&v=4 + url: https://github.com/sprytnyk +wfpinedar: + login: wfpinedar + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/5309214?u=4af7b6b3907b015699a9994d0808137dd68f7658&v=4 + url: https://github.com/wfpinedar +italopenaforte: + login: italopenaforte + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/7786881?u=e64a8f24b1ba95eb82f283be8ab90892e40c5465&v=4 + url: https://github.com/italopenaforte +hackerneocom: + login: hackerneocom + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/67042948?u=ca365045bd261cec5a64059aa23cf80065148c3c&v=4 + url: https://github.com/hackerneocom +dmas-at-wiris: + login: dmas-at-wiris + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/24917162?u=0df147936a375b4b64232c650de31a227a6b59a0&v=4 + url: https://github.com/dmas-at-wiris +TorhamDev: + login: TorhamDev + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/87639984?u=07e5429fbd9c5d63c5ca55a0f31ef541216f0ce6&v=4 + url: https://github.com/TorhamDev +jaystone776: + login: jaystone776 + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/11191137?u=299205a95e9b6817a43144a48b643346a5aac5cc&v=4 + url: https://github.com/jaystone776 +AaronDewes: + login: AaronDewes + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/67546953?v=4 + url: https://github.com/AaronDewes +kunansy: + login: kunansy + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/20476946?u=d8321cd00787d5ee29bfdd8ff6fde23ad783a581&v=4 + url: https://github.com/kunansy +TimorChow: + login: TimorChow + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/18365403?u=bcbb357be0a447bc682a161932eab5032cede4af&v=4 + url: https://github.com/TimorChow +ataberkciftlikli: + login: ataberkciftlikli + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/64265169?u=ca7c1348242559f70bc1dc027a4be277c464676f&v=4 + url: https://github.com/ataberkciftlikli +leandrodesouzadev: + login: leandrodesouzadev + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/85115541?u=4eb25f43f1fe23727d61e986cf83b73b86e2a95a&v=4 + url: https://github.com/leandrodesouzadev +dutkiewicz: + login: dutkiewicz + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/6649846?u=e941be6e1ab2ffdf41cea227a73f0ffbef20628f&v=4 + url: https://github.com/dutkiewicz +mirusu400: + login: mirusu400 + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/25397908?u=deda776115e4ee6f76fa526bb5127bd1a6c4b231&v=4 + url: https://github.com/mirusu400 +its0x08: + login: its0x08 + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/15280042?u=d7c2058f29d4e8fbdae09b194e04c5e410350211&v=4 + url: https://github.com/its0x08 +linsein: + login: linsein + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/23748021?u=4db169ce262b69aa7292f82b785436544f69fb88&v=4 + url: https://github.com/linsein +0xflotus: + login: 0xflotus + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/26602940?u=3c52ce6393bb547c97e6380ccdee03e0c64152c6&v=4 + url: https://github.com/0xflotus +jonatasoli: + login: jonatasoli + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/26334101?u=f601c3f111f2148bd9244c2cb3ebbd57b592e674&v=4 + url: https://github.com/jonatasoli +tyzh-dev: + login: tyzh-dev + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/51972581?u=ba3882da7c009918a8e2d6b9ead31c89f09c922d&v=4 + url: https://github.com/tyzh-dev +yurkevich-dev: + login: yurkevich-dev + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/45145188?u=db2de8c186073d95693279dcf085fcebffab57d0&v=4 + url: https://github.com/yurkevich-dev +emp7yhead: + login: emp7yhead + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/20521260?u=9494c74cb9e1601d734b1f2726e292e257777d98&v=4 + url: https://github.com/emp7yhead +BartoszCki: + login: BartoszCki + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/17833351?u=40025e1182c32a9664834baec268dadad127703d&v=4 + url: https://github.com/BartoszCki +hakancelikdev: + login: hakancelikdev + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/19157033?u=095ea8e0af1de642edd92e5f806c70359e00c977&v=4 + url: https://github.com/hakancelikdev +KaterinaSolovyeva: + login: KaterinaSolovyeva + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/85114725?u=1fe81463cb6b1fd01ac047172fa4895e2a3cecaa&v=4 + url: https://github.com/KaterinaSolovyeva +zhanymkanov: + login: zhanymkanov + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/22341602?u=aa1c47285a4f5692d165ccb2a441c5553f23ef83&v=4 + url: https://github.com/zhanymkanov +felipebpl: + login: felipebpl + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/62957465?u=3c05f0f358b9575503c03122daefb115b6ac1414&v=4 + url: https://github.com/felipebpl +iudeen: + login: iudeen + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/10519440?u=f09cdd745e5bf16138f29b42732dd57c7f02bee1&v=4 + url: https://github.com/iudeen +dwisulfahnur: + login: dwisulfahnur + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/12431528?v=4 + url: https://github.com/dwisulfahnur +ayr-ton: + login: ayr-ton + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/1090517?u=5cf70a0e0f0dbf084e074e494aa94d7c91a46ba6&v=4 + url: https://github.com/ayr-ton +raphaelauv: + login: raphaelauv + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/10202690?u=e6f86f5c0c3026a15d6b51792fa3e532b12f1371&v=4 + url: https://github.com/raphaelauv +Fahad-Md-Kamal: + login: Fahad-Md-Kamal + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/34704464?u=141086368c5557d5a1a533fe291f21f9fc584458&v=4 + url: https://github.com/Fahad-Md-Kamal +zxcq544: + login: zxcq544 + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/5781268?u=25959ea03803742c3b28220b27fc07923a491dcb&v=4 + url: https://github.com/zxcq544 +AlexandrMaltsevYDX: + login: AlexandrMaltsevYDX + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/109986802?u=ed275d72bfcdb4d15abdd54e7be026adbb9ca098&v=4 + url: https://github.com/AlexandrMaltsevYDX +realFranco: + login: realFranco + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/45880759?u=22fea3007d3e2d4c8c82d6ccfbde71454c4c6dd8&v=4 + url: https://github.com/realFranco +piaria: + login: piaria + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/110835535?u=5af3d56254faa05bbca4258a46c5723489480f90&v=4 + url: https://github.com/piaria +mojtabapaso: + login: mojtabapaso + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/121169359?u=ced1d5ad673bcd9e949ebf967a4ab50185637443&v=4 + url: https://github.com/mojtabapaso +eghbalpoorMH: + login: eghbalpoorMH + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/36267498?v=4 + url: https://github.com/eghbalpoorMH +Tiazen: + login: Tiazen + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/16170159?u=0ce5e32f76e3f10733c8f25d97db9e31b753838c&v=4 + url: https://github.com/Tiazen +jfunez: + login: jfunez + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/805749?v=4 + url: https://github.com/jfunez +s-rigaud: + login: s-rigaud + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/46346622?u=eee0adaa9fdff9e312d52526fbd4020dd6860c27&v=4 + url: https://github.com/s-rigaud +Artem4es: + login: Artem4es + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/110793967?u=0f9d4e80e055adc1aa8b548e951f6b4989fa2e78&v=4 + url: https://github.com/Artem4es +sulemanhelp: + login: sulemanhelp + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/22400366?u=3e8e68750655c7f5b2e0ba1d54f5779ee526707d&v=4 + url: https://github.com/sulemanhelp +theRealNonso: + login: theRealNonso + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/29557286?u=6f062680edccfeb4c802daf3b1d8b2a9e21ae013&v=4 + url: https://github.com/theRealNonso +AhsanSheraz: + login: AhsanSheraz + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/51913596?u=08e31cacb3048be30722c94010ddd028f3fdbec4&v=4 + url: https://github.com/AhsanSheraz +HealerNguyen: + login: HealerNguyen + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/29653304?u=6ab095689054c63b1f4ceb26dd66847450225c87&v=4 + url: https://github.com/HealerNguyen +isulim: + login: isulim + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/30448496?u=44c47838defa48a16606b895dce08890fca8482f&v=4 + url: https://github.com/isulim +siavashyj: + login: siavashyj + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/43583410?u=562005ddc7901cd27a1219a118a2363817b14977&v=4 + url: https://github.com/siavashyj +Ramin-RX7: + login: Ramin-RX7 + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/52785580?u=b3678f779ad0ee9cd9dca9e50ccb804b5eb990a5&v=4 + url: https://github.com/Ramin-RX7 +DevSpace88: + login: DevSpace88 + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/102557040?u=6b356e3e1b9b6bc6a208b363988d4089ef94193f&v=4 + url: https://github.com/DevSpace88 +Yum-git: + login: Yum-git + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/56100888?u=7c6ae21af081488b5fb703ab096fb1926025fd50&v=4 + url: https://github.com/Yum-git +oubush: + login: oubush + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/7489099?u=c86448bc61f5e7f03a1f14a768beeb09c33899d4&v=4 + url: https://github.com/oubush +KAZAMA-DREAM: + login: KAZAMA-DREAM + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/73453137?u=5108c757a3842733a448d9a16cdc65d82899eee1&v=4 + url: https://github.com/KAZAMA-DREAM +aprilcoskun: + login: aprilcoskun + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/17393603?u=18177d5bdba3a4567b8664587c882fb734e5fa09&v=4 + url: https://github.com/aprilcoskun +zhiquanchi: + login: zhiquanchi + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/29973289?u=744c74bc2635f839235ec32a0a934c5cef9a156d&v=4 + url: https://github.com/zhiquanchi +Jamim: + login: Jamim + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/5607572?u=9ce0b6a6d1a5124e28b3c04d8d26827ca328713a&v=4 + url: https://github.com/Jamim +alvinkhalil: + login: alvinkhalil + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/84583022?u=ab0eeb9ce6ffe93fd9bb23daf782b9867b864149&v=4 + url: https://github.com/alvinkhalil +leylaeminova: + login: leylaeminova + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/100516839?u=0b0dab9e31742076b22812b14a39b4e6d8f6de4a&v=4 + url: https://github.com/leylaeminova +UN-9BOT: + login: UN-9BOT + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/111110804?u=39e158937ed795972c2d0400fc521c50e9bfb9e7&v=4 + url: https://github.com/UN-9BOT +flasonme: + login: flasonme + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/30571019?v=4 + url: https://github.com/flasonme +gustavoprezoto: + login: gustavoprezoto + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/62812585?u=2e936a0c6a2f11ecf3a735ebd33386100bcfebf8&v=4 + url: https://github.com/gustavoprezoto +johnny630: + login: johnny630 + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/2870590?v=4 + url: https://github.com/johnny630 +JCTrapero: + login: JCTrapero + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/109148166?u=bea607a04058176c4c2ae0d7c2e9ec647ccef002&v=4 + url: https://github.com/JCTrapero +ZhibangYue: + login: ZhibangYue + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/93324586?u=20fb23e3718e0364bb217966470d35e0637dd4fe&v=4 + url: https://github.com/ZhibangYue +saeye: + login: saeye + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/62229734?u=312d619db2588b60d5d5bde65260a2f44fdc6c76&v=4 + url: https://github.com/saeye +Heumhub: + login: Heumhub + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/173761521?v=4 + url: https://github.com/Heumhub +manumolina: + login: manumolina + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/2404208?u=fdc5502910f8dec814b2477f89587b9e45fac846&v=4 + url: https://github.com/manumolina +logan2d5: + login: logan2d5 + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/146642263?u=dbd6621f8b0330d6919f6a7131277b92e26fbe87&v=4 + url: https://github.com/logan2d5 +guspan-tanadi: + login: guspan-tanadi + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/36249910?v=4 + url: https://github.com/guspan-tanadi +tiaggo16: + login: tiaggo16 + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/62227573?u=359f4e2c51a4b13c8553ac5af405d635b07bb61f&v=4 + url: https://github.com/tiaggo16 +kiharito: + login: kiharito + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/38311245?v=4 + url: https://github.com/kiharito +t4f1d: + login: t4f1d + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/4054172?u=463d5ce0ec8ad8582f6e9351bb8c9a5105b39bb7&v=4 + url: https://github.com/t4f1d +J-Fuji: + login: J-Fuji + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/101452903?v=4 + url: https://github.com/J-Fuji +MrL8199: + login: MrL8199 + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/39489075?u=3fc4f89c86973e40b5970d838c801bdbc13ac828&v=4 + url: https://github.com/MrL8199 +ivintoiu: + login: ivintoiu + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/1853336?u=e3de5fd0ab17efc12256b4295285b504ca281440&v=4 + url: https://github.com/ivintoiu +TechnoService2: + login: TechnoService2 + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/142113388?v=4 + url: https://github.com/TechnoService2 +EgorOnishchuk: + login: EgorOnishchuk + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/120256301?v=4 + url: https://github.com/EgorOnishchuk +iamantonreznik: + login: iamantonreznik + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/112612414?u=bf6de9a1ab17326fe14de0709719fff3826526d0&v=4 + url: https://github.com/iamantonreznik +Azazul123: + login: Azazul123 + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/102759111?u=b48ce6e30a81a23467cc30e0c011bcc57f0326ab&v=4 + url: https://github.com/Azazul123 +ykertytsky: + login: ykertytsky + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/83857001?u=1172902656ee604cf37f5e36abe938cd34a97a32&v=4 + url: https://github.com/ykertytsky +NavesSapnis: + login: NavesSapnis + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/79222417?u=b5b10291b8e9130ca84fd20f0a641e04ed94b6b1&v=4 + url: https://github.com/NavesSapnis +eqsdxr: + login: eqsdxr + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/157279130?u=7927dc0366995334f9a18c3204a41d3a34d6d96f&v=4 + url: https://github.com/eqsdxr +syedasamina56: + login: syedasamina56 + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/183273097?v=4 + url: https://github.com/syedasamina56 diff --git a/docs/en/data/translators.yml b/docs/en/data/translators.yml new file mode 100644 index 0000000..c66eff4 --- /dev/null +++ b/docs/en/data/translators.yml @@ -0,0 +1,550 @@ +nilslindemann: + login: nilslindemann + count: 125 + avatarUrl: https://avatars.githubusercontent.com/u/6892179?u=1dca6a22195d6cd1ab20737c0e19a4c55d639472&v=4 + url: https://github.com/nilslindemann +jaystone776: + login: jaystone776 + count: 46 + avatarUrl: https://avatars.githubusercontent.com/u/11191137?u=299205a95e9b6817a43144a48b643346a5aac5cc&v=4 + url: https://github.com/jaystone776 +ceb10n: + login: ceb10n + count: 29 + avatarUrl: https://avatars.githubusercontent.com/u/235213?u=edcce471814a1eba9f0cdaa4cd0de18921a940a6&v=4 + url: https://github.com/ceb10n +valentinDruzhinin: + login: valentinDruzhinin + count: 29 + avatarUrl: https://avatars.githubusercontent.com/u/12831905?u=aae1ebc675c91e8fa582df4fcc4fc4128106344d&v=4 + url: https://github.com/valentinDruzhinin +tokusumi: + login: tokusumi + count: 23 + avatarUrl: https://avatars.githubusercontent.com/u/41147016?u=55010621aece725aa702270b54fed829b6a1fe60&v=4 + url: https://github.com/tokusumi +SwftAlpc: + login: SwftAlpc + count: 23 + avatarUrl: https://avatars.githubusercontent.com/u/52768429?u=6a3aa15277406520ad37f6236e89466ed44bc5b8&v=4 + url: https://github.com/SwftAlpc +hasansezertasan: + login: hasansezertasan + count: 22 + avatarUrl: https://avatars.githubusercontent.com/u/13135006?u=99f0b0f0fc47e88e8abb337b4447357939ef93e7&v=4 + url: https://github.com/hasansezertasan +waynerv: + login: waynerv + count: 20 + avatarUrl: https://avatars.githubusercontent.com/u/39515546?u=ec35139777597cdbbbddda29bf8b9d4396b429a9&v=4 + url: https://github.com/waynerv +AlertRED: + login: AlertRED + count: 16 + avatarUrl: https://avatars.githubusercontent.com/u/15695000?u=f5a4944c6df443030409c88da7d7fa0b7ead985c&v=4 + url: https://github.com/AlertRED +hard-coders: + login: hard-coders + count: 15 + avatarUrl: https://avatars.githubusercontent.com/u/9651103?u=95db33927bbff1ed1c07efddeb97ac2ff33068ed&v=4 + url: https://github.com/hard-coders +Joao-Pedro-P-Holanda: + login: Joao-Pedro-P-Holanda + count: 14 + avatarUrl: https://avatars.githubusercontent.com/u/110267046?u=331bd016326dac4cf3df4848f6db2dbbf8b5f978&v=4 + url: https://github.com/Joao-Pedro-P-Holanda +codingjenny: + login: codingjenny + count: 14 + avatarUrl: https://avatars.githubusercontent.com/u/103817302?u=3a042740dc0ff58615da0d8679230966fd7693e8&v=4 + url: https://github.com/codingjenny +Xewus: + login: Xewus + count: 13 + avatarUrl: https://avatars.githubusercontent.com/u/85196001?u=f8e2dc7e5104f109cef944af79050ea8d1b8f914&v=4 + url: https://github.com/Xewus +Zhongheng-Cheng: + login: Zhongheng-Cheng + count: 13 + avatarUrl: https://avatars.githubusercontent.com/u/95612344?u=a0f7730a3cc7486827965e01a119ad610bda4b0a&v=4 + url: https://github.com/Zhongheng-Cheng +Smlep: + login: Smlep + count: 11 + avatarUrl: https://avatars.githubusercontent.com/u/16785985?u=ffe99fa954c8e774ef1117e58d34aece92051e27&v=4 + url: https://github.com/Smlep +marcelomarkus: + login: marcelomarkus + count: 11 + avatarUrl: https://avatars.githubusercontent.com/u/20115018?u=dda090ce9160ef0cd2ff69b1e5ea741283425cba&v=4 + url: https://github.com/marcelomarkus +KaniKim: + login: KaniKim + count: 10 + avatarUrl: https://avatars.githubusercontent.com/u/19832624?u=296dbdd490e0eb96e3d45a2608c065603b17dc31&v=4 + url: https://github.com/KaniKim +Vincy1230: + login: Vincy1230 + count: 9 + avatarUrl: https://avatars.githubusercontent.com/u/81342412?u=ab5e256a4077a4a91f3f9cd2115ba80780454cbe&v=4 + url: https://github.com/Vincy1230 +rjNemo: + login: rjNemo + count: 8 + avatarUrl: https://avatars.githubusercontent.com/u/56785022?u=d5c3a02567c8649e146fcfc51b6060ccaf8adef8&v=4 + url: https://github.com/rjNemo +xzmeng: + login: xzmeng + count: 8 + avatarUrl: https://avatars.githubusercontent.com/u/40202897?v=4 + url: https://github.com/xzmeng +pablocm83: + login: pablocm83 + count: 8 + avatarUrl: https://avatars.githubusercontent.com/u/28315068?u=3310fbb05bb8bfc50d2c48b6cb64ac9ee4a14549&v=4 + url: https://github.com/pablocm83 +tiangolo: + login: tiangolo + count: 7 + avatarUrl: https://avatars.githubusercontent.com/u/1326112?u=cb5d06e73a9e1998141b1641aa88e443c6717651&v=4 + url: https://github.com/tiangolo +ptt3199: + login: ptt3199 + count: 7 + avatarUrl: https://avatars.githubusercontent.com/u/51350651?u=2c3d947a80283e32bf616d4c3af139a6be69680f&v=4 + url: https://github.com/ptt3199 +NinaHwang: + login: NinaHwang + count: 6 + avatarUrl: https://avatars.githubusercontent.com/u/79563565?u=241f2cb6d38a2d379536608a8ea5a22ed4b1a3ea&v=4 + url: https://github.com/NinaHwang +batlopes: + login: batlopes + count: 6 + avatarUrl: https://avatars.githubusercontent.com/u/33462923?u=0fb3d7acb316764616f11e4947faf080e49ad8d9&v=4 + url: https://github.com/batlopes +lucasbalieiro: + login: lucasbalieiro + count: 6 + avatarUrl: https://avatars.githubusercontent.com/u/37416577?u=dad91601ee4f40458d691774ec439aff308344d7&v=4 + url: https://github.com/lucasbalieiro +Alexandrhub: + login: Alexandrhub + count: 6 + avatarUrl: https://avatars.githubusercontent.com/u/119126536?u=9fc0d48f3307817bafecc5861eb2168401a6cb04&v=4 + url: https://github.com/Alexandrhub +Serrones: + login: Serrones + count: 5 + avatarUrl: https://avatars.githubusercontent.com/u/22691749?u=4795b880e13ca33a73e52fc0ef7dc9c60c8fce47&v=4 + url: https://github.com/Serrones +RunningIkkyu: + login: RunningIkkyu + count: 5 + avatarUrl: https://avatars.githubusercontent.com/u/31848542?u=494ecc298e3f26197495bb357ad0f57cfd5f7a32&v=4 + url: https://github.com/RunningIkkyu +Attsun1031: + login: Attsun1031 + count: 5 + avatarUrl: https://avatars.githubusercontent.com/u/1175560?v=4 + url: https://github.com/Attsun1031 +rostik1410: + login: rostik1410 + count: 5 + avatarUrl: https://avatars.githubusercontent.com/u/11443899?u=e26a635c2ba220467b308a326a579b8ccf4a8701&v=4 + url: https://github.com/rostik1410 +alv2017: + login: alv2017 + count: 5 + avatarUrl: https://avatars.githubusercontent.com/u/31544722?v=4 + url: https://github.com/alv2017 +komtaki: + login: komtaki + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/39375566?u=260ad6b1a4b34c07dbfa728da5e586f16f6d1824&v=4 + url: https://github.com/komtaki +JulianMaurin: + login: JulianMaurin + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/63545168?u=b7d15ac865268cbefc2d739e2f23d9aeeac1a622&v=4 + url: https://github.com/JulianMaurin +stlucasgarcia: + login: stlucasgarcia + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/61513630?u=c22d8850e9dc396a8820766a59837f967e14f9a0&v=4 + url: https://github.com/stlucasgarcia +ComicShrimp: + login: ComicShrimp + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/43503750?u=d2fbf412e7730183ce91686ca48d4147e1b7dc74&v=4 + url: https://github.com/ComicShrimp +BilalAlpaslan: + login: BilalAlpaslan + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/47563997?u=63ed66e304fe8d765762c70587d61d9196e5c82d&v=4 + url: https://github.com/BilalAlpaslan +axel584: + login: axel584 + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/1334088?u=9667041f5b15dc002b6f9665fda8c0412933ac04&v=4 + url: https://github.com/axel584 +tamtam-fitness: + login: tamtam-fitness + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/62091034?u=8da19a6bd3d02f5d6ba30c7247d5b46c98dd1403&v=4 + url: https://github.com/tamtam-fitness +Limsunoh: + login: Limsunoh + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/90311848?u=f456e0c5709fd50c8cd2898b551558eda14e5f21&v=4 + url: https://github.com/Limsunoh +kwang1215: + login: kwang1215 + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/74170199?u=2a63ff6692119dde3f5e5693365b9fcd6f977b08&v=4 + url: https://github.com/kwang1215 +k94-ishi: + login: k94-ishi + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/32672580?u=bc7c5c07af0656be9fe4f1784a444af8d81ded89&v=4 + url: https://github.com/k94-ishi +Mohammad222PR: + login: Mohammad222PR + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/116789737?u=25810a5fe049d2f1618e2e7417cea011cc353ce4&v=4 + url: https://github.com/Mohammad222PR +NavesSapnis: + login: NavesSapnis + count: 4 + avatarUrl: https://avatars.githubusercontent.com/u/79222417?u=b5b10291b8e9130ca84fd20f0a641e04ed94b6b1&v=4 + url: https://github.com/NavesSapnis +jfunez: + login: jfunez + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/805749?v=4 + url: https://github.com/jfunez +ycd: + login: ycd + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/62724709?u=f1e7bae394a315da950912c92dc861a8eaf95d4c&v=4 + url: https://github.com/ycd +mariacamilagl: + login: mariacamilagl + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/11489395?u=4adb6986bf3debfc2b8216ae701f2bd47d73da7d&v=4 + url: https://github.com/mariacamilagl +maoyibo: + login: maoyibo + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/7887703?v=4 + url: https://github.com/maoyibo +blt232018: + login: blt232018 + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/43393471?u=172b0e0391db1aa6c1706498d6dfcb003c8a4857&v=4 + url: https://github.com/blt232018 +magiskboy: + login: magiskboy + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/13352088?u=18b6d672523f9e9d98401f31dd50e28bb27d826f&v=4 + url: https://github.com/magiskboy +luccasmmg: + login: luccasmmg + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/11317382?u=65099a5a0d492b89119471f8a7014637cc2e04da&v=4 + url: https://github.com/luccasmmg +lbmendes: + login: lbmendes + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/80999926?u=646619e2f07ac5a7c3f65fe7834197461a4fff9f&v=4 + url: https://github.com/lbmendes +Zssaer: + login: Zssaer + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/45691504?u=4c0c195f25cb5ac6af32acfb0ab35427682938d2&v=4 + url: https://github.com/Zssaer +ChuyuChoyeon: + login: ChuyuChoyeon + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/129537877?u=f0c76f3327817a8b86b422d62e04a34bf2827f2b&v=4 + url: https://github.com/ChuyuChoyeon +ivan-abc: + login: ivan-abc + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/36765187?u=c6e0ba571c1ccb6db9d94e62e4b8b5eda811a870&v=4 + url: https://github.com/ivan-abc +mojtabapaso: + login: mojtabapaso + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/121169359?u=ced1d5ad673bcd9e949ebf967a4ab50185637443&v=4 + url: https://github.com/mojtabapaso +hsuanchi: + login: hsuanchi + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/24913710?u=7d25a398e478b6e63503bf6f26c54efa9e0da07b&v=4 + url: https://github.com/hsuanchi +alejsdev: + login: alejsdev + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/90076947?u=85ceac49fb87138aebe8d663912e359447329090&v=4 + url: https://github.com/alejsdev +riroan: + login: riroan + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/33053284?u=2d18e3771506ee874b66d6aa2b3b1107fd95c38f&v=4 + url: https://github.com/riroan +nayeonkinn: + login: nayeonkinn + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/98254573?u=64a75ac99b320d4935eff8d1fceea9680fa07473&v=4 + url: https://github.com/nayeonkinn +pe-brian: + login: pe-brian + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/1783138?u=7e6242eb9e85bcf673fa88bbac9dd6dc3f03b1b5&v=4 + url: https://github.com/pe-brian +maxscheijen: + login: maxscheijen + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/47034840?v=4 + url: https://github.com/maxscheijen +ilacftemp: + login: ilacftemp + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/159066669?v=4 + url: https://github.com/ilacftemp +devluisrodrigues: + login: devluisrodrigues + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/103431660?u=d9674a3249edc4601d2c712cdebf899918503c3a&v=4 + url: https://github.com/devluisrodrigues +devfernandoa: + login: devfernandoa + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/28360583?u=c4308abd62e8847c9e572e1bb9fe6b9dc9ef8e50&v=4 + url: https://github.com/devfernandoa +kim-sangah: + login: kim-sangah + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/173775778?v=4 + url: https://github.com/kim-sangah +9zimin9: + login: 9zimin9 + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/174453744?v=4 + url: https://github.com/9zimin9 +nahyunkeem: + login: nahyunkeem + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/174440096?u=e12401d492eee58570f8914d0872b52e421a776e&v=4 + url: https://github.com/nahyunkeem +timothy-jeong: + login: timothy-jeong + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/53824764?u=db3d0cea2f5fab64d810113c5039a369699a2774&v=4 + url: https://github.com/timothy-jeong +gerry-sabar: + login: gerry-sabar + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/1120123?v=4 + url: https://github.com/gerry-sabar +Rishat-F: + login: Rishat-F + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/66554797?v=4 + url: https://github.com/Rishat-F +ruzia: + login: ruzia + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/24503?v=4 + url: https://github.com/ruzia +YuriiMotov: + login: YuriiMotov + count: 3 + avatarUrl: https://avatars.githubusercontent.com/u/109919500?u=b9b13d598dddfab529a52d264df80a900bfe7060&v=4 + url: https://github.com/YuriiMotov +izaguerreiro: + login: izaguerreiro + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/2241504?v=4 + url: https://github.com/izaguerreiro +Xaraxx: + login: Xaraxx + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/29824698?u=dde2e233e22bb5ca1f8bb0c6e353ccd0d06e6066&v=4 + url: https://github.com/Xaraxx +sh0nk: + login: sh0nk + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/6478810?u=af15d724875cec682ed8088a86d36b2798f981c0&v=4 + url: https://github.com/sh0nk +dukkee: + login: dukkee + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/36825394?u=ccfd86e6a4f2d093dad6f7544cc875af67fa2df8&v=4 + url: https://github.com/dukkee +oandersonmagalhaes: + login: oandersonmagalhaes + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/83456692?v=4 + url: https://github.com/oandersonmagalhaes +leandrodesouzadev: + login: leandrodesouzadev + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/85115541?u=4eb25f43f1fe23727d61e986cf83b73b86e2a95a&v=4 + url: https://github.com/leandrodesouzadev +kty4119: + login: kty4119 + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/49435654?v=4 + url: https://github.com/kty4119 +ASpathfinder: + login: ASpathfinder + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/31813636?u=2090bd1b7abb65cfeff0c618f99f11afa82c0548&v=4 + url: https://github.com/ASpathfinder +jujumilk3: + login: jujumilk3 + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/41659814?u=538f7dfef03b59f25e43f10d59a31c19ef538a0c&v=4 + url: https://github.com/jujumilk3 +ayr-ton: + login: ayr-ton + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/1090517?u=5cf70a0e0f0dbf084e074e494aa94d7c91a46ba6&v=4 + url: https://github.com/ayr-ton +KdHyeon0661: + login: KdHyeon0661 + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/20253352?u=5ae1aae34b091a39f22cbe60a02b79dcbdbea031&v=4 + url: https://github.com/KdHyeon0661 +LorhanSohaky: + login: LorhanSohaky + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/16273730?u=095b66f243a2cd6a0aadba9a095009f8aaf18393&v=4 + url: https://github.com/LorhanSohaky +cfraboulet: + login: cfraboulet + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/62244267?u=ed0e286ba48fa1dafd64a08e50f3364b8e12df34&v=4 + url: https://github.com/cfraboulet +dedkot01: + login: dedkot01 + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/26196675?u=e2966887124e67932853df4f10f86cb526edc7b0&v=4 + url: https://github.com/dedkot01 +AGolicyn: + login: AGolicyn + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/86262613?u=3c21606ab8d210a061a1673decff1e7d5592b380&v=4 + url: https://github.com/AGolicyn +fhabers21: + login: fhabers21 + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/58401847?v=4 + url: https://github.com/fhabers21 +TabarakoAkula: + login: TabarakoAkula + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/113298631?u=add801e370dbc502cd94ce6d3484760d7fef5406&v=4 + url: https://github.com/TabarakoAkula +AhsanSheraz: + login: AhsanSheraz + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/51913596?u=08e31cacb3048be30722c94010ddd028f3fdbec4&v=4 + url: https://github.com/AhsanSheraz +ArtemKhymenko: + login: ArtemKhymenko + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/14346625?u=f2fa553d9e5ec5e0f05d66bd649f7be347169631&v=4 + url: https://github.com/ArtemKhymenko +hasnatsajid: + login: hasnatsajid + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/86589885?u=6668823c3b029bfecf10a8918ed3af1aafb8b15e&v=4 + url: https://github.com/hasnatsajid +alperiox: + login: alperiox + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/34214152?u=2c5acad3461d4dbc2d48371ba86cac56ae9b25cc&v=4 + url: https://github.com/alperiox +emrhnsyts: + login: emrhnsyts + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/42899027?u=ad26798e3f8feed2041c5dd5f87e58933d6c3283&v=4 + url: https://github.com/emrhnsyts +vusallyv: + login: vusallyv + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/85983771?u=6fb8e2f876bca06e9f846606423c8f18fb46ad06&v=4 + url: https://github.com/vusallyv +jackleeio: + login: jackleeio + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/20477587?u=c5184dab6d021733d10c8f975b20e391856303d6&v=4 + url: https://github.com/jackleeio +choi-haram: + login: choi-haram + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/62204475?v=4 + url: https://github.com/choi-haram +imtiaz101325: + login: imtiaz101325 + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/54007087?u=194d972b501b9ea9d2ddeaed757c492936e0121a&v=4 + url: https://github.com/imtiaz101325 +fabianfalon: + login: fabianfalon + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/3700760?u=95f69e31280b17ac22299cdcd345323b142fe0af&v=4 + url: https://github.com/fabianfalon +waketzheng: + login: waketzheng + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/35413830?u=df19e4fd5bb928e7d086e053ef26a46aad23bf84&v=4 + url: https://github.com/waketzheng +billzhong: + login: billzhong + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/1644011?v=4 + url: https://github.com/billzhong +chaoless: + login: chaoless + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/64477804?v=4 + url: https://github.com/chaoless +logan2d5: + login: logan2d5 + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/146642263?u=dbd6621f8b0330d6919f6a7131277b92e26fbe87&v=4 + url: https://github.com/logan2d5 +andersonrocha0: + login: andersonrocha0 + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/22346169?u=93a1359c8c5461d894802c0cc65bcd09217e7a02&v=4 + url: https://github.com/andersonrocha0 +saeye: + login: saeye + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/62229734?u=312d619db2588b60d5d5bde65260a2f44fdc6c76&v=4 + url: https://github.com/saeye +11kkw: + login: 11kkw + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/21125286?v=4 + url: https://github.com/11kkw +yes0ng: + login: yes0ng + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/25501794?u=3aed18b0d491e0220a167a1e9e58bea3638c6707&v=4 + url: https://github.com/yes0ng +EgorOnishchuk: + login: EgorOnishchuk + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/120256301?v=4 + url: https://github.com/EgorOnishchuk +EdmilsonRodrigues: + login: EdmilsonRodrigues + count: 2 + avatarUrl: https://avatars.githubusercontent.com/u/62777025?u=217d6f3cd6cc750bb8818a3af7726c8d74eb7c2d&v=4 + url: https://github.com/EdmilsonRodrigues diff --git a/docs/en/docs/_llm-test.md b/docs/en/docs/_llm-test.md new file mode 100644 index 0000000..e72450b --- /dev/null +++ b/docs/en/docs/_llm-test.md @@ -0,0 +1,503 @@ +# LLM test file { #llm-test-file } + +This document tests if the LLM, which translates the documentation, understands the `general_prompt` in `scripts/translate.py` and the language specific prompt in `docs/{language code}/llm-prompt.md`. The language specific prompt is appended to `general_prompt`. + +Tests added here will be seen by all designers of language specific prompts. + +Use as follows: + +* Have a language specific prompt – `docs/{language code}/llm-prompt.md`. +* Do a fresh translation of this document into your desired target language (see e.g. the `translate-page` command of the `translate.py`). This will create the translation under `docs/{language code}/docs/_llm-test.md`. +* Check if things are okay in the translation. +* If necessary, improve your language specific prompt, the general prompt, or the English document. +* Then manually fix the remaining issues in the translation, so that it is a good translation. +* Retranslate, having the good translation in place. The ideal result would be that the LLM makes no changes anymore to the translation. That means that the general prompt and your language specific prompt are as good as they can be (It will sometimes make a few seemingly random changes, the reason is that LLMs are not deterministic algorithms). + +The tests: + +## Code snippets { #code-snippets} + +//// tab | Test + +This is a code snippet: `foo`. And this is another code snippet: `bar`. And another one: `baz quux`. + +//// + +//// tab | Info + +Content of code snippets should be left as is. + +See section `### Content of code snippets` in the general prompt in `scripts/translate.py`. + +//// + +## Quotes { #quotes } + +//// tab | Test + +Yesterday, my friend wrote: "If you spell incorrectly correctly, you have spelled it incorrectly". To which I answered: "Correct, but 'incorrectly' is incorrectly not '"incorrectly"'". + +/// note + +The LLM will probably translate this wrong. Interesting is only if it keeps the fixed translation when retranslating. + +/// + +//// + +//// tab | Info + +The prompt designer may choose if they want to convert neutral quotes to typographic quotes. It is okay to leave them as is. + +See for example section `### Quotes` in `docs/de/llm-prompt.md`. + +//// + +## Quotes in code snippets { #quotes-in-code-snippets} + +//// tab | Test + +`pip install "foo[bar]"` + +Examples for string literals in code snippets: `"this"`, `'that'`. + +A difficult example for string literals in code snippets: `f"I like {'oranges' if orange else "apples"}"` + +Hardcore: `Yesterday, my friend wrote: "If you spell incorrectly correctly, you have spelled it incorrectly". To which I answered: "Correct, but 'incorrectly' is incorrectly not '"incorrectly"'"` + +//// + +//// tab | Info + +... However, quotes inside code snippets must stay as is. + +//// + +## code blocks { #code-blocks } + +//// tab | Test + +A Bash code example... + +```bash +# Print a greeting to the universe +echo "Hello universe" +``` + +...and a console code example... + +```console +$ fastapi run main.py + FastAPI Starting server + Searching for package file structure +``` + +...and another console code example... + +```console +// Create a directory "Code" +$ mkdir code +// Switch into that directory +$ cd code +``` + +...and a Python code example... + +```Python +wont_work() # This won't work 😱 +works(foo="bar") # This works 🎉 +``` + +...and that's it. + +//// + +//// tab | Info + +Code in code blocks should not be modified, with the exception of comments. + +See section `### Content of code blocks` in the general prompt in `scripts/translate.py`. + +//// + +## Tabs and colored boxes { #tabs-and-colored-boxes } + +//// tab | Test + +/// info +Some text +/// + +/// note +Some text +/// + +/// note | Technical details +Some text +/// + +/// check +Some text +/// + +/// tip +Some text +/// + +/// warning +Some text +/// + +/// danger +Some text +/// + +//// + +//// tab | Info + +Tabs and `Info`/`Note`/`Warning`/etc. blocks should have the translation of their title added after a vertical bar (`|`). + +See sections `### Special blocks` and `### Tab blocks` in the general prompt in `scripts/translate.py`. + +//// + +## Web- and internal links { #web-and-internal-links } + +//// tab | Test + +The link text should get translated, the link address should remain unchaged: + +* [Link to heading above](#code-snippets) +* [Internal link](index.md#installation){.internal-link target=_blank} +* External link +* Link to a style +* Link to a script +* Link to an image + +The link text should get translated, the link address should point to the translation: + +* FastAPI link + +//// + +//// tab | Info + +Links should be translated, but their address shall remain unchanged. An exception are absolute links to pages of the FastAPI documentation. In that case it should link to the translation. + +See section `### Links` in the general prompt in `scripts/translate.py`. + +//// + +## HTML "abbr" elements { #html-abbr-elements } + +//// tab | Test + +Here some things wrapped in HTML "abbr" elements (Some are invented): + +### The abbr gives a full phrase { #the-abbr-gives-a-full-phrase } + +* GTD +* lt +* XWT +* PSGI + +### The abbr gives an explanation { #the-abbr-gives-an-explanation } + +* cluster +* Deep Learning + +### The abbr gives a full phrase and an explanation { #the-abbr-gives-a-full-phrase-and-an-explanation } + +* MDN +* I/O. + +//// + +//// tab | Info + +"title" attributes of "abbr" elements are translated following some specific instructions. + +Translations can add their own "abbr" elements which the LLM should not remove. E.g. to explain English words. + +See section `### HTML abbr elements` in the general prompt in `scripts/translate.py`. + +//// + +## Headings { #headings } + +//// tab | Test + +### Develop a webapp - a tutorial { #develop-a-webapp-a-tutorial } + +Hello. + +### Type hints and -annotations { #type-hints-and-annotations } + +Hello again. + +### Super- and subclasses { #super-and-subclasses } + +Hello again. + +//// + +//// tab | Info + +The only hard rule for headings is that the LLM leaves the hash part inside curly brackets unchanged, which ensures that links do not break. + +See section `### Headings` in the general prompt in `scripts/translate.py`. + +For some language specific instructions, see e.g. section `### Headings` in `docs/de/llm-prompt.md`. + +//// + +## Terms used in the docs { #terms-used-in-the-docs } + +//// tab | Test + +* you +* your + +* e.g. +* etc. + +* `foo` as an `int` +* `bar` as a `str` +* `baz` as a `list` + +* the Tutorial - User guide +* the Advanced User Guide +* the SQLModel docs +* the API docs +* the automatic docs + +* Data Science +* Deep Learning +* Machine Learning +* Dependency Injection +* HTTP Basic authentication +* HTTP Digest +* ISO format +* the JSON Schema standard +* the JSON schema +* the schema definition +* Password Flow +* Mobile + +* deprecated +* designed +* invalid +* on the fly +* standard +* default +* case-sensitive +* case-insensitive + +* to serve the application +* to serve the page + +* the app +* the application + +* the request +* the response +* the error response + +* the path operation +* the path operation decorator +* the path operation function + +* the body +* the request body +* the response body +* the JSON body +* the form body +* the file body +* the function body + +* the parameter +* the body parameter +* the path parameter +* the query parameter +* the cookie parameter +* the header parameter +* the form parameter +* the function parameter + +* the event +* the startup event +* the startup of the server +* the shutdown event +* the lifespan event + +* the handler +* the event handler +* the exception handler +* to handle + +* the model +* the Pydantic model +* the data model +* the database model +* the form model +* the model object + +* the class +* the base class +* the parent class +* the subclass +* the child class +* the sibling class +* the class method + +* the header +* the headers +* the authorization header +* the `Authorization` header +* the forwarded header + +* the dependency injection system +* the dependency +* the dependable +* the dependant + +* I/O bound +* CPU bound +* concurrency +* parallelism +* multiprocessing + +* the env var +* the environment variable +* the `PATH` +* the `PATH` variable + +* the authentication +* the authentication provider +* the authorization +* the authorization form +* the authorization provider +* the user authenticates +* the system authenticates the user + +* the CLI +* the command line interface + +* the server +* the client + +* the cloud provider +* the cloud service + +* the development +* the development stages + +* the dict +* the dictionary +* the enumeration +* the enum +* the enum member + +* the encoder +* the decoder +* to encode +* to decode + +* the exception +* to raise + +* the expression +* the statement + +* the frontend +* the backend + +* the GitHub discussion +* the GitHub issue + +* the performance +* the performance optimization + +* the return type +* the return value + +* the security +* the security scheme + +* the task +* the background task +* the task function + +* the template +* the template engine + +* the type annotation +* the type hint + +* the server worker +* the Uvicorn worker +* the Gunicorn Worker +* the worker process +* the worker class +* the workload + +* the deployment +* to deploy + +* the SDK +* the software development kit + +* the `APIRouter` +* the `requirements.txt` +* the Bearer Token +* the breaking change +* the bug +* the button +* the callable +* the code +* the commit +* the context manager +* the coroutine +* the database session +* the disk +* the domain +* the engine +* the fake X +* the HTTP GET method +* the item +* the library +* the lifespan +* the lock +* the middleware +* the mobile application +* the module +* the mounting +* the network +* the origin +* the override +* the payload +* the processor +* the property +* the proxy +* the pull request +* the query +* the RAM +* the remote machine +* the status code +* the string +* the tag +* the web framework +* the wildcard +* to return +* to validate + +//// + +//// tab | Info + +This is a not complete and not normative list of (mostly) technical terms seen in the docs. It may be helpful for the prompt designer to figure out for which terms the LLM needs a helping hand. For example when it keeps reverting a good translation to a suboptimal translation. Or when it has problems conjugating/declinating a term in your language. + +See e.g. section `### List of English terms and their preferred German translations` in `docs/de/llm-prompt.md`. + +//// diff --git a/docs/en/docs/about/index.md b/docs/en/docs/about/index.md new file mode 100644 index 0000000..d178dfe --- /dev/null +++ b/docs/en/docs/about/index.md @@ -0,0 +1,3 @@ +# About { #about } + +About FastAPI, its design, inspiration and more. 🤓 diff --git a/docs/en/docs/advanced/additional-responses.md b/docs/en/docs/advanced/additional-responses.md new file mode 100644 index 0000000..799532c --- /dev/null +++ b/docs/en/docs/advanced/additional-responses.md @@ -0,0 +1,247 @@ +# Additional Responses in OpenAPI { #additional-responses-in-openapi } + +/// warning + +This is a rather advanced topic. + +If you are starting with **FastAPI**, you might not need this. + +/// + +You can declare additional responses, with additional status codes, media types, descriptions, etc. + +Those additional responses will be included in the OpenAPI schema, so they will also appear in the API docs. + +But for those additional responses you have to make sure you return a `Response` like `JSONResponse` directly, with your status code and content. + +## Additional Response with `model` { #additional-response-with-model } + +You can pass to your *path operation decorators* a parameter `responses`. + +It receives a `dict`: the keys are status codes for each response (like `200`), and the values are other `dict`s with the information for each of them. + +Each of those response `dict`s can have a key `model`, containing a Pydantic model, just like `response_model`. + +**FastAPI** will take that model, generate its JSON Schema and include it in the correct place in OpenAPI. + +For example, to declare another response with a status code `404` and a Pydantic model `Message`, you can write: + +{* ../../docs_src/additional_responses/tutorial001.py hl[18,22] *} + +/// note + +Keep in mind that you have to return the `JSONResponse` directly. + +/// + +/// info + +The `model` key is not part of OpenAPI. + +**FastAPI** will take the Pydantic model from there, generate the JSON Schema, and put it in the correct place. + +The correct place is: + +* In the key `content`, that has as value another JSON object (`dict`) that contains: + * A key with the media type, e.g. `application/json`, that contains as value another JSON object, that contains: + * A key `schema`, that has as the value the JSON Schema from the model, here's the correct place. + * **FastAPI** adds a reference here to the global JSON Schemas in another place in your OpenAPI instead of including it directly. This way, other applications and clients can use those JSON Schemas directly, provide better code generation tools, etc. + +/// + +The generated responses in the OpenAPI for this *path operation* will be: + +```JSON hl_lines="3-12" +{ + "responses": { + "404": { + "description": "Additional Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Message" + } + } + } + }, + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Item" + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + } +} +``` + +The schemas are referenced to another place inside the OpenAPI schema: + +```JSON hl_lines="4-16" +{ + "components": { + "schemas": { + "Message": { + "title": "Message", + "required": [ + "message" + ], + "type": "object", + "properties": { + "message": { + "title": "Message", + "type": "string" + } + } + }, + "Item": { + "title": "Item", + "required": [ + "id", + "value" + ], + "type": "object", + "properties": { + "id": { + "title": "Id", + "type": "string" + }, + "value": { + "title": "Value", + "type": "string" + } + } + }, + "ValidationError": { + "title": "ValidationError", + "required": [ + "loc", + "msg", + "type" + ], + "type": "object", + "properties": { + "loc": { + "title": "Location", + "type": "array", + "items": { + "type": "string" + } + }, + "msg": { + "title": "Message", + "type": "string" + }, + "type": { + "title": "Error Type", + "type": "string" + } + } + }, + "HTTPValidationError": { + "title": "HTTPValidationError", + "type": "object", + "properties": { + "detail": { + "title": "Detail", + "type": "array", + "items": { + "$ref": "#/components/schemas/ValidationError" + } + } + } + } + } + } +} +``` + +## Additional media types for the main response { #additional-media-types-for-the-main-response } + +You can use this same `responses` parameter to add different media types for the same main response. + +For example, you can add an additional media type of `image/png`, declaring that your *path operation* can return a JSON object (with media type `application/json`) or a PNG image: + +{* ../../docs_src/additional_responses/tutorial002.py hl[19:24,28] *} + +/// note + +Notice that you have to return the image using a `FileResponse` directly. + +/// + +/// info + +Unless you specify a different media type explicitly in your `responses` parameter, FastAPI will assume the response has the same media type as the main response class (default `application/json`). + +But if you have specified a custom response class with `None` as its media type, FastAPI will use `application/json` for any additional response that has an associated model. + +/// + +## Combining information { #combining-information } + +You can also combine response information from multiple places, including the `response_model`, `status_code`, and `responses` parameters. + +You can declare a `response_model`, using the default status code `200` (or a custom one if you need), and then declare additional information for that same response in `responses`, directly in the OpenAPI schema. + +**FastAPI** will keep the additional information from `responses`, and combine it with the JSON Schema from your model. + +For example, you can declare a response with a status code `404` that uses a Pydantic model and has a custom `description`. + +And a response with a status code `200` that uses your `response_model`, but includes a custom `example`: + +{* ../../docs_src/additional_responses/tutorial003.py hl[20:31] *} + +It will all be combined and included in your OpenAPI, and shown in the API docs: + + + +## Combine predefined responses and custom ones { #combine-predefined-responses-and-custom-ones } + +You might want to have some predefined responses that apply to many *path operations*, but you want to combine them with custom responses needed by each *path operation*. + +For those cases, you can use the Python technique of "unpacking" a `dict` with `**dict_to_unpack`: + +```Python +old_dict = { + "old key": "old value", + "second old key": "second old value", +} +new_dict = {**old_dict, "new key": "new value"} +``` + +Here, `new_dict` will contain all the key-value pairs from `old_dict` plus the new key-value pair: + +```Python +{ + "old key": "old value", + "second old key": "second old value", + "new key": "new value", +} +``` + +You can use that technique to reuse some predefined responses in your *path operations* and combine them with additional custom ones. + +For example: + +{* ../../docs_src/additional_responses/tutorial004.py hl[13:17,26] *} + +## More information about OpenAPI responses { #more-information-about-openapi-responses } + +To see what exactly you can include in the responses, you can check these sections in the OpenAPI specification: + +* OpenAPI Responses Object, it includes the `Response Object`. +* OpenAPI Response Object, you can include anything from this directly in each response inside your `responses` parameter. Including `description`, `headers`, `content` (inside of this is that you declare different media types and JSON Schemas), and `links`. diff --git a/docs/en/docs/advanced/additional-status-codes.md b/docs/en/docs/advanced/additional-status-codes.md new file mode 100644 index 0000000..23bcd13 --- /dev/null +++ b/docs/en/docs/advanced/additional-status-codes.md @@ -0,0 +1,41 @@ +# Additional Status Codes { #additional-status-codes } + +By default, **FastAPI** will return the responses using a `JSONResponse`, putting the content you return from your *path operation* inside of that `JSONResponse`. + +It will use the default status code or the one you set in your *path operation*. + +## Additional status codes { #additional-status-codes_1 } + +If you want to return additional status codes apart from the main one, you can do that by returning a `Response` directly, like a `JSONResponse`, and set the additional status code directly. + +For example, let's say that you want to have a *path operation* that allows to update items, and returns HTTP status codes of 200 "OK" when successful. + +But you also want it to accept new items. And when the items didn't exist before, it creates them, and returns an HTTP status code of 201 "Created". + +To achieve that, import `JSONResponse`, and return your content there directly, setting the `status_code` that you want: + +{* ../../docs_src/additional_status_codes/tutorial001_an_py310.py hl[4,25] *} + +/// warning + +When you return a `Response` directly, like in the example above, it will be returned directly. + +It won't be serialized with a model, etc. + +Make sure it has the data you want it to have, and that the values are valid JSON (if you are using `JSONResponse`). + +/// + +/// note | Technical Details + +You could also use `from starlette.responses import JSONResponse`. + +**FastAPI** provides the same `starlette.responses` as `fastapi.responses` just as a convenience for you, the developer. But most of the available responses come directly from Starlette. The same with `status`. + +/// + +## OpenAPI and API docs { #openapi-and-api-docs } + +If you return additional status codes and responses directly, they won't be included in the OpenAPI schema (the API docs), because FastAPI doesn't have a way to know beforehand what you are going to return. + +But you can document that in your code, using: [Additional Responses](additional-responses.md){.internal-link target=_blank}. diff --git a/docs/en/docs/advanced/advanced-dependencies.md b/docs/en/docs/advanced/advanced-dependencies.md new file mode 100644 index 0000000..37f5c78 --- /dev/null +++ b/docs/en/docs/advanced/advanced-dependencies.md @@ -0,0 +1,163 @@ +# Advanced Dependencies { #advanced-dependencies } + +## Parameterized dependencies { #parameterized-dependencies } + +All the dependencies we have seen are a fixed function or class. + +But there could be cases where you want to be able to set parameters on the dependency, without having to declare many different functions or classes. + +Let's imagine that we want to have a dependency that checks if the query parameter `q` contains some fixed content. + +But we want to be able to parameterize that fixed content. + +## A "callable" instance { #a-callable-instance } + +In Python there's a way to make an instance of a class a "callable". + +Not the class itself (which is already a callable), but an instance of that class. + +To do that, we declare a method `__call__`: + +{* ../../docs_src/dependencies/tutorial011_an_py39.py hl[12] *} + +In this case, this `__call__` is what **FastAPI** will use to check for additional parameters and sub-dependencies, and this is what will be called to pass a value to the parameter in your *path operation function* later. + +## Parameterize the instance { #parameterize-the-instance } + +And now, we can use `__init__` to declare the parameters of the instance that we can use to "parameterize" the dependency: + +{* ../../docs_src/dependencies/tutorial011_an_py39.py hl[9] *} + +In this case, **FastAPI** won't ever touch or care about `__init__`, we will use it directly in our code. + +## Create an instance { #create-an-instance } + +We could create an instance of this class with: + +{* ../../docs_src/dependencies/tutorial011_an_py39.py hl[18] *} + +And that way we are able to "parameterize" our dependency, that now has `"bar"` inside of it, as the attribute `checker.fixed_content`. + +## Use the instance as a dependency { #use-the-instance-as-a-dependency } + +Then, we could use this `checker` in a `Depends(checker)`, instead of `Depends(FixedContentQueryChecker)`, because the dependency is the instance, `checker`, not the class itself. + +And when solving the dependency, **FastAPI** will call this `checker` like: + +```Python +checker(q="somequery") +``` + +...and pass whatever that returns as the value of the dependency in our *path operation function* as the parameter `fixed_content_included`: + +{* ../../docs_src/dependencies/tutorial011_an_py39.py hl[22] *} + +/// tip + +All this might seem contrived. And it might not be very clear how is it useful yet. + +These examples are intentionally simple, but show how it all works. + +In the chapters about security, there are utility functions that are implemented in this same way. + +If you understood all this, you already know how those utility tools for security work underneath. + +/// + +## Dependencies with `yield`, `HTTPException`, `except` and Background Tasks { #dependencies-with-yield-httpexception-except-and-background-tasks } + +/// warning + +You most probably don't need these technical details. + +These details are useful mainly if you had a FastAPI application older than 0.121.0 and you are facing issues with dependencies with `yield`. + +/// + +Dependencies with `yield` have evolved over time to account for the different use cases and to fix some issues, here's a summary of what has changed. + +### Dependencies with `yield` and `scope` { #dependencies-with-yield-and-scope } + +In version 0.121.0, FastAPI added support for `Depends(scope="function")` for dependencies with `yield`. + +Using `Depends(scope="function")`, the exit code after `yield` is executed right after the *path operation function* is finished, before the response is sent back to the client. + +And when using `Depends(scope="request")` (the default), the exit code after `yield` is executed after the response is sent. + +You can read more about it in the docs for [Dependencies with `yield` - Early exit and `scope`](../tutorial/dependencies/dependencies-with-yield.md#early-exit-and-scope). + +### Dependencies with `yield` and `StreamingResponse`, Technical Details { #dependencies-with-yield-and-streamingresponse-technical-details } + +Before FastAPI 0.118.0, if you used a dependency with `yield`, it would run the exit code after the *path operation function* returned but right before sending the response. + +The intention was to avoid holding resources for longer than necessary, waiting for the response to travel through the network. + +This change also meant that if you returned a `StreamingResponse`, the exit code of the dependency with `yield` would have been already run. + +For example, if you had a database session in a dependency with `yield`, the `StreamingResponse` would not be able to use that session while streaming data because the session would have already been closed in the exit code after `yield`. + +This behavior was reverted in 0.118.0, to make the exit code after `yield` be executed after the response is sent. + +/// info + +As you will see below, this is very similar to the behavior before version 0.106.0, but with several improvements and bug fixes for corner cases. + +/// + +#### Use Cases with Early Exit Code { #use-cases-with-early-exit-code } + +There are some use cases with specific conditions that could benefit from the old behavior of running the exit code of dependencies with `yield` before sending the response. + +For example, imagine you have code that uses a database session in a dependency with `yield` only to verify a user, but the database session is never used again in the *path operation function*, only in the dependency, **and** the response takes a long time to be sent, like a `StreamingResponse` that sends data slowly, but for some reason doesn't use the database. + +In this case, the database session would be held until the response is finished being sent, but if you don't use it, then it wouldn't be necessary to hold it. + +Here's how it could look like: + +{* ../../docs_src/dependencies/tutorial013_an_py310.py *} + +The exit code, the automatic closing of the `Session` in: + +{* ../../docs_src/dependencies/tutorial013_an_py310.py ln[19:21] *} + +...would be run after the the response finishes sending the slow data: + +{* ../../docs_src/dependencies/tutorial013_an_py310.py ln[30:38] hl[31:33] *} + +But as `generate_stream()` doesn't use the database session, it is not really necessary to keep the session open while sending the response. + +If you have this specific use case using SQLModel (or SQLAlchemy), you could explicitly close the session after you don't need it anymore: + +{* ../../docs_src/dependencies/tutorial014_an_py310.py ln[24:28] hl[28] *} + +That way the session would release the database connection, so other requests could use it. + +If you have a different use case that needs to exit early from a dependency with `yield`, please create a GitHub Discussion Question with your specific use case and why you would benefit from having early closing for dependencies with `yield`. + +If there are compelling use cases for early closing in dependencies with `yield`, I would consider adding a new way to opt in to early closing. + +### Dependencies with `yield` and `except`, Technical Details { #dependencies-with-yield-and-except-technical-details } + +Before FastAPI 0.110.0, if you used a dependency with `yield`, and then you captured an exception with `except` in that dependency, and you didn't raise the exception again, the exception would be automatically raised/forwarded to any exception handlers or the internal server error handler. + +This was changed in version 0.110.0 to fix unhandled memory consumption from forwarded exceptions without a handler (internal server errors), and to make it consistent with the behavior of regular Python code. + +### Background Tasks and Dependencies with `yield`, Technical Details { #background-tasks-and-dependencies-with-yield-technical-details } + +Before FastAPI 0.106.0, raising exceptions after `yield` was not possible, the exit code in dependencies with `yield` was executed *after* the response was sent, so [Exception Handlers](../tutorial/handling-errors.md#install-custom-exception-handlers){.internal-link target=_blank} would have already run. + +This was designed this way mainly to allow using the same objects "yielded" by dependencies inside of background tasks, because the exit code would be executed after the background tasks were finished. + +This was changed in FastAPI 0.106.0 with the intention to not hold resources while waiting for the response to travel through the network. + +/// tip + +Additionally, a background task is normally an independent set of logic that should be handled separately, with its own resources (e.g. its own database connection). + +So, this way you will probably have cleaner code. + +/// + +If you used to rely on this behavior, now you should create the resources for background tasks inside the background task itself, and use internally only data that doesn't depend on the resources of dependencies with `yield`. + +For example, instead of using the same database session, you would create a new database session inside of the background task, and you would obtain the objects from the database using this new session. And then instead of passing the object from the database as a parameter to the background task function, you would pass the ID of that object and then obtain the object again inside the background task function. diff --git a/docs/en/docs/advanced/async-tests.md b/docs/en/docs/advanced/async-tests.md new file mode 100644 index 0000000..e920e22 --- /dev/null +++ b/docs/en/docs/advanced/async-tests.md @@ -0,0 +1,99 @@ +# Async Tests { #async-tests } + +You have already seen how to test your **FastAPI** applications using the provided `TestClient`. Up to now, you have only seen how to write synchronous tests, without using `async` functions. + +Being able to use asynchronous functions in your tests could be useful, for example, when you're querying your database asynchronously. Imagine you want to test sending requests to your FastAPI application and then verify that your backend successfully wrote the correct data in the database, while using an async database library. + +Let's look at how we can make that work. + +## pytest.mark.anyio { #pytest-mark-anyio } + +If we want to call asynchronous functions in our tests, our test functions have to be asynchronous. AnyIO provides a neat plugin for this, that allows us to specify that some test functions are to be called asynchronously. + +## HTTPX { #httpx } + +Even if your **FastAPI** application uses normal `def` functions instead of `async def`, it is still an `async` application underneath. + +The `TestClient` does some magic inside to call the asynchronous FastAPI application in your normal `def` test functions, using standard pytest. But that magic doesn't work anymore when we're using it inside asynchronous functions. By running our tests asynchronously, we can no longer use the `TestClient` inside our test functions. + +The `TestClient` is based on HTTPX, and luckily, we can use it directly to test the API. + +## Example { #example } + +For a simple example, let's consider a file structure similar to the one described in [Bigger Applications](../tutorial/bigger-applications.md){.internal-link target=_blank} and [Testing](../tutorial/testing.md){.internal-link target=_blank}: + +``` +. +├── app +│   ├── __init__.py +│   ├── main.py +│   └── test_main.py +``` + +The file `main.py` would have: + +{* ../../docs_src/async_tests/main.py *} + +The file `test_main.py` would have the tests for `main.py`, it could look like this now: + +{* ../../docs_src/async_tests/test_main.py *} + +## Run it { #run-it } + +You can run your tests as usual via: + +
+ +```console +$ pytest + +---> 100% +``` + +
+ +## In Detail { #in-detail } + +The marker `@pytest.mark.anyio` tells pytest that this test function should be called asynchronously: + +{* ../../docs_src/async_tests/test_main.py hl[7] *} + +/// tip + +Note that the test function is now `async def` instead of just `def` as before when using the `TestClient`. + +/// + +Then we can create an `AsyncClient` with the app, and send async requests to it, using `await`. + +{* ../../docs_src/async_tests/test_main.py hl[9:12] *} + +This is the equivalent to: + +```Python +response = client.get('/') +``` + +...that we used to make our requests with the `TestClient`. + +/// tip + +Note that we're using async/await with the new `AsyncClient` - the request is asynchronous. + +/// + +/// warning + +If your application relies on lifespan events, the `AsyncClient` won't trigger these events. To ensure they are triggered, use `LifespanManager` from florimondmanca/asgi-lifespan. + +/// + +## Other Asynchronous Function Calls { #other-asynchronous-function-calls } + +As the testing function is now asynchronous, you can now also call (and `await`) other `async` functions apart from sending requests to your FastAPI application in your tests, exactly as you would call them anywhere else in your code. + +/// tip + +If you encounter a `RuntimeError: Task attached to a different loop` when integrating asynchronous function calls in your tests (e.g. when using MongoDB's MotorClient), remember to instantiate objects that need an event loop only within async functions, e.g. an `@app.on_event("startup")` callback. + +/// diff --git a/docs/en/docs/advanced/behind-a-proxy.md b/docs/en/docs/advanced/behind-a-proxy.md new file mode 100644 index 0000000..f4dbd45 --- /dev/null +++ b/docs/en/docs/advanced/behind-a-proxy.md @@ -0,0 +1,466 @@ +# Behind a Proxy { #behind-a-proxy } + +In many situations, you would use a **proxy** like Traefik or Nginx in front of your FastAPI app. + +These proxies could handle HTTPS certificates and other things. + +## Proxy Forwarded Headers { #proxy-forwarded-headers } + +A **proxy** in front of your application would normally set some headers on the fly before sending the requests to your **server** to let the server know that the request was **forwarded** by the proxy, letting it know the original (public) URL, including the domain, that it is using HTTPS, etc. + +The **server** program (for example **Uvicorn** via **FastAPI CLI**) is capable of interpreting these headers, and then passing that information to your application. + +But for security, as the server doesn't know it is behind a trusted proxy, it won't interpret those headers. + +/// note | Technical Details + +The proxy headers are: + +* X-Forwarded-For +* X-Forwarded-Proto +* X-Forwarded-Host + +/// + +### Enable Proxy Forwarded Headers { #enable-proxy-forwarded-headers } + +You can start FastAPI CLI with the *CLI Option* `--forwarded-allow-ips` and pass the IP addresses that should be trusted to read those forwarded headers. + +If you set it to `--forwarded-allow-ips="*"` it would trust all the incoming IPs. + +If your **server** is behind a trusted **proxy** and only the proxy talks to it, this would make it accept whatever is the IP of that **proxy**. + +
+ +```console +$ fastapi run --forwarded-allow-ips="*" + +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +``` + +
+ +### Redirects with HTTPS { #redirects-with-https } + +For example, let's say you define a *path operation* `/items/`: + +{* ../../docs_src/behind_a_proxy/tutorial001_01.py hl[6] *} + +If the client tries to go to `/items`, by default, it would be redirected to `/items/`. + +But before setting the *CLI Option* `--forwarded-allow-ips` it could redirect to `http://localhost:8000/items/`. + +But maybe your application is hosted at `https://mysuperapp.com`, and the redirection should be to `https://mysuperapp.com/items/`. + +By setting `--proxy-headers` now FastAPI would be able to redirect to the right location. 😎 + +``` +https://mysuperapp.com/items/ +``` + +/// tip + +If you want to learn more about HTTPS, check the guide [About HTTPS](../deployment/https.md){.internal-link target=_blank}. + +/// + +### How Proxy Forwarded Headers Work { #how-proxy-forwarded-headers-work } + +Here's a visual representation of how the **proxy** adds forwarded headers between the client and the **application server**: + +```mermaid +sequenceDiagram + participant Client + participant Proxy as Proxy/Load Balancer + participant Server as FastAPI Server + + Client->>Proxy: HTTPS Request
Host: mysuperapp.com
Path: /items + + Note over Proxy: Proxy adds forwarded headers + + Proxy->>Server: HTTP Request
X-Forwarded-For: [client IP]
X-Forwarded-Proto: https
X-Forwarded-Host: mysuperapp.com
Path: /items + + Note over Server: Server interprets headers
(if --forwarded-allow-ips is set) + + Server->>Proxy: HTTP Response
with correct HTTPS URLs + + Proxy->>Client: HTTPS Response +``` + +The **proxy** intercepts the original client request and adds the special *forwarded* headers (`X-Forwarded-*`) before passing the request to the **application server**. + +These headers preserve information about the original request that would otherwise be lost: + +* **X-Forwarded-For**: The original client's IP address +* **X-Forwarded-Proto**: The original protocol (`https`) +* **X-Forwarded-Host**: The original host (`mysuperapp.com`) + +When **FastAPI CLI** is configured with `--forwarded-allow-ips`, it trusts these headers and uses them, for example to generate the correct URLs in redirects. + +## Proxy with a stripped path prefix { #proxy-with-a-stripped-path-prefix } + +You could have a proxy that adds a path prefix to your application. + +In these cases you can use `root_path` to configure your application. + +The `root_path` is a mechanism provided by the ASGI specification (that FastAPI is built on, through Starlette). + +The `root_path` is used to handle these specific cases. + +And it's also used internally when mounting sub-applications. + +Having a proxy with a stripped path prefix, in this case, means that you could declare a path at `/app` in your code, but then, you add a layer on top (the proxy) that would put your **FastAPI** application under a path like `/api/v1`. + +In this case, the original path `/app` would actually be served at `/api/v1/app`. + +Even though all your code is written assuming there's just `/app`. + +{* ../../docs_src/behind_a_proxy/tutorial001.py hl[6] *} + +And the proxy would be **"stripping"** the **path prefix** on the fly before transmitting the request to the app server (probably Uvicorn via FastAPI CLI), keeping your application convinced that it is being served at `/app`, so that you don't have to update all your code to include the prefix `/api/v1`. + +Up to here, everything would work as normally. + +But then, when you open the integrated docs UI (the frontend), it would expect to get the OpenAPI schema at `/openapi.json`, instead of `/api/v1/openapi.json`. + +So, the frontend (that runs in the browser) would try to reach `/openapi.json` and wouldn't be able to get the OpenAPI schema. + +Because we have a proxy with a path prefix of `/api/v1` for our app, the frontend needs to fetch the OpenAPI schema at `/api/v1/openapi.json`. + +```mermaid +graph LR + +browser("Browser") +proxy["Proxy on http://0.0.0.0:9999/api/v1/app"] +server["Server on http://127.0.0.1:8000/app"] + +browser --> proxy +proxy --> server +``` + +/// tip + +The IP `0.0.0.0` is commonly used to mean that the program listens on all the IPs available in that machine/server. + +/// + +The docs UI would also need the OpenAPI schema to declare that this API `server` is located at `/api/v1` (behind the proxy). For example: + +```JSON hl_lines="4-8" +{ + "openapi": "3.1.0", + // More stuff here + "servers": [ + { + "url": "/api/v1" + } + ], + "paths": { + // More stuff here + } +} +``` + +In this example, the "Proxy" could be something like **Traefik**. And the server would be something like FastAPI CLI with **Uvicorn**, running your FastAPI application. + +### Providing the `root_path` { #providing-the-root-path } + +To achieve this, you can use the command line option `--root-path` like: + +
+ +```console +$ fastapi run main.py --forwarded-allow-ips="*" --root-path /api/v1 + +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +``` + +
+ +If you use Hypercorn, it also has the option `--root-path`. + +/// note | Technical Details + +The ASGI specification defines a `root_path` for this use case. + +And the `--root-path` command line option provides that `root_path`. + +/// + +### Checking the current `root_path` { #checking-the-current-root-path } + +You can get the current `root_path` used by your application for each request, it is part of the `scope` dictionary (that's part of the ASGI spec). + +Here we are including it in the message just for demonstration purposes. + +{* ../../docs_src/behind_a_proxy/tutorial001.py hl[8] *} + +Then, if you start Uvicorn with: + +
+ +```console +$ fastapi run main.py --forwarded-allow-ips="*" --root-path /api/v1 + +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +``` + +
+ +The response would be something like: + +```JSON +{ + "message": "Hello World", + "root_path": "/api/v1" +} +``` + +### Setting the `root_path` in the FastAPI app { #setting-the-root-path-in-the-fastapi-app } + +Alternatively, if you don't have a way to provide a command line option like `--root-path` or equivalent, you can set the `root_path` parameter when creating your FastAPI app: + +{* ../../docs_src/behind_a_proxy/tutorial002.py hl[3] *} + +Passing the `root_path` to `FastAPI` would be the equivalent of passing the `--root-path` command line option to Uvicorn or Hypercorn. + +### About `root_path` { #about-root-path } + +Keep in mind that the server (Uvicorn) won't use that `root_path` for anything else than passing it to the app. + +But if you go with your browser to http://127.0.0.1:8000/app you will see the normal response: + +```JSON +{ + "message": "Hello World", + "root_path": "/api/v1" +} +``` + +So, it won't expect to be accessed at `http://127.0.0.1:8000/api/v1/app`. + +Uvicorn will expect the proxy to access Uvicorn at `http://127.0.0.1:8000/app`, and then it would be the proxy's responsibility to add the extra `/api/v1` prefix on top. + +## About proxies with a stripped path prefix { #about-proxies-with-a-stripped-path-prefix } + +Keep in mind that a proxy with stripped path prefix is only one of the ways to configure it. + +Probably in many cases the default will be that the proxy doesn't have a stripped path prefix. + +In a case like that (without a stripped path prefix), the proxy would listen on something like `https://myawesomeapp.com`, and then if the browser goes to `https://myawesomeapp.com/api/v1/app` and your server (e.g. Uvicorn) listens on `http://127.0.0.1:8000` the proxy (without a stripped path prefix) would access Uvicorn at the same path: `http://127.0.0.1:8000/api/v1/app`. + +## Testing locally with Traefik { #testing-locally-with-traefik } + +You can easily run the experiment locally with a stripped path prefix using Traefik. + +Download Traefik, it's a single binary, you can extract the compressed file and run it directly from the terminal. + +Then create a file `traefik.toml` with: + +```TOML hl_lines="3" +[entryPoints] + [entryPoints.http] + address = ":9999" + +[providers] + [providers.file] + filename = "routes.toml" +``` + +This tells Traefik to listen on port 9999 and to use another file `routes.toml`. + +/// tip + +We are using port 9999 instead of the standard HTTP port 80 so that you don't have to run it with admin (`sudo`) privileges. + +/// + +Now create that other file `routes.toml`: + +```TOML hl_lines="5 12 20" +[http] + [http.middlewares] + + [http.middlewares.api-stripprefix.stripPrefix] + prefixes = ["/api/v1"] + + [http.routers] + + [http.routers.app-http] + entryPoints = ["http"] + service = "app" + rule = "PathPrefix(`/api/v1`)" + middlewares = ["api-stripprefix"] + + [http.services] + + [http.services.app] + [http.services.app.loadBalancer] + [[http.services.app.loadBalancer.servers]] + url = "http://127.0.0.1:8000" +``` + +This file configures Traefik to use the path prefix `/api/v1`. + +And then Traefik will redirect its requests to your Uvicorn running on `http://127.0.0.1:8000`. + +Now start Traefik: + +
+ +```console +$ ./traefik --configFile=traefik.toml + +INFO[0000] Configuration loaded from file: /home/user/awesomeapi/traefik.toml +``` + +
+ +And now start your app, using the `--root-path` option: + +
+ +```console +$ fastapi run main.py --forwarded-allow-ips="*" --root-path /api/v1 + +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +``` + +
+ +### Check the responses { #check-the-responses } + +Now, if you go to the URL with the port for Uvicorn: http://127.0.0.1:8000/app, you will see the normal response: + +```JSON +{ + "message": "Hello World", + "root_path": "/api/v1" +} +``` + +/// tip + +Notice that even though you are accessing it at `http://127.0.0.1:8000/app` it shows the `root_path` of `/api/v1`, taken from the option `--root-path`. + +/// + +And now open the URL with the port for Traefik, including the path prefix: http://127.0.0.1:9999/api/v1/app. + +We get the same response: + +```JSON +{ + "message": "Hello World", + "root_path": "/api/v1" +} +``` + +but this time at the URL with the prefix path provided by the proxy: `/api/v1`. + +Of course, the idea here is that everyone would access the app through the proxy, so the version with the path prefix `/api/v1` is the "correct" one. + +And the version without the path prefix (`http://127.0.0.1:8000/app`), provided by Uvicorn directly, would be exclusively for the _proxy_ (Traefik) to access it. + +That demonstrates how the Proxy (Traefik) uses the path prefix and how the server (Uvicorn) uses the `root_path` from the option `--root-path`. + +### Check the docs UI { #check-the-docs-ui } + +But here's the fun part. ✨ + +The "official" way to access the app would be through the proxy with the path prefix that we defined. So, as we would expect, if you try the docs UI served by Uvicorn directly, without the path prefix in the URL, it won't work, because it expects to be accessed through the proxy. + +You can check it at http://127.0.0.1:8000/docs: + + + +But if we access the docs UI at the "official" URL using the proxy with port `9999`, at `/api/v1/docs`, it works correctly! 🎉 + +You can check it at http://127.0.0.1:9999/api/v1/docs: + + + +Right as we wanted it. ✔️ + +This is because FastAPI uses this `root_path` to create the default `server` in OpenAPI with the URL provided by `root_path`. + +## Additional servers { #additional-servers } + +/// warning + +This is a more advanced use case. Feel free to skip it. + +/// + +By default, **FastAPI** will create a `server` in the OpenAPI schema with the URL for the `root_path`. + +But you can also provide other alternative `servers`, for example if you want *the same* docs UI to interact with both a staging and a production environment. + +If you pass a custom list of `servers` and there's a `root_path` (because your API lives behind a proxy), **FastAPI** will insert a "server" with this `root_path` at the beginning of the list. + +For example: + +{* ../../docs_src/behind_a_proxy/tutorial003.py hl[4:7] *} + +Will generate an OpenAPI schema like: + +```JSON hl_lines="5-7" +{ + "openapi": "3.1.0", + // More stuff here + "servers": [ + { + "url": "/api/v1" + }, + { + "url": "https://stag.example.com", + "description": "Staging environment" + }, + { + "url": "https://prod.example.com", + "description": "Production environment" + } + ], + "paths": { + // More stuff here + } +} +``` + +/// tip + +Notice the auto-generated server with a `url` value of `/api/v1`, taken from the `root_path`. + +/// + +In the docs UI at http://127.0.0.1:9999/api/v1/docs it would look like: + + + +/// tip + +The docs UI will interact with the server that you select. + +/// + +/// note | Technical Details + +The `servers` property in the OpenAPI specification is optional. + +If you don't specify the `servers` parameter and `root_path` is equal to `/`, the `servers` property in the generated OpenAPI schema will be omitted entirely by default, which is the equivalent of a single server with a `url` value of `/`. + +/// + +### Disable automatic server from `root_path` { #disable-automatic-server-from-root-path } + +If you don't want **FastAPI** to include an automatic server using the `root_path`, you can use the parameter `root_path_in_servers=False`: + +{* ../../docs_src/behind_a_proxy/tutorial004.py hl[9] *} + +and then it won't include it in the OpenAPI schema. + +## Mounting a sub-application { #mounting-a-sub-application } + +If you need to mount a sub-application (as described in [Sub Applications - Mounts](sub-applications.md){.internal-link target=_blank}) while also using a proxy with `root_path`, you can do it normally, as you would expect. + +FastAPI will internally use the `root_path` smartly, so it will just work. ✨ diff --git a/docs/en/docs/advanced/custom-response.md b/docs/en/docs/advanced/custom-response.md new file mode 100644 index 0000000..0f3d8b7 --- /dev/null +++ b/docs/en/docs/advanced/custom-response.md @@ -0,0 +1,313 @@ +# Custom Response - HTML, Stream, File, others { #custom-response-html-stream-file-others } + +By default, **FastAPI** will return the responses using `JSONResponse`. + +You can override it by returning a `Response` directly as seen in [Return a Response directly](response-directly.md){.internal-link target=_blank}. + +But if you return a `Response` directly (or any subclass, like `JSONResponse`), the data won't be automatically converted (even if you declare a `response_model`), and the documentation won't be automatically generated (for example, including the specific "media type", in the HTTP header `Content-Type` as part of the generated OpenAPI). + +But you can also declare the `Response` that you want to be used (e.g. any `Response` subclass), in the *path operation decorator* using the `response_class` parameter. + +The contents that you return from your *path operation function* will be put inside of that `Response`. + +And if that `Response` has a JSON media type (`application/json`), like is the case with the `JSONResponse` and `UJSONResponse`, the data you return will be automatically converted (and filtered) with any Pydantic `response_model` that you declared in the *path operation decorator*. + +/// note + +If you use a response class with no media type, FastAPI will expect your response to have no content, so it will not document the response format in its generated OpenAPI docs. + +/// + +## Use `ORJSONResponse` { #use-orjsonresponse } + +For example, if you are squeezing performance, you can install and use `orjson` and set the response to be `ORJSONResponse`. + +Import the `Response` class (sub-class) you want to use and declare it in the *path operation decorator*. + +For large responses, returning a `Response` directly is much faster than returning a dictionary. + +This is because by default, FastAPI will inspect every item inside and make sure it is serializable as JSON, using the same [JSON Compatible Encoder](../tutorial/encoder.md){.internal-link target=_blank} explained in the tutorial. This is what allows you to return **arbitrary objects**, for example database models. + +But if you are certain that the content that you are returning is **serializable with JSON**, you can pass it directly to the response class and avoid the extra overhead that FastAPI would have by passing your return content through the `jsonable_encoder` before passing it to the response class. + +{* ../../docs_src/custom_response/tutorial001b.py hl[2,7] *} + +/// info + +The parameter `response_class` will also be used to define the "media type" of the response. + +In this case, the HTTP header `Content-Type` will be set to `application/json`. + +And it will be documented as such in OpenAPI. + +/// + +/// tip + +The `ORJSONResponse` is only available in FastAPI, not in Starlette. + +/// + +## HTML Response { #html-response } + +To return a response with HTML directly from **FastAPI**, use `HTMLResponse`. + +* Import `HTMLResponse`. +* Pass `HTMLResponse` as the parameter `response_class` of your *path operation decorator*. + +{* ../../docs_src/custom_response/tutorial002.py hl[2,7] *} + +/// info + +The parameter `response_class` will also be used to define the "media type" of the response. + +In this case, the HTTP header `Content-Type` will be set to `text/html`. + +And it will be documented as such in OpenAPI. + +/// + +### Return a `Response` { #return-a-response } + +As seen in [Return a Response directly](response-directly.md){.internal-link target=_blank}, you can also override the response directly in your *path operation*, by returning it. + +The same example from above, returning an `HTMLResponse`, could look like: + +{* ../../docs_src/custom_response/tutorial003.py hl[2,7,19] *} + +/// warning + +A `Response` returned directly by your *path operation function* won't be documented in OpenAPI (for example, the `Content-Type` won't be documented) and won't be visible in the automatic interactive docs. + +/// + +/// info + +Of course, the actual `Content-Type` header, status code, etc, will come from the `Response` object you returned. + +/// + +### Document in OpenAPI and override `Response` { #document-in-openapi-and-override-response } + +If you want to override the response from inside of the function but at the same time document the "media type" in OpenAPI, you can use the `response_class` parameter AND return a `Response` object. + +The `response_class` will then be used only to document the OpenAPI *path operation*, but your `Response` will be used as is. + +#### Return an `HTMLResponse` directly { #return-an-htmlresponse-directly } + +For example, it could be something like: + +{* ../../docs_src/custom_response/tutorial004.py hl[7,21,23] *} + +In this example, the function `generate_html_response()` already generates and returns a `Response` instead of returning the HTML in a `str`. + +By returning the result of calling `generate_html_response()`, you are already returning a `Response` that will override the default **FastAPI** behavior. + +But as you passed the `HTMLResponse` in the `response_class` too, **FastAPI** will know how to document it in OpenAPI and the interactive docs as HTML with `text/html`: + + + +## Available responses { #available-responses } + +Here are some of the available responses. + +Keep in mind that you can use `Response` to return anything else, or even create a custom sub-class. + +/// note | Technical Details + +You could also use `from starlette.responses import HTMLResponse`. + +**FastAPI** provides the same `starlette.responses` as `fastapi.responses` just as a convenience for you, the developer. But most of the available responses come directly from Starlette. + +/// + +### `Response` { #response } + +The main `Response` class, all the other responses inherit from it. + +You can return it directly. + +It accepts the following parameters: + +* `content` - A `str` or `bytes`. +* `status_code` - An `int` HTTP status code. +* `headers` - A `dict` of strings. +* `media_type` - A `str` giving the media type. E.g. `"text/html"`. + +FastAPI (actually Starlette) will automatically include a Content-Length header. It will also include a Content-Type header, based on the `media_type` and appending a charset for text types. + +{* ../../docs_src/response_directly/tutorial002.py hl[1,18] *} + +### `HTMLResponse` { #htmlresponse } + +Takes some text or bytes and returns an HTML response, as you read above. + +### `PlainTextResponse` { #plaintextresponse } + +Takes some text or bytes and returns a plain text response. + +{* ../../docs_src/custom_response/tutorial005.py hl[2,7,9] *} + +### `JSONResponse` { #jsonresponse } + +Takes some data and returns an `application/json` encoded response. + +This is the default response used in **FastAPI**, as you read above. + +### `ORJSONResponse` { #orjsonresponse } + +A fast alternative JSON response using `orjson`, as you read above. + +/// info + +This requires installing `orjson` for example with `pip install orjson`. + +/// + +### `UJSONResponse` { #ujsonresponse } + +An alternative JSON response using `ujson`. + +/// info + +This requires installing `ujson` for example with `pip install ujson`. + +/// + +/// warning + +`ujson` is less careful than Python's built-in implementation in how it handles some edge-cases. + +/// + +{* ../../docs_src/custom_response/tutorial001.py hl[2,7] *} + +/// tip + +It's possible that `ORJSONResponse` might be a faster alternative. + +/// + +### `RedirectResponse` { #redirectresponse } + +Returns an HTTP redirect. Uses a 307 status code (Temporary Redirect) by default. + +You can return a `RedirectResponse` directly: + +{* ../../docs_src/custom_response/tutorial006.py hl[2,9] *} + +--- + +Or you can use it in the `response_class` parameter: + + +{* ../../docs_src/custom_response/tutorial006b.py hl[2,7,9] *} + +If you do that, then you can return the URL directly from your *path operation* function. + +In this case, the `status_code` used will be the default one for the `RedirectResponse`, which is `307`. + +--- + +You can also use the `status_code` parameter combined with the `response_class` parameter: + +{* ../../docs_src/custom_response/tutorial006c.py hl[2,7,9] *} + +### `StreamingResponse` { #streamingresponse } + +Takes an async generator or a normal generator/iterator and streams the response body. + +{* ../../docs_src/custom_response/tutorial007.py hl[2,14] *} + +#### Using `StreamingResponse` with file-like objects { #using-streamingresponse-with-file-like-objects } + +If you have a file-like object (e.g. the object returned by `open()`), you can create a generator function to iterate over that file-like object. + +That way, you don't have to read it all first in memory, and you can pass that generator function to the `StreamingResponse`, and return it. + +This includes many libraries to interact with cloud storage, video processing, and others. + +{* ../../docs_src/custom_response/tutorial008.py hl[2,10:12,14] *} + +1. This is the generator function. It's a "generator function" because it contains `yield` statements inside. +2. By using a `with` block, we make sure that the file-like object is closed after the generator function is done. So, after it finishes sending the response. +3. This `yield from` tells the function to iterate over that thing named `file_like`. And then, for each part iterated, yield that part as coming from this generator function (`iterfile`). + + So, it is a generator function that transfers the "generating" work to something else internally. + + By doing it this way, we can put it in a `with` block, and that way, ensure that the file-like object is closed after finishing. + +/// tip + +Notice that here as we are using standard `open()` that doesn't support `async` and `await`, we declare the path operation with normal `def`. + +/// + +### `FileResponse` { #fileresponse } + +Asynchronously streams a file as the response. + +Takes a different set of arguments to instantiate than the other response types: + +* `path` - The file path to the file to stream. +* `headers` - Any custom headers to include, as a dictionary. +* `media_type` - A string giving the media type. If unset, the filename or path will be used to infer a media type. +* `filename` - If set, this will be included in the response `Content-Disposition`. + +File responses will include appropriate `Content-Length`, `Last-Modified` and `ETag` headers. + +{* ../../docs_src/custom_response/tutorial009.py hl[2,10] *} + +You can also use the `response_class` parameter: + +{* ../../docs_src/custom_response/tutorial009b.py hl[2,8,10] *} + +In this case, you can return the file path directly from your *path operation* function. + +## Custom response class { #custom-response-class } + +You can create your own custom response class, inheriting from `Response` and using it. + +For example, let's say that you want to use `orjson`, but with some custom settings not used in the included `ORJSONResponse` class. + +Let's say you want it to return indented and formatted JSON, so you want to use the orjson option `orjson.OPT_INDENT_2`. + +You could create a `CustomORJSONResponse`. The main thing you have to do is create a `Response.render(content)` method that returns the content as `bytes`: + +{* ../../docs_src/custom_response/tutorial009c.py hl[9:14,17] *} + +Now instead of returning: + +```json +{"message": "Hello World"} +``` + +...this response will return: + +```json +{ + "message": "Hello World" +} +``` + +Of course, you will probably find much better ways to take advantage of this than formatting JSON. 😉 + +## Default response class { #default-response-class } + +When creating a **FastAPI** class instance or an `APIRouter` you can specify which response class to use by default. + +The parameter that defines this is `default_response_class`. + +In the example below, **FastAPI** will use `ORJSONResponse` by default, in all *path operations*, instead of `JSONResponse`. + +{* ../../docs_src/custom_response/tutorial010.py hl[2,4] *} + +/// tip + +You can still override `response_class` in *path operations* as before. + +/// + +## Additional documentation { #additional-documentation } + +You can also declare the media type and many other details in OpenAPI using `responses`: [Additional Responses in OpenAPI](additional-responses.md){.internal-link target=_blank}. diff --git a/docs/en/docs/advanced/dataclasses.md b/docs/en/docs/advanced/dataclasses.md new file mode 100644 index 0000000..b7b9b65 --- /dev/null +++ b/docs/en/docs/advanced/dataclasses.md @@ -0,0 +1,95 @@ +# Using Dataclasses { #using-dataclasses } + +FastAPI is built on top of **Pydantic**, and I have been showing you how to use Pydantic models to declare requests and responses. + +But FastAPI also supports using `dataclasses` the same way: + +{* ../../docs_src/dataclasses/tutorial001.py hl[1,7:12,19:20] *} + +This is still supported thanks to **Pydantic**, as it has internal support for `dataclasses`. + +So, even with the code above that doesn't use Pydantic explicitly, FastAPI is using Pydantic to convert those standard dataclasses to Pydantic's own flavor of dataclasses. + +And of course, it supports the same: + +* data validation +* data serialization +* data documentation, etc. + +This works the same way as with Pydantic models. And it is actually achieved in the same way underneath, using Pydantic. + +/// info + +Keep in mind that dataclasses can't do everything Pydantic models can do. + +So, you might still need to use Pydantic models. + +But if you have a bunch of dataclasses laying around, this is a nice trick to use them to power a web API using FastAPI. 🤓 + +/// + +## Dataclasses in `response_model` { #dataclasses-in-response-model } + +You can also use `dataclasses` in the `response_model` parameter: + +{* ../../docs_src/dataclasses/tutorial002.py hl[1,7:13,19] *} + +The dataclass will be automatically converted to a Pydantic dataclass. + +This way, its schema will show up in the API docs user interface: + + + +## Dataclasses in Nested Data Structures { #dataclasses-in-nested-data-structures } + +You can also combine `dataclasses` with other type annotations to make nested data structures. + +In some cases, you might still have to use Pydantic's version of `dataclasses`. For example, if you have errors with the automatically generated API documentation. + +In that case, you can simply swap the standard `dataclasses` with `pydantic.dataclasses`, which is a drop-in replacement: + +{* ../../docs_src/dataclasses/tutorial003.py hl[1,5,8:11,14:17,23:25,28] *} + +1. We still import `field` from standard `dataclasses`. + +2. `pydantic.dataclasses` is a drop-in replacement for `dataclasses`. + +3. The `Author` dataclass includes a list of `Item` dataclasses. + +4. The `Author` dataclass is used as the `response_model` parameter. + +5. You can use other standard type annotations with dataclasses as the request body. + + In this case, it's a list of `Item` dataclasses. + +6. Here we are returning a dictionary that contains `items` which is a list of dataclasses. + + FastAPI is still capable of serializing the data to JSON. + +7. Here the `response_model` is using a type annotation of a list of `Author` dataclasses. + + Again, you can combine `dataclasses` with standard type annotations. + +8. Notice that this *path operation function* uses regular `def` instead of `async def`. + + As always, in FastAPI you can combine `def` and `async def` as needed. + + If you need a refresher about when to use which, check out the section _"In a hurry?"_ in the docs about [`async` and `await`](../async.md#in-a-hurry){.internal-link target=_blank}. + +9. This *path operation function* is not returning dataclasses (although it could), but a list of dictionaries with internal data. + + FastAPI will use the `response_model` parameter (that includes dataclasses) to convert the response. + +You can combine `dataclasses` with other type annotations in many different combinations to form complex data structures. + +Check the in-code annotation tips above to see more specific details. + +## Learn More { #learn-more } + +You can also combine `dataclasses` with other Pydantic models, inherit from them, include them in your own models, etc. + +To learn more, check the Pydantic docs about dataclasses. + +## Version { #version } + +This is available since FastAPI version `0.67.0`. 🔖 diff --git a/docs/en/docs/advanced/events.md b/docs/en/docs/advanced/events.md new file mode 100644 index 0000000..d9e3cb5 --- /dev/null +++ b/docs/en/docs/advanced/events.md @@ -0,0 +1,165 @@ +# Lifespan Events { #lifespan-events } + +You can define logic (code) that should be executed before the application **starts up**. This means that this code will be executed **once**, **before** the application **starts receiving requests**. + +The same way, you can define logic (code) that should be executed when the application is **shutting down**. In this case, this code will be executed **once**, **after** having handled possibly **many requests**. + +Because this code is executed before the application **starts** taking requests, and right after it **finishes** handling requests, it covers the whole application **lifespan** (the word "lifespan" will be important in a second 😉). + +This can be very useful for setting up **resources** that you need to use for the whole app, and that are **shared** among requests, and/or that you need to **clean up** afterwards. For example, a database connection pool, or loading a shared machine learning model. + +## Use Case { #use-case } + +Let's start with an example **use case** and then see how to solve it with this. + +Let's imagine that you have some **machine learning models** that you want to use to handle requests. 🤖 + +The same models are shared among requests, so, it's not one model per request, or one per user or something similar. + +Let's imagine that loading the model can **take quite some time**, because it has to read a lot of **data from disk**. So you don't want to do it for every request. + +You could load it at the top level of the module/file, but that would also mean that it would **load the model** even if you are just running a simple automated test, then that test would be **slow** because it would have to wait for the model to load before being able to run an independent part of the code. + +That's what we'll solve, let's load the model before the requests are handled, but only right before the application starts receiving requests, not while the code is being loaded. + +## Lifespan { #lifespan } + +You can define this *startup* and *shutdown* logic using the `lifespan` parameter of the `FastAPI` app, and a "context manager" (I'll show you what that is in a second). + +Let's start with an example and then see it in detail. + +We create an async function `lifespan()` with `yield` like this: + +{* ../../docs_src/events/tutorial003.py hl[16,19] *} + +Here we are simulating the expensive *startup* operation of loading the model by putting the (fake) model function in the dictionary with machine learning models before the `yield`. This code will be executed **before** the application **starts taking requests**, during the *startup*. + +And then, right after the `yield`, we unload the model. This code will be executed **after** the application **finishes handling requests**, right before the *shutdown*. This could, for example, release resources like memory or a GPU. + +/// tip + +The `shutdown` would happen when you are **stopping** the application. + +Maybe you need to start a new version, or you just got tired of running it. 🤷 + +/// + +### Lifespan function { #lifespan-function } + +The first thing to notice, is that we are defining an async function with `yield`. This is very similar to Dependencies with `yield`. + +{* ../../docs_src/events/tutorial003.py hl[14:19] *} + +The first part of the function, before the `yield`, will be executed **before** the application starts. + +And the part after the `yield` will be executed **after** the application has finished. + +### Async Context Manager { #async-context-manager } + +If you check, the function is decorated with an `@asynccontextmanager`. + +That converts the function into something called an "**async context manager**". + +{* ../../docs_src/events/tutorial003.py hl[1,13] *} + +A **context manager** in Python is something that you can use in a `with` statement, for example, `open()` can be used as a context manager: + +```Python +with open("file.txt") as file: + file.read() +``` + +In recent versions of Python, there's also an **async context manager**. You would use it with `async with`: + +```Python +async with lifespan(app): + await do_stuff() +``` + +When you create a context manager or an async context manager like above, what it does is that, before entering the `with` block, it will execute the code before the `yield`, and after exiting the `with` block, it will execute the code after the `yield`. + +In our code example above, we don't use it directly, but we pass it to FastAPI for it to use it. + +The `lifespan` parameter of the `FastAPI` app takes an **async context manager**, so we can pass our new `lifespan` async context manager to it. + +{* ../../docs_src/events/tutorial003.py hl[22] *} + +## Alternative Events (deprecated) { #alternative-events-deprecated } + +/// warning + +The recommended way to handle the *startup* and *shutdown* is using the `lifespan` parameter of the `FastAPI` app as described above. If you provide a `lifespan` parameter, `startup` and `shutdown` event handlers will no longer be called. It's all `lifespan` or all events, not both. + +You can probably skip this part. + +/// + +There's an alternative way to define this logic to be executed during *startup* and during *shutdown*. + +You can define event handlers (functions) that need to be executed before the application starts up, or when the application is shutting down. + +These functions can be declared with `async def` or normal `def`. + +### `startup` event { #startup-event } + +To add a function that should be run before the application starts, declare it with the event `"startup"`: + +{* ../../docs_src/events/tutorial001.py hl[8] *} + +In this case, the `startup` event handler function will initialize the items "database" (just a `dict`) with some values. + +You can add more than one event handler function. + +And your application won't start receiving requests until all the `startup` event handlers have completed. + +### `shutdown` event { #shutdown-event } + +To add a function that should be run when the application is shutting down, declare it with the event `"shutdown"`: + +{* ../../docs_src/events/tutorial002.py hl[6] *} + +Here, the `shutdown` event handler function will write a text line `"Application shutdown"` to a file `log.txt`. + +/// info + +In the `open()` function, the `mode="a"` means "append", so, the line will be added after whatever is on that file, without overwriting the previous contents. + +/// + +/// tip + +Notice that in this case we are using a standard Python `open()` function that interacts with a file. + +So, it involves I/O (input/output), that requires "waiting" for things to be written to disk. + +But `open()` doesn't use `async` and `await`. + +So, we declare the event handler function with standard `def` instead of `async def`. + +/// + +### `startup` and `shutdown` together { #startup-and-shutdown-together } + +There's a high chance that the logic for your *startup* and *shutdown* is connected, you might want to start something and then finish it, acquire a resource and then release it, etc. + +Doing that in separated functions that don't share logic or variables together is more difficult as you would need to store values in global variables or similar tricks. + +Because of that, it's now recommended to instead use the `lifespan` as explained above. + +## Technical Details { #technical-details } + +Just a technical detail for the curious nerds. 🤓 + +Underneath, in the ASGI technical specification, this is part of the Lifespan Protocol, and it defines events called `startup` and `shutdown`. + +/// info + +You can read more about the Starlette `lifespan` handlers in Starlette's Lifespan' docs. + +Including how to handle lifespan state that can be used in other areas of your code. + +/// + +## Sub Applications { #sub-applications } + +🚨 Keep in mind that these lifespan events (startup and shutdown) will only be executed for the main application, not for [Sub Applications - Mounts](sub-applications.md){.internal-link target=_blank}. diff --git a/docs/en/docs/advanced/generate-clients.md b/docs/en/docs/advanced/generate-clients.md new file mode 100644 index 0000000..897c308 --- /dev/null +++ b/docs/en/docs/advanced/generate-clients.md @@ -0,0 +1,208 @@ +# Generating SDKs { #generating-sdks } + +Because **FastAPI** is based on the **OpenAPI** specification, its APIs can be described in a standard format that many tools understand. + +This makes it easy to generate up-to-date **documentation**, client libraries (**SDKs**) in multiple languages, and **testing** or **automation workflows** that stay in sync with your code. + +In this guide, you'll learn how to generate a **TypeScript SDK** for your FastAPI backend. + +## Open Source SDK Generators { #open-source-sdk-generators } + +A versatile option is the OpenAPI Generator, which supports **many programming languages** and can generate SDKs from your OpenAPI specification. + +For **TypeScript clients**, Hey API is a purpose-built solution, providing an optimized experience for the TypeScript ecosystem. + +You can discover more SDK generators on OpenAPI.Tools. + +/// tip + +FastAPI automatically generates **OpenAPI 3.1** specifications, so any tool you use must support this version. + +/// + +## SDK Generators from FastAPI Sponsors { #sdk-generators-from-fastapi-sponsors } + +This section highlights **venture-backed** and **company-supported** solutions from companies that sponsor FastAPI. These products provide **additional features** and **integrations** on top of high-quality generated SDKs. + +By ✨ [**sponsoring FastAPI**](../help-fastapi.md#sponsor-the-author){.internal-link target=_blank} ✨, these companies help ensure the framework and its **ecosystem** remain healthy and **sustainable**. + +Their sponsorship also demonstrates a strong commitment to the FastAPI **community** (you), showing that they care not only about offering a **great service** but also about supporting a **robust and thriving framework**, FastAPI. 🙇 + +For example, you might want to try: + +* Speakeasy +* Stainless +* liblab + +Some of these solutions may also be open source or offer free tiers, so you can try them without a financial commitment. Other commercial SDK generators are available and can be found online. 🤓 + +## Create a TypeScript SDK { #create-a-typescript-sdk } + +Let's start with a simple FastAPI application: + +{* ../../docs_src/generate_clients/tutorial001_py39.py hl[7:9,12:13,16:17,21] *} + +Notice that the *path operations* define the models they use for request payload and response payload, using the models `Item` and `ResponseMessage`. + +### API Docs { #api-docs } + +If you go to `/docs`, you will see that it has the **schemas** for the data to be sent in requests and received in responses: + + + +You can see those schemas because they were declared with the models in the app. + +That information is available in the app's **OpenAPI schema**, and then shown in the API docs. + +That same information from the models that is included in OpenAPI is what can be used to **generate the client code**. + +### Hey API { #hey-api } + +Once we have a FastAPI app with the models, we can use Hey API to generate a TypeScript client. The fastest way to do that is via npx. + +```sh +npx @hey-api/openapi-ts -i http://localhost:8000/openapi.json -o src/client +``` + +This will generate a TypeScript SDK in `./src/client`. + +You can learn how to install `@hey-api/openapi-ts` and read about the generated output on their website. + +### Using the SDK { #using-the-sdk } + +Now you can import and use the client code. It could look like this, notice that you get autocompletion for the methods: + + + +You will also get autocompletion for the payload to send: + + + +/// tip + +Notice the autocompletion for `name` and `price`, that was defined in the FastAPI application, in the `Item` model. + +/// + +You will have inline errors for the data that you send: + + + +The response object will also have autocompletion: + + + +## FastAPI App with Tags { #fastapi-app-with-tags } + +In many cases, your FastAPI app will be bigger, and you will probably use tags to separate different groups of *path operations*. + +For example, you could have a section for **items** and another section for **users**, and they could be separated by tags: + +{* ../../docs_src/generate_clients/tutorial002_py39.py hl[21,26,34] *} + +### Generate a TypeScript Client with Tags { #generate-a-typescript-client-with-tags } + +If you generate a client for a FastAPI app using tags, it will normally also separate the client code based on the tags. + +This way, you will be able to have things ordered and grouped correctly for the client code: + + + +In this case, you have: + +* `ItemsService` +* `UsersService` + +### Client Method Names { #client-method-names } + +Right now, the generated method names like `createItemItemsPost` don't look very clean: + +```TypeScript +ItemsService.createItemItemsPost({name: "Plumbus", price: 5}) +``` + +...that's because the client generator uses the OpenAPI internal **operation ID** for each *path operation*. + +OpenAPI requires that each operation ID is unique across all the *path operations*, so FastAPI uses the **function name**, the **path**, and the **HTTP method/operation** to generate that operation ID, because that way it can make sure that the operation IDs are unique. + +But I'll show you how to improve that next. 🤓 + +## Custom Operation IDs and Better Method Names { #custom-operation-ids-and-better-method-names } + +You can **modify** the way these operation IDs are **generated** to make them simpler and have **simpler method names** in the clients. + +In this case, you will have to ensure that each operation ID is **unique** in some other way. + +For example, you could make sure that each *path operation* has a tag, and then generate the operation ID based on the **tag** and the *path operation* **name** (the function name). + +### Custom Generate Unique ID Function { #custom-generate-unique-id-function } + +FastAPI uses a **unique ID** for each *path operation*, which is used for the **operation ID** and also for the names of any needed custom models, for requests or responses. + +You can customize that function. It takes an `APIRoute` and outputs a string. + +For example, here it is using the first tag (you will probably have only one tag) and the *path operation* name (the function name). + +You can then pass that custom function to **FastAPI** as the `generate_unique_id_function` parameter: + +{* ../../docs_src/generate_clients/tutorial003_py39.py hl[6:7,10] *} + +### Generate a TypeScript Client with Custom Operation IDs { #generate-a-typescript-client-with-custom-operation-ids } + +Now, if you generate the client again, you will see that it has the improved method names: + + + +As you see, the method names now have the tag and then the function name, now they don't include information from the URL path and the HTTP operation. + +### Preprocess the OpenAPI Specification for the Client Generator { #preprocess-the-openapi-specification-for-the-client-generator } + +The generated code still has some **duplicated information**. + +We already know that this method is related to the **items** because that word is in the `ItemsService` (taken from the tag), but we still have the tag name prefixed in the method name too. 😕 + +We will probably still want to keep it for OpenAPI in general, as that will ensure that the operation IDs are **unique**. + +But for the generated client, we could **modify** the OpenAPI operation IDs right before generating the clients, just to make those method names nicer and **cleaner**. + +We could download the OpenAPI JSON to a file `openapi.json` and then we could **remove that prefixed tag** with a script like this: + +{* ../../docs_src/generate_clients/tutorial004.py *} + +//// tab | Node.js + +```Javascript +{!> ../../docs_src/generate_clients/tutorial004.js!} +``` + +//// + +With that, the operation IDs would be renamed from things like `items-get_items` to just `get_items`, that way the client generator can generate simpler method names. + +### Generate a TypeScript Client with the Preprocessed OpenAPI { #generate-a-typescript-client-with-the-preprocessed-openapi } + +Since the end result is now in an `openapi.json` file, you need to update your input location: + +```sh +npx @hey-api/openapi-ts -i ./openapi.json -o src/client +``` + +After generating the new client, you would now have **clean method names**, with all the **autocompletion**, **inline errors**, etc: + + + +## Benefits { #benefits } + +When using the automatically generated clients, you would get **autocompletion** for: + +* Methods. +* Request payloads in the body, query parameters, etc. +* Response payloads. + +You would also have **inline errors** for everything. + +And whenever you update the backend code, and **regenerate** the frontend, it would have any new *path operations* available as methods, the old ones removed, and any other change would be reflected on the generated code. 🤓 + +This also means that if something changed, it will be **reflected** on the client code automatically. And if you **build** the client, it will error out if you have any **mismatch** in the data used. + +So, you would **detect many errors** very early in the development cycle instead of having to wait for the errors to show up to your final users in production and then trying to debug where the problem is. ✨ diff --git a/docs/en/docs/advanced/index.md b/docs/en/docs/advanced/index.md new file mode 100644 index 0000000..9355516 --- /dev/null +++ b/docs/en/docs/advanced/index.md @@ -0,0 +1,21 @@ +# Advanced User Guide { #advanced-user-guide } + +## Additional Features { #additional-features } + +The main [Tutorial - User Guide](../tutorial/index.md){.internal-link target=_blank} should be enough to give you a tour through all the main features of **FastAPI**. + +In the next sections you will see other options, configurations, and additional features. + +/// tip + +The next sections are **not necessarily "advanced"**. + +And it's possible that for your use case, the solution is in one of them. + +/// + +## Read the Tutorial first { #read-the-tutorial-first } + +You could still use most of the features in **FastAPI** with the knowledge from the main [Tutorial - User Guide](../tutorial/index.md){.internal-link target=_blank}. + +And the next sections assume you already read it, and assume that you know those main ideas. diff --git a/docs/en/docs/advanced/middleware.md b/docs/en/docs/advanced/middleware.md new file mode 100644 index 0000000..8deb0d9 --- /dev/null +++ b/docs/en/docs/advanced/middleware.md @@ -0,0 +1,97 @@ +# Advanced Middleware { #advanced-middleware } + +In the main tutorial you read how to add [Custom Middleware](../tutorial/middleware.md){.internal-link target=_blank} to your application. + +And then you also read how to handle [CORS with the `CORSMiddleware`](../tutorial/cors.md){.internal-link target=_blank}. + +In this section we'll see how to use other middlewares. + +## Adding ASGI middlewares { #adding-asgi-middlewares } + +As **FastAPI** is based on Starlette and implements the ASGI specification, you can use any ASGI middleware. + +A middleware doesn't have to be made for FastAPI or Starlette to work, as long as it follows the ASGI spec. + +In general, ASGI middlewares are classes that expect to receive an ASGI app as the first argument. + +So, in the documentation for third-party ASGI middlewares they will probably tell you to do something like: + +```Python +from unicorn import UnicornMiddleware + +app = SomeASGIApp() + +new_app = UnicornMiddleware(app, some_config="rainbow") +``` + +But FastAPI (actually Starlette) provides a simpler way to do it that makes sure that the internal middlewares handle server errors and custom exception handlers work properly. + +For that, you use `app.add_middleware()` (as in the example for CORS). + +```Python +from fastapi import FastAPI +from unicorn import UnicornMiddleware + +app = FastAPI() + +app.add_middleware(UnicornMiddleware, some_config="rainbow") +``` + +`app.add_middleware()` receives a middleware class as the first argument and any additional arguments to be passed to the middleware. + +## Integrated middlewares { #integrated-middlewares } + +**FastAPI** includes several middlewares for common use cases, we'll see next how to use them. + +/// note | Technical Details + +For the next examples, you could also use `from starlette.middleware.something import SomethingMiddleware`. + +**FastAPI** provides several middlewares in `fastapi.middleware` just as a convenience for you, the developer. But most of the available middlewares come directly from Starlette. + +/// + +## `HTTPSRedirectMiddleware` { #httpsredirectmiddleware } + +Enforces that all incoming requests must either be `https` or `wss`. + +Any incoming request to `http` or `ws` will be redirected to the secure scheme instead. + +{* ../../docs_src/advanced_middleware/tutorial001.py hl[2,6] *} + +## `TrustedHostMiddleware` { #trustedhostmiddleware } + +Enforces that all incoming requests have a correctly set `Host` header, in order to guard against HTTP Host Header attacks. + +{* ../../docs_src/advanced_middleware/tutorial002.py hl[2,6:8] *} + +The following arguments are supported: + +* `allowed_hosts` - A list of domain names that should be allowed as hostnames. Wildcard domains such as `*.example.com` are supported for matching subdomains. To allow any hostname either use `allowed_hosts=["*"]` or omit the middleware. +* `www_redirect` - If set to True, requests to non-www versions of the allowed hosts will be redirected to their www counterparts. Defaults to `True`. + +If an incoming request does not validate correctly then a `400` response will be sent. + +## `GZipMiddleware` { #gzipmiddleware } + +Handles GZip responses for any request that includes `"gzip"` in the `Accept-Encoding` header. + +The middleware will handle both standard and streaming responses. + +{* ../../docs_src/advanced_middleware/tutorial003.py hl[2,6] *} + +The following arguments are supported: + +* `minimum_size` - Do not GZip responses that are smaller than this minimum size in bytes. Defaults to `500`. +* `compresslevel` - Used during GZip compression. It is an integer ranging from 1 to 9. Defaults to `9`. Lower value results in faster compression but larger file sizes, while higher value results in slower compression but smaller file sizes. + +## Other middlewares { #other-middlewares } + +There are many other ASGI middlewares. + +For example: + +* Uvicorn's `ProxyHeadersMiddleware` +* MessagePack + +To see other available middlewares check Starlette's Middleware docs and the ASGI Awesome List. diff --git a/docs/en/docs/advanced/openapi-callbacks.md b/docs/en/docs/advanced/openapi-callbacks.md new file mode 100644 index 0000000..059d893 --- /dev/null +++ b/docs/en/docs/advanced/openapi-callbacks.md @@ -0,0 +1,186 @@ +# OpenAPI Callbacks { #openapi-callbacks } + +You could create an API with a *path operation* that could trigger a request to an *external API* created by someone else (probably the same developer that would be *using* your API). + +The process that happens when your API app calls the *external API* is named a "callback". Because the software that the external developer wrote sends a request to your API and then your API *calls back*, sending a request to an *external API* (that was probably created by the same developer). + +In this case, you could want to document how that external API *should* look like. What *path operation* it should have, what body it should expect, what response it should return, etc. + +## An app with callbacks { #an-app-with-callbacks } + +Let's see all this with an example. + +Imagine you develop an app that allows creating invoices. + +These invoices will have an `id`, `title` (optional), `customer`, and `total`. + +The user of your API (an external developer) will create an invoice in your API with a POST request. + +Then your API will (let's imagine): + +* Send the invoice to some customer of the external developer. +* Collect the money. +* Send a notification back to the API user (the external developer). + * This will be done by sending a POST request (from *your API*) to some *external API* provided by that external developer (this is the "callback"). + +## The normal **FastAPI** app { #the-normal-fastapi-app } + +Let's first see how the normal API app would look like before adding the callback. + +It will have a *path operation* that will receive an `Invoice` body, and a query parameter `callback_url` that will contain the URL for the callback. + +This part is pretty normal, most of the code is probably already familiar to you: + +{* ../../docs_src/openapi_callbacks/tutorial001.py hl[9:13,36:53] *} + +/// tip + +The `callback_url` query parameter uses a Pydantic Url type. + +/// + +The only new thing is the `callbacks=invoices_callback_router.routes` as an argument to the *path operation decorator*. We'll see what that is next. + +## Documenting the callback { #documenting-the-callback } + +The actual callback code will depend heavily on your own API app. + +And it will probably vary a lot from one app to the next. + +It could be just one or two lines of code, like: + +```Python +callback_url = "https://example.com/api/v1/invoices/events/" +httpx.post(callback_url, json={"description": "Invoice paid", "paid": True}) +``` + +But possibly the most important part of the callback is making sure that your API user (the external developer) implements the *external API* correctly, according to the data that *your API* is going to send in the request body of the callback, etc. + +So, what we will do next is add the code to document how that *external API* should look like to receive the callback from *your API*. + +That documentation will show up in the Swagger UI at `/docs` in your API, and it will let external developers know how to build the *external API*. + +This example doesn't implement the callback itself (that could be just a line of code), only the documentation part. + +/// tip + +The actual callback is just an HTTP request. + +When implementing the callback yourself, you could use something like HTTPX or Requests. + +/// + +## Write the callback documentation code { #write-the-callback-documentation-code } + +This code won't be executed in your app, we only need it to *document* how that *external API* should look like. + +But, you already know how to easily create automatic documentation for an API with **FastAPI**. + +So we are going to use that same knowledge to document how the *external API* should look like... by creating the *path operation(s)* that the external API should implement (the ones your API will call). + +/// tip + +When writing the code to document a callback, it might be useful to imagine that you are that *external developer*. And that you are currently implementing the *external API*, not *your API*. + +Temporarily adopting this point of view (of the *external developer*) can help you feel like it's more obvious where to put the parameters, the Pydantic model for the body, for the response, etc. for that *external API*. + +/// + +### Create a callback `APIRouter` { #create-a-callback-apirouter } + +First create a new `APIRouter` that will contain one or more callbacks. + +{* ../../docs_src/openapi_callbacks/tutorial001.py hl[3,25] *} + +### Create the callback *path operation* { #create-the-callback-path-operation } + +To create the callback *path operation* use the same `APIRouter` you created above. + +It should look just like a normal FastAPI *path operation*: + +* It should probably have a declaration of the body it should receive, e.g. `body: InvoiceEvent`. +* And it could also have a declaration of the response it should return, e.g. `response_model=InvoiceEventReceived`. + +{* ../../docs_src/openapi_callbacks/tutorial001.py hl[16:18,21:22,28:32] *} + +There are 2 main differences from a normal *path operation*: + +* It doesn't need to have any actual code, because your app will never call this code. It's only used to document the *external API*. So, the function could just have `pass`. +* The *path* can contain an OpenAPI 3 expression (see more below) where it can use variables with parameters and parts of the original request sent to *your API*. + +### The callback path expression { #the-callback-path-expression } + +The callback *path* can have an OpenAPI 3 expression that can contain parts of the original request sent to *your API*. + +In this case, it's the `str`: + +```Python +"{$callback_url}/invoices/{$request.body.id}" +``` + +So, if your API user (the external developer) sends a request to *your API* to: + +``` +https://yourapi.com/invoices/?callback_url=https://www.external.org/events +``` + +with a JSON body of: + +```JSON +{ + "id": "2expen51ve", + "customer": "Mr. Richie Rich", + "total": "9999" +} +``` + +then *your API* will process the invoice, and at some point later, send a callback request to the `callback_url` (the *external API*): + +``` +https://www.external.org/events/invoices/2expen51ve +``` + +with a JSON body containing something like: + +```JSON +{ + "description": "Payment celebration", + "paid": true +} +``` + +and it would expect a response from that *external API* with a JSON body like: + +```JSON +{ + "ok": true +} +``` + +/// tip + +Notice how the callback URL used contains the URL received as a query parameter in `callback_url` (`https://www.external.org/events`) and also the invoice `id` from inside of the JSON body (`2expen51ve`). + +/// + +### Add the callback router { #add-the-callback-router } + +At this point you have the *callback path operation(s)* needed (the one(s) that the *external developer* should implement in the *external API*) in the callback router you created above. + +Now use the parameter `callbacks` in *your API's path operation decorator* to pass the attribute `.routes` (that's actually just a `list` of routes/*path operations*) from that callback router: + +{* ../../docs_src/openapi_callbacks/tutorial001.py hl[35] *} + +/// tip + +Notice that you are not passing the router itself (`invoices_callback_router`) to `callback=`, but the attribute `.routes`, as in `invoices_callback_router.routes`. + +/// + +### Check the docs { #check-the-docs } + +Now you can start your app and go to http://127.0.0.1:8000/docs. + +You will see your docs including a "Callbacks" section for your *path operation* that shows how the *external API* should look like: + + diff --git a/docs/en/docs/advanced/openapi-webhooks.md b/docs/en/docs/advanced/openapi-webhooks.md new file mode 100644 index 0000000..416cf4b --- /dev/null +++ b/docs/en/docs/advanced/openapi-webhooks.md @@ -0,0 +1,55 @@ +# OpenAPI Webhooks { #openapi-webhooks } + +There are cases where you want to tell your API **users** that your app could call *their* app (sending a request) with some data, normally to **notify** of some type of **event**. + +This means that instead of the normal process of your users sending requests to your API, it's **your API** (or your app) that could **send requests to their system** (to their API, their app). + +This is normally called a **webhook**. + +## Webhooks steps { #webhooks-steps } + +The process normally is that **you define** in your code what is the message that you will send, the **body of the request**. + +You also define in some way at which **moments** your app will send those requests or events. + +And **your users** define in some way (for example in a web dashboard somewhere) the **URL** where your app should send those requests. + +All the **logic** about how to register the URLs for webhooks and the code to actually send those requests is up to you. You write it however you want to in **your own code**. + +## Documenting webhooks with **FastAPI** and OpenAPI { #documenting-webhooks-with-fastapi-and-openapi } + +With **FastAPI**, using OpenAPI, you can define the names of these webhooks, the types of HTTP operations that your app can send (e.g. `POST`, `PUT`, etc.) and the request **bodies** that your app would send. + +This can make it a lot easier for your users to **implement their APIs** to receive your **webhook** requests, they might even be able to autogenerate some of their own API code. + +/// info + +Webhooks are available in OpenAPI 3.1.0 and above, supported by FastAPI `0.99.0` and above. + +/// + +## An app with webhooks { #an-app-with-webhooks } + +When you create a **FastAPI** application, there is a `webhooks` attribute that you can use to define *webhooks*, the same way you would define *path operations*, for example with `@app.webhooks.post()`. + +{* ../../docs_src/openapi_webhooks/tutorial001.py hl[9:13,36:53] *} + +The webhooks that you define will end up in the **OpenAPI** schema and the automatic **docs UI**. + +/// info + +The `app.webhooks` object is actually just an `APIRouter`, the same type you would use when structuring your app with multiple files. + +/// + +Notice that with webhooks you are actually not declaring a *path* (like `/items/`), the text you pass there is just an **identifier** of the webhook (the name of the event), for example in `@app.webhooks.post("new-subscription")`, the webhook name is `new-subscription`. + +This is because it is expected that **your users** would define the actual **URL path** where they want to receive the webhook request in some other way (e.g. a web dashboard). + +### Check the docs { #check-the-docs } + +Now you can start your app and go to http://127.0.0.1:8000/docs. + +You will see your docs have the normal *path operations* and now also some **webhooks**: + + diff --git a/docs/en/docs/advanced/path-operation-advanced-configuration.md b/docs/en/docs/advanced/path-operation-advanced-configuration.md new file mode 100644 index 0000000..b9961f9 --- /dev/null +++ b/docs/en/docs/advanced/path-operation-advanced-configuration.md @@ -0,0 +1,204 @@ +# Path Operation Advanced Configuration { #path-operation-advanced-configuration } + +## OpenAPI operationId { #openapi-operationid } + +/// warning + +If you are not an "expert" in OpenAPI, you probably don't need this. + +/// + +You can set the OpenAPI `operationId` to be used in your *path operation* with the parameter `operation_id`. + +You would have to make sure that it is unique for each operation. + +{* ../../docs_src/path_operation_advanced_configuration/tutorial001.py hl[6] *} + +### Using the *path operation function* name as the operationId { #using-the-path-operation-function-name-as-the-operationid } + +If you want to use your APIs' function names as `operationId`s, you can iterate over all of them and override each *path operation's* `operation_id` using their `APIRoute.name`. + +You should do it after adding all your *path operations*. + +{* ../../docs_src/path_operation_advanced_configuration/tutorial002.py hl[2, 12:21, 24] *} + +/// tip + +If you manually call `app.openapi()`, you should update the `operationId`s before that. + +/// + +/// warning + +If you do this, you have to make sure each one of your *path operation functions* has a unique name. + +Even if they are in different modules (Python files). + +/// + +## Exclude from OpenAPI { #exclude-from-openapi } + +To exclude a *path operation* from the generated OpenAPI schema (and thus, from the automatic documentation systems), use the parameter `include_in_schema` and set it to `False`: + +{* ../../docs_src/path_operation_advanced_configuration/tutorial003.py hl[6] *} + +## Advanced description from docstring { #advanced-description-from-docstring } + +You can limit the lines used from the docstring of a *path operation function* for OpenAPI. + +Adding an `\f` (an escaped "form feed" character) causes **FastAPI** to truncate the output used for OpenAPI at this point. + +It won't show up in the documentation, but other tools (such as Sphinx) will be able to use the rest. + +{* ../../docs_src/path_operation_advanced_configuration/tutorial004.py hl[19:29] *} + +## Additional Responses { #additional-responses } + +You probably have seen how to declare the `response_model` and `status_code` for a *path operation*. + +That defines the metadata about the main response of a *path operation*. + +You can also declare additional responses with their models, status codes, etc. + +There's a whole chapter here in the documentation about it, you can read it at [Additional Responses in OpenAPI](additional-responses.md){.internal-link target=_blank}. + +## OpenAPI Extra { #openapi-extra } + +When you declare a *path operation* in your application, **FastAPI** automatically generates the relevant metadata about that *path operation* to be included in the OpenAPI schema. + +/// note | Technical details + +In the OpenAPI specification it is called the Operation Object. + +/// + +It has all the information about the *path operation* and is used to generate the automatic documentation. + +It includes the `tags`, `parameters`, `requestBody`, `responses`, etc. + +This *path operation*-specific OpenAPI schema is normally generated automatically by **FastAPI**, but you can also extend it. + +/// tip + +This is a low level extension point. + +If you only need to declare additional responses, a more convenient way to do it is with [Additional Responses in OpenAPI](additional-responses.md){.internal-link target=_blank}. + +/// + +You can extend the OpenAPI schema for a *path operation* using the parameter `openapi_extra`. + +### OpenAPI Extensions { #openapi-extensions } + +This `openapi_extra` can be helpful, for example, to declare [OpenAPI Extensions](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#specificationExtensions): + +{* ../../docs_src/path_operation_advanced_configuration/tutorial005.py hl[6] *} + +If you open the automatic API docs, your extension will show up at the bottom of the specific *path operation*. + + + +And if you see the resulting OpenAPI (at `/openapi.json` in your API), you will see your extension as part of the specific *path operation* too: + +```JSON hl_lines="22" +{ + "openapi": "3.1.0", + "info": { + "title": "FastAPI", + "version": "0.1.0" + }, + "paths": { + "/items/": { + "get": { + "summary": "Read Items", + "operationId": "read_items_items__get", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": {} + } + } + } + }, + "x-aperture-labs-portal": "blue" + } + } + } +} +``` + +### Custom OpenAPI *path operation* schema { #custom-openapi-path-operation-schema } + +The dictionary in `openapi_extra` will be deeply merged with the automatically generated OpenAPI schema for the *path operation*. + +So, you could add additional data to the automatically generated schema. + +For example, you could decide to read and validate the request with your own code, without using the automatic features of FastAPI with Pydantic, but you could still want to define the request in the OpenAPI schema. + +You could do that with `openapi_extra`: + +{* ../../docs_src/path_operation_advanced_configuration/tutorial006.py hl[19:36, 39:40] *} + +In this example, we didn't declare any Pydantic model. In fact, the request body is not even parsed as JSON, it is read directly as `bytes`, and the function `magic_data_reader()` would be in charge of parsing it in some way. + +Nevertheless, we can declare the expected schema for the request body. + +### Custom OpenAPI content type { #custom-openapi-content-type } + +Using this same trick, you could use a Pydantic model to define the JSON Schema that is then included in the custom OpenAPI schema section for the *path operation*. + +And you could do this even if the data type in the request is not JSON. + +For example, in this application we don't use FastAPI's integrated functionality to extract the JSON Schema from Pydantic models nor the automatic validation for JSON. In fact, we are declaring the request content type as YAML, not JSON: + +//// tab | Pydantic v2 + +{* ../../docs_src/path_operation_advanced_configuration/tutorial007.py hl[17:22, 24] *} + +//// + +//// tab | Pydantic v1 + +{* ../../docs_src/path_operation_advanced_configuration/tutorial007_pv1.py hl[17:22, 24] *} + +//// + +/// info + +In Pydantic version 1 the method to get the JSON Schema for a model was called `Item.schema()`, in Pydantic version 2, the method is called `Item.model_json_schema()`. + +/// + +Nevertheless, although we are not using the default integrated functionality, we are still using a Pydantic model to manually generate the JSON Schema for the data that we want to receive in YAML. + +Then we use the request directly, and extract the body as `bytes`. This means that FastAPI won't even try to parse the request payload as JSON. + +And then in our code, we parse that YAML content directly, and then we are again using the same Pydantic model to validate the YAML content: + +//// tab | Pydantic v2 + +{* ../../docs_src/path_operation_advanced_configuration/tutorial007.py hl[26:33] *} + +//// + +//// tab | Pydantic v1 + +{* ../../docs_src/path_operation_advanced_configuration/tutorial007_pv1.py hl[26:33] *} + +//// + +/// info + +In Pydantic version 1 the method to parse and validate an object was `Item.parse_obj()`, in Pydantic version 2, the method is called `Item.model_validate()`. + +/// + +/// tip + +Here we reuse the same Pydantic model. + +But the same way, we could have validated it in some other way. + +/// diff --git a/docs/en/docs/advanced/response-change-status-code.md b/docs/en/docs/advanced/response-change-status-code.md new file mode 100644 index 0000000..912ed0f --- /dev/null +++ b/docs/en/docs/advanced/response-change-status-code.md @@ -0,0 +1,31 @@ +# Response - Change Status Code { #response-change-status-code } + +You probably read before that you can set a default [Response Status Code](../tutorial/response-status-code.md){.internal-link target=_blank}. + +But in some cases you need to return a different status code than the default. + +## Use case { #use-case } + +For example, imagine that you want to return an HTTP status code of "OK" `200` by default. + +But if the data didn't exist, you want to create it, and return an HTTP status code of "CREATED" `201`. + +But you still want to be able to filter and convert the data you return with a `response_model`. + +For those cases, you can use a `Response` parameter. + +## Use a `Response` parameter { #use-a-response-parameter } + +You can declare a parameter of type `Response` in your *path operation function* (as you can do for cookies and headers). + +And then you can set the `status_code` in that *temporal* response object. + +{* ../../docs_src/response_change_status_code/tutorial001.py hl[1,9,12] *} + +And then you can return any object you need, as you normally would (a `dict`, a database model, etc). + +And if you declared a `response_model`, it will still be used to filter and convert the object you returned. + +**FastAPI** will use that *temporal* response to extract the status code (also cookies and headers), and will put them in the final response that contains the value you returned, filtered by any `response_model`. + +You can also declare the `Response` parameter in dependencies, and set the status code in them. But keep in mind that the last one to be set will win. diff --git a/docs/en/docs/advanced/response-cookies.md b/docs/en/docs/advanced/response-cookies.md new file mode 100644 index 0000000..1f41d84 --- /dev/null +++ b/docs/en/docs/advanced/response-cookies.md @@ -0,0 +1,51 @@ +# Response Cookies { #response-cookies } + +## Use a `Response` parameter { #use-a-response-parameter } + +You can declare a parameter of type `Response` in your *path operation function*. + +And then you can set cookies in that *temporal* response object. + +{* ../../docs_src/response_cookies/tutorial002.py hl[1, 8:9] *} + +And then you can return any object you need, as you normally would (a `dict`, a database model, etc). + +And if you declared a `response_model`, it will still be used to filter and convert the object you returned. + +**FastAPI** will use that *temporal* response to extract the cookies (also headers and status code), and will put them in the final response that contains the value you returned, filtered by any `response_model`. + +You can also declare the `Response` parameter in dependencies, and set cookies (and headers) in them. + +## Return a `Response` directly { #return-a-response-directly } + +You can also create cookies when returning a `Response` directly in your code. + +To do that, you can create a response as described in [Return a Response Directly](response-directly.md){.internal-link target=_blank}. + +Then set Cookies in it, and then return it: + +{* ../../docs_src/response_cookies/tutorial001.py hl[10:12] *} + +/// tip + +Keep in mind that if you return a response directly instead of using the `Response` parameter, FastAPI will return it directly. + +So, you will have to make sure your data is of the correct type. E.g. it is compatible with JSON, if you are returning a `JSONResponse`. + +And also that you are not sending any data that should have been filtered by a `response_model`. + +/// + +### More info { #more-info } + +/// note | Technical Details + +You could also use `from starlette.responses import Response` or `from starlette.responses import JSONResponse`. + +**FastAPI** provides the same `starlette.responses` as `fastapi.responses` just as a convenience for you, the developer. But most of the available responses come directly from Starlette. + +And as the `Response` can be used frequently to set headers and cookies, **FastAPI** also provides it at `fastapi.Response`. + +/// + +To see all the available parameters and options, check the documentation in Starlette. diff --git a/docs/en/docs/advanced/response-directly.md b/docs/en/docs/advanced/response-directly.md new file mode 100644 index 0000000..3197e1b --- /dev/null +++ b/docs/en/docs/advanced/response-directly.md @@ -0,0 +1,65 @@ +# Return a Response Directly { #return-a-response-directly } + +When you create a **FastAPI** *path operation* you can normally return any data from it: a `dict`, a `list`, a Pydantic model, a database model, etc. + +By default, **FastAPI** would automatically convert that return value to JSON using the `jsonable_encoder` explained in [JSON Compatible Encoder](../tutorial/encoder.md){.internal-link target=_blank}. + +Then, behind the scenes, it would put that JSON-compatible data (e.g. a `dict`) inside of a `JSONResponse` that would be used to send the response to the client. + +But you can return a `JSONResponse` directly from your *path operations*. + +It might be useful, for example, to return custom headers or cookies. + +## Return a `Response` { #return-a-response } + +In fact, you can return any `Response` or any sub-class of it. + +/// tip + +`JSONResponse` itself is a sub-class of `Response`. + +/// + +And when you return a `Response`, **FastAPI** will pass it directly. + +It won't do any data conversion with Pydantic models, it won't convert the contents to any type, etc. + +This gives you a lot of flexibility. You can return any data type, override any data declaration or validation, etc. + +## Using the `jsonable_encoder` in a `Response` { #using-the-jsonable-encoder-in-a-response } + +Because **FastAPI** doesn't make any changes to a `Response` you return, you have to make sure its contents are ready for it. + +For example, you cannot put a Pydantic model in a `JSONResponse` without first converting it to a `dict` with all the data types (like `datetime`, `UUID`, etc) converted to JSON-compatible types. + +For those cases, you can use the `jsonable_encoder` to convert your data before passing it to a response: + +{* ../../docs_src/response_directly/tutorial001.py hl[6:7,21:22] *} + +/// note | Technical Details + +You could also use `from starlette.responses import JSONResponse`. + +**FastAPI** provides the same `starlette.responses` as `fastapi.responses` just as a convenience for you, the developer. But most of the available responses come directly from Starlette. + +/// + +## Returning a custom `Response` { #returning-a-custom-response } + +The example above shows all the parts you need, but it's not very useful yet, as you could have just returned the `item` directly, and **FastAPI** would put it in a `JSONResponse` for you, converting it to a `dict`, etc. All that by default. + +Now, let's see how you could use that to return a custom response. + +Let's say that you want to return an XML response. + +You could put your XML content in a string, put that in a `Response`, and return it: + +{* ../../docs_src/response_directly/tutorial002.py hl[1,18] *} + +## Notes { #notes } + +When you return a `Response` directly its data is not validated, converted (serialized), or documented automatically. + +But you can still document it as described in [Additional Responses in OpenAPI](additional-responses.md){.internal-link target=_blank}. + +You can see in later sections how to use/declare these custom `Response`s while still having automatic data conversion, documentation, etc. diff --git a/docs/en/docs/advanced/response-headers.md b/docs/en/docs/advanced/response-headers.md new file mode 100644 index 0000000..855ba05 --- /dev/null +++ b/docs/en/docs/advanced/response-headers.md @@ -0,0 +1,41 @@ +# Response Headers { #response-headers } + +## Use a `Response` parameter { #use-a-response-parameter } + +You can declare a parameter of type `Response` in your *path operation function* (as you can do for cookies). + +And then you can set headers in that *temporal* response object. + +{* ../../docs_src/response_headers/tutorial002.py hl[1, 7:8] *} + +And then you can return any object you need, as you normally would (a `dict`, a database model, etc). + +And if you declared a `response_model`, it will still be used to filter and convert the object you returned. + +**FastAPI** will use that *temporal* response to extract the headers (also cookies and status code), and will put them in the final response that contains the value you returned, filtered by any `response_model`. + +You can also declare the `Response` parameter in dependencies, and set headers (and cookies) in them. + +## Return a `Response` directly { #return-a-response-directly } + +You can also add headers when you return a `Response` directly. + +Create a response as described in [Return a Response Directly](response-directly.md){.internal-link target=_blank} and pass the headers as an additional parameter: + +{* ../../docs_src/response_headers/tutorial001.py hl[10:12] *} + +/// note | Technical Details + +You could also use `from starlette.responses import Response` or `from starlette.responses import JSONResponse`. + +**FastAPI** provides the same `starlette.responses` as `fastapi.responses` just as a convenience for you, the developer. But most of the available responses come directly from Starlette. + +And as the `Response` can be used frequently to set headers and cookies, **FastAPI** also provides it at `fastapi.Response`. + +/// + +## Custom Headers { #custom-headers } + +Keep in mind that custom proprietary headers can be added using the `X-` prefix. + +But if you have custom headers that you want a client in a browser to be able to see, you need to add them to your CORS configurations (read more in [CORS (Cross-Origin Resource Sharing)](../tutorial/cors.md){.internal-link target=_blank}), using the parameter `expose_headers` documented in Starlette's CORS docs. diff --git a/docs/en/docs/advanced/security/http-basic-auth.md b/docs/en/docs/advanced/security/http-basic-auth.md new file mode 100644 index 0000000..01b98ee --- /dev/null +++ b/docs/en/docs/advanced/security/http-basic-auth.md @@ -0,0 +1,107 @@ +# HTTP Basic Auth { #http-basic-auth } + +For the simplest cases, you can use HTTP Basic Auth. + +In HTTP Basic Auth, the application expects a header that contains a username and a password. + +If it doesn't receive it, it returns an HTTP 401 "Unauthorized" error. + +And returns a header `WWW-Authenticate` with a value of `Basic`, and an optional `realm` parameter. + +That tells the browser to show the integrated prompt for a username and password. + +Then, when you type that username and password, the browser sends them in the header automatically. + +## Simple HTTP Basic Auth { #simple-http-basic-auth } + +* Import `HTTPBasic` and `HTTPBasicCredentials`. +* Create a "`security` scheme" using `HTTPBasic`. +* Use that `security` with a dependency in your *path operation*. +* It returns an object of type `HTTPBasicCredentials`: + * It contains the `username` and `password` sent. + +{* ../../docs_src/security/tutorial006_an_py39.py hl[4,8,12] *} + +When you try to open the URL for the first time (or click the "Execute" button in the docs) the browser will ask you for your username and password: + + + +## Check the username { #check-the-username } + +Here's a more complete example. + +Use a dependency to check if the username and password are correct. + +For this, use the Python standard module `secrets` to check the username and password. + +`secrets.compare_digest()` needs to take `bytes` or a `str` that only contains ASCII characters (the ones in English), this means it wouldn't work with characters like `á`, as in `Sebastián`. + +To handle that, we first convert the `username` and `password` to `bytes` encoding them with UTF-8. + +Then we can use `secrets.compare_digest()` to ensure that `credentials.username` is `"stanleyjobson"`, and that `credentials.password` is `"swordfish"`. + +{* ../../docs_src/security/tutorial007_an_py39.py hl[1,12:24] *} + +This would be similar to: + +```Python +if not (credentials.username == "stanleyjobson") or not (credentials.password == "swordfish"): + # Return some error + ... +``` + +But by using the `secrets.compare_digest()` it will be secure against a type of attacks called "timing attacks". + +### Timing Attacks { #timing-attacks } + +But what's a "timing attack"? + +Let's imagine some attackers are trying to guess the username and password. + +And they send a request with a username `johndoe` and a password `love123`. + +Then the Python code in your application would be equivalent to something like: + +```Python +if "johndoe" == "stanleyjobson" and "love123" == "swordfish": + ... +``` + +But right at the moment Python compares the first `j` in `johndoe` to the first `s` in `stanleyjobson`, it will return `False`, because it already knows that those two strings are not the same, thinking that "there's no need to waste more computation comparing the rest of the letters". And your application will say "Incorrect username or password". + +But then the attackers try with username `stanleyjobsox` and password `love123`. + +And your application code does something like: + +```Python +if "stanleyjobsox" == "stanleyjobson" and "love123" == "swordfish": + ... +``` + +Python will have to compare the whole `stanleyjobso` in both `stanleyjobsox` and `stanleyjobson` before realizing that both strings are not the same. So it will take some extra microseconds to reply back "Incorrect username or password". + +#### The time to answer helps the attackers { #the-time-to-answer-helps-the-attackers } + +At that point, by noticing that the server took some microseconds longer to send the "Incorrect username or password" response, the attackers will know that they got _something_ right, some of the initial letters were right. + +And then they can try again knowing that it's probably something more similar to `stanleyjobsox` than to `johndoe`. + +#### A "professional" attack { #a-professional-attack } + +Of course, the attackers would not try all this by hand, they would write a program to do it, possibly with thousands or millions of tests per second. And they would get just one extra correct letter at a time. + +But doing that, in some minutes or hours the attackers would have guessed the correct username and password, with the "help" of our application, just using the time taken to answer. + +#### Fix it with `secrets.compare_digest()` { #fix-it-with-secrets-compare-digest } + +But in our code we are actually using `secrets.compare_digest()`. + +In short, it will take the same time to compare `stanleyjobsox` to `stanleyjobson` than it takes to compare `johndoe` to `stanleyjobson`. And the same for the password. + +That way, using `secrets.compare_digest()` in your application code, it will be safe against this whole range of security attacks. + +### Return the error { #return-the-error } + +After detecting that the credentials are incorrect, return an `HTTPException` with a status code 401 (the same returned when no credentials are provided) and add the header `WWW-Authenticate` to make the browser show the login prompt again: + +{* ../../docs_src/security/tutorial007_an_py39.py hl[26:30] *} diff --git a/docs/en/docs/advanced/security/index.md b/docs/en/docs/advanced/security/index.md new file mode 100644 index 0000000..996d716 --- /dev/null +++ b/docs/en/docs/advanced/security/index.md @@ -0,0 +1,19 @@ +# Advanced Security { #advanced-security } + +## Additional Features { #additional-features } + +There are some extra features to handle security apart from the ones covered in the [Tutorial - User Guide: Security](../../tutorial/security/index.md){.internal-link target=_blank}. + +/// tip + +The next sections are **not necessarily "advanced"**. + +And it's possible that for your use case, the solution is in one of them. + +/// + +## Read the Tutorial first { #read-the-tutorial-first } + +The next sections assume you already read the main [Tutorial - User Guide: Security](../../tutorial/security/index.md){.internal-link target=_blank}. + +They are all based on the same concepts, but allow some extra functionalities. diff --git a/docs/en/docs/advanced/security/oauth2-scopes.md b/docs/en/docs/advanced/security/oauth2-scopes.md new file mode 100644 index 0000000..67c927c --- /dev/null +++ b/docs/en/docs/advanced/security/oauth2-scopes.md @@ -0,0 +1,274 @@ +# OAuth2 scopes { #oauth2-scopes } + +You can use OAuth2 scopes directly with **FastAPI**, they are integrated to work seamlessly. + +This would allow you to have a more fine-grained permission system, following the OAuth2 standard, integrated into your OpenAPI application (and the API docs). + +OAuth2 with scopes is the mechanism used by many big authentication providers, like Facebook, Google, GitHub, Microsoft, X (Twitter), etc. They use it to provide specific permissions to users and applications. + +Every time you "log in with" Facebook, Google, GitHub, Microsoft, X (Twitter), that application is using OAuth2 with scopes. + +In this section you will see how to manage authentication and authorization with the same OAuth2 with scopes in your **FastAPI** application. + +/// warning + +This is a more or less advanced section. If you are just starting, you can skip it. + +You don't necessarily need OAuth2 scopes, and you can handle authentication and authorization however you want. + +But OAuth2 with scopes can be nicely integrated into your API (with OpenAPI) and your API docs. + +Nevertheless, you still enforce those scopes, or any other security/authorization requirement, however you need, in your code. + +In many cases, OAuth2 with scopes can be an overkill. + +But if you know you need it, or you are curious, keep reading. + +/// + +## OAuth2 scopes and OpenAPI { #oauth2-scopes-and-openapi } + +The OAuth2 specification defines "scopes" as a list of strings separated by spaces. + +The content of each of these strings can have any format, but should not contain spaces. + +These scopes represent "permissions". + +In OpenAPI (e.g. the API docs), you can define "security schemes". + +When one of these security schemes uses OAuth2, you can also declare and use scopes. + +Each "scope" is just a string (without spaces). + +They are normally used to declare specific security permissions, for example: + +* `users:read` or `users:write` are common examples. +* `instagram_basic` is used by Facebook / Instagram. +* `https://www.googleapis.com/auth/drive` is used by Google. + +/// info + +In OAuth2 a "scope" is just a string that declares a specific permission required. + +It doesn't matter if it has other characters like `:` or if it is a URL. + +Those details are implementation specific. + +For OAuth2 they are just strings. + +/// + +## Global view { #global-view } + +First, let's quickly see the parts that change from the examples in the main **Tutorial - User Guide** for [OAuth2 with Password (and hashing), Bearer with JWT tokens](../../tutorial/security/oauth2-jwt.md){.internal-link target=_blank}. Now using OAuth2 scopes: + +{* ../../docs_src/security/tutorial005_an_py310.py hl[5,9,13,47,65,106,108:116,122:126,130:136,141,157] *} + +Now let's review those changes step by step. + +## OAuth2 Security scheme { #oauth2-security-scheme } + +The first change is that now we are declaring the OAuth2 security scheme with two available scopes, `me` and `items`. + +The `scopes` parameter receives a `dict` with each scope as a key and the description as the value: + +{* ../../docs_src/security/tutorial005_an_py310.py hl[63:66] *} + +Because we are now declaring those scopes, they will show up in the API docs when you log-in/authorize. + +And you will be able to select which scopes you want to give access to: `me` and `items`. + +This is the same mechanism used when you give permissions while logging in with Facebook, Google, GitHub, etc: + + + +## JWT token with scopes { #jwt-token-with-scopes } + +Now, modify the token *path operation* to return the scopes requested. + +We are still using the same `OAuth2PasswordRequestForm`. It includes a property `scopes` with a `list` of `str`, with each scope it received in the request. + +And we return the scopes as part of the JWT token. + +/// danger + +For simplicity, here we are just adding the scopes received directly to the token. + +But in your application, for security, you should make sure you only add the scopes that the user is actually able to have, or the ones you have predefined. + +/// + +{* ../../docs_src/security/tutorial005_an_py310.py hl[157] *} + +## Declare scopes in *path operations* and dependencies { #declare-scopes-in-path-operations-and-dependencies } + +Now we declare that the *path operation* for `/users/me/items/` requires the scope `items`. + +For this, we import and use `Security` from `fastapi`. + +You can use `Security` to declare dependencies (just like `Depends`), but `Security` also receives a parameter `scopes` with a list of scopes (strings). + +In this case, we pass a dependency function `get_current_active_user` to `Security` (the same way we would do with `Depends`). + +But we also pass a `list` of scopes, in this case with just one scope: `items` (it could have more). + +And the dependency function `get_current_active_user` can also declare sub-dependencies, not only with `Depends` but also with `Security`. Declaring its own sub-dependency function (`get_current_user`), and more scope requirements. + +In this case, it requires the scope `me` (it could require more than one scope). + +/// note + +You don't necessarily need to add different scopes in different places. + +We are doing it here to demonstrate how **FastAPI** handles scopes declared at different levels. + +/// + +{* ../../docs_src/security/tutorial005_an_py310.py hl[5,141,172] *} + +/// info | Technical Details + +`Security` is actually a subclass of `Depends`, and it has just one extra parameter that we'll see later. + +But by using `Security` instead of `Depends`, **FastAPI** will know that it can declare security scopes, use them internally, and document the API with OpenAPI. + +But when you import `Query`, `Path`, `Depends`, `Security` and others from `fastapi`, those are actually functions that return special classes. + +/// + +## Use `SecurityScopes` { #use-securityscopes } + +Now update the dependency `get_current_user`. + +This is the one used by the dependencies above. + +Here's where we are using the same OAuth2 scheme we created before, declaring it as a dependency: `oauth2_scheme`. + +Because this dependency function doesn't have any scope requirements itself, we can use `Depends` with `oauth2_scheme`, we don't have to use `Security` when we don't need to specify security scopes. + +We also declare a special parameter of type `SecurityScopes`, imported from `fastapi.security`. + +This `SecurityScopes` class is similar to `Request` (`Request` was used to get the request object directly). + +{* ../../docs_src/security/tutorial005_an_py310.py hl[9,106] *} + +## Use the `scopes` { #use-the-scopes } + +The parameter `security_scopes` will be of type `SecurityScopes`. + +It will have a property `scopes` with a list containing all the scopes required by itself and all the dependencies that use this as a sub-dependency. That means, all the "dependants"... this might sound confusing, it is explained again later below. + +The `security_scopes` object (of class `SecurityScopes`) also provides a `scope_str` attribute with a single string, containing those scopes separated by spaces (we are going to use it). + +We create an `HTTPException` that we can reuse (`raise`) later at several points. + +In this exception, we include the scopes required (if any) as a string separated by spaces (using `scope_str`). We put that string containing the scopes in the `WWW-Authenticate` header (this is part of the spec). + +{* ../../docs_src/security/tutorial005_an_py310.py hl[106,108:116] *} + +## Verify the `username` and data shape { #verify-the-username-and-data-shape } + +We verify that we get a `username`, and extract the scopes. + +And then we validate that data with the Pydantic model (catching the `ValidationError` exception), and if we get an error reading the JWT token or validating the data with Pydantic, we raise the `HTTPException` we created before. + +For that, we update the Pydantic model `TokenData` with a new property `scopes`. + +By validating the data with Pydantic we can make sure that we have, for example, exactly a `list` of `str` with the scopes and a `str` with the `username`. + +Instead of, for example, a `dict`, or something else, as it could break the application at some point later, making it a security risk. + +We also verify that we have a user with that username, and if not, we raise that same exception we created before. + +{* ../../docs_src/security/tutorial005_an_py310.py hl[47,117:129] *} + +## Verify the `scopes` { #verify-the-scopes } + +We now verify that all the scopes required, by this dependency and all the dependants (including *path operations*), are included in the scopes provided in the token received, otherwise raise an `HTTPException`. + +For this, we use `security_scopes.scopes`, that contains a `list` with all these scopes as `str`. + +{* ../../docs_src/security/tutorial005_an_py310.py hl[130:136] *} + +## Dependency tree and scopes { #dependency-tree-and-scopes } + +Let's review again this dependency tree and the scopes. + +As the `get_current_active_user` dependency has as a sub-dependency on `get_current_user`, the scope `"me"` declared at `get_current_active_user` will be included in the list of required scopes in the `security_scopes.scopes` passed to `get_current_user`. + +The *path operation* itself also declares a scope, `"items"`, so this will also be in the list of `security_scopes.scopes` passed to `get_current_user`. + +Here's how the hierarchy of dependencies and scopes looks like: + +* The *path operation* `read_own_items` has: + * Required scopes `["items"]` with the dependency: + * `get_current_active_user`: + * The dependency function `get_current_active_user` has: + * Required scopes `["me"]` with the dependency: + * `get_current_user`: + * The dependency function `get_current_user` has: + * No scopes required by itself. + * A dependency using `oauth2_scheme`. + * A `security_scopes` parameter of type `SecurityScopes`: + * This `security_scopes` parameter has a property `scopes` with a `list` containing all these scopes declared above, so: + * `security_scopes.scopes` will contain `["me", "items"]` for the *path operation* `read_own_items`. + * `security_scopes.scopes` will contain `["me"]` for the *path operation* `read_users_me`, because it is declared in the dependency `get_current_active_user`. + * `security_scopes.scopes` will contain `[]` (nothing) for the *path operation* `read_system_status`, because it didn't declare any `Security` with `scopes`, and its dependency, `get_current_user`, doesn't declare any `scopes` either. + +/// tip + +The important and "magic" thing here is that `get_current_user` will have a different list of `scopes` to check for each *path operation*. + +All depending on the `scopes` declared in each *path operation* and each dependency in the dependency tree for that specific *path operation*. + +/// + +## More details about `SecurityScopes` { #more-details-about-securityscopes } + +You can use `SecurityScopes` at any point, and in multiple places, it doesn't have to be at the "root" dependency. + +It will always have the security scopes declared in the current `Security` dependencies and all the dependants for **that specific** *path operation* and **that specific** dependency tree. + +Because the `SecurityScopes` will have all the scopes declared by dependants, you can use it to verify that a token has the required scopes in a central dependency function, and then declare different scope requirements in different *path operations*. + +They will be checked independently for each *path operation*. + +## Check it { #check-it } + +If you open the API docs, you can authenticate and specify which scopes you want to authorize. + + + +If you don't select any scope, you will be "authenticated", but when you try to access `/users/me/` or `/users/me/items/` you will get an error saying that you don't have enough permissions. You will still be able to access `/status/`. + +And if you select the scope `me` but not the scope `items`, you will be able to access `/users/me/` but not `/users/me/items/`. + +That's what would happen to a third party application that tried to access one of these *path operations* with a token provided by a user, depending on how many permissions the user gave the application. + +## About third party integrations { #about-third-party-integrations } + +In this example we are using the OAuth2 "password" flow. + +This is appropriate when we are logging in to our own application, probably with our own frontend. + +Because we can trust it to receive the `username` and `password`, as we control it. + +But if you are building an OAuth2 application that others would connect to (i.e., if you are building an authentication provider equivalent to Facebook, Google, GitHub, etc.) you should use one of the other flows. + +The most common is the implicit flow. + +The most secure is the code flow, but it's more complex to implement as it requires more steps. As it is more complex, many providers end up suggesting the implicit flow. + +/// note + +It's common that each authentication provider names their flows in a different way, to make it part of their brand. + +But in the end, they are implementing the same OAuth2 standard. + +/// + +**FastAPI** includes utilities for all these OAuth2 authentication flows in `fastapi.security.oauth2`. + +## `Security` in decorator `dependencies` { #security-in-decorator-dependencies } + +The same way you can define a `list` of `Depends` in the decorator's `dependencies` parameter (as explained in [Dependencies in path operation decorators](../../tutorial/dependencies/dependencies-in-path-operation-decorators.md){.internal-link target=_blank}), you could also use `Security` with `scopes` there. diff --git a/docs/en/docs/advanced/settings.md b/docs/en/docs/advanced/settings.md new file mode 100644 index 0000000..a218c3d --- /dev/null +++ b/docs/en/docs/advanced/settings.md @@ -0,0 +1,346 @@ +# Settings and Environment Variables { #settings-and-environment-variables } + +In many cases your application could need some external settings or configurations, for example secret keys, database credentials, credentials for email services, etc. + +Most of these settings are variable (can change), like database URLs. And many could be sensitive, like secrets. + +For this reason it's common to provide them in environment variables that are read by the application. + +/// tip + +To understand environment variables you can read [Environment Variables](../environment-variables.md){.internal-link target=_blank}. + +/// + +## Types and validation { #types-and-validation } + +These environment variables can only handle text strings, as they are external to Python and have to be compatible with other programs and the rest of the system (and even with different operating systems, as Linux, Windows, macOS). + +That means that any value read in Python from an environment variable will be a `str`, and any conversion to a different type or any validation has to be done in code. + +## Pydantic `Settings` { #pydantic-settings } + +Fortunately, Pydantic provides a great utility to handle these settings coming from environment variables with Pydantic: Settings management. + +### Install `pydantic-settings` { #install-pydantic-settings } + +First, make sure you create your [virtual environment](../virtual-environments.md){.internal-link target=_blank}, activate it, and then install the `pydantic-settings` package: + +
+ +```console +$ pip install pydantic-settings +---> 100% +``` + +
+ +It also comes included when you install the `all` extras with: + +
+ +```console +$ pip install "fastapi[all]" +---> 100% +``` + +
+ +/// info + +In Pydantic v1 it came included with the main package. Now it is distributed as this independent package so that you can choose to install it or not if you don't need that functionality. + +/// + +### Create the `Settings` object { #create-the-settings-object } + +Import `BaseSettings` from Pydantic and create a sub-class, very much like with a Pydantic model. + +The same way as with Pydantic models, you declare class attributes with type annotations, and possibly default values. + +You can use all the same validation features and tools you use for Pydantic models, like different data types and additional validations with `Field()`. + +//// tab | Pydantic v2 + +{* ../../docs_src/settings/tutorial001.py hl[2,5:8,11] *} + +//// + +//// tab | Pydantic v1 + +/// info + +In Pydantic v1 you would import `BaseSettings` directly from `pydantic` instead of from `pydantic_settings`. + +/// + +{* ../../docs_src/settings/tutorial001_pv1.py hl[2,5:8,11] *} + +//// + +/// tip + +If you want something quick to copy and paste, don't use this example, use the last one below. + +/// + +Then, when you create an instance of that `Settings` class (in this case, in the `settings` object), Pydantic will read the environment variables in a case-insensitive way, so, an upper-case variable `APP_NAME` will still be read for the attribute `app_name`. + +Next it will convert and validate the data. So, when you use that `settings` object, you will have data of the types you declared (e.g. `items_per_user` will be an `int`). + +### Use the `settings` { #use-the-settings } + +Then you can use the new `settings` object in your application: + +{* ../../docs_src/settings/tutorial001.py hl[18:20] *} + +### Run the server { #run-the-server } + +Next, you would run the server passing the configurations as environment variables, for example you could set an `ADMIN_EMAIL` and `APP_NAME` with: + +
+ +```console +$ ADMIN_EMAIL="deadpool@example.com" APP_NAME="ChimichangApp" fastapi run main.py + +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +``` + +
+ +/// tip + +To set multiple env vars for a single command just separate them with a space, and put them all before the command. + +/// + +And then the `admin_email` setting would be set to `"deadpool@example.com"`. + +The `app_name` would be `"ChimichangApp"`. + +And the `items_per_user` would keep its default value of `50`. + +## Settings in another module { #settings-in-another-module } + +You could put those settings in another module file as you saw in [Bigger Applications - Multiple Files](../tutorial/bigger-applications.md){.internal-link target=_blank}. + +For example, you could have a file `config.py` with: + +{* ../../docs_src/settings/app01/config.py *} + +And then use it in a file `main.py`: + +{* ../../docs_src/settings/app01/main.py hl[3,11:13] *} + +/// tip + +You would also need a file `__init__.py` as you saw in [Bigger Applications - Multiple Files](../tutorial/bigger-applications.md){.internal-link target=_blank}. + +/// + +## Settings in a dependency { #settings-in-a-dependency } + +In some occasions it might be useful to provide the settings from a dependency, instead of having a global object with `settings` that is used everywhere. + +This could be especially useful during testing, as it's very easy to override a dependency with your own custom settings. + +### The config file { #the-config-file } + +Coming from the previous example, your `config.py` file could look like: + +{* ../../docs_src/settings/app02/config.py hl[10] *} + +Notice that now we don't create a default instance `settings = Settings()`. + +### The main app file { #the-main-app-file } + +Now we create a dependency that returns a new `config.Settings()`. + +{* ../../docs_src/settings/app02_an_py39/main.py hl[6,12:13] *} + +/// tip + +We'll discuss the `@lru_cache` in a bit. + +For now you can assume `get_settings()` is a normal function. + +/// + +And then we can require it from the *path operation function* as a dependency and use it anywhere we need it. + +{* ../../docs_src/settings/app02_an_py39/main.py hl[17,19:21] *} + +### Settings and testing { #settings-and-testing } + +Then it would be very easy to provide a different settings object during testing by creating a dependency override for `get_settings`: + +{* ../../docs_src/settings/app02/test_main.py hl[9:10,13,21] *} + +In the dependency override we set a new value for the `admin_email` when creating the new `Settings` object, and then we return that new object. + +Then we can test that it is used. + +## Reading a `.env` file { #reading-a-env-file } + +If you have many settings that possibly change a lot, maybe in different environments, it might be useful to put them on a file and then read them from it as if they were environment variables. + +This practice is common enough that it has a name, these environment variables are commonly placed in a file `.env`, and the file is called a "dotenv". + +/// tip + +A file starting with a dot (`.`) is a hidden file in Unix-like systems, like Linux and macOS. + +But a dotenv file doesn't really have to have that exact filename. + +/// + +Pydantic has support for reading from these types of files using an external library. You can read more at Pydantic Settings: Dotenv (.env) support. + +/// tip + +For this to work, you need to `pip install python-dotenv`. + +/// + +### The `.env` file { #the-env-file } + +You could have a `.env` file with: + +```bash +ADMIN_EMAIL="deadpool@example.com" +APP_NAME="ChimichangApp" +``` + +### Read settings from `.env` { #read-settings-from-env } + +And then update your `config.py` with: + +//// tab | Pydantic v2 + +{* ../../docs_src/settings/app03_an/config.py hl[9] *} + +/// tip + +The `model_config` attribute is used just for Pydantic configuration. You can read more at Pydantic: Concepts: Configuration. + +/// + +//// + +//// tab | Pydantic v1 + +{* ../../docs_src/settings/app03_an/config_pv1.py hl[9:10] *} + +/// tip + +The `Config` class is used just for Pydantic configuration. You can read more at Pydantic Model Config. + +/// + +//// + +/// info + +In Pydantic version 1 the configuration was done in an internal class `Config`, in Pydantic version 2 it's done in an attribute `model_config`. This attribute takes a `dict`, and to get autocompletion and inline errors you can import and use `SettingsConfigDict` to define that `dict`. + +/// + +Here we define the config `env_file` inside of your Pydantic `Settings` class, and set the value to the filename with the dotenv file we want to use. + +### Creating the `Settings` only once with `lru_cache` { #creating-the-settings-only-once-with-lru-cache } + +Reading a file from disk is normally a costly (slow) operation, so you probably want to do it only once and then reuse the same settings object, instead of reading it for each request. + +But every time we do: + +```Python +Settings() +``` + +a new `Settings` object would be created, and at creation it would read the `.env` file again. + +If the dependency function was just like: + +```Python +def get_settings(): + return Settings() +``` + +we would create that object for each request, and we would be reading the `.env` file for each request. ⚠️ + +But as we are using the `@lru_cache` decorator on top, the `Settings` object will be created only once, the first time it's called. ✔️ + +{* ../../docs_src/settings/app03_an_py39/main.py hl[1,11] *} + +Then for any subsequent call of `get_settings()` in the dependencies for the next requests, instead of executing the internal code of `get_settings()` and creating a new `Settings` object, it will return the same object that was returned on the first call, again and again. + +#### `lru_cache` Technical Details { #lru-cache-technical-details } + +`@lru_cache` modifies the function it decorates to return the same value that was returned the first time, instead of computing it again, executing the code of the function every time. + +So, the function below it will be executed once for each combination of arguments. And then the values returned by each of those combinations of arguments will be used again and again whenever the function is called with exactly the same combination of arguments. + +For example, if you have a function: + +```Python +@lru_cache +def say_hi(name: str, salutation: str = "Ms."): + return f"Hello {salutation} {name}" +``` + +your program could execute like this: + +```mermaid +sequenceDiagram + +participant code as Code +participant function as say_hi() +participant execute as Execute function + + rect rgba(0, 255, 0, .1) + code ->> function: say_hi(name="Camila") + function ->> execute: execute function code + execute ->> code: return the result + end + + rect rgba(0, 255, 255, .1) + code ->> function: say_hi(name="Camila") + function ->> code: return stored result + end + + rect rgba(0, 255, 0, .1) + code ->> function: say_hi(name="Rick") + function ->> execute: execute function code + execute ->> code: return the result + end + + rect rgba(0, 255, 0, .1) + code ->> function: say_hi(name="Rick", salutation="Mr.") + function ->> execute: execute function code + execute ->> code: return the result + end + + rect rgba(0, 255, 255, .1) + code ->> function: say_hi(name="Rick") + function ->> code: return stored result + end + + rect rgba(0, 255, 255, .1) + code ->> function: say_hi(name="Camila") + function ->> code: return stored result + end +``` + +In the case of our dependency `get_settings()`, the function doesn't even take any arguments, so it always returns the same value. + +That way, it behaves almost as if it was just a global variable. But as it uses a dependency function, then we can override it easily for testing. + +`@lru_cache` is part of `functools` which is part of Python's standard library, you can read more about it in the Python docs for `@lru_cache`. + +## Recap { #recap } + +You can use Pydantic Settings to handle the settings or configurations for your application, with all the power of Pydantic models. + +* By using a dependency you can simplify testing. +* You can use `.env` files with it. +* Using `@lru_cache` lets you avoid reading the dotenv file again and again for each request, while allowing you to override it during testing. diff --git a/docs/en/docs/advanced/sub-applications.md b/docs/en/docs/advanced/sub-applications.md new file mode 100644 index 0000000..fbd0e1a --- /dev/null +++ b/docs/en/docs/advanced/sub-applications.md @@ -0,0 +1,67 @@ +# Sub Applications - Mounts { #sub-applications-mounts } + +If you need to have two independent FastAPI applications, with their own independent OpenAPI and their own docs UIs, you can have a main app and "mount" one (or more) sub-application(s). + +## Mounting a **FastAPI** application { #mounting-a-fastapi-application } + +"Mounting" means adding a completely "independent" application in a specific path, that then takes care of handling everything under that path, with the _path operations_ declared in that sub-application. + +### Top-level application { #top-level-application } + +First, create the main, top-level, **FastAPI** application, and its *path operations*: + +{* ../../docs_src/sub_applications/tutorial001.py hl[3, 6:8] *} + +### Sub-application { #sub-application } + +Then, create your sub-application, and its *path operations*. + +This sub-application is just another standard FastAPI application, but this is the one that will be "mounted": + +{* ../../docs_src/sub_applications/tutorial001.py hl[11, 14:16] *} + +### Mount the sub-application { #mount-the-sub-application } + +In your top-level application, `app`, mount the sub-application, `subapi`. + +In this case, it will be mounted at the path `/subapi`: + +{* ../../docs_src/sub_applications/tutorial001.py hl[11, 19] *} + +### Check the automatic API docs { #check-the-automatic-api-docs } + +Now, run the `fastapi` command with your file: + +
+ +```console +$ fastapi dev main.py + +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +``` + +
+ +And open the docs at http://127.0.0.1:8000/docs. + +You will see the automatic API docs for the main app, including only its own _path operations_: + + + +And then, open the docs for the sub-application, at http://127.0.0.1:8000/subapi/docs. + +You will see the automatic API docs for the sub-application, including only its own _path operations_, all under the correct sub-path prefix `/subapi`: + + + +If you try interacting with any of the two user interfaces, they will work correctly, because the browser will be able to talk to each specific app or sub-app. + +### Technical Details: `root_path` { #technical-details-root-path } + +When you mount a sub-application as described above, FastAPI will take care of communicating the mount path for the sub-application using a mechanism from the ASGI specification called a `root_path`. + +That way, the sub-application will know to use that path prefix for the docs UI. + +And the sub-application could also have its own mounted sub-applications and everything would work correctly, because FastAPI handles all these `root_path`s automatically. + +You will learn more about the `root_path` and how to use it explicitly in the section about [Behind a Proxy](behind-a-proxy.md){.internal-link target=_blank}. diff --git a/docs/en/docs/advanced/templates.md b/docs/en/docs/advanced/templates.md new file mode 100644 index 0000000..356f4d9 --- /dev/null +++ b/docs/en/docs/advanced/templates.md @@ -0,0 +1,126 @@ +# Templates { #templates } + +You can use any template engine you want with **FastAPI**. + +A common choice is Jinja2, the same one used by Flask and other tools. + +There are utilities to configure it easily that you can use directly in your **FastAPI** application (provided by Starlette). + +## Install dependencies { #install-dependencies } + +Make sure you create a [virtual environment](../virtual-environments.md){.internal-link target=_blank}, activate it, and install `jinja2`: + +
+ +```console +$ pip install jinja2 + +---> 100% +``` + +
+ +## Using `Jinja2Templates` { #using-jinja2templates } + +* Import `Jinja2Templates`. +* Create a `templates` object that you can reuse later. +* Declare a `Request` parameter in the *path operation* that will return a template. +* Use the `templates` you created to render and return a `TemplateResponse`, pass the name of the template, the request object, and a "context" dictionary with key-value pairs to be used inside of the Jinja2 template. + +{* ../../docs_src/templates/tutorial001.py hl[4,11,15:18] *} + +/// note + +Before FastAPI 0.108.0, Starlette 0.29.0, the `name` was the first parameter. + +Also, before that, in previous versions, the `request` object was passed as part of the key-value pairs in the context for Jinja2. + +/// + +/// tip + +By declaring `response_class=HTMLResponse` the docs UI will be able to know that the response will be HTML. + +/// + +/// note | Technical Details + +You could also use `from starlette.templating import Jinja2Templates`. + +**FastAPI** provides the same `starlette.templating` as `fastapi.templating` just as a convenience for you, the developer. But most of the available responses come directly from Starlette. The same with `Request` and `StaticFiles`. + +/// + +## Writing templates { #writing-templates } + +Then you can write a template at `templates/item.html` with, for example: + +```jinja hl_lines="7" +{!../../docs_src/templates/templates/item.html!} +``` + +### Template Context Values { #template-context-values } + +In the HTML that contains: + +{% raw %} + +```jinja +Item ID: {{ id }} +``` + +{% endraw %} + +...it will show the `id` taken from the "context" `dict` you passed: + +```Python +{"id": id} +``` + +For example, with an ID of `42`, this would render: + +```html +Item ID: 42 +``` + +### Template `url_for` Arguments { #template-url-for-arguments } + +You can also use `url_for()` inside of the template, it takes as arguments the same arguments that would be used by your *path operation function*. + +So, the section with: + +{% raw %} + +```jinja + +``` + +{% endraw %} + +...will generate a link to the same URL that would be handled by the *path operation function* `read_item(id=id)`. + +For example, with an ID of `42`, this would render: + +```html + +``` + +## Templates and static files { #templates-and-static-files } + +You can also use `url_for()` inside of the template, and use it, for example, with the `StaticFiles` you mounted with the `name="static"`. + +```jinja hl_lines="4" +{!../../docs_src/templates/templates/item.html!} +``` + +In this example, it would link to a CSS file at `static/styles.css` with: + +```CSS hl_lines="4" +{!../../docs_src/templates/static/styles.css!} +``` + +And because you are using `StaticFiles`, that CSS file would be served automatically by your **FastAPI** application at the URL `/static/styles.css`. + +## More details { #more-details } + +For more details, including how to test templates, check Starlette's docs on templates. diff --git a/docs/en/docs/advanced/testing-dependencies.md b/docs/en/docs/advanced/testing-dependencies.md new file mode 100644 index 0000000..b52b47c --- /dev/null +++ b/docs/en/docs/advanced/testing-dependencies.md @@ -0,0 +1,53 @@ +# Testing Dependencies with Overrides { #testing-dependencies-with-overrides } + +## Overriding dependencies during testing { #overriding-dependencies-during-testing } + +There are some scenarios where you might want to override a dependency during testing. + +You don't want the original dependency to run (nor any of the sub-dependencies it might have). + +Instead, you want to provide a different dependency that will be used only during tests (possibly only some specific tests), and will provide a value that can be used where the value of the original dependency was used. + +### Use cases: external service { #use-cases-external-service } + +An example could be that you have an external authentication provider that you need to call. + +You send it a token and it returns an authenticated user. + +This provider might be charging you per request, and calling it might take some extra time than if you had a fixed mock user for tests. + +You probably want to test the external provider once, but not necessarily call it for every test that runs. + +In this case, you can override the dependency that calls that provider, and use a custom dependency that returns a mock user, only for your tests. + +### Use the `app.dependency_overrides` attribute { #use-the-app-dependency-overrides-attribute } + +For these cases, your **FastAPI** application has an attribute `app.dependency_overrides`, it is a simple `dict`. + +To override a dependency for testing, you put as a key the original dependency (a function), and as the value, your dependency override (another function). + +And then **FastAPI** will call that override instead of the original dependency. + +{* ../../docs_src/dependency_testing/tutorial001_an_py310.py hl[26:27,30] *} + +/// tip + +You can set a dependency override for a dependency used anywhere in your **FastAPI** application. + +The original dependency could be used in a *path operation function*, a *path operation decorator* (when you don't use the return value), a `.include_router()` call, etc. + +FastAPI will still be able to override it. + +/// + +Then you can reset your overrides (remove them) by setting `app.dependency_overrides` to be an empty `dict`: + +```Python +app.dependency_overrides = {} +``` + +/// tip + +If you want to override a dependency only during some tests, you can set the override at the beginning of the test (inside the test function) and reset it at the end (at the end of the test function). + +/// diff --git a/docs/en/docs/advanced/testing-events.md b/docs/en/docs/advanced/testing-events.md new file mode 100644 index 0000000..dd93374 --- /dev/null +++ b/docs/en/docs/advanced/testing-events.md @@ -0,0 +1,12 @@ +# Testing Events: lifespan and startup - shutdown { #testing-events-lifespan-and-startup-shutdown } + +When you need `lifespan` to run in your tests, you can use the `TestClient` with a `with` statement: + +{* ../../docs_src/app_testing/tutorial004.py hl[9:15,18,27:28,30:32,41:43] *} + + +You can read more details about the ["Running lifespan in tests in the official Starlette documentation site."](https://www.starlette.dev/lifespan/#running-lifespan-in-tests) + +For the deprecated `startup` and `shutdown` events, you can use the `TestClient` as follows: + +{* ../../docs_src/app_testing/tutorial003.py hl[9:12,20:24] *} diff --git a/docs/en/docs/advanced/testing-websockets.md b/docs/en/docs/advanced/testing-websockets.md new file mode 100644 index 0000000..27eb2de --- /dev/null +++ b/docs/en/docs/advanced/testing-websockets.md @@ -0,0 +1,13 @@ +# Testing WebSockets { #testing-websockets } + +You can use the same `TestClient` to test WebSockets. + +For this, you use the `TestClient` in a `with` statement, connecting to the WebSocket: + +{* ../../docs_src/app_testing/tutorial002.py hl[27:31] *} + +/// note + +For more details, check Starlette's documentation for testing WebSockets. + +/// diff --git a/docs/en/docs/advanced/using-request-directly.md b/docs/en/docs/advanced/using-request-directly.md new file mode 100644 index 0000000..c71d3b0 --- /dev/null +++ b/docs/en/docs/advanced/using-request-directly.md @@ -0,0 +1,56 @@ +# Using the Request Directly { #using-the-request-directly } + +Up to now, you have been declaring the parts of the request that you need with their types. + +Taking data from: + +* The path as parameters. +* Headers. +* Cookies. +* etc. + +And by doing so, **FastAPI** is validating that data, converting it and generating documentation for your API automatically. + +But there are situations where you might need to access the `Request` object directly. + +## Details about the `Request` object { #details-about-the-request-object } + +As **FastAPI** is actually **Starlette** underneath, with a layer of several tools on top, you can use Starlette's `Request` object directly when you need to. + +It would also mean that if you get data from the `Request` object directly (for example, read the body) it won't be validated, converted or documented (with OpenAPI, for the automatic API user interface) by FastAPI. + +Although any other parameter declared normally (for example, the body with a Pydantic model) would still be validated, converted, annotated, etc. + +But there are specific cases where it's useful to get the `Request` object. + +## Use the `Request` object directly { #use-the-request-object-directly } + +Let's imagine you want to get the client's IP address/host inside of your *path operation function*. + +For that you need to access the request directly. + +{* ../../docs_src/using_request_directly/tutorial001.py hl[1,7:8] *} + +By declaring a *path operation function* parameter with the type being the `Request` **FastAPI** will know to pass the `Request` in that parameter. + +/// tip + +Note that in this case, we are declaring a path parameter beside the request parameter. + +So, the path parameter will be extracted, validated, converted to the specified type and annotated with OpenAPI. + +The same way, you can declare any other parameter as normally, and additionally, get the `Request` too. + +/// + +## `Request` documentation { #request-documentation } + +You can read more details about the `Request` object in the official Starlette documentation site. + +/// note | Technical Details + +You could also use `from starlette.requests import Request`. + +**FastAPI** provides it directly just as a convenience for you, the developer. But it comes directly from Starlette. + +/// diff --git a/docs/en/docs/advanced/websockets.md b/docs/en/docs/advanced/websockets.md new file mode 100644 index 0000000..ce11485 --- /dev/null +++ b/docs/en/docs/advanced/websockets.md @@ -0,0 +1,186 @@ +# WebSockets { #websockets } + +You can use WebSockets with **FastAPI**. + +## Install `websockets` { #install-websockets } + +Make sure you create a [virtual environment](../virtual-environments.md){.internal-link target=_blank}, activate it, and install `websockets` (a Python library that makes it easy to use the "WebSocket" protocol): + +
+ +```console +$ pip install websockets + +---> 100% +``` + +
+ +## WebSockets client { #websockets-client } + +### In production { #in-production } + +In your production system, you probably have a frontend created with a modern framework like React, Vue.js or Angular. + +And to communicate using WebSockets with your backend you would probably use your frontend's utilities. + +Or you might have a native mobile application that communicates with your WebSocket backend directly, in native code. + +Or you might have any other way to communicate with the WebSocket endpoint. + +--- + +But for this example, we'll use a very simple HTML document with some JavaScript, all inside a long string. + +This, of course, is not optimal and you wouldn't use it for production. + +In production you would have one of the options above. + +But it's the simplest way to focus on the server-side of WebSockets and have a working example: + +{* ../../docs_src/websockets/tutorial001.py hl[2,6:38,41:43] *} + +## Create a `websocket` { #create-a-websocket } + +In your **FastAPI** application, create a `websocket`: + +{* ../../docs_src/websockets/tutorial001.py hl[1,46:47] *} + +/// note | Technical Details + +You could also use `from starlette.websockets import WebSocket`. + +**FastAPI** provides the same `WebSocket` directly just as a convenience for you, the developer. But it comes directly from Starlette. + +/// + +## Await for messages and send messages { #await-for-messages-and-send-messages } + +In your WebSocket route you can `await` for messages and send messages. + +{* ../../docs_src/websockets/tutorial001.py hl[48:52] *} + +You can receive and send binary, text, and JSON data. + +## Try it { #try-it } + +If your file is named `main.py`, run your application with: + +
+ +```console +$ fastapi dev main.py + +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +``` + +
+ +Open your browser at http://127.0.0.1:8000. + +You will see a simple page like: + + + +You can type messages in the input box, and send them: + + + +And your **FastAPI** application with WebSockets will respond back: + + + +You can send (and receive) many messages: + + + +And all of them will use the same WebSocket connection. + +## Using `Depends` and others { #using-depends-and-others } + +In WebSocket endpoints you can import from `fastapi` and use: + +* `Depends` +* `Security` +* `Cookie` +* `Header` +* `Path` +* `Query` + +They work the same way as for other FastAPI endpoints/*path operations*: + +{* ../../docs_src/websockets/tutorial002_an_py310.py hl[68:69,82] *} + +/// info + +As this is a WebSocket it doesn't really make sense to raise an `HTTPException`, instead we raise a `WebSocketException`. + +You can use a closing code from the valid codes defined in the specification. + +/// + +### Try the WebSockets with dependencies { #try-the-websockets-with-dependencies } + +If your file is named `main.py`, run your application with: + +
+ +```console +$ fastapi dev main.py + +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +``` + +
+ +Open your browser at http://127.0.0.1:8000. + +There you can set: + +* The "Item ID", used in the path. +* The "Token" used as a query parameter. + +/// tip + +Notice that the query `token` will be handled by a dependency. + +/// + +With that you can connect the WebSocket and then send and receive messages: + + + +## Handling disconnections and multiple clients { #handling-disconnections-and-multiple-clients } + +When a WebSocket connection is closed, the `await websocket.receive_text()` will raise a `WebSocketDisconnect` exception, which you can then catch and handle like in this example. + +{* ../../docs_src/websockets/tutorial003_py39.py hl[79:81] *} + +To try it out: + +* Open the app with several browser tabs. +* Write messages from them. +* Then close one of the tabs. + +That will raise the `WebSocketDisconnect` exception, and all the other clients will receive a message like: + +``` +Client #1596980209979 left the chat +``` + +/// tip + +The app above is a minimal and simple example to demonstrate how to handle and broadcast messages to several WebSocket connections. + +But keep in mind that, as everything is handled in memory, in a single list, it will only work while the process is running, and will only work with a single process. + +If you need something easy to integrate with FastAPI but that is more robust, supported by Redis, PostgreSQL or others, check encode/broadcaster. + +/// + +## More info { #more-info } + +To learn more about the options, check Starlette's documentation for: + +* The `WebSocket` class. +* Class-based WebSocket handling. diff --git a/docs/en/docs/advanced/wsgi.md b/docs/en/docs/advanced/wsgi.md new file mode 100644 index 0000000..29fd2d3 --- /dev/null +++ b/docs/en/docs/advanced/wsgi.md @@ -0,0 +1,35 @@ +# Including WSGI - Flask, Django, others { #including-wsgi-flask-django-others } + +You can mount WSGI applications as you saw with [Sub Applications - Mounts](sub-applications.md){.internal-link target=_blank}, [Behind a Proxy](behind-a-proxy.md){.internal-link target=_blank}. + +For that, you can use the `WSGIMiddleware` and use it to wrap your WSGI application, for example, Flask, Django, etc. + +## Using `WSGIMiddleware` { #using-wsgimiddleware } + +You need to import `WSGIMiddleware`. + +Then wrap the WSGI (e.g. Flask) app with the middleware. + +And then mount that under a path. + +{* ../../docs_src/wsgi/tutorial001.py hl[2:3,3] *} + +## Check it { #check-it } + +Now, every request under the path `/v1/` will be handled by the Flask application. + +And the rest will be handled by **FastAPI**. + +If you run it and go to http://localhost:8000/v1/ you will see the response from Flask: + +```txt +Hello, World from Flask! +``` + +And if you go to http://localhost:8000/v2 you will see the response from FastAPI: + +```JSON +{ + "message": "Hello World" +} +``` diff --git a/docs/en/docs/alternatives.md b/docs/en/docs/alternatives.md new file mode 100644 index 0000000..e656815 --- /dev/null +++ b/docs/en/docs/alternatives.md @@ -0,0 +1,485 @@ +# Alternatives, Inspiration and Comparisons { #alternatives-inspiration-and-comparisons } + +What inspired **FastAPI**, how it compares to alternatives and what it learned from them. + +## Intro { #intro } + +**FastAPI** wouldn't exist if not for the previous work of others. + +There have been many tools created before that have helped inspire its creation. + +I have been avoiding the creation of a new framework for several years. First I tried to solve all the features covered by **FastAPI** using many different frameworks, plug-ins, and tools. + +But at some point, there was no other option than creating something that provided all these features, taking the best ideas from previous tools, and combining them in the best way possible, using language features that weren't even available before (Python 3.6+ type hints). + +## Previous tools { #previous-tools } + +### Django { #django } + +It's the most popular Python framework and is widely trusted. It is used to build systems like Instagram. + +It's relatively tightly coupled with relational databases (like MySQL or PostgreSQL), so, having a NoSQL database (like Couchbase, MongoDB, Cassandra, etc) as the main store engine is not very easy. + +It was created to generate the HTML in the backend, not to create APIs used by a modern frontend (like React, Vue.js and Angular) or by other systems (like IoT devices) communicating with it. + +### Django REST Framework { #django-rest-framework } + +Django REST framework was created to be a flexible toolkit for building Web APIs using Django underneath, to improve its API capabilities. + +It is used by many companies including Mozilla, Red Hat and Eventbrite. + +It was one of the first examples of **automatic API documentation**, and this was specifically one of the first ideas that inspired "the search for" **FastAPI**. + +/// note + +Django REST Framework was created by Tom Christie. The same creator of Starlette and Uvicorn, on which **FastAPI** is based. + +/// + +/// check | Inspired **FastAPI** to + +Have an automatic API documentation web user interface. + +/// + +### Flask { #flask } + +Flask is a "microframework", it doesn't include database integrations nor many of the things that come by default in Django. + +This simplicity and flexibility allow doing things like using NoSQL databases as the main data storage system. + +As it is very simple, it's relatively intuitive to learn, although the documentation gets somewhat technical at some points. + +It is also commonly used for other applications that don't necessarily need a database, user management, or any of the many features that come pre-built in Django. Although many of these features can be added with plug-ins. + +This decoupling of parts, and being a "microframework" that could be extended to cover exactly what is needed was a key feature that I wanted to keep. + +Given the simplicity of Flask, it seemed like a good match for building APIs. The next thing to find was a "Django REST Framework" for Flask. + +/// check | Inspired **FastAPI** to + +Be a micro-framework. Making it easy to mix and match the tools and parts needed. + +Have a simple and easy to use routing system. + +/// + +### Requests { #requests } + +**FastAPI** is not actually an alternative to **Requests**. Their scope is very different. + +It would actually be common to use Requests *inside* of a FastAPI application. + +But still, FastAPI got quite some inspiration from Requests. + +**Requests** is a library to *interact* with APIs (as a client), while **FastAPI** is a library to *build* APIs (as a server). + +They are, more or less, at opposite ends, complementing each other. + +Requests has a very simple and intuitive design, it's very easy to use, with sensible defaults. But at the same time, it's very powerful and customizable. + +That's why, as said in the official website: + +> Requests is one of the most downloaded Python packages of all time + +The way you use it is very simple. For example, to do a `GET` request, you would write: + +```Python +response = requests.get("http://example.com/some/url") +``` + +The FastAPI counterpart API *path operation* could look like: + +```Python hl_lines="1" +@app.get("/some/url") +def read_url(): + return {"message": "Hello World"} +``` + +See the similarities in `requests.get(...)` and `@app.get(...)`. + +/// check | Inspired **FastAPI** to + +* Have a simple and intuitive API. +* Use HTTP method names (operations) directly, in a straightforward and intuitive way. +* Have sensible defaults, but powerful customizations. + +/// + +### Swagger / OpenAPI { #swagger-openapi } + +The main feature I wanted from Django REST Framework was the automatic API documentation. + +Then I found that there was a standard to document APIs, using JSON (or YAML, an extension of JSON) called Swagger. + +And there was a web user interface for Swagger APIs already created. So, being able to generate Swagger documentation for an API would allow using this web user interface automatically. + +At some point, Swagger was given to the Linux Foundation, to be renamed OpenAPI. + +That's why when talking about version 2.0 it's common to say "Swagger", and for version 3+ "OpenAPI". + +/// check | Inspired **FastAPI** to + +Adopt and use an open standard for API specifications, instead of a custom schema. + +And integrate standards-based user interface tools: + +* Swagger UI +* ReDoc + +These two were chosen for being fairly popular and stable, but doing a quick search, you could find dozens of alternative user interfaces for OpenAPI (that you can use with **FastAPI**). + +/// + +### Flask REST frameworks { #flask-rest-frameworks } + +There are several Flask REST frameworks, but after investing the time and work into investigating them, I found that many are discontinued or abandoned, with several standing issues that made them unfit. + +### Marshmallow { #marshmallow } + +One of the main features needed by API systems is data "serialization" which is taking data from the code (Python) and converting it into something that can be sent through the network. For example, converting an object containing data from a database into a JSON object. Converting `datetime` objects into strings, etc. + +Another big feature needed by APIs is data validation, making sure that the data is valid, given certain parameters. For example, that some field is an `int`, and not some random string. This is especially useful for incoming data. + +Without a data validation system, you would have to do all the checks by hand, in code. + +These features are what Marshmallow was built to provide. It is a great library, and I have used it a lot before. + +But it was created before there existed Python type hints. So, to define every schema you need to use specific utils and classes provided by Marshmallow. + +/// check | Inspired **FastAPI** to + +Use code to define "schemas" that provide data types and validation, automatically. + +/// + +### Webargs { #webargs } + +Another big feature required by APIs is parsing data from incoming requests. + +Webargs is a tool that was made to provide that on top of several frameworks, including Flask. + +It uses Marshmallow underneath to do the data validation. And it was created by the same developers. + +It's a great tool and I have used it a lot too, before having **FastAPI**. + +/// info + +Webargs was created by the same Marshmallow developers. + +/// + +/// check | Inspired **FastAPI** to + +Have automatic validation of incoming request data. + +/// + +### APISpec { #apispec } + +Marshmallow and Webargs provide validation, parsing and serialization as plug-ins. + +But documentation is still missing. Then APISpec was created. + +It is a plug-in for many frameworks (and there's a plug-in for Starlette too). + +The way it works is that you write the definition of the schema using YAML format inside the docstring of each function handling a route. + +And it generates OpenAPI schemas. + +That's how it works in Flask, Starlette, Responder, etc. + +But then, we have again the problem of having a micro-syntax, inside of a Python string (a big YAML). + +The editor can't help much with that. And if we modify parameters or Marshmallow schemas and forget to also modify that YAML docstring, the generated schema would be obsolete. + +/// info + +APISpec was created by the same Marshmallow developers. + +/// + +/// check | Inspired **FastAPI** to + +Support the open standard for APIs, OpenAPI. + +/// + +### Flask-apispec { #flask-apispec } + +It's a Flask plug-in, that ties together Webargs, Marshmallow and APISpec. + +It uses the information from Webargs and Marshmallow to automatically generate OpenAPI schemas, using APISpec. + +It's a great tool, very underrated. It should be way more popular than many Flask plug-ins out there. It might be due to its documentation being too concise and abstract. + +This solved having to write YAML (another syntax) inside of Python docstrings. + +This combination of Flask, Flask-apispec with Marshmallow and Webargs was my favorite backend stack until building **FastAPI**. + +Using it led to the creation of several Flask full-stack generators. These are the main stacks I (and several external teams) have been using up to now: + +* https://github.com/tiangolo/full-stack +* https://github.com/tiangolo/full-stack-flask-couchbase +* https://github.com/tiangolo/full-stack-flask-couchdb + +And these same full-stack generators were the base of the [**FastAPI** Project Generators](project-generation.md){.internal-link target=_blank}. + +/// info + +Flask-apispec was created by the same Marshmallow developers. + +/// + +/// check | Inspired **FastAPI** to + +Generate the OpenAPI schema automatically, from the same code that defines serialization and validation. + +/// + +### NestJS (and Angular) { #nestjs-and-angular } + +This isn't even Python, NestJS is a JavaScript (TypeScript) NodeJS framework inspired by Angular. + +It achieves something somewhat similar to what can be done with Flask-apispec. + +It has an integrated dependency injection system, inspired by Angular 2. It requires pre-registering the "injectables" (like all the other dependency injection systems I know), so, it adds to the verbosity and code repetition. + +As the parameters are described with TypeScript types (similar to Python type hints), editor support is quite good. + +But as TypeScript data is not preserved after compilation to JavaScript, it cannot rely on the types to define validation, serialization and documentation at the same time. Due to this and some design decisions, to get validation, serialization and automatic schema generation, it's needed to add decorators in many places. So, it becomes quite verbose. + +It can't handle nested models very well. So, if the JSON body in the request is a JSON object that has inner fields that in turn are nested JSON objects, it cannot be properly documented and validated. + +/// check | Inspired **FastAPI** to + +Use Python types to have great editor support. + +Have a powerful dependency injection system. Find a way to minimize code repetition. + +/// + +### Sanic { #sanic } + +It was one of the first extremely fast Python frameworks based on `asyncio`. It was made to be very similar to Flask. + +/// note | Technical Details + +It used `uvloop` instead of the default Python `asyncio` loop. That's what made it so fast. + +It clearly inspired Uvicorn and Starlette, that are currently faster than Sanic in open benchmarks. + +/// + +/// check | Inspired **FastAPI** to + +Find a way to have a crazy performance. + +That's why **FastAPI** is based on Starlette, as it is the fastest framework available (tested by third-party benchmarks). + +/// + +### Falcon { #falcon } + +Falcon is another high performance Python framework, it is designed to be minimal, and work as the foundation of other frameworks like Hug. + +It is designed to have functions that receive two parameters, one "request" and one "response". Then you "read" parts from the request, and "write" parts to the response. Because of this design, it is not possible to declare request parameters and bodies with standard Python type hints as function parameters. + +So, data validation, serialization, and documentation, have to be done in code, not automatically. Or they have to be implemented as a framework on top of Falcon, like Hug. This same distinction happens in other frameworks that are inspired by Falcon's design, of having one request object and one response object as parameters. + +/// check | Inspired **FastAPI** to + +Find ways to get great performance. + +Along with Hug (as Hug is based on Falcon) inspired **FastAPI** to declare a `response` parameter in functions. + +Although in FastAPI it's optional, and is used mainly to set headers, cookies, and alternative status codes. + +/// + +### Molten { #molten } + +I discovered Molten in the first stages of building **FastAPI**. And it has quite similar ideas: + +* Based on Python type hints. +* Validation and documentation from these types. +* Dependency Injection system. + +It doesn't use a data validation, serialization and documentation third-party library like Pydantic, it has its own. So, these data type definitions would not be reusable as easily. + +It requires a little bit more verbose configurations. And as it is based on WSGI (instead of ASGI), it is not designed to take advantage of the high performance provided by tools like Uvicorn, Starlette and Sanic. + +The dependency injection system requires pre-registration of the dependencies and the dependencies are solved based on the declared types. So, it's not possible to declare more than one "component" that provides a certain type. + +Routes are declared in a single place, using functions declared in other places (instead of using decorators that can be placed right on top of the function that handles the endpoint). This is closer to how Django does it than to how Flask (and Starlette) does it. It separates in the code things that are relatively tightly coupled. + +/// check | Inspired **FastAPI** to + +Define extra validations for data types using the "default" value of model attributes. This improves editor support, and it was not available in Pydantic before. + +This actually inspired updating parts of Pydantic, to support the same validation declaration style (all this functionality is now already available in Pydantic). + +/// + +### Hug { #hug } + +Hug was one of the first frameworks to implement the declaration of API parameter types using Python type hints. This was a great idea that inspired other tools to do the same. + +It used custom types in its declarations instead of standard Python types, but it was still a huge step forward. + +It also was one of the first frameworks to generate a custom schema declaring the whole API in JSON. + +It was not based on a standard like OpenAPI and JSON Schema. So it wouldn't be straightforward to integrate it with other tools, like Swagger UI. But again, it was a very innovative idea. + +It has an interesting, uncommon feature: using the same framework, it's possible to create APIs and also CLIs. + +As it is based on the previous standard for synchronous Python web frameworks (WSGI), it can't handle Websockets and other things, although it still has high performance too. + +/// info + +Hug was created by Timothy Crosley, the same creator of `isort`, a great tool to automatically sort imports in Python files. + +/// + +/// check | Ideas inspiring **FastAPI** + +Hug inspired parts of APIStar, and was one of the tools I found most promising, alongside APIStar. + +Hug helped inspiring **FastAPI** to use Python type hints to declare parameters, and to generate a schema defining the API automatically. + +Hug inspired **FastAPI** to declare a `response` parameter in functions to set headers and cookies. + +/// + +### APIStar (<= 0.5) { #apistar-0-5 } + +Right before deciding to build **FastAPI** I found **APIStar** server. It had almost everything I was looking for and had a great design. + +It was one of the first implementations of a framework using Python type hints to declare parameters and requests that I ever saw (before NestJS and Molten). I found it more or less at the same time as Hug. But APIStar used the OpenAPI standard. + +It had automatic data validation, data serialization and OpenAPI schema generation based on the same type hints in several places. + +Body schema definitions didn't use the same Python type hints like Pydantic, it was a bit more similar to Marshmallow, so, editor support wouldn't be as good, but still, APIStar was the best available option. + +It had the best performance benchmarks at the time (only surpassed by Starlette). + +At first, it didn't have an automatic API documentation web UI, but I knew I could add Swagger UI to it. + +It had a dependency injection system. It required pre-registration of components, as other tools discussed above. But still, it was a great feature. + +I was never able to use it in a full project, as it didn't have security integration, so, I couldn't replace all the features I was having with the full-stack generators based on Flask-apispec. I had in my backlog of projects to create a pull request adding that functionality. + +But then, the project's focus shifted. + +It was no longer an API web framework, as the creator needed to focus on Starlette. + +Now APIStar is a set of tools to validate OpenAPI specifications, not a web framework. + +/// info + +APIStar was created by Tom Christie. The same guy that created: + +* Django REST Framework +* Starlette (in which **FastAPI** is based) +* Uvicorn (used by Starlette and **FastAPI**) + +/// + +/// check | Inspired **FastAPI** to + +Exist. + +The idea of declaring multiple things (data validation, serialization and documentation) with the same Python types, that at the same time provided great editor support, was something I considered a brilliant idea. + +And after searching for a long time for a similar framework and testing many different alternatives, APIStar was the best option available. + +Then APIStar stopped to exist as a server and Starlette was created, and was a new better foundation for such a system. That was the final inspiration to build **FastAPI**. + +I consider **FastAPI** a "spiritual successor" to APIStar, while improving and increasing the features, typing system, and other parts, based on the learnings from all these previous tools. + +/// + +## Used by **FastAPI** { #used-by-fastapi } + +### Pydantic { #pydantic } + +Pydantic is a library to define data validation, serialization and documentation (using JSON Schema) based on Python type hints. + +That makes it extremely intuitive. + +It is comparable to Marshmallow. Although it's faster than Marshmallow in benchmarks. And as it is based on the same Python type hints, the editor support is great. + +/// check | **FastAPI** uses it to + +Handle all the data validation, data serialization and automatic model documentation (based on JSON Schema). + +**FastAPI** then takes that JSON Schema data and puts it in OpenAPI, apart from all the other things it does. + +/// + +### Starlette { #starlette } + +Starlette is a lightweight ASGI framework/toolkit, which is ideal for building high-performance asyncio services. + +It is very simple and intuitive. It's designed to be easily extensible, and have modular components. + +It has: + +* Seriously impressive performance. +* WebSocket support. +* In-process background tasks. +* Startup and shutdown events. +* Test client built on HTTPX. +* CORS, GZip, Static Files, Streaming responses. +* Session and Cookie support. +* 100% test coverage. +* 100% type annotated codebase. +* Few hard dependencies. + +Starlette is currently the fastest Python framework tested. Only surpassed by Uvicorn, which is not a framework, but a server. + +Starlette provides all the basic web microframework functionality. + +But it doesn't provide automatic data validation, serialization or documentation. + +That's one of the main things that **FastAPI** adds on top, all based on Python type hints (using Pydantic). That, plus the dependency injection system, security utilities, OpenAPI schema generation, etc. + +/// note | Technical Details + +ASGI is a new "standard" being developed by Django core team members. It is still not a "Python standard" (a PEP), although they are in the process of doing that. + +Nevertheless, it is already being used as a "standard" by several tools. This greatly improves interoperability, as you could switch Uvicorn for any other ASGI server (like Daphne or Hypercorn), or you could add ASGI compatible tools, like `python-socketio`. + +/// + +/// check | **FastAPI** uses it to + +Handle all the core web parts. Adding features on top. + +The class `FastAPI` itself inherits directly from the class `Starlette`. + +So, anything that you can do with Starlette, you can do it directly with **FastAPI**, as it is basically Starlette on steroids. + +/// + +### Uvicorn { #uvicorn } + +Uvicorn is a lightning-fast ASGI server, built on uvloop and httptools. + +It is not a web framework, but a server. For example, it doesn't provide tools for routing by paths. That's something that a framework like Starlette (or **FastAPI**) would provide on top. + +It is the recommended server for Starlette and **FastAPI**. + +/// check | **FastAPI** recommends it as + +The main web server to run **FastAPI** applications. + +You can also use the `--workers` command line option to have an asynchronous multi-process server. + +Check more details in the [Deployment](deployment/index.md){.internal-link target=_blank} section. + +/// + +## Benchmarks and speed { #benchmarks-and-speed } + +To understand, compare, and see the difference between Uvicorn, Starlette and FastAPI, check the section about [Benchmarks](benchmarks.md){.internal-link target=_blank}. diff --git a/docs/en/docs/async.md b/docs/en/docs/async.md new file mode 100644 index 0000000..eac473b --- /dev/null +++ b/docs/en/docs/async.md @@ -0,0 +1,444 @@ +# Concurrency and async / await { #concurrency-and-async-await } + +Details about the `async def` syntax for *path operation functions* and some background about asynchronous code, concurrency, and parallelism. + +## In a hurry? { #in-a-hurry } + +TL;DR: + +If you are using third party libraries that tell you to call them with `await`, like: + +```Python +results = await some_library() +``` + +Then, declare your *path operation functions* with `async def` like: + +```Python hl_lines="2" +@app.get('/') +async def read_results(): + results = await some_library() + return results +``` + +/// note + +You can only use `await` inside of functions created with `async def`. + +/// + +--- + +If you are using a third party library that communicates with something (a database, an API, the file system, etc.) and doesn't have support for using `await`, (this is currently the case for most database libraries), then declare your *path operation functions* as normally, with just `def`, like: + +```Python hl_lines="2" +@app.get('/') +def results(): + results = some_library() + return results +``` + +--- + +If your application (somehow) doesn't have to communicate with anything else and wait for it to respond, use `async def`, even if you don't need to use `await` inside. + +--- + +If you just don't know, use normal `def`. + +--- + +**Note**: You can mix `def` and `async def` in your *path operation functions* as much as you need and define each one using the best option for you. FastAPI will do the right thing with them. + +Anyway, in any of the cases above, FastAPI will still work asynchronously and be extremely fast. + +But by following the steps above, it will be able to do some performance optimizations. + +## Technical Details { #technical-details } + +Modern versions of Python have support for **"asynchronous code"** using something called **"coroutines"**, with **`async` and `await`** syntax. + +Let's see that phrase by parts in the sections below: + +* **Asynchronous Code** +* **`async` and `await`** +* **Coroutines** + +## Asynchronous Code { #asynchronous-code } + +Asynchronous code just means that the language 💬 has a way to tell the computer / program 🤖 that at some point in the code, it 🤖 will have to wait for *something else* to finish somewhere else. Let's say that *something else* is called "slow-file" 📝. + +So, during that time, the computer can go and do some other work, while "slow-file" 📝 finishes. + +Then the computer / program 🤖 will come back every time it has a chance because it's waiting again, or whenever it 🤖 finished all the work it had at that point. And it 🤖 will see if any of the tasks it was waiting for have already finished, doing whatever it had to do. + +Next, it 🤖 takes the first task to finish (let's say, our "slow-file" 📝) and continues whatever it had to do with it. + +That "wait for something else" normally refers to I/O operations that are relatively "slow" (compared to the speed of the processor and the RAM memory), like waiting for: + +* the data from the client to be sent through the network +* the data sent by your program to be received by the client through the network +* the contents of a file in the disk to be read by the system and given to your program +* the contents your program gave to the system to be written to disk +* a remote API operation +* a database operation to finish +* a database query to return the results +* etc. + +As the execution time is consumed mostly by waiting for I/O operations, they call them "I/O bound" operations. + +It's called "asynchronous" because the computer / program doesn't have to be "synchronized" with the slow task, waiting for the exact moment that the task finishes, while doing nothing, to be able to take the task result and continue the work. + +Instead of that, by being an "asynchronous" system, once finished, the task can wait in line a little bit (some microseconds) for the computer / program to finish whatever it went to do, and then come back to take the results and continue working with them. + +For "synchronous" (contrary to "asynchronous") they commonly also use the term "sequential", because the computer / program follows all the steps in sequence before switching to a different task, even if those steps involve waiting. + +### Concurrency and Burgers { #concurrency-and-burgers } + +This idea of **asynchronous** code described above is also sometimes called **"concurrency"**. It is different from **"parallelism"**. + +**Concurrency** and **parallelism** both relate to "different things happening more or less at the same time". + +But the details between *concurrency* and *parallelism* are quite different. + +To see the difference, imagine the following story about burgers: + +### Concurrent Burgers { #concurrent-burgers } + +You go with your crush to get fast food, you stand in line while the cashier takes the orders from the people in front of you. 😍 + + + +Then it's your turn, you place your order of 2 very fancy burgers for your crush and you. 🍔🍔 + + + +The cashier says something to the cook in the kitchen so they know they have to prepare your burgers (even though they are currently preparing the ones for the previous clients). + + + +You pay. 💸 + +The cashier gives you the number of your turn. + + + +While you are waiting, you go with your crush and pick a table, you sit and talk with your crush for a long time (as your burgers are very fancy and take some time to prepare). + +As you are sitting at the table with your crush, while you wait for the burgers, you can spend that time admiring how awesome, cute and smart your crush is ✨😍✨. + + + +While waiting and talking to your crush, from time to time, you check the number displayed on the counter to see if it's your turn already. + +Then at some point, it finally is your turn. You go to the counter, get your burgers and come back to the table. + + + +You and your crush eat the burgers and have a nice time. ✨ + + + +/// info + +Beautiful illustrations by Ketrina Thompson. 🎨 + +/// + +--- + +Imagine you are the computer / program 🤖 in that story. + +While you are at the line, you are just idle 😴, waiting for your turn, not doing anything very "productive". But the line is fast because the cashier is only taking the orders (not preparing them), so that's fine. + +Then, when it's your turn, you do actual "productive" work, you process the menu, decide what you want, get your crush's choice, pay, check that you give the correct bill or card, check that you are charged correctly, check that the order has the correct items, etc. + +But then, even though you still don't have your burgers, your work with the cashier is "on pause" ⏸, because you have to wait 🕙 for your burgers to be ready. + +But as you go away from the counter and sit at the table with a number for your turn, you can switch 🔀 your attention to your crush, and "work" ⏯ 🤓 on that. Then you are again doing something very "productive" as is flirting with your crush 😍. + +Then the cashier 💁 says "I'm finished with doing the burgers" by putting your number on the counter's display, but you don't jump like crazy immediately when the displayed number changes to your turn number. You know no one will steal your burgers because you have the number of your turn, and they have theirs. + +So you wait for your crush to finish the story (finish the current work ⏯ / task being processed 🤓), smile gently and say that you are going for the burgers ⏸. + +Then you go to the counter 🔀, to the initial task that is now finished ⏯, pick the burgers, say thanks and take them to the table. That finishes that step / task of interaction with the counter ⏹. That in turn, creates a new task, of "eating burgers" 🔀 ⏯, but the previous one of "getting burgers" is finished ⏹. + +### Parallel Burgers { #parallel-burgers } + +Now let's imagine these aren't "Concurrent Burgers", but "Parallel Burgers". + +You go with your crush to get parallel fast food. + +You stand in line while several (let's say 8) cashiers that at the same time are cooks take the orders from the people in front of you. + +Everyone before you is waiting for their burgers to be ready before leaving the counter because each of the 8 cashiers goes and prepares the burger right away before getting the next order. + + + +Then it's finally your turn, you place your order of 2 very fancy burgers for your crush and you. + +You pay 💸. + + + +The cashier goes to the kitchen. + +You wait, standing in front of the counter 🕙, so that no one else takes your burgers before you do, as there are no numbers for turns. + + + +As you and your crush are busy not letting anyone get in front of you and take your burgers whenever they arrive, you cannot pay attention to your crush. 😞 + +This is "synchronous" work, you are "synchronized" with the cashier/cook 👨‍🍳. You have to wait 🕙 and be there at the exact moment that the cashier/cook 👨‍🍳 finishes the burgers and gives them to you, or otherwise, someone else might take them. + + + +Then your cashier/cook 👨‍🍳 finally comes back with your burgers, after a long time waiting 🕙 there in front of the counter. + + + +You take your burgers and go to the table with your crush. + +You just eat them, and you are done. ⏹ + + + +There was not much talk or flirting as most of the time was spent waiting 🕙 in front of the counter. 😞 + +/// info + +Beautiful illustrations by Ketrina Thompson. 🎨 + +/// + +--- + +In this scenario of the parallel burgers, you are a computer / program 🤖 with two processors (you and your crush), both waiting 🕙 and dedicating their attention ⏯ to be "waiting on the counter" 🕙 for a long time. + +The fast food store has 8 processors (cashiers/cooks). While the concurrent burgers store might have had only 2 (one cashier and one cook). + +But still, the final experience is not the best. 😞 + +--- + +This would be the parallel equivalent story for burgers. 🍔 + +For a more "real life" example of this, imagine a bank. + +Up to recently, most of the banks had multiple cashiers 👨‍💼👨‍💼👨‍💼👨‍💼 and a big line 🕙🕙🕙🕙🕙🕙🕙🕙. + +All of the cashiers doing all the work with one client after the other 👨‍💼⏯. + +And you have to wait 🕙 in the line for a long time or you lose your turn. + +You probably wouldn't want to take your crush 😍 with you to run errands at the bank 🏦. + +### Burger Conclusion { #burger-conclusion } + +In this scenario of "fast food burgers with your crush", as there is a lot of waiting 🕙, it makes a lot more sense to have a concurrent system ⏸🔀⏯. + +This is the case for most of the web applications. + +Many, many users, but your server is waiting 🕙 for their not-so-good connection to send their requests. + +And then waiting 🕙 again for the responses to come back. + +This "waiting" 🕙 is measured in microseconds, but still, summing it all, it's a lot of waiting in the end. + +That's why it makes a lot of sense to use asynchronous ⏸🔀⏯ code for web APIs. + +This kind of asynchronicity is what made NodeJS popular (even though NodeJS is not parallel) and that's the strength of Go as a programming language. + +And that's the same level of performance you get with **FastAPI**. + +And as you can have parallelism and asynchronicity at the same time, you get higher performance than most of the tested NodeJS frameworks and on par with Go, which is a compiled language closer to C (all thanks to Starlette). + +### Is concurrency better than parallelism? { #is-concurrency-better-than-parallelism } + +Nope! That's not the moral of the story. + +Concurrency is different than parallelism. And it is better on **specific** scenarios that involve a lot of waiting. Because of that, it generally is a lot better than parallelism for web application development. But not for everything. + +So, to balance that out, imagine the following short story: + +> You have to clean a big, dirty house. + +*Yep, that's the whole story*. + +--- + +There's no waiting 🕙 anywhere, just a lot of work to be done, on multiple places of the house. + +You could have turns as in the burgers example, first the living room, then the kitchen, but as you are not waiting 🕙 for anything, just cleaning and cleaning, the turns wouldn't affect anything. + +It would take the same amount of time to finish with or without turns (concurrency) and you would have done the same amount of work. + +But in this case, if you could bring the 8 ex-cashier/cooks/now-cleaners, and each one of them (plus you) could take a zone of the house to clean it, you could do all the work in **parallel**, with the extra help, and finish much sooner. + +In this scenario, each one of the cleaners (including you) would be a processor, doing their part of the job. + +And as most of the execution time is taken by actual work (instead of waiting), and the work in a computer is done by a CPU, they call these problems "CPU bound". + +--- + +Common examples of CPU bound operations are things that require complex math processing. + +For example: + +* **Audio** or **image processing**. +* **Computer vision**: an image is composed of millions of pixels, each pixel has 3 values / colors, processing that normally requires computing something on those pixels, all at the same time. +* **Machine Learning**: it normally requires lots of "matrix" and "vector" multiplications. Think of a huge spreadsheet with numbers and multiplying all of them together at the same time. +* **Deep Learning**: this is a sub-field of Machine Learning, so, the same applies. It's just that there is not a single spreadsheet of numbers to multiply, but a huge set of them, and in many cases, you use a special processor to build and / or use those models. + +### Concurrency + Parallelism: Web + Machine Learning { #concurrency-parallelism-web-machine-learning } + +With **FastAPI** you can take advantage of concurrency that is very common for web development (the same main attraction of NodeJS). + +But you can also exploit the benefits of parallelism and multiprocessing (having multiple processes running in parallel) for **CPU bound** workloads like those in Machine Learning systems. + +That, plus the simple fact that Python is the main language for **Data Science**, Machine Learning and especially Deep Learning, make FastAPI a very good match for Data Science / Machine Learning web APIs and applications (among many others). + +To see how to achieve this parallelism in production see the section about [Deployment](deployment/index.md){.internal-link target=_blank}. + +## `async` and `await` { #async-and-await } + +Modern versions of Python have a very intuitive way to define asynchronous code. This makes it look just like normal "sequential" code and do the "awaiting" for you at the right moments. + +When there is an operation that will require waiting before giving the results and has support for these new Python features, you can code it like: + +```Python +burgers = await get_burgers(2) +``` + +The key here is the `await`. It tells Python that it has to wait ⏸ for `get_burgers(2)` to finish doing its thing 🕙 before storing the results in `burgers`. With that, Python will know that it can go and do something else 🔀 ⏯ in the meanwhile (like receiving another request). + +For `await` to work, it has to be inside a function that supports this asynchronicity. To do that, you just declare it with `async def`: + +```Python hl_lines="1" +async def get_burgers(number: int): + # Do some asynchronous stuff to create the burgers + return burgers +``` + +...instead of `def`: + +```Python hl_lines="2" +# This is not asynchronous +def get_sequential_burgers(number: int): + # Do some sequential stuff to create the burgers + return burgers +``` + +With `async def`, Python knows that, inside that function, it has to be aware of `await` expressions, and that it can "pause" ⏸ the execution of that function and go do something else 🔀 before coming back. + +When you want to call an `async def` function, you have to "await" it. So, this won't work: + +```Python +# This won't work, because get_burgers was defined with: async def +burgers = get_burgers(2) +``` + +--- + +So, if you are using a library that tells you that you can call it with `await`, you need to create the *path operation functions* that uses it with `async def`, like in: + +```Python hl_lines="2-3" +@app.get('/burgers') +async def read_burgers(): + burgers = await get_burgers(2) + return burgers +``` + +### More technical details { #more-technical-details } + +You might have noticed that `await` can only be used inside of functions defined with `async def`. + +But at the same time, functions defined with `async def` have to be "awaited". So, functions with `async def` can only be called inside of functions defined with `async def` too. + +So, about the egg and the chicken, how do you call the first `async` function? + +If you are working with **FastAPI** you don't have to worry about that, because that "first" function will be your *path operation function*, and FastAPI will know how to do the right thing. + +But if you want to use `async` / `await` without FastAPI, you can do it as well. + +### Write your own async code { #write-your-own-async-code } + +Starlette (and **FastAPI**) are based on AnyIO, which makes it compatible with both Python's standard library asyncio and Trio. + +In particular, you can directly use AnyIO for your advanced concurrency use cases that require more advanced patterns in your own code. + +And even if you were not using FastAPI, you could also write your own async applications with AnyIO to be highly compatible and get its benefits (e.g. *structured concurrency*). + +I created another library on top of AnyIO, as a thin layer on top, to improve a bit the type annotations and get better **autocompletion**, **inline errors**, etc. It also has a friendly introduction and tutorial to help you **understand** and write **your own async code**: Asyncer. It would be particularly useful if you need to **combine async code with regular** (blocking/synchronous) code. + +### Other forms of asynchronous code { #other-forms-of-asynchronous-code } + +This style of using `async` and `await` is relatively new in the language. + +But it makes working with asynchronous code a lot easier. + +This same syntax (or almost identical) was also included recently in modern versions of JavaScript (in Browser and NodeJS). + +But before that, handling asynchronous code was quite more complex and difficult. + +In previous versions of Python, you could have used threads or Gevent. But the code is way more complex to understand, debug, and think about. + +In previous versions of NodeJS / Browser JavaScript, you would have used "callbacks". Which leads to "callback hell". + +## Coroutines { #coroutines } + +**Coroutine** is just the very fancy term for the thing returned by an `async def` function. Python knows that it is something like a function, that it can start and that it will end at some point, but that it might be paused ⏸ internally too, whenever there is an `await` inside of it. + +But all this functionality of using asynchronous code with `async` and `await` is many times summarized as using "coroutines". It is comparable to the main key feature of Go, the "Goroutines". + +## Conclusion { #conclusion } + +Let's see the same phrase from above: + +> Modern versions of Python have support for **"asynchronous code"** using something called **"coroutines"**, with **`async` and `await`** syntax. + +That should make more sense now. ✨ + +All that is what powers FastAPI (through Starlette) and what makes it have such an impressive performance. + +## Very Technical Details { #very-technical-details } + +/// warning + +You can probably skip this. + +These are very technical details of how **FastAPI** works underneath. + +If you have quite some technical knowledge (coroutines, threads, blocking, etc.) and are curious about how FastAPI handles `async def` vs normal `def`, go ahead. + +/// + +### Path operation functions { #path-operation-functions } + +When you declare a *path operation function* with normal `def` instead of `async def`, it is run in an external threadpool that is then awaited, instead of being called directly (as it would block the server). + +If you are coming from another async framework that does not work in the way described above and you are used to defining trivial compute-only *path operation functions* with plain `def` for a tiny performance gain (about 100 nanoseconds), please note that in **FastAPI** the effect would be quite opposite. In these cases, it's better to use `async def` unless your *path operation functions* use code that performs blocking I/O. + +Still, in both situations, chances are that **FastAPI** will [still be faster](index.md#performance){.internal-link target=_blank} than (or at least comparable to) your previous framework. + +### Dependencies { #dependencies } + +The same applies for [dependencies](tutorial/dependencies/index.md){.internal-link target=_blank}. If a dependency is a standard `def` function instead of `async def`, it is run in the external threadpool. + +### Sub-dependencies { #sub-dependencies } + +You can have multiple dependencies and [sub-dependencies](tutorial/dependencies/sub-dependencies.md){.internal-link target=_blank} requiring each other (as parameters of the function definitions), some of them might be created with `async def` and some with normal `def`. It would still work, and the ones created with normal `def` would be called on an external thread (from the threadpool) instead of being "awaited". + +### Other utility functions { #other-utility-functions } + +Any other utility function that you call directly can be created with normal `def` or `async def` and FastAPI won't affect the way you call it. + +This is in contrast to the functions that FastAPI calls for you: *path operation functions* and dependencies. + +If your utility function is a normal function with `def`, it will be called directly (as you write it in your code), not in a threadpool, if the function is created with `async def` then you should `await` for that function when you call it in your code. + +--- + +Again, these are very technical details that would probably be useful if you came searching for them. + +Otherwise, you should be good with the guidelines from the section above: In a hurry?. diff --git a/docs/en/docs/benchmarks.md b/docs/en/docs/benchmarks.md new file mode 100644 index 0000000..551f631 --- /dev/null +++ b/docs/en/docs/benchmarks.md @@ -0,0 +1,34 @@ +# Benchmarks { #benchmarks } + +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). + +But when checking benchmarks and comparisons you should keep the following in mind. + +## Benchmarks and speed { #benchmarks-and-speed } + +When you check the benchmarks, it is common to see several tools of different types compared as equivalent. + +Specifically, to see Uvicorn, Starlette and FastAPI compared together (among many other tools). + +The simpler the problem solved by the tool, the better performance it will get. And most of the benchmarks don't test the additional features provided by the tool. + +The hierarchy is like: + +* **Uvicorn**: an ASGI server + * **Starlette**: (uses Uvicorn) a web microframework + * **FastAPI**: (uses Starlette) an API microframework with several additional features for building APIs, with data validation, etc. + +* **Uvicorn**: + * Will have the best performance, as it doesn't have much extra code apart from the server itself. + * You wouldn't write an application in Uvicorn directly. That would mean that your code would have to include more or less, at least, all the code provided by Starlette (or **FastAPI**). And if you did that, your final application would have the same overhead as having used a framework and minimizing your app code and bugs. + * If you are comparing Uvicorn, compare it against Daphne, Hypercorn, uWSGI, etc. Application servers. +* **Starlette**: + * Will have the next best performance, after Uvicorn. In fact, Starlette uses Uvicorn to run. So, it probably can only get "slower" than Uvicorn by having to execute more code. + * But it provides you the tools to build simple web applications, with routing based on paths, etc. + * If you are comparing Starlette, compare it against Sanic, Flask, Django, etc. Web frameworks (or microframeworks). +* **FastAPI**: + * The same way that Starlette uses Uvicorn and cannot be faster than it, **FastAPI** uses Starlette, so it cannot be faster than it. + * FastAPI provides more features on top of Starlette. Features that you almost always need when building APIs, like data validation and serialization. And by using it, you get automatic documentation for free (the automatic documentation doesn't even add overhead to running applications, it is generated on startup). + * If you didn't use FastAPI and used Starlette directly (or another tool, like Sanic, Flask, Responder, etc) you would have to implement all the data validation and serialization yourself. So, your final application would still have the same overhead as if it was built using FastAPI. And in many cases, this data validation and serialization is the biggest amount of code written in applications. + * So, by using FastAPI you are saving development time, bugs, lines of code, and you would probably get the same performance (or better) you would if you didn't use it (as you would have to implement it all in your code). + * If you are comparing FastAPI, compare it against a web application framework (or set of tools) that provides data validation, serialization and documentation, like Flask-apispec, NestJS, Molten, etc. Frameworks with integrated automatic data validation, serialization and documentation. diff --git a/docs/en/docs/contributing.md b/docs/en/docs/contributing.md new file mode 100644 index 0000000..ae99059 --- /dev/null +++ b/docs/en/docs/contributing.md @@ -0,0 +1,452 @@ +# Development - Contributing + +First, you might want to see the basic ways to [help FastAPI and get help](help-fastapi.md){.internal-link target=_blank}. + +## Developing + +If you already cloned the fastapi repository and you want to deep dive in the code, here are some guidelines to set up your environment. + +### Virtual environment + +Follow the instructions to create and activate a [virtual environment](virtual-environments.md){.internal-link target=_blank} for the internal code of `fastapi`. + +### Install requirements + +After activating the environment, install the required packages: + +//// tab | `pip` + +
+ +```console +$ pip install -r requirements.txt + +---> 100% +``` + +
+ +//// + +//// tab | `uv` + +If you have `uv`: + +
+ +```console +$ uv pip install -r requirements.txt + +---> 100% +``` + +
+ +//// + +It will install all the dependencies and your local FastAPI in your local environment. + +### Using your local FastAPI + +If you create a Python file that imports and uses FastAPI, and run it with the Python from your local environment, it will use your cloned local FastAPI source code. + +And if you update that local FastAPI source code when you run that Python file again, it will use the fresh version of FastAPI you just edited. + +That way, you don't have to "install" your local version to be able to test every change. + +/// note | Technical Details + +This only happens when you install using this included `requirements.txt` instead of running `pip install fastapi` directly. + +That is because inside the `requirements.txt` file, the local version of FastAPI is marked to be installed in "editable" mode, with the `-e` option. + +/// + +### Format the code + +There is a script that you can run that will format and clean all your code: + +
+ +```console +$ bash scripts/format.sh +``` + +
+ +It will also auto-sort all your imports. + +## Tests + +There is a script that you can run locally to test all the code and generate coverage reports in HTML: + +
+ +```console +$ bash scripts/test-cov-html.sh +``` + +
+ +This command generates a directory `./htmlcov/`, if you open the file `./htmlcov/index.html` in your browser, you can explore interactively the regions of code that are covered by the tests, and notice if there is any region missing. + +## Docs + +First, make sure you set up your environment as described above, that will install all the requirements. + +### Docs live + +During local development, there is a script that builds the site and checks for any changes, live-reloading: + +
+ +```console +$ python ./scripts/docs.py live + +[INFO] Serving on http://127.0.0.1:8008 +[INFO] Start watching changes +[INFO] Start detecting changes +``` + +
+ +It will serve the documentation on `http://127.0.0.1:8008`. + +That way, you can edit the documentation/source files and see the changes live. + +/// tip + +Alternatively, you can perform the same steps that scripts does manually. + +Go into the language directory, for the main docs in English it's at `docs/en/`: + +```console +$ cd docs/en/ +``` + +Then run `mkdocs` in that directory: + +```console +$ mkdocs serve --dev-addr 127.0.0.1:8008 +``` + +/// + +#### Typer CLI (optional) + +The instructions here show you how to use the script at `./scripts/docs.py` with the `python` program directly. + +But you can also use Typer CLI, and you will get autocompletion in your terminal for the commands after installing completion. + +If you install Typer CLI, you can install completion with: + +
+ +```console +$ typer --install-completion + +zsh completion installed in /home/user/.bashrc. +Completion will take effect once you restart the terminal. +``` + +
+ +### Docs Structure + +The documentation uses MkDocs. + +And there are extra tools/scripts in place to handle translations in `./scripts/docs.py`. + +/// tip + +You don't need to see the code in `./scripts/docs.py`, you just use it in the command line. + +/// + +All the documentation is in Markdown format in the directory `./docs/en/`. + +Many of the tutorials have blocks of code. + +In most of the cases, these blocks of code are actual complete applications that can be run as is. + +In fact, those blocks of code are not written inside the Markdown, they are Python files in the `./docs_src/` directory. + +And those Python files are included/injected in the documentation when generating the site. + +### Docs for tests + +Most of the tests actually run against the example source files in the documentation. + +This helps to make sure that: + +* The documentation is up-to-date. +* The documentation examples can be run as is. +* Most of the features are covered by the documentation, ensured by test coverage. + +#### Apps and docs at the same time + +If you run the examples with, e.g.: + +
+ +```console +$ fastapi dev tutorial001.py + +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +``` + +
+ +as Uvicorn by default will use the port `8000`, the documentation on port `8008` won't clash. + +### Translations + +/// warning | Attention + +**Update on Translations** + +We're updating the way we handle documentation translations. + +Until now, we invited community members to translate pages via pull requests, which were then reviewed by at least two native speakers. While this has helped bring FastAPI to many more users, we’ve also run into several challenges - some languages have only a few translated pages, others are outdated and hard to maintain over time. +To improve this, we’re working on automation tools 🤖 to manage translations more efficiently. Once ready, documentation will be machine-translated and still reviewed by at least two native speakers ✅ before publishing. This will allow us to keep translations up-to-date while reducing the review burden on maintainers. + +What’s changing now: + +* 🚫 We’re no longer accepting new community-submitted translation PRs. + +* ⏳ Existing open PRs will be reviewed and can still be merged if completed within the next 3 weeks (since July 11 2025). + +* 🌐 In the future, we will only support languages where at least three active native speakers are available to review and maintain translations. + +This transition will help us keep translations more consistent and timely while better supporting our contributors 🙌. Thank you to everyone who has contributed so far — your help has been invaluable! 💖 + +/// + + +Help with translations is VERY MUCH appreciated! And it can't be done without the help from the community. 🌎 🚀 + +Here are the steps to help with translations. + +#### Tips and guidelines + +* Check the currently existing pull requests for your language. You can filter the pull requests by the ones with the label for your language. For example, for Spanish, the label is `lang-es`. + +* Review those pull requests, requesting changes or approving them. For the languages I don't speak, I'll wait for several others to review the translation before merging. + +/// tip + +You can add comments with change suggestions to existing pull requests. + +Check the docs about adding a pull request review to approve it or request changes. + +/// + +* Check if there's a GitHub Discussion to coordinate translations for your language. You can subscribe to it, and when there's a new pull request to review, an automatic comment will be added to the discussion. + +* If you translate pages, add a single pull request per page translated. That will make it much easier for others to review it. + +* To check the 2-letter code for the language you want to translate, you can use the table List of ISO 639-1 codes. + +#### Existing language + +Let's say you want to translate a page for a language that already has translations for some pages, like Spanish. + +In the case of Spanish, the 2-letter code is `es`. So, the directory for Spanish translations is located at `docs/es/`. + +/// tip + +The main ("official") language is English, located at `docs/en/`. + +/// + +Now run the live server for the docs in Spanish: + +
+ +```console +// Use the command "live" and pass the language code as a CLI argument +$ python ./scripts/docs.py live es + +[INFO] Serving on http://127.0.0.1:8008 +[INFO] Start watching changes +[INFO] Start detecting changes +``` + +
+ +/// tip + +Alternatively, you can perform the same steps that scripts does manually. + +Go into the language directory, for the Spanish translations it's at `docs/es/`: + +```console +$ cd docs/es/ +``` + +Then run `mkdocs` in that directory: + +```console +$ mkdocs serve --dev-addr 127.0.0.1:8008 +``` + +/// + +Now you can go to http://127.0.0.1:8008 and see your changes live. + +You will see that every language has all the pages. But some pages are not translated and have an info box at the top, about the missing translation. + +Now let's say that you want to add a translation for the section [Features](features.md){.internal-link target=_blank}. + +* Copy the file at: + +``` +docs/en/docs/features.md +``` + +* Paste it in exactly the same location but for the language you want to translate, e.g.: + +``` +docs/es/docs/features.md +``` + +/// tip + +Notice that the only change in the path and file name is the language code, from `en` to `es`. + +/// + +If you go to your browser you will see that now the docs show your new section (the info box at the top is gone). 🎉 + +Now you can translate it all and see how it looks as you save the file. + +#### Don't Translate these Pages + +🚨 Don't translate: + +* Files under `reference/` +* `release-notes.md` +* `fastapi-people.md` +* `external-links.md` +* `newsletter.md` +* `management-tasks.md` +* `management.md` +* `contributing.md` + +Some of these files are updated very frequently and a translation would always be behind, or they include the main content from English source files, etc. + +#### Request a New Language + +Let's say that you want to request translations for a language that is not yet translated, not even some pages. For example, Latin. + +If there is no discussion for that language, you can start by requesting the new language. For that, you can follow these steps: + +* Create a new discussion following the template. +* Get a few native speakers to comment on the discussion and commit to help review translations for that language. + +Once there are several people in the discussion, the FastAPI team can evaluate it and can make it an official translation. + +Then the docs will be automatically translated using AI, and the team of native speakers can review the translation, and help tweak the AI prompts. + +Once there's a new translation, for example if docs are updated or there's a new section, there will be a comment in the same discussion with the link to the new translation to review. + +#### New Language + +/// note + +These steps will be performed by the FastAPI team. + +/// + +Checking the link from above (List of ISO 639-1 codes), you can see that the 2-letter code for Latin is `la`. + +Now you can create a new directory for the new language, running the following script: + +
+ +```console +// Use the command new-lang, pass the language code as a CLI argument +$ python ./scripts/docs.py new-lang la + +Successfully initialized: docs/la +``` + +
+ +Now you can check in your code editor the newly created directory `docs/la/`. + +That command created a file `docs/la/mkdocs.yml` with a simple config that inherits everything from the `en` version: + +```yaml +INHERIT: ../en/mkdocs.yml +``` + +/// tip + +You could also simply create that file with those contents manually. + +/// + +That command also created a dummy file `docs/la/index.md` for the main page, you can start by translating that one. + +You can continue with the previous instructions for an "Existing Language" for that process. + +You can make the first pull request with those two files, `docs/la/mkdocs.yml` and `docs/la/index.md`. 🎉 + +#### Preview the result + +As already mentioned above, you can use the `./scripts/docs.py` with the `live` command to preview the results (or `mkdocs serve`). + +Once you are done, you can also test it all as it would look online, including all the other languages. + +To do that, first build all the docs: + +
+ +```console +// Use the command "build-all", this will take a bit +$ python ./scripts/docs.py build-all + +Building docs for: en +Building docs for: es +Successfully built docs for: es +``` + +
+ +This builds all those independent MkDocs sites for each language, combines them, and generates the final output at `./site/`. + +Then you can serve that with the command `serve`: + +
+ +```console +// Use the command "serve" after running "build-all" +$ python ./scripts/docs.py serve + +Warning: this is a very simple server. For development, use mkdocs serve instead. +This is here only to preview a site with translations already built. +Make sure you run the build-all command first. +Serving at: http://127.0.0.1:8008 +``` + +
+ +#### Translation specific tips and guidelines + +* Translate only the Markdown documents (`.md`). Do not translate the code examples at `./docs_src`. + +* In code blocks within the Markdown document, translate comments (`# a comment`), but leave the rest unchanged. + +* Do not change anything enclosed in "``" (inline code). + +* In lines starting with `///` translate only the text part after `|`. Leave the rest unchanged. + +* You can translate info boxes like `/// warning` with for example `/// warning | Achtung`. But do not change the word immediately after the `///`, it determines the color of the info box. + +* Do not change the paths in links to images, code files, Markdown documents. + +* However, when a Markdown document is translated, the `#hash-parts` in links to its headings may change. Update these links if possible. + * Search for such links in the translated document using the regex `#[^# ]`. + * Search in all documents already translated into your language for `your-translated-document.md`. For example VS Code has an option "Edit" -> "Find in Files". + * When translating a document, do not "pre-translate" `#hash-parts` that link to headings in untranslated documents. diff --git a/docs/en/docs/css/custom.css b/docs/en/docs/css/custom.css new file mode 100644 index 0000000..87111ff --- /dev/null +++ b/docs/en/docs/css/custom.css @@ -0,0 +1,205 @@ +/* Fira Code, including characters used by Rich output, like the "heavy right-pointing angle bracket ornament", not included in Google Fonts */ +@import url(https://cdn.jsdelivr.net/npm/firacode@6.2.0/distr/fira_code.css); +/* Noto Color Emoji for emoji support with the same font everywhere */ +@import url(https://fonts.googleapis.com/css2?family=Noto+Color+Emoji&display=swap); + +/* Override default code font in Material for MkDocs to Fira Code */ +:root { + --md-code-font: "Fira Code", monospace, "Noto Color Emoji"; +} + +/* Override default regular font in Material for MkDocs to include Noto Color Emoji */ +:root { + --md-text-font: "Roboto", "Noto Color Emoji"; +} + +.termynal-comment { + color: #4a968f; + font-style: italic; + display: block; +} + +.termy { + /* For right to left languages */ + direction: ltr; +} + +.termy [data-termynal] { + white-space: pre-wrap; +} + +.termy .linenos { + display: none; +} + +a.external-link { + /* For right to left languages */ + direction: ltr; + display: inline-block; +} + +a.external-link::after { + /* \00A0 is a non-breaking space + to make the mark be on the same line as the link + */ + content: "\00A0[↪]"; +} + +a.internal-link::after { + /* \00A0 is a non-breaking space + to make the mark be on the same line as the link + */ + content: "\00A0↪"; +} + +.shadow { + box-shadow: 5px 5px 10px #999; +} + +/* Give space to lower icons so Gitter chat doesn't get on top of them */ +.md-footer-meta { + padding-bottom: 2em; +} + +.user-list { + display: flex; + flex-wrap: wrap; + margin-bottom: 2rem; +} + +.user-list-center { + justify-content: space-evenly; +} + +.user { + margin: 1em; + min-width: 7em; +} + +.user .avatar-wrapper { + width: 80px; + height: 80px; + margin: 10px auto; + overflow: hidden; + border-radius: 50%; + position: relative; +} + +.user .avatar-wrapper img { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); +} + +.user .title { + text-align: center; +} + +.user .count { + font-size: 80%; + text-align: center; +} + +a.announce-link:link, +a.announce-link:visited { + color: #fff; +} + +a.announce-link:hover { + color: var(--md-accent-fg-color); +} + +.announce-wrapper { + display: flex; + justify-content: space-between; + flex-wrap: wrap; + align-items: center; +} + +.announce-wrapper #announce-left div.item { + display: none; +} + +.announce-wrapper #announce-right { + display: none; +} + +.announce-wrapper #announce-right div.item { + display: none; +} + +.announce-wrapper .sponsor-badge { + display: block; + position: absolute; + top: -10px; + right: 0; + font-size: 0.5rem; + color: #e6e6e6; + background-color: #666; + border-radius: 10px; + padding: 0 10px; + z-index: 10; +} + +.announce-wrapper .sponsor-image { + display: block; + border-radius: 20px; +} + +.announce-wrapper>div { + min-height: 40px; + display: flex; + align-items: center; +} + +.twitter { + color: #00acee; +} + +/* Right to left languages */ +code { + direction: ltr; + display: inline-block; +} + +.illustration { + margin-top: 2em; + margin-bottom: 2em; +} + +/* Screenshots */ +/* +Simulate a browser window frame. +Inspired by Termynal's CSS tricks with modifications +*/ + +.screenshot { + display: block; + background-color: #d3e0de; + border-radius: 4px; + padding: 45px 5px 5px; + position: relative; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.screenshot img { + display: block; + border-radius: 2px; +} + +.screenshot:before { + content: ''; + position: absolute; + top: 15px; + left: 15px; + display: inline-block; + width: 15px; + height: 15px; + border-radius: 50%; + /* A little hack to display the window buttons in one pseudo element. */ + background: #d9515d; + -webkit-box-shadow: 25px 0 0 #f4c025, 50px 0 0 #3ec930; + box-shadow: 25px 0 0 #f4c025, 50px 0 0 #3ec930; +} diff --git a/docs/en/docs/css/termynal.css b/docs/en/docs/css/termynal.css new file mode 100644 index 0000000..a2564e2 --- /dev/null +++ b/docs/en/docs/css/termynal.css @@ -0,0 +1,111 @@ +/** + * termynal.js + * + * @author Ines Montani + * @version 0.0.1 + * @license MIT + */ + +:root { + --color-bg: #252a33; + --color-text: #eee; + --color-text-subtle: #a2a2a2; +} + +[data-termynal] { + width: 750px; + max-width: 100%; + background: var(--color-bg); + color: var(--color-text); + /* font-size: 18px; */ + font-size: 15px; + /* font-family: 'Fira Mono', Consolas, Menlo, Monaco, 'Courier New', Courier, monospace; */ + font-family: var(--md-code-font-family), 'Roboto Mono', 'Fira Mono', Consolas, Menlo, Monaco, 'Courier New', Courier, monospace; + border-radius: 4px; + padding: 75px 45px 35px; + position: relative; + -webkit-box-sizing: border-box; + box-sizing: border-box; + /* Custom line-height */ + line-height: 1.2; +} + +[data-termynal]:before { + content: ''; + position: absolute; + top: 15px; + left: 15px; + display: inline-block; + width: 15px; + height: 15px; + border-radius: 50%; + /* A little hack to display the window buttons in one pseudo element. */ + background: #d9515d; + -webkit-box-shadow: 25px 0 0 #f4c025, 50px 0 0 #3ec930; + box-shadow: 25px 0 0 #f4c025, 50px 0 0 #3ec930; +} + +[data-termynal]:after { + content: 'bash'; + position: absolute; + color: var(--color-text-subtle); + top: 5px; + left: 0; + width: 100%; + text-align: center; +} + +a[data-terminal-control] { + text-align: right; + display: block; + color: #aebbff; +} + +[data-ty] { + display: block; + line-height: 2; +} + +[data-ty]:before { + /* Set up defaults and ensure empty lines are displayed. */ + content: ''; + display: inline-block; + vertical-align: middle; +} + +[data-ty="input"]:before, +[data-ty-prompt]:before { + margin-right: 0.75em; + color: var(--color-text-subtle); +} + +[data-ty="input"]:before { + content: '$'; +} + +[data-ty][data-ty-prompt]:before { + content: attr(data-ty-prompt); +} + +[data-ty-cursor]:after { + content: attr(data-ty-cursor); + font-family: monospace; + margin-left: 0.5em; + -webkit-animation: blink 1s infinite; + animation: blink 1s infinite; +} + + +/* Cursor animation */ + +@-webkit-keyframes blink { + 50% { + opacity: 0; + } +} + +@keyframes blink { + 50% { + opacity: 0; + } +} diff --git a/docs/en/docs/deployment/cloud.md b/docs/en/docs/deployment/cloud.md new file mode 100644 index 0000000..4f5c23e --- /dev/null +++ b/docs/en/docs/deployment/cloud.md @@ -0,0 +1,24 @@ +# Deploy FastAPI on Cloud Providers { #deploy-fastapi-on-cloud-providers } + +You can use virtually **any cloud provider** to deploy your FastAPI application. + +In most of the cases, the main cloud providers have guides to deploy FastAPI with them. + +## FastAPI Cloud { #fastapi-cloud } + +**FastAPI Cloud** is built by the same author and team behind **FastAPI**. + +It streamlines the process of **building**, **deploying**, and **accessing** an API with minimal effort. + +It brings the same **developer experience** of building apps with FastAPI to **deploying** them to the cloud. 🎉 + +FastAPI Cloud is the primary sponsor and funding provider for the *FastAPI and friends* open source projects. ✨ + +## Cloud Providers - Sponsors { #cloud-providers-sponsors } + +Some other cloud providers ✨ [**sponsor FastAPI**](../help-fastapi.md#sponsor-the-author){.internal-link target=_blank} ✨ too. 🙇 + +You might also want to consider them to follow their guides and try their services: + +* Render +* Railway diff --git a/docs/en/docs/deployment/concepts.md b/docs/en/docs/deployment/concepts.md new file mode 100644 index 0000000..2174443 --- /dev/null +++ b/docs/en/docs/deployment/concepts.md @@ -0,0 +1,321 @@ +# Deployments Concepts { #deployments-concepts } + +When deploying a **FastAPI** application, or actually, any type of web API, there are several concepts that you probably care about, and using them you can find the **most appropriate** way to **deploy your application**. + +Some of the important concepts are: + +* Security - HTTPS +* Running on startup +* Restarts +* Replication (the number of processes running) +* Memory +* Previous steps before starting + +We'll see how they would affect **deployments**. + +In the end, the ultimate objective is to be able to **serve your API clients** in a way that is **secure**, to **avoid disruptions**, and to use the **compute resources** (for example remote servers/virtual machines) as efficiently as possible. 🚀 + +I'll tell you a bit more about these **concepts** here, and that would hopefully give you the **intuition** you would need to decide how to deploy your API in very different environments, possibly even in **future** ones that don't exist yet. + +By considering these concepts, you will be able to **evaluate and design** the best way to deploy **your own APIs**. + +In the next chapters, I'll give you more **concrete recipes** to deploy FastAPI applications. + +But for now, let's check these important **conceptual ideas**. These concepts also apply to any other type of web API. 💡 + +## Security - HTTPS { #security-https } + +In the [previous chapter about HTTPS](https.md){.internal-link target=_blank} we learned about how HTTPS provides encryption for your API. + +We also saw that HTTPS is normally provided by a component **external** to your application server, a **TLS Termination Proxy**. + +And there has to be something in charge of **renewing the HTTPS certificates**, it could be the same component or it could be something different. + +### Example Tools for HTTPS { #example-tools-for-https } + +Some of the tools you could use as a TLS Termination Proxy are: + +* Traefik + * Automatically handles certificates renewals ✨ +* Caddy + * Automatically handles certificates renewals ✨ +* Nginx + * With an external component like Certbot for certificate renewals +* HAProxy + * With an external component like Certbot for certificate renewals +* Kubernetes with an Ingress Controller like Nginx + * With an external component like cert-manager for certificate renewals +* Handled internally by a cloud provider as part of their services (read below 👇) + +Another option is that you could use a **cloud service** that does more of the work including setting up HTTPS. It could have some restrictions or charge you more, etc. But in that case, you wouldn't have to set up a TLS Termination Proxy yourself. + +I'll show you some concrete examples in the next chapters. + +--- + +Then the next concepts to consider are all about the program running your actual API (e.g. Uvicorn). + +## Program and Process { #program-and-process } + +We will talk a lot about the running "**process**", so it's useful to have clarity about what it means, and what's the difference with the word "**program**". + +### What is a Program { #what-is-a-program } + +The word **program** is commonly used to describe many things: + +* The **code** that you write, the **Python files**. +* The **file** that can be **executed** by the operating system, for example: `python`, `python.exe` or `uvicorn`. +* A particular program while it is **running** on the operating system, using the CPU, and storing things in memory. This is also called a **process**. + +### What is a Process { #what-is-a-process } + +The word **process** is normally used in a more specific way, only referring to the thing that is running in the operating system (like in the last point above): + +* A particular program while it is **running** on the operating system. + * This doesn't refer to the file, nor to the code, it refers **specifically** to the thing that is being **executed** and managed by the operating system. +* Any program, any code, **can only do things** when it is being **executed**. So, when there's a **process running**. +* The process can be **terminated** (or "killed") by you, or by the operating system. At that point, it stops running/being executed, and it can **no longer do things**. +* Each application that you have running on your computer has some process behind it, each running program, each window, etc. And there are normally many processes running **at the same time** while a computer is on. +* There can be **multiple processes** of the **same program** running at the same time. + +If you check out the "task manager" or "system monitor" (or similar tools) in your operating system, you will be able to see many of those processes running. + +And, for example, you will probably see that there are multiple processes running the same browser program (Firefox, Chrome, Edge, etc). They normally run one process per tab, plus some other extra processes. + + + +--- + +Now that we know the difference between the terms **process** and **program**, let's continue talking about deployments. + +## Running on Startup { #running-on-startup } + +In most cases, when you create a web API, you want it to be **always running**, uninterrupted, so that your clients can always access it. This is of course, unless you have a specific reason why you want it to run only in certain situations, but most of the time you want it constantly running and **available**. + +### In a Remote Server { #in-a-remote-server } + +When you set up a remote server (a cloud server, a virtual machine, etc.) the simplest thing you can do is use `fastapi run` (which uses Uvicorn) or something similar, manually, the same way you do when developing locally. + +And it will work and will be useful **during development**. + +But if your connection to the server is lost, the **running process** will probably die. + +And if the server is restarted (for example after updates, or migrations from the cloud provider) you probably **won't notice it**. And because of that, you won't even know that you have to restart the process manually. So, your API will just stay dead. 😱 + +### Run Automatically on Startup { #run-automatically-on-startup } + +In general, you will probably want the server program (e.g. Uvicorn) to be started automatically on server startup, and without needing any **human intervention**, to have a process always running with your API (e.g. Uvicorn running your FastAPI app). + +### Separate Program { #separate-program } + +To achieve this, you will normally have a **separate program** that would make sure your application is run on startup. And in many cases, it would also make sure other components or applications are also run, for example, a database. + +### Example Tools to Run at Startup { #example-tools-to-run-at-startup } + +Some examples of the tools that can do this job are: + +* Docker +* Kubernetes +* Docker Compose +* Docker in Swarm Mode +* Systemd +* Supervisor +* Handled internally by a cloud provider as part of their services +* Others... + +I'll give you more concrete examples in the next chapters. + +## Restarts { #restarts } + +Similar to making sure your application is run on startup, you probably also want to make sure it is **restarted** after failures. + +### We Make Mistakes { #we-make-mistakes } + +We, as humans, make **mistakes**, all the time. Software almost *always* has **bugs** hidden in different places. 🐛 + +And we as developers keep improving the code as we find those bugs and as we implement new features (possibly adding new bugs too 😅). + +### Small Errors Automatically Handled { #small-errors-automatically-handled } + +When building web APIs with FastAPI, if there's an error in our code, FastAPI will normally contain it to the single request that triggered the error. 🛡 + +The client will get a **500 Internal Server Error** for that request, but the application will continue working for the next requests instead of just crashing completely. + +### Bigger Errors - Crashes { #bigger-errors-crashes } + +Nevertheless, there might be cases where we write some code that **crashes the entire application** making Uvicorn and Python crash. 💥 + +And still, you would probably not want the application to stay dead because there was an error in one place, you probably want it to **continue running** at least for the *path operations* that are not broken. + +### Restart After Crash { #restart-after-crash } + +But in those cases with really bad errors that crash the running **process**, you would want an external component that is in charge of **restarting** the process, at least a couple of times... + +/// tip + +...Although if the whole application is just **crashing immediately** it probably doesn't make sense to keep restarting it forever. But in those cases, you will probably notice it during development, or at least right after deployment. + +So let's focus on the main cases, where it could crash entirely in some particular cases **in the future**, and it still makes sense to restart it. + +/// + +You would probably want to have the thing in charge of restarting your application as an **external component**, because by that point, the same application with Uvicorn and Python already crashed, so there's nothing in the same code of the same app that could do anything about it. + +### Example Tools to Restart Automatically { #example-tools-to-restart-automatically } + +In most cases, the same tool that is used to **run the program on startup** is also used to handle automatic **restarts**. + +For example, this could be handled by: + +* Docker +* Kubernetes +* Docker Compose +* Docker in Swarm Mode +* Systemd +* Supervisor +* Handled internally by a cloud provider as part of their services +* Others... + +## Replication - Processes and Memory { #replication-processes-and-memory } + +With a FastAPI application, using a server program like the `fastapi` command that runs Uvicorn, running it once in **one process** can serve multiple clients concurrently. + +But in many cases, you will want to run several worker processes at the same time. + +### Multiple Processes - Workers { #multiple-processes-workers } + +If you have more clients than what a single process can handle (for example if the virtual machine is not too big) and you have **multiple cores** in the server's CPU, then you could have **multiple processes** running with the same application at the same time, and distribute all the requests among them. + +When you run **multiple processes** of the same API program, they are commonly called **workers**. + +### Worker Processes and Ports { #worker-processes-and-ports } + +Remember from the docs [About HTTPS](https.md){.internal-link target=_blank} that only one process can be listening on one combination of port and IP address in a server? + +This is still true. + +So, to be able to have **multiple processes** at the same time, there has to be a **single process listening on a port** that then transmits the communication to each worker process in some way. + +### Memory per Process { #memory-per-process } + +Now, when the program loads things in memory, for example, a machine learning model in a variable, or the contents of a large file in a variable, all that **consumes a bit of the memory (RAM)** of the server. + +And multiple processes normally **don't share any memory**. This means that each running process has its own things, variables, and memory. And if you are consuming a large amount of memory in your code, **each process** will consume an equivalent amount of memory. + +### Server Memory { #server-memory } + +For example, if your code loads a Machine Learning model with **1 GB in size**, when you run one process with your API, it will consume at least 1 GB of RAM. And if you start **4 processes** (4 workers), each will consume 1 GB of RAM. So in total, your API will consume **4 GB of RAM**. + +And if your remote server or virtual machine only has 3 GB of RAM, trying to load more than 4 GB of RAM will cause problems. 🚨 + +### Multiple Processes - An Example { #multiple-processes-an-example } + +In this example, there's a **Manager Process** that starts and controls two **Worker Processes**. + +This Manager Process would probably be the one listening on the **port** in the IP. And it would transmit all the communication to the worker processes. + +Those worker processes would be the ones running your application, they would perform the main computations to receive a **request** and return a **response**, and they would load anything you put in variables in RAM. + + + +And of course, the same machine would probably have **other processes** running as well, apart from your application. + +An interesting detail is that the percentage of the **CPU used** by each process can **vary** a lot over time, but the **memory (RAM)** normally stays more or less **stable**. + +If you have an API that does a comparable amount of computations every time and you have a lot of clients, then the **CPU utilization** will probably *also be stable* (instead of constantly going up and down quickly). + +### Examples of Replication Tools and Strategies { #examples-of-replication-tools-and-strategies } + +There can be several approaches to achieve this, and I'll tell you more about specific strategies in the next chapters, for example when talking about Docker and containers. + +The main constraint to consider is that there has to be a **single** component handling the **port** in the **public IP**. And then it has to have a way to **transmit** the communication to the replicated **processes/workers**. + +Here are some possible combinations and strategies: + +* **Uvicorn** with `--workers` + * One Uvicorn **process manager** would listen on the **IP** and **port**, and it would start **multiple Uvicorn worker processes**. +* **Kubernetes** and other distributed **container systems** + * Something in the **Kubernetes** layer would listen on the **IP** and **port**. The replication would be by having **multiple containers**, each with **one Uvicorn process** running. +* **Cloud services** that handle this for you + * The cloud service will probably **handle replication for you**. It would possibly let you define **a process to run**, or a **container image** to use, in any case, it would most probably be **a single Uvicorn process**, and the cloud service would be in charge of replicating it. + +/// tip + +Don't worry if some of these items about **containers**, Docker, or Kubernetes don't make a lot of sense yet. + +I'll tell you more about container images, Docker, Kubernetes, etc. in a future chapter: [FastAPI in Containers - Docker](docker.md){.internal-link target=_blank}. + +/// + +## Previous Steps Before Starting { #previous-steps-before-starting } + +There are many cases where you want to perform some steps **before starting** your application. + +For example, you might want to run **database migrations**. + +But in most cases, you will want to perform these steps only **once**. + +So, you will want to have a **single process** to perform those **previous steps**, before starting the application. + +And you will have to make sure that it's a single process running those previous steps *even* if afterwards, you start **multiple processes** (multiple workers) for the application itself. If those steps were run by **multiple processes**, they would **duplicate** the work by running it in **parallel**, and if the steps were something delicate like a database migration, they could cause conflicts with each other. + +Of course, there are some cases where there's no problem in running the previous steps multiple times, in that case, it's a lot easier to handle. + +/// tip + +Also, keep in mind that depending on your setup, in some cases you **might not even need any previous steps** before starting your application. + +In that case, you wouldn't have to worry about any of this. 🤷 + +/// + +### Examples of Previous Steps Strategies { #examples-of-previous-steps-strategies } + +This will **depend heavily** on the way you **deploy your system**, and it would probably be connected to the way you start programs, handling restarts, etc. + +Here are some possible ideas: + +* An "Init Container" in Kubernetes that runs before your app container +* A bash script that runs the previous steps and then starts your application + * You would still need a way to start/restart *that* bash script, detect errors, etc. + +/// tip + +I'll give you more concrete examples for doing this with containers in a future chapter: [FastAPI in Containers - Docker](docker.md){.internal-link target=_blank}. + +/// + +## Resource Utilization { #resource-utilization } + +Your server(s) is (are) a **resource**, you can consume or **utilize**, with your programs, the computation time on the CPUs, and the RAM memory available. + +How much of the system resources do you want to be consuming/utilizing? It might be easy to think "not much", but in reality, you will probably want to consume **as much as possible without crashing**. + +If you are paying for 3 servers but you are using only a little bit of their RAM and CPU, you are probably **wasting money** 💸, and probably **wasting server electric power** 🌎, etc. + +In that case, it could be better to have only 2 servers and use a higher percentage of their resources (CPU, memory, disk, network bandwidth, etc). + +On the other hand, if you have 2 servers and you are using **100% of their CPU and RAM**, at some point one process will ask for more memory, and the server will have to use the disk as "memory" (which can be thousands of times slower), or even **crash**. Or one process might need to do some computation and would have to wait until the CPU is free again. + +In this case, it would be better to get **one extra server** and run some processes on it so that they all have **enough RAM and CPU time**. + +There's also the chance that for some reason you have a **spike** of usage of your API. Maybe it went viral, or maybe some other services or bots start using it. And you might want to have extra resources to be safe in those cases. + +You could put an **arbitrary number** to target, for example, something **between 50% to 90%** of resource utilization. The point is that those are probably the main things you will want to measure and use to tweak your deployments. + +You can use simple tools like `htop` to see the CPU and RAM used in your server or the amount used by each process. Or you can use more complex monitoring tools, which may be distributed across servers, etc. + +## Recap { #recap } + +You have been reading here some of the main concepts that you would probably need to keep in mind when deciding how to deploy your application: + +* Security - HTTPS +* Running on startup +* Restarts +* Replication (the number of processes running) +* Memory +* Previous steps before starting + +Understanding these ideas and how to apply them should give you the intuition necessary to take any decisions when configuring and tweaking your deployments. 🤓 + +In the next sections, I'll give you more concrete examples of possible strategies you can follow. 🚀 diff --git a/docs/en/docs/deployment/docker.md b/docs/en/docs/deployment/docker.md new file mode 100644 index 0000000..6b71f73 --- /dev/null +++ b/docs/en/docs/deployment/docker.md @@ -0,0 +1,620 @@ +# FastAPI in Containers - Docker { #fastapi-in-containers-docker } + +When deploying FastAPI applications a common approach is to build a **Linux container image**. It's normally done using **Docker**. You can then deploy that container image in one of a few possible ways. + +Using Linux containers has several advantages including **security**, **replicability**, **simplicity**, and others. + +/// tip + +In a hurry and already know this stuff? Jump to the [`Dockerfile` below 👇](#build-a-docker-image-for-fastapi). + +/// + +
+Dockerfile Preview 👀 + +```Dockerfile +FROM python:3.9 + +WORKDIR /code + +COPY ./requirements.txt /code/requirements.txt + +RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt + +COPY ./app /code/app + +CMD ["fastapi", "run", "app/main.py", "--port", "80"] + +# If running behind a proxy like Nginx or Traefik add --proxy-headers +# CMD ["fastapi", "run", "app/main.py", "--port", "80", "--proxy-headers"] +``` + +
+ +## What is a Container { #what-is-a-container } + +Containers (mainly Linux containers) are a very **lightweight** way to package applications including all their dependencies and necessary files while keeping them isolated from other containers (other applications or components) in the same system. + +Linux containers run using the same Linux kernel of the host (machine, virtual machine, cloud server, etc). This just means that they are very lightweight (compared to full virtual machines emulating an entire operating system). + +This way, containers consume **little resources**, an amount comparable to running the processes directly (a virtual machine would consume much more). + +Containers also have their own **isolated** running processes (commonly just one process), file system, and network, simplifying deployment, security, development, etc. + +## What is a Container Image { #what-is-a-container-image } + +A **container** is run from a **container image**. + +A container image is a **static** version of all the files, environment variables, and the default command/program that should be present in a container. **Static** here means that the container **image** is not running, it's not being executed, it's only the packaged files and metadata. + +In contrast to a "**container image**" that is the stored static contents, a "**container**" normally refers to the running instance, the thing that is being **executed**. + +When the **container** is started and running (started from a **container image**) it could create or change files, environment variables, etc. Those changes will exist only in that container, but would not persist in the underlying container image (would not be saved to disk). + +A container image is comparable to the **program** file and contents, e.g. `python` and some file `main.py`. + +And the **container** itself (in contrast to the **container image**) is the actual running instance of the image, comparable to a **process**. In fact, a container is running only when it has a **process running** (and normally it's only a single process). The container stops when there's no process running in it. + +## Container Images { #container-images } + +Docker has been one of the main tools to create and manage **container images** and **containers**. + +And there's a public Docker Hub with pre-made **official container images** for many tools, environments, databases, and applications. + +For example, there's an official Python Image. + +And there are many other images for different things like databases, for example for: + +* PostgreSQL +* MySQL +* MongoDB +* Redis, etc. + +By using a pre-made container image it's very easy to **combine** and use different tools. For example, to try out a new database. In most cases, you can use the **official images**, and just configure them with environment variables. + +That way, in many cases you can learn about containers and Docker and reuse that knowledge with many different tools and components. + +So, you would run **multiple containers** with different things, like a database, a Python application, a web server with a React frontend application, and connect them together via their internal network. + +All the container management systems (like Docker or Kubernetes) have these networking features integrated into them. + +## Containers and Processes { #containers-and-processes } + +A **container image** normally includes in its metadata the default program or command that should be run when the **container** is started and the parameters to be passed to that program. Very similar to what would be if it was in the command line. + +When a **container** is started, it will run that command/program (although you can override it and make it run a different command/program). + +A container is running as long as the **main process** (command or program) is running. + +A container normally has a **single process**, but it's also possible to start subprocesses from the main process, and that way you will have **multiple processes** in the same container. + +But it's not possible to have a running container without **at least one running process**. If the main process stops, the container stops. + +## Build a Docker Image for FastAPI { #build-a-docker-image-for-fastapi } + +Okay, let's build something now! 🚀 + +I'll show you how to build a **Docker image** for FastAPI **from scratch**, based on the **official Python** image. + +This is what you would want to do in **most cases**, for example: + +* Using **Kubernetes** or similar tools +* When running on a **Raspberry Pi** +* Using a cloud service that would run a container image for you, etc. + +### Package Requirements { #package-requirements } + +You would normally have the **package requirements** for your application in some file. + +It would depend mainly on the tool you use to **install** those requirements. + +The most common way to do it is to have a file `requirements.txt` with the package names and their versions, one per line. + +You would of course use the same ideas you read in [About FastAPI versions](versions.md){.internal-link target=_blank} to set the ranges of versions. + +For example, your `requirements.txt` could look like: + +``` +fastapi[standard]>=0.113.0,<0.114.0 +pydantic>=2.7.0,<3.0.0 +``` + +And you would normally install those package dependencies with `pip`, for example: + +
+ +```console +$ pip install -r requirements.txt +---> 100% +Successfully installed fastapi pydantic +``` + +
+ +/// info + +There are other formats and tools to define and install package dependencies. + +/// + +### Create the **FastAPI** Code { #create-the-fastapi-code } + +* Create an `app` directory and enter it. +* Create an empty file `__init__.py`. +* Create a `main.py` file 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} +``` + +### Dockerfile { #dockerfile } + +Now in the same project directory create a file `Dockerfile` with: + +```{ .dockerfile .annotate } +# (1)! +FROM python:3.9 + +# (2)! +WORKDIR /code + +# (3)! +COPY ./requirements.txt /code/requirements.txt + +# (4)! +RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt + +# (5)! +COPY ./app /code/app + +# (6)! +CMD ["fastapi", "run", "app/main.py", "--port", "80"] +``` + +1. Start from the official Python base image. + +2. Set the current working directory to `/code`. + + This is where we'll put the `requirements.txt` file and the `app` directory. + +3. Copy the file with the requirements to the `/code` directory. + + Copy **only** the file with the requirements first, not the rest of the code. + + As this file **doesn't change often**, Docker will detect it and use the **cache** for this step, enabling the cache for the next step too. + +4. Install the package dependencies in the requirements file. + + The `--no-cache-dir` option tells `pip` to not save the downloaded packages locally, as that is only if `pip` was going to be run again to install the same packages, but that's not the case when working with containers. + + /// note + + The `--no-cache-dir` is only related to `pip`, it has nothing to do with Docker or containers. + + /// + + The `--upgrade` option tells `pip` to upgrade the packages if they are already installed. + + Because the previous step copying the file could be detected by the **Docker cache**, this step will also **use the Docker cache** when available. + + Using the cache in this step will **save** you a lot of **time** when building the image again and again during development, instead of **downloading and installing** all the dependencies **every time**. + +5. Copy the `./app` directory inside the `/code` directory. + + As this has all the code which is what **changes most frequently** the Docker **cache** won't be used for this or any **following steps** easily. + + So, it's important to put this **near the end** of the `Dockerfile`, to optimize the container image build times. + +6. Set the **command** to use `fastapi run`, which uses Uvicorn underneath. + + `CMD` takes a list of strings, each of these strings is what you would type in the command line separated by spaces. + + This command will be run from the **current working directory**, the same `/code` directory you set above with `WORKDIR /code`. + +/// tip + +Review what each line does by clicking each number bubble in the code. 👆 + +/// + +/// warning + +Make sure to **always** use the **exec form** of the `CMD` instruction, as explained below. + +/// + +#### Use `CMD` - Exec Form { #use-cmd-exec-form } + +The `CMD` Docker instruction can be written using two forms: + +✅ **Exec** form: + +```Dockerfile +# ✅ Do this +CMD ["fastapi", "run", "app/main.py", "--port", "80"] +``` + +⛔️ **Shell** form: + +```Dockerfile +# ⛔️ Don't do this +CMD fastapi run app/main.py --port 80 +``` + +Make sure to always use the **exec** form to ensure that FastAPI can shutdown gracefully and [lifespan events](../advanced/events.md){.internal-link target=_blank} are triggered. + +You can read more about it in the Docker docs for shell and exec form. + +This can be quite noticeable when using `docker compose`. See this Docker Compose FAQ section for more technical details: Why do my services take 10 seconds to recreate or stop?. + +#### Directory Structure { #directory-structure } + +You should now have a directory structure like: + +``` +. +├── app +│   ├── __init__.py +│ └── main.py +├── Dockerfile +└── requirements.txt +``` + +#### Behind a TLS Termination Proxy { #behind-a-tls-termination-proxy } + +If you are running your container behind a TLS Termination Proxy (load balancer) like Nginx or Traefik, add the option `--proxy-headers`, this will tell Uvicorn (through the FastAPI CLI) to trust the headers sent by that proxy telling it that the application is running behind HTTPS, etc. + +```Dockerfile +CMD ["fastapi", "run", "app/main.py", "--proxy-headers", "--port", "80"] +``` + +#### Docker Cache { #docker-cache } + +There's an important trick in this `Dockerfile`, we first copy the **file with the dependencies alone**, not the rest of the code. Let me tell you why is that. + +```Dockerfile +COPY ./requirements.txt /code/requirements.txt +``` + +Docker and other tools **build** these container images **incrementally**, adding **one layer on top of the other**, starting from the top of the `Dockerfile` and adding any files created by each of the instructions of the `Dockerfile`. + +Docker and similar tools also use an **internal cache** when building the image, if a file hasn't changed since the last time building the container image, then it will **reuse the same layer** created the last time, instead of copying the file again and creating a new layer from scratch. + +Just avoiding the copy of files doesn't necessarily improve things too much, but because it used the cache for that step, it can **use the cache for the next step**. For example, it could use the cache for the instruction that installs dependencies with: + +```Dockerfile +RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt +``` + +The file with the package requirements **won't change frequently**. So, by copying only that file, Docker will be able to **use the cache** for that step. + +And then, Docker will be able to **use the cache for the next step** that downloads and install those dependencies. And here's where we **save a lot of time**. ✨ ...and avoid boredom waiting. 😪😆 + +Downloading and installing the package dependencies **could take minutes**, but using the **cache** would **take seconds** at most. + +And as you would be building the container image again and again during development to check that your code changes are working, there's a lot of accumulated time this would save. + +Then, near the end of the `Dockerfile`, we copy all the code. As this is what **changes most frequently**, we put it near the end, because almost always, anything after this step will not be able to use the cache. + +```Dockerfile +COPY ./app /code/app +``` + +### Build the Docker Image { #build-the-docker-image } + +Now that all the files are in place, let's build the container image. + +* Go to the project directory (in where your `Dockerfile` is, containing your `app` directory). +* Build your FastAPI image: + +
+ +```console +$ docker build -t myimage . + +---> 100% +``` + +
+ +/// tip + +Notice the `.` at the end, it's equivalent to `./`, it tells Docker the directory to use to build the container image. + +In this case, it's the same current directory (`.`). + +/// + +### Start the Docker Container { #start-the-docker-container } + +* Run a container based on your image: + +
+ +```console +$ docker run -d --name mycontainer -p 80:80 myimage +``` + +
+ +## Check it { #check-it } + +You should be able to check it in your Docker container's URL, for example: http://192.168.99.100/items/5?q=somequery or http://127.0.0.1/items/5?q=somequery (or equivalent, using your Docker host). + +You will see something like: + +```JSON +{"item_id": 5, "q": "somequery"} +``` + +## Interactive API docs { #interactive-api-docs } + +Now you can go to http://192.168.99.100/docs or http://127.0.0.1/docs (or equivalent, using your Docker host). + +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 { #alternative-api-docs } + +And you can also go to http://192.168.99.100/redoc or http://127.0.0.1/redoc (or equivalent, using your Docker host). + +You will see the alternative automatic documentation (provided by ReDoc): + +![ReDoc](https://fastapi.tiangolo.com/img/index/index-02-redoc-simple.png) + +## Build a Docker Image with a Single-File FastAPI { #build-a-docker-image-with-a-single-file-fastapi } + +If your FastAPI is a single file, for example, `main.py` without an `./app` directory, your file structure could look like this: + +``` +. +├── Dockerfile +├── main.py +└── requirements.txt +``` + +Then you would just have to change the corresponding paths to copy the file inside the `Dockerfile`: + +```{ .dockerfile .annotate hl_lines="10 13" } +FROM python:3.9 + +WORKDIR /code + +COPY ./requirements.txt /code/requirements.txt + +RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt + +# (1)! +COPY ./main.py /code/ + +# (2)! +CMD ["fastapi", "run", "main.py", "--port", "80"] +``` + +1. Copy the `main.py` file to the `/code` directory directly (without any `./app` directory). + +2. Use `fastapi run` to serve your application in the single file `main.py`. + +When you pass the file to `fastapi run` it will detect automatically that it is a single file and not part of a package and will know how to import it and serve your FastAPI app. 😎 + +## Deployment Concepts { #deployment-concepts } + +Let's talk again about some of the same [Deployment Concepts](concepts.md){.internal-link target=_blank} in terms of containers. + +Containers are mainly a tool to simplify the process of **building and deploying** an application, but they don't enforce a particular approach to handle these **deployment concepts**, and there are several possible strategies. + +The **good news** is that with each different strategy there's a way to cover all of the deployment concepts. 🎉 + +Let's review these **deployment concepts** in terms of containers: + +* HTTPS +* Running on startup +* Restarts +* Replication (the number of processes running) +* Memory +* Previous steps before starting + +## HTTPS { #https } + +If we focus just on the **container image** for a FastAPI application (and later the running **container**), HTTPS normally would be handled **externally** by another tool. + +It could be another container, for example with Traefik, handling **HTTPS** and **automatic** acquisition of **certificates**. + +/// tip + +Traefik has integrations with Docker, Kubernetes, and others, so it's very easy to set up and configure HTTPS for your containers with it. + +/// + +Alternatively, HTTPS could be handled by a cloud provider as one of their services (while still running the application in a container). + +## Running on Startup and Restarts { #running-on-startup-and-restarts } + +There is normally another tool in charge of **starting and running** your container. + +It could be **Docker** directly, **Docker Compose**, **Kubernetes**, a **cloud service**, etc. + +In most (or all) cases, there's a simple option to enable running the container on startup and enabling restarts on failures. For example, in Docker, it's the command line option `--restart`. + +Without using containers, making applications run on startup and with restarts can be cumbersome and difficult. But when **working with containers** in most cases that functionality is included by default. ✨ + +## Replication - Number of Processes { #replication-number-of-processes } + +If you have a cluster of machines with **Kubernetes**, Docker Swarm Mode, Nomad, or another similar complex system to manage distributed containers on multiple machines, then you will probably want to **handle replication** at the **cluster level** instead of using a **process manager** (like Uvicorn with workers) in each container. + +One of those distributed container management systems like Kubernetes normally has some integrated way of handling **replication of containers** while still supporting **load balancing** for the incoming requests. All at the **cluster level**. + +In those cases, you would probably want to build a **Docker image from scratch** as [explained above](#dockerfile), installing your dependencies, and running **a single Uvicorn process** instead of using multiple Uvicorn workers. + +### Load Balancer { #load-balancer } + +When using containers, you would normally have some component **listening on the main port**. It could possibly be another container that is also a **TLS Termination Proxy** to handle **HTTPS** or some similar tool. + +As this component would take the **load** of requests and distribute that among the workers in a (hopefully) **balanced** way, it is also commonly called a **Load Balancer**. + +/// tip + +The same **TLS Termination Proxy** component used for HTTPS would probably also be a **Load Balancer**. + +/// + +And when working with containers, the same system you use to start and manage them would already have internal tools to transmit the **network communication** (e.g. HTTP requests) from that **load balancer** (that could also be a **TLS Termination Proxy**) to the container(s) with your app. + +### One Load Balancer - Multiple Worker Containers { #one-load-balancer-multiple-worker-containers } + +When working with **Kubernetes** or similar distributed container management systems, using their internal networking mechanisms would allow the single **load balancer** that is listening on the main **port** to transmit communication (requests) to possibly **multiple containers** running your app. + +Each of these containers running your app would normally have **just one process** (e.g. a Uvicorn process running your FastAPI application). They would all be **identical containers**, running the same thing, but each with its own process, memory, etc. That way you would take advantage of **parallelization** in **different cores** of the CPU, or even in **different machines**. + +And the distributed container system with the **load balancer** would **distribute the requests** to each one of the containers with your app **in turns**. So, each request could be handled by one of the multiple **replicated containers** running your app. + +And normally this **load balancer** would be able to handle requests that go to *other* apps in your cluster (e.g. to a different domain, or under a different URL path prefix), and would transmit that communication to the right containers for *that other* application running in your cluster. + +### One Process per Container { #one-process-per-container } + +In this type of scenario, you probably would want to have **a single (Uvicorn) process per container**, as you would already be handling replication at the cluster level. + +So, in this case, you **would not** want to have a multiple workers in the container, for example with the `--workers` command line option. You would want to have just a **single Uvicorn process** per container (but probably multiple containers). + +Having another process manager inside the container (as would be with multiple workers) would only add **unnecessary complexity** that you are most probably already taking care of with your cluster system. + +### Containers with Multiple Processes and Special Cases { #containers-with-multiple-processes-and-special-cases } + +Of course, there are **special cases** where you could want to have **a container** with several **Uvicorn worker processes** inside. + +In those cases, you can use the `--workers` command line option to set the number of workers that you want to run: + +```{ .dockerfile .annotate } +FROM python:3.9 + +WORKDIR /code + +COPY ./requirements.txt /code/requirements.txt + +RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt + +COPY ./app /code/app + +# (1)! +CMD ["fastapi", "run", "app/main.py", "--port", "80", "--workers", "4"] +``` + +1. Here we use the `--workers` command line option to set the number of workers to 4. + +Here are some examples of when that could make sense: + +#### A Simple App { #a-simple-app } + +You could want a process manager in the container if your application is **simple enough** that can run it on a **single server**, not a cluster. + +#### Docker Compose { #docker-compose } + +You could be deploying to a **single server** (not a cluster) with **Docker Compose**, so you wouldn't have an easy way to manage replication of containers (with Docker Compose) while preserving the shared network and **load balancing**. + +Then you could want to have **a single container** with a **process manager** starting **several worker processes** inside. + +--- + +The main point is, **none** of these are **rules written in stone** that you have to blindly follow. You can use these ideas to **evaluate your own use case** and decide what is the best approach for your system, checking out how to manage the concepts of: + +* Security - HTTPS +* Running on startup +* Restarts +* Replication (the number of processes running) +* Memory +* Previous steps before starting + +## Memory { #memory } + +If you run **a single process per container** you will have a more or less well-defined, stable, and limited amount of memory consumed by each of those containers (more than one if they are replicated). + +And then you can set those same memory limits and requirements in your configurations for your container management system (for example in **Kubernetes**). That way it will be able to **replicate the containers** in the **available machines** taking into account the amount of memory needed by them, and the amount available in the machines in the cluster. + +If your application is **simple**, this will probably **not be a problem**, and you might not need to specify hard memory limits. But if you are **using a lot of memory** (for example with **machine learning** models), you should check how much memory you are consuming and adjust the **number of containers** that runs in **each machine** (and maybe add more machines to your cluster). + +If you run **multiple processes per container** you will have to make sure that the number of processes started doesn't **consume more memory** than what is available. + +## Previous Steps Before Starting and Containers { #previous-steps-before-starting-and-containers } + +If you are using containers (e.g. Docker, Kubernetes), then there are two main approaches you can use. + +### Multiple Containers { #multiple-containers } + +If you have **multiple containers**, probably each one running a **single process** (for example, in a **Kubernetes** cluster), then you would probably want to have a **separate container** doing the work of the **previous steps** in a single container, running a single process, **before** running the replicated worker containers. + +/// info + +If you are using Kubernetes, this would probably be an Init Container. + +/// + +If in your use case there's no problem in running those previous steps **multiple times in parallel** (for example if you are not running database migrations, but just checking if the database is ready yet), then you could also just put them in each container right before starting the main process. + +### Single Container { #single-container } + +If you have a simple setup, with a **single container** that then starts multiple **worker processes** (or also just one process), then you could run those previous steps in the same container, right before starting the process with the app. + +### Base Docker Image { #base-docker-image } + +There used to be an official FastAPI Docker image: tiangolo/uvicorn-gunicorn-fastapi. But it is now deprecated. ⛔️ + +You should probably **not** use this base Docker image (or any other similar one). + +If you are using **Kubernetes** (or others) and you are already setting **replication** at the cluster level, with multiple **containers**. In those cases, you are better off **building an image from scratch** as described above: [Build a Docker Image for FastAPI](#build-a-docker-image-for-fastapi). + +And if you need to have multiple workers, you can simply use the `--workers` command line option. + +/// note | Technical Details + +The Docker image was created when Uvicorn didn't support managing and restarting dead workers, so it was needed to use Gunicorn with Uvicorn, which added quite some complexity, just to have Gunicorn manage and restart the Uvicorn worker processes. + +But now that Uvicorn (and the `fastapi` command) support using `--workers`, there's no reason to use a base Docker image instead of building your own (it's pretty much the same amount of code 😅). + +/// + +## Deploy the Container Image { #deploy-the-container-image } + +After having a Container (Docker) Image there are several ways to deploy it. + +For example: + +* With **Docker Compose** in a single server +* With a **Kubernetes** cluster +* With a Docker Swarm Mode cluster +* With another tool like Nomad +* With a cloud service that takes your container image and deploys it + +## Docker Image with `uv` { #docker-image-with-uv } + +If you are using uv to install and manage your project, you can follow their uv Docker guide. + +## Recap { #recap } + +Using container systems (e.g. with **Docker** and **Kubernetes**) it becomes fairly straightforward to handle all the **deployment concepts**: + +* HTTPS +* Running on startup +* Restarts +* Replication (the number of processes running) +* Memory +* Previous steps before starting + +In most cases, you probably won't want to use any base image, and instead **build a container image from scratch** based on the official Python Docker image. + +Taking care of the **order** of instructions in the `Dockerfile` and the **Docker cache** you can **minimize build times**, to maximize your productivity (and avoid boredom). 😎 diff --git a/docs/en/docs/deployment/fastapicloud.md b/docs/en/docs/deployment/fastapicloud.md new file mode 100644 index 0000000..b088997 --- /dev/null +++ b/docs/en/docs/deployment/fastapicloud.md @@ -0,0 +1,65 @@ +# FastAPI Cloud { #fastapi-cloud } + +You can deploy your FastAPI app to FastAPI Cloud with **one command**, go and join the waiting list if you haven't. 🚀 + +## Login { #login } + +Make sure you already have a **FastAPI Cloud** account (we invited you from the waiting list 😉). + +Then log in: + +
+ +```console +$ fastapi login + +You are logged in to FastAPI Cloud 🚀 +``` + +
+ +## Deploy { #deploy } + +Now deploy your app, with **one command**: + +
+ +```console +$ fastapi deploy + +Deploying to FastAPI Cloud... + +✅ Deployment successful! + +🐔 Ready the chicken! Your app is ready at https://myapp.fastapicloud.dev +``` + +
+ +That's it! Now you can access your app at that URL. ✨ + +## About FastAPI Cloud { #about-fastapi-cloud } + +**FastAPI Cloud** is built by the same author and team behind **FastAPI**. + +It streamlines the process of **building**, **deploying**, and **accessing** an API with minimal effort. + +It brings the same **developer experience** of building apps with FastAPI to **deploying** them to the cloud. 🎉 + +It will also take care of most of the things you would need when deploying an app, like: + +* HTTPS +* Replication, with autoscaling based on requests +* etc. + +FastAPI Cloud is the primary sponsor and funding provider for the *FastAPI and friends* open source projects. ✨ + +## Deploy to other cloud providers { #deploy-to-other-cloud-providers } + +FastAPI is open source and based on standards. You can deploy FastAPI apps to any cloud provider you choose. + +Follow your cloud provider's guides to deploy FastAPI apps with them. 🤓 + +## Deploy your own server { #deploy-your-own-server } + +I will also teach you later in this **Deployment** guide all the details, so you can understand what is going on, what needs to happen, or how to deploy FastAPI apps on your own, also with your own servers. 🤓 diff --git a/docs/en/docs/deployment/https.md b/docs/en/docs/deployment/https.md new file mode 100644 index 0000000..a249a36 --- /dev/null +++ b/docs/en/docs/deployment/https.md @@ -0,0 +1,231 @@ +# About HTTPS { #about-https } + +It is easy to assume that HTTPS is something that is just "enabled" or not. + +But it is way more complex than that. + +/// tip + +If you are in a hurry or don't care, continue with the next sections for step by step instructions to set everything up with different techniques. + +/// + +To **learn the basics of HTTPS**, from a consumer perspective, check https://howhttps.works/. + +Now, from a **developer's perspective**, here are several things to keep in mind while thinking about HTTPS: + +* For HTTPS, **the server** needs to **have "certificates"** generated by a **third party**. + * Those certificates are actually **acquired** from the third party, not "generated". +* Certificates have a **lifetime**. + * They **expire**. + * And then they need to be **renewed**, **acquired again** from the third party. +* The encryption of the connection happens at the **TCP level**. + * That's one layer **below HTTP**. + * So, the **certificate and encryption** handling is done **before HTTP**. +* **TCP doesn't know about "domains"**. Only about IP addresses. + * The information about the **specific domain** requested goes in the **HTTP data**. +* The **HTTPS certificates** "certify" a **certain domain**, but the protocol and encryption happen at the TCP level, **before knowing** which domain is being dealt with. +* **By default**, that would mean that you can only have **one HTTPS certificate per IP address**. + * No matter how big your server is or how small each application you have on it might be. + * There is a **solution** to this, however. +* There's an **extension** to the **TLS** protocol (the one handling the encryption at the TCP level, before HTTP) called **SNI**. + * This SNI extension allows one single server (with a **single IP address**) to have **several HTTPS certificates** and serve **multiple HTTPS domains/applications**. + * For this to work, a **single** component (program) running on the server, listening on the **public IP address**, must have **all the HTTPS certificates** in the server. +* **After** obtaining a secure connection, the communication protocol is **still HTTP**. + * The contents are **encrypted**, even though they are being sent with the **HTTP protocol**. + +It is a common practice to have **one program/HTTP server** running on the server (the machine, host, etc.) and **managing all the HTTPS parts**: receiving the **encrypted HTTPS requests**, sending the **decrypted HTTP requests** to the actual HTTP application running in the same server (the **FastAPI** application, in this case), take the **HTTP response** from the application, **encrypt it** using the appropriate **HTTPS certificate** and sending it back to the client using **HTTPS**. This server is often called a **TLS Termination Proxy**. + +Some of the options you could use as a TLS Termination Proxy are: + +* Traefik (that can also handle certificate renewals) +* Caddy (that can also handle certificate renewals) +* Nginx +* HAProxy + +## Let's Encrypt { #lets-encrypt } + +Before Let's Encrypt, these **HTTPS certificates** were sold by trusted third parties. + +The process to acquire one of these certificates used to be cumbersome, require quite some paperwork and the certificates were quite expensive. + +But then **Let's Encrypt** was created. + +It is a project from the Linux Foundation. It provides **HTTPS certificates for free**, in an automated way. These certificates use all the standard cryptographic security, and are short-lived (about 3 months), so the **security is actually better** because of their reduced lifespan. + +The domains are securely verified and the certificates are generated automatically. This also allows automating the renewal of these certificates. + +The idea is to automate the acquisition and renewal of these certificates so that you can have **secure HTTPS, for free, forever**. + +## HTTPS for Developers { #https-for-developers } + +Here's an example of how an HTTPS API could look like, step by step, paying attention mainly to the ideas important for developers. + +### Domain Name { #domain-name } + +It would probably all start by you **acquiring** some **domain name**. Then, you would configure it in a DNS server (possibly your same cloud provider). + +You would probably get a cloud server (a virtual machine) or something similar, and it would have a fixed **public IP address**. + +In the DNS server(s) you would configure a record (an "`A record`") to point **your domain** to the public **IP address of your server**. + +You would probably do this just once, the first time, when setting everything up. + +/// tip + +This Domain Name part is way before HTTPS, but as everything depends on the domain and the IP address, it's worth mentioning it here. + +/// + +### DNS { #dns } + +Now let's focus on all the actual HTTPS parts. + +First, the browser would check with the **DNS servers** what is the **IP for the domain**, in this case, `someapp.example.com`. + +The DNS servers would tell the browser to use some specific **IP address**. That would be the public IP address used by your server, that you configured in the DNS servers. + + + +### TLS Handshake Start { #tls-handshake-start } + +The browser would then communicate with that IP address on **port 443** (the HTTPS port). + +The first part of the communication is just to establish the connection between the client and the server and to decide the cryptographic keys they will use, etc. + + + +This interaction between the client and the server to establish the TLS connection is called the **TLS handshake**. + +### TLS with SNI Extension { #tls-with-sni-extension } + +**Only one process** in the server can be listening on a specific **port** in a specific **IP address**. There could be other processes listening on other ports in the same IP address, but only one for each combination of IP address and port. + +TLS (HTTPS) uses the specific port `443` by default. So that's the port we would need. + +As only one process can be listening on this port, the process that would do it would be the **TLS Termination Proxy**. + +The TLS Termination Proxy would have access to one or more **TLS certificates** (HTTPS certificates). + +Using the **SNI extension** discussed above, the TLS Termination Proxy would check which of the TLS (HTTPS) certificates available it should use for this connection, using the one that matches the domain expected by the client. + +In this case, it would use the certificate for `someapp.example.com`. + + + +The client already **trusts** the entity that generated that TLS certificate (in this case Let's Encrypt, but we'll see about that later), so it can **verify** that the certificate is valid. + +Then, using the certificate, the client and the TLS Termination Proxy **decide how to encrypt** the rest of the **TCP communication**. This completes the **TLS Handshake** part. + +After this, the client and the server have an **encrypted TCP connection**, this is what TLS provides. And then they can use that connection to start the actual **HTTP communication**. + +And that's what **HTTPS** is, it's just plain **HTTP** inside a **secure TLS connection** instead of a pure (unencrypted) TCP connection. + +/// tip + +Notice that the encryption of the communication happens at the **TCP level**, not at the HTTP level. + +/// + +### HTTPS Request { #https-request } + +Now that the client and server (specifically the browser and the TLS Termination Proxy) have an **encrypted TCP connection**, they can start the **HTTP communication**. + +So, the client sends an **HTTPS request**. This is just an HTTP request through an encrypted TLS connection. + + + +### Decrypt the Request { #decrypt-the-request } + +The TLS Termination Proxy would use the encryption agreed to **decrypt the request**, and would transmit the **plain (decrypted) HTTP request** to the process running the application (for example a process with Uvicorn running the FastAPI application). + + + +### HTTP Response { #http-response } + +The application would process the request and send a **plain (unencrypted) HTTP response** to the TLS Termination Proxy. + + + +### HTTPS Response { #https-response } + +The TLS Termination Proxy would then **encrypt the response** using the cryptography agreed before (that started with the certificate for `someapp.example.com`), and send it back to the browser. + +Next, the browser would verify that the response is valid and encrypted with the right cryptographic key, etc. It would then **decrypt the response** and process it. + + + +The client (browser) will know that the response comes from the correct server because it is using the cryptography they agreed using the **HTTPS certificate** before. + +### Multiple Applications { #multiple-applications } + +In the same server (or servers), there could be **multiple applications**, for example, other API programs or a database. + +Only one process can be handling the specific IP and port (the TLS Termination Proxy in our example) but the other applications/processes can be running on the server(s) too, as long as they don't try to use the same **combination of public IP and port**. + + + +That way, the TLS Termination Proxy could handle HTTPS and certificates for **multiple domains**, for multiple applications, and then transmit the requests to the right application in each case. + +### Certificate Renewal { #certificate-renewal } + +At some point in the future, each certificate would **expire** (about 3 months after acquiring it). + +And then, there would be another program (in some cases it's another program, in some cases it could be the same TLS Termination Proxy) that would talk to Let's Encrypt, and renew the certificate(s). + + + +The **TLS certificates** are **associated with a domain name**, not with an IP address. + +So, to renew the certificates, the renewal program needs to **prove** to the authority (Let's Encrypt) that it indeed **"owns" and controls that domain**. + +To do that, and to accommodate different application needs, there are several ways it can do it. Some popular ways are: + +* **Modify some DNS records**. + * For this, the renewal program needs to support the APIs of the DNS provider, so, depending on the DNS provider you are using, this might or might not be an option. +* **Run as a server** (at least during the certificate acquisition process) on the public IP address associated with the domain. + * As we said above, only one process can be listening on a specific IP and port. + * This is one of the reasons why it's very useful when the same TLS Termination Proxy also takes care of the certificate renewal process. + * Otherwise, you might have to stop the TLS Termination Proxy momentarily, start the renewal program to acquire the certificates, then configure them with the TLS Termination Proxy, and then restart the TLS Termination Proxy. This is not ideal, as your app(s) will not be available during the time that the TLS Termination Proxy is off. + +All this renewal process, while still serving the app, is one of the main reasons why you would want to have a **separate system to handle HTTPS** with a TLS Termination Proxy instead of just using the TLS certificates with the application server directly (e.g. Uvicorn). + +## Proxy Forwarded Headers { #proxy-forwarded-headers } + +When using a proxy to handle HTTPS, your **application server** (for example Uvicorn via FastAPI CLI) doesn't known anything about the HTTPS process, it communicates with plain HTTP with the **TLS Termination Proxy**. + +This **proxy** would normally set some HTTP headers on the fly before transmitting the request to the **application server**, to let the application server know that the request is being **forwarded** by the proxy. + +/// note | Technical Details + +The proxy headers are: + +* X-Forwarded-For +* X-Forwarded-Proto +* X-Forwarded-Host + +/// + +Nevertheless, as the **application server** doesn't know it is behind a trusted **proxy**, by default, it wouldn't trust those headers. + +But you can configure the **application server** to trust the *forwarded* headers sent by the **proxy**. If you are using FastAPI CLI, you can use the *CLI Option* `--forwarded-allow-ips` to tell it from which IPs it should trust those *forwarded* headers. + +For example, if the **application server** is only receiving communication from the trusted **proxy**, you can set it to `--forwarded-allow-ips="*"` to make it trust all incoming IPs, as it will only receive requests from whatever is the IP used by the **proxy**. + +This way the application would be able to know what is its own public URL, if it is using HTTPS, the domain, etc. + +This would be useful for example to properly handle redirects. + +/// tip + +You can learn more about this in the documentation for [Behind a Proxy - Enable Proxy Forwarded Headers](../advanced/behind-a-proxy.md#enable-proxy-forwarded-headers){.internal-link target=_blank} + +/// + +## Recap { #recap } + +Having **HTTPS** is very important, and quite **critical** in most cases. Most of the effort you as a developer have to put around HTTPS is just about **understanding these concepts** and how they work. + +But once you know the basic information of **HTTPS for developers** you can easily combine and configure different tools to help you manage everything in a simple way. + +In some of the next chapters, I'll show you several concrete examples of how to set up **HTTPS** for **FastAPI** applications. 🔒 diff --git a/docs/en/docs/deployment/index.md b/docs/en/docs/deployment/index.md new file mode 100644 index 0000000..8d7521e --- /dev/null +++ b/docs/en/docs/deployment/index.md @@ -0,0 +1,23 @@ +# Deployment { #deployment } + +Deploying a **FastAPI** application is relatively easy. + +## What Does Deployment Mean { #what-does-deployment-mean } + +To **deploy** an application means to perform the necessary steps to make it **available to the users**. + +For a **web API**, it normally involves putting it in a **remote machine**, with a **server program** that provides good performance, stability, etc, so that your **users** can **access** the application efficiently and without interruptions or problems. + +This is in contrast to the **development** stages, where you are constantly changing the code, breaking it and fixing it, stopping and restarting the development server, etc. + +## Deployment Strategies { #deployment-strategies } + +There are several ways to do it depending on your specific use case and the tools that you use. + +You could **deploy a server** yourself using a combination of tools, you could use a **cloud service** that does part of the work for you, or other possible options. + +For example, we, the team behind FastAPI, built **FastAPI Cloud**, to make deploying FastAPI apps to the cloud as streamlined as possible, with the same developer experience of working with FastAPI. + +I will show you some of the main concepts you should probably keep in mind when deploying a **FastAPI** application (although most of it applies to any other type of web application). + +You will see more details to keep in mind and some of the techniques to do it in the next sections. ✨ diff --git a/docs/en/docs/deployment/manually.md b/docs/en/docs/deployment/manually.md new file mode 100644 index 0000000..311efb9 --- /dev/null +++ b/docs/en/docs/deployment/manually.md @@ -0,0 +1,157 @@ +# Run a Server Manually { #run-a-server-manually } + +## Use the `fastapi run` Command { #use-the-fastapi-run-command } + +In short, use `fastapi run` to serve your FastAPI application: + +
+ +```console +$ fastapi run main.py + + FastAPI Starting production server 🚀 + + Searching for package file structure from directories + with __init__.py files + Importing from /home/user/code/awesomeapp + + module 🐍 main.py + + code Importing the FastAPI app object from the module with + the following code: + + from main import app + + app Using import string: main:app + + server Server started at http://0.0.0.0:8000 + server Documentation at http://0.0.0.0:8000/docs + + Logs: + + INFO Started server process [2306215] + INFO Waiting for application startup. + INFO Application startup complete. + INFO Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C + to quit) +``` + +
+ +That would work for most of the cases. 😎 + +You could use that command for example to start your **FastAPI** app in a container, in a server, etc. + +## ASGI Servers { #asgi-servers } + +Let's go a little deeper into the details. + +FastAPI uses a standard for building Python web frameworks and servers called ASGI. FastAPI is an ASGI web framework. + +The main thing you need to run a **FastAPI** application (or any other ASGI application) in a remote server machine is an ASGI server program like **Uvicorn**, this is the one that comes by default in the `fastapi` command. + +There are several alternatives, including: + +* Uvicorn: a high performance ASGI server. +* Hypercorn: an ASGI server compatible with HTTP/2 and Trio among other features. +* Daphne: the ASGI server built for Django Channels. +* Granian: A Rust HTTP server for Python applications. +* NGINX Unit: NGINX Unit is a lightweight and versatile web application runtime. + +## Server Machine and Server Program { #server-machine-and-server-program } + +There's a small detail about names to keep in mind. 💡 + +The word "**server**" is commonly used to refer to both the remote/cloud computer (the physical or virtual machine) and also the program that is running on that machine (e.g. Uvicorn). + +Just keep in mind that when you read "server" in general, it could refer to one of those two things. + +When referring to the remote machine, it's common to call it **server**, but also **machine**, **VM** (virtual machine), **node**. Those all refer to some type of remote machine, normally running Linux, where you run programs. + +## Install the Server Program { #install-the-server-program } + +When you install FastAPI, it comes with a production server, Uvicorn, and you can start it with the `fastapi run` command. + +But you can also install an ASGI server manually. + +Make sure you create a [virtual environment](../virtual-environments.md){.internal-link target=_blank}, activate it, and then you can install the server application. + +For example, to install Uvicorn: + +
+ +```console +$ pip install "uvicorn[standard]" + +---> 100% +``` + +
+ +A similar process would apply to any other ASGI server program. + +/// tip + +By adding the `standard`, Uvicorn will install and use some recommended extra dependencies. + +That including `uvloop`, the high-performance drop-in replacement for `asyncio`, that provides the big concurrency performance boost. + +When you install FastAPI with something like `pip install "fastapi[standard]"` you already get `uvicorn[standard]` as well. + +/// + +## Run the Server Program { #run-the-server-program } + +If you installed an ASGI server manually, you would normally need to pass an import string in a special format for it to import your FastAPI application: + +
+ +```console +$ uvicorn main:app --host 0.0.0.0 --port 80 + +INFO: Uvicorn running on http://0.0.0.0:80 (Press CTRL+C to quit) +``` + +
+ +/// note + +The command `uvicorn main:app` refers to: + +* `main`: the file `main.py` (the Python "module"). +* `app`: the object created inside of `main.py` with the line `app = FastAPI()`. + +It is equivalent to: + +```Python +from main import app +``` + +/// + +Each alternative ASGI server program would have a similar command, you can read more in their respective documentation. + +/// warning + +Uvicorn and other servers support a `--reload` option that is useful during development. + +The `--reload` option consumes much more resources, is more unstable, etc. + +It helps a lot during **development**, but you **shouldn't** use it in **production**. + +/// + +## Deployment Concepts { #deployment-concepts } + +These examples run the server program (e.g Uvicorn), starting **a single process**, listening on all the IPs (`0.0.0.0`) on a predefined port (e.g. `80`). + +This is the basic idea. But you will probably want to take care of some additional things, like: + +* Security - HTTPS +* Running on startup +* Restarts +* Replication (the number of processes running) +* Memory +* Previous steps before starting + +I'll tell you more about each of these concepts, how to think about them, and some concrete examples with strategies to handle them in the next chapters. 🚀 diff --git a/docs/en/docs/deployment/server-workers.md b/docs/en/docs/deployment/server-workers.md new file mode 100644 index 0000000..0351e8b --- /dev/null +++ b/docs/en/docs/deployment/server-workers.md @@ -0,0 +1,139 @@ +# Server Workers - Uvicorn with Workers { #server-workers-uvicorn-with-workers } + +Let's check back those deployment concepts from before: + +* Security - HTTPS +* Running on startup +* Restarts +* **Replication (the number of processes running)** +* Memory +* Previous steps before starting + +Up to this point, with all the tutorials in the docs, you have probably been running a **server program**, for example, using the `fastapi` command, that runs Uvicorn, running a **single process**. + +When deploying applications you will probably want to have some **replication of processes** to take advantage of **multiple cores** and to be able to handle more requests. + +As you saw in the previous chapter about [Deployment Concepts](concepts.md){.internal-link target=_blank}, there are multiple strategies you can use. + +Here I'll show you how to use **Uvicorn** with **worker processes** using the `fastapi` command or the `uvicorn` command directly. + +/// info + +If you are using containers, for example with Docker or Kubernetes, I'll tell you more about that in the next chapter: [FastAPI in Containers - Docker](docker.md){.internal-link target=_blank}. + +In particular, when running on **Kubernetes** you will probably **not** want to use workers and instead run **a single Uvicorn process per container**, but I'll tell you about it later in that chapter. + +/// + +## Multiple Workers { #multiple-workers } + +You can start multiple workers with the `--workers` command line option: + +//// tab | `fastapi` + +If you use the `fastapi` command: + +
+ +```console +$ fastapi run --workers 4 main.py + + FastAPI Starting production server 🚀 + + Searching for package file structure from directories with + __init__.py files + Importing from /home/user/code/awesomeapp + + module 🐍 main.py + + code Importing the FastAPI app object from the module with the + following code: + + from main import app + + app Using import string: main:app + + server Server started at http://0.0.0.0:8000 + server Documentation at http://0.0.0.0:8000/docs + + Logs: + + INFO Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to + quit) + INFO Started parent process [27365] + INFO Started server process [27368] + INFO Started server process [27369] + INFO Started server process [27370] + INFO Started server process [27367] + INFO Waiting for application startup. + INFO Waiting for application startup. + INFO Waiting for application startup. + INFO Waiting for application startup. + INFO Application startup complete. + INFO Application startup complete. + INFO Application startup complete. + INFO Application startup complete. +``` + +
+ +//// + +//// tab | `uvicorn` + +If you prefer to use the `uvicorn` command directly: + +
+ +```console +$ uvicorn main:app --host 0.0.0.0 --port 8080 --workers 4 +INFO: Uvicorn running on http://0.0.0.0:8080 (Press CTRL+C to quit) +INFO: Started parent process [27365] +INFO: Started server process [27368] +INFO: Waiting for application startup. +INFO: Application startup complete. +INFO: Started server process [27369] +INFO: Waiting for application startup. +INFO: Application startup complete. +INFO: Started server process [27370] +INFO: Waiting for application startup. +INFO: Application startup complete. +INFO: Started server process [27367] +INFO: Waiting for application startup. +INFO: Application startup complete. +``` + +
+ +//// + +The only new option here is `--workers` telling Uvicorn to start 4 worker processes. + +You can also see that it shows the **PID** of each process, `27365` for the parent process (this is the **process manager**) and one for each worker process: `27368`, `27369`, `27370`, and `27367`. + +## Deployment Concepts { #deployment-concepts } + +Here you saw how to use multiple **workers** to **parallelize** the execution of the application, take advantage of **multiple cores** in the CPU, and be able to serve **more requests**. + +From the list of deployment concepts from above, using workers would mainly help with the **replication** part, and a little bit with the **restarts**, but you still need to take care of the others: + +* **Security - HTTPS** +* **Running on startup** +* ***Restarts*** +* Replication (the number of processes running) +* **Memory** +* **Previous steps before starting** + +## Containers and Docker { #containers-and-docker } + +In the next chapter about [FastAPI in Containers - Docker](docker.md){.internal-link target=_blank} I'll explain some strategies you could use to handle the other **deployment concepts**. + +I'll show you how to **build your own image from scratch** to run a single Uvicorn process. It is a simple process and is probably what you would want to do when using a distributed container management system like **Kubernetes**. + +## Recap { #recap } + +You can use multiple worker processes with the `--workers` CLI option with the `fastapi` or `uvicorn` commands to take advantage of **multi-core CPUs**, to run **multiple processes in parallel**. + +You could use these tools and ideas if you are setting up **your own deployment system** while taking care of the other deployment concepts yourself. + +Check out the next chapter to learn about **FastAPI** with containers (e.g. Docker and Kubernetes). You will see that those tools have simple ways to solve the other **deployment concepts** as well. ✨ diff --git a/docs/en/docs/deployment/versions.md b/docs/en/docs/deployment/versions.md new file mode 100644 index 0000000..15b4491 --- /dev/null +++ b/docs/en/docs/deployment/versions.md @@ -0,0 +1,93 @@ +# About FastAPI versions { #about-fastapi-versions } + +**FastAPI** is already being used in production in many applications and systems. And the test coverage is kept at 100%. But its development is still moving quickly. + +New features are added frequently, bugs are fixed regularly, and the code is still continuously improving. + +That's why the current versions are still `0.x.x`, this reflects that each version could potentially have breaking changes. This follows the Semantic Versioning conventions. + +You can create production applications with **FastAPI** right now (and you have probably been doing it for some time), you just have to make sure that you use a version that works correctly with the rest of your code. + +## Pin your `fastapi` version { #pin-your-fastapi-version } + +The first thing you should do is to "pin" the version of **FastAPI** you are using to the specific latest version that you know works correctly for your application. + +For example, let's say you are using version `0.112.0` in your app. + +If you use a `requirements.txt` file you could specify the version with: + +```txt +fastapi[standard]==0.112.0 +``` + +that would mean that you would use exactly the version `0.112.0`. + +Or you could also pin it with: + +```txt +fastapi[standard]>=0.112.0,<0.113.0 +``` + +that would mean that you would use the versions `0.112.0` or above, but less than `0.113.0`, for example, a version `0.112.2` would still be accepted. + +If you use any other tool to manage your installations, like `uv`, Poetry, Pipenv, or others, they all have a way that you can use to define specific versions for your packages. + +## Available versions { #available-versions } + +You can see the available versions (e.g. to check what is the current latest) in the [Release Notes](../release-notes.md){.internal-link target=_blank}. + +## About versions { #about-versions } + +Following the Semantic Versioning conventions, any version below `1.0.0` could potentially add breaking changes. + +FastAPI also follows the convention that any "PATCH" version change is for bug fixes and non-breaking changes. + +/// tip + +The "PATCH" is the last number, for example, in `0.2.3`, the PATCH version is `3`. + +/// + +So, you should be able to pin to a version like: + +```txt +fastapi>=0.45.0,<0.46.0 +``` + +Breaking changes and new features are added in "MINOR" versions. + +/// tip + +The "MINOR" is the number in the middle, for example, in `0.2.3`, the MINOR version is `2`. + +/// + +## Upgrading the FastAPI versions { #upgrading-the-fastapi-versions } + +You should add tests for your app. + +With **FastAPI** it's very easy (thanks to Starlette), check the docs: [Testing](../tutorial/testing.md){.internal-link target=_blank} + +After you have tests, then you can upgrade the **FastAPI** version to a more recent one, and make sure that all your code is working correctly by running your tests. + +If everything is working, or after you make the necessary changes, and all your tests are passing, then you can pin your `fastapi` to that new recent version. + +## About Starlette { #about-starlette } + +You shouldn't pin the version of `starlette`. + +Different versions of **FastAPI** will use a specific newer version of Starlette. + +So, you can just let **FastAPI** use the correct Starlette version. + +## About Pydantic { #about-pydantic } + +Pydantic includes the tests for **FastAPI** with its own tests, so new versions of Pydantic (above `1.0.0`) are always compatible with FastAPI. + +You can pin Pydantic to any version above `1.0.0` that works for you. + +For example: + +```txt +pydantic>=2.7.0,<3.0.0 +``` diff --git a/docs/en/docs/environment-variables.md b/docs/en/docs/environment-variables.md new file mode 100644 index 0000000..1dbd935 --- /dev/null +++ b/docs/en/docs/environment-variables.md @@ -0,0 +1,298 @@ +# Environment Variables { #environment-variables } + +/// tip + +If you already know what "environment variables" are and how to use them, feel free to skip this. + +/// + +An environment variable (also known as "**env var**") is a variable that lives **outside** of the Python code, in the **operating system**, and could be read by your Python code (or by other programs as well). + +Environment variables could be useful for handling application **settings**, as part of the **installation** of Python, etc. + +## Create and Use Env Vars { #create-and-use-env-vars } + +You can **create** and use environment variables in the **shell (terminal)**, without needing Python: + +//// tab | Linux, macOS, Windows Bash + +
+ +```console +// You could create an env var MY_NAME with +$ export MY_NAME="Wade Wilson" + +// Then you could use it with other programs, like +$ echo "Hello $MY_NAME" + +Hello Wade Wilson +``` + +
+ +//// + +//// tab | Windows PowerShell + +
+ +```console +// Create an env var MY_NAME +$ $Env:MY_NAME = "Wade Wilson" + +// Use it with other programs, like +$ echo "Hello $Env:MY_NAME" + +Hello Wade Wilson +``` + +
+ +//// + +## Read env vars in Python { #read-env-vars-in-python } + +You could also create environment variables **outside** of Python, in the terminal (or with any other method), and then **read them in Python**. + +For example you could have a file `main.py` with: + +```Python hl_lines="3" +import os + +name = os.getenv("MY_NAME", "World") +print(f"Hello {name} from Python") +``` + +/// tip + +The second argument to `os.getenv()` is the default value to return. + +If not provided, it's `None` by default, here we provide `"World"` as the default value to use. + +/// + +Then you could call that Python program: + +//// tab | Linux, macOS, Windows Bash + +
+ +```console +// Here we don't set the env var yet +$ python main.py + +// As we didn't set the env var, we get the default value + +Hello World from Python + +// But if we create an environment variable first +$ export MY_NAME="Wade Wilson" + +// And then call the program again +$ python main.py + +// Now it can read the environment variable + +Hello Wade Wilson from Python +``` + +
+ +//// + +//// tab | Windows PowerShell + +
+ +```console +// Here we don't set the env var yet +$ python main.py + +// As we didn't set the env var, we get the default value + +Hello World from Python + +// But if we create an environment variable first +$ $Env:MY_NAME = "Wade Wilson" + +// And then call the program again +$ python main.py + +// Now it can read the environment variable + +Hello Wade Wilson from Python +``` + +
+ +//// + +As environment variables can be set outside of the code, but can be read by the code, and don't have to be stored (committed to `git`) with the rest of the files, it's common to use them for configurations or **settings**. + +You can also create an environment variable only for a **specific program invocation**, that is only available to that program, and only for its duration. + +To do that, create it right before the program itself, on the same line: + +
+ +```console +// Create an env var MY_NAME in line for this program call +$ MY_NAME="Wade Wilson" python main.py + +// Now it can read the environment variable + +Hello Wade Wilson from Python + +// The env var no longer exists afterwards +$ python main.py + +Hello World from Python +``` + +
+ +/// tip + +You can read more about it at The Twelve-Factor App: Config. + +/// + +## Types and Validation { #types-and-validation } + +These environment variables can only handle **text strings**, as they are external to Python and have to be compatible with other programs and the rest of the system (and even with different operating systems, as Linux, Windows, macOS). + +That means that **any value** read in Python from an environment variable **will be a `str`**, and any conversion to a different type or any validation has to be done in code. + +You will learn more about using environment variables for handling **application settings** in the [Advanced User Guide - Settings and Environment Variables](./advanced/settings.md){.internal-link target=_blank}. + +## `PATH` Environment Variable { #path-environment-variable } + +There is a **special** environment variable called **`PATH`** that is used by the operating systems (Linux, macOS, Windows) to find programs to run. + +The value of the variable `PATH` is a long string that is made of directories separated by a colon `:` on Linux and macOS, and by a semicolon `;` on Windows. + +For example, the `PATH` environment variable could look like this: + +//// tab | Linux, macOS + +```plaintext +/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin +``` + +This means that the system should look for programs in the directories: + +* `/usr/local/bin` +* `/usr/bin` +* `/bin` +* `/usr/sbin` +* `/sbin` + +//// + +//// tab | Windows + +```plaintext +C:\Program Files\Python312\Scripts;C:\Program Files\Python312;C:\Windows\System32 +``` + +This means that the system should look for programs in the directories: + +* `C:\Program Files\Python312\Scripts` +* `C:\Program Files\Python312` +* `C:\Windows\System32` + +//// + +When you type a **command** in the terminal, the operating system **looks for** the program in **each of those directories** listed in the `PATH` environment variable. + +For example, when you type `python` in the terminal, the operating system looks for a program called `python` in the **first directory** in that list. + +If it finds it, then it will **use it**. Otherwise it keeps looking in the **other directories**. + +### Installing Python and Updating the `PATH` { #installing-python-and-updating-the-path } + +When you install Python, you might be asked if you want to update the `PATH` environment variable. + +//// tab | Linux, macOS + +Let's say you install Python and it ends up in a directory `/opt/custompython/bin`. + +If you say yes to update the `PATH` environment variable, then the installer will add `/opt/custompython/bin` to the `PATH` environment variable. + +It could look like this: + +```plaintext +/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/custompython/bin +``` + +This way, when you type `python` in the terminal, the system will find the Python program in `/opt/custompython/bin` (the last directory) and use that one. + +//// + +//// tab | Windows + +Let's say you install Python and it ends up in a directory `C:\opt\custompython\bin`. + +If you say yes to update the `PATH` environment variable, then the installer will add `C:\opt\custompython\bin` to the `PATH` environment variable. + +```plaintext +C:\Program Files\Python312\Scripts;C:\Program Files\Python312;C:\Windows\System32;C:\opt\custompython\bin +``` + +This way, when you type `python` in the terminal, the system will find the Python program in `C:\opt\custompython\bin` (the last directory) and use that one. + +//// + +So, if you type: + +
+ +```console +$ python +``` + +
+ +//// tab | Linux, macOS + +The system will **find** the `python` program in `/opt/custompython/bin` and run it. + +It would be roughly equivalent to typing: + +
+ +```console +$ /opt/custompython/bin/python +``` + +
+ +//// + +//// tab | Windows + +The system will **find** the `python` program in `C:\opt\custompython\bin\python` and run it. + +It would be roughly equivalent to typing: + +
+ +```console +$ C:\opt\custompython\bin\python +``` + +
+ +//// + +This information will be useful when learning about [Virtual Environments](virtual-environments.md){.internal-link target=_blank}. + +## Conclusion { #conclusion } + +With this you should have a basic understanding of what **environment variables** are and how to use them in Python. + +You can also read more about them in the Wikipedia for Environment Variable. + +In many cases it's not very obvious how environment variables would be useful and applicable right away. But they keep showing up in many different scenarios when you are developing, so it's good to know about them. + +For example, you will need this information in the next section, about [Virtual Environments](virtual-environments.md). diff --git a/docs/en/docs/external-links.md b/docs/en/docs/external-links.md new file mode 100644 index 0000000..3ed04e5 --- /dev/null +++ b/docs/en/docs/external-links.md @@ -0,0 +1,39 @@ +# External Links and Articles + +**FastAPI** has a great community constantly growing. + +There are many posts, articles, tools, and projects, related to **FastAPI**. + +Here's an incomplete list of some of them. + +/// tip + +If you have an article, project, tool, or anything related to **FastAPI** that is not yet listed here, create a Pull Request adding it. + +/// + +{% for section_name, section_content in external_links.items() %} + +## {{ section_name }} + +{% for lang_name, lang_content in section_content.items() %} + +### {{ lang_name }} + +{% for item in lang_content %} + +* {{ item.title }} by {{ item.author }}. + +{% endfor %} +{% endfor %} +{% endfor %} + +## GitHub Repositories + +Most starred GitHub repositories with the topic `fastapi`: + +{% for repo in topic_repos %} + +★ {{repo.stars}} - {{repo.name}} by @{{repo.owner_login}}. + +{% endfor %} diff --git a/docs/en/docs/fastapi-cli.md b/docs/en/docs/fastapi-cli.md new file mode 100644 index 0000000..3e5f4e3 --- /dev/null +++ b/docs/en/docs/fastapi-cli.md @@ -0,0 +1,75 @@ +# FastAPI CLI { #fastapi-cli } + +**FastAPI CLI** is a command line program that you can use to serve your FastAPI app, manage your FastAPI project, and more. + +When you install FastAPI (e.g. with `pip install "fastapi[standard]"`), it includes a package called `fastapi-cli`, this package provides the `fastapi` command in the terminal. + +To run your FastAPI app for development, you can use the `fastapi dev` command: + +
+ +```console +$ fastapi dev main.py + + FastAPI Starting development server 🚀 + + Searching for package file structure from directories with + __init__.py files + Importing from /home/user/code/awesomeapp + + module 🐍 main.py + + code Importing the FastAPI app object from the module with the + following code: + + from main import app + + app Using import string: main:app + + server Server started at http://127.0.0.1:8000 + server Documentation at http://127.0.0.1:8000/docs + + tip Running in development mode, for production use: + fastapi run + + Logs: + + 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 [383138] using WatchFiles + INFO Started server process [383153] + INFO Waiting for application startup. + INFO Application startup complete. +``` + +
+ +The command line program called `fastapi` is **FastAPI CLI**. + +FastAPI CLI takes the path to your Python program (e.g. `main.py`) and automatically detects the `FastAPI` instance (commonly named `app`), determines the correct import process, and then serves it. + +For production you would use `fastapi run` instead. 🚀 + +Internally, **FastAPI CLI** uses Uvicorn, a high-performance, production-ready, ASGI server. 😎 + +## `fastapi dev` { #fastapi-dev } + +Running `fastapi dev` initiates development mode. + +By default, **auto-reload** is enabled, automatically reloading the server when you make changes to your code. This is resource-intensive and could be less stable than when it's disabled. You should only use it for development. It also listens on the IP address `127.0.0.1`, which is the IP for your machine to communicate with itself alone (`localhost`). + +## `fastapi run` { #fastapi-run } + +Executing `fastapi run` starts FastAPI in production mode by default. + +By default, **auto-reload** is disabled. It also listens on the IP address `0.0.0.0`, which means all the available IP addresses, this way it will be publicly accessible to anyone that can communicate with the machine. This is how you would normally run it in production, for example, in a container. + +In most cases you would (and should) have a "termination proxy" handling HTTPS for you on top, this will depend on how you deploy your application, your provider might do this for you, or you might need to set it up yourself. + +/// tip + +You can learn more about it in the [deployment documentation](deployment/index.md){.internal-link target=_blank}. + +/// diff --git a/docs/en/docs/fastapi-people.md b/docs/en/docs/fastapi-people.md new file mode 100644 index 0000000..f2ca260 --- /dev/null +++ b/docs/en/docs/fastapi-people.md @@ -0,0 +1,305 @@ +--- +hide: + - navigation +--- + +# FastAPI People + +FastAPI has an amazing community that welcomes people from all backgrounds. + +## Creator + +Hey! 👋 + +This is me: + +
+{% for user in people.maintainers %} + +
@{{ contributors.tiangolo.login }}
Answers: {{ user.answers }}
Pull Requests: {{ contributors.tiangolo.count }}
+{% endfor %} + +
+ +I'm the creator of **FastAPI**. You can read more about that in [Help FastAPI - Get Help - Connect with the author](help-fastapi.md#connect-with-the-author){.internal-link target=_blank}. + +...But here I want to show you the community. + +--- + +**FastAPI** receives a lot of support from the community. And I want to highlight their contributions. + +These are the people that: + +* [Help others with questions in GitHub](help-fastapi.md#help-others-with-questions-in-github){.internal-link target=_blank}. +* [Create Pull Requests](help-fastapi.md#create-a-pull-request){.internal-link target=_blank}. +* Review Pull Requests, [especially important for translations](contributing.md#translations){.internal-link target=_blank}. +* Help [manage the repository](management-tasks.md){.internal-link target=_blank} (team members). + +All these tasks help maintain the repository. + +A round of applause to them. 👏 🙇 + +## Team + +This is the current list of team members. 😎 + +They have different levels of involvement and permissions, they can perform [repository management tasks](./management-tasks.md){.internal-link target=_blank} and together we [manage the FastAPI repository](./management.md){.internal-link target=_blank}. + +
+ +{% for user in members["members"] %} + + + +{% endfor %} + +
+ +Although the team members have the permissions to perform privileged tasks, all the [help from others maintaining FastAPI](./help-fastapi.md#help-maintain-fastapi){.internal-link target=_blank} is very much appreciated! 🙇‍♂️ + +## FastAPI Experts + +These are the users that have been [helping others the most with questions in GitHub](help-fastapi.md#help-others-with-questions-in-github){.internal-link target=_blank}. 🙇 + +They have proven to be **FastAPI Experts** by helping many others. ✨ + +/// tip + +You could become an official FastAPI Expert too! + +Just [help others with questions in GitHub](help-fastapi.md#help-others-with-questions-in-github){.internal-link target=_blank}. 🤓 + +/// + +You can see the **FastAPI Experts** for: + +* [Last Month](#fastapi-experts-last-month) 🤓 +* [3 Months](#fastapi-experts-3-months) 😎 +* [6 Months](#fastapi-experts-6-months) 🧐 +* [1 Year](#fastapi-experts-1-year) 🧑‍🔬 +* [**All Time**](#fastapi-experts-all-time) 🧙 + +### FastAPI Experts - Last Month + +These are the users that have been [helping others the most with questions in GitHub](help-fastapi.md#help-others-with-questions-in-github){.internal-link target=_blank} during the last month. 🤓 + +
+ +{% for user in people.last_month_experts[:10] %} + +{% if user.login not in skip_users %} + +
@{{ user.login }}
Questions replied: {{ user.count }}
+ +{% endif %} + +{% endfor %} + +
+ +### FastAPI Experts - 3 Months + +These are the users that have been [helping others the most with questions in GitHub](help-fastapi.md#help-others-with-questions-in-github){.internal-link target=_blank} during the last 3 months. 😎 + +
+ +{% for user in people.three_months_experts[:10] %} + +{% if user.login not in skip_users %} + +
@{{ user.login }}
Questions replied: {{ user.count }}
+ +{% endif %} + +{% endfor %} + +
+ +### FastAPI Experts - 6 Months + +These are the users that have been [helping others the most with questions in GitHub](help-fastapi.md#help-others-with-questions-in-github){.internal-link target=_blank} during the last 6 months. 🧐 + +
+ +{% for user in people.six_months_experts[:10] %} + +{% if user.login not in skip_users %} + +
@{{ user.login }}
Questions replied: {{ user.count }}
+ +{% endif %} + +{% endfor %} + +
+ +### FastAPI Experts - 1 Year + +These are the users that have been [helping others the most with questions in GitHub](help-fastapi.md#help-others-with-questions-in-github){.internal-link target=_blank} during the last year. 🧑‍🔬 + +
+ +{% for user in people.one_year_experts[:20] %} + +{% if user.login not in skip_users %} + +
@{{ user.login }}
Questions replied: {{ user.count }}
+ +{% endif %} + +{% endfor %} + +
+ +### FastAPI Experts - All Time + +Here are the all time **FastAPI Experts**. 🤓🤯 + +These are the users that have [helped others the most with questions in GitHub](help-fastapi.md#help-others-with-questions-in-github){.internal-link target=_blank} through *all time*. 🧙 + +
+ +{% for user in people.experts[:50] %} + +{% if user.login not in skip_users %} + +
@{{ user.login }}
Questions replied: {{ user.count }}
+ +{% endif %} + +{% endfor %} + +
+ +## Top Contributors + +Here are the **Top Contributors**. 👷 + +These users have [created the most Pull Requests](help-fastapi.md#create-a-pull-request){.internal-link target=_blank} that have been *merged*. + +They have contributed source code, documentation, etc. 📦 + +
+ +{% for user in (contributors.values() | list)[:50] %} + +{% if user.login not in skip_users %} + +
@{{ user.login }}
Pull Requests: {{ user.count }}
+ +{% endif %} + +{% endfor %} + +
+ +There are hundreds of other contributors, you can see them all in the FastAPI GitHub Contributors page. 👷 + +## Top Translators + +These are the **Top Translators**. 🌐 + +These users have created the most Pull Requests with [translations to other languages](contributing.md#translations){.internal-link target=_blank} that have been *merged*. + +
+ +{% for user in (translators.values() | list)[:50] %} + +{% if user.login not in skip_users %} + +
@{{ user.login }}
Translations: {{ user.count }}
+ +{% endif %} + +{% endfor %} + +
+ +## Top Translation Reviewers + +These users are the **Top Translation Reviewers**. 🕵️ + +I only speak a few languages (and not very well 😅). So, the reviewers are the ones that have the [**power to approve translations**](contributing.md#translations){.internal-link target=_blank} of the documentation. Without them, there wouldn't be documentation in several other languages. + +
+{% for user in (translation_reviewers.values() | list)[:50] %} + +{% if user.login not in skip_users %} + +
@{{ user.login }}
Reviews: {{ user.count }}
+ +{% endif %} + +{% endfor %} + +
+ +## Sponsors + +These are the **Sponsors**. 😎 + +They are supporting my work with **FastAPI** (and others), mainly through GitHub Sponsors. + +{% if sponsors %} + +{% if sponsors.gold %} + +### Gold Sponsors + +{% for sponsor in sponsors.gold -%} + +{% endfor %} +{% endif %} + +{% if sponsors.silver %} + +### Silver Sponsors + +{% for sponsor in sponsors.silver -%} + +{% endfor %} +{% endif %} + +{% if sponsors.bronze %} + +### Bronze Sponsors + +{% for sponsor in sponsors.bronze -%} + +{% endfor %} +{% endif %} + +{% endif %} + +### Individual Sponsors + +{% if github_sponsors %} +{% for group in github_sponsors.sponsors %} + +
+ +{% for user in group %} +{% if user.login not in sponsors_badge.logins %} + + + +{% endif %} +{% endfor %} + +
+ +{% endfor %} +{% endif %} + +## About the data - technical details + +The main intention of this page is to highlight the effort of the community to help others. + +Especially including efforts that are normally less visible, and in many cases more arduous, like helping others with questions and reviewing Pull Requests with translations. + +The data is calculated each month, you can read the source code here. + +Here I'm also highlighting contributions from sponsors. + +I also reserve the right to update the algorithm, sections, thresholds, etc (just in case 🤷). diff --git a/docs/en/docs/features.md b/docs/en/docs/features.md new file mode 100644 index 0000000..a345e4a --- /dev/null +++ b/docs/en/docs/features.md @@ -0,0 +1,201 @@ +# Features { #features } + +## FastAPI features { #fastapi-features } + +**FastAPI** gives you the following: + +### Based on open standards { #based-on-open-standards } + +* OpenAPI for API creation, including declarations of path operations, parameters, request bodies, security, etc. +* Automatic data model documentation with JSON Schema (as OpenAPI itself is based on JSON Schema). +* Designed around these standards, after a meticulous study. Instead of an afterthought layer on top. +* This also allows using automatic **client code generation** in many languages. + +### Automatic docs { #automatic-docs } + +Interactive API documentation and exploration web user interfaces. As the framework is based on OpenAPI, there are multiple options, 2 included by default. + +* Swagger UI, with interactive exploration, call and test your API directly from the browser. + +![Swagger UI interaction](https://fastapi.tiangolo.com/img/index/index-03-swagger-02.png) + +* Alternative API documentation with ReDoc. + +![ReDoc](https://fastapi.tiangolo.com/img/index/index-06-redoc-02.png) + +### Just Modern Python { #just-modern-python } + +It's all based on standard **Python type** declarations (thanks to Pydantic). No new syntax to learn. Just standard modern Python. + +If you need a 2 minute refresher of how to use Python types (even if you don't use FastAPI), check the short tutorial: [Python Types](python-types.md){.internal-link target=_blank}. + +You write standard Python with types: + +```Python +from datetime import date + +from pydantic import BaseModel + +# Declare a variable as a str +# and get editor support inside the function +def main(user_id: str): + return user_id + + +# A Pydantic model +class User(BaseModel): + id: int + name: str + joined: date +``` + +That can then be used like: + +```Python +my_user: User = User(id=3, name="John Doe", joined="2018-07-19") + +second_user_data = { + "id": 4, + "name": "Mary", + "joined": "2018-11-30", +} + +my_second_user: User = User(**second_user_data) +``` + +/// info + +`**second_user_data` means: + +Pass the keys and values of the `second_user_data` dict directly as key-value arguments, equivalent to: `User(id=4, name="Mary", joined="2018-11-30")` + +/// + +### Editor support { #editor-support } + +All the framework was designed to be easy and intuitive to use, all the decisions were tested on multiple editors even before starting development, to ensure the best development experience. + +In the Python developer surveys, it's clear that one of the most used features is "autocompletion". + +The whole **FastAPI** framework is based to satisfy that. Autocompletion works everywhere. + +You will rarely need to come back to the docs. + +Here's how your editor might help you: + +* in Visual Studio Code: + +![editor support](https://fastapi.tiangolo.com/img/vscode-completion.png) + +* in PyCharm: + +![editor support](https://fastapi.tiangolo.com/img/pycharm-completion.png) + +You will get completion in code you might even consider impossible before. As for example, the `price` key inside a JSON body (that could have been nested) that comes from a request. + +No more typing the wrong key names, coming back and forth between docs, or scrolling up and down to find if you finally used `username` or `user_name`. + +### Short { #short } + +It has sensible **defaults** for everything, with optional configurations everywhere. All the parameters can be fine-tuned to do what you need and to define the API you need. + +But by default, it all **"just works"**. + +### Validation { #validation } + +* Validation for most (or all?) Python **data types**, including: + * JSON objects (`dict`). + * JSON array (`list`) defining item types. + * String (`str`) fields, defining min and max lengths. + * Numbers (`int`, `float`) with min and max values, etc. + +* Validation for more exotic types, like: + * URL. + * Email. + * UUID. + * ...and others. + +All the validation is handled by the well-established and robust **Pydantic**. + +### Security and authentication { #security-and-authentication } + +Security and authentication integrated. Without any compromise with databases or data models. + +All the security schemes defined in OpenAPI, including: + +* HTTP Basic. +* **OAuth2** (also with **JWT tokens**). Check the tutorial on [OAuth2 with JWT](tutorial/security/oauth2-jwt.md){.internal-link target=_blank}. +* API keys in: + * Headers. + * Query parameters. + * Cookies, etc. + +Plus all the security features from Starlette (including **session cookies**). + +All built as reusable tools and components that are easy to integrate with your systems, data stores, relational and NoSQL databases, etc. + +### Dependency Injection { #dependency-injection } + +FastAPI includes an extremely easy to use, but extremely powerful Dependency Injection system. + +* Even dependencies can have dependencies, creating a hierarchy or **"graph" of dependencies**. +* All **automatically handled** by the framework. +* All the dependencies can require data from requests and **augment the path operation** constraints and automatic documentation. +* **Automatic validation** even for *path operation* parameters defined in dependencies. +* Support for complex user authentication systems, **database connections**, etc. +* **No compromise** with databases, frontends, etc. But easy integration with all of them. + +### Unlimited "plug-ins" { #unlimited-plug-ins } + +Or in other way, no need for them, import and use the code you need. + +Any integration is designed to be so simple to use (with dependencies) that you can create a "plug-in" for your application in 2 lines of code using the same structure and syntax used for your *path operations*. + +### Tested { #tested } + +* 100% test coverage. +* 100% type annotated code base. +* Used in production applications. + +## Starlette features { #starlette-features } + +**FastAPI** is fully compatible with (and based on) Starlette. So, any additional Starlette code you have, will also work. + +`FastAPI` is actually a sub-class of `Starlette`. So, if you already know or use Starlette, most of the functionality will work the same way. + +With **FastAPI** you get all of **Starlette**'s features (as FastAPI is just Starlette on steroids): + +* Seriously impressive performance. It is one of the fastest Python frameworks available, on par with **NodeJS** and **Go**. +* **WebSocket** support. +* In-process background tasks. +* Startup and shutdown events. +* Test client built on HTTPX. +* **CORS**, GZip, Static Files, Streaming responses. +* **Session and Cookie** support. +* 100% test coverage. +* 100% type annotated codebase. + +## Pydantic features { #pydantic-features } + +**FastAPI** is fully compatible with (and based on) Pydantic. So, any additional Pydantic code you have, will also work. + +Including external libraries also based on Pydantic, as ORMs, ODMs for databases. + +This also means that in many cases you can pass the same object you get from a request **directly to the database**, as everything is validated automatically. + +The same applies the other way around, in many cases you can just pass the object you get from the database **directly to the client**. + +With **FastAPI** you get all of **Pydantic**'s features (as FastAPI is based on Pydantic for all the data handling): + +* **No brainfuck**: + * No new schema definition micro-language to learn. + * If you know Python types you know how to use Pydantic. +* Plays nicely with your **IDE/linter/brain**: + * Because pydantic data structures are just instances of classes you define; auto-completion, linting, mypy and your intuition should all work properly with your validated data. +* Validate **complex structures**: + * Use of hierarchical Pydantic models, Python `typing`’s `List` and `Dict`, etc. + * And validators allow complex data schemas to be clearly and easily defined, checked and documented as JSON Schema. + * You can have deeply **nested JSON** objects and have them all validated and annotated. +* **Extensible**: + * Pydantic allows custom data types to be defined or you can extend validation with methods on a model decorated with the validator decorator. +* 100% test coverage. diff --git a/docs/en/docs/help-fastapi.md b/docs/en/docs/help-fastapi.md new file mode 100644 index 0000000..c7acd69 --- /dev/null +++ b/docs/en/docs/help-fastapi.md @@ -0,0 +1,256 @@ +# Help FastAPI - Get Help { #help-fastapi-get-help } + +Do you like **FastAPI**? + +Would you like to help FastAPI, other users, and the author? + +Or would you like to get help with **FastAPI**? + +There are very simple ways to help (several involve just one or two clicks). + +And there are several ways to get help too. + +## Subscribe to the newsletter { #subscribe-to-the-newsletter } + +You can subscribe to the (infrequent) [**FastAPI and friends** newsletter](newsletter.md){.internal-link target=_blank} to stay updated about: + +* News about FastAPI and friends 🚀 +* Guides 📝 +* Features ✨ +* Breaking changes 🚨 +* Tips and tricks ✅ + +## Follow FastAPI on X (Twitter) { #follow-fastapi-on-x-twitter } + +Follow @fastapi on **X (Twitter)** to get the latest news about **FastAPI**. 🐦 + +## Star **FastAPI** in GitHub { #star-fastapi-in-github } + +You can "star" FastAPI in GitHub (clicking the star button at the top right): https://github.com/fastapi/fastapi. ⭐️ + +By adding a star, other users will be able to find it more easily and see that it has been already useful for others. + +## Watch the GitHub repository for releases { #watch-the-github-repository-for-releases } + +You can "watch" FastAPI in GitHub (clicking the "watch" button at the top right): https://github.com/fastapi/fastapi. 👀 + +There you can select "Releases only". + +By doing it, you will receive notifications (in your email) whenever there's a new release (a new version) of **FastAPI** with bug fixes and new features. + +## Connect with the author { #connect-with-the-author } + +You can connect with me (Sebastián Ramírez / `tiangolo`), the author. + +You can: + +* Follow me on **GitHub**. + * See other Open Source projects I have created that could help you. + * Follow me to see when I create a new Open Source project. +* Follow me on **X (Twitter)** or Mastodon. + * Tell me how you use FastAPI (I love to hear that). + * Hear when I make announcements or release new tools. + * You can also follow @fastapi on X (Twitter) (a separate account). +* Follow me on **LinkedIn**. + * Hear when I make announcements or release new tools (although I use X (Twitter) more often 🤷‍♂). +* Read what I write (or follow me) on **Dev.to** or **Medium**. + * Read other ideas, articles, and read about tools I have created. + * Follow me to read when I publish something new. + +## Tweet about **FastAPI** { #tweet-about-fastapi } + +Tweet about **FastAPI** and let me and others know why you like it. 🎉 + +I love to hear about how **FastAPI** is being used, what you have liked in it, in which project/company are you using it, etc. + +## Vote for FastAPI { #vote-for-fastapi } + +* Vote for **FastAPI** in Slant. +* Vote for **FastAPI** in AlternativeTo. +* Say you use **FastAPI** on StackShare. + +## Help others with questions in GitHub { #help-others-with-questions-in-github } + +You can try and help others with their questions in: + +* GitHub Discussions +* GitHub Issues + +In many cases you might already know the answer for those questions. 🤓 + +If you are helping a lot of people with their questions, you will become an official [FastAPI Expert](fastapi-people.md#fastapi-experts){.internal-link target=_blank}. 🎉 + +Just remember, the most important point is: try to be kind. People come with their frustrations and in many cases don't ask in the best way, but try as best as you can to be kind. 🤗 + +The idea is for the **FastAPI** community to be kind and welcoming. At the same time, don't accept bullying or disrespectful behavior towards others. We have to take care of each other. + +--- + +Here's how to help others with questions (in discussions or issues): + +### Understand the question { #understand-the-question } + +* Check if you can understand what is the **purpose** and use case of the person asking. + +* Then check if the question (the vast majority are questions) is **clear**. + +* In many cases the question asked is about an imaginary solution from the user, but there might be a **better** one. If you can understand the problem and use case better, you might be able to suggest a better **alternative solution**. + +* If you can't understand the question, ask for more **details**. + +### Reproduce the problem { #reproduce-the-problem } + +For most of the cases and most of the questions there's something related to the person's **original code**. + +In many cases they will only copy a fragment of the code, but that's not enough to **reproduce the problem**. + +* You can ask them to provide a minimal, reproducible, example, that you can **copy-paste** and run locally to see the same error or behavior they are seeing, or to understand their use case better. + +* If you are feeling too generous, you can try to **create an example** like that yourself, just based on the description of the problem. Just keep in mind that this might take a lot of time and it might be better to ask them to clarify the problem first. + +### Suggest solutions { #suggest-solutions } + +* After being able to understand the question, you can give them a possible **answer**. + +* In many cases, it's better to understand their **underlying problem or use case**, because there might be a better way to solve it than what they are trying to do. + +### Ask to close { #ask-to-close } + +If they reply, there's a high chance you would have solved their problem, congrats, **you're a hero**! 🦸 + +* Now, if that solved their problem, you can ask them to: + + * In GitHub Discussions: mark the comment as the **answer**. + * In GitHub Issues: **close** the issue. + +## Watch the GitHub repository { #watch-the-github-repository } + +You can "watch" FastAPI in GitHub (clicking the "watch" button at the top right): https://github.com/fastapi/fastapi. 👀 + +If you select "Watching" instead of "Releases only" you will receive notifications when someone creates a new issue or question. You can also specify that you only want to be notified about new issues, or discussions, or PRs, etc. + +Then you can try and help them solve those questions. + +## Ask Questions { #ask-questions } + +You can create a new question in the GitHub repository, for example to: + +* Ask a **question** or ask about a **problem**. +* Suggest a new **feature**. + +**Note**: if you do it, then I'm going to ask you to also help others. 😉 + +## Review Pull Requests { #review-pull-requests } + +You can help me review pull requests from others. + +Again, please try your best to be kind. 🤗 + +--- + +Here's what to keep in mind and how to review a pull request: + +### Understand the problem { #understand-the-problem } + +* First, make sure you **understand the problem** that the pull request is trying to solve. It might have a longer discussion in a GitHub Discussion or issue. + +* There's also a good chance that the pull request is not actually needed because the problem can be solved in a **different way**. Then you can suggest or ask about that. + +### Don't worry about style { #dont-worry-about-style } + +* Don't worry too much about things like commit message styles, I will squash and merge customizing the commit manually. + +* Also don't worry about style rules, there are already automatized tools checking that. + +And if there's any other style or consistency need, I'll ask directly for that, or I'll add commits on top with the needed changes. + +### Check the code { #check-the-code } + +* Check and read the code, see if it makes sense, **run it locally** and see if it actually solves the problem. + +* Then **comment** saying that you did that, that's how I will know you really checked it. + +/// info + +Unfortunately, I can't simply trust PRs that just have several approvals. + +Several times it has happened that there are PRs with 3, 5 or more approvals, probably because the description is appealing, but when I check the PRs, they are actually broken, have a bug, or don't solve the problem they claim to solve. 😅 + +So, it's really important that you actually read and run the code, and let me know in the comments that you did. 🤓 + +/// + +* If the PR can be simplified in a way, you can ask for that, but there's no need to be too picky, there might be a lot of subjective points of view (and I will have my own as well 🙈), so it's better if you can focus on the fundamental things. + +### Tests { #tests } + +* Help me check that the PR has **tests**. + +* Check that the tests **fail** before the PR. 🚨 + +* Then check that the tests **pass** after the PR. ✅ + +* Many PRs don't have tests, you can **remind** them to add tests, or you can even **suggest** some tests yourself. That's one of the things that consume most time and you can help a lot with that. + +* Then also comment what you tried, that way I'll know that you checked it. 🤓 + +## Create a Pull Request { #create-a-pull-request } + +You can [contribute](contributing.md){.internal-link target=_blank} to the source code with Pull Requests, for example: + +* To fix a typo you found on the documentation. +* To share an article, video, or podcast you created or found about FastAPI by editing this file. + * Make sure you add your link to the start of the corresponding section. +* To help [translate the documentation](contributing.md#translations){.internal-link target=_blank} to your language. + * You can also help to review the translations created by others. +* To propose new documentation sections. +* To fix an existing issue/bug. + * Make sure to add tests. +* To add a new feature. + * Make sure to add tests. + * Make sure to add documentation if it's relevant. + +## Help Maintain FastAPI { #help-maintain-fastapi } + +Help me maintain **FastAPI**! 🤓 + +There's a lot of work to do, and for most of it, **YOU** can do it. + +The main tasks that you can do right now are: + +* [Help others with questions in GitHub](#help-others-with-questions-in-github){.internal-link target=_blank} (see the section above). +* [Review Pull Requests](#review-pull-requests){.internal-link target=_blank} (see the section above). + +Those two tasks are what **consume time the most**. That's the main work of maintaining FastAPI. + +If you can help me with that, **you are helping me maintain FastAPI** and making sure it keeps **advancing faster and better**. 🚀 + +## Join the chat { #join-the-chat } + +Join the 👥 Discord chat server 👥 and hang out with others in the FastAPI community. + +/// tip + +For questions, ask them in GitHub Discussions, there's a much better chance you will receive help by the [FastAPI Experts](fastapi-people.md#fastapi-experts){.internal-link target=_blank}. + +Use the chat only for other general conversations. + +/// + +### Don't use the chat for questions { #dont-use-the-chat-for-questions } + +Keep in mind that as chats allow more "free conversation", it's easy to ask questions that are too general and more difficult to answer, so, you might not receive answers. + +In GitHub, the template will guide you to write the right question so that you can more easily get a good answer, or even solve the problem yourself even before asking. And in GitHub I can make sure I always answer everything, even if it takes some time. I can't personally do that with the chat systems. 😅 + +Conversations in the chat systems are also not as easily searchable as in GitHub, so questions and answers might get lost in the conversation. And only the ones in GitHub count to become a [FastAPI Expert](fastapi-people.md#fastapi-experts){.internal-link target=_blank}, so you will most probably receive more attention in GitHub. + +On the other side, there are thousands of users in the chat systems, so there's a high chance you'll find someone to talk to there, almost all the time. 😄 + +## Sponsor the author { #sponsor-the-author } + +If your **product/company** depends on or is related to **FastAPI** and you want to reach its users, you can sponsor the author (me) through GitHub sponsors. Depending on the tier, you could get some extra benefits, like a badge in the docs. 🎁 + +--- + +Thanks! 🚀 diff --git a/docs/en/docs/history-design-future.md b/docs/en/docs/history-design-future.md new file mode 100644 index 0000000..6175dcb --- /dev/null +++ b/docs/en/docs/history-design-future.md @@ -0,0 +1,79 @@ +# History, Design and Future { #history-design-and-future } + +Some time ago, a **FastAPI** user asked: + +> What’s the history of this project? It seems to have come from nowhere to awesome in a few weeks [...] + +Here's a little bit of that history. + +## Alternatives { #alternatives } + +I have been creating APIs with complex requirements for several years (Machine Learning, distributed systems, asynchronous jobs, NoSQL databases, etc), leading several teams of developers. + +As part of that, I needed to investigate, test and use many alternatives. + +The history of **FastAPI** is in great part the history of its predecessors. + +As said in the section [Alternatives](alternatives.md){.internal-link target=_blank}: + +
+ +**FastAPI** wouldn't exist if not for the previous work of others. + +There have been many tools created before that have helped inspire its creation. + +I have been avoiding the creation of a new framework for several years. First I tried to solve all the features covered by **FastAPI** using many different frameworks, plug-ins, and tools. + +But at some point, there was no other option than creating something that provided all these features, taking the best ideas from previous tools, and combining them in the best way possible, using language features that weren't even available before (Python 3.6+ type hints). + +
+ +## Investigation { #investigation } + +By using all the previous alternatives I had the chance to learn from all of them, take ideas, and combine them in the best way I could find for myself and the teams of developers I have worked with. + +For example, it was clear that ideally it should be based on standard Python type hints. + +Also, the best approach was to use already existing standards. + +So, before even starting to code **FastAPI**, I spent several months studying the specs for OpenAPI, JSON Schema, OAuth2, etc. Understanding their relationship, overlap, and differences. + +## Design { #design } + +Then I spent some time designing the developer "API" I wanted to have as a user (as a developer using FastAPI). + +I tested several ideas in the most popular Python editors: PyCharm, VS Code, Jedi based editors. + +By the last Python Developer Survey, that covers about 80% of the users. + +It means that **FastAPI** was specifically tested with the editors used by 80% of the Python developers. And as most of the other editors tend to work similarly, all its benefits should work for virtually all editors. + +That way I could find the best ways to reduce code duplication as much as possible, to have completion everywhere, type and error checks, etc. + +All in a way that provided the best development experience for all the developers. + +## Requirements { #requirements } + +After testing several alternatives, I decided that I was going to use **Pydantic** for its advantages. + +Then I contributed to it, to make it fully compliant with JSON Schema, to support different ways to define constraint declarations, and to improve editor support (type checks, autocompletion) based on the tests in several editors. + +During the development, I also contributed to **Starlette**, the other key requirement. + +## Development { #development } + +By the time I started creating **FastAPI** itself, most of the pieces were already in place, the design was defined, the requirements and tools were ready, and the knowledge about the standards and specifications was clear and fresh. + +## Future { #future } + +By this point, it's already clear that **FastAPI** with its ideas is being useful for many people. + +It is being chosen over previous alternatives for suiting many use cases better. + +Many developers and teams already depend on **FastAPI** for their projects (including me and my team). + +But still, there are many improvements and features to come. + +**FastAPI** has a great future ahead. + +And [your help](help-fastapi.md){.internal-link target=_blank} is greatly appreciated. diff --git a/docs/en/docs/how-to/authentication-error-status-code.md b/docs/en/docs/how-to/authentication-error-status-code.md new file mode 100644 index 0000000..f9433e5 --- /dev/null +++ b/docs/en/docs/how-to/authentication-error-status-code.md @@ -0,0 +1,17 @@ +# Use Old 403 Authentication Error Status Codes { #use-old-403-authentication-error-status-codes } + +Before FastAPI version `0.122.0`, when the integrated security utilities returned an error to the client after a failed authentication, they used the HTTP status code `403 Forbidden`. + +Starting with FastAPI version `0.122.0`, they use the more appropriate HTTP status code `401 Unauthorized`, and return a sensible `WWW-Authenticate` header in the response, following the HTTP specifications, RFC 7235, RFC 9110. + +But if for some reason your clients depend on the old behavior, you can revert to it by overriding the method `make_not_authenticated_error` in your security classes. + +For example, you can create a subclass of `HTTPBearer` that returns a `403 Forbidden` error instead of the default `401 Unauthorized` error: + +{* ../../docs_src/authentication_error_status_code/tutorial001_an_py39.py hl[9:13] *} + +/// tip + +Notice that the function returns the exception instance, it doesn't raise it. The raising is done in the rest of the internal code. + +/// diff --git a/docs/en/docs/how-to/conditional-openapi.md b/docs/en/docs/how-to/conditional-openapi.md new file mode 100644 index 0000000..e5893e5 --- /dev/null +++ b/docs/en/docs/how-to/conditional-openapi.md @@ -0,0 +1,56 @@ +# Conditional OpenAPI { #conditional-openapi } + +If you needed to, you could use settings and environment variables to configure OpenAPI conditionally depending on the environment, and even disable it entirely. + +## About security, APIs, and docs { #about-security-apis-and-docs } + +Hiding your documentation user interfaces in production *shouldn't* be the way to protect your API. + +That doesn't add any extra security to your API, the *path operations* will still be available where they are. + +If there's a security flaw in your code, it will still exist. + +Hiding the documentation just makes it more difficult to understand how to interact with your API, and could make it more difficult for you to debug it in production. It could be considered simply a form of Security through obscurity. + +If you want to secure your API, there are several better things you can do, for example: + +* Make sure you have well defined Pydantic models for your request bodies and responses. +* Configure any required permissions and roles using dependencies. +* Never store plaintext passwords, only password hashes. +* Implement and use well-known cryptographic tools, like pwdlib and JWT tokens, etc. +* Add more granular permission controls with OAuth2 scopes where needed. +* ...etc. + +Nevertheless, you might have a very specific use case where you really need to disable the API docs for some environment (e.g. for production) or depending on configurations from environment variables. + +## Conditional OpenAPI from settings and env vars { #conditional-openapi-from-settings-and-env-vars } + +You can easily use the same Pydantic settings to configure your generated OpenAPI and the docs UIs. + +For example: + +{* ../../docs_src/conditional_openapi/tutorial001.py hl[6,11] *} + +Here we declare the setting `openapi_url` with the same default of `"/openapi.json"`. + +And then we use it when creating the `FastAPI` app. + +Then you could disable OpenAPI (including the UI docs) by setting the environment variable `OPENAPI_URL` to the empty string, like: + +
+ +```console +$ OPENAPI_URL= uvicorn main:app + +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +``` + +
+ +Then if you go to the URLs at `/openapi.json`, `/docs`, or `/redoc` you will just get a `404 Not Found` error like: + +```JSON +{ + "detail": "Not Found" +} +``` diff --git a/docs/en/docs/how-to/configure-swagger-ui.md b/docs/en/docs/how-to/configure-swagger-ui.md new file mode 100644 index 0000000..2d7b99f --- /dev/null +++ b/docs/en/docs/how-to/configure-swagger-ui.md @@ -0,0 +1,70 @@ +# Configure Swagger UI { #configure-swagger-ui } + +You can configure some extra Swagger UI parameters. + +To configure them, pass the `swagger_ui_parameters` argument when creating the `FastAPI()` app object or to the `get_swagger_ui_html()` function. + +`swagger_ui_parameters` receives a dictionary with the configurations passed to Swagger UI directly. + +FastAPI converts the configurations to **JSON** to make them compatible with JavaScript, as that's what Swagger UI needs. + +## Disable Syntax Highlighting { #disable-syntax-highlighting } + +For example, you could disable syntax highlighting in Swagger UI. + +Without changing the settings, syntax highlighting is enabled by default: + + + +But you can disable it by setting `syntaxHighlight` to `False`: + +{* ../../docs_src/configure_swagger_ui/tutorial001.py hl[3] *} + +...and then Swagger UI won't show the syntax highlighting anymore: + + + +## Change the Theme { #change-the-theme } + +The same way you could set the syntax highlighting theme with the key `"syntaxHighlight.theme"` (notice that it has a dot in the middle): + +{* ../../docs_src/configure_swagger_ui/tutorial002.py hl[3] *} + +That configuration would change the syntax highlighting color theme: + + + +## Change Default Swagger UI Parameters { #change-default-swagger-ui-parameters } + +FastAPI includes some default configuration parameters appropriate for most of the use cases. + +It includes these default configurations: + +{* ../../fastapi/openapi/docs.py ln[8:23] hl[17:23] *} + +You can override any of them by setting a different value in the argument `swagger_ui_parameters`. + +For example, to disable `deepLinking` you could pass these settings to `swagger_ui_parameters`: + +{* ../../docs_src/configure_swagger_ui/tutorial003.py hl[3] *} + +## Other Swagger UI Parameters { #other-swagger-ui-parameters } + +To see all the other possible configurations you can use, read the official docs for Swagger UI parameters. + +## JavaScript-only settings { #javascript-only-settings } + +Swagger UI also allows other configurations to be **JavaScript-only** objects (for example, JavaScript functions). + +FastAPI also includes these JavaScript-only `presets` settings: + +```JavaScript +presets: [ + SwaggerUIBundle.presets.apis, + SwaggerUIBundle.SwaggerUIStandalonePreset +] +``` + +These are **JavaScript** objects, not strings, so you can't pass them from Python code directly. + +If you need to use JavaScript-only configurations like those, you can use one of the methods above. Override all the Swagger UI *path operation* and manually write any JavaScript you need. diff --git a/docs/en/docs/how-to/custom-docs-ui-assets.md b/docs/en/docs/how-to/custom-docs-ui-assets.md new file mode 100644 index 0000000..91228c8 --- /dev/null +++ b/docs/en/docs/how-to/custom-docs-ui-assets.md @@ -0,0 +1,185 @@ +# Custom Docs UI Static Assets (Self-Hosting) { #custom-docs-ui-static-assets-self-hosting } + +The API docs use **Swagger UI** and **ReDoc**, and each of those need some JavaScript and CSS files. + +By default, those files are served from a CDN. + +But it's possible to customize it, you can set a specific CDN, or serve the files yourself. + +## Custom CDN for JavaScript and CSS { #custom-cdn-for-javascript-and-css } + +Let's say that you want to use a different CDN, for example you want to use `https://unpkg.com/`. + +This could be useful if for example you live in a country that restricts some URLs. + +### Disable the automatic docs { #disable-the-automatic-docs } + +The first step is to disable the automatic docs, as by default, those use the default CDN. + +To disable them, set their URLs to `None` when creating your `FastAPI` app: + +{* ../../docs_src/custom_docs_ui/tutorial001.py hl[8] *} + +### Include the custom docs { #include-the-custom-docs } + +Now you can create the *path operations* for the custom docs. + +You can reuse FastAPI's internal functions to create the HTML pages for the docs, and pass them the needed arguments: + +* `openapi_url`: the URL where the HTML page for the docs can get the OpenAPI schema for your API. You can use here the attribute `app.openapi_url`. +* `title`: the title of your API. +* `oauth2_redirect_url`: you can use `app.swagger_ui_oauth2_redirect_url` here to use the default. +* `swagger_js_url`: the URL where the HTML for your Swagger UI docs can get the **JavaScript** file. This is the custom CDN URL. +* `swagger_css_url`: the URL where the HTML for your Swagger UI docs can get the **CSS** file. This is the custom CDN URL. + +And similarly for ReDoc... + +{* ../../docs_src/custom_docs_ui/tutorial001.py hl[2:6,11:19,22:24,27:33] *} + +/// tip + +The *path operation* for `swagger_ui_redirect` is a helper for when you use OAuth2. + +If you integrate your API with an OAuth2 provider, you will be able to authenticate and come back to the API docs with the acquired credentials. And interact with it using the real OAuth2 authentication. + +Swagger UI will handle it behind the scenes for you, but it needs this "redirect" helper. + +/// + +### Create a *path operation* to test it { #create-a-path-operation-to-test-it } + +Now, to be able to test that everything works, create a *path operation*: + +{* ../../docs_src/custom_docs_ui/tutorial001.py hl[36:38] *} + +### Test it { #test-it } + +Now, you should be able to go to your docs at http://127.0.0.1:8000/docs, and reload the page, it will load those assets from the new CDN. + +## Self-hosting JavaScript and CSS for docs { #self-hosting-javascript-and-css-for-docs } + +Self-hosting the JavaScript and CSS could be useful if, for example, you need your app to keep working even while offline, without open Internet access, or in a local network. + +Here you'll see how to serve those files yourself, in the same FastAPI app, and configure the docs to use them. + +### Project file structure { #project-file-structure } + +Let's say your project file structure looks like this: + +``` +. +├── app +│ ├── __init__.py +│ ├── main.py +``` + +Now create a directory to store those static files. + +Your new file structure could look like this: + +``` +. +├── app +│   ├── __init__.py +│   ├── main.py +└── static/ +``` + +### Download the files { #download-the-files } + +Download the static files needed for the docs and put them on that `static/` directory. + +You can probably right-click each link and select an option similar to "Save link as...". + +**Swagger UI** uses the files: + +* `swagger-ui-bundle.js` +* `swagger-ui.css` + +And **ReDoc** uses the file: + +* `redoc.standalone.js` + +After that, your file structure could look like: + +``` +. +├── app +│   ├── __init__.py +│   ├── main.py +└── static + ├── redoc.standalone.js + ├── swagger-ui-bundle.js + └── swagger-ui.css +``` + +### Serve the static files { #serve-the-static-files } + +* Import `StaticFiles`. +* "Mount" a `StaticFiles()` instance in a specific path. + +{* ../../docs_src/custom_docs_ui/tutorial002.py hl[7,11] *} + +### Test the static files { #test-the-static-files } + +Start your application and go to http://127.0.0.1:8000/static/redoc.standalone.js. + +You should see a very long JavaScript file for **ReDoc**. + +It could start with something like: + +```JavaScript +/*! For license information please see redoc.standalone.js.LICENSE.txt */ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("null")): +... +``` + +That confirms that you are being able to serve static files from your app, and that you placed the static files for the docs in the correct place. + +Now we can configure the app to use those static files for the docs. + +### Disable the automatic docs for static files { #disable-the-automatic-docs-for-static-files } + +The same as when using a custom CDN, the first step is to disable the automatic docs, as those use the CDN by default. + +To disable them, set their URLs to `None` when creating your `FastAPI` app: + +{* ../../docs_src/custom_docs_ui/tutorial002.py hl[9] *} + +### Include the custom docs for static files { #include-the-custom-docs-for-static-files } + +And the same way as with a custom CDN, now you can create the *path operations* for the custom docs. + +Again, you can reuse FastAPI's internal functions to create the HTML pages for the docs, and pass them the needed arguments: + +* `openapi_url`: the URL where the HTML page for the docs can get the OpenAPI schema for your API. You can use here the attribute `app.openapi_url`. +* `title`: the title of your API. +* `oauth2_redirect_url`: you can use `app.swagger_ui_oauth2_redirect_url` here to use the default. +* `swagger_js_url`: the URL where the HTML for your Swagger UI docs can get the **JavaScript** file. **This is the one that your own app is now serving**. +* `swagger_css_url`: the URL where the HTML for your Swagger UI docs can get the **CSS** file. **This is the one that your own app is now serving**. + +And similarly for ReDoc... + +{* ../../docs_src/custom_docs_ui/tutorial002.py hl[2:6,14:22,25:27,30:36] *} + +/// tip + +The *path operation* for `swagger_ui_redirect` is a helper for when you use OAuth2. + +If you integrate your API with an OAuth2 provider, you will be able to authenticate and come back to the API docs with the acquired credentials. And interact with it using the real OAuth2 authentication. + +Swagger UI will handle it behind the scenes for you, but it needs this "redirect" helper. + +/// + +### Create a *path operation* to test static files { #create-a-path-operation-to-test-static-files } + +Now, to be able to test that everything works, create a *path operation*: + +{* ../../docs_src/custom_docs_ui/tutorial002.py hl[39:41] *} + +### Test Static Files UI { #test-static-files-ui } + +Now, you should be able to disconnect your WiFi, go to your docs at http://127.0.0.1:8000/docs, and reload the page. + +And even without Internet, you would be able to see the docs for your API and interact with it. diff --git a/docs/en/docs/how-to/custom-request-and-route.md b/docs/en/docs/how-to/custom-request-and-route.md new file mode 100644 index 0000000..884c8ed --- /dev/null +++ b/docs/en/docs/how-to/custom-request-and-route.md @@ -0,0 +1,109 @@ +# Custom Request and APIRoute class { #custom-request-and-apiroute-class } + +In some cases, you may want to override the logic used by the `Request` and `APIRoute` classes. + +In particular, this may be a good alternative to logic in a middleware. + +For example, if you want to read or manipulate the request body before it is processed by your application. + +/// danger + +This is an "advanced" feature. + +If you are just starting with **FastAPI** you might want to skip this section. + +/// + +## Use cases { #use-cases } + +Some use cases include: + +* Converting non-JSON request bodies to JSON (e.g. `msgpack`). +* Decompressing gzip-compressed request bodies. +* Automatically logging all request bodies. + +## Handling custom request body encodings { #handling-custom-request-body-encodings } + +Let's see how to make use of a custom `Request` subclass to decompress gzip requests. + +And an `APIRoute` subclass to use that custom request class. + +### Create a custom `GzipRequest` class { #create-a-custom-gziprequest-class } + +/// tip + +This is a toy example to demonstrate how it works, if you need Gzip support, you can use the provided [`GzipMiddleware`](../advanced/middleware.md#gzipmiddleware){.internal-link target=_blank}. + +/// + +First, we create a `GzipRequest` class, which will overwrite the `Request.body()` method to decompress the body in the presence of an appropriate header. + +If there's no `gzip` in the header, it will not try to decompress the body. + +That way, the same route class can handle gzip compressed or uncompressed requests. + +{* ../../docs_src/custom_request_and_route/tutorial001.py hl[8:15] *} + +### Create a custom `GzipRoute` class { #create-a-custom-gziproute-class } + +Next, we create a custom subclass of `fastapi.routing.APIRoute` that will make use of the `GzipRequest`. + +This time, it will overwrite the method `APIRoute.get_route_handler()`. + +This method returns a function. And that function is what will receive a request and return a response. + +Here we use it to create a `GzipRequest` from the original request. + +{* ../../docs_src/custom_request_and_route/tutorial001.py hl[18:26] *} + +/// note | Technical Details + +A `Request` has a `request.scope` attribute, that's just a Python `dict` containing the metadata related to the request. + +A `Request` also has a `request.receive`, that's a function to "receive" the body of the request. + +The `scope` `dict` and `receive` function are both part of the ASGI specification. + +And those two things, `scope` and `receive`, are what is needed to create a new `Request` instance. + +To learn more about the `Request` check Starlette's docs about Requests. + +/// + +The only thing the function returned by `GzipRequest.get_route_handler` does differently is convert the `Request` to a `GzipRequest`. + +Doing this, our `GzipRequest` will take care of decompressing the data (if necessary) before passing it to our *path operations*. + +After that, all of the processing logic is the same. + +But because of our changes in `GzipRequest.body`, the request body will be automatically decompressed when it is loaded by **FastAPI** when needed. + +## Accessing the request body in an exception handler { #accessing-the-request-body-in-an-exception-handler } + +/// tip + +To solve this same problem, it's probably a lot easier to use the `body` in a custom handler for `RequestValidationError` ([Handling Errors](../tutorial/handling-errors.md#use-the-requestvalidationerror-body){.internal-link target=_blank}). + +But this example is still valid and it shows how to interact with the internal components. + +/// + +We can also use this same approach to access the request body in an exception handler. + +All we need to do is handle the request inside a `try`/`except` block: + +{* ../../docs_src/custom_request_and_route/tutorial002.py hl[13,15] *} + +If an exception occurs, the`Request` instance will still be in scope, so we can read and make use of the request body when handling the error: + +{* ../../docs_src/custom_request_and_route/tutorial002.py hl[16:18] *} + +## Custom `APIRoute` class in a router { #custom-apiroute-class-in-a-router } + +You can also set the `route_class` parameter of an `APIRouter`: + +{* ../../docs_src/custom_request_and_route/tutorial003.py hl[26] *} + +In this example, the *path operations* under the `router` will use the custom `TimedRoute` class, and will have an extra `X-Response-Time` header in the response with the time it took to generate the response: + +{* ../../docs_src/custom_request_and_route/tutorial003.py hl[13:20] *} diff --git a/docs/en/docs/how-to/extending-openapi.md b/docs/en/docs/how-to/extending-openapi.md new file mode 100644 index 0000000..5e67266 --- /dev/null +++ b/docs/en/docs/how-to/extending-openapi.md @@ -0,0 +1,80 @@ +# Extending OpenAPI { #extending-openapi } + +There are some cases where you might need to modify the generated OpenAPI schema. + +In this section you will see how. + +## The normal process { #the-normal-process } + +The normal (default) process, is as follows. + +A `FastAPI` application (instance) has an `.openapi()` method that is expected to return the OpenAPI schema. + +As part of the application object creation, a *path operation* for `/openapi.json` (or for whatever you set your `openapi_url`) is registered. + +It just returns a JSON response with the result of the application's `.openapi()` method. + +By default, what the method `.openapi()` does is check the property `.openapi_schema` to see if it has contents and return them. + +If it doesn't, it generates them using the utility function at `fastapi.openapi.utils.get_openapi`. + +And that function `get_openapi()` receives as parameters: + +* `title`: The OpenAPI title, shown in the docs. +* `version`: The version of your API, e.g. `2.5.0`. +* `openapi_version`: The version of the OpenAPI specification used. By default, the latest: `3.1.0`. +* `summary`: A short summary of the API. +* `description`: The description of your API, this can include markdown and will be shown in the docs. +* `routes`: A list of routes, these are each of the registered *path operations*. They are taken from `app.routes`. + +/// info + +The parameter `summary` is available in OpenAPI 3.1.0 and above, supported by FastAPI 0.99.0 and above. + +/// + +## Overriding the defaults { #overriding-the-defaults } + +Using the information above, you can use the same utility function to generate the OpenAPI schema and override each part that you need. + +For example, let's add ReDoc's OpenAPI extension to include a custom logo. + +### Normal **FastAPI** { #normal-fastapi } + +First, write all your **FastAPI** application as normally: + +{* ../../docs_src/extending_openapi/tutorial001.py hl[1,4,7:9] *} + +### Generate the OpenAPI schema { #generate-the-openapi-schema } + +Then, use the same utility function to generate the OpenAPI schema, inside a `custom_openapi()` function: + +{* ../../docs_src/extending_openapi/tutorial001.py hl[2,15:21] *} + +### Modify the OpenAPI schema { #modify-the-openapi-schema } + +Now you can add the ReDoc extension, adding a custom `x-logo` to the `info` "object" in the OpenAPI schema: + +{* ../../docs_src/extending_openapi/tutorial001.py hl[22:24] *} + +### Cache the OpenAPI schema { #cache-the-openapi-schema } + +You can use the property `.openapi_schema` as a "cache", to store your generated schema. + +That way, your application won't have to generate the schema every time a user opens your API docs. + +It will be generated only once, and then the same cached schema will be used for the next requests. + +{* ../../docs_src/extending_openapi/tutorial001.py hl[13:14,25:26] *} + +### Override the method { #override-the-method } + +Now you can replace the `.openapi()` method with your new function. + +{* ../../docs_src/extending_openapi/tutorial001.py hl[29] *} + +### Check it { #check-it } + +Once you go to http://127.0.0.1:8000/redoc you will see that you are using your custom logo (in this example, **FastAPI**'s logo): + + diff --git a/docs/en/docs/how-to/general.md b/docs/en/docs/how-to/general.md new file mode 100644 index 0000000..9347192 --- /dev/null +++ b/docs/en/docs/how-to/general.md @@ -0,0 +1,39 @@ +# General - How To - Recipes { #general-how-to-recipes } + +Here are several pointers to other places in the docs, for general or frequent questions. + +## Filter Data - Security { #filter-data-security } + +To ensure that you don't return more data than you should, read the docs for [Tutorial - Response Model - Return Type](../tutorial/response-model.md){.internal-link target=_blank}. + +## Documentation Tags - OpenAPI { #documentation-tags-openapi } + +To add tags to your *path operations*, and group them in the docs UI, read the docs for [Tutorial - Path Operation Configurations - Tags](../tutorial/path-operation-configuration.md#tags){.internal-link target=_blank}. + +## Documentation Summary and Description - OpenAPI { #documentation-summary-and-description-openapi } + +To add a summary and description to your *path operations*, and show them in the docs UI, read the docs for [Tutorial - Path Operation Configurations - Summary and Description](../tutorial/path-operation-configuration.md#summary-and-description){.internal-link target=_blank}. + +## Documentation Response description - OpenAPI { #documentation-response-description-openapi } + +To define the description of the response, shown in the docs UI, read the docs for [Tutorial - Path Operation Configurations - Response description](../tutorial/path-operation-configuration.md#response-description){.internal-link target=_blank}. + +## Documentation Deprecate a *Path Operation* - OpenAPI { #documentation-deprecate-a-path-operation-openapi } + +To deprecate a *path operation*, and show it in the docs UI, read the docs for [Tutorial - Path Operation Configurations - Deprecation](../tutorial/path-operation-configuration.md#deprecate-a-path-operation){.internal-link target=_blank}. + +## Convert any Data to JSON-compatible { #convert-any-data-to-json-compatible } + +To convert any data to JSON-compatible, read the docs for [Tutorial - JSON Compatible Encoder](../tutorial/encoder.md){.internal-link target=_blank}. + +## OpenAPI Metadata - Docs { #openapi-metadata-docs } + +To add metadata to your OpenAPI schema, including a license, version, contact, etc, read the docs for [Tutorial - Metadata and Docs URLs](../tutorial/metadata.md){.internal-link target=_blank}. + +## OpenAPI Custom URL { #openapi-custom-url } + +To customize the OpenAPI URL (or remove it), read the docs for [Tutorial - Metadata and Docs URLs](../tutorial/metadata.md#openapi-url){.internal-link target=_blank}. + +## OpenAPI Docs URLs { #openapi-docs-urls } + +To update the URLs used for the automatically generated docs user interfaces, read the docs for [Tutorial - Metadata and Docs URLs](../tutorial/metadata.md#docs-urls){.internal-link target=_blank}. diff --git a/docs/en/docs/how-to/graphql.md b/docs/en/docs/how-to/graphql.md new file mode 100644 index 0000000..99b024d --- /dev/null +++ b/docs/en/docs/how-to/graphql.md @@ -0,0 +1,60 @@ +# GraphQL { #graphql } + +As **FastAPI** is based on the **ASGI** standard, it's very easy to integrate any **GraphQL** library also compatible with ASGI. + +You can combine normal FastAPI *path operations* with GraphQL on the same application. + +/// tip + +**GraphQL** solves some very specific use cases. + +It has **advantages** and **disadvantages** when compared to common **web APIs**. + +Make sure you evaluate if the **benefits** for your use case compensate the **drawbacks**. 🤓 + +/// + +## GraphQL Libraries { #graphql-libraries } + +Here are some of the **GraphQL** libraries that have **ASGI** support. You could use them with **FastAPI**: + +* Strawberry 🍓 + * With docs for FastAPI +* Ariadne + * With docs for FastAPI +* Tartiflette + * With Tartiflette ASGI to provide ASGI integration +* Graphene + * With starlette-graphene3 + +## GraphQL with Strawberry { #graphql-with-strawberry } + +If you need or want to work with **GraphQL**, **Strawberry** is the **recommended** library as it has the design closest to **FastAPI's** design, it's all based on **type annotations**. + +Depending on your use case, you might prefer to use a different library, but if you asked me, I would probably suggest you try **Strawberry**. + +Here's a small preview of how you could integrate Strawberry with FastAPI: + +{* ../../docs_src/graphql/tutorial001.py hl[3,22,25] *} + +You can learn more about Strawberry in the Strawberry documentation. + +And also the docs about Strawberry with FastAPI. + +## Older `GraphQLApp` from Starlette { #older-graphqlapp-from-starlette } + +Previous versions of Starlette included a `GraphQLApp` class to integrate with Graphene. + +It was deprecated from Starlette, but if you have code that used it, you can easily **migrate** to starlette-graphene3, that covers the same use case and has an **almost identical interface**. + +/// tip + +If you need GraphQL, I still would recommend you check out Strawberry, as it's based on type annotations instead of custom classes and types. + +/// + +## Learn More { #learn-more } + +You can learn more about **GraphQL** in the official GraphQL documentation. + +You can also read more about each those libraries described above in their links. diff --git a/docs/en/docs/how-to/index.md b/docs/en/docs/how-to/index.md new file mode 100644 index 0000000..5a8ce08 --- /dev/null +++ b/docs/en/docs/how-to/index.md @@ -0,0 +1,13 @@ +# How To - Recipes { #how-to-recipes } + +Here you will see different recipes or "how to" guides for **several topics**. + +Most of these ideas would be more or less **independent**, and in most cases you should only need to study them if they apply directly to **your project**. + +If something seems interesting and useful to your project, go ahead and check it, but otherwise, you might probably just skip them. + +/// tip + +If you want to **learn FastAPI** in a structured way (recommended), go and read the [Tutorial - User Guide](../tutorial/index.md){.internal-link target=_blank} chapter by chapter instead. + +/// diff --git a/docs/en/docs/how-to/migrate-from-pydantic-v1-to-pydantic-v2.md b/docs/en/docs/how-to/migrate-from-pydantic-v1-to-pydantic-v2.md new file mode 100644 index 0000000..e85d122 --- /dev/null +++ b/docs/en/docs/how-to/migrate-from-pydantic-v1-to-pydantic-v2.md @@ -0,0 +1,133 @@ +# Migrate from Pydantic v1 to Pydantic v2 { #migrate-from-pydantic-v1-to-pydantic-v2 } + +If you have an old FastAPI app, you might be using Pydantic version 1. + +FastAPI has had support for either Pydantic v1 or v2 since version 0.100.0. + +If you had installed Pydantic v2, it would use it. If instead you had Pydantic v1, it would use that. + +Pydantic v1 is now deprecated and support for it will be removed in the next versions of FastAPI, you should **migrate to Pydantic v2**. This way you will get the latest features, improvements, and fixes. + +/// warning + +Also, the Pydantic team stopped support for Pydantic v1 for the latest versions of Python, starting with **Python 3.14**. + +If you want to use the latest features of Python, you will need to make sure you use Pydantic v2. + +/// + +If you have an old FastAPI app with Pydantic v1, here I'll show you how to migrate it to Pydantic v2, and the **new features in FastAPI 0.119.0** to help you with a gradual migration. + +## Official Guide { #official-guide } + +Pydantic has an official Migration Guide from v1 to v2. + +It also includes what has changed, how validations are now more correct and strict, possible caveats, etc. + +You can read it to understand better what has changed. + +## Tests { #tests } + +Make sure you have [tests](../tutorial/testing.md){.internal-link target=_blank} for your app and you run them on continuous integration (CI). + +This way, you can do the upgrade and make sure everything is still working as expected. + +## `bump-pydantic` { #bump-pydantic } + +In many cases, when you use regular Pydantic models without customizations, you will be able to automate most of the process of migrating from Pydantic v1 to Pydantic v2. + +You can use `bump-pydantic` from the same Pydantic team. + +This tool will help you to automatically change most of the code that needs to be changed. + +After this, you can run the tests and check if everything works. If it does, you are done. 😎 + +## Pydantic v1 in v2 { #pydantic-v1-in-v2 } + +Pydantic v2 includes everything from Pydantic v1 as a submodule `pydantic.v1`. + +This means that you can install the latest version of Pydantic v2 and import and use the old Pydantic v1 components from this submodule, as if you had the old Pydantic v1 installed. + +{* ../../docs_src/pydantic_v1_in_v2/tutorial001_an_py310.py hl[1,4] *} + +### FastAPI support for Pydantic v1 in v2 { #fastapi-support-for-pydantic-v1-in-v2 } + +Since FastAPI 0.119.0, there's also partial support for Pydantic v1 from inside of Pydantic v2, to facilitate the migration to v2. + +So, you could upgrade Pydantic to the latest version 2, and change the imports to use the `pydantic.v1` submodule, and in many cases it would just work. + +{* ../../docs_src/pydantic_v1_in_v2/tutorial002_an_py310.py hl[2,5,15] *} + +/// warning + +Have in mind that as the Pydantic team no longer supports Pydantic v1 in recent versions of Python, starting from Python 3.14, using `pydantic.v1` is also not supported in Python 3.14 and above. + +/// + +### Pydantic v1 and v2 on the same app { #pydantic-v1-and-v2-on-the-same-app } + +It's **not supported** by Pydantic to have a model of Pydantic v2 with its own fields defined as Pydantic v1 models or vice versa. + +```mermaid +graph TB + subgraph "❌ Not Supported" + direction TB + subgraph V2["Pydantic v2 Model"] + V1Field["Pydantic v1 Model"] + end + subgraph V1["Pydantic v1 Model"] + V2Field["Pydantic v2 Model"] + end + end + + style V2 fill:#f9fff3 + style V1 fill:#fff6f0 + style V1Field fill:#fff6f0 + style V2Field fill:#f9fff3 +``` + +...but, you can have separated models using Pydantic v1 and v2 in the same app. + +```mermaid +graph TB + subgraph "✅ Supported" + direction TB + subgraph V2["Pydantic v2 Model"] + V2Field["Pydantic v2 Model"] + end + subgraph V1["Pydantic v1 Model"] + V1Field["Pydantic v1 Model"] + end + end + + style V2 fill:#f9fff3 + style V1 fill:#fff6f0 + style V1Field fill:#fff6f0 + style V2Field fill:#f9fff3 +``` + +In some cases, it's even possible to have both Pydantic v1 and v2 models in the same **path operation** in your FastAPI app: + +{* ../../docs_src/pydantic_v1_in_v2/tutorial003_an_py310.py hl[2:3,6,12,21:22] *} + +In this example above, the input model is a Pydantic v1 model, and the output model (defined in `response_model=ItemV2`) is a Pydantic v2 model. + +### Pydantic v1 parameters { #pydantic-v1-parameters } + +If you need to use some of the FastAPI-specific tools for parameters like `Body`, `Query`, `Form`, etc. with Pydantic v1 models, you can import them from `fastapi.temp_pydantic_v1_params` while you finish the migration to Pydantic v2: + +{* ../../docs_src/pydantic_v1_in_v2/tutorial004_an_py310.py hl[4,18] *} + +### Migrate in steps { #migrate-in-steps } + +/// tip + +First try with `bump-pydantic`, if your tests pass and that works, then you're done in one command. ✨ + +/// + +If `bump-pydantic` doesn't work for your use case, you can use the support for both Pydantic v1 and v2 models in the same app to do the migration to Pydantic v2 gradually. + +You could fist upgrade Pydantic to use the latest version 2, and change the imports to use `pydantic.v1` for all your models. + +Then, you can start migrating your models from Pydantic v1 to v2 in groups, in gradual steps. 🚶 diff --git a/docs/en/docs/how-to/separate-openapi-schemas.md b/docs/en/docs/how-to/separate-openapi-schemas.md new file mode 100644 index 0000000..3c78a56 --- /dev/null +++ b/docs/en/docs/how-to/separate-openapi-schemas.md @@ -0,0 +1,104 @@ +# Separate OpenAPI Schemas for Input and Output or Not { #separate-openapi-schemas-for-input-and-output-or-not } + +When using **Pydantic v2**, the generated OpenAPI is a bit more exact and **correct** than before. 😎 + +In fact, in some cases, it will even have **two JSON Schemas** in OpenAPI for the same Pydantic model, for input and output, depending on if they have **default values**. + +Let's see how that works and how to change it if you need to do that. + +## Pydantic Models for Input and Output { #pydantic-models-for-input-and-output } + +Let's say you have a Pydantic model with default values, like this one: + +{* ../../docs_src/separate_openapi_schemas/tutorial001_py310.py ln[1:7] hl[7] *} + +### Model for Input { #model-for-input } + +If you use this model as an input like here: + +{* ../../docs_src/separate_openapi_schemas/tutorial001_py310.py ln[1:15] hl[14] *} + +...then the `description` field will **not be required**. Because it has a default value of `None`. + +### Input Model in Docs { #input-model-in-docs } + +You can confirm that in the docs, the `description` field doesn't have a **red asterisk**, it's not marked as required: + +
+ +
+ +### Model for Output { #model-for-output } + +But if you use the same model as an output, like here: + +{* ../../docs_src/separate_openapi_schemas/tutorial001_py310.py hl[19] *} + +...then because `description` has a default value, if you **don't return anything** for that field, it will still have that **default value**. + +### Model for Output Response Data { #model-for-output-response-data } + +If you interact with the docs and check the response, even though the code didn't add anything in one of the `description` fields, the JSON response contains the default value (`null`): + +
+ +
+ +This means that it will **always have a value**, it's just that sometimes the value could be `None` (or `null` in JSON). + +That means that, clients using your API don't have to check if the value exists or not, they can **assume the field will always be there**, but just that in some cases it will have the default value of `None`. + +The way to describe this in OpenAPI, is to mark that field as **required**, because it will always be there. + +Because of that, the JSON Schema for a model can be different depending on if it's used for **input or output**: + +* for **input** the `description` will **not be required** +* for **output** it will be **required** (and possibly `None`, or in JSON terms, `null`) + +### Model for Output in Docs { #model-for-output-in-docs } + +You can check the output model in the docs too, **both** `name` and `description` are marked as **required** with a **red asterisk**: + +
+ +
+ +### Model for Input and Output in Docs { #model-for-input-and-output-in-docs } + +And if you check all the available Schemas (JSON Schemas) in OpenAPI, you will see that there are two, one `Item-Input` and one `Item-Output`. + +For `Item-Input`, `description` is **not required**, it doesn't have a red asterisk. + +But for `Item-Output`, `description` is **required**, it has a red asterisk. + +
+ +
+ +With this feature from **Pydantic v2**, your API documentation is more **precise**, and if you have autogenerated clients and SDKs, they will be more precise too, with a better **developer experience** and consistency. 🎉 + +## Do not Separate Schemas { #do-not-separate-schemas } + +Now, there are some cases where you might want to have the **same schema for input and output**. + +Probably the main use case for this is if you already have some autogenerated client code/SDKs and you don't want to update all the autogenerated client code/SDKs yet, you probably will want to do it at some point, but maybe not right now. + +In that case, you can disable this feature in **FastAPI**, with the parameter `separate_input_output_schemas=False`. + +/// info + +Support for `separate_input_output_schemas` was added in FastAPI `0.102.0`. 🤓 + +/// + +{* ../../docs_src/separate_openapi_schemas/tutorial002_py310.py hl[10] *} + +### Same Schema for Input and Output Models in Docs { #same-schema-for-input-and-output-models-in-docs } + +And now there will be one single schema for input and output for the model, only `Item`, and it will have `description` as **not required**: + +
+ +
+ +This is the same behavior as in Pydantic v1. 🤓 diff --git a/docs/en/docs/how-to/testing-database.md b/docs/en/docs/how-to/testing-database.md new file mode 100644 index 0000000..400fdcf --- /dev/null +++ b/docs/en/docs/how-to/testing-database.md @@ -0,0 +1,7 @@ +# Testing a Database { #testing-a-database } + +You can study about databases, SQL, and SQLModel in the SQLModel docs. 🤓 + +There's a mini tutorial on using SQLModel with FastAPI. ✨ + +That tutorial includes a section about testing SQL databases. 😎 diff --git a/docs/en/docs/img/async/concurrent-burgers/concurrent-burgers-01.png b/docs/en/docs/img/async/concurrent-burgers/concurrent-burgers-01.png new file mode 100644 index 0000000000000000000000000000000000000000..e0e77d3fcec50e22c6efa0548ced74eaf6427dd8 GIT binary patch literal 203390 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

V+hXZK10wT3Qy55jO^XMgW^Vw`Ed)>yU9{&pf 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 literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/async/concurrent-burgers/concurrent-burgers-02.png b/docs/en/docs/img/async/concurrent-burgers/concurrent-burgers-02.png new file mode 100644 index 0000000000000000000000000000000000000000..27f6e127179cbceb02da41761f7489f10ed086a2 GIT binary patch literal 166992 zcmeEtRa9JC*JVMF;3N>--CYWI2p%9of(H-o?(Po313^M?cM7lI0fIXP!QH)2?)|>M z-}|M<=+Q3)1$EA;z4zL4&AHaxk?&OGFi?q5K_C!@{99>t5C{SI6<+%#67b^zJB1nq z2Lj1UOT72UK3Mkj(bMugIbChJ9ur+~pHFg!w!!-5-Cs9`h%?IP%j`#~pp#Ql6C-Pg6_Ko2`NUFrKq;`$iGvG_(tE|22*YP zKZrM~0LciQ^UA2DNU|Vo=!ieYoyrAvF>RF)=WKR)l?-JF_|1RAFhYk)LV&V3scU&q z>i^_X|F>7E97hC1*;mS*S_4Ng2sX7zKT8NT`;H^b^zZiTlLqE=gC}VaTu(+&TqP#2 zY8bTAiSQzr@eWyo=CzLOhK>!izp;aTcDisK(XJ7Ot|)vEfe{9k`Oth>!qvNJ_NFFZeDA#QTc;d)XIiZP?EXGRIRHDd3+lr< zSc8S{H{c9BT9R3-uBz>yDWrO>fbU2$OPlVjHk9=>ep#0B_`c?sK=0OP9zyYaj@aN; zQhcReGQf`Dx}){#&z(GZtol4 zo`s)ILYTVP7G-o)!ttE2(SN{>^6zZXBq}VD?8GDvf-kUW92@AeT;D0IgW2M~5fZ7? zxj$2|+a7*8pJBVZOQuN@Ac3-asr#4HJ@+q_$if6yAP%zrJ28f6Aore|0YB4tgD)eV z=_CYWN-gm<6u|;_@n6R&jEH`x-<3uqX)j`%nc0T$V!WD}kz>RdTFm>@8iaFB)Ll#Fre&~@=^JEW=xRf9F1&Y!Ny&-cV<2K_1-8m^4Vz2s>@t~y+8t$hkHK|u+}o+x^@Rda{|p2yA`cRe&@ozM(`~vuf#pF)s{Grc z$BtfYM6y(tne{)>q&4aT_n2Rv9q<=h9h5;EzO8d6ZuzW3tH#L1@K0>0aQ|HrhSBEb3Q{mb(aHTILlFo1i&@vfEhozg z;DsP85C*>S5!IXR-#*Vz>ETgk8SZf;sh^=qme-r5O;v!4AvZZd6St04N1b)$RCa!N zz6|+3*tbu{TsebIE?>9;#9xt&-T0O+bohj^N$GM@}j>e!WGTKf~=~7Ns7zM zW1^x^nV6Uu*x5^fH*aYqJv{~9ym|9pQ&U}6SCNOPsI`>{>Ns#Lgo_G?{SpDhp^O7{ zthObFI{q}TgW+67;ygzNhD5>zyl3kF^$VMtni?GoiyI7nOO;4L7N0z7K4@O|rI^1P z6Dc@El9FXul2L{(nKJQh%xW!nnpz#K%$LJ*L)6tMjwg?14DhlDB{2if@4P<|?m+-7He zeM(puQX0GA*u(94r0h4~xsv(6ZZ_N7+ev_7a}baihBmQ8KRx+jl7Pjnt(ljXm-{|( z+AI##vM4Ahe6Or5ZfVIVE~X^i=No#%A29@ozlsxzYZ8aX&%&$`N&Ol>-~ zoPvPS7<+hlJX|-~uZp@IuPAG2;dgX&(7Z-bFa2Ez8vcDBsJ-x~Qp?M;lzObB@?&3K z&Z0*)dBwj}qfQY39+JSc8A{O;en>9YEkAm2QqpTao4Kxi!)Gsp>(<#Cn|UtaTd6D= zsZuL2_N;S&FfcG=R>xfRYv)-+L_}QN+-kkA?Q*^L7|DDu)INUv7y*S%nWI=@+#{*` z9317))ME1MbCBmTX8g;KHh$9py>c#q`y?joL}SZL68T*ukJ2Qq?D?Dc z(vsiLK~2y6iBJ*XeKv6N)_jk>S3R3G@uu42zxW_&WGnK6TSMc0&+QLcjy{hA_?6 z<|4MuE)pKjPe{%5UZ%j%`_>bI*piuRDIu@mRp=&U*2IaGRlP{)bA12dLq8(EUf0v( z{R9r(k!n*cHoJX5D_w2sW%CpE0?SFGU}LILPa1rMY&1I2%5{4YqU^Du6+Q`a@0eF$ zfGN7QDQNX4NR}zi*dmb%QIbT2evL+!nJ29BCOU-+3Inde0gk-_fYNWOHO{O6m3e-RQJHjBVwxakg&@u7M9 zt>_pS#so<7Hh8@p-+%lNEcQ=lu51nxI%*EqV?*|E-e2Yn?}**E{9cyHlP^{*do0I{ zgN_5;hN8#}rq03>ZGnNw>g;BF2-d#|^Wx+hgmLpxs_@gzq1j}A+%}q~;U&Vg9Li5Z zt(zV3j&MYpJGVKw<+Gc+jN1+nu=&)W{pC@HZ2Kj+0kb7kVCgkJ?)U7T3YXKv(|q+a zPdY#bM*dy#ul^J=RJ+P|KBCFR#l<+n1uZ3Yb;-7iji+bB>~)^!<_il8JBNp~IVvzP zW}tWg0JDF_^Trn%tmm5@sfqdR3OhUfW(FK4WbgqHRq*$JzA>X7L>CEmB-$&BziECH z33h3`ejQIsNEWdU#>CfeNUV)Yq6TM5X5pzYMB#i?Xmv!9WsA1|9xgua=hNFkkdb1F z6fqTrX}J_Nap8j;L;1q_C&Knl{Gn|7^xduk-G0JAWfSN92)vaLS;-J(6Gb?ta&s+; zN+?WuXbP2@^S&X&^=-2Cm?tE!X4r?QZAP{Tx3iSwrP2MVDUHT+_B@#6K}1JKKdH-mj5+qZZaY|Lh?b^u)NXPo2?rQR zqwV5cjS2E!u>YH5ns5JPl>!mF;dtvKipOp+5=SaDun)4V*d>l2J>|^vJuv$u<;e6y zv1PMi+hMGKpQFO$`e8CmzOo=!Pex>DaQ*n0ruLe4};(^z|wX}q|*yE}Oq z5b11@KZ9Q%)caAFefkp)2R?%w1GeM1MyaLrg#bB>Wq=)w`J{OM81U zI>@RG->}H_k`xOb3@Y}-dH!cqr~t;p!()_57w7EYeClvu6c&_IH-Gkk`O&R`TNvCE zcCJQ9C`FhAEPK5NUAtP`*Fk;OJ$Qmh*L zDnSm74n!N62-bj<=jinp6%kX?5MCmTOl<6DdOZBp@`=~9w`X@>@uYWO_2p-WJa9<` z2h(WC*Uy0C++Y8|(&_l1;Q0Iq5XajHX{vI)mZY+(&djEcL)&b}0Ydr>V^D%hNz3Ea z;_U`LN@#%+*T2E0e zH>W5)Qo(oFhUhkaqNBm4P*E8o&3VB4!Y>4Xs+oXK+gZu3sy~dHXaQI7D_UH#q`WE; zI2BVRCz#k(Ev|=vhojBBlJx5fBHKTn@gwTZet|&6Z7S+7?us*pu3E%dfRtF^-G#w% zy}+{Hc4PT<<+!iNySwwx+cfS(R?QGq@Mb85Dbe-fs0w#;j|=xUK^|=@+s_p2I&aMZ zy6X@_-f!xCb+DeC_ds*K;%%?y{eU6$3I$Pz0}{3sO{DEC%PpEG^St)*{-Zbemx%a& zpaD`iY%Wd+c0Ay!@ArJadfqbb8^`W{I~=Z0Pz|V-ym2|YWVrV2fs>!zc;1)ipFLLP zRwZnu-iSUQbap&-$5x4y?;kHtC`f5wprwzIaLhfOk&S7$c?=y(5Yz3phMF=HzihCh z{@sbQm3=dUPf5oWhW=i2i*=HJz^T)>T`7X<#%yd+uR4NB@+n*r=T7 z*(*NVg^>L*pFgE3R0JnA-%I1Hs}_E~!7n$SFF;Z#E=@RY&0J5UQ59~AZS%Wl!4m68 z)fVPGJnm|=?Y!FtlK)j(+RZ?w;$qk0sF6Yzg2jG09eWU z7b{;TR$~>l%kQ2Jfo}TQ{kkng&j}j=jb*zp)cfwnS5#6$%#7AJNP>Lb2m~4LvB&^d zDsrV78-XQkXylo4Xe}0-kGgRrD=s}wJD_CVG3-9;Xzg39_T9B{qq@C+x0o{ja^KbA zq6PZ9FJTg%Iw5Fdg27^~eU-a|CZ_f60rh>LS`d?G1p78vVBN4)-I`ny2mcJvuUGE>m7R92 zyL4Aa%fqAmt4b6OrZRQrXFsXqPb~beEDjc%>=ypRh!CMwwt#0;5_cMkzRKM z)>D?LwSrh?u=nAor|VhOvj*~q%oqAEl4~(YpvDdk34a&sVIT5jJpqlA{ie|>j*dZ3 zK%#<;N@f5uqDlK&$m68lBtSyU{!#b$Wm=U%pS|BLfua_x(el6>ZiDelWI`QBQMdXa zhhfbWR$chM$PzBpvQerg9xV^rm5`+klEBgM+ZD||M^_Gikhrdl4V=T7DMw{nP+2qTzG+xJ1>oIc=nn7w+NDr3( z69v1?vf}3+R8K=g@_%l{m9YtI@89JO!b`2L%>1i9=k>|{0PC(|+*Ymf$Cx#Aro?F2 z3h&_e7witmbAMdl%69+bBziynyp>qe^l1^f>79#7B zJaSl!tVPp1kig z?vEJcMoZ7JJCl(9xu1a<<^0cVZm+7{?MuUl&9*PA?|7|xM7X$mAkX&@=V8_++;V|; zF-J#sq7Um>bpUl`O!kMYj$5;RgpPNfs)=4$%>L5W;$%*KjvUio`q}in#ooM*RoQhc z)~s;c%7!I;0ulqRj22C^%G3x#EOkkXtK6uS{OHznp2PkWGIm8)=`j^5vwB?fUL9|J z$eO*dptZU37b17!K!`u?v4 zEJG#sopHy$>+Ax@BWAGD$2v-alk+QU_6?}vBX(KZXdcgL92DmBbe^}}jZ7}Qci(b3 zqw9H411(m1qE38yd=HyFUH11CvtY?^pM%EsYs`)P=Ke#UyEulXd#%!1UQRP2=6m5) z*>(qCj6q5tIZyVBe0k3g+w%?9vp3Q$?L0l( zqGxU^*KuVpZ{olDyC!O~T5ot8-hiyfEpu@Z0R6V*oOi#Z<|;DRXiNNe6$j1f@i&;+ z*|%Zj9zy=lTK?iZ>fp!DItzy(vyR7J;q#3##&koED?;I?1HPwIYq1i42h)eMcfZEP zmV8JpDl(R?DjOP7?fuTPWJJh@Yk}%tu1m%txZdsJO?w3wu50Xc`)$~4t1XIx^%T-8G()~T+8HMj~3nr!MXkQHhUkxtc2a5u_+vGB3;#E==BXbhFRGI^h@!( z{6?3jI$_rf*lU1I?){^&e|?PilMu|wy+jY7&-DmeefYx$$XVbYMh@fh&yAodZHs`~BY(eMyLyz{ndJ)0vB!cU28ky)DT3{dUR@<`y}h>W0o3{O{B4 zbLvBZinQNVUEaj}yv}cv&o(yM7yJ`Mm@aRQ&|kg0@r33X4(s5T|8aOO%uq^OUAZM# zU_G+wC^^4z`2nh?HtW;Mj@DQATsqQ-*agJ-0Sgz}*G-OE5UM*N%MUaOiQ5(YYDkHAJkmdMPRNa_J%0nuGqr-2XJy z7crh!n9J8Uh}0WP>GL!4$pKL6p^t$x1@4&b-Cia8oAkEhotMM&8q( zc&qOfU%2KwPY$>}hONglF4_(c4mMZ3k6HH|N3-~kfm(a?c#cFo@m7W-tOWB zDOIY{RBc&~z3&qg{R#uW-H$7AV{5w+pEoUVg)-Z!QGad%RaP@Q9EXi@4=hQ-{FLMO zzPS1E?5c-w1?o%J$`YYVC>!oW5ZO~DbSTt{4zk^84@E*V2Z^uSA%+Xk0Y$A6dY~Dt zhOp=e)i}3Zq)X50z_V;~KmG$?07>2^(u3%VfA9WxmiRcs?R&9Dks6fb`<#2hpYs~@ z8&wB3Sy!T;PI1|7tuuTe_iY4Gv~>Dca`vqe4a}MJ`i<7JY=2co-1Bq(?gMuVz`W-n z{?CQOcx-wqWecLHP|5M{8@9n%0{5C_7nrXs`fco7OvA<4=1b7 znE*$p*S8}=I&OL5O-U!U=}sTs@>mN*F1A(m_#TReuQCtM1ty_S%qEKXf&qc-I~w@8 z35`ahY3(Av3=Piq-u1d`MZTHG@>8bD9rAv3pb0S%I+!uZvB$FyVEwP$ie#CCf^9XdpFeq8lG`p8)#@x{0-PVQ2!(1 z^}@c@)rl&R%~O`QJD1mYOHfG*d{Z&Yb2HlX%fAxuW76LeokMmoy?N#Sn1bsA=k=<; zn6EGLbpm^~VedY>2+)-w_i;jl_?>u;Emqq+)MgH;=X&`;Q%nx$S7j8v$5V!f6?&GQ zPok6AbOEi>w0b#LI1F%9a*u6dy36|UEvF^F`@@UtYgntD+9ei%y^y=2%%zA$(E2)E{xRzz8irgoE%>%RH)2{HCi1Yl7Lg!2- zP}$<-;dy`32-NKf1~!|<^4I$;nY-p^Tbo|^|AN+jK*QR1E83zxSY8=g7V|Yyzwh0( z0sHfgi#%}!Ki+a9;j!hYGLURSAh(JJo{qCA0rHKtiG3T~6Jb8}5jfDMMXjYyUquss za-Vo7>w>v5Vu$V2Z@qplT|E_1U#*Ea9%8?m`x#i*b@|;(*2n}uG_g~GzGB2KYReuK z^v_xFub1nG5bD6mTK?huw~`~^ltw50N=YMD6)#m?gDyZ029)@T3_tK=1kdVw(M_io zfi`Wz{X4fXi9R#a75-sn8Y)=2KKUJaTu}V+33l(U+TyeR@UgPlVYF~~Ovss#-QJoq zIVXGcWFdOC?jj-g1Yn$hGov(P=(tuhg|WA{5PSPcPa(=D*AKMzEuSvyXCW8uAAAn$ zj)BM(YuWnNevZYSb!9>Bx!UkBPu@`sOtKjfQhIjX>nSi;p27SKYXvXho#h#dE1gBM z0)9H7WAn;WC;w>)d28-oYwx1TYW;V(3f`0yke5b*CkW4wMo^zX15 zGV_DRT#)Bq~`sr5k4>kdmEXe7M!VXFa%W z)It$keZ1$n@*%e7h^hQyekL~X^6Lm{y$H|acq)G&e^@aVCNYZ1g2E$?ebqO_M$jfJ z{EnQ~tkj&?rJOl#?`lAn6`Ze=>+4q=Z<_---0I$i}3J`#TA zRj_7%x#pGOpwPC~%5Ye4K+=pEmLs!OOW=k_opttlso-A zcNxoqOZb4OwYZ!loa~(54u@bS+byOMpqfA8l=4besBW=aHUicimtvg${!_Z9u^h7_ zRgvYCyG>)36@C%i>_D~icN-$0Su*nzq*+eR%^T!oUWHwcO&|1^g9MFR#HivaPi3dh z_<-Vt&whGHbid>1a@8`7;G|@IEa#1GIUFVz_6SBnleP!Qb0%@gl_BKnN35JkCTw}$E9gU5tka-_)t~^~e;kQ3l>bKE7`s*vd*|ygf>}`mLm~xGF{o2GaUTpkJ z+*`KNbkFRZ0mnc}ijqO%`21KQRV;n5C)!@i6{*%_XI1hvaoVfMv1%-jpy5>y(do<7 z5kqhT0ZdvHBD2gh-Vs^5jNc z)5wEf9ZWL)BI+IcR4jXfakX}A+Z%=T)tr&~eFO|p(Io`XiF#6kKjPajgQXae!l%%o zlZEPhk)~-jGnC1$?@(PyY=&!x#I?l^9_iP662PnUu-8}Qpd~iG!U`AcqThm!%~j9?lBRu9Y9cAjyX$>w$4hbry;`Jlni{@nM(fh7KUh3lAx zQ4L%N)cW1N<+%6j-t*3<>bQu*tQqy(O$7(4137KhG;uvt-y6-+aN-cUSalw-h1N1z zpo5y#@GXpK#|oJ2g}Ud!cN+xvUV)Vlu%BAhhWL9_3756K=IAQSDIWqGk?EF@7~vUI zQ0+LBia(QO-1UR=UsggKy6&1aP-pSGE)jpGY9?nkp>y*}R<|Mg+Y_5B)LQqIO2LEZ zGuE}k5=_dgTzhD4Wr)Jnn$<474S%C!wpY1RtFc9vj85S1=7XVx-?@CDm zHFMAweZbm6>H$g?>b0;89Z$QcDYjmFL6s zTxI+1DGr#TG^V7zR-6u!Q1w=SV@l9-+upWcHBF#4_V?`Q#dvu~eDqF;SYONAZD8t? z7dLl@sy&NG1?J=0B8OQCVSg)fjkt;<&=+wGGqJiuRyVD~tVu+V+fRDC>Cixz?i?lR zE~@=KPJWf1C~Kscdj&;`YPaZXQzO>-8T0beV^+??$rZlm?BeYC1eTt-XU4^)O3}gT zYK56jojQVpkx_ul!XiHzI+ADamIdi0XS|DmoVBvnF*d~8gdUGeiCHt8d!%|$2JS#$Khy!%ENMQeWhDw~X}K^dX#YJ)g)Ay<7wZHT#33%7Ui zTa^>)>Pqi80*AM9Oh{r=&(qvv^B-(5h7r(6;Pzpl4st8;>)ZcCqcmw`)qY=mymq z_3=aN<#-wTqTlxVeUzDXdab>dkSZiodhr87jSi_wEmzWj`k5pSJvj=9gqr%4g|$Me zz4cot-{3_pwyS;brZEVp)f7`g|gp}aA4V3he z;#WxTI-_@2ytH7>0HMBdyew5pdf4t^yxIpfu3o+v$?;SwE(E%trp_)`=x39Sct=mm zb;9R8DtF-b1fXqQG=9K zNByucoVhqDd;gfq6-u|G!?g^2_gYsA<`+_qlNkqvpPx-0iY07mq_u>3cR8Dyn$9N` z*&WwI@y9$M8t@<@uRGdNU%`d5WIMg6H~YyQNj=}XBZ$GNp=cLyM&fqHm|G0xkKz6c zpBg@zYQ0%0fTi?v=;4p}^n)-szByQex?UEHJmjGbX`#*wA5WR&AQYp37}~^%#rgG( z&_Ei;T7jBGw4tCr&Y7h8FNRtQwVrQUq6GDxBMr5O%$ zu*EA>GSlT zIb;TyB19xdAb{e6W`2n!m>Mz2c+15sdm{sGiafxe`OD4dOI+nEb*uYo%@b9+UacO=gP(r9_ZixeO zcuzhk|7)HDL%^!V`nArD4_=W*RIBncjiN;@O%kE(YsLkk`+5Jb>7!MR)z0?FLf5X? z#PV_Ww1ZGrUM#T(4nQyZuYklUu)kJT#;q9G=atW7rZ*jL7ek&gl`*EX>--q^wb)F% zABdQSzon#x)UYJK>k{iErLtJuv_XcR?rEEH3EUx>kn9kBZTJ@dLjTd_5|a~5V!@CG zkh|Ba#Wl{D8QCJXUe5$lj7&j(W93!F`80n!^gF7gnvtPw{o;Xo2nnUPq?vjp$z)3A!m#w7BMmPoE#dYcaJq@wR_;_pri! zpbBKmYq@0bcysMq>3wEK@D(*i@m6-fe&oSV$fQ`Z`|&Q68}u$ri{)3&uiE#2o;C;^ zc@C6sES-B;J~jpABclD9Nt`|h{WP1HcB0)EoR_M{Y$*h~}uoYWu zIxyo%+&EQA&>sY)r$9?j6|X^#P6?ncEcWcvU<}X@F3* zRE$vTGX6afF-ilu=WqeRym%D2sKz6b`x!?^N2ll@sN)WK%!C+$iMt|xyzn_{v9Xa3 zU0D8!4xR#I5FB}$*=tP1h!A+`9tq%`UtXx0*DS9xVC}3SO$WMZHHkF7!PGPwgs%tD z<6uTYb}RB{1V!yA=X0oDfGH5@XM5UDEiH{0K5ZGEMXLG)N%!c|PJK*Pu$XVD3f5=M zdAQJuhh6J_DVFFu?&ZLRgJAJ6NCDQ8xNkM2$g|VUm5OxM@uF<(Uo}T=u(tRy(lpa* zIxA5jyN?*ml27t*AfUsktgO5Od#|aoJo$@1fxf{#&Y4v#qcv3fRH78o0e!ymPnSbj z%;9AE&sP_KVVbE|l*%vp$4O$I&p2P%bWd#S+hjLng_3J~8ThgzXaPiF z-0=8f7#vyLyV~+`6<&yHYHC$C z7a*AQ3_8s?(%a?&eu0rZF|p%Q!1T$X>^!;3fv3uu^j7V)07@Bto~1%!g$>2;J0{ty zx#td5TEIxpXMaeQS{o_tlOp|sMgKiOksWo-kmM#G?5)Wm%M;_=q$qCm?d9B1x9XH0 zcqX5ys00}e&jdyMbmzk#L}TAE;*q;maG%TkT;AeC-hk{wh3n{~){0OdGg+wJS zJlnBo z9wB=gL?b37fc5@$q|$$Av2eG`Bh@=7L;*Gn7y!J zD6G;DyliCR>Q%xq*3OmP|6ymXJF*2+8?5|htyx=FNR1HRZB`zLki$HR~)B46GWobV5xv(54x{Yvv4LXv7DiA{%)O*x` zoo%W$sk)#hT|hb3Ve=xDTj>cX@pnD32`+f;91~LIoYmrBDMR_uc{Ba&Kiw($h(;SR zh=Yl!NKlNoo$3!n#o4Tt7#2B@On@QTW?d(Y zZF%@`#1!eJ$!cRJMIM&Z#?|FmTL>g@A#P(Bs92{NVtM>+E z{tu^&v;64&8P;c2AtP`6AOd&%L1$-YIs$(tixh8<+#$o$T80?nKaZ)i>Kyg1oAE3( zJ*=K+;m9#2I24%_OVN>_wsB zd;)^Hhk_|Q_HO*;5o7zJuR;(#FiJJ!N{*^l63SI^ZNq6kAE!{{@EJF z;9p%FHk|g}NLjc1;sntEH9?d%kko?;^`LWMLr$1Xmx^V68XyniDD-vv~o*`d)wPp)< zamymPPC;w-is{D?18cmxIvynfDsW`wscUogT|Ljx@VG6shV*={yFyDHhVRze1wUq3Nk1xY)bh46SDg%BzRS{KD_Y- zr~2*^XV!)8xBKRA6AX!OLjZI3=g*%lKY#x8^l%HL!MxU1LBPRKT2)1k1&;tMU&6R#_~`_w7&f5uD`S75wwOL9v=1|U(-Ri`7})!cNB|v zRm})gEaVsC_~9(B8nYR;4iPRhkSK=>=|~D{Xp{gIHOGI;N|{guZJ|9FXLPmUT|Y$^dv zRZNok5Z(wi_mYaa5mt*d)FU1bTALqOK^Wz@#INWq$>yFhnUn~@nCuAt0Ho@ z>6hzK9Bb57;Awy;EotLjWb5NEwANAmNSA_;FNjJ@d6JPZ)bo}oENSI>A|UYabFLlf zANFT^VlnS+L4(7%^Zan&$P5IlcC4^Vf@lZv3ZvM=W|g8zWVSoZv&iS+3=ud|_2v%? z0z7=y3sXK*hv6tR_?-m0Hm+!U|KE!Dd6BDqI@+NVd0hwmoa#t+rho2#38D!iGp%kP zX(M$}R@v&`m>LjH`TH@{MU2!syea%>ev?1I{QBK@?Dfq&Yb!OnxObCk!rUb07E7vQ zr=o4&XpP6(4wOFcF+1ujbLAEQVHG#COaG|Ah(1MueWLO4Rgs?o2GEa}R_wib?6+;u zX|2rw*yEAyy`xRI?YGjKHy>`TJrShf01J5iAvSRw`4tQ+3?BHy9#Pq#ZT0Rksp;yN zTdUCBPxIQ%T0YVWkqcL>$@b>NEkFnUDc@>;SaM6!36~2~^mLvEN$g@$s00Y$gB(ak zbJO7b9IyF~Zl=p@R;T5-TrZNJYFvzlYpYqJfiqJyuk(wGfqagH$D-X;Yc{Oi>_DlQ z#**LKnwgZ8q*KP=U-(g1clY=>@5!8cg6r8d@KN-7G8C)K^4 zoSzx~B_5;4=U#1;*90GErV~Of@#8b|ckAy3jWtn53}7j=%?IF&*r?7h(E6KLzR zX3nt{`AbV>hO_=EU|;!k`k*&@uSkv3l1f7u7P3)5bB)6@wjw}5aP(nyxoUDbtE(}- zoxZ`CKs!xFM~CpkhY#f+8=~GYYgW4*e*Alq&Bms%pdd(`f}@Oipzg3A-;f3`%Zn=? zH`{wgm}pOBrG{Kpp>(3d^79NASJ!aY$yJ^J34wfdd9960C>ea3d>2=#VByzTGJUdf z0R!`Z{k`D+eERI?Sl_q|g>`s|DTcjXTZ&X;-Bk)?*`z|}t3nM0z?a$8-+0)*s0&*h`kuox;bu_y`O-J zn(6&wX;U^PUAZ6ETVGhIaW z_=-wbPBH!&YC`1DkJ^0d!;Z~Cnz!qlGmoyg?*Q>2|Ezj^vogDWwHw?8o948z)L+FJ zKU0M)M#GDG>708wjvghlj5k3&ig^cybEwfvY`Gd0t$r2c({y=`n(5VlkD>iwEQw=1 z0$yAFL*K@xTdkdUJxAHZ5IUU~F!VEKoc*u~Ae_eNbRC}pqET^QxNs-Xlalure)57{ z!^}~|`Z1n?M*ZM6`2wNr?U_5d1Y^nv0cVi-qIiCs2u?0FDheo~H_ZhXvLEk6VMQ_$ z!-AoqYuFET*EqSdDbj~y-S^cLJWC(bWaM>H?mVY|^J;47=!b1(>VHY&&7qnBqrO({;39`iE@nM;v>wR?s3!hdHfF>uM zP%o1iRmOTA#7$_z)52+)yo39gQ&CZ|<#d49^Kx1X(A_S5$-+|;&$BXOogI|{!fU(ZYGEV^iCwS=5k^^2Pl>X2l0HR@1rLQTFewwD}5 zau!cqVoWbYpn}e_n7e;PJ z&2D5h{6_q6>Zbba0N`7f)pse!N-dMVx9~G`+*br7H$lf~Pd{i`a$JM=(ZH|i3w%22 z@o(!hKJ1+R(5`|Y8HAc4a~sreuIoeydkI~kX%{Ar1WrSn>(XzKljh~E9tNc|MTB%a zSn?-ke8Q}-(GkCwvwgEO;020v(u&kypx^J`nz<4xYVy<_7Kwo4hQ})Izs&0K7nyfS z13c49@P6=b0gz=v2lXuoxBxJny!rcK3pwTrZ=ts(To>1v>*qRO(&YK9&zIhYAWjp) zk1gH#;L^`nk%HzL+yiv|Pgt5(YeH9^dh>3G!z37RKMf|)>iL}Z>p73|W&;rh95W$H zP91{TdU$-<&h@ri_$POFxxoE&N|?R zOF=}f*dQUTFs8{WV$LmK#k1f@r8E;VV0xkiIs^miH&=~r=ie6Xwy~a0;?d0EmRzQk zfsTjRI)IpcZhBW2SQE(#+>nA0Puf>Qk9crJCxio*0cPdi-P+OQ@4_Uga{8wYDnPo{ z*%P+dR*RGwb&+PZea-@t0^#Mb1lNvC_^CHUJm@l>Rw2XVhNHQU%kA|QW)Bv?@d%s7 zlP8;@vjK<;k|a=nh3 zta9?W=~xa3yqoIz_5Wh&ETgLI+OECn29a(F3F&T7kdW?fq`SLITDt2-KU48!KYygJJ^J(ZEB zm$CUIjOLw*ll|HnoVf_=YJ!{===);Kt+*q|3SJIp8oT=E8nddXW~qh8Ke~L52bImA z1c+pAKiqy$yb#$b4urL{PWcS^LcJ9#dtj$0em!$fo5R~$iFRT+@HDM{35GSh%-;)( zJ8SnFed~-5M#Ack52<*#fL2Ul^aPH{u)}fiP)eq^Fbtw!o593(zvL`CT4>AXfH$ha zVl*`C2mU%u)^Mza6gp;!XOR^)Nur>#*P=KYdzQi| z>UHE4nB{`@cl_n+?(*Spioy~m+z+mfVXhqNPbLeb z8AP;?>wf8)scEN~XmjUd(Si#B-DRtl4ZA6t25-sZ368$Jik1AIb;$5>=YGDf32(`X zNZ}jdr=kTb%vY#4^pT;+NDrZ~_^HOdmhvIC6NB#h9Q;`uK>A(d7iy`8;qB@!%Jbw~ zxU z$dU0XJLJv9VkAzlg;9$&pd&u*+)e3|knITU#v+fXIDUoF9VWZ+pIL+`+f1O%Y)^b% zcu**B1}_HG|7o98YmKWV9O6lYc(^O>^452!$v`;h?BvbVDo<z*B8fY$_89WVXU>av z2v2!b;zPD(3JkDaI+u{8&UWju#%Fcd{FCNBYPau2Y+sk%A73qv-?M$CDaAIHd{~ENx7b5QD zz%6Q#G`bK&^Gh`fN3&ZMiSJ(O`h{cV1<4FV`qUr#piMABC^jactbqDp=6h?ox zIpH_r)I_aXa=Tmhz)KR%YR3cL+5;wV+cM>)@Qy!u>NdNIFt;rd9mRtZG2cxQ30$~} zJ}d91pk|Qf%p-P8NT5fYvakdrEW)i{3O>GNwISN!VDV&7aoUZU$~3EnC2bX9quSt!Yyv? zW(GWISv7v!1tO0JiWhm$Zb&+950i7EV^;VW2YNg-TK79a1VX`qIZ6%_$o?x`QOLGgZy*oS|$KlZ~m71{jj`RN{|qFEcsTciDOV4Fk{FFhYdrErluZl#;*N7Hm6jbWsE7 zLUg7fZbj7r;hRD09iBF_>zif>u>9{)kB)M2+y9adpXOy@#vlPUn=ah9 zcPjhu*(vr}Do;M}zeUphA}5{}?nok2qk}ZeJSLw7Tjhr7z%4xauJ~Nua7=MY;;1k0 zN%&LS@HA}b?P0gk#497mnJ_ql=59-+qA#`x>=6tSrA|bV1BcVIJt&>V#0a`aInqyo z@n9-)c7&trNR|fH%vJ`!`0ViCzu6z+LMJ_5CpC^pbwV)oNg6j)QdF1c@6d<){adpD zBPk(ePxWm1k?>%9I#%KftU@%T8)%Fk9z{jFJG$1?f0uTtM2(Edto|$JJS9WS~dWcaFIL5Cb6-al4ac`x+aqz`OTM>r_`vdKj%;a{J_2vwsOd;?tfC090exLv&{;`b{0;~k!SgVNs$G|T$M>=Rjh2}q=Ytt z#T|BdNNBWjKMzIzeKtR;t=UvuM3|GXBA`y{m8Ltzax)#cW5Z#OSzczg#w8j4IxO!Z z)>3`XKlFaFWV8NkL;71$JMrKJxAz3?D z*UgHarZp*d?Z)qsrH2&#G9^<9LV0_|z1k|VRh;4cMhb@LQ{&!M@xFqPWCz!`k6-ti zagge!M10p`k{phUl@VYeBk50PR=gVsH0SuQxs=Rt?XYAK1Aj8A3g>PA*N{Z}ToSeW zHr95nHmx9tP#kPLT9K^MMH@!LjR_4j)%osR+NiaJ(8EHwSVfxGckjgeH4Nnzc9E1P zmKk0##dWC)K-OC`@BO>7x^5%ZYF!iqdODtD7-VE+y+(Ccdx4Go!;58D2lqnowW8=F z7a5uAOiXg{1@8nMslesxX?#)5&+6Gi1PAklla;m?H}d<5#z@Iv-}?*RjhSk%LxWsz zW4a|B0m3hDKkW=&^-z!_6xw;pjmT0nX)6IE8F*%ZcXlAr>jq7&v!ax~XRoe0CxpS- z&(BX{<$B(RDP`g`$xwJ=&`p+sHCD-h*mxxhVQbDsKemh;NCC8Iqktm1nk?;}!awLm z&#trRL)&3-^XOmM_2f-Vf@aYL8W@EY*!5PvgMQ;G*fG>1w(?h6lw(Fj$#S0PI$Hur zHYlD!kXUz@RSnp=+*2s&H>oMz6Y-LW9yb1FL#;wmk{tnh!DwevHI|Ts(fp(3{p*&L z%{)bxJ%wixZw`kAARS>1MQW5krdj9gXbg1_MH1sI&zFL&E`@20phI}oDplM58#^x< z!RWZDdT*gQ!DQ9LPOk~6h+x|fqt%RZdGU35dF?ku}CcDiEXEC2e^Yd$1h;b9Rz;R|HinJ2^I<}7?PoNr zheB?01BU01i|A6t<#qGEMB-*66rs*Tqd(8p6b5y#SKWEwQL_z_<#O~a$kJvDen1&J zS422$q8X9*OZ~@e;pCDEI48Iq@ijJm1j1!3rhBYt$L&kse-POz`YRY=>);eU3aj!i z%G`2fXYm9MKk>PT*eKjs2GWf%hgjDQUF9Q8|J4GJngLE46Q^dN^J%ew&Pff+N)6;#R*qo7!o+^c>ip- z0e#+q@xDKYCY{|szI5}xry&&E@($iO3DQBZQZB%p{03;MPU{a8@OCIQa@h5gUG32j znE+ft;f!%DVk?p^_f48$bE5nH_Ad^34JHSZfpc1*`bvWXWFhe80OB0}C3BiwDhoj% z&jAfi;F=TwF}+QARW#jai^CH%n>m!X6n;#q$8d4$%Vf~r{C$a4zcsle*BdnusO|i3 zy0A`L;ybsRe=ib#`ZoVCBI56TjU#k=Gm1X=S~d4N+}Lr|YwxU~%CF-4zktA}rzeK{ zM~n)Fm4C1gkA~fuZl{@tMk{zq%2=s+s@8SK!F4?Z!OKj4xYA8csENq^I+G~eX*xQt zCPMf0sL(t*Apw3xO*;Oi=NXPGl2x)jvv8~1&%s5G!?l~_n%35kMW+H$_6D}R1yd8u zOg?o9T=?JG^@4%FFuV+%?bYF%IARv^dUAQW|7f)Rc&O4UYFE2k-WH%*9FMW5pg$E% z|Dlxc{(fo3gDBn8r4Bwvuy&HFNDK*wwbgq=ogj7WI*L1rpH+87y7BMtDmc6-cq^UX z-B)SXUllB@91cu&?uwEsP4|wb?>)%e^0GSVNG`&ITWCH|J#2 z#X*1{8+3b(Oa2AE_VSuuJ&W^DQcfrlJte&WzHqs=09^(?A3r#5b(b=7G4^+iVq16z zx;i@Mk2igNNY}jrak3oxo={h>9|U8iOrpIeCK7kYrmRjw9g6ZYY4MVUw)52m-RBVK4u=+h++9>=j`S1a+ zkPN2MVDI=oo?No^)X{qJ4yI=8-@U=((!;k&*+RcC)#Zj0@s@_K4$*m&{dT3@i^9Px zmWq#pd<^ZuUS1lT>R->8Ikr4<2N-M9L?QX-uBcP?#Af*EF=M!I9P8c(#pHp;l-N;! zzLh}W&S*!>@_R6UE+v1O)u@#9D$%}}HciPFiP6mYrm`G0DtRygp3tfzG!;uV=13TH z(__l>0$%r++Cscc4+C)dL@4a$4HV%vMFR+a;#cC@@K_ftMzN z4HhmnzT&iZe%fBs$xe-YmG=_$ohgmV0nuS_3?A$YJ#Cau^mh0^&8H!`G?;Z&B|-NI zXoF*5qs9&N`Cn&dT6YUU-`lFNKP36~pt?Vh3niGJ3R6xZ1wgn8E^GcLlGTo*)Zq@gV77;e;>V$eUZ?WZ*7WxX8bC{ zP!5->+0q3$rkTEC8z~?25pF8Lb5UVy#)L1+pGjcpZ3it{uF5xA&p*$3epd@t0UA25*UzH~$k$+Us519b zVu91tLJCb^U!RLtaZU5;OWfLWj4>fl)&U{-ezB(4ObUs`@r~5xMoHuObif_6FEa+>G=1H8g<*%!$Wbg7Uq?b zQYv(;%`N`gZOHCboY)K%-=R?RI)_#h_B$I&H4freff;GxbWJis=CH=!vpe=~4y=vX z2JS^J*t#CN2ukq#M=fYDhWWGgvGX!_zHvW16xplrM_?KL8XGKDDMx9L@on>+Z{QKo zqettOXzQSF5`tPcVrn&CjIc?DJ7L;!f46fmsXEW0&7kj#cgMVKYx~ig1Cc{Bn@~e` zB-|+*4e&vC$O;m1)&00}#9k!H3C|_xO)M zHxaGLHPhJ@ZA&W)29-&$5TJTQm3Xr~1Qop{Z#u+E)T78gsh&ZR`f?;?&qN&yDdcf6$3jscsSNGR18)Y#0)~-9pbx?GRDc3TP=i8>vasv#= z`i6#aYsiZtYzJVbsIx9r{!sY;#S;Lvc)8${uBLNiAKA6Yz+TsF0MHuC-)Vzm|9lhw z{Ik{VFiIqM4Z6qrw8`puK1?@+MrK~i4CWFMAS4Mr|7!Lq$!~X(dq-PdBhm``) zoNAOMBHqU+`P@%~#zXkfL%OvHY4}v;5Jr{|7nb1S6s1+Dkvu;u0ld2zl9<7r}IMI>hLU`2Z6z5-cP0Kc5-Wl zvp>&;?BebUREMWstZoF!BoVfktj!}1$5n2uE|riD0RwyDM;mz>;>>#P_0Nfwy3&@&Afn`o5^D$pncqAY=)BTT?Qset|$s%dFyDdxRa1R&;QaTI?)4~9t5Bm|CUZS17w z|Ba}2VlOwu;6^KO;^wLhuJuMv2|CDPYvGlo6B`U=9xB8bY!JLF>T#3oS}J@d@6aPc zqI=j1f*WPj;hRD|eho?gH0yp-WwAKl`lEZ>kbwD}PqA8o-C9Az9p9vlb zvE(sfb_#p+v?xN?v&AKpwZn>t(Yhmsx~#9)z-UVn4PLK4!f^p%hO3xj`mj|35PGgu5n@=oGJfHw8`zD=vs8~exS%zkOq zqWsdU?FyV?X3>LNi&qPey^-Wme6iWibscY`-)YsfXXbVeQ&bP%g4C%Q}OK8n9 zTvtaWj+-92l_ z3JMEN7l+l@jLupaiyNOw;>@IrT>f3s9gs+KaAni-BvK|hvB^uY87XTJf1VC@PG$We zV0Vbb^;<%FUTq@RFJ#*pGmFP=vpCB>vtf%>ulef>77{R8o-dvZDn}j2y%KVtjGuN{ zSH}kS%Cl1*&p8i{h_>5AZ^^ovp;oQ;;l)QeSP^~g&yUbOoV=TUY;`CWV#vdV=rd=d z-9-q+L!hUS$blE%mBSvr0+ZZK|Nr>B>AVi)WtvsHrDc_y|3$NyfMGcNc>{u=98i5V zpKPN@&j}`5_&pgErv1sa9wP=s@`i^dm|KZZak`L}(X1hj6(3iO@S)wFP zguxIv&!jsBNjQZ4>3}#yjBL_x;p<_Bo-lCi70f<&p6)KAV@Uy{ftf0NZA256r>MIK zzN`JbulX9HpU1=N@I8-T;c%9e?~#soEZtd=$z60DYC7515ui8dFx8et|AehZ>b8X# z=0-M7idE^v)C90j{1sn(YH>oX>W|>7f0gfUQiyZ&0A096gDFOx#a5EEv?i0t*;=;| zgjRHvk!Hd;e$U2eTPmnnVtn1~+DS0>x`a$nC7k6y$T#O4)kiQ;E zu+A3?N0Rz!?xH0U-5OqKNXVB8z%|In0SMHZp3(8I2KX8bdJ645mvnOdD|2kG)>nDw z+-`SR1BPEjpc7!$i^JF2$H~U_ULdEqsVOZX0UHq!k&u*>CPDgTz7K%S0GLe5=Lq^9 zfAA+iKXU+-HR%u~P$pbyT`P#ie=fppr}97&kh;0^$TJRDVgv5CgA;i+wsaFmdWm;- zNisX_{ugnQ437H3A{(rch~MeaYMsQX(+sKu=k!{?44}PJC=2YqCE2_9nRM?&npVLo z{85OUjyNX=ch!+^43vML0P&2gQ=-pFKX6!hrB4cx0VSu2m%xiT)ez4R|^&{z-Uzq6b?YF7-zK?56q+t zX@9afS&PXUv$xz{|6Fi9BQnT3*?x0G5&BqI2I>5&$(iq)d#%n-@ox7+GptzAI$H37 zsFv#cjHD%$SUVC&XY?!gnOYyZC0>XBOy}?gbg!mX<`fO7WbNz2^v&j_#3S>H{utw{ zhimDOnS4?w%;Uc{uN`)cGqgPk{Kw^Ug9r8&@3suvk51ohO}UoZciWYE6|OdS74 zRgtHVV>=r$QBv{BDFV~RLxKoC^MxkC*V+Ev!68!Bv}xenL^z4@z0bfKVUk$#GjNw- z=imny-a2x2hnO{7c6hd>#OmH%vq_~(;@K?|an|7%j3FX&QseKUl2SIji*6`s9~l?~ zTbfK;o?f+#c*CyDIBei;I_4xo*B$(~hq&uV@VWSnF3t} z#sO#?yx(3((Y8yCv4G7oGdn985Fi@)F<6f!!fwg3qQ(yTS?sV^V%)qhXaf7`FHRS2 z+J(YL^U_>@dW(8qU)rQ^RieX{9dOHMWtvu*nuCI?t>N(xJGW|iv~~!rLQRo@YcvV2 z3r$@S0CK5Op~G!6v{r2l_k36NJQ5-LU<|mIFi@yyqV(C3Y@3(ysDa$*o7bqX(QoJ( zF;w-HW$e@$02)OtSpv)*!92+~HFC`X`}9^RoGNJ;_`3GqUqgJZJZic+0C0&i+yupT zDB}uhmq|OC%De^Orc85&0m6e!_2H;tVlVXO_7k@%)0tvS=T9dW!>g%e-yN@l&*La6PvjkWM_F4uSfuiU=^r0g?1gF35g46`Y z3w5u~mmBd7><)_?JksNO;6sL)&SGL`kvQ3DJ1=9#^W=)yFeJ36{sY+trm75S%q)BV zN$fCvM^^Z;>MtNLMNrb=;`lf8k5cu2FsnW&T)64&<8E(1G@salVb;+}&~Z+6g-gBg zdI8?;M$yYBMzD0dAUMa~#T3{uN!3=It^y0;ehP)T-yFEmL(8HOj7aXttFm+ay(6|u&hCzvo4S~c=yFQ&Ghr)ejGBH!Ou{;cl zdaXrCma4$3kl$=iKJXbOI|iT0>N7M>qc(%|-o0UFVKt(R`|`r(H0KD0xk!4BnQCgr zTgJZU6M!AA%so692PPVW0JGgy;CZs#Yzwk_`m{onCc^eX&m0D(WZbayiz z=byVODi^>Zwdn5Dz;dT&a^&4OJ6~B$ms>=ayOVOl*VHv7q252_HD09GR2j#ZrmkY> ze0SmiC6V!B{11nrefSxvN~pHc(oO)UNG3&KM*pR#Y0&zaK&=UTZu44V! zq=R1YA2VatMki{7TF5e&0B<12p#>&>I-+-<;ij;zV`ZppKe&ZMCMhdy3{Z&z;quG0>^T>1+nFaQFb_d?H)p>9Z-C_oaOJbrsxEn=IW@lwK~+vq zJhF!ao{!AjPcoMOvjrNa7yQ`EL}aKP!w7(7D=I2%7iz;mM;%w8+w^O7RRO%*{>M)Z zQL+9-W6v_YqemXln(}N!I6aYi)f zGG$Nnp-=Sl<=;QPXVHe+o%bh&RaFi`MqFgV#;^C{D&S*_|Lh%Y=K1_DUjXndQGif3 zqIoll(cEp#SH#TB3?LBL1D+nXoCBn`0O1`(AUL0Kh*sZejeDqS&(FZ2mC_Z_f#LJs zl9Z?K+N*d#AG2^s44RJYIQE`IiKYG9B)vmg8z-sy5Za}s<70XdW7d3_VsNswI+=M# z&ujaAFTC!r;^_PL0ZbSZlwCjbDV}chG9D-x5Pqlj=IO2DeR`P2nG)nUc*iewF9vpfU;g--{_D_(NqMWJyMX|SN|?x1QD2uxP)J1hVJg8e zu*sQuU=4knHC%u@rmH07B@vXGLx(a)@KIL;(7@6WN{n;K;k5EDzUBii`qewIG0)DgfT&f$Lp!)h^>pVhCaQ2R>3- zLUa`a1BExQx}8Y9y}e)Rt)$`XDJHnNKSJl9(L`?tG@hOc)3U3b#!}}DYC?Six}xJuiqf37VtHS_tEf0z`@YFV2E}~luTO=Gp%O#qD_jX@!2;o*?j6G&gr^5V(1FC9 zG;l!d3OkTw7u)@%vECFN6hPj$;*3U{Cgx}yy*OrXbRE21kkw!Ib>a+YZcP0O{Vhk5 zqd;$DOo-}X^6Jg@1qXNkG&`=XWq2ThVJihk5?xcr8IwM>HY;SxK0)`Zc*KRMasx?( z9BKJ^M%8wm(i5s0OZb%{UoHtn1>9G+@CF^&A?Oe-+2@SJ2X z#uZq*{|bU1k})8V_QT`Dmd7||Tkj1}bVx}`Horhxz#)jUc5?@81#lA2$2ccXyWy~^ z0X9uQKp@UqMVRN{9QB%CiquiR-V!_S@yH?rv?svf0ZvQ};G=ee-sWOT9BUeQRf=T1 zoVG50{lpO8;KXp(op*V3_TI1g zT`?G9tz%Uh^mO^&Dhsr2{rmU!2Bam7wyiy$m^vH!cjW>3Y#q4hMgA3FVMh-DHJaI6 zrT&&1%@uTQ5|m1yDsmNw-QwH2qy{N44lq`kv^qAvA{0GFUrS5hrLyRcWOCcQNOtBy zfdhW^At9Sx*VFY7thnd6A*LFmry6fwb=0QP(D4#SjEmuk`6qjtH=1>6o@Z$JsrYONr)rt(c^$<&c+cfqVZ( zKIC6NY-%KWJw`XtC7r!dNzzm39NrcXOct5F87OU?ZVc4NZy7)c)?4i1Mq*$7HI1J+ zqqMG(R`?oe>M3Ms#@^ZWt^ckIidh(?MQ?!{WZ88?01_Ulf?Y52Er)`odH7)o%ZRI+ z&Gn}|r$qTw{1Z9u)FJ})u+W_F$8I{9z?rWJQHmW(Hpw=H7YP3;P^M091~X1jWevYZ zM`Bm3$>d(72&8I@K~0!sAcK6T$2#W?@S_a4oAXGNR=DY&%|s&i43whqO9n0PW_8>F zA12@iAwNH^J&%KP4kXEF8FJ<$C;^n=D)i#m=;7d$1BHXCp`oI_KADd@6e#%`Ic6px zGfK%)aKAM|zn39jj5XS;M3e^u1iB+QnBdxd`H?TQ4KFZ*BO)ZE7vL+vy^#y~^(F6b z?JHSgS#5!;m>u~YwG_l3Wys2^2pos13_#A+ZC9RO7zwB_n&q;= zzXXsfFl=VaH!2+b4sUisLPEgs;DuXZ$B}_vd6+2Y9S{K?uQlk9n?Bfyf)u2&EMBa< zNso`rkGr*g_g6K5RQD+@qg%Z|n+3ur11Bg)v1T=SD%!OsXGkU3rkz=N6;&DgZ9|{H z^UopOs@Fug)?(KD$#IybV7>)>c#?sn7`ExB&ty+~VJx|J(Ps{GOgn#5{%DnqM2({V zeMbfU_pFX{*{ntv9Vcb0s~2@U@TCU-oc6QaoXr^U#)u~)GQaCXT63s)#CI=@#l#iJS`FZ0@m3W4TfM54eC;7HU^ryL@vOv~5k6pP+FO#LlFr~T zXeBkOIM!{RG3k)=An|OTzmqLLmZ*Ax$JUdz=7?AoFs|Z%duW%W5Mx?H*tF`+m}cnj zrJR%vIu3xj!L;vsbay|R|3H<%x2f(g&S2ni0$b@fWLRx`DG8!06irR3K~cG5N^wu9 z+i2gDYwplE$)UBN*CS|97sG2<|24c60Cb1Zgsz;2k`E;dm0$87p0-4vLO{pF$-%*~ zBQQgR#=~)xQ4x4lS10a|X>{4@F!= z5018n(q#7L8|$u5d?B?#08GVmXrZn+pQQ$KPWXH?i!eri<^zf@#pu6aP*liOQBwRf*Ns#Rl$-egV z<7#@QddUh`^Fm0`1g6^6NZW1m$096jBAh#!&fk@3pti1>P+xYHZ2@i z^+yCwk%m2o@!t1mL$?NGB$T6I@Vw%?4y*Qgz z+(}*{20%rqdUZvP5?fs3M9%AXx<57R6{#!bkXu&!Hxb|I`}k;Yr={;94hg2ZiU~VBNzZ95XQBh&(P1 zB*QC=zv*_Q>bv^Iahiby2U&l-FXFj5cUZ5g3Pn(-v;SH`JQTLpA+WVgkuS8rRmEzZ z`C91wn8&HKcHgLTk}I|mQAvSpdx7{nqm0rSWKn>RVOD`Or7AzKK*=4~b#42?*iv9&=1+Kr4m2Av|y*C<(@97pQ|jUYeafJMPu%GM|rp?syaU{7)K< zfSfvsW@<&ux##aReo|pFm8Op0A_0of0>fMmjvI0RnbQc6?#)*H*y;$V4Pp(rV6eSk zAD#z;v=^Dm?R309S5d?*hyl873b^NeIi(mZp63H>?6SPu>7lq zC7;LCUF=|nx?K5JKOd1qKMBz3z&bygbAnFCKgh>pki$(RfI;KyGQ6`SElG1 z>whQChTGj=uYMGoNun$Y(Y4_9t=9Xx{hv#7W}tH~x1t@|-uY&RHWIiWNhztLP+m%qV!d$2dOy8l_sDmGW8 z>Z2^={aEG<6$Ek$7+u}^*C$5zm7Qm!^|KGaKW_@gJLQI5{txFqCoK_*;Owg2l`DQr z9%)19wje6kQ5wEXW8Ii-Yjn2^~T=n?Y7^m0^vv^av?$KU50%i12oJaT8Qpbq8cC)av?d(r~J3GGT}- zYdd-4Lf||PxfyRa=knIW(gdxbU(PNAx*}QEoY#`yC-Dgj-K>ZBJ{}t8B~sQ`Gj&sR zR1%>ddd+7+sg|}qiOQACtIUeho2WBo)9&}^u8X$eu;5|*paRFs9Ikzjjz zaTFaT7nZTXk9zgOiCCrwPxjsIKN|vhOu`lx+Z8mQ#j^oeKAX{=ygjdS{raVNXITpc zV_w{MS}?67zvr*wvYQeWa|Iw9Z>;A(rpfsqTl>7)VO?gB)ZW=Y;?lj%#y(BiZF?(o zJ1vJv$hn)&ceA0?v2?M&{8#=|Bs?E#H5+D?$wcp1U1SA~>nPyGdqy7rkDcQ!K!#jL2TE zP5FLqVs$;*m1#b3c0hQTAm|{5nUUVndpa(7R114-hqe#)m5MsIx9D6P6L>ct7wE4x zMu?5{0=bl_X!XH7%kmYxP|cE0Cv(}w6FE1Xm(Aq)Y0L+DaRz+NurD`s-%e~W1ec67 z1^HMcHBnub*e32CxRvz~YdB)}r^XJ>TDgMR343E>ggv+y$t5#51H!Gk!ZMIIBwdnV zofjj6CW7CcdgmBt1-eTqRc4j=1hF62a5Jc}MC7ImuQwAa9(UhCrIbTv)O=Yr>{{f| z6-_$}3}g)b68kqVL8i>-wE)T)rV%SMIn1%i-opX8K{n2a=?d{LLJ9|(4YQ|NNFEm} zOSvU&ygi#?c;y0x;d?wD>v6ds+bT!FjBzMe*k>N#^1p#-4ed}d%D;z)EjOFd+D-Ok zqBlKQ#oun@*f9q98Le*@kytmD@fre~Hghs)G3v|8qGxAkt(x$ECr8{I`Als1&6Q`m zn>`f?``NC{8UBOzC`Bzsy{cN7?~ka`9m zuBb_`BRFs67WG=RI;*Dum*V!+kiE(Z0pK!sU!ID$FJz+a2JEo*z9%8Zv9b~5? zBD9S&HU2X}b*;-wS)4dI5*DUkSt0AZ?90x2Ieeb4p)rB(bkNw`pBzf={bjqNKl%eD z1sRf4fI4gJ0FG->-aDwDsBZN4zkw%LOcfO5I7G;6pt9gKe!66oG8`Y z48r2=KP4|gUDi55I4n7|Z}lNVJAUd5+ORA4MVKM!+$G%^+haTq2b_tV6= z-i;VDTx{svgIB7w29KkI5RbV?( ze~ovV(Z0nkd)stv_+EdYNBVI!jxh4~@7|z;f4^}g`jpCTE7#Ya&&5_9PsZq+2_76YqVARLt*n z@Wt%rMz~E&jmX4oWthL_W)R12rlf?i{m&C;)_QNzDorDktLqX&agxh=LQZuld%)kz z36|!^jF6;&Q&`r?#_qSH9bHnCXEA9-Dssv{7q&S!UQZ=&#mJ{H!`nwKkb}TDIfp|5c_JmFKYVCnuER)prK{HV$Vmet6`{?|=Q%1m_p|AL_nN>ae;6?->O}b0FUMtt##ubEU~AQ=+PR zbh+CMD|#7f{|Q6&Azk32J)E>FZs8FaSB|UtJh(gh+?Mgt`;G;bAa701ZHIv`h{0%l zM92QNiT8YuqB9F%PTQ_APKS8gqdoMl{ht2z85$2n;i(X;)0i*u{C{=AuV1~p<5^yt zk#wHGy?t*n!R=LyN9IPh%*y6#^T7U%jk~5VHG?u+r z$FBOh+4VrY>RjAZ)#cg?4}9CO-d(;hh{d0d6~1lIO?D3%U=?we`_gfoo??1-4ve}s z+f!$^-Q2k62sqSecCE+l6*JQiP4Ye5i!<9Eu{Ep7U$mkiR0}-tS$y?a&cs%G7s8Uk z|Fb}r>bw7%Cj??wm_s=7J>$0fEoF>78la7$wlyMsSTd;T%pgP@VUk)}iFoKn08m;K z$Uadk@;>2iolmv@6?|!jgFEUqQRzN9os&0PEdxkcM0P(OxI}V-#m<%{a<3=lCF}ue zk~`RaB^1lpS<}7gS{=Xn`a|{mCYSUK_|6`3*p7tNRnHg9&!2Unn_!}-F zg5#o^NPT&zV)oqJ9Yt-=s$N*%0xC8hs<_e#LGmp^hVlzAFKs&1jBIU zCCam5p}PD)gDD+NiXkm{#=jGz`W42*5F#3Y66Zm?%nV;HygU(aAUxPqnI3Ff&$v(5 zGx(PUeGO9NDiIWhvt#Rbha&O}7b`Bi*^kaQ`|gs8c4sKw8`oS+LgeU2h+#!a4yD(@ zxrbT=EvqZMnS`DzG*3L~`qEN~%qsleAgK`Y7|$30->BA8hV=Q~Z&G?GNpRaAH%Iaq zKMR#$GPsu1(-Dr;PJW-*>Yvo@t+EzB0_h_wgFRg~C))T=36!u`xjpzuv^Q-=)$oDx z;%J|ZiX+;RP{e2bV*#}k7g>}zhNkc4np^F`fy-<^^NL6hC=@Per~TWo(uHui6~-mj~~Te zp^E7U^qzdpI$&6L6EyipOBK5C_>c>&=p~X@a7BZ=n!jVHLAIv(!n`kW;ZcClF&}Jz zD;#c;-Ok+-Cc!ayto>kQ#%Ome-c&X1mh%!r22y&@!dQKS5?}M@5rJ+DMAS^ym=3+p zHJwot@f?uryz6}XDI_2;-TuFKGQV0p0+-S041Fg}L;@~?Lr;Qwn$Ln6LzgzdP}6`_~^;g^S!A1C|y?j`)WI4Uy-D zJ?*ZVOs%o}g5k+E3h%^#$3yL6`J6HJx#cnLIlVqW8!G?YO-~(~Ur-R#7lHMXbZg*q z%#BGV@DW4`_83+3RzsmDPE@?HLCweSD0Fy&pnCibyzepQH!@IDguPIEPO6$M&aJgn_WSvnNl7@F+aaoJdrjkpw< zAS~iP?YY<>V5PG=iz5nNvlE)&H_K@E>6xEK`*DCw7sv9sdA)Im4)f`Q#;#&AgiY>d zZmAa5A+y@LwY>ZKx~=OFmgqr~N0uO1Bfw)W=!@a#qFTBJye#8-jos8tiW%y>GTiee z%@{*MAsVyDcdInihgR&a9F4B>-n7|jU8m{UIw6o~|59E^h0EZOm&t;f0LbqS*UB z-P^%g3>hXo&ax88Awr0EpZ%j1fAg%TsQ>Zlw4N?)ENGm~-&a->wjRIM&DI#SgUvs;6l53fRMAY_qZC~Ev~yPZ zjq@MCu)R!e%XORLUZSR6GTFh%A{RtQuoPSxDjQw)qWE4@GdeD+8XoCkVkFQceWzD4 zNbgY;@h9ii=QI0=I(I?4cmCL>fqCy$f)+qOI7z-R+=0~<%NyoVH)^$2NTDaA;BMVh z6207tvp2&PP-$Qb=QyB%F3z$Bt3y?IY7iMw0W>DHQE&d4%hCkIk1ZsThU^iMv(jqA#KY@ zKi7WA5TvU|dw#FTHg4r`rtv-oJaiZgWI4Z!5BX1LHfMpa}06+PD>V+-d(Ezod>dc^sY#MD>M^8|WEa2b7~2hV8Hh zi%5r9BM^Pwo{#uHZ8Lqxyk^!jZ)@e-YGi5gyhUs%KcBD1_Wi4DSM_@<6n8Txx`O+; zTZ$!+LI^GAY-H~Lk#tRAmA+p)+dCV-Y}=mfnrv&bU6Uuko`v z$Wx@o^+A59V#MtUThBAiO+s*jguo(jWaMIRtPwn;h)do;sZf9@vdzmQvTpP~{vd1C zz*XcaC@CH(D@%s*7bo>v4A_F5(-2akHZcjd^5v_HCK3_-R z9&+fz=#r*@OoP#wzuZa}rGQ2tKURkjc|DyU6f9qU zno9%6kTI6X$Eh(fvG*YpnWmi?Q^gx+PE%VZWvF21eJzL*aE`XDTl%=)Gc z;0d)sLi|__aTwTrF1N2o6lj1)a)Cd+s7%5*gg4K8&k!J>8ri;g0G!t-;O3rNUEc+1 zls`X2H+TwOu}W(-)7FiT69ov}4-$ZM|E}y5Y$JgCXLwRLINbPhFyZBA>Y9<>Ik{>Y zc81wc-mqg(fM0S9H#RIklAI2~{ed~yLYHv&&TIAh^DXbqN#S;fHX`$eqy2(*ppKQ- zNI97d01A!<((XS7!-AcqhLo@iD78`)w_co)c}Tozt{qn7`Jj{n;hH(k#OCH-L){4U zP5W=77R;;}+O{TCKw5J7O~BX?qAx0tXXL1CRmq4Wn7-Rf*aEDm3;-rPZ^2l1;>X+antmTu|?0-*UaOt6z`I0jC}1T5DE4PE|E52bwQJL$+2WC>m- z0}g`Z!1c5Kc3F?`e+W69IKGb>t@}JPHn*AcPCl{X2gbN(+ezlR?P#A{Zn*|RpyX+U zkprM_u6>Wu4wvbJ#+oCuVC1Zl6ttdpjC2WKm)YYbbx5WgPS^YT2WRiMM7b1ai-1~V zz*vhQvfRV=Qy^ia0*D322u&z}D_B!A6YjfcSMjGRCQ^?%CgdFK!nZK&9xkZ7PzC+ze#f*w(ip$nL9&D!4Ja)HzCU;o`ycg&Qe|n{I*awG)oOB-T zT6%vTLYg2K@jGXt&dFu_RHWMr)+S|1{#5Zw1}`E{^WGb;xM`gh=*z`Xxodq|OSyZA zt=TU-Lb{zX?pX24h4dqisLn_&?q!2)Cj=TND5|Io0B1TSbjXekU|40}iF15Hf~c!2 z2Y^z(u(PxCsid_v6?njb0UlBc3Y4^G5O8xPD8P=J4VN4r>FHC96gB_b3KT+j$;*#7 zOa9wY5%`6KHeLYHrBFuSn@D_qPjr&O-!#u<$690-5rM^H{({5CC3NGX9triDtn?}3 z02Zn-sZOpIUPH-%K!HJ*S`Z|nyPKM&7yyCdiz}Dya<%?%-+}nT$Tuz|_I_IESDJQI z-6^}+6bKNZc6d8|Btb9ORd850yyEQ~d(OMd7jYd9vL}Rd1HKgb=>y6d^|{%ti=t8Z zuXR!vT&S}}CfSvrM8Eq#?1kq444m;p>vKW*ZTx3`<%MJ`9+!poGHSa6qLrnu!{7%+ zHV5gZ3v-4vBBta+30vL-_lr66B%T30Y4Y~NC1g9U>h`5<{#Jo}2fMQt+6v7URE>BE zN|q)d4I>=h7qs~&ozAEzL=wqDpMD=|MH5cJq4XzYXK zcw5entAnd4wW54% zyUUwq{ZlDz`}q@VXI8K;n&?k>bfYuQ{8JRnb4Tv!AMekG*xq}fwZRXnbm9jjke}My z?h6irj_{EQX6qCnB0Gcdg^TvdHThIQIli~v)jE1pEkw&>&7$ zqV@CR*UK+g$P9bwNeLF02rLzRVJjHi=JPREs!9vn2S>4&yNry4g>yOm&6OEZ&d~a= z6CRZU_Ww>++L(W=1j`CM!~w^}VYKFp$|L=0qW!iM+Oq14|4^ca+SKn=>ktQyo8oLN zEI@=#1hQ>7@XE_~9k?8LvbgY(fXCZ`3%_;44*1%x1utwsSV97dFg9#`U8laGVRU4K zn358@WG;OCKxB>$U0isMO;v5kE(Pm9;8%kJrlvOQLZG_@3t^I3b6%^kv5QZW>hi{78wO6z*?m5tZp!j6R~| zKiooIrS2MR^nRUWoT(ir-hMYRg*VM8ZN9K?lfAk1FGY$&7XOSk+*4FJD36ZQqo{3# zHpth1>W?hgxxN1a>%rF9D1ov|kDp?84ieTRKL5jqGo?<0qTL;EY?fZuW(4;xk%L2+ zqKQ)v1vu?&V(t6FgW3}$F(555{8@M`Wnc$yCQKO37&@r6xjm+YIpy8ip|36AIl0NB zVWQsxhc7P9+|dBv&;>E2ZU;d}i9jYt7cDHZI??F86uD4lhHL+dF@rFCR5J{K}DnxtHF05m`WdJ}=`x#K_Dg$*6`LkmDUrHqIPO;>i; zz%L3Se?513Pkm-xKg5nQglNH=faMin&=mK%eIbugjB|WSX}VHdNLN?5LhHC?cq4DU z((&CXyeyBhZWkl>7M}dd+*#U6dV^tkxvrWP(Ic7AgGt#SPJpw{2`vC3qbJ)QM;M6o ze;M{HhOlGlM*{~q4Ujg9%XGT(1Bd3|o;USdZd+22bC?`lcx}B;|9YS!57bZXH9GbM z#*+y8cJ9FceO?<6dtM>qE#uovQogQ*j$NC=5^y2RdA_c9tGxYkaO7d1(iVujOIFxl z({D?iT#LQCwU+cac%X?F_ z42fq5G`rkcSI^N+neUUr58w;)GfA34ETk}xn<1=li2}aY4;<8PGj8V{41M3hCGe5IgPTjS1Gze zNXZh0tyLV9_FA~+&b#%0b*0aP=7uSk^!Gbaj2p0FfZ4dPz$h$08u0X6Y|iAug0K#R zEEXH?<8=wQ{bny%u0O%rc%UsyV+_H6?@WEKs1L6H%0#CJOJM6@fvn@gy8iOgZRO*K4!N3Ps_l2+>#?>;aD6|( zQmep`j2$_46Y`hG{UNP;?E)8nJb=51@`+nh6Cubk14Qa>*$d!J?8ix|v;ako^gO3f zwc8&8c)oh$bSkZ8J$X=8+J5&KTCew9rCz_g39?J=Y~SPB@^GNFzp(yMcDt2x&jy{- zZjGb=dH%9|p`JvHgB13+Jn5kFr`D98pC$W3ldg?VN472R*-Cv^wsBKdqgyZxL;)r08{C#!eF1_&bs~xDG;M{Z%db{k1W%PR)?}808ap$`U=L#!UPCpo|rZ(ZS z-EXy(opfXE;mT?oI*}c9Qi&(I5==Tio#C|=%~ERqyugkV>Y3IB9S$_=2T$5em^}~K z>ZGY?8I{-RE3NECIK*Ybyx}T56n4qTEF%)4GW)evyr&~rvK{3Hnkh(~k)y+#rNHNs z8snS9Fvn*4V0|I5VwQ6m2wyxN;Z-d2IqAtWUC&<+--|w4(Ik(j!>;ctkvWFM0=e=x zYYfzW#l+o1KS$SCECn`z@RcaAuN0k&&+Rlkb}w%maR3}|+d^iHF;z5Rt;Dq6{WUz{ zKPw?|>whyqOH?ov!T`@s_y#W419OIdS86_lw5w zG~k$z=RygCjKdD59hecgU26{>y4PY{JL+|O8Y zVd2}eA>kjxF5aHxM|{7&TGQ%j2PpsFkx*Y&Cs?> z4YGtw*9OP8zpgX)WA#F2Yw*%%b$QTB|M?CP#B9{Q!pmcTl;6jc3@kw31dhE>JUfHM zN-b(4POnEB4!iZ`j6te#*V}d7$kB)8QP;J?gH4#=U1y9yj$>!4#*W+#NP!NKUL>WY z%@toYf5|X5f?xfCl~ns-!Wz94#4ESjpzA!r>`cK1Z)EIjgvSx^7UuvK*e%!W#ss{m z7~=PxhxtCi5i6TWg@~ePPO}uL@eZs<3LightIkf(!mP8yOb_M-H%2NGmBGG&8vNWc ze(Wt+@;_ClS;FofJ*s>9>|F|by-WvNo>nCI7U#{v=jz)U7-{&eCLB5~#}gB4Pn4X9 zc0b|#d>d-2+-m1!%@tz+`z1N=)>qXDJXq9v)5X2f+}BNw#8WMg{rhNCQ!-UQwtC=u zlS~S5x9{@A5XB-;apMk!!YxaEF$Puui5aPN>Z;~Az;svfQ{ci<4);e|;PpKKJgPC@ z;)VKi3T~O*=7A$hNA!{?7Xop9K$oh9-O&2tJflef&{_rIKLoN_R(00R@I0!q<0cqi z00|f)Va1Cf^hc~25$mNw{YAxv(RNr{%S8~i1|c*wcpe<=BV+#CAOb=Nxq$+L6~S64;n7reOD*Q9+4V$<6hVmRGT zjuGY#5CI57Fd@ze1OMUAqJojmW|#MbqZDK?9e>ce`Jt+bZzfm%Db5HlKmoUiwzO$Z@vVhM98bBVqgNoP+Kp%eg;87=;VQmM2C%$i9ra($8D zN=bpUpvJ}JON&c~*O2m{CI6b{I;nfZ=eW`sp9GngdmG7*VFa|0ZnA22+l}uTFJsyb{ zVd>XlM&ZUxc~tmzp&q6i0lu8{zO8p)t-f)YZ#9-F;Q?hKzmk1_eJ-a}>2YXXz5&)u z{RNjT2P}hT(L66|(wIQx0@j>%Bu)Pq4(4`aq_2`tf{#V!RWex;=R>L4AaWQb7{S)H z&p=S2qT6FD{UHr7Ou;n!nGhN`$2rG%&*6X`6#u*_-VUw`NsiEriC1^)TVwmG6lf@B z7Vne_)?aOCJ*PN8Ly9Z0HXCzMg*k5=pi*%uh>m_R(JrDH#odofHJt7cDxUx~bRq$B zeCm&At*|1KTHbH%^lzn2(^y1E@e&~WAR;Z4s|5=hsWR9q2QrbK9Xn8s%JRyxvniB# z7&8M~^;SQZ<^2)kfxk7)->shDLZQXkPpixSrF}rpNmI9pJiB%+hxPQJTbm@ zy6jsTayW%jXGq7QBafG&&zE%dafEv~$-s95ppy`DO^!UL!&0FQq z=Nif^$|L5=c51EN`CR*TmHw?G)&CkmZ> z!F<|Y^Z`FvF>ZL{o+ZfyQYx0S$=%ON)Sffm0)@oYOgipwM}zEh`H6$RbX~&BFUm>5 zhX}Pf8+bvP^r*+;^W9_ZWxQ*8DFIWzB=%^;};bp7LjM(dpSxdV(Yl|?GnU-tgb62k9(4E|^M0712;yKHqe7=Pggs-V#|q|EMCY2$cLNRDz?8(fw1 z zD9fJ}_ME5dvIx#sHZe6w)FWA#s&x~2jsd-WP~6bEbJ>NrHBv*5nELudIv@*GEX(+@ zu(FWcoL{Sbg}NY{wSA(z>3?Oxa>Jy_wcK?c2T$E&BfgqXK?5@U$tGDW7Uu1i!kD{F zvb7LcBMuy~e~;Ap%YFJLhm6dI&i*i($RdsnNqHnc{_hyDadGl`PZ- zrJkD2(?B#_Bu&4zR*k7g?hiAR0wU&KtfLo24jXeud_Ka@pKmmfv#Fy%v}4`9FOjv? zydahuf)}af_O`iwlNs8c_y?EO490Ji7~JQ;dJOjU4FQ}5M5A_TRZdt*7iUqF3#425 z!d*Yoe{=Zj&KEY_w=ZfF+00{B3z#MNatVumlm&Bt=$?t9-r0D!x_;5Le7JB%cMIeZ zlRz+b-J>b+KcHU$O_%`L8mg*;FGo4kK;E(!0b28-XW1DXD>r9SgchG#8XRLv*5{gUKKQ4uoJEI8Xeu2W@X5-}5!i^Bvwz->*obbRWfZ{#E;f z`#(8IGPLnlps6C)``KofZLNXv6LoXG=kOAiPl&0YY8b5sp_v8t55tkdu!a3yjCAIo z!|?o0{5TBUn@q$dv%GJtxUJ{Pez{C4F+}$kRL)LxaDEmcM2X~cTatvlJEi!@7B&fe zR-w?p8fMa+6z~2qLF?7y=emX{y`ze`MmR;#s0rHA-z@s}BLub({DRvP1XmMoC7{Yu zPHoi)>)rg=32~WEM~X@lr)sLQsJRf|aE2+GmN$pEM z%Om5&uvFd$ssC>%$p-WoQyLp;w9F-9&1DJ)O#)C%%06Hj;mX2=KfrJb!^9mQuu3|k;Wr;_`4C!g_u$xSL%@}$LJ4aO@Ls||?AuJ;~tirFO zPd0++Ny(mj?4Y^M&{OuRfr7IN?Xy^>7dx((nmn%O>T)D#9g4yJ?XG2+TR2kQ%1ksN z1ke;92r8SG^`fuR6x=_(XJ#P9({9b#Zh%5IN}=YnCujC3DESO@F}ex=FKsMNBm)@t zYWU9rm*uyheP6N&cRCinvf`WUj4!D>cPbRJYo4hJb2RS{eu&zDRKOh^qSJrJza zmc~kPNcKwl942v!!r_Sc^^BN`_%$51LI9&mO_cF>9wBmm=Z62qO3Q4ZA-Z4dG__G> zL0QRSUcb?V0hI%l_Rc{#-0)nYp5eL)TT=1ebJ&r?j?-}JgDY(sLEIdnCbAe6oJdIR zS}5nR^uxUk(&Tu7*-y*>SxU$U-$Pqlv%l3G5ixIdlF=&v`iRjXRYFR~Lpj%^H}+*? zCPojAEAdw&_(Yolm?J&Xw(b3UDi}!nFx8dJ)KYf7W`>R;e_bHlJ|lj8-V72N)pfTW zfU^^@HA7R&kRLlmgr8CoXOO}enDzWKY+;`8Q8=)MiweI3I1AKz6! zJmWWjdKhoyC;Dm{ao-1 z3-uWC=HBA_Q?CAeCc!nI$b&*P78t8DbA&9|gOI&R4(|77+Uuj%hTkn}ZtitZCshxI z*9z@2;+Vp3WwF;bGIF{V+WeuTZd1)#J|lBxtYA z+Tf24^xB;f>ejha8UvSfnmb7>N!272(-}YJ-0#VpsH^Xo-K<&Xo*GqVPT} zk|)c9LBz88ayT|K6|UnJ<8+SAu9PKh#qfkt6Cua3T{*FmuOzBc7OTqE2P4qcJ{X)m zs~{f4;uPjK%>40g?2!jJZFOGN37)!)S_8>U!FpZb^Jd6`#b|b zVk)5X5__Bdhr@Hx*OTwRW@`Qz(}@ zsRt7ndN4rr+526V2Eze+*}#L<3N!)XcE2VLB^lOiCVFyQ$IGKT8w4FzWQ^i(a1)8c zT4oB0%qbzoWGVHo!fEhh&m%=vN5Gb2fwbYL2>RmiyTwxRkGE-cQu8L(NJqqI`=?wT zw(6?sCl%2WEonnjnMqT%9S;+CX?5*X%RREbTNmfAiXO5MN%^a`E@7-(098VF$yAwg zC4e#*9r~OEKj_P&Zu+%)2!6VKTg5uGM>Hd*w`Vh18p^*M)7_g_mJyfV_BW0=%gEJM z5i09;nr{8w_Qz2lteAV)&{)~^`X!g&O)c!3XsuCUSOAG47!QQd$?;mX@5ch&|$=dF~CGs6lIxg;EHL$y*G-DmQ_Uv@svt{wJlt5 zT-e$X_u|El=T67@u;X{Djc9dc7$1jKiJ1~Fd*p+L#`bS)6IU^*Cy7xj5QRdMh0h;=eSN5#~euppxS=kI~2S<~;gF4>+15f)EI_X{ntcU`fS z`vV$9kMw@K4>Z83t?S}t(;%^@$2--WQ_bmSm&HzxKZIRoj7pZ>Iu%GiPi*kj_^6$K zkqj)RUbe+OFx8^d((Je8oZJgcI@mu%@X@EIlOJqyf@}3QBaFSWi@`Gn#)0g&^nB2N zlbjV7o+A&xV?wU{zP!8zaQN6g$vTx5Mr|V_pnR%2YYnVY47>tZ_G!AYuf1C5?d*q_ z*0G4okPz?c+v=Oz1lP)U81c{!GreY2Q`HdMGHC%YAC9~RFX*K`nwpfuzE<4IzS=ZzQy+A-vzhxoQ@W4`!1E~JT<4@cS=yRuf@DX%nyxg#? zCaSQEw*7b+X1N3neIE?RQt9rm&K>ePTYG{%=&cV>;D7vPX>GkHqyLIF-F+MHOvq*a zuXamY*-YV&UxA$Dp81RsludP@N727oLnfY}YqKJJ!<#TuaSw?)Z@p2FJjoKdsjQ~~ zh@URyX2dhwl-hmAfHy~1P5xCHMl*&2&SAI;essd& zHkzo~_$x1Y(^~1rt6GD{1qwVC-8Rr!Sx8N-`zG4n;cD8KhL?9LhvS~$CUgY0!u#Bq zh>VOZC_kU{TcMckbE$=66RQr^YZ;`SBHcGyK!1Y;*zo5cR-pvxBw3-pel?^HUhd)X zZN=eG?QeqL8`g|rlTqsNrSjisXG6qmazsZ%FED+wU@msV+hz+h^WfD9CQShM?XY3I zj;)s+T?qw=DM3UxtE=T=-qWMLx{WM}&&J#;X?)V;9mWM*6ow8g2GNTdg`;Iu=^6^W zjW2n4?$s4eYYTLs(2H-=L5LYad6loe0GC#6r`aXnkH_^;P@@MRq{ee()Zv?<7JnJj z^GpL**l~e=;0}BjpL0OUIUubR69(&HDN8+Sa#^U8JPG7w7MTKvEp#A+7)mDHPlCn_ z#Ad2BS(Czx($uf*9e-&3Oz!ha`ESaJ6KIV3ZCs~FjV}wK1B_7Y8n;*X=mJy#ah@YdhJ_&Pci*lGns zsd>ph>u?Cy7+O#lcA^KQ*N!7Ax!4F(2y{w>Pv+}E_-Lu_;LV(2*l3IK@2EzCqeF%q zaGuQXfLxMP-ikkn8P;C*caQ}(t4kx95t*p=EtSNGkVP7fJ%T`p!}}ELY!)#APhC#p zVhPS+atzM*eFiC=7h2yTO=RXDj?u*L#uOmd>*hev`YcS-85j)G2DAN!H| zb+uZ8hsA{dm{d!>MDz|t@dLQd^D7JgjItuUyn$tTdi*z)$gVfq%RW(kS)IX8BkZu@*a zdl_Q%6$Wx`LFBrrzSdU;{q#I{lO0-+Qs%$uv}_)QEp|TXB4Ge;q>x&ucABAB+5Mgn zmiNr|9`dM~qM8a}$I?{riW(w6MJUb>&T8TWh?MCd8M7hihoCwK()C6$xT2SSpS36) zW!ai~9Cg{yGfe4hKtGQv z_>x|o!ANC{Oeo6+lH( zV4biUn=OYKY@h^e5bCf6_C9U0<1V*>MCj$lCZvWpQo;qfY_Ez?-kS8Rd+uTs=huQ# zIFpiE9UeD3X1kJTp$K?u+lHLjk9+phpJ3ki?c7`)wCZy|8o2EBm=(IT*iACJOYM}` z&W{4HkgjJ|2NL%^QuUH2PeTBjEM5LUI!Gc$;Y}8=#`WLJ(ALY)=4z(cD#3oDo=yr& zQ$ON_2v!Gf8?gtAejm9>P}fV_{ro#hMB8ED{T~RMCg0s|hUO;F8C&hJrDzXKDcJP7 zG6e#x6Ir}1Pme1N<_$oPKti8;CD}PKPRQ7Eo87&mpnZz7;Efm5uXR< zy?bjWO)Zqi=pyRAOP48ki%Sf_Nh*K4WrP&2TU_<~tyE$_8y%;I5~T1d$9$pEbmAr_ zEIrD6etMa$;%&KMF-)wBF*=`Rtj6@QTwIHw`h0Y>@M-mfr zz%;4`B7qEIe%=KYZdmG$tM$4QuHN^mu%MwP+E+o1mp+RG4(j(slWR!Z)kzoMlRBb& z$KT0{lG^}UGm2x##KRJ$^qjwW?Nf>0^T=-Y8%MpNJ(+%wF*R_;G@4W0^m~!b-qI1} z;_2+p%tj3`juwbvf7R@$LJHF*2ePK+Lle%ODcebQ51-{omRnoGSIvl2C^K7W)YbpU ztG9#O$A_qK<=@@57XUBI-A2cYOmBfk8?di8GkVXSkmuO~$rqqjQi0I>TKM0bDT+zU z+RL}wE-)Bpi5AMelzar>mEPthZu##b2L@8=Z0g2T0#dRb2nr$SGC2_2s(o%g`k^cS zVA-RsVZ4+>K$z3L{&bSGTPiNAZ4~)A%-;adK^Rc2_>~Y`+5h<>N6qKHXOzkYmeDpB zl0TC6u!Q_Tz52B0AoDwjUN|{1Mpq-AY?w!x62ub?OHP;Ar2h7#i>{bS zV^tiQUX^#atjNla9vgA0)K{G=25E;*!^d%GvO21)rUT{fjPqVHv~LkADdr`^aOxq%jLz=grBTb0h&L+*!~*SKY{*4|W1aSda~-mxaBK=LbNC<lq+>kShP~x*`m?cFsoDXOBeIV~zygOmP`I`Q23t z+cHYMdyRmIW6|b&)(~QRb_*Nif6LjPi&~trjU;-hcMUod8JRK{LPJ)C{yTW~3n&Of z*R53~GLb5=qAD+|^%GU%^~0t)7e+qbwqs-+3`?_xvlr=*35kbs#a~{6h&tlV7y? zHixdw^13@oneVb~qqa)|uJqwto{Pd3y5gtF+aq~HQAV$(iB&+OAm3uTLkeSl!;a=r zsyxX2LJ3SOMqxCeP_Dh|e`w)@f>S61G9U<#nj|J77C>6y}@Y%H~q zC|-C625Fhf>{wuXM%vn$XJo|G%raR&52nr_Pm|jA3 z{RiY1npWYok%gfU}B*q;kX5UGF;Py$nU!49(nR@ zKgxp>USWT<7&AjuV((Xym%|gTF7^f4H{~!rU-g}{{3d`wUD>6)FHf1F)$6x^Hu;sy z@#DCNA%6`#RRG*M;CE`OF4XLXFj#E!-iImKXHPR)1ws(RKKBBOSPLY|Ygq@#F*_<) zY$NK*v1CmoX<)H;SGUCPZoj85W>6IaSDfHQ4`%uPnt2q(4Z?$f79MxQ9L8$VfBi;m z*qj6)j8(j24U7a5L^iYY$lOOn`fAK_)SaAv48)G!{5ItOv$|e*q90n=kmv5AgYPK* zs|AV_Y6ut80`>ec_cqh`Ok0G)vhqI(W6>Js9dPW-_AZEse#5eJZl2#&-`x&AUl&sQ&x_kr7s-vPvC_QhMTw=%16i(Pf)n9zF}zPdMpQrnz~jAW`ECCG7rcH zZ5cCoGkyZ-D#6j1>v`SZ+tF*_a?Th8Ivt$ttpMFLstXCKhEc@DDI%hy{E=H^AK})` zZJF2!+o+Pk>*?Glg3P%QP4*)#ld*}``-A2w0EVwi<_PZGpT)w>R|Ddk z3FVLW(3N82##5M{fZs*FdB@!-uXQkwCzM>0a3~}IRE$!b(?1X|vNgi)2|3q1D?>%g z7`3$Zwt_06w2cL=YGTV`(sPP)^P6e^?Qk;jB1RQsdnyd~OYb7$y<59sq3SwJcFJZh zz9$S(G21cZ*xOb_R^0O1(8z~L{AXp5N=o8CCGYm@VJxC`O$SMPY|M)oe{VBv>n~o^ z%|Bj9h`7RGv*%`po++&wr$?stCK<31V8sdm5Q zneLmm$5Vh9F((XvcIEJHwJg_zHF8yXJDXB#TXpd@7BDlcb=hwTd=Kp3hLk|#R!1)U zZ+92-y}!|_YHFa03xvDFXXP&k9cJ086*_JD4os3H9Dy!&rK~^L=Izl(i-)Ga-ulC< zRz*gB9F@V$2tmcQ(1+dfxtqW@zPzb11>4kpZE5Tu_l{8`lpUNnGgm44`bxK>pSF|Y zTOr1b0?932zl#@zPNDBLc`?mUD3AZ;@*$j~V@nm|F{C1Wt)qPrFw0r;b8b78hmXjE(1JRo{9l_>Uuf z){m3a0BwV{6O|m51GZ}>B)vF4i7OuJft2Pq0Rrl~1~jRKQO0S%z<7vHJb+w9)UoXL z*HRW226Mn{CBS!1(!{tY*jQFb)&N2->MwSkXc>Kn0tTvX?PG2%e(YcIxw+wa(^aE) z7T`H}w6pFYEc(I$G`wtJG34jb_a=i++N`e)_N~gdgQ5On)mgvW9MY*J?k+!YT%np& zkm314st0UyDqI!=|2S5_l>t)gvM}j^HaTezQR2H(kYbtMLx&-`hBPj8n_l9*zy;nM z4HiEI^xdaPA61*`Jp5SKkXve7%CnNIQ3$$W+JS@+3Jy8oNXuNt6%>h?^y^G~E|rs; z(^Pp6$Y%eKwdJ>h?;{dJ_p{Mu$Cbe6`}^GY<_A+@x}=@jjc%`II*W0>uVxQHvDxfQeMd5aa7( z4jhE!qp=k$wYY#)$T`#AmlQ;Y$|`#j#y^`Ee%`w3`Ze0=?bn&A8nhDlvMl335_aOOm0}9=@dXb(E64x*2{GXJQ}<&nWKo=dBqYoKd&>2r8kOaYGMg3R59;KAT>$^47Uu_d;e z7EM$mtT6|MBKW3$khV)FJh5rXA;lec6Pxw+I>~W7QZt~p0HvQ|kgqpXafrU8+V5Ri z5E2>hJ-g~&v@cf06csP1fC7?GJ;t?<;rt~-VypT*n%+QVEDuZLeOz1SY8*~UC0BLt z3I$ym5IHsXrw|nn;DZVVgrf1eH;3-)Z747()%p13@e*WMJgogx#>8AzIXz4^P&tS! z%zzkFzqA>p%-!7cKp5jLP)K}tbc9@cCWWW8fz8HUO#=t)CgQWQJJEJ)%jnYddgD*( z9|X`?e-9$0uZjle^JIO(5SB#e<0GHg@p9u(J_?uHBiCP-guJN!w&?SW#n&U;@{s}RCJ+Z))F@U^lUm@>-yi#y zz~Brx3%d+Fy8>AMUCr|Mxgoo1@BU5i{DAdW%>Wa%{ql|E^8~N6bVum?z z#F$_Q(s8ysj2ftPLc9$>a6xM#^P*`m1+lD{#>8Wo8kmCAbW;>bqs(_Rq2$#m6QlXx zz-A5Ye*=&hFAh|C6;K&a_Ub?2B}q)y9)=p^-}`AxdR2JQV(a4R%G&*C99DLcolN>q z7QpMZ2heZ3BZ+DnYPv1`)5mv4P!evss&tQ>lF6f)d}1;pr+_vG^Y_} zH!M&OL3GgsKDA6Pmvq!BIFW!s)s@3Yh$5iM|3f4ff|%U2`gGrOH;*#Qu_FhelL&ES zooRaQgkyPyobERG-p^iq^yK#@#>+DBnj8Jw?g|=jF6lB;RJ2)^Y;Z1Nwuqf}3$AR>|+<Og>V5g7?mHaH?wLC@_EG;`&Mi?{GNItw|^c(thb94D7!&C5bL- z*Vbao9ikUGZqYZSX`^qQnqfoPciupKd%!XFyt4p>EJUBzVTp-SZ+s*MPSGhumHe*C zf!uAVt$Abnmt7QC3$Qfafq^I{Vy3w{1Oef`ee14$Y6}!@mz*#2c0qV&#FrT-wL{SV zLU6)eZFjKWt*SEpD74zkeaSYWR^~c{qkXk~yHZi01 zMhg4pNi6Dh1h66+_UxUO3rF_LX3~zQBdA&0?l0U%b82+x#lH?yMn8yX5^e!&9tkFk zl-zmFQTwG+G?mX^m4kWI=!M98Ufw*jkaZsUnN1;2f^0nQXH`RniTpA%?7MM* zdN~yp0IS(V@6PBhknB8>nL7C`f0_n>aoASvxd+8Yglm>CjUbY6+cpuPu-zMbj&*glwZG9g40b)+Y5EG!A7aKgSIF=^4xk<)h zLHmOJdsT@mg-4(`RLtZqpjx3aMZ8C@bQsIgwpg^+vO7bXN8x*Pq2b329%QwuCU2r- zv9?!3>WlpRf@C4)T}B`V?nxb13R73_Nm~u;Y~a6!&5mL2>CcTr8|?rh5#ZStu5YRd zDM)~N(~K7o+)h+i&S&aL+@B)%&W^S9^beKJ$-Dx2%-lrX4v_0Ddd*iEX1h+~ze3gf zrXPE;7=e}mE(9#IwPwxd5ZnY&5=&BA&FAje|KSu%;<5dOt9 zqRPAaOysc`4UuSe3Qj9t+Rr`SZ$|HV*u&ajg>4r=3~2}&iWX>T-8(7CIb7TNS1V#cOCnx89VXbcrRJ(gWROp*t ztTq9?o_+@VHycFN2)YGxi=W6&@^Wi{fB^aCDS|<9DQ3ePJ*#CjzYaT~;|A9@sz-BD zLD$NQSbB7WXb=0Ujt~T4730Zi>v}vO9~YmxHfJ%l7C1v1$>^p6X^%#?dh{8=|89D~ z1M~#xh~5J3v9`Q*BQ8L{W%)n}=43Nr)QF#1#Jbey^+=3wypkiQa!OTUu zR%F6#mzH>BFvlEnOx?KEfSuWofVXnVyc%xEe2Fbd3*LHB>`}>8(#T01gF}Jb?fyp* zEu&O*f@++CGrUV#TnS2?J6kyD0{C@(Jp?#G5io?a87 zPdmPe5c*!ySHI0@yc`Nzd-yz!d`vdX5r`F_0&lh}$4T}jhf(qr2Vh1uh~nJ7vAPEb z_sM95d0px#nZm^dhHhgm7XaOy>v|ZygoM!ZnB?2O_d6#`QIFxM zFT}qq8dTtIUzjJJOE;4SKRsd?c#Gl!GgLNzez44(DKtZWZXG!EA-wpJ6q>)S`Zz9{ z5A<6m1Ufp&yv3s^bus$KoYp?1+OX%S!{q3ZX;17O(#tNpLu9Y}{)+tk%i!*@H5!dR zLG=R{1h3e@*kvh|<_AX;1lPYm{h&fhxoni5%|JDQEr87nKvYAcjBS6A2;BM<%ls6Y zqQTL7`_Sy=cdw_OGu?~CQZVwIT0VW{vSzA+=v^7xW#MdyV3&cuMcApOrpsY-k1{f3 z#{a7ZMoc?5%GvFW>d~ewt_8E~*qVgZJdfmo#}M|n@-{Pg%{F~3=Td9n;Yf}`a6F`# zhAIN#kX_AC-2+MR{kToX>#}gxlh^T_YrX#!+!tt+PNWEA6xz0I{8jLK@q2%+BO}w> zPQC{QJZ$ykh=w7d!i)@APB6_P_N@yCe{$HB?e*>~#&xxZ3{maWS$lu>hx6SAyyys! zA)EJg`mk(|{y_LN2~V()pxJK)Ig(dPQbCQllT^u66g{IM8FyS4dpE#X?V4 zGN)^EQ0I9bH&qW?(2s!C-~yDopHn%aVf*IddTnXHbU=z~G?@%ly3__SySe8|(Zb?( z=c%Z+Q8~%ot0xsS)-EI{I(#@JP}X~$FOcES%>=Q)oh4HAH|>f*Mn>_rYPOLz(6q~8 zF@A5>eQS((E>c7jX|@DQPEAww)a+z%|Nlrj$LP4;w+m0$WWrx;w6SeAwrw}I?FNl) zr?G7t4H`RX>@>#z^nKULTKRrvo;lCG@4c_RB#aOh&vc=Vg`F)JVejL~Zn;6T)h8Kk zz}FllIl1kihyCw#E3}7GoRZe%GAOovS*`MQ_?qO+hmpj*& zx?{J3-7%NzZ9y~ZtpOkIr(e5Y;xS*3bJ#mSZg5M_d~Mg)BxSL`WrPjvknr-?+HhoE^MlVpR5TYGCL9B>ZLiPv_08T{DjaTTqxHDb>A8QC9sLr3KI z;nVFqq)KtnzBlLqn2J5`(@V!_sRlQFCr?YZiFxs!c6(6vqO#ga>i7+>CS2)X-={cS zinrXQIEzOOP)2ysExtuHZ2Qu3`L9Ul_}**%D^~!(h~XvW$}sPyv#Qhuhqc$|_I^?S z7^{T5ZndUkXy1V}Lc?X9Sh~Z5RayV$#{y1d|A5XuT%Y8qT;eW}x+|U*UV__H2}2*h zP4MF9d@>=hlv()1r9x0~EPHly)Mu3V1&{yiXJAVVg_|Z-?>^+ygJk@p$4Ekf%3ukN zkNKi#w~JC}ryI7ZPKt{KWChfAWeL^V%my~6(>o#~Lx(3Mw{6s~UNcT^dz$q|swjdP zuG6D>ocU;4Bv9PatAdXQE)Z6Gy;snIhc2|)+!`!4c*K@C?E-w?UKUSkYNUXopzH|C znI)Lc%aGYu>ernk#1#e@aPBGyUA}F z_%QD{;IypCiHlS8c-VYO&1Gda%gc!@W<`*6UsC}SxjlXcjw4y5bBp3y*0P;VMvx$1 zYj&0mcJ9lv^o^5(U(Ra(t|`#0_;@pfsmsioYTu(ebo*%)&W(6$M>6TeWW=Fu14kTA z1+Kq+EVp@K59##vEDRT;q;`jZdd*sduf8xbi~;wkVm08ufS3RbM}!eHooCG6J!m=d zU6i=Y%%~}Ila+ci;F}dM`e-Mr$^rDvL>5q)nwiDt=AtM;;qe6ead;K4I4r?jHKZ1S zeNhM@JdWre*UjRLO}{Bp?DxiF{j>?|>4C{@{pK;FfnjOX+7=mDd}BD7SI<7!4<8(B zmd$Wa^i7JNWv5YC-d#hTiH80qND6YZfUYdhzzIveZS7Sm^v}QBQZ{X=@u}4Mp@ob@ z)D@0n1(!}O8pwhh4C{^p ze|T^ILEC+2ugxO@L`t$yF(h0Qk-YI$I(N%Ph$H_)4hNb)yZ^!RAUyWtB|L!A4q($1 z59}reHva%%wCQxMv_{3x(2XyjG0Z#K%+18cjirI5(_3!W^pnP0{MMT%ezx9@(Pen( z(6~x4~ju--Qo-+F!;5Yzbk0S;bkyVYJXfs z9Dcf%f#7H%~=Nte03(vG-oQm;^C65f{ z%hNLX51*5IuN2uElNJ~uLf$3rD0kSsYN)($2hl@KIm-Mvfg5-wVI5TLef~WOw--gdq0r=lG@gkAS z&;MB(p(BP8b~dtnxZ?N$dd2qLgCF$tZFDA1!&h!+)w)JZO%33JkzLv;kWz3GKySxh z1)}(XQYXYLEG#Z%60O|cUo90kU>PsY5gw7y_4!GL4#M!WrWu3jVlmng#CNvrC)UE| z0aqGz2MTQC_sp-gZ6($oFV5f<|DWtl8eYQU252T0ww*#`l6~FQ*uA@vgNHdt(1i|k z*SF4AG&19`E*@0iq$w{T13YHg4`y9L7%pSfbNSAL%CO${^V(YgnYQHrDhHx#Ub27I!`J#Yq=Ke^HdP7@D zRIMEa!N=F$x_eXuuVd$wOH+~K&epUQ$gOMp!qW~Go*VIq@T^?0dUIP_ z!8_Dah=oT4Eii+Q`)9xOE`PjRhB`cTx=-^k;v^%Z2EyrbiNpjU-f!aZB=Q)Tw%bfn zOB<7G#nHzus%9Wy0Z%&W7{V8F8GWSArksRPkCIW(!l+GF9|1y1gd9T&enhqXD_;K3 zS9g+v|5!2lnUmA1QKPLyjltcu;$%S3seBMIIV~S`-mG4Tvxuw3@}7M){j0DFObIo+ z=!?OFtBSDN^UX59)Td(atz8!6jgJeh@Q0j==Zz97Ula|@KvZx!jUwigeZI~JA{PAYtW z;G69y6oF1!v#S~!Fh^A>x#o0zrpQk;=mDOcqx5SmeJ*xlH6-=ahi7_44CrFedCF}#_MZ9y3Z>~EFqmFY-xmjTKTa3H)Z-g{*cjX zuQipdu{3flclbuLG&y}3G`8|;rUTWpqBs)&8f4^Kty$swbQ)l&Znh0A$0qmbd8>$pZ^l=45_ zVm`0_N{qhH|>-L*;G^bb{XN zYNo2dBU}ZL&4!W!RoZ7ulNMnycSsVPAK2m0p5NG9`hxNIEp)P|6N%c6SppLfRV1rm z!);Ah5lb_wMv9<9>?CEzDzJOW8&oJ`H>;CJhC$|79%*UW-!^2-@jP_52}9*^qeyS$ z$K6y`D$KA{j7w zg0?WfQ&b%h+aq1=5O?)g@WvFPmBLB9&=fFyn8}#b2a+Ue_eOxE%UVO0xm!E^Tmq^ zxUVk-lP7a&X5C*}WIzf%BqIu)%xs58M zLg>~n_^VPL2fcWN)42i#LDSXbHFpT{resE-2AQJN*XfLIUz8!k4dFEPB%fRr<|f7N zEg{kF`##ter8xFz|FFU$f~ zxEi96CFHT5Ou6LT^fl7l`NX0~+#A<^W=|hXi+=BvSpJOw#iR?h=E}1V=O_Ye&xg6e zqA*VA%owul4?%lnj%rhQo>V9&R$%fx9&8`ff%_!-CwLF^jj;C!L4+n?jkIO$)|;=8 zdI04;R8h!7(O9Jy$K=p0${l)-0phAxaI>VH!|~6&kxJV^f#vJt-r@ap^TSmitvOl* zE^x7$+%gcDWX&uuv%DvVUeK~czNt@8#gm7^CE^8`g~c|1myi;F+JStN`yCdx=X*3~ zXxC1aV>s@XzTiuWcn8?Odm_a8ol3LtxphD0i0zxVKmOWkQCU3V-}zRI>QGc342-T? z+S*V)uLFmY|FI!NvC0~?2iH`m55AoO z4LCya4>66Go?~{>NIe{TVn^KFkaz?Zg4fJNioK=Cpkrc4emzg`Lk93WpOXZ41|F51 zxt}`^TTOt4DoP}(LSi}#iAtdmI53q^lbMxMm;eus6i?2qz)M7|9Ao<7vh*-QNuyH$$ zj#F8$3pGj!0MjLf=k54w9SaC6z(K^6bUCBXtx_j%`WZO}I`B;W`=ILT8^;MRA)EV( z<;hLl!RX#xdfUE7rEAmB5oMe_k)=HaHo&&Eu`~_jnDwNz(Tb09MzREJLT(R} zuYOFU8a($Py`CS4bVYfE%N;bc&!_S1OlmQ9ebnOu=F&8_D>v>&eTV@fzrT+RIUA~k z*lFL&gGS5>0fZDad3w@*F|a?_kXQpmjL@G%#GtAzwHd)BwVU_~3jp(a(QeLxP_lm= z++(|UVCxF~39Lq*-^Sj%)ZKxVD>!~A*o{^?e?!xRgP&x^{q*NR<#F@|{?*p|i~q)E zZ+?oQF8LM{%u5F3`rD|VKF`85CqwR6trYYP)K~A8REv8T$Dn?HM)}Oh@;fA~l12Cb z_-Et3J(Pej+k6Wg#>7D`Uj!Z>LU+2Cit@G{&}c~tp3uh6abx6wQ?>=BFZp6z6_e8+A*(M!?jyfFwEUyg{ zgUz?V$gi6acCAS4awW1_%XWdW4Jq*5VpfB9%&QB{#4=+oU3OKT55U5L!qtEeXlY(l z^5*N7&MO07wt1}P^?e9|8#Z2V8nBtF*rIxB_+?84`$uYWCsOTovQSNPla83$pS|DlnG~9;O&>r}tls%_b`_;OiUoB?2@+eE-!+ zfCO!8{FVUP`Puh2b8+}Psw94=u8;-{-0`kQTdMb0Xc_OJ@cruz6ZM&d{l>Ne8pdQV%9s|3&E z&f>gcNTS8PS2)2dl!pz+S^4UkWgc_^m)im=VcKGYB}?l?KHH~eq%?c?d*0k*idPd> z0?RPW5tq3aDbPw9_ya@ z$qa=TG@>u*k8&*Rml$uZ^`nv@i&%umPsU)bIlO}h`)0?1AUcM$6fFC2DN!XB!yM@h z`2UE?YuMNgd#$nF1{HsvplqQ{#9R2|0o`HL)_-Fv1QCT+Cdy$g+%Lmr&6dj+FVOC~ zN0Ka(Yc2t2zlirh)*D3y0WCN`2iye$_)$<4^C5_wrpP9$Wn?n2FK@nwtXU%1JDED* z`6$E7>+Uz}`~Da_O?Ka-7p0W>u4i->IGeliUZ!MxVHWB71GxTx5a}pEaVGP);_P&p z)txW45zT)5t><$vq_}3>S2<=5L%J*Qii?mh_y>n;mYwch5;n>dT(y%>~z?m>&E6FzuEA%F@O;OD-!VeTiknip4aA9 z$HiYQvcoh!p8^LntB@`*OF^7`V@oow0tlQ>$IJlsTtEh69}%ksv-Q^s!2 z&0~WD!PT?f^Aomm9lgi?)!J+sUJ=;Xiz6~CIEM82O^*`YdJVVs#EzQmf$1+*j(VU#hv?Ln z#UXN#*FO`^ISS+9Trv97a4tuKrNMmO2FUiDwEOR#D*z6edF3{-p;+uMz%P|EGZVv# z^)rNc$%I^g(Podmuo}jWzfW(c{&@_ZMf+*)Is_d#7oI~h>B4gaCx$Ad%E=TY)y)Xl z?sTpWQ>2F;ngMv9T&P*%eou>fA7JkeD5Fu9^TUyX=R@}RXaf+}(mFzNp|_G7GbJ{v^QzxJaN4tQ8o8^_D< z7yRzXS6DQOqitee(>1_Lq{06FnpT{TpKor}F&w_l5$18pxEUb+*=NEUz3(NY1qu;z zHJuBH8xZCnci88{{+ubMLAmjY%G2pv8yPYCgv5PqWjwn@`yEcy^*n(0UMsGWN{IJd z?aqGz%Agr_!7t)Qs^^1+!DYT-F~%?*9Ca95Bj7+U)muGTQH3yJ5+;euRiY~Yg}K1B zdR9_MVUSJ%g{SG>R^De0(g0Ja1_1-(A4vEw8_w4yzJR|07qTMkeSbU3^`p|g5aO>f7d&r_u+%}r#%hLo(70ik-fd88MEuV zNAR5Mp`7v7>l*j(BYfqnt$`b@&}DXZ1_%=9GyarzLcls*siiyqI;L?mC1}3`1P9P? zzL_k>zJ+T)z0c?$27dTr$Mmgo($fut8lvVN_o|#*AKH&!kCO5HTIyn|B@szUD)ASd zAP1yD`)zuv?oYySh$@E2vT2qyli8>SO@Fzzb1JsqIZeIq$}L$Wx112)>y@TAf^EhG z-A}GGgaBMzYE6g+%IM&LnREEVs~CDd9d?Y1I|{t%*KLpR#zTBCe}MykNC7I2IbNJr%m!-7Q!zyhVBO8Fo4565Cyno0! zX)5-FDy|Be(~V1o|64^_mxv`|99@-4Cyx@Y^SQHji?edupD8530T|&SO66?!ps3VJ7o6J=J%g| zR^3$HwPWbK9cf92MO@Chq4roNagM;@eY?he2b7md8ij75=RMY!#}V4(kak*i{)ph; zKnkN%ee9x~5N#-BL&fWV}KUVnon4S8VUM&u<^ zUV>oC#9avYCzV3Lol2ILpiQ}R4WhzA$hBhO3&;|_^Ey&P^y5xBrG zJb?ZC+uxzs$8zv8o3MO_yq|b;k@fKGHXQKF`=S^UFDdn}|m@VQnAwysfXhWhv}=L#=sZrMG|LL6D*KlWgNG^QP}a2}3~e05zlHz>-W%RkPhsJ;|HWd#5bIGh)5zUgtr zsMf)$amWQ{;$7++W{5Pjohp>*xXBmvEXz!VElv z^t1}+n`X#{TB74}#e;08&ZdRckJ>=?xCF19&&@`(7vs${)mDI2ZpHIPRI)xzo1iui zgXHOdH@(^v(%RIvkY>&8+{qe(zn_5R^xQJq&(6eR!dBPg?=)1IZ^R=}Y}>$}nSNV2pS7kHn3=cV92b{$;m zem`~H@?@kzNSEugdq^wo1KG<&$~6fs6eBU++cL8Dj$5(-!KFe~R(@1MB79uU3J2sH z!{ndZs?rH_g}BvD$J0n{KP_Ec;%j)AW79E&M-2RIMG3cXlQJ3zH0{_)Sh?8}^#0Fi zyr^-anx)3ngOC$s>On$F*gxQsQj0^R{_6kx*X|O$_$T*3JldnMAkLy4B+CVNu7GYW z&(f*E112fwjQyfx(^k{3B!CpSVYXeLF6x@BC|mr+u#n%dux;WO?*K9D@O0l6Cd&~R z_n+&n2uA}RWZPTNR>0LJ=pfgC;{Vg0`P;lIFp97>enMMyDbMurc?qO{J$=zYS(7sC z%*Usgv9BJIWU1ika(NVfuEJI@SV$84|$|uJ_^Jl{=5d!{;sv~(- zF?lSqQsrrd(2}oyJgO~28+51(uG!qQty1U>S~aSa<*O2|$8L%V8}4ftJRY~Tl`$Gk z-vI%f-BO$FG1lfu&@65rd zU+-jDvsqMOu#(!T$2}}YXt7Fj>J}gTAm{k*H`$9yXs8btfnVr`t!M55lS9rAM^a$U zqO24S4WR#&>FFqQPQ7|sCvtGjuvsmOA??I#Lzk_^barl8-Vc-pCC!DBqAhZ}6wx31 zVquv?P}oPSe;h@OngKr#+zGmQ4eMnURhbpr9u@|Ggv+w*yCscFk`uFXg|3uAFLv%V zUC3`7@M9BQkh5guQ|1>v@&gMpB+=<2*xorYaw%7BCRwg!9O5K%&*y~~lQ3Dh*E6xl z7aip{e>Theen$N;dx2z}SK86RsWLRY^(D|I#-)VX&N*JIJ%77~oAbBG{vWsCQO8&Z zBVJO27+uXQo+QU6(?%Q^$p3CDfq~=5T76y>CbPtF2_uUGCcMN@15*(r1a&aFn|J_& z1>Pa@Va8IW&C?O9&C-w?2kYFONM>MC6FjAML0i0%=@h-xTz=4MNgW!!#eG?-kM ziiol|U>e@i7x0n3_pAhpRgASw)<82w>!H;O4Zk{@G@F|C$KS17L+JaZ z+{d<)fQMOD8*W{vd7Lx|)F9S!h+1PyT$nOCGyL}5CW1fm0jF3%c^Wi;8olk<@m7#| z3-6V3V_j$-sQKNmL6pdY1eHyNQN%hJt|4U`_G=hF?C_!Jg5l@o;B}@e6;k&1i<6Je zU6;*{R*(IfV<#cu`_Wu`N8?K5fQFdRV!Or$NtHKh0Vdlw3#X)EacR|0VmE#y&_sR|kS zRmkfZ=b@~*R%rD!+B~z65s#dQ=}5T)b4O(=N`c`Bq0$zwGKZS>!sG|_6U*|6FsB*j zi|CPfZZK$cab6NFgh*me{Yhwnq%t>MYf?J2i;5nHf6ugs}v59)BtRD8x+ zmK5`rcpVOCz2R%eJmC%BEFg~QOQCtZ@7WQ|jblI?JJZI5`IFMWQ2{uE3Zi%TfIF3_~H}3F7p@B>Y)gVfz zp1n1*`1Yis42><-*Z)$g^8DWTAV=8 zFI;0FRrxO@TjDDRkcO_gYyk_LY3sSDYhtxf$cZ@dc{dyoc(AOS0tnMh1wNXP0dLH* zfs7GwBmo=M${a>GSO!>F7T*C=mzx?X&v!VXSm`UpqsT#~!2m;5m3*H#`OK%{Iq;Qc zg(~aEi_X>4MA6lT=4VPI@Z3SPJIdeeIqeHk2(u5@sIxkP_tR3!7JYPE}PK z6$0kVt|L$w_x}E1cR`kw)oA)^)?m|gdHg=By0XJugF&jJ@(^!uLlW0z3JY4I`E0 z3oM-#<&Gk{M0-7fP=pfG+}Bg=KSJ&Joq_0rzl|R?V+1S+BMTH0%u4GICM_#9@8b9B z;&TP6zj8(~kGJwfN=MFhET$CqxXC%+K=)2YtNEGAjStw60*6Kzzh}sG zPY7B03lAr8hZQp>uga!Nkz+XNPr-fntmcC)1qjS6dcka^Haf%(oAWbQc_$~gw5=y| zmVB>+`jde#^$qf{mr)bNQNk!djPMu2&fLmX$CBwMA%$(5G-Y(dQ|4v$4O_peaT=T0 zxgZ(lp+_gf;p*6<83RbWYbd^5;VrFIJQ{g%prw0no&%A~RDH&edLc(m}x1@CUsA}T#Bw#mT@32JWoWhKHf=}W%0*=%Mg0XJwMA12 zp+s;+7gc|b1_L;T5oCF>EB~MHehqfB+dw0er50?D&ywsvAAma@{mye6Od<9w;5&rA zcT`)$5!Bqnv>=QRikR#+Mruf%JRnZ_^Pd(CKXaT}lEj%#t121(dNsZo)_$oE6+AmX`eq3a-@6l`Pg( zDc=3)NFB$rEk&y5H?hBWGq&@2>9!k<3GIU$K^r;}pM!`?Okr~*fi5)P;{t*xblbGK z24Y^?31X`kJdY1+Ecp!$6wGCNwSBG#JJ>A)8`!;-XioxaW=Ff${Aj=3kmmH5DsX^C z4}*4PE9tC3_Ak_7)Faq_O;~t5pOD_MlSa4wz22$2DNKuXi~~v|nceW}xtegQ*@6=P z>@n1AXXq?3IlnJJ^V&tJC}?LyMKS94iec0Dnv)yRiAOjlQ{=KxhrjBg5N10K&*6Wc zo5L(2;Z@=~N{K4D?nU^-t-CY^fCkVmdS0_4UeAj~L|VrYqIk3%jMf{g)rJCBtmB`^+3{!J$TpsW8u$%#JN9P_bY_Kg=mJ!N1@( zsA+Ia>6Q>*WJhs4Syv{KneVy^c&?S1YF8-L_9R}cP16+T87!JJJ6Tqkx+K*j!@qh~ zpP7HVOl7LFO;vkWWqsVy^wDYN=|={I15X%OI6wCDm}ciq>|zv9T?IbSnZ8uRUU(bg zKldUxsS8#LlJPJcGK6ubgRQ@+aBqQUUp>rIT^J?fzkhm4&(esW`snh;x|NX^kw`1~D#py#OiqzS zCm&On^1YF(ID}GGWG0SKZlx`~^RU|5^U1)z_I!#zBxp>mm0lbrQ_f`Wjz!&|EhzoA z)EErq?+bAp-kfu+*WmGq>Hf=xpQ$-lI{TMgpa2R2x7Hpo(q)m+r?%nB6TSRS)_rKQ zX!Thc40&PHWD2ZwvB;v=FBy@SAEy2m%LlW}mi*!M!HpBP9l;s1i$ae5bQ-%+!qUYS z1%$aXV+{mbG_Z||&IDG6n?=Sd{GQr~82Idcj;J*?L8e@4n@vmzsd7deMuLGyqru@t zIaeIE9tcNep*I$dvvQV8Ee%-roRUrV-x=(eFsLR&K3aXgO+&2^J8D;<|H$E%70?R(*ilSENVlBb z;k`DY4~tRr<+DaDmo74uUbnS8wyXAf5R*+;nzo+l5%aZ0uRD4?${=I}mM41h6iL{1 zHj6&y)49^(DHySsk>W+QkTZ4sKb2@9OdOp6ffm#|R6%k3x+)EX5r5iUt?RJ+9F1#9 z5$hxz?kweYFqNHe{p;TP`y6D$8I!0O$06JIuNLmK-P!{xp?&)(~SVV z-ov9|!3Sr-L1?F3%ky=s!$QTay@Msojfy@%zK0x^D?<|xWPudMi#`zV!QjqyJ}GEH zF@Gp;{89bIMyn@rk6kV#cxS)R9*a^`NobMH>83u7uPeIvaK>VHAB{jt95&QkWckbx zh!)8wIHrO$o%>9kfHAcR8Wj>qkQKC#Nr)*qk#;0IN21xC0`kq+0Pn6YNN6?t4tn}a ze)9?dwc3yp(TSr*ub20P1d#xU6}(d;yR^h;FVj%m zZUka!mquk*s-Y_ERw)leUZ!t>bH}OatbJO&ZKs9!`gvTl3j$>jBO>EvV(f~yE(KE9 z9EX0ESQfXjYIqm}w{%=|Z-A*$Z26ny6&IQhE~c0^L<}a@6yu-pt=6Otfd@uy?cgzD zjOc!owf&b?r_JT+S`IfrOE0DsM%zez=dz{YoTT4Qz08nO8pcJdqG1gBGD2#)lKKPB z(OeSXRXWQ0ya=m0H;hrZ_F zWNn1|cUor`%a@Hla%_1iuiVff57PPKy2}261Sgbi;q28IoW*mc^3?(tXrv&e#9D|F z^ART5qzlHbk}_E)IX8|blka}?mwLk71A08)F}EfE`+5S?sRxB0E6LmDP|0{C5wCXJ z=>h=d4&_3no^F~c-S2EE3uJ_Q^5ar}Z}87{;V_4ueU=oPdB4k}`Jxc^&Fbr4El!ws z)+5Nc=+m04G0q;J{|uh)CmxkuWd2e>$f8%Lak3ZT`o?&QjfCDK&k}J8b{u zlMULxp*>kra+%l;F_0r`&F%^+BpCeMZ@l12eAZoiUIjBi2Q`M8vq7f^xaQ=!5qgyr=qV8q%m zk}(x^wT0~buyR~D?Pg|8ki~GQ`sX<6xIBmTAcf{J1UwH}HkVa{XNbi(W#1pq{OsBd z!3~KkjQ{A|PuGHOWK>JEU|Bj@!Lqi;pLT{Bkn6FzlvHVIHM>Wk0!QR?ZK!-L zEEb3jYVAkb$&hJ1nZ`SIAE0}Why zqzEUr^UGFwX*!JYg1f4&J+g=vaM zD>(&JzUUg|;ID=aD~hTx9Rpz#=l#b{aoMTD;^sV_p)025rHMJ|;%;^nz+37JnfE@? z#aPLO5b@N<-0>#519%lP<5!y|=RODBa-EG$ z3_H+9ORCk{N-?)&<&1}ubYxRzg&WvLhw42OIa<^0lLLM_7kMasjFyMjI=?*Ey2|Fa@wnG-Q< zLXV&Um7kfpiUg4&87?7H2nhkcck+J#UhveQH7?EWW@4*LjB7FNt7>ZUJ(ggnJ4{k` zADLB@!YZa+wY2OynJ|D-NN;<64NIS-!V&ph1G6%RRcjkJm^3t7XWlu3x9|;)9ji~a z0E$W1blaNp3+<1fUC~n92AxC-0&w97qAXBg5d(a^`AZ5%Tr6+P@zY8ofPOLN;BREo zY~|=k5)tBNH@&k+pEvYi!;Fk^V8P&ahQv=Lmc}lW(B5{Z$D*@rRV~K$4VKHqM!q?(GP2YQJonRWe>xO^lLE8AJevlc_ERh)r&% z!@ytw$(>JB#u^nkWpy2a6Wx!D0uDp6fDw;!!d_)64-dT z{H2LB=mohKpT~yM0fNp5eg{6_(DS<=m8Xeh@z^S6o%UfjO#%uLVn6Dj45*$89OedX zs=IuKEjMX_i$YXRj-265f0Ati2jCn!ojLqF^>PLCoF)F#E?Ic-X+G?uK#z1;pC0O? zu&SP&*BtZ}b}NIX>Zt^~?*x~r!Q)E0o|CMigCC+Z=u95R%IWhIsl_$an|UQKWc{L` zB_s)fL6d@e%p@#of*bPB$b@x2N5pNnm49s`=s)n*A9^{0@-bNN!r*zW^U4r5n{d?S z`MbVA?BLk&K+c?9U_Ie$_iChFYzMCWQH~QB=GjzLbAxbsd~VmJlZOOw2+esX%nOnZ zs%RiepDH^?DTUQC|El*=HsGwWS7}rT%`aS-_AcwyR>a4hO#-zkQp11^YmV`0zj#;5vaiz(!5WRVQ%^d?Fr> zGPZNB`Q$A(dR|8Cu2AwqUxDh}p`T24=payT zn>Y6-TAinf0p19g89%&|UM84dq|02KUCR0o=#p;$ePIbvf&_*&LNP0yWITAfz{ty>|L0n^ZUDkApf`yz-a(WlkAcZ z`=wnZ!hGAUZxsDs|0s91_#mf(r(#N`9zB&=KOWJD3W*UxM`31iM?ytOzY6jLY_m7wZam+UJ4{ zB)k(t5APQIa`b@rQJAF~=!W%fAsszJi-=Jz{A z_uI}vWrhI@O%1y$FoEkytS;BK!~?l(kB<6eH+ujHsVUGAN4(zUBzgJ4$Vgy1-(6Dl zP*&dmS7XZb_ucESO<#m4=3q;Av>Ya+eB>&pF5_#&>JArN6oKw)g-S`dmGO_*DTk49 zQH7T>n5&4W;=Iji?WZ*+v#ZopWb&2z&$?_u^7tyf6`!`p&V8#sfF8fp$*?mcH(@hG z9A+ljpVkUKx)MykV3|(IR{0ZMkl~=8xzdz=vxO@7JQ9pkm^#gH8Whx*^Z)gdcj2Xd zbuBzYZu2Z7IOkfSQPYrweX}PDTfNUm5G+|9B6z?tkXFSQ*wMZUmw(laS_lbm8Lr3K z`u2{Tq={ifT)4q+f&bO;);;IAtJWi&X}D&Ul7ew*YNp4Xd?Gc;>9U5?;ZF0@&Ue3l zXswKiXo9!AbcN*iQoteOw^j@2)#4Rkpwt>tp)+#@)aOP3Iv~kf1$(oB>CUvD?4^m|I|AJlHJq!hYmkkY0%pu z;lFaPM4AsM41nGE3x#foLwtk)aN-4P+A({XU&ImH&#MaD_Ejv`HzfFmTfbZ|$$FfV zwAwgK)DH%z3&TDYZajB&X?wLjV7sXVl!ZEM!nwfL^O22Sw~&`vwLI^xg{#3h$rnKN zo=bXY1@z)HK*)wpl{oFOH>Bz2Or>^Tqn&Q@g$Zb)60sT@@V^#eVx{yQ+!}iAT!~_M zSAO2AOd1P$o<^s688KSg-?9z(o?lM2?=jqZR51aeB4f1lUxk+&3-lLCzvv-eSbDTU ztUI)cdN8jE1pU4Q63QIAxe+tsurDOYl(IM6&S3B#&2?*rc$Zk=Y)8=yf2s;1BCRdWb%U)2pS!h=Ps$sx z{%d4w*Dr||K{_*11QIx4Tqx}xm|4uE%d(HQ;?k)6@I*OK>)D3d)uUlGD_ggA5;idV z5&O5M6TjUcya zr}GOMh#%0G{uO17sO>A@7Ft1+~i&ghI3 z$2B#v6J*4!6=E8B-f!TeH+keSn?1bFYf8!v3U)+s>2?)2(47d}H2*cuwM!g10byVS?d9M0AH->ccxkH`0^-qrND+cwc&(1V#e+#58aYujxDfKS{BK!* zG!*~lao38*yBxJ|ED!=JdB-X4rbesv{Mqc3%y1~4E#snptA<8lr`DT_Ls+*gIeq|+ zK(E?RHv^oFxZhvif}g)VeC1KA@bwpU|6B3!BsGnIoGEQr@{h~-e-WLF^<5)Z{(rAm zVAey0qcqUu&Bn|9c$6-Y6=KtOJ|Y*e*KFkWM+z`UpHWf5`z>piZOK z)1dte5Y#bZf9_^dva4Er)wY(MrZ&W(eCQ3|iV{iOXD5F@mFYhyd=g2AQpry{ZePV* zmlfepkpq|w3;TW|a(SD-A|-yzYyh^1GIn?$XYuEj1TXU$%$#7@$zB9=4HoL!rdTL5)8R2C; z&dX^@rLGW1F`zFZO5!zw`Od0FS1u$^>!JkD?3+8HHyzBa+9(f3M+71SiSPj)Ng6!f zVy!}%6M`XXQAuRzsX5A%*a{h<12z{zIJLhmXjocxGsVAx* z!_dPeVNS)^A22+62+B?`RKl)x)i%Mdzb_lk+67L?&$fRG3ofuy52JOrW`KEvpZK+C zUaBw;IuaK`XCkQHHZ+h8YYqH9K}=de;0qsM2fj^wddog^7#eD5eR)@Syh;Rjikw>= z`T0s{lcLS$Ea7@OJiDavl6uh%8PDjki8n23!Zi%aTjx(HtPJ7tqzs~L& zT2{xZ$KCGL-4%b$N{Mu!7?1=p{?vP<2IC-o77zYDMqMA$9k2fWt368Witj!It?F|nvT6JtiE?P2wr!iYJ4KTMvB%P^dZx5!MV zoR}8Uytx9=jjwaVJQe-4g`T&?>v(0P`jD>+rmlbFAJ{m!2H}cz!S@Ibf!QAgR?fTL zCr!B*=l3Hd{ps^Y?}Mbog0p6%tx%hr`JN*qUr@u`6zq-j%h^{UgizVYUw$3cXv#U- zq6|c?&f~f^euk?xHG*Ii@Fcf?br(btXpZ@zb8`J@`1nOy$Xmbyvo}(?>W0{!ZQ3s4 zvODjqo&~Cb<}jAU(|;pHd_S$AEqvtgvmxRJca9~F2+-3qE3Oo%#MlWA>_Bf8X0Zu& zSfptE+Wy-P#9`CS!;XodtNTnDq);;&d|vA8I4=)mI3|2@3e&apINQTBF?3K>_S`u_ zVL459HxndkJSH6lR05eHvlLDT%@ai-o89NI#VMi-A1kQr>pz~qwAJmq{g|V$5ii24 z3!N)T!d}x>PvFh46g3t_WlVUr+JZYE0qLZZh#0{fqt0*M4})F!uM!N6&dv@>lVd>o zQv@eZi=y=}KZ|gzyN50Y;v>8b5-Sr(gDgQl%qKHD1 zLotgLvoNitR&v=gIi`Q1lrqXv6*v`TLV&cfd+$Ck*HW&g?@EfIHbVbcIOsJz!SiLt zYg&>y7T8JY97(sot_bml6l?l04#IO7X&XY!0ZOq)6aOQGc z>)|Xs?NIN9WLKBNbBZxI3nM8m!zusc=_{k+Y?>$scXxM(Ai>>Tg9S)}yE_DThv4o6 zhv4o6mq2j0;O@@s!}soPALa+cnFG|*T~+tit*)IrMN;^YlQJi#vu#7IooZHisOrt_q>bO zmXmWaVs!)x&b&ZU3k9I*F`dqN%mow=!l_1E7DTI76wp<#Sk2h z*jPBLtxPQwNz&AvTU_^u%!_&=eGwFS8~1LG1kVyHVfd;io89i6wv}p6Lvlx9(3>W=nFQ{#$;5;`H>Sy z%u*&tjSVeP=ajNfDlJThdbO7MUp;&%Or)gF>N-!QnaGjw6*2Qwsqgs46iC*+^4YRI z2tfL>dj=J8e=F4v_=)9_F~_rzPwg&9&GbaYrrIz$J{cIHnotMLRnkBWVyeyF8M6cK zZyp8%UMv%da3#M{0!t<-dGR`)y6>OhFhR$P-2US4sinx?HRa#=-EgP~<&pR|@olG6 z(2oao&2xPGym!?Jm_HIpPWh_JYaI2F?DX-6)TWzx-{{LnozKtryZmhB4#W)_@gGLq zRrZ2gJ^yF(Sagl#q98r^60^kkkX2r&JUCIlKdV%Qi`5ON7@>5bI> zz2p=kkGS_jFC13)`2O@3c>9;a&RsvuI-9yNK4g@Xy$o6RDyam{$TuGOwreX8a<(^W z`BWgtJLl0Gdz`k{6*QiAw_sRhN9cu4gj(2p;3%;R7g%Vy`jDkggQ93rUhy#vleS|a z!VCNl@tdi*2qonaKQS=K?ncq2PR$b-XiW_SXpxy#`4aL6d5CiqfM6KRip`ci)@f=F z6FX~(h^kS}e!HBuo-e>)CTMamw6+=ys{O;uu?joHGPGWr!qPL2ptnkX>$9nBj_l^jOYXzFbjXow9A*n3sC%`onr zTs|mpU_K@I%fq(Q%bFu z9I@eh|LS82N(47s2gzQ^AdbC;MzT3K*F|(vR%y0^|5C)qx zyc6`uLd4H4a^QIT?CG1Y@&T4pz{O24`8d6GG*RpcWq9Uc1%*^>7N7myySe_?`gBi~ z-#4YN6+Bz~iBX?gkMCw`k(;fG3Z0RSs+g#?O* zEqm0ct`GBbH_8`3BZ&PZ;5vxp;5m)^;km?!o#b_Nnrf?%#dY-}OjCpN_a)sqCC$<} ztDgs>I_>ebK0kk+>B*^S=D}wN+DJ7w{tim^Oo@fZMiNi2~KRM%I|}4BofCRmc)5I%ek$l^oK;% z42`84M%$J^bl5RUNp{@7NzCCTu{-jqzAX7A?v+WQfq*;ttQ*veE&NTNahD@L~8 zF$>z;tZAp%do3%k`86=~XM?ZjT$n>O!EkrH>@e#iOOWTI+uyiZwRUQx@odQ4^Lgy6 zAwn@wJ5I5(|F*Z1pQy~fg|ue8clIKqyFuBC3N>Glsu{&r60=DKiDuHxq`yZgV<06J ztPj4R^7sT7zCZ?sM3_#P+>lYKL-Bz@_#6-JYzh7UY zAMtDA2vM1M<}bi+HwbXYUlA7A)2XY$N043KhbIyqCP02KoUjmLyz%`@y$Xck!Q3Ry zwZcednv#+Z2`G}eKNRs{tM#I@e)I7U*L0_3q8K(GQ~hQ(SnRi|27|xChr+@k4!HXTjI%hEMnnV0SDTSyeSn@1gg(k-)$y zil+H?PakcjKd0wChc{M)$WVp}(%g)729%Y;AQTcuys=36c2>o9*73n*Wl~-B{(mk^ zCAcMyThWRsI6sL!DPug-GltjRGHOX+*kqTzUn@s`WN|(`0sj+$5pQ@|6{)(OP~>#9 zjlw)8>gy7)P2tkve)X{mwaCsQxIjzO!`uglX9LVWH<1&3On^+O ztI$f~5fu>!vx(5L4Dfv-k0*79lK9&2kk z2rotqFG9f3MosyMl;zYAebXB(fVImb(Ge&l`|!O#Q2#;-Y9|?4iNL?2k`@nBHkXt! zhbPv?SexBOe$VpmUk=s9U&|!}evGT1pPBA-;re>)3U;~3v)>g;ja#Hai*v+v)<$gz z*2imU8-=LJVYXbH01AWsC2D~i9Z`~O$5>H-ozLaD2%x%48TN z`ZIXp^o80&=b2w>@Qqn*`d*p$|0Zy@_tjF<(U{$cYI3PO8OIo?7MBh5&)1pVE$}XB zu83tbi7paNVeBmZi1}P|fM88DBSJeb(&| zY|PJT^+fIZF8(2Pe3Ej(P`JaEC^;KP?f@fuBEG8Pc#sjrHjnDu81TbgD(%n zzo80+lwC)q?j{=9m%eJp=ohn%)knK?jdh5vfcB?GSbaLBv03~yv~r$2;4N$_WxCR< z)%7~0`SP0G`NjRs<--?U$-&PaT4WTQP0uYmWhjF6PGnsWkce`a4}Gma1;2x(Ow382 zNiYB?F)*tY*1IN6U+-@)FG(58iCsvuH85K6m$Ddlx6ax;#4YHrX{P&GobtM!=42Gpm`-zRivNnpjarN(K8>x(zu#)qCe#?k zdln**<(4uXZ7`!5u*w=hU2PL}w6g5PKthSm@2Mz*X>ZrzHjr4pK7ma>i~;LMGU7)% z>v?}D?@3tdxoQ|NLI14w)HEL|IweJsEIi~l4dJD0x@&dwWq26vQwgP#~$lhqH zx;z&!{&*>EeG2oB=&uM+5Sr*1AWihbAa_lO;1Bsiwxs&U{_6Q&>E$l2TxH>3aeUbS z$-u+K2MYf-08tQ&Mh9b17Aj&N9S}vTDisKdsUsPR0lgMcQ3y}qF_mJMF)8T6SLhH7|?Ea=fG!MRQq`68>F zLi%!ifQ-YA-Sf#0-Psr>a!zb9UhH?gG&LX8fQb})hA3wqqCdIQe1gu&($}9bw~V@a zzV$>`Pta)62+*oj9C=3QFeaKLPO2gWn;Z0&kd9*|J=S`KSfEJ4wKI{ljMn~wL#$}7 zCDc>iXV;IjF2rkHBh{1S*22H`ruUn!Co|+JNxEt;%TgujNBxoZER3R!xne00GuZMb zpwT+eCV(;PI~WN#Kvwc{Rw$qIS${}JeWuk-O_)wep5jmy=^7C-30qWMV73_*+@EL_ zMpI92i_M+I&p*UezFY{1pk&6R&^hrS8;`+8+MBHMUju~v{qrOn{`nIhjzqiD!Kfyy znT@%+#D0i<*Fc;QEWNz`!E+u{SvPy#<4=O_bzozz?`{gJYeUWP@IsqGRBtt~#K6lH zjL=E^TT4pw@$%VPz~f@zR1j=PpnTucN0m?n1CD#Uq`Y#HW+N*vEDXw{m;Gjo`eU$q zUP|rA%Co_01XQ1lL@V&nJ`ldLaNBwlvMH+W0tqsZplR?_)%*dImSNeCm1KDp46C?@ za-KI0{pyskHBL~|fd2(TDJ&2CJ=;ekiUgMh{d|K4r0dYqAeqTSX8p5wtP9_x!;$`xHE9{X=Zuo-XNPsC2f^080mT^k}fu*4b@{?-9iri1#PQOS4$&f zl_F>5?=Vrj9-o&kzX)$*I2IkPF>ey-O#=LNiIrUHU{mkHIqe)O-Q;YLA4#@EOgW|G z_ii{?e!buN#dkI`GW#A|2jK=o0U_5{9!FaWEw9!0p7%je4^R;+xSBYEZ)}-kx{Gc# z$zk7?dOH%3Cv^k^)c5|qlaQ4fNTF{9dSRG_rDgm?l0TsP3`0ns^&a*!+dVIXpk}$f zRAKpA31TSqd7G2K&!>;r{|@ok`T31Q=B?13K3b{A-Yjn7Amq zyIKlt195R_udhGSUEU1Bt}m|1OSR|zs6+-oNuf75OBa(A|FcMb`unBomJAqJ$%I*2 zIyFD^am{EJ^3}tHZ!=4$HZa&&EP>#}?BYi21qMR5Q$}CU%%?C@M6e-6M5rF7qqi36 zMNDDpOEWR93SsU-elf}06GBq+Z_;M+ADr%(BPElAk9X36Tr8y#SuAa;ng_^|9-cBE zb5qhWdW)6#X*MjH^y#&Z+o9KUf4JdRMW zC@xk>Gw&=8;$!6Vp%?dKs}k+iJ#ijiT7CQJ--X;1C~jO2p( z8;}BFm<0`Ajg+0(U*6IlFzRweb#>v|`gE*n;@C*XFSWY)x^HQ8`5j3L^Kbr}%bxK5 zwiYo%Hi-9knG{F!l%ea6rH?QgGrj{mEd}YC&Z2%bmN(h3K41H^o3-j}J%)cggFLr{ z@2(4PBI?u(pNSZ^>a+u`91-Ywq0s4d;l--!&nqYonz8dv%$UG2o;lhetA~)U8>D++ zwf-9j{%*cn6k@vvT`c@6k+7#s`4Uy(&{ZElIJ7>{T#vc*@uD=eT)dv{_Zpc-O>1=` z94mvV(GkV$j^koOWLGZ;&T7XR52Mxk7?^tk@lPcyOKWB8}c| zhWT^+JmF52!9N%+Bg?lh!!95CHF&%p928h!m-5^QO0aG^X2*uw3p%<@uoWjnumLMD?g ze2nP#4iXl;B)p6Xw&}rjZy@Ng71j5#U%mCM0*Q^}C|!Xhdne0T;iHF}I#ht{LfHIa zkdkJ`9H9k3YC%e^>dZ*t!?0LTUY%i9Xk44Ux zUA;U7e+2JE=qPr9VS(oZ*^`zif5$UPd3`kF;M0&D8n*ts(~dRX?T>$)5WX6q-()(= z8>dQDGPl~pkCHJR+N_C5s_0e85d|8aYkmjY(t+tEgdrJ^J849PU;*T9Dp1~ z|7jGPEiF#xmE9H6*WCHz3hG6p!&}e$d@V(I>PIOMt?rksrpm4_`6wcOs3@SD}_&8Cd zE%ZWq#%@0sAtI4Ak(0z$0}caOIZDfQ6XLPrM5jSPU>o-RI1@z(ws>0cySz~X`O_{x z{BdF_fu``~fkf>IBeO{gMaa*Js!0{E2mf2dy9WsVy!bJcQG5IK4&Q{E z*IR;9Hx~Ov^jF19UE%ChF2cK86oaV|Ow4I7L$2jpAKRqHGqVNENb&)1M77^G;3-&N z77%&&p|;xqdVL+@n$9XfD|fUsGLluW16nkSPO?Hk|DMn5+#?RAI-o@QmYRaY{4GyImh79tetna)`UoG6F{fkk5Y2yW`~S}v#5^t z#~XI;6d@6}I1o9K?1h^km6_E4}hpb>3d}zN1ea5*INOE^vQUesN-^ z{_@zyuM9ak=@a4Mj#1aFEq073ZF?^8UiHtILTEa8uXyo;|5I8U;ex4>Y8zX9~OC1mxwp`kr{dH@m^!o7Xl z1&d1N7p(b7!iAv;b$zQSM)N0+NTW50uQNhTPtA=sUUES`3~H}8`RYT+<>y26D5`z~ zsX5msPpb2i1|oDBVQOn;`Bh|nq2dx9PTi1J{p~xFHjUc@Ej06C3i(UP=qxa7)f;S5hwuB43V060ihBy0@Mv)i^6O#Bz2ZA^WTCcy2Ihrf^~I#=5tD1rx(`D{&#(= z`xJu>Ef~@eKQcUQRFt*u{wl5ZT}A=w!pEC`$a)&-#2mG@QDCTQx`@ARz@m^K>|aAL z542)~AB!>Iz&`9nwCtDF)-@AZvb!odvkeeW`K65Z=axI^N+{mea=oSZW&b&U!F-uu zD&PjnS`RVdD7=5~)hb&2B!*v3bzb^NUSqmTZH4h|p~`@L8XBJ+T<^4$fMPc}0{vH1 zT?`#DZ0LzieIj&^cG{t3E}kck|r>%$AQdChIc_d=v^OPGm3IVH^Z2vrh$eQ9Oc`XfC;f5jpa zINB82lS>5U_6oRK9=xWojW*NzBT0ecFXxOMR*o;S&s0i1eozo@uWH%@0D zy&p6M|Ch!OQGSOsAa-zt^}MKceR)p)`YzrG^aG{x{2niOA1OvUC#*Hjx*0UlSh=wh zT=8*u?cPtE`fr8r+Uk+%b2Y8-Ls4KZcoVz2)u{TzLrI}?uyGQ!ulqDMfQnD7t}Jr* zYmnpD87t{Uzg4-k8BK`_v~Au95jgPVQy~YK+jau1$oD9 zVfz>fnGI3JCBkey=EZ^jbw&N~PG%1B5u0gzG%T^CuOTa64<6UFXMb0X+`&kkLKyki5NjO8m3d;VESliZ^rRB8P9yJ7vx{XKOth2{Pd3T<~R=Lmg znD^`^?8MeZPs* zX?;hp#n_auTD1F*cQJ`_2FDdtefs7xUGI2@8WPr^l+-cdq9$CN4>GH*JU-jK>JP#~ zA#^S5Ca#vDw+Cr4=ZaKqkt*eu)wFE!C%n|?N8gyGvLwMPlDe)o%0X_2;c&>k0vkkM zZ-$TGp2_OE9dSP;nA)JZfQn3rT6y&S4WeyzZ$eDJEw6hI$4dR@sw`vxSA`K-aJArP zv)$-^M>!TTMqiF-Us?6aUTVwx)-@pTKDs2KB7#|4u-xgbRv4yU|7fH|gWEbYL$8c4GSv zoaClSkZn7ZcUMV-jQ)n4SaEheE^eKXuP~kRpL}wrvi$;)Na2MWK#?Fch_-6Qj*d9S zE(dQOmOJ0%o1zMsLx!{7`Lx61^b6@rLq-f&_V}3l#o8{G?3wYQ&J4!p7FXkY@(JtC z*435ek6ZJLo+J}$tfBwWxj_pY%e#*wCW;>NjR;FjRI_bTv%gjjW$fb8*8y%TbBuyd zc|VA{FW9BjGLBy)rTGy-I*DqK&bNQ>DLC>eP>u36N+Hzrp63g4nVjOo+#GL8(x>|p zZO32hF(+t)U8I5j7TiWTSrUVIsXu&9(?6RN`^F1Nv;{R><4r#-xEo7i6RnBOYq(v6 zq(dzd0@&<*fdKca2p@*y``lxNsx|n8gBDsIxPoV9-}YrSc|F}o_4%wB z70ma3m_*oK+aF$BzZEZ+uGnZ%p{=1 zH!eBT;M4xyqy0RmSUN4YDGIfPi-(cwzFFj7*|W!36|~isNWl=ht7mtz>RrVoo5@N% z!{XSo*i^xu|J2<|9`sM$j3i-4R_Gr3L_z-2W>Muiljy>RS>o&_e-v?W+{C6nN><32 z6aXk_6VYHc*>(%|3Gf4m2Hn;cKb*d!u|!h^^q+x{A%q~D`=54M2LP3iAyo5b&+u4CrKaT8Phf zfZNuT0M<$EK36AW0FXTHPt)-X+Ucob9bp2$idaaa;n~yD>mzu5{`Va$T7K_f7<5C^ zYf?Z6RG4JDcIFuP#GsOdT=yc^Yvxh$>GjreztKxo!=yRRz!k~%S5@KZ&&CHg?V-|+ zdvd0XzuhAseSO&1#DZ1^T{_X+{XV<|$44p|Nk~yOjiys8W%@evY(5P2Z%-5gq!Lz` zW#+8px0R2>IiNr_@k>|?MOf+~{0@~tgrSHTHkHxAZXW(eKtxhDuM{RCUar|)`CqzC z0RNiFfhz2m2DN*7va~V!7G!I)HZ2SAd_XD*7>!f~95x)Jbey{UR z89lv~A6O7;D=wZAm8+lom%qkjakJ*0f8|b9-`_RnmVbFnCZYE!H-ilt9>5!?MvtCa zC9LoziJ)Kg0n>FfACb?Lm~j~E;?5MCuvv;TO7Fx^Q&tofVnxx>*OxUVF5EX=ZUwlN zuRysx^sD89A=Cn(CUmE|ys>>x;WD;b{}}oiuSRxSa3|c}eoVWlsDML#gOG$^pg~y4 zqPB6Sjd#BeX%K9V1Ym0b*g)bX7SvjCO-_aI;VV8(xO_PaEyO0mh=x0KT6`jBADp1u zELTgJMXX35jVvW#NZ#Kvvz^ZQbeniAGAX7;g3(K5i+D-DsX?H-=7&;?`}({dNBmgD z|D5!}R*MR#lyP>pb+M^FqDp{hsiP{O)3l1S`TM1Z1b|bfSR01c> z&>4F7i#?yct$iO+IP&QifR;nz2ygKE(fM`TGk{GH+&Yh-nj!E4we$%^_K5*E~JU@%=EC7bX&5C$oY$DUN=X*%w6=XWmF z&Ku14@i0wIDXR3GMJE2`;$d{d-5VPdddKCC?S&ODbj)8yqhS^<7OC#Bi1X&U1^h4I zC?BA7n|rD|CpvBh?U>D=Mo>QjJJ6}GLr_^q>m3RJd`%4<$>SUaNw#qWlvpxrx9;Fx zwo>U8dRv$z1dzH!E2PAOgA_{J&uMgXUQ6%0l*wLpsUGGT*h(BM;4o6Qf`l%v%r1VT z832J_@nInO->Qdjfv1Ds-+&s$5#yu8X0_WHI?L}yH1ce*b?vN0F%;OQ77?H+Od?c; zByvMZwI$V^?LkwRLjK~~ysqhN)%~8d^k`SBHwxi`LcHfb2K)ruV7`-4{S%gQ5HNKWl-ISC(^7rH`C82=T{aY<6v zB7oGeRW-M1i8OFbbOw%*c5Xv}x%L;A%Z#LNE3gR((TX`~gFp!>%kjtrcj8Zpg*YPj z@xg~1;7`QdQQM-+)u^}BPMm+rfd_cK4EEiUM7Lhbx~}j1cT(!2=xH89+83vlef5t9 z=UJaBhyV>`Y7VF**{bh*!~t@TA2)d=pFg4bI$4h(dlYczOZ*KhGlXOKyi*YQ5)1a4 z7mGZv__c^|_y)q%=HCQNo-9N_m%^=@2HV)F3@S&|I~HmQ;y}Fy#a*MTs?A|=tD)~r6ALA`itYD(10%SF%E)Rcy2!~3IfZrm^5+lp|b^GY8#H*W1O zjxhR9e^X1VtM>}ygtzCk^-b5>TzRvVO*{_*eNe-KW|ReD?(W>~PFL{izo0{>4(IW!e=5vV(`EJ8fQ5F~3&~}+D!*u=Go*dtMb~@U1N$2fl z)e!z!sv<$;p6|pumq{gyNRO%3`g4H zn~GZ5%V8qG8eoHNJ_W%Y|rbx_c@FgKUsYMsnl!Iid}n5Mn*kt)n$FnfhGzCX>G0&ZrQxOBHI5xcs;obQslZX2Ho6fVL3J3^d+e6?2f7ij_ z;CpND6OxR#JAJ1vpYl37vFp?K{ZRtuaCOJ7d#a!X+p9-l?y)bw+4qM{Hs8!$H0FRZB zojvhB=@A%cR)`H2;OB2Su5Q2Z5PZ2Q5gD+F^_%`6hxyTb(gYYizUnfg)baLo{BmmV zXM8+g_3(=DVGyEwL&eybO0UU=0zEu?rtvd#mdjr`(7(Msr}ufCz-!a3eW}YwAlL7W zuR^QJ=zP6%c3}YvF$7i#o<34uN)t|`{n)1uBR#XLR#pY_fOyUYmJ$$O164z{4FYO( zEp(W)1WRLSWy~cvtQ3h0Qhm)c6Kg3MmmYe=q8z^5GL^MZ20srs#}T?eCIAceuLlKO z5(DL;eWQs($iEq((wP1|6Cvx{1+*Gg1WF|2U5Glp=Rbi(JY|BBej?mZ7q~>S2kw9% zlm|D>q3WrFK(I|P*qvW-GVrFT6xzSCw4<#)oh*kNL%o3UnYXZ9_g?3VB!;!+OSnq|w)*tgdb8T@Cn}V-Wa=Bn=3((;0IMLM=P#$Jm z@`uHjWIv@90d#l#m}5Ms)Y`#$=v-_15EZqpnp!SRk(PslV|ZlbeG1xm8ha2760Yi} zPvUNFZYon7xw~Vj*Du$9uEB2`;2pqmQeqwg5c|uA_o?){y1EayzxjEFCs?=%ej0e^uGy z#x)swYAkr^i^u*nC0J~!fmL&EUhIT;Q=CLOaZSzf_udV1c*w{CO88C$iXbsbwFXxz z446W-lh$|m9bWk(#VBU^?XqXuV|wNg<#MU|JNKDwQT~Ji8#Puu4zw5(eN&EWteOzjZia$2qAU&)9pNMZ%XX-}Ks(!dCOp{js6Ji=q0MTT3 z7F~`9B_l+8#nK-kFDUH&65=}JGX;fA;A%C$Rnvkce+C||JvT1m{4+FGta588HA(p< zl$JPA^YEur+XfOB3{>Rqex-;~58W4!703os7d1AX#0E-%ZF^>RTLXkL3 zpKFa^-alh$ZEd{KJgI z0GG*gB*di_CHW%~Qps56GX8^RXaL>>z5+yp!zne>nt-4{vDrOlXmm3v< z?wJNxWXi~LN|)Qg@=|ocjiJoclORa{Cq1>{dP&`8hJM{P83Hc(23; z3D*5nCP3Mtr-t$I&l!^R=kAiN8XC~*8TuRahrjj$2GSeJDy>3H zEgcj-UDK{ky#3B5l91HY5S;KG)m}(ER;2T@gH5n}*e72iB46D;S}p|!NAd+kN;A`V z7V>x50nAzKz|4h>Ao{hh#Z~CzE70v!JRtn*ziq@nBnD|P77Lr>ZO0VPYouF1U*~aY ztlUz#?{qTnrQ;H;~;^#0Vk@+=aJ#z&7wr*?e`a) z$OD9{tE=}#FWk#EUUyzsSC_evl-j#0XqKmqVOYS0bo?2$;Sz{;p2wZ9oSfesyaJ&m zI3f$~G)}@cYdmBReamR%fMR_#EP{?28)3tJ_B6c_humitX{Wk`;Ys-d7kOHsT9c-m zH5nX;UB_W-QnbWIcpD!T{}*s6qjaX;O%^R*Ia3`f99*oalpK+^b6I9X%g7v?I z09C+XcHa&OsUMPve!es$WHvObvl#8-?O{M##ThUbF$#!D0kP9v|K_*9%V!eGn;>$& zO8mb@P;+~J-u|m)I)sR@7z|>NJvyiPSM{(jBtg~#$YBnm#dg+AhJL{aQO<0-q4#Y} zUE~<%=Zg|WYeD8S0qhDOP*IjJPqn6rq}Gz&+GL<*Shd3cqe!>YltIve81Jp86IHbV z_2lr(I(5Ooz}onim)d&+?#zjo6LS$`;Q6jP4v}bRY2AIvVvOv|5%OvQQi8|JIKOcq zjR+mU>@F{+M~oA^g126%Rw{+aD`y0veq^TX@Z{uPW&I@K?GAvR5U^-3V(h(xfQ-@i z?K)Q`1_oe~KDT#;GJVM5JMuvZ@qt@@=w$_u!R01lArIPn3jGcAI}j>93r=FT{$m(N zVw$VGb)?JUcys4v3iQPEk{i_%%E>jUa#Dm8^l9u(j^+cfDUr4~A;)UKh~0oKT(&?~ zw_M8IB3z<=W@rYyHgOiI^$$ZsQNl2NZsj;lge&t9OJ+VHH{54VxzA@AER`5g`KwZt zEq1F+7kya7ot>{_^5mGGM?Zi-T8|t3Y2;qKVbp5#*ntUJzW3P?mf%yQwmBrBGS#i!# zsVnF=Ey9=EZ;bQY=ngTq7aK8@6`beCQ_M7Y=EnHaJP9WVc{g&E483gG)^|TVcNvV` zykmd<#IIL}pKp*}t1f4Rv&s(c<0uZW`SAb2>>+f|lag!4^&3PIFWw{I`BwqXX$SMg z-Ixvk;c1~;+0v3hTRr`^qVHo9x(@ZUoB8`t|l)%$L+P-|=L#~UEA+X6xWkwy~h zx`jVEe3sj?rD8U}>kV2ln)WwO8Z_Yta^QRlHN!|?tn0Rdf6#z@!TVe<_x(`AR~Y!a zaqQ*gF?GXrifr^dCsTtYd4RSTUCMT~$0DgF4Mk`Nwj@X6H;TSUz@a)E8JPE5sr~g; zs=J$-`kHV#a{Lh4UVZj$lCmt3I#Oeu?Gep54d2l*GBY`>)>g z=eGR)A5F;jm)8sn6d&HF{>Oe`34^K2gblxCE0pMSm-izDUkZ&v%0(X%tHb@8`}NI? z$_((C`fNL3r}fR#`rHxY1uZlMUlk#&5Gr8w2$kF3 zepBSv>2|7!V6t_$Ah=}#YjKWXGoHtNv)Xwu*9Q+;sc75=6a-Hj#H~*XZ!PZWqpF!K zlx*7~Nb!lpn2LM;5Jhd{C}LD$Q67n{cqn#Ga(OlB>pfi`OLkFCy@7`FV<7 zX`mF$&j?nJnVPI0$LSCLTY%)E%3Y!p&+G z=-f!bg)qJ9<*P--G1<&haCZtRS7$JM(8!+DkJzZEciA+E2MBsVvVpwRnIf8+@$CZh zl!zz-%eCe@axBElUpg(=^Y2K!R5b(VSR}JZ0Ss(DlJ@-$63DtSXE3(Wfa|4>X0bs3 zg*(UhCj_J>K)ICCF5dnf_Bf5P7;~J9Xw=o$KlYQo_0*Y;J?ygj$pLm&0g**WJ^vkm5!`iv;Q0sn96n&)N+rv)fmsXDA+YJM@A1Nu)3JTta5>uGacwb#GO0qcISWBwyDEF8SO`Zh3u~Ty-%^Xc0$BW91IFsDJ$LH-Yhv zuVYO$l>5e`pIVRaHYc?DiDlbcz{16OMgNa2QMX6bD7FoQG^ZJKNeC{=nTyTiB7K+b z@UO^E39q*wEx%v+cndHZr&tzLON;la&W>f-@YEX|ZKWgF+eQ3ZgIso=O;ruTx^L@L zTVt4K@RV&@r%tS2R`QbCuOa#znW+BwmL)|^0H-|V78=;`xhu6%>6ZSh0KzjBr;UAo zj^zLwv=C^-a6s6PqdLz0Zk4wEwKSmi^m7esdZ-0Eg;!xWnu(5~wiFTFB)-4|#D64( zafmTDM2(daP0U2?`WS3bfc3A=l&q{Q313C&!gyA{$FcDoq0DzuVy;5_9(pRWpvHM$ z`JIb!xSrr~-b**X+7|)yjY@$UkX8YBgcTuKfC*X~LDoqD!V>^)uE+G>IP#l%EckYl z)E#(<8=9N%SNE>Nbn3gzRlc8i;3QcnZbw3 zt2eJ}KDl-pnlY_aU^i5pm57x4roliCm~OrcBa}DB-qASjzvza<`5ar?)BmB@$LKhr)p7+_{L&F@@?F^sG1?Kfxl;o$w@XYNa9u|-(Lg@%ymK0`gG5`e= z&;)5;NY!JkR2KLmfXI56wG=~)c@j)A*&&?OxVzTo)S4?qUDfH{44^9>(>lke`5<{S zx{%)ER~w&MH-WaV3!A)RMW$RLt>bR8Hfbo;ktqOhI{*rH)pI{v@bWj7hoEi&02Kia zw)KA9%kyC?3_u)Ft@dha7{K?eXhJvW*7KEz2=q#{So^tt!b(a?*tob?+2`Ko`9RcRAu#Hesu6*!3_!Ss>g1>xlI z@PYol2BO$f$gog>np_X`% zyoN!UvMuus74+_4p}!{*0;vTxOV(dwvTeJoExRj}XM87Hw-4EZEQS|kNv7-N!o&8> zmB!{?3M$Wj`bpv9W4)-K=$7MQ<%-~Gq4wmaN$|=m(Jh_nT84(%iUewuS)=7ZpcY69 z>HkJR*abdPG2gK%O=wi*!55-cS(4i-JcaRa0j9JUkxGXI#Ux2*QWWG}8 zJ?G@)*`k6r~wYUWUw8; zdyS>Cn)ipIs6iZ8ce3ybK$;ZA>E|6@4%$=UKnL{oiOb8&v!#btOKjeLA9{U^lyR@w z$VLYMEi@#=i?0a4J{z#fvf)Q(njCD{vf=mUDSqwDWJny+YJ8L357=+6-D}LAa+h8t z?@KUhF-xC662V5MWX=S78`W0I?Om?V;NafHt1_-xK(|WcZMIsoPNcK3?r$9ZA1V7< z`JwH58$+u84uU`l_QSjm)};+S)#`S^llC8uojLv38` zcr!3!U|cau-}Be~cMppNvz+DTpr)RlHpnwtk+)d#yUG9&o?Hjqrh@j*gDAPvzyG)YQZP!ifUO><|Aj zbLIR2QtuuvYi2V~^olT!)WCV%#uYO>q>heGKjK^e78^h+g&!BNt-H9B0>?2SAwgC} zg-%2yHz5HN2+;iqbXh$KGzy>FTo@Emm<=zt2eKUc5P%#gj?a0I&3F(QIN{=eLx6#S zF#!q--e`|dTWO%{&*sl(X24BVR!LpXx3CymiedKI{5L>)*BUbQM@E=9#dB-!>jP9j zR?)GFdQ{l_opAD3u^xUFvT0lvwu2`Vy57-mFy6g3(K`FG;_^-L?lUk#;_lfM?lW)m z|A(!&jLNe4-i9wiN~Dn%q)S4&yIVqOq(ez5>F(}EK)Sm-L`u55yQJ$GZh!x^-VZMe zKH;@k&Yb7W-bd|T=2?eZ3K{0DoL+6U<(;iM)KW?;Zr)ChMW>dx$rxskeDeteK|tx3 zH&<+1DZ6uT^>cw*9x4#la6zsM^AYA(^{0kPL%1#XWDa!I)%9EaQq2qYr#gf6%nkv; zZsLw{-fjc5K*ZlZY(e%G;=u+|G+Atysl>=)*Iz`25|0)Br+nE?l!Y{3jds-IY=Clw z{!{r16X9q(y>4qNDBk^2EE|J1Ha2iInTsZWUrg(cD0tkCr>j4K_DpoBgf3Xv+4&}s zXq>LBx$^~%Ry#lrlgm4Kt(KZ`-}xzi0^X*^`u&I(C5QaphzxraQuq#MU55?;+TA(e zJ@Z~a0!ZCx;G}tvWnBy?fz;GqH#9VW!}q=OnIWiSlh`a?zkE$k!pK;$GkF>dQN)T{ zezNB~tRZUQkS0xKeE|e|%D2P}&NPvjd{4!Nx@3>obDE!fQ0gco37XlG4_6<# z*@83FE#J24Hx_3?Rv1)?QiU!>d&M(9dm&Ci@K}-X?ulW2rSIa~#P>khO=cpI{^na1 zdgU`g)hIr9d}4RZ9)Vlm6r&F)cnN96TpWKzR97eKF3;BXnd7V4jm z?kTA57MqyHO!Z3HT|A=QAd^M(4~uI{!1x(uITPJ2@8au|^FQH3T2H6*u3EZsPG}NI zmMYl1??faa2*TAbA#(_Vx-MN6oxC*g0~^=L{7sj&JC^?g>mE3_Fd#rapfIi47uX$? z^~(=OCvcJfR(|roYI3QroH+V-4{PUV#RGub(?SW;qy3foNqPVecyhhP%2vS_&WQ` z+vCpywDCsIOul`iPxI~6k`j@XK~;d>vLG;#{7v~Gu4LoZOeQ_h9(jZtU6M>%1i;J* zOS8|*zs()ml*NX6jThwjNrjRGO%mf_7*JeQ`i|-fsh_I7rhFKLmn2=Gnm&_g$Zlvk z)=s_1%&+H&9c^$J*)=3B}4J=FOZ-a!zgnSL&!$a46!1Y3cA1xg?ym1^*7eRI}7R=XbQ!5Gm>7J4l#b zX0ATQon2HY5=84Yf^CmX_Wfxgo5fgIsNU<)*tf-_^zUW*w3;Xbi6#0Hp&3@CQIhJo zwBwfFhZ)n~ozQk~^h|H*xE!)Ac|5uC-)vyIpZE}W!`^{Atm5!$Xz1Ft3ny?-K~qyx zLGa+}&L9<`5!9J>!(3Fo@-|N$wZ3+@*%TN`7<0Nwvbpt#Pu?VY?0r@-D6r7f!NL*} zeYkHnSII`NeF}v&?{=06Bwmg*SHpa~TF3TWqrcvwiDdola5D>zt$2la)yIq9!%7sN zxEF!uxyF=T)VU4DiJh3_(_)^V2HN*6;NSX13kWC_cdfo9$D)GSKcQ7~BJJ3u7_mx* zs^b_cD&RiSb7<)1Ai43?$(JKLfFOukQH->yjVTIda&)XQLi zkVpG!Ab_&w?8?Iu@4{U?csk+Q8M9<7ebq&}mGRvOged$s>|CXcu;6=5ZBztGx6pOFbb+8xc#5&@{+KY#u#{G&5Bm(oz3 zl7k~*VnStaf8QnEnfHwr0}j|3n`0goe0=;!qY@%@rC6x>bsYLnp5VMXJOc5;>@Gn0 z_ug@8M)Tb*%x7Vn1tQNkVo#6xg~{bCq*zG6aqT7OsmGMaq-0%9BK1M*PDqkI-KiKI zg|7MRl7EO2wf*zx#N&93c-v`zQnJ0C_BU%~&E@|6LE`d#zU+k(iJ7}i=T|sxkqIlS?8D3uYrX5L6KT!u~h`c&WrIg3wzr?>?DZCb$)ivkS&*9ouF)vcDRrS+G(*U&F<7z}%Yv6 z%cf;y26n{aH8eF{pnr*W7;?l=$_0-?o!pVd#ziQ|w2V@JmPGSJu6rOBj5mT6BEbkE zKlsL(3`+0S{mHi9uEl3dg+3Eg_BHq~p$AhSn0=Cn3!lBlQWKfMS+`Y@$BvE=E{j~= zFiCLH81z~>R#2;Z_s4qIq0-?~)=;RMjcd`!usAV1e_^&+gq>)IhpviP&-g)}t398+ zre>4`b#a38tdt~;1_tHAgwVc>g@nD9n zO@cJYCpk5h5D5t>%krf^=@&c`Do>}s*kXjVQIa`*I#%?(R45!-)ReAoIzJo9_AG|0 z=s4Nq{IF!SuY!_K=ibOPlB7?>Wr2f~1MdW#05@lroZ93!Q3{jWj~;vkzX8G!))?`Y z49~*suL)|qdP&W_Bm1rY;(LCyRZrQ)DYZg=D}1F79U2;e_8LM7f~m6eG8S2)$Ks(R zkxwm*`bk)A>yq)R=^kcO7SqJv#hl6*Q>`aDB9Gc<;x>Xf`F!u}nIvhX0^^r*j6XCw z|0<2hBC&Qp{bu`BN>qi-cvygZpjlV5pM(E$0fp47cV8=XFME1=)=M9sW(*=uOu& zg@$^!-qv|LlFbd0GiDUDFcbpH=f%=HgLN%^ntrk;_=LYRuP*a`4h=j#UXsntp&ptv zm;PY+3|y9RW0)iXd-F;@qsIgyjWDAVcTOK(5+R5jKvT=wS_>)NpGIElc?x`8{#7U7 zo=_8JFY14zZRCJFWIQ>O=kt@GhgkSD)GaSA*03X%V16~PkQPYU3|a;L*Y72Phqm0o zO-}Z%ja*90^|Ys}Hh=&HbXslqn~W0^6MtrAegQ0pogvGXPOUhw@R}g3H=h}z9$!#c zh=1V@8a7GkF%5ePK;zl1a4i-nXU|8fVxy>3uV03?+*ZC`>D8U`AlI)ad`Sd}CZ{-n zL>ghQGre06XLmTT%xWztilzz;0!+66SdI%EAt`cy`OQ zKS_XkX&LjN-%^0+*eVQ(9GuHWJ*m{IENv{3lZ}+nrKgkMcjTd2k1UBD0=x`n|E7~@ zUtXKJ*jywMeY~6=Zf~W2l=Lm^Ouk^_J=^eSo?lkXFObR1AVo+#`wlau=WGxQ<5`P> z;MSWKef~wV_lKL2E^C2r0nI2>1+e#+n{D()EN`a2vnV)s7B@W6lOaf!4>qmq)=;7S zJ@d`&uZVQ588^hH@g+tp+`p5ykETx+ngm1X+ErOw*4ng2gKNLIs@Hzms`ZAlrbff1 zlmtOCTGaMzWlF1Sb1TKlxWoI!%old!;ne!e7=KyAt6W)P*R zK&w|^%YzCnYuhkSdz&s1yqT<_l8ufy{4l=G;Bc|$|hI$?*g#R z>uT4&66yG9LXf=!g$VB@_As?*(Ea?04(s;GiaVKy2c{T1u} zz?KkkxaCLWph!fS$ztzZ{Xm}&P~Rec#R{9H;d??=VgGSi)J^xOIB}IkG3z_a?DU>) zTz@loZ8x!dX=R=O@qD5+&Gn&+!#Vqw1j^Zv8^s%PIXI(s=OpPsC){S3gMol)Mv&pT zz;2;G__eUmtu@@IpX%RZ{MK%;9zt0Btrz=_hJnEtU{W?m%nr>LQ<{8}2CAx33JS!d zytjHYhYmo$6fnL^&cl<^;&OGi5uut*uS;CIY^RZ;D`k(^g4adkFly*-E3A zs;a6JlauH{q6h(9;L~5&3Bc)->a-RF8BFDhSzGItUeDy~dmTbi=)JUxq^P=1$}umm z*_2@zfOn2&A^|U~G~uhSb4mz-%Rb)63KESpa-K+o4Tw2Hfp87KXwAw;d;x|=6`J!@ zKOqPfzC!Agx@H-G%9HcK;pm}`umYysmt{w5y;k&uW4WoNkPgLTQ-3{HJ+S_cH#{kk z52K5$@mUAdF9l6%QZ9p6;kkSI3tT;hNuxty>g*l=|M6Wtyg8FzjpzU%N4Hjn&!_b| z69)`HRy1DrTcEUN&0r(YxuLh*cLUasXM2vv!=Y{T7lQ@7u?S#cE{umo#FG+~R{$U% ztWY~Zu%uVeNfr)*zgyuAVuTYCq{nynQ$TT6Wd`2h&3eYW%q))%!|<@5Wcb`!2S_A9 zSm%&u?EK>)0EUVroHCskP^DPl=0}8_ZxF&}`{D<`u`{>08lO5MV>?^UHf<}wJ(^xvL>(-f$n;qY1Cm+uU}9o{<5*Boz)6Ub zI=r-}2a5dAz>MYN?Sj1YwSKCM4RGz&FCM))ZF2hN$P8XOAf0$tEdz4ZMmVH-a8Pz^ zeB8|HSoQG=zEkUIaT-|oMTPWsvxJYXcaegr!Wc-DvDj8^BFL?eQ&_=+K^<(XLIr{Q zzU)W#-b)bHW$cf!Q-t{aW8hSLDYO)2dDyxEUkMhwT4#spHV72jQiyQvePN|yeoo`N_mid8D}F6|o%hoIGpFQ8abLj8e6u9!yTPB!Um zj45XpvF@+=H1#S%$KEK(T3$zFUkqq{&keyPiNj!_Lo0^ZC|Lb~CTWpiI2#Wqgfod8d@R zGtWp{a}1Aro%uvbVpQOJOCm@mJ?f5=H7iN5e&_aELN$HpdV{cCWtOPM?X`!u2*|pT zR=;xQRwW%j`XY|G;<6uBgv$vWB&TUhf7W>C2sBzr_}VB>PO=Y ztYBs{Gi9dz#*E~!4B@Zz)R>XVROr2C%cGg<058GK`xBm{%~(%`yW$Q zefAVCrxQH|wt36Chys$8r4|>PCKtvtIm+?+2*SS<03%s!a=f}HLJ7!*MNn1UJnbXS zD=45DZh@CjRc+Q`d{$P(#l-;-Sy5HhZ+c%$$={L=Cy2WFZWW5%vc%-n`@Z9tsojCp z_C91UO68~t##nWd`{i2AFtHr6Aq@3^v~2Xjr}b{X7c()k8XSrN#CzPCBt!e5$0SURX^Q~3NbwHo!{>sopTzgAGq3HeSfBkxE-Z{&pzA1{PMU=*+JIjIX_PopRyht+rrMIGh*K)LRjpUEJtfM(<8%tDZWE zRW|;doapBfVLX7tIpgVa_~ygNo0Q<@XA|lY&gmC^$-DiGKB5;hja5;Na2&g4B0O7B zE9U{sFg6)2g1G700k?5r7*zurUxfwU*a34XT(lB-6KmKooUSa6r|Ns_(;Tw{+gjV> z_>t?J*7(Tx4%<}|!aOuLT}4?`j448QbQwP!+S*j(hHG2`zd14I%zPIG#ZjO<*0;qs zNPeazg=7>|m@$*yhODND@~SU{NLEfqm6m14bNQT>7omU5z*;h41-+jAXHw@H=Gp@p zPg#|2A2CyEdvAx~p`k2WF4VyJ2>6!lQAu0d_YO@hd0+YH=t7#Cd4q$46IsnLfV{BF znBZ1yIR2exR$*^{e}8OjY-qm$0TLJ2=xdV>Jto?j-fC79CVdfs*?5eGr=UyES)7V!=lM+wWNHjnzZ(lQhzs1M@(Hfe>aWImido-yfH z@veHYx^A{Tq<8^wng3m>{!^k}?8+EsW+isvd=~67mYC6aEnI2yqrm;a-N4Od&C3dn zEQJPu^~Zj^K)=R>mA%=;9jhLG^R%QfQBGL1P?3XWkUM2djQFcQ#b397`2S$ujHJNA z^4uTcF14<`$-Nq#BISW0*JMt~4Thq&uL*8?!FZoWEw2C|_ zmv1I48!=2tj1b#{ChbX zSm{K$d2v5PM-r;R#z3*rlR4fZu-Rw&lh)&F?ogNcWFZf^E336{!sMa;nDm*OK&+8B zJ%UXT5RZVV&il>_YxX}~idy&_tRQ*TGoI^la|g%&P^@vTc@&UEU9VNjd3E#^=NKg( z2o-@N;P2mWpy2;hZ~Zne%>h3z)%Le1?RAsGVK5Rt3kysC2(hy#k5;Z+ia)uOQr!OV z@Y1&a_Hde#2l4Oq+h;`*s>gL#`a^^tm7QG?PMd&xBtHfY#HZuWI22^gWy>_Tjm=OO z)+=A_+yFgWX=7{ub(NU}8I&$AyGmy_GN;w$H3d{9q4i|Y$qwyK=&N3W6uxKILbkSwkd0mK=>e&?soCLpdU0W5h@H#912jCo;vFnoR*xi*Xnuc0`R0%C-CtnKT4M?J zwXql#>O8c2`fOW>!10`DS|8sAGS1fvawZwl%*bjAyrupFCa1a zG>?a{ABwo4<$)3>;7;0Gs;F8Mm3V4stAsz0AivQw?MU^wa3fsa%6sV`)UFjvWRVRY z2p4tloOGQk#7*#hna5rSHR51S*gCW+kvvM|bZ)Vg2qO}lBf8madlUjgNckh3$_aoZC=(6SIGXglCl84s<^S(I&-)GY<4 z$eLPO9yM5_!+PzG=TTt|5TJr>){i~7gS!t43uC^Ll9Mw605{+Y0N3NaXxRrYfcHsE zxX6;x6X)}$tSHX4I%u%qcbpd!$_-DCcl{$H5z^uLvl_}}Vfd2xbv(f&bh_rPX~3j_&dzrfd91Zp4d%lb3La7G|GEmVe}i=N~4Xu~^fm zES)==_@Ejk8W2f|lO^CN^ez3oFUzXTZi&;JZXQWXnNs8lU1=lmkVvJyf&k{Cv(-sM zp+^AN-5-W7x)%1^uN_pz{$4jR1Ab@J7mE_-XZY^pZA|o+tvil)KMk2ymE-DBmXie|kl(djHT4o8MmV1^N<%kPjrB9gjnDlJ2-0JXbT~rPfGp#vioKHf9-|o? zOzTJiv*wmWS9qy@834v9(mseF@15Hb$tEXq9~eyk6DO&0?Quh%OO<)X$7kUksz%4I zB`E7OqK)u`(BMkW9H`)3`H4Y`!h3g6)qK4c@=UWm6MI^Kfz8RYz%j9`Ys&i$m^;Ah z;Bvr&2@~=0`c<=8(U{K?u_r4_%W$O57eXr`y7#2d%sfLv2r%maFjhVfGh-xxe!y4w zEtc3W;^VUGxtxyEsvlH@2pTLhoJd5ku$3~JV(ABXv3%&egIEnW`OCH|s%wQEs{O>Ug2?5_@tudm=t4+0VQz)3$p zOlf)jNKm}2)fZvKl~j3lnLjNW*-h=zW^E^7B}k4igQF0Jgv?{kYXh_3^(i%O!0ZMS z4N6^AT~&98xUR$`qAE-!CP^jcwMro^rw9~)Q$e!%)d_}7R*&yjd35k1z7RwdGrifS ztt{mtqA~l6{|-oEKDdu}U0+T1(6iu*GPIb&QN&=t&lvPn_W0f3IO3eN%rAd_>bTx6 zbwbFRf?`6u{6g0=aGw8ZJh1NTfhbl}R46HUIB2vYgA56895t34+XU}G_p25z8(_?u zIE10w`i-4xaENE)ZtCB2@PVrk148Wjq2p_tQ-ZdOCfwKE81f)62qmZQMf;({_|%j* zpqapn3N$g}b92Gd`#t*?m!H~uWKgJsy+^hUhLYL7EYwHkrGE#pJ}dBAU?X9DTH+W1 z$rwbH&Y2tG%mgIAlG4(9QV^gF6cH(V;|=t{<~BHDQD)=0fQSNu8}Rb?E?QpIF1Z}@ z(bCdp)uN-Ssv-t-v9hsM*ltRzm1tmRD?nBb01)nR^@D`j@UYZldrdP0C^e1#)$ z&Pr&fL(qB#m^DUh`X7@fJ-j-&^EHaZ-I(jbl3lXka|g)=8N1sW9ug=6Y-Mm2vMgR zTY-qfCGH$pK~l{|FSIZ>{xX2lS#TY(xk&PvZ0LKMa|#dG5wAZ@hFlj~=*Pc=rccfo zacpaWr3u%+cd|ahqqtvZ)LnB#Ej8W*4csLj7Hp`x&-^syHieR{IltD8SJTQj<5Y+$tUYBX5ilSps7#wJLHF@QWpFEddQSDf zKG>v~ixvaaXJ^1@)o@{Q43_xK*oDuK@w$n?9bU-mcfn1(Xb8X-0&Lrvm6g#x@Tisc z`)UryOLD5J*d-+;d~qj00Y!m^Q0{Q3;c&Fj--Dw|7zg?F>sMxV^|y%#M@~Z%lbDzo z5jQu!%oiTdpU_5iZxf)+$ADliE21TH|~6X2!=R35-Tkf^5;ugb5Z z+;e565j>R4nHX&p7cs4NwyxXKSF2rtg6bwEFK^uGi%3=pbszw3U2OqrZzqEE340sl zr#cBkl?mJ#9o;_k@ji{oYo%#-*g7im$66vly_42)L|c*zklE^L4$|-@LFekX9!Q$o z>5y<)*FYC1Mapnj^BbiWYoUzpn!~*IOW}!3OJ5RUmi`oMm(9UCSbLCUhL_6m12?k| zpFx0TPP%$-yx+j3_H3kb@f&QwC-pZ%^hD<0F8SL$|C8v%<)m_zNx*#mG+$(uce#XP z3e12T!`HP|&Ri%*kDGWKn=|VS#EkLu^eZ=gjN5I*L@Q@jEwVEL<2$HFTHe+f0V@9-9J6qBP9gIVlH=JS_iE;LUCVy_mFI)+wXas!m;mwFQ;A z=$iyXAe#Q5728|F!LUm3afGU$U2shPAN;|&kuM1WS81o!<2B+%n2(FOBMac{LHUir zQ1^-c6a8yjTiYz}OCXMMapBpYF53p1w2|hx^dmRdUylh_mBOJx>-mo0`?~E-!UXhJ zBD9d12hOwebAWNlj8w33aF7kWhx2)x+X?Kk{lD>NUY7um2@oeIcmO%L(%~K1Tb=gV ziM5XXS5&ePkWs4LN3TQs&OvQCU$!M&ftIsHp`0ODUG=Om z{N@^MWt!tU8C5?;>e~wdCoq4bxu<(Xldk7Tj3HE`rx-06l-f1cdi)i+My-Ta-|WQQ zP)kl~bA%Rc#BY|rn*J{1)Y%Ru>N9y4GFg7Pzoyn4p<`W1O4iuvqgu1(Km}v!`;9{o zEAW-EH21M%`t&eA6hrPnMqUl0?P0l!b3L}di+`%3{Y(5OCMr~)$%z!m&SUp zYYvL1rL2@VCH-&Gl3zmmUMQ)PZ@kk_BKt(hV*>fcrKcva0A7MyV&Gy%f=m8kBw1lk z{rvQ}tP50iMlgoSq+deD9}Fq+zZhFs z81#aHp8<{9eC=0*=~C@)4i4d(H8Zp5?Yn0&ad>ozwROdD^T)TIb<2z)h~c-SQW!u$ zBAfKyNF^)8&1ch~1x8TQ;a(e!0GSjgjVBCyfa(SsmpmMBCyb@%x@(GDGTV+;?)p@f{cx zq@aPmSR?($S`ra5yZQ5>Q`8Dyiu!rpV0Pnqi!t^)cW@j0?C5Kj8MY>c%o7}ZlBtLQ%Abt+5vV?YD*Tb>LfkIe46{* zoExwL6%-%oonOL%9FiXmJs|@`fD6%YdVz%vW;Inrta>+CKSEyncxNJ_x^E-PxvUI* zRb0ZrJh5M2D$h96d_(aRpey`JEX$j)|Ff8Mc&)z7aMfEpvDmlYO0@tn1D&1paCcb& zF1OmRi@{adKH`p4^Yh6C5x#+mp$I5EoClG~$Ta++ir%YGFux84$pujK(-pF0J#QX8SZUg z6z|>(p@EW1%ev#mv&jngTV5JuL9#dQ`uT@+@y@UgBTsE&MI;bfW;okypze z0?y6>^7foOJfO$=?tP_5?YmrdWBcp`1bdhc>seUHH{c&K`9;shj6IK$nuM{-UkC&J z1@LX6#bX!ZFMi?r^E;iEN)Dvss|OwL>Ec|GB50`A^FU386?*p(WHs~*47Ut@ znO$lJ@uJ4dUbUw1FR$hQmN$l}-*^8RY%+5rxiCsDwqFT=A8dsq1|k z=Tj5j`9To18$Ba{wGf@?`zZ%e$X46ikLP8p{LJKt7XId0o%Qz-uRAm$`Uz`CsD~jP zO&&cFydsg(tMaB6)0AxepYujlJ zY;-lx1BjzZWO4$cBOrs37kK#A`fzAv_k3hazH-k8`*i|b40dBuR5qYvSJu^CR<;2) z{b!}MQ;W_UkNeYl+Us>8OG}1masc1>^F*_RpvoZ40#y#3}r!_=Z{^h_Tve^PK z!F`BA%W>&jC=5bo0qsQ1cPA@@cTbNy5DQ1Pm7wts^dM^9n*}vdCB3WG*Zew~Y{2sQ4-OWZVvf<|fR!=93zuNPM0t48KX(JcWQ8%o-(cR0ok1D(>=+s@|$Y zuofCwmLJI~r#cr+RDIMtqYS#nqdyfZm^wx`e`jgaXiAq)pnK%XJpQ`)gz8XJc-M&G zKU9)`H}IB)XmtU*+=)L?4)-hE0aup-L{ch#>E?+a7;@Ph`4#e8({2S?kb;9r2Q>Z= zORZoEKy;3y)?HWkkh{ql)`oUvQ0SuF{yGFoaKnw0NQKA39v77p&a;6ANSFzC)bHsZ z>J7I7c8l}Cxbl6pXMFzr3!%*X{6L`X2rVjY3YpioRFT*A&%w2SQ_Q}(_Vst z{QMpD*C+wbcZYQihqd!gJ3j&>6^K2`c7Y!^zwb?u==W-*L1UI@7Ng2!WD77-hTygZ z66elUCU25V>ff2KJ#t7#EKg-q2W^)Eke7=qsX#d|IzFC#FaGH_k} z0x`6ErtmQEcGZsVXOZF=(|%ofJTd^+rg)n!8Ir3`DFsw1k9rjpVJIts7B4YKjV}8# z6%F;neVyt7T4a_$^p#%?xiANG4mOu5ja^UOnw{~yfN^&9<3E-Ctp@y%F}Yhx*``Ri#@*0TVCdoQpb z2jxWbvnClsRU`ZZK>Umu2ODXWG_B(j_N+lCu&n>Q5JASrM-5MY-uCQ5ahla>&;3;OYX4bQS}$s_Ju;4xinzLCk|LMF9=3Z51rm5b1b$ZK9#go zMFaf}GW6XU@REYw(3$G9XJni{NS4qHGzi_I86eq}RKdkmq?GhWpuKjFdySlsqWqA1$4BVDim~Z~aRs zISsha6c|12j6e5ROJtmPz8`wJM_?m#VUYfh@Mv&+XoUMzhqqSq@Y0)dk4maV*dr_R z0RdSXT}Sm);EAEsksbMg`LctXO`!1iJ1OY4hYS|=%KXTQZv>Q8P%%=$@(2immPiXu z_zO173$}2n@8x9R40~|kz$DWD!W9k_*Uw+MyQ7n%E6eX)6Az+$>cwJ2Ksk8_CA`Xn zTA7Xk(?p)XU~Ic1AV4}3_389o`|;H}FrHKkH`}a>@9pgYSEV3HJ7Be*t(;Cbn+Z2V zR_-D;Hm<~n&nZZ}fB%RmL3xm%0j$M#FdSekj}ONl=PN#_l^##-pausExbeJSDraw% z;01MSt(J#jPNT9qVQDE|~Ssx3`YsZ=`cmo!XSK*nK2zB3#sd&aN*SP*B}74`@v_YUp!=FR#jjvtav_(7;gfQzr0WdgwBGJctfT8i+CBVR`_W%W zz~FxO(R|JGWw8I7PkFP7t&OoOQp(o%CNM|Z7kt7tX&J{|H;-y#Bf41jIHM%d0*sg$ zERp~#x9?K3z986VmW)h!MG=D*Z2NY|(;P|Y7phk#rRmO@Mb&i4n-jPi+Aq{u?_#hc zvrW!`kJs(va^Ili5h;jas)!I%Rf0~I%g|#d{i|fEkj#ZXsxNvPAc*#B(7}2sN%{Kh zXH`Mrq2WXAcUib7k4G1R;}Y8GVj#koGH8o8bEkY1D3nimj^)?r_&ri=Yo`8L? z(06~sXr})0ezz{Zfh`6KKL}Z%>1!p1sYrl z%(%!lO=`U9Z(&KeMLJEfKyVV3A}>wY@#9}2fcu*ZnR6_XL7{rU(n+tby@=%PzN#h9 zlJCzwuk@3|F8QUs4qM34-l5Cu=XR1(>{wZtG)lG$ghI3+qnU9N6<$I{faR#8w z{`vD~z|XTc3IeO9M-TwQ*bp&eiBVwj-(nIxrqByN3%=o-E1bQUj2!=@7)qPlg;pLV8wKMRxhJ1M9{sZ`z{YSeI|rI>y(KLz)EFYzp=uT#K# z@c8Nd3KST&E`F;aOA;uUdQ7JdmB&##ZU8}sLywWdcNP0rb*(3o>A>jh!Z^Pe;4zNA2gUNxjw8IX0Q!6J*oeY-em&4lu08DDVd%WhsC7kQFYWI>}r^ znfl%c30T2`3XU{O)PV2B1;paASwcT6c!-~_`xZQ&9$n0fO0$(Uz>F;av52-93@lZ3d`vJ=JL)3H!h-|1lZ)WRZnrmq~R(b)`kSyo%xW@_wRz5xYarx7T>& z2WO=(nCh0c)WHK0P2sw&;rB-`G4}NhGFH87?k4j}ED*wofWH#`_be*eh*Ck+%8GIe zmc>%2gSBjWuv0xAZ`NC%0RH@V-6wF?4uh(wsECG1t){Aa+H&j`k(c3)FQxN>VjlwWo6*vdgJHk7a+RpL2}zx+UJcT z$opAVRrLbJ(}uF&c*Db^()+3D$`xej_n?Y*z6Z(T0wul*msG{Zmn4ww;ZBX@#U?&% z;k*5UmMa0~Qiyjy8bxiu9z9HKd^YPsbpKFD(7=Mgdc`!=y}%%L%L}^P<;A zIZESFh3DIzsh==t@YtpYp>6aXS0Ny=MY@{rzjY=eT0xkG%v3Z52{PTTv6GSc0KVtW zVCgmkK`Qzh0F)rVvFaM63jG2u?QH1o+FEvZ5XQM;%?T*P;6lT^oE#<>2STF*rS~3> zu3IA+#P%se#v)i^ppd~rvRMz~7@L}6*Q;q0XxL?c+};oQC5xAipvy#mp77D}EX9O< zj9=1EJ(?WQ6F|)SM)}IWLKw|g&W8N+=#H^WWXA%Ww)tiEI+b#C*YA_ zPhf!SGE27 z^3urYguF`+IuQXzd1D9Za*k|aY1HrLKa z1hx1|?qdVW>bb3oF2aW|*1}QooI8|!QZlmLQjpj<;w4yM zbNWlki18LdvVZ+g3BYY7E8fo1|0;zoc`SuRJb>Lcb%~~Fg$wx4ViGQoD)9}v{SdKd z@Tsn@&hD^g`h%{ng1!B7d@MlRV1;%n>_C8)WVA2+004TriU(k=uF&0?>SGg%i{FN%bJ5 z1S7a2EEX_#;Mjh)1T8u)Klgn=7rAnEC&Am49%sHO@o{K-YG6zMJu)AYmF?|ye|E-c z8R`H6MPfhfS1eNS*8$qIW=-h4rq(CizMRoI@-Wa#M?92{k7TImP z6#+^q0-HuzC4b-3qu3Ais#A)BsYp<{`lE{Jk#7kbEQd<@|AHCxLt13kxd&IXzXXO~5g8Nau<(0z>ru>&@K!d_i%sAvlejZ}*Boydq#c6Zu@&pLJ+5 z2@FQVsa!cZqAp+ae*QcK4VZr2{0&Gln~Q-3Jsb=?3PeN9c`Qdt%Xu>{+XLed?JaPy zuYjfAT#pbi26PwbmxX_f*4Tk`!Vu}IhQnZIE!Q){(5`wt0mbdLczA(LFvmj_F5et4 zOq^0Kxw|_E6Se5ivfy8<8-drN5X=UJZ}rf>D!0l??M%_cyowl8hP)dZ7Mz#+nlCSP z?!7p-^U9Go-zm-(*0ej0Ov00*#Ve`CIb~df7+6wy1qJAKtwb+p;nzPJOM~l*+mF6; znoQO6^@{lSAmqu8y9>U26sgQ5g3RIi4Hbux{>@(8%_~`yFz#I~C=cj7Tj>`U;{ zH3vuqfNlA?49Jm+`PA&h{88794Xmt&0^71>-FegU1B!b5f9uJDlId`xK}AJnH?8f+ zY_rylP83mC2pkd>pkscv**>d7Kn~LG!2zLtjRqP?zrNw=-!G;72DAyO@4-;W^K#dE zFn50AiSGn)9<>(5iKA#z+RSX%QyW_Xy03H4!$X!*S>Z}X*Y%NU6^u;cB$Ula?q5fB z^-@m2KHcsUFnQ`=H{=?ImsAR{#6hy)Lp6Vkw4cr9Ks1r$7W%zJ6z^qMqXUPeMNfzKCeGF+(YS zdp)mN7>Uu?#69v+JbToXHCY~n#Djz38<7Z%6lHGmAatv=Q@R90!aB%Q-khm0aNQsy z{!v#4yjjcbasX`Z@PP-ZIH*=G^Ycz1Hr5Fw=)A_j6h>&h&}@r4z79V&-9Kf}Z5^yI z=zISC_3w|Zo!|p_#Ke6zsccf;Mc?^+eUMtZx_xk+*F-&SADZ8lrf3iKnxEU>{|@DG zH)H0$I+C$@CR)2IYV#I$adGiEZualRMalQWj|AhaBAaIfNx$t1O)OhQ*-c^s9sf#r zjE}_ypZO5CMmRQKka*mCWNZ^Z?Q(t;XDLe7W*|a!%$<7IvK>~(bV`*$kq;|<{=#Vw z+4UrSlD_S{oX?2llbk|*P{B5Qz1-k>=?lNCre?%Uv_PkgIr@B&KxBr|*ITzgI^1z{ zX*&C?%vtfn#Ip;)^b}8*qnZA;yXmX5`L?IOjjEP8v7F&u6BDe;%HzBjf5#EtGWn8V zFyqjcV8ig!P)LLmu0F?9gV2YX8@)_bh4BOMLVv2=49U>L#4G5FdW$jIZCs`IKfRcwMj<9#se5dbxaN3T zV{m^`$k-em$uRyxN>GZB-^n@|i&VB`mwjZceWe}2Hc>SLhbHNC#M^xSdh=a5-U&3@ zS~>sdWKPyWV@IQW$I0F#(r3va^xd6|O*WJMsDKZJ?4IU?j1w?|(mT6TND#18qo(oM z*^cVd6IY!Wg%D}$QR#>2s`j7ONH{M+nvR-a3-$g8cHpC-9 z)h#xM30x0dor(~rZ#>-(q4Pg&R%z92dqlVxzfGP)*ub z=?*G_ctPkamoEea!i_pRtwJ|nP)_*@(k5Ic5r*ce>eYInp&-BedQkgXa>CcEoRNJT zLG`aFX>X%+_aT~ruy4K`60W8N5`=pExBv7HZydpjqq`YY(_cqZ|?4Z zkd+!I@As_ulOw zwbkk6PM0^$UIbScm;;3HR`y=kA$fV%t52uox&q7ciO3Oj zHz6P%*8}^FX3+qx*txE;1;OJ!Ex1m0qh3_7hkqwV!K6z<=coC<4}|>9aA&`x_`woH z4s?~iEZsP5%|1g}Ry~@NtKq;aM|bOcFBq;Wq8qfq8VXhpAg3-4RM>T^`4?Jw9KzZj z1WNWgp7^Dp?kY4Cq3i4)=+x-2**7g?!+-T{|Dry0bx_@C=P-{4GDaNPoT)G&RuEnh zkfC!21?N7(66FWx8w=x}7Fs=)*8J=jR(jW#gbx>%r7NU+ z%M`o2Z)l$0*~S-zuy#0RoV?^fn%Q!#S}fm4{GOif2eP1T6eG`>#smW;Hc%jm1-1|) z{hZ(2m8M<|0fsk$xD$vU94gjYYM**9J8wj2pU3g>N}-bVZg(#n9h=HOE<>wV>^~2& z-`;!jaYALNe++6zRc9>j+WOeUQ8@)&o-Pl+SVv~RfEKK8^iwoY@`n_OuwlTS-mdhM z@0a_B83#qZe1b%_@+1LShBUYSl@NkR9p|BN%$TQV8eSLFZ{;|k*JoqmrxfIbE4GuT zU({z^CzyZcIuLf{C8p7&$|z(3lFJ7v&26s1eAE_#xpp|&Mr%A;9d$okFYyJ^#r^4- ztmj*4GPmm}+I(L2VR{qo)<{qkQq3)7J2Sxxo=>BaLOwfg=qJY}Wpv6XjGHlJzK z;Pm9`C3~i7O{7~Oa=C^ME zULhKl-`#}`NIp$?aZlcxml(a1=n_0x8vc#||G@CBy*n6K6IY%H8vf~D0^OAEvbJ#0ajdQdYI}!|5k^z zXuP!s9SwA#lnLV2rX5j`nUI773vs$8){h^YgH! zNAGt*4@kRrrol=5@Wtb*zkiU1_I8#5gbmg0=x_g8Z@8rSHZfW+8(z@XC>J`LZCgHO z(4&ArzRd?nsKN!>PKN%Msty@Akk~#r*!BhJz51*Ah3dy21yb4R-j`Ox5YqOVN)@<` zd2B@sBg#UH?+@MQ!Us(G>xTwTYk3AiDnLh2~mu zEK*wOI|!(_BZ?`36A*x6V^7)G$P<`QeL6Y#dM0_&X(v6My@9{O=l2DDn2WEiHErd- zoA-3k*Sj`#PoZ8hShCgYF4CbjiOlQ8&J2ac^8KXQIXalkh$u+7SHG{2c5)9p$yxe` zbXvjDT5_djika9HhwQ*Rc<*)K(vOO{N9Ql!{;<(O1Aeb=9((1EDR0N!?>5HgM$p05 zUJAMm?3S(q3IOB}N=RJpf$4ltCmq%Nrn#iN>e!?rdUqpu~u#a0Eu7t8hN0bZM z6%s?CmgAM8^f$(YjHf5Dy^g%L2OoyM=GzmScS8=H&fQ{ItB0S%#zozcM2kAHHBbFdSH*$HxRYY^ zIaBQfm@8)o&qgZ0HDJkgjJ=Vw+}}Ksz+4dgxw*?%$28{J`S3(g&R0j~ z4=+k)0zF@{FP#oA!>ByFgs}HAfUxU(aI}hG*6Efw|30tK@sZ=WuT7rsXJuJ}`3CQ- zc16g<-8l|}|Blpfp#O;a>=n$Qpb}GWWK%ze->wM!{cNKaLsq56GGgF-PFL1AYc3tl z^&sjW3`}kBWRq~CYii7rNYtKBNfHAvVTvHol}L5zP~pD^nK(378RWAaRmzZRjW%D9 z+TH2#u=YlKm~I=n?cv$?ab88Vjg8x=j*>=k4BumW?sZ%6$HwvW{4N{}H-}kcPN~S6 zau6Jrl!dIF9($ORF8Y5zaG(YQvUR7`uE0zqPfpb(Xpn6tUO)}C5~ge$E%9e1OAY## zd>oQ>1b1epgt#Np_0zl;0*#ZVsM?hW>i$`o9vmno%#y$e9i8B%K8)jUCkd^4-Vl9i zhb2SKf$s;;#B;!<>FwZ>-X1b7>b&I0D2?4vE}q_ax3}7engZ(7K`*+vK0m-ao#7>2 zHS{|;V)7p0mTGs`8ehVca>p<>%qaI%T8!i`+Mtl26||MlyfXRvB0GO=YdFwYpW``n6(XJ)c5W+RB4pfJZoVw&Zqm65r#}2EU0T zrBsu5|MwYmt_aVVbG6b$)>q7WR1UasbsSF*2Zz_n$rYDwQReGk+NZvGh{i7Yjm^ z&Etx44`N7jG4ESx(@t(D#kZQYkHp>B-BEqmU2_XDzK5;IV zqmJE@oEYE{5n0OC6^Wa{ypxEc%wqmf~<_FLFN zmC+$mizne>C|PoH>VDJY?NLjIKRa;y=_+dB@Us-IWNyfK%vdSUTwk;Q!9e5_+n&tO`gy=u-{LNY;U z_eWuNoEYx*D$dH!TTILh3#qa7hV`X=ke4j!7JnImPVISEJT?iYbd zyTDlU1lL|$-L|+txB4%ojoX#zeWT7q(A;iFyQR9klNahL&_p1VzpVu}AmJ;k6=-fx z=SiPn=+nF#2iBUQ?*r*bsY14ZVDCs3hv;P+XyI%)Nr1ZG5Q8p6-d385HXH-(bZNzp zj_euSN=Tw(IN9m7k491qh03G?XKCB84?WoFa{QOYo|N4LOR6f;GY_@b3}$P+*D!nyd>A>+^S~?1}Mym@yYV7%CnjG4xsEAoE@)fv}FTbENcM&~!6W z*Ogc~0S$~dT3CPr*d}mgP_G`C;&urcIlv32Yt#t#^T!Wm7y%zZwu)o9d3K*yB5V(6 zI2JuM-v1RRkok_3i|_a%+K9RbNmOkAn%9Hs%hdJr(J)EfOz+~K5eQNqSw4ns0 zNSz)JEof!^sLTUy4-ld_gvRGzc(A7_z*8}dpB*-8@1UK0^hDhFcbYLUIeHw=<8hGw zp z7Jv{HKyz2b)}vvo^_-k&auajM-J|R*;C((<{k+l+zYGlj*(E7TcyG6>8p~M$upL@@ zCIg#*Hm@s%iPPRDA^NgEjE4W!77>-0r3;?BfTZopwssp~c@xpmT(rQ2l)OP1v=}ky zAMZ0sM4AOElNG9*pGl*ByObSRmTWDxHVGNH8<}N23*BMm9-exE708yq0TCxO-(lluH2>v9 z6JHNYQIXoiEoenx*QkZV05Po1*=TH{9G7Gq=2Qfs>p$5OEQ1H zVEysrz2X|9?RCU3R&tg@^EVOMbvu9pNwF96^2Q48|6^QD zFcv*xw7ri`_2VKFzN9`je1GYv(1!h%D6^!WB`Ej(-_7|n0j!F2p@k^>o9>C{N!#km z8T23itf4!~QkLwX%>+ZN~!gyr33_s%(b>DZWUCT!QD4^mJ|$(1qp*v!FKtfgrTEr3J#bB7e$et=K- zxQ#G(wXvdjehq_Yb3wn_<^wd95$T^=5k*hR*w(Icf4U*UNe`otrR53#B=wKksZ@f{ zg6#RYWSOnkTB81RMK)7PFC5&e`GN7-M08gdb;36AEj*9wZx5)|kchYYs{;6rZ&)#L}{vi)VaLGYnRuWYJ+S;nG8 z!Fsx(9JFm1AWX=79KxUK3m<*XwWqbPh>F1h!Fxy8p6KSmeP9I2__5!EW ztZz8s?KZ-$*AiOaHL5YSfMWg|*|ug9zlH!#p7(3FG+*hety#7j-BP`FCx-{tw|)k3%ZLia%*s15z|gFxdN)6JFdNCECSKcC{b^TiLHRG^RS zX@U$37D@sUI})~85B(o0KfLl0vD$m-V0UlN*unx{_0Mg0cg#mS>+pRs&$?(RSR$Xd zV$D?#&)bMq4afi!&wZo{N?6NPqCx^_(7*&8MUX5Ka8*{DM9$E)ed>EgZ1Z^>xnVE0 zlz#3ht@<7aN9-{>*@`?W7fA`cEq2~W9*g0;h_tNnN(2z~`~BsEJ>LsEYWqb=GjFmF z{udvr>-)xWPq&?#CJ7HOaBx-P)P0VSulwb)BR$*pP{k)`>6>Lm5tZzjBgNW3yj%VL zg*fM5ERmHGyY!JTY_+xH$nANLlTPb}x`Of2Juau43)Szs^?2Rca+1w}ACtr#uO;Y}&X^Go+ObMe*S|Fvj0hGmU1(Q9JpZM$u^1JL} zLgL7F0ExIXVz=P(8T#{m^-CrozsClc)Dy$QoD_8qK|zIDoxU$5KjxXmF;(g5HP{y# z@DmC8O%n85-Pi>ylkv+nks)6Q$jA(vs`po$IxIWXKZ5nDDNCz0r-I45ZhZeS-l4;l zCygEV2IYr? zMBF71tDeD1NuY=$Vp@*5VBR{uKr@Smu3a5BjayI=ClB}b&&b^%gf8e=hxdN7FsGuO zxYjP(aV|oOd#JCV{;7|B;AK@U+AMlEmtuX^uJoXzx379dZvB*{KoEfqTWw@nbJ&!s zcw@~n>h=zMY!G#97Zv#0U$@a@S~sU%ayAJE{44Px3VH!dSjOLm3Kb{g7!q1AK)A2# zG5YUPOt?5ggH~VJ<27D=2!u?yR+Xbpv@qM2r&r{;{T&_S zUyD^=KLwAQf;AaKcRXM7IaKdsF=3&|o=?LW@S>uDRu-b7amk75<$Ws8n<^#*@Szfc z68Qlee7MMPJ}Zz0yAVvi*t*|5sz{nl-CkSVgBEopqJC{ws_6AlZk(T*l}pKs0VQV$ zFqSX$T`OkL{lJ|(Wr4_Ub%}tdn*XP}%BCyb)OtsQr>7Y@GR7g4NiO{7&S!Q;x$yhh zB{v~jT4$Y9aSp8R3z&8GDDrqI%58~n0FIbzkpF|Lko(sx?Fq(KH|HK0#V*S{NgkhQ zMk&E^a(akDCG>nLZ6L_0RJ;4-rM>lT!v6+T-Rd2T;bKU~qAxd#t3qRhb_HJWnjxZk zOH=C|uwI@JdI5mP+Q?CMBqNIkRoy3LDWc*dXxV`e7Go4Nfk)VLEX#VaJrgJ+e)}Io z%uS@;jT}>3XlD;L7>snVQ1-SH=zkem#w8#}6JPae+7t3C3E&in5>4yP8^OdSHS2)w zkh<>>xCKw&G!-@Mh`tHNyvoDe_jtttF*0>Rq&c97enr1)y5+tEZ3w@+vHhBlC?Y|| zud^FNk=_^YN9KtLIc-XLN{fjVQaZf)$jh^r$SWggYut!T#*@rK$3{m$)%rR(W)QH>p0uag#BZa6Lt6zBU8|R z7N~KfiTlcI23`2n?p743c~Ymf7`pn4ld~(i5)X6GqguYzRF;kQj%c zp)H@`>pM)OM5QeZwb}wTpRGh~lE})ZQxbS|ivksFj98@E{Z$R!f)Wd69A)=J!SN)g z_4ehtSNAS5?}cQNv);L;IN774?*azd{AM$1W3Tclc_#bo7$Cp}&x7opaX`k7Sn__oJ=KG8drybVB_tV_77qBjXy8JugVR@|(>3=_9~ z*_JPI5%s{?CiBN*Eu+q$ejlg8>|7bs?bD)3JcsVi`{CZ1C!5FtH2_XWUv64~j04(1 zdhq_`W8P+!afVdlmliiP9FMoomepJapFQXSBrm*=5Y5r#sOTV1|}IoM-_5}Vy|X{>zFhAVR>0Xx_87&%VZGuPp% zM0duUpE&FyZF>;ky0S-Rin77dIT}=DwEQJrmg8&Mhm=KNSDb83dgH3Ha~T}JwEXl4 zGwvFTzmB=k07ioG=@P&Tp0p&$QVu-csX1+MdW2#JcFGI|*hqievlyUc++AUpx;Zw+ zmh{z$B*1xZpyA-+s$Qp@4iamtwWpwo*54>9`Hy9Lb1?e?(dKvm5_^Halaav`KQ@;v z{}#Nn(IP(o$RdWwy|Ro6J+A$7?fcRB(|nm7d2ypmVRIPnR~FzD_F=_{i#XkayE7u* zM;_1XP4bT%wd)Apleg1viMSibD$bNN(n+y&iUYxC(vTJn2)2fb8p_ccdU4>J0T47i zzfD}Y-&<}atyV2y%b^wIkhAw8Dpi#bIF>l*^P&m?NgAbZON5I4Ng-#Sd*48M} zn~Pg8)~5ykN2bJD=I!?fAL2&vwicvOi{WF^gT&;koT|OI z?4iq#7tp9nFt;>LD`&JliNx>NAH^sup7ooRlg4yLiQ-4C%IyV#n3^bA#lk&k@N}CU z3N`}m##q0T_=~kqe!V%1{yM-o9Cw&P1gh<~eD)%pVfz{3-uDIN$FqOmDItO}>iQ}j z;Z~UtD1k^>4%-fVJh+oT1*i)s7(2!GTnhE?c`lkDRd3Q`1k^u^<3R_?%ae;~(w0-3 z04ICa!BQa1VA8G+7VqB zF`6DvopHgNhAI;~ieof(E;gsMMx;(GE9bHNGE8nF#%O}s2wNUOj>R645mbf*?b_m@ zTl4GYjclY9B6K=!Z4)XL6R6r9=LEjjPN?*O^(#}9aTR@0i?5-xl87m|r_l6XP|$%IA`QWelA?wc)Il2xwubAsiP<=+ zr_?km>X*>S;Fi2ZvQ-4tOKLxIhLq|P1XaeB#*IqqVB(s1+cIkEM=@c#*)#%Z`P`Nm z;xcYHb$zlflqpxePDXaMon=E$-%1>!>9p?%#z@7**mUCL%^aD{ZYYbew-gph6FD#h zXS)Jb+xz6gK&2O54Xe^D32$gnYkuX+Ui9e6^OaheABOk(@4Tw^f{pG$pIu*_GXfdv zMezG{_{cy5Y?yXbXb!~FuRO)g%>DCR{TWW#| zC4p>cRUW8JZ)yHcO8;aM|H%|d7-iB=nSMrZ(bp3#lL@ZXdQ6;5w@T%r1%M@|9STlC#sG*NVJFPZ5eqwRfM%cG#cCrhF-7g6U zp@~QjDx;`TWDC_noYBAvt~Ov`H#~24u*~K?icE?|^fHAnj}TWGA%BCV6ZTEe8j~G% zD1zJskrJNzSKV?wqtjIxx&A5~qqq?vBR^mO(%S9S_T>1>-o+nO1O59jaohWg0$Hca zi8Zm2#rZuc7+Rq0`4iUQ_P?0(e_Vx&ii}Fs7J2v5DR0EQ%v-hzL$4LWI&C?NqL~Q6 zpiZSYE&h}zMH8YZN!n>~m(CN~qP*2qkLpUq-QQ!_qaI0=BBVYPvsW-~iXVj%8Hc=) z#1Hu1Hb2v9B$~H%)?TZjm;i2!oNqsi!7V0J<#UTX6TQWqB=bdf;L*mJ;|Hq<743Kz zp7u@R^SfIV@Iy3fO>y z^*45HiIS^#jD)KX)@lVpF#}wfVS&aUrLftnq;NTjx})`<%#u#LVl0s-_}=C7*3zp~ znuzF|*a{6_ueHp6_|NB{&45{=%F3ZX4XbAP4F^QzS5&fVz@-7V$Q~&X3r4bRze)o= z^+Z!n~ zY^B(LkIU3>xU|5Ao+I*N@Qe{&E26OpuCOaEzKIx1 z6V5T{XiCCw;H0Li)K$}?tYM{1OK7xszIWh-j{HiUyP(0+FnVAdbpOQ&Tb=C~k;g*#(B1^1b=E36{KN0cGk z_i&uTxRS}xSgHCwALuhzAIIb|-fogy-P2ITT*Pr_S~I>^E@EK^YJG6tOi}kvS#3ON z#rB8t#PEoa__9yCsh^DMGkV@$6}EFJMaqnZx{-m3igf6?I>iw*%5PPkrcFnD)?dTj zL0U+V74q`Ups`mAuLVliu1BiB*P+jME-({3udPGdxf#!t*n0x_vt@8);~=^?y!dT| zWN*N63#^!fL_Hj?4Gt*w!1;c0L`$#uzo;0-#=C;s%9u$rC|KTT0_Qs{navG>&9GPa z{jjseSn)0cob=C}U4_Drmg}j3go$;Gxcb}M3Vn7@hfm?x$z?ek9Q zsh5e~OYaG!1^)bS8sL2%6)XuKo>bUhLem@vb|jddr%{g&*K|cZ1XJtTaq`IgFRA+v z*QH=!9Y5<9K9VIvlW$(BPCvw~?AMZXY^=@O--edAYzShh$pzm1rA|*y)K*b6D1P&g zqOJ3sOBbws*Js0d92BXi4YWt*A`aJ-V#9P$e1;3`bL-g}%aj3k+6OdtoQZu$HsTo{ z8Gm}m+HoYx@zlp;ZrV5|De(3p&pQEU<*|~)`-YX{E-h{?dW?nm5oSbr`!2ZCC!r31 z8{92Fiw8NoTTscZ;(p;oZL%Rl`&cW+16zl}8>u7J%Ht0WV(5)CW|D%6{~AiGRuqy{ z3ZyG9-J|~PuR`sYET%?8I*a5Hb`!)f?3{|C-=B&0Vu|wQm>_2vD&fSrRz!d@D(<-z z!DG95xXrCZe%-dUX*_$q{=Hx1apOvNN8Xd07g-Zltvv7bG^KDJz%5#c-no{DoWGGT zl{vjQ>Rid)INPN&Fn6OIUU{5Am}~UjxXsJ%rDd}$yv%% zuV;1IN&I8!QhuDd;prms#_P#?qlAU)tG%21ZOaV5Zm}B@Z##z6+ERk#zET_faz}i! z74CPhHkO^I?;}oQ)M_SrK?&*fNuKhZtveE2kr)r=#ad`YvpL;w{CJxI9g362kV8uK za_;Fgo>Ss@h`nr!M>sRP1TRkRxov}gH<9iCx^49e_yy+!a z9f>QUQ}>KMtp3ce1i^lBe2dPI()UaDWiir7gf!4!6m`Wde$&xklB3IgF*BhQrH@%Q zj2h&2RlX^f^SZ!@gsO3u2}6SM5A05ppLviYBR(TO>yOjr zOdtoi{Yz+}h(7T6?e2)a_xs_d_g0-U3cZ;wF3EczR)$jE<-I6?FW+jk$~je z*x|=JtUvgWh^wO4pM#fr`yRa6sPO!Tka&Zm(<^p5bM1tGeQ9FpG!qn25%NuF?BqB5 z6ZFqqiNxqY0+~!7?xlm(t4#W{faCs9@VP;aBn^VL$36eA`{! zQGkUb7R`Yu;5*XooLM+~T<{ki0Q1Jk>W!L+(b0SL-YP3GXTUn@=e=Cvv!0@zv;-m? zqa{qZV>Y+-Zm`DA<`UMerqUja&7-9pA}5#$T|O!UE^oGd!_VO1Hth>a)Q|`vZ1Q$p zbh{(;mrd>heYqAlbmRUkf{)jI(}SH}*OyGJ0Rkr>c{;WmG|K;oq-MNb zSTO`=mtO;CTBp=5XNGl9gb~DuYQ)v|eqD!pwRbUGXqzZ3qA!MTH>OQD>TCU{)Vnv- zP2bRv(})iRCI;t?%^DcoIhAK42BK1PXJolm+>c^P!1eSl$)m4iX~s>EYNzGoe*T1n zke)Gg(fac6@%gdAf%@&iVjg(n3?ON@ZN?A3_FmIgMCq09Jy`bhZX-&8n6Nf}d#?=6 zj|+touR~Ehfdq4Um3J^@?$Rqu1;McyUhwMqNg$8`klP2SgGH~&(@#QZ|KKAJX-m;! zcXqnl*>DzRJ-%VEQj?4`+WfqE82Un0^v}tk1C|{gnbpGn#XRVM>V+5_E_mJ3V4s4j zBUhp-e}!Krx`z<;0@iC#hy69wE(*tcqIuBn%z8O0%nMI{GAPN&R3&Q!c{x+b>AhD=Yhufzall8wS+{EC`O+n zKcqYb=O_8>Y%4r2K@9BtYyS(#u>=~U3)bWtK49Be5e8TUPmpr6p$49?+MgDO_=snL z8hYtOd=vFL_PIGjG8tChX!y5!r6l`sz)bQF;%Z@dp=?~w;8JL+;<2ZAKZwa++1$_= zH5*(9Cd;D>`R7{+iqUGUvp%oAF>s${QLN+a#E8quhAjnin^@*~jrV*${|ErUlqP|9 zAP&SDPS0#xsA@BuCXpU4ObIa|i7G+4f<|Ifq@Cvvk#00i&%O>O`*ZxXvDrP1x{rqd zQ$kS^`3A7$NlPMZO>y$O;ZFaIle;lNeji7pH%vfJ5kSG=43uk%XgS< zp!WRvY(#Htf>eg*hLS(h!u6e}5TnL+CNg$nSQ>I|jy|A9!mV zR8BI5QtG#-<}?0sqDnT;@KQPOY5_>sW&xTUW@vGqX(XF3E@ueKqeI;%dBH`BKaeWC zb-uw8f5AaGq#526G1R!`==y-L$&VGMI@{v-(!A{t2O~K}>IV?XGB~ylQ*r{xD*Nrt zc8B5MShM~o4zHL%3P3lfJkfB(e~?guIz#{NVZ}8{AfG9vBtB881>zHc`pp4g z{#Uj!H{I~AB+$yBOXqOE|kH<_G4OZF(0?e>a6ecuVH3mN46n;%P!`Q4b5Uqo{+?3Z% ze3O)wy*09v3*QPpqI&!B-Zd)yG?h5T)9lGkZIZxmtMTnl4921PILr5(e~d$kgym5# z7s_UKKt+RO3anU_C5B*f(D5_^-&=soi2d z-{@M}ie}GflHl^@O}admO~JTq8kZSNaJWKO1SPMO1A&BROn!xm{WoX_(RjYVKFpwR zZEEkl5(}7yTA^YwXhgeEx~^!RgTgba(sOax;jkpH^68j?DEJ$b$!}uL2;HD`8cl9s zqHWx-e@EHyJsuj)Q}qyTrwCvWq-V+71^xus@b-i4{o)`uYDF-r=cG|^x}W6#{j z#VSfq+33d|+?fxZ2{2m+pZ#Il@G!_x@R?;SUP}o87f|kURW~m^Ir_Df<98(#ngSh5 z=`niq78c7ShcQ6BYk~;Wg++2`( z4XJfZl1;5d6s&lZOv)TaXVk_wGZbP@>cq5e)8s**#pd@J3LQTDT#@I0Gpzh>;yTBw zU)BW$W;p+Yc{VZ1AQyUmI-PV7h;fzcZ*(e$TNmdBx{69ucKQY3aPyq9*wD439=GA| zBy~dHLg>$u%(+3xPVXcMF-s_eq@-w|S_&9%>rn$Wz=>%-Z@!JE_-r467Sd4uICScX zV{Dq74bd~j9NcvL*cXtP0yCNAEpnu2vmTx?vAWKAeRw1&yHS)+8H_J8sX*=Gn7&KR zPsFs~_h>||Pc37>o7shnLXO{`tvUBd*-?`#>3f$VR7NcVpF|ss6r3L-XE^f8Z*Xgw z6bP1JQ~I(8gUiJGFfRw9xiy@Ll|E^I?ce5H;jSm~x2qVC!h-6XVPQLzO*Dt;K6Baa z4{hs(h&un+zy^f|DU=&5Vb_t@_B~81LKzX*eDdU_#49Ha2DzNfhiN;}D~@qE?_=LZ z61JI`4u_sJ6|u$`0v*|`SQL)Wr8X{jQJcICZxOq!Th>pXy;pk_cV)#^(jNO)NY`La zS|fQEJKc})!2h%j@G=1QO0L3DorVf%4pQG^70%k)fc%O2ar>qolX=;qMX1Hsn1Km3 zlj)a+e&xXy++H7mI?YKf`4s3VfulJA9H>zPudD%dHGs^Tr; zQz4ouPWg1!fX$K|)_E+A@!cFnOc2|ssQo78j0mL%$v1>=-1eFL{bs`e6qFsl@S@Hk z4_F9#PiqFppS)vO)5sI-XMMTU-Q6?LEo_^PA4_&TsGJ{$JG001YQU<+)UMs?`TBlu zzA-r0SCC$D-1!;B5HgByQ%z0NJi!noh;CYS_NgdY@vWd_ybafxX_IbDsBLKP!kT_# z&x^P58A`*~y$tA=r?`%RoW>*al*P?R&VK;r(<>rP4$^Mji%H+FCe0;ucNCf?&XbqH z#|DX$p9O;`U^~df%olmF)xbL1%1oNtTTCxtnN}PZo|GGip=?>%OF8{8N{Yd$Pa%m8 zh@GkTz-{2}=H~i*K=>@R9RpTALlw}lY}`SyH;9q9BGUp|hS5!%aa_GDgU2h28ilJs zUcw|^Kra=V2JyI6LI5ANq<&L%A?_q8O!ay@TGOipLYwSjs~&yGCfP4^UqLTX$#!U} z;!Eov+mu7CvLo~TVx4HhL8p?hv-a+A}{C7F8TFF6~M@E%w;E+mcnjkiKX1FZ+rWETs9`@{9+xwikMILR#J2IgNXg4WP+DD9x;0bwq|bfScy$rdO3cGuKcde!kb}f1i~HPsg2YS~-gdColDZPX?yLN` z{q&BO9xsVNh9C4jJ2NaWIZ?JxljHH+G}B`1C-ZRiCx@-;AB!AocTgQ0xPkgDxYJ_$&ln2O^9Mup{NMsQU)sqNUcBQqhWo@fS>h(U2;XZtE2t5{FNEh}k z@5Ui_6h7aWw8;d;`*rmVm!3-gMJJH$)^)HwLHAxi?e<>1>6n|sJdJxfL228HK@b?@ zQ~wvz+QdB59IF0M4ghRP(|4uZX~nHFdkh{$>){woP~B>Yf3|hcpxbp3^dm@2oskap z2S4#j8j$^`EyG?evlqwM+FzXjdM_5lTjkr3tr zwIofBAY(-JA^H*q+2l&+5{A>ZfX`E!v_Yx)*-c8X*?%2HppNrgeGp%7dpin6E*a34 z?I}ho&d?^+4{ekD;LkFd&^T}x`j@d9+#!W#V8EL`*lp_Ic)Gw(A$phYYRF0LX!d7q z7(dF62GldSMf#QI2&RT4?fsw41Ey68TeKUgKx>#L4tydp1*AAp=SV;W1oLF4DBbk6 z$^Q54vX0C}Ld@Nt0@PA;P7`qR!?Su(0|w@iyn5#NOg3w9z(|T*m_2`!MO+GL1~o6w zQu-Vgw1GS58uh1tsrzAI>vebC4$-l;yvKS*)N2~By3=7?KJ7ojSIO)3$AuUkk|FFy z5!%IMds|Fdh-mb%!Jc?RuA)^o`D&^irVoBp^}jupr!jXlvg2Jzk&@ox`pENpKUwKn zo?-rNiE;esJR-&5wyiA$C?=H^Fy$1~){~_Ll%9&?c(RtZz`mI|qhIV{1BW4C3dkP8 zJG}H{U>-0lKMyI(kiCpf)&7He9JFm~iLtdG#6e)MOQ#nr;JZ=3DX=44)F9ATPOC+qNLj{?eaIPUT4b8a zh9JdvjD?o9oW>socNHa2WK9UlvEnUrj%PkCeJ>B2U*0ykkEagiS-oP&Nz@$Bt}1jh zAM`k8O=D?$<9=ltauYbt7}3rC#2{(auugyxDMp^Mu(P^;)TNk)GD$1&Wl$$9p_ZA- zlyJ---PDH?(x(Zo>Y!ia6Zx0##QkL*A#W3w{G+7bga$ddV0Ia8F@8D4WQZmQiT&lz z6q`tf4GGj|TP!#bFz;pU?bhjAr@0h)mN>sPt`on7E7G&XTfaeDg-KQad|pHeCG$1 z>tf1^+{}G^-iUicK%{5U_U%7*lHhg0Q#vB`fmjlb-x{wP8BGz|c#6H4&?K2JJ8XDp zQ*Npo-#6!AV9+!lT$7^BR{o?3*q3gw%bRDE78lScP<50`dl42aWy#86N*tX>`QbB; zB5NsM#7Xhgocvx>o;&l$n;tN&d9&fCI_gQzP=qx=(EAz@DDG1{{_0LF3{g38Cs&UWHq{CH4hx7 z?|u&J3}}r#|M<{QJ>LeXIns)~E?U+1FI%2`hnL50Qn1N$YVm2Md@hsdZqHsW=T$R0 zh^Xf7Tcl)HH=0B)K0(zmJ74q<;DLr0f%p})#4g*PDZe#tn7uJK#PHV3afRDJhw3an z)R+J^O>=-W~XA(*vnuAGb(C<121eu7Q zzIVy=qZS{0I`7K)x5o^u9u0ufv-wig$C@J|EQjM34rPe=g>OE zzmAp&K~NjzEyFP-=qY#dRdZb+dCT46MX*qcWeSXeoEmhz}k!cv#L!mxNZfRm+Zty@^_)I<=h@5{;p^9$W(Qg%D z6Jn|DR;te7ddX}sH`lple_PV3X*2w()1Cygz?unEtncu7+s5hi&?xSTG8D|zyK{qJVrB#zbAr>{HLxa9C z!7q&#@8GkHI`7Hf6S2@|=N{`6;)^e%yA~r%;Rev|gL*&Z!3JQ}%A#Iz8<5j9pY6S& zNk*Bx*c>P!VvR^Y9el?`{LqNYj$*$+dM}+iEa-EOQaXEm_TS!#{o6Zj?v!{c4wab-HLyAL%^A<$U;bz|qDBPehJY-G zl~&W|NBUfSx>o!$@+UjqYTLsVr^R}FiNqE4o}_U-TWhC^e^}b$6+Xo`tBciEuyUD5 z{OosU+=1Q9>0kJi+I?*Y7^@Wq!^b~It)x_^`9)s{I3Wmpi@q`WFkwO9%?3X_f|Gvi_Qwm?{Ldmq4?14VDkv6Hp@3mGG^PnN7 zTi6A6;sQY!S)P?oZoAxVsy8vtr)KPtH<=H#KYw+IPYYo8oXwW-Is1hkq5kIp903Oa z!{7xKTEPGc!+dw6=MAOV|5B8Q<#uxT@qosfhd&pet7Tl91*OZb(AQs=gF5~+Xkhh& zMsNS{-T-5<71vSd%B4$xR)grE*!fgl+L;9E6_~qmkuO>+rz{?OOeGZIel$pr0`q`x zpZ#wRb)vP)W}3K|6Ee?Xd`$_a&9~y- zzA#sWs^!@Rq0=c*y3T4NgWh%Pe;wKrviAkyMwPJ#=wc0j{xkvC88;91^wZK>$pC@e*i7IKE%pUbt%e~gZ4l6C>G}MWL1hgm9hRr8ytEQZ>M;AitM&= z<&DFpsl3hi*5@4Yadh^Z0E14=+PpK9j^~?Mv~mdY+U5M~!>qgX^dCzEHIZP9kk|mz zmia5B%VxsW4j{}(vyh;+1?1(piIXI1o1uYpa)BK^2!5TmyhSZQLagH(4oKk(ScDHt zqIu21yk$d47*l9=httr&ysHVGdL0kg*zebh* zRK4g$9i4wU$d^qpMRRX#5)nFB8E`+XR9SI>8jiSAAfIHsOO}RYO?$-Tf1=!QWb<)P zm-WcnpTUYv1wEVXN~_D~dOjm3kvi(Nueo}&SH|6m^$e$_1j=xSA=*Ky(q?PB#|#^z zU6D)tg+N1k>vS=GnUh<2B$gAHDV+LuAjjndSm22Npee@GVJLxeKStAvx%KNx%WM0# z@UQf%ZtK;3_MOpaG5VoG*+*q1?-i_IX7`)u{8+WGVjfv`$NGrD-qOg2hF zRw3M&fPCg=hu>Hyoq`c|<;s!cyZ1YtGaWk+3y`9DhTyN3bH>OeSRz=7}j9&+QP+0E<*vA7Rs=xd6S20M(zE+X%LbD_)#3 zE%~ef1&A^tWz(U*h1ga1YW1-V=Etl$FE*)k89|RXt2|w3^+5OX4S!q8&x;f-I=dOM_rK5;oF0oKINoVKMZx zV%ROz$gC3P=d_&mnmX3Y0-y|HhsB!gAB}7K?$uqL(P%ngh3d4(sw;ITaAzs^V)hk$ zdUdMfD8IyIscP|()TS?GV#12Vd3LH=N18Q;%cMA>A`NrTV49VLhaT5sHmM#xb|dW(9B)0aXRh9Z?%BLKR!I0cx!;f36S2n zx~ua(bzwR>ma*4vz_HcACz0B(klqUbH5q^&4gCDf{pwlgU*9MMb%%83&%T%L6KQAz ze;Nuat1_?IGGWP~Wvh(PeYK}Pmswgk^VD7Rr@V7a;uOfWyF9KL`7R9gEeNybducgV z|HK9k>4d@gaijjYu=}yCCX~-1TskAd?=VDd5UhB!yPt354L3XV$aWSj;sJXhR+zm& zz=WAkv2n(weq&UA_%Wikn__*g?dM;kf|4f-H!wi{%`roO;OT0Rz4-ZdSYVC$m zGKwv&J(cD}qv|1cr!+OtP@n}33&}(4g$|xoYd|(%dsZL$DW7w+ky=t;2?CYNFFKqu zF~V)2N>!UaH2%~l8N(Pb?0h;qUiR!Z{P|w!6Ix9*?L@9-l3IYYPphl*{PL6Fp6Jg~ zS|sui^1mrY5Mkch8zpy6Jr4H$6npiaOGaT3=o*9ZBqF|5)c=ceBjqa&u~5jz0p-Z& zAQ@GDNfbZ&yk|!F$0fH_W-{80G6?H`Sh@;^sM>BjARRK&-65dT4KjpCN_Pwm($d{6 z-616*9U|Q!ozmUi&5-x-e)k6`bIy659c!<>mgyIIN}{jNmPTgkxsENy9>%{9PG*zX$_CJ0mlSch`6g^wSps`z2gHh%iAAyLXKp%-d#`g)Qt(J|LAVJWtg-{ zlFZR*e?L7!kpU`OPNK)kH`K-H7L&lQl^3nrvu-QzF-VsO+t<9T+72YjJvK#Zm%b5l z7#g6wqA5M1($#4p6J9Y+XBL_3;geG-VCze!m>O$Mq79XHXT)2nh4sHzr6F#UTg%ZNc(4h+DI;uq{ZtE z)wum)T_bEK^usFC+{IOaEI2Wg&2u5AAQ@c@Y{8PoEYhJS@?e3|U`eGvT28JcCrJ0d z;wr)%5rVvq9G7jOY)PE+>8HYePuau*4zw%rYb{z>Jzg;g3}1?OnRC-S9Bedk0Uw?} zZPKkB26HT`LWIbJ3Qbt?v1_4xUN56XQ&n5TF5*Qc*28l%lyh%CqbSh6tGL6UQ7 zL5~&&64c^Nospo7#rZoIl&*G^!4F9~8rDB6H-l@jQK;%Krpe|bR9BlO%EZ?i#A2(%ZC|iR)IlhFqm4kd!cHH{EYp%b$0M{Bfw@hYI))I^nOxJYik&b5mFm@1E8RmQQ>x6EaBng|g;W+y9PMDM-kp4P{w|ctPTjhbRUU6xh82ZPX(10~ z2XjLC(@!nR>G)2Rq9K8X^|WH#h)}$8&?$Uh`Ff436GBuZCm||v@M`*s2TqI79nXKr zmNxp!S1Uk&@;_)x7$dQMwB8SYr)DFkTh1|Yif5`c4{EmRl&?Zmo0h0G)^0J7}%D?4z*mg1*Y*aM! z8KQx*@TcK)@IKb6Xw;?oVgreFAY9Vh9h!kx*-?H^2rFk#+Um}2|0{X*FQb0HN@ad; zQ;Y!@&_C_rV^pAlvKRj{?-L68B;)0NBeUzW!qZJ?7N=>q4Nrb~u3_0W4T)6Hje zhx0UUB9})eLpMfkQ{X9M^eZ5YxRS1yc)UVH=dAv=u%7gW$D|`>jlBPG2NIH&+(Xu8 z2)nXQL}eftgF#CkL`wrN_I6^^b;xkEJhP-qb{L=1N<0hU0gv;TfhO`JekK8H)-@cmWK zY@MZSIFo*@G@!-N=ag-TpkaGQaQpE~d7&WubSNa)m>}PZG=3JXBC1gFJ5_JbseT;A zEzga?{%FF>&#k4@f*UiC#q<1ky&n7*Jhl>y>v4<;sSUgl9(ciYI{%=ezGL=?VfVKfYvd{B7W8xVzO{A6k zr5n2)YXP--rT?)IxPjrWfiaoXxc1`ZU)c@-=n%!MDBj^ROr>4d+RXWyMHwT92fDI( zV*Yz$@;TDt0QW<5-nU}rO!(b@Va*D%ukPXkBc)K``w3d@Yd09=NM~n03zC236}Efi zI;ny(_UAky(fKD}dtfra8Gnf02&us(gcsEUr^QvTjkci?n2NHr!h)&1H}8*a`M3VJ zXgLgMOE?nJ@I@OY4!Td`V$`g`#nhB6AfueHOqnN9r8}g#gDz`wB#R1`yS|_t!GU}B z9IAP_Cf>|r_|_7O>8`bGw9j2Q=#Wc6HxO%jYjbdg`g_F7PU>&3=Nk?yf;a7iP5-b- ztr>qmQr}5u_1I=-x4JZNA$7i~ac200{B%de>rUsWD;6N-y=6vW+FLtff&P-WBDb|( zxB)%J%fA{==gGJTCI38e4=3Q8l_0Y>hnI}M1IXMV{DtUny0M9LiTfvV(kbaIPCu0I z-7f~J!scf`fx>!LWt0n8inQQF0n+{16@f(gng6_z>)Zb2r54N`nU!8$v9L#rP-i;P zNYIgNls@J>Zg@2jn)1aO!7)YP(&ONY)JX92J*S`({ht$Id=8k)iUZ4u#|~zRcIp2v z2q_R)SbOZry;UKTWOz9(6T^Lcs%XBfx}_2m@Ii*ITZ*7A>$gh9RidbapZTB*yuHurOanOw#IF|HFH%2#%WT*6d-cQ=tF#UP zv!CgSJdSx8gzpHQ3%>pIhuYiyF3I{6)5;rs66m=jF6(+Ax6e_DTkUqcQPDoJ*3o7{ z!bM_8nUi4ueh>n`&bsEw(lwNV?+&M&Kz z`w4WE`bWGlS76g(o`=c|-wqa!CkQ0?(plIX2c0etm&lpApqT%#?9e{}(696!sZDEO z{CkD8(RDnT;>NbX?iCjyG>)(9kIY%zH2Jgw{CH2ikBs%-!W6xfnChO}o``$;1VzB) z4}hW*&slog!D?V0rAThFb)5X?Tw02%LdQ7gMhpE7c(Y7;oUxhZ-LiuJ_bi& zo3Uk;a0_axkl!1D@+7mxLqqr^pJ^oidyc0B_EZ!i0+*+MqyWdS0T!I&q@iKi48y!9 z+WpSKrm8KM>_;oiCT8FsWv(8V*|M;=+!EQX&k`$MI-cr-3a?Cw>Bp07w0-LaaLw${ z>GDoWM(@zvVJ2XOlpjW`cP-W{wf^ZWh6_}Bl<@TqSdI+DEY(810!2L!WDOXfLMkN! zfiNQ=Y)8`e$Q;ee3$_>jUv?0=EdSkA$PMB|u#&0C1la}5FL>xd`lnGra`(95HoKQ) zDN~t@CR_#+uK<2H_s;Hs4$;h&B?AaVn=2=G%xMy*xEl^Y^Q1!YH9*DL3<&Pb935hcDBa6~IG zKv1wYiJ+4zHcS3nYMnYU;=j`C`9%2R;`lz+f8ns4>m?lGwtPZu10gN2g5J5oeM#Jd zf+aIRW2K=DFhg?@*5BcPCe5_AwUXxGp=Z^&50z<9RKtXd0r6Ot_z(dxyyz(U?SL}D zEy0TYOHJzbZgBPU^U^C|DS1TZb8phS9^}^Oc;@xZZ~%0ibp1#L4u+ukv0@m*)Wz@i zZ^YH^*7J2r>V5o_xO;*1A@`e;ZdS}iQB-Dfv6QtHoYte&&F{Dc+fqCq?CAy>$2h4%3*^Q#g{W>;d7*yunMf#mE>?;|1?f;%d z!DnjnCc%QUY-|XjQh;e!(*T|lW9I6LP3zM~=uIO!+?z+PCF})v$uGElI|s&>*iqzJ zl*uPn`TZGn);sb~y*%e#!jEr9DTu83_~`Rh{2up*Z#n!KK*wB1G8O{$RsFLtK@%bfg0!S-hFWWEdjR*gM-nV+5qj@ z&`3};#dmEaIW!OEPApnIuW1W(4zBp#suCP(B~@Xr!3i=Wef?}IIFQ}-1F7=Fi--|u z(PQV!(|PpAcH4(z<(E(aOd*)R4nsL)m04%AHUYNG*7J=Rmi=xc+{e=;pBYvy#YXbK zd$1s%9R^bs%l1yZ^5b|`jE+@^{|PKg02W5!8M7qNRI$JDKeQOwi1&RhHlU?x^fNN` z0FkG#p$v2mqyHxzS%BKm9B>q{--pceR ze)1BAXlO9Eug>z?5KOatVWsY)rDXugYs_HS1~OM0-c-qyoqpZ&&IV1bvF)`eJUk;R zm(W5nAYFBKu#=+A%%QtzkCNjFqOZp6Fzdf|-AiO!hD`??{HecYmFwuTcKdqy7UH1({IZJYy4FYdyko1^$kfIH z2>mSs+FlV+CaE&XDe}oNO6!eqRVh;MEUJ8LSzZ)DZ<;q)fgvTF`jD@P zFY)++DW0CO!^%im`F!6ZL=+&4a;BN`mah;7{xl3;!}|hKsKXLYy6W+Y4W34a6L*5o zHbH9I-3J!qj4eizl+FjvQ1h%T?Ux&kG?89d)J-R|9WSkYv!~S$d9P#K=Oe7lBGnOq zkUA+-peS#c45f6GgesKx;1r8X&g6olqROrL~?AA0{vg!h%RD^I}Y_iMml z;5a7jNwIQr;>Lk|0eUqsCyEP;tf+SJBM;TL^*YTzOrMwa46A6x0{Xe3|IWU*~C)T|@y=iN1%0bsM|mA#_kS1s=jotJMqs!8{ar z2Lje`Q!|)tW)UD>iM7`DT8aWnQM0~&k|>du|efK9Bhe3&&$ixS^rxbNJ|H0{?nPkw7~~mGRgBz@u4CBOQu>a15oqqAiH;mtqN3x zJQatxP(YT0)1BMx>XfKd(zUK>iI164XnVhWscAv_FK2O<FLEF1 zGMVjek^Pl8FYaZY60JbPuTsjIpwU1oR9abx2dV+a>osNolyQGaUs>9-U%P|+qlvZd zHM*9EyN6+9$9*E-+dphqbn~~wz`Dkj+BA19v&}igR-6u0JX1T_h@^yRCWUIoE%o!i zqnP#uaOU6-jbr&%y#7JN1JJgqs6;9%1kT}J1eumdWV#`syCPs5k-CGJu90?mhCQAT`FwzHKN zSG_8k;m!zX@Vt$zy$LJ^f6&Q-viuTI*kKjQ`T2Qv8jhU6y39GV7oh=yYZXH=yzbMQb%*fo*@e}k*@12-z< zti!9~#a{JGz#?|Kc0CVV;zAX&KApa5SP%SxaNQ$!eR5bXWU5QiGqJ`)eEeF-!?-k3 zJotZaqxJ>e{<$i>SUg-rWp26cu5nV3!!@18-M{@q0TI~Wj0rD2WX@fcYL00iya_14 zL9QhR$hG15jjMy~HSpQGhDmqmYl}e*J&NB+VmkZ~FtI_SA>TR5R;1YR=L0r)nJwYK z?NKTHWF8)t$=i2!RbhEPCy>J4Ph!jw|N9ACVkhqeP{byY&e&xB;MuwTcE-pSUk_5T z=Ss^5M8g8rq~05C{oSpn6ScKW3sx&iXmI6=REB!hU|jwBN=8MAw|vLRmI&zm!YrFI zOWJF5RO9dqc_krM=Q zibo0c*o_-0rbhajZyTF02WI)-nOpB2MDk=ZDn4H4<41ztS5xIO1Zp__yIr*_UULcU zmvuFyCQ|ir+C-0f()&*-bDQZUgan!>OmtDyAuL&6>JYSK7tHX-*#EWvGCXZ!S`K#i zUc_cr%k6zHl9KU>))0Ff&j!MmHG?1|8W<%t@dx5U3gt%nok?(-%91&E+Of3?!KOLv zN?{HfUBI9*QDZGIS1Bkqsne#OEp+{3igTq?>z3QT#hsafPbpd zXP9?^!0p#0--BSzJ)&Q01%a6%@p$6icOov-V&_UPsT8d29Yn64WNo~aWFRJ%lO>v? z>`tKi;*FDGkvSmS9d6R%D9h>W@t^?dZ>SOh(jO%I{qf@Gxc)y@1aF+K5w$si6k4SU zT&CIKMAVkZ-ui<(+0kGI>i?48col^HH1{W2w;ChtZ8uF0L1cu9 z+f{cDIr8ihUKiT^qN~UOKxJ@x&(KOy>dw^bB+w{1J$Ogf=4MDu3%80Kr_@6Azg_k; zE|Hfo;i?;hYwJLx=4di3YchdbUv2|8_9x2P0~gJv3kIJL(qL3nraZV`P?TbNe-+f= zSj2V~7r|L(2>4Ba0(5gG-bvT?a*XP>UR!F3DfOeYgvA(jVP#9fSHLL)Fk4zdl?5V% z+GbqUmUS07#ztveo}0eGQ&`{Gdqdvxe@d!2FZCF84A7owKDh|YI&~zR4BDj@N=yW% z&H=B2fAZU0Q#hbDR1B(om#g@p8IjNDTa;D#2fOc|uTa{jSYxR1Eipa-U1mPR$P7Un z5AK^m+C&T~5Q0+wk+$gDomnPN;dZTjhR-hYKc1c%i@hn+nL&-61#c=Dd$|6mVHUQ# zWP<#LgFpy`aFp(|^CP=p-9!`VjQ*mMD~+|l^gO30R!MY}2?u1byWeJLMXj#wh6k?{ zdAys(y(_1{-l?7aK`+zH_#KY>oP>V1Fd!?kybgJM+i#lkld2;R7gSxoUd^*2PEzPVze7TCM}!1aCP@ z$#>JV-+;e$it?9ToeNRF$nxrXvj2{bHQn|h_La#r;W?gyg=+tQlEsk)FXOSULaS(m zRixi#+`cd+g?QG}M~F-*mo*y?6hmnHUBDDGNL2Ry`w0!F(KFN4e~FGqW~wM-6K~Yy zZT-cmyG@ppfuM97d<}=f!7DCp&fde3(6~eK2bMk&(a|ctac5t9SMp2hCv*A)jn)6& zHSsRCGV&YAhSh`*iaq^NEMYagnC+;v{(prs3{V7xkQ646UXmnS0=81@)F&i^kgC&H z5i_O+HkP*6W}ko8m=VHL-yOICYX2A*7%`(eBp(_d&QUtDeDEAFX-{T;mH!}xoS>AAO$tpqu|Atu@^@&caWYR+s9d|m zJN<)ZH~4P_^S;iKLsO1M1hms@@UiZ}i7OrZv2094T-HyqJPjq`L3oI-g{YRnl3PcF z(#c760>AbsNDX9^lx>^%9%O(9nqaN0z1yS)!~RSsd>z(2MmUqK!~SB z^ifRAYZHmG-pAA(_;XJH|EZ1KEpzf`;IHknymZeo;EyK`%#iRYIf2bg?7l8xToEs z7GKL~UZnedz@5LB0HP;!TKYr2xIn4pJbfOk-PZB^jXzug6 z(Dcn{NEPRg^mR{-6+YG<;j9T3?9vs=YzT+M2!j~Hg0ySw_ojhwL1^!pP~azRzi=9p zg{1^BB50{b!`{HUw>8eD0BLPq@nQGIs0_Bn_P?a;4y!W<7&{!?=a1+bKiK=Elw z_U7ysv_xMdEKpnB=|KpTr0>n$nEFoPU$#LG^l}nr7XTXugU19<1!h$)?$> z5K6J7{UBd$=e&7~s(qBZCaQc{Oq}5Y@jrLD20@G)%f@L3-222M3eZ57iO9;`rFC~of>(P`-3+^R0+ zzvr(~g5AG(Z%lDn|15b7+TO!Yc1ERo2sJ1FF4v>3h*Pyx=nwir4D0h$| zhY|3zppcJSUDOrbm$LS6fbQIoqsYV$=`rD?U`K9QH#AWL`^O zkQ4dLIUL(~SE2b*Hb+?G*2J;&^TP>MO}7pm2>%20jgIn4zXq6o>I$v83)kTk?>9_E z>cFp1`}7_s_oG%COS|lAB&EjaYX6N6&o@0g2K>J^H?7GNguZ=0@p-iIUdxzyvm%M3 zWT==3D&)uiIXrzLV{-gQ2ds~>pX)ggnQb>ZPf5Eoml~JAI!VOQN|S# zqcls@L7Xz6z{XTts@F%ybcvy?S!HO=;U5Hj;DVdh?ySe+HR`U)NU*sEJ$p3d0ezorODjK3YSDl<1bvw&nkl}t6iZ$Fm+7~?d(e$C3C zSQfdYLm{zaz*K?_*L0sqtzTU$D_I2JEvu+{XJ#+WzAP&LtVBygf71FjCdl1NQn<; zk%)}hN|?6ITVDQT>r{J{DEygN4kZe?I`v8~s373w&3A!+O2bj6GS@646Va!>tL6PC zl?(7lUv+^orF;vCmb-wphH+lQF;?QhPVKlCq4yt+?4zl%jvM5yaVRN$5O%Z{)Y<9W zFF50oI|Qr9798uhOq4@OlxAYJh3@ydK2wkMqL5B@w^Inq%6+@dvdaZ{sR}a%;4E1m zip6~#fN*R&#aX-d9`5?#Yk6xCWIPG^v{mM<;Bu*0K@GUB%>7)5gU=>9Du(DyemAPEm+u|YE17zL3tO%4wrUl5EcJGrz z;fDpkB9X+CrZ#tZj_9dU8&1&B$>ygssBxxe9n)U!R{5mSt2~HUm4W|FzI?V|ipgms zc7WL?9{Mmiv+mto zLq}MQ4WjF%X_3B|eLB{-HCs5FjMni|GP2!}?9my|-*vqN5~Lg>e`AFUvk}THS7Gnd z*R%~7lT_jOB= zqh+r=2Wz!&|Ltjd@25(A$;wjdxVBdrJaOQT7%ur{TdY#f)OFUk{;a+Ivzg{?bj-zo z&lH|Fi-J-oq}-c+6O9eCBkK6A%klm;bg4RkM|Y;TJX1p^>WT!7N`L1c$vqt&D5?S* zGB}>4Bpu6CLCC1i(#8{*%>zi`WbXzt{I0#>q~$oLiyq$-Y(jE!;z*$M4b!aYn6Z+( zYf^n~lfVf^*mjtw5XbosA`I400im>CYpKdf`$khXA^c#mm6n#0*|lWK!6^6ZGfkLEu@b${V@zvm zy=Ooe+LsH}MglxCQf`(7`*3!)VN+(mT-P5ksFlUb3y7f&Uw=hl;ef*=c*n@r+95w) zK76ePI9l&jUhh`EM14wYCl*x{nh_@4UE}DE$ejsbCzSS z5f_vn#jgmQpg$TVL7?x?QsN>i3<-ugOmM62aDc;AiC%9(H7NA__5n^9pM~LxiYLQW}OMs(uHL z0SCB7Qbpdj<8=$K1#$DnDd>b(uzhb2o2Ri^p6YLQgU@#!BO)=aYG=H1iNXIa&JX>k=_o*0#2+noY{b%;qck|D%)yf9JSu=ObO zrb@rCEfFO~{jOClpEI|05X9@M~@DmF0nmmsI*K8oPj=uNc>N&D7cMPH@P zhH(tP1Va8X&F%{W!}4k^C(fDIa8?I1Q$EB0@-F1iQHe2uuDI7gp#)_9D_i}9fHI%9 zHP%euvYZblTCXz%E}b`Fx0t4XgCSWD6U_GQx&b(|bS3-d@jiEZwWb z%;7;s3r_TBP-fo48;^P_!R9!X|VOrk3A9oF_wR9vIz{Z$h_I4;Xi{rfZ zEcivJ^!b4tMnuw4GrR*8n0JkafE*-+it58FO(R~7u2vCV`y$i#G!t%Cz0fIsZn6u$ zK7tt!ytFH7qL7c)5k;EtGXedumqMd!ysa3>&A1>&)h6ST$&*)@Vq^Jq0A%?#sWU)+ zLSK&Q%T$#aSklC}KoQqEMRQ3K5WU^J%b}gYqH}w;?%Fzu@%`>V_eCC$S3r4lYy4d< zQ94a7Ur%*ycn4y!p$?mGOkrvC#{1^4qU`{n34}gVDD+2qZT{>Gg_(qbS? z`E2T6v=812bRGe0;WdmQwp#Pe)7Ihv)MG|c?OGx(_r$>~n6P=OV87w`HWT2Gd?aF*^ij)wv8f$Z3@c;WWQ!FR$P|3@-E`fEaJAcvK zu~L2Gpw9J5c)qceho}xLAqk(IIe^y;`uB;~p6J7HrwabEgU4=t`yPzi=V7$>_OFlE zO8C|dka-Q?#K$Q+>C}IG*qZomWHXr#5YyDe^wSx6J@trufkK_#UC^5#0ASGm`J3(E0wAQ%Bkq>ae zW~(b+R$skML?~;*oPu-|uMTx-=zqUf|3~H5owN4$d2}+$|Ke4@rE*XKoI!y~76??3 zUSA)=J1bL!jiVjsiiHToi2ADAoe_#A&9%JhY1iw}vil&fSeeh-@YvT0Ob6NP; z!eyVbG{Bw`-a(U#UIX}&?5|%5?b^n@&UJrg{%Y$p!`mn~HdC@wYN?f5!SjVSZ-CzS zIHgJp-8bl7>(+Wl-2=q=F2(^&|gb)oC$@1IQKghlXn5Fc&U9>Se0k8u%^=X7KZ}2XH zFT%Ec49k0uDOI5em5%%5(V?@fHrGt7=f`j1Q*n=tx9$znr#0pf%8$7XnVCSfSiVzF@@EZIvJO+BZ=cN?0>csX$b!Tc zR;QOvm5$7N8f3%T9u_SZogNjm^*}%d7koOOLLVEA%!fTVB)e_4wx}Pm@dry^tt_vv zBx!K9CD`;74`jy_ip^QPIsg!D>m8Bm3S(JG>lSN&~$6G8m zRK#Z{e2A-DcB>PoTl6hUh`0)wwj1(4#7d$3-NLrW9Y6=Kge^lr7T({I9~b4C>K51rm}pJTTn>|e0kb%zsxl8pHZ&` zFj!)^(0r#*41>UOCQHO}LL!u6%$32u#>Q8@iqojXuXkaK_+LP{8C-L-O|6@WRqvi} z&uO88LWBMNf}eQI<-e@p1&}y%X1Z*=#sjNeo!$Ex3m%-t67=29CXF&r_!5DQD_{JvCH$Uy|2)BUb=HO#u{iIF2bbCpABQK)QtUS@Tz7RRL`HP`N$evp3siO7fB^d3WxG_@AORTE;$f*vE3zMczv&y|< zp$*0P<3h?!W5l!UGJXvhnH&t?j^OLJN+G%s!87vlCvDWV+Q*Lm_+e1KTW;m+3sDVQ zai?iMc}+K1VP?kSxstvn!?1eM3!Z2Q=8lacIK7>N_2|oI_Y4KSsh*5h%z&q*Fr}?0 zdLtTnsbz3Qk)#lUXusF3R4_Z;jXH{TJ29HMy6xq)_@|;Ge%lGqm9ybJ0#WI1#2ya4W1jdAuCV>*)P zLjnL9PJ|L0j=zFH+?OjFv80}dXHKC2`|2rfQt%XFS6GCm+zyK z=T8`BTEmGzro}7sSBz^8qdJ?HL3~eFO*We$!gd0$mSjlc$d)H$-Wje>)xnkKRmcsD z1%9esRnQ4w3n2S`^!7q{c$$_-IrrHS^Ya7-qbf;`&6|ImfE2J~sV&XEG*A`)ij4>j zdW?Ph+=TZ|j5E#pfa0|r2_T9F{UfjkilKZ$NdlN(TIo zTe(Z)L2_|Od(B-0(E84hWiOoA;cX}7uWz*0FY@QQQF00bfa#klqm{Z_pgHHTHTI)`tu4mfH9;H+nyQ3uhP^et)tH6;W`GIrd9;={&$H{$}e`QG-IOC_w3M zN_-JC$jk6SnK+9ErGyDZgqFx?cl#hT4?9B0g|toq&C9h5jL@|-Ji{|t!+V}5yL{Hb zs=j`gBgb?QT#yJ97Q7sB+cZ$Y;VeP7u>LAdyNB9nJOrjbVIIW(!gKA=G==lkf3o*C z>OlvHp2u^8Lp!8T=VmJ-fV-wx#moxXh7*tVj#7%UPr={KWP-w)V6SfpGv^e~n?w@7 zE*|c&mY0*H40@ISsQy%_=Gv1kbOT~OM*@z8@(F$|!Z>2l zF^fgKK*Azal%u_A^Uk-4&31?&fX?d`G|VX;07w{eL$At-uu}$$hrLLEDI4Qv>Vfj! zZxgsm-dkB;POBJ3S4RodCdq&Mer*r>YLceDmsN-1lx2XrmXeQ+n5ra$w*!%WaWcw! z==ybAo#jR%*0SbzgG}BS1!%|Do~2|k7cwFgHFCo*1T-|K@yEV@Z(}7l?x^danGU`0 zL-)MeC2YIN#rih*^kg!#a;D<`>~!U0`Fp597buZ%b2P2N#hU(^lW}3Gw zjtC9Mqvf8{GGwXOH%2PfvhiJy;!VmqsGwe~v~&>sA&G)z`FY0atNz}oFK0$rM>Kd# zfh4QO%{{Q^f5uTOx3_FhGdob4l);K({x)BVcSxgnMk)Cbn@CDbik#}c<8CQK?@9!L z3i4tUx;-lF;GYE>X%ee&(ErR6491-JYUjljw3_+&{p7jt$KBvu@u%#_D^3u(#hXE}u;7CeZlj!f(1~{I~2N&M?pIL{%(2Zm%gg+Na z;dSB#7jM4iWNTU&FTqA|wytzA<{Yeho>F`o^mzSkrkqX-g_{_DmJgI9Rj_(m2jw63 zx!e7^T`mj0wXBb|{44~nP9O+0Ve$#hu~E&SNLN3Cr>odIQ?mDbTHW{zTNOhl(Soy@ z*@=GI)3~TgnBa5WV#jdq*wS?RQ7U>xNk_`ZF&yH(!REaavfPJE&R@^g`)YsxdAf&F zUmJP^9LFLC=zI!NPVn3N*Q$uM1q#pH2k>kAzIB=)4AnA6rw+T>t;8YwS$VlFcg#A1 zL8uxZ@ z1)l;z9CB`dPp5=QUdNQNEVIR^1|+A@Vl*&kTPMmO`0__$tj;>;ag2AgC8JV01!-Kxf3p@2$#zlR;(k?h^#sovP1yku`-&$^?HneEl_6>* zBeqF!Q=iCE$wc62Nc(i>w+Y-3w`2R@lNKKW;k&Vq&W^V5%I)O{del8LQBh}0KIf#l zW(9WAM>PSZzz*|0lIj>#1fQg#P+G5TXw_;~@@qUV+OWtfBK z`QF8_gPc;Q25}F^Fpg5o5Hvrefdb;T)N@qNMTyZ?;k@>LwJ!YihhKcjwlPy8s ze@(cE-BEmCFrXJi)MH3#i^4kmcTi4@F1}~ue#C(XL4eI{)KcW!sx+oIa;o!~-|ANdnWkXMTQRSh2 zRE0$9Us0-HpFv32^gCK{2e7SyXZgnq#)6CCc$c$Q8|P&g^s^_M4?;Igu<@@Zth43N z9|rmw^s&Z2Ca>WdU2JJ;ynH3yaQ2(XVdF&q2zvUWM^`t|5C(;?{EC^L(|NcFUr*~3 z19?7_fQ9-X9v{2F{&m|`;&;#eZqByTsDs-c?T|3rKfdMu;7xar+x|Abf!)NGdnMvC^)sSVkM?A=Ly66+7f8qaPH&k5$aefJLFH|Tu3`I9y_)%gGKv% zn^^tOhiqdulda^gLpXZQ>~lssrxrJQRpAGTWZsuA7N$y|rcw?pUHWHc&ab0Qbzr`jvgJr4zT;p)x^jB;&NM`OWHnmF-_rxxqVWynanU#dG?w5 z>O|M77p2Gd@!-|%KE$hrbMaHPg=h7FrPd3XC4v%w*d?U~(Eyo$V%lhLN+)#R0+XML zILyF0qJ||0QYAz8X9)1xg+OR@CQmc)(6)rNkT5KD?Yg7;)*`MZk z5M9}Ce*T3L6}|ckT~b(K3N~PC5Bt1SDT^`KDcuw5^h@&fRV?W-1KaF(MK1e+VS-cv zo=!j;6i|V=756&LR&sZ@xV@j_Qq$IA>Y*CiGpoT_E7&_}4gZ z0yh|#(E|9pj|))8?8Bl)x?p=I85KLfx!VBhGaWe>Y|O)EneYe%qc#RQ%ojFFSme!8 zK|>F%p`EL|?x$vKSM|hBOQzkc=kk)g3L=tK54CDvV6Mw+^PL<72~bQ2Q%_Fm=Aw4p zm=q#IC_8i`ncY&43;hg2(|SX-dbX3E@8Keb|4gn3YTLo0qcgWXak_*7IUVxZ{$pfY zhByt3m?4e87NM>&;Xt2N%4;2b2537lq*OB0pjUerP85wTN5@KyuO_HAF#+x9$4hZL zqINJVU)@IUb6&m)EgC|8z9P{#gUayCaU8F$c+;qFqw}h#MHk8>3qCzGD2@!_-j><& z4z+kB$$xM}V~N~yTVNQ8=M$EyR2dW}3|7Fq)%7YigxV+i=`|L{fl`0&XGLq;ErCgw z3woZ1x2Lvrzwxq8E{5db1^ONYC-Uh_iq1KEwO+2{wO&|I8~lOA-2O|8ARShCDku5HL0Y)=LN zKNd<9$E!A+LKR5KtCBk(7AG{-xXqYwDNyMt z_c|x?kCh61T;vbZhY3i&g!uhYV*vy8$HH33z*xgEu^i!eA<;e@m<_Q?ZAbBghHBYbb5o66v0fKiRuP){M* zYVRC%@^GLI3&2|L6L^hPDrGq^wK*q4)Ov6xxaVLk`NS*&QMh*MOI*DSWFK5uMt3<3 zLRT&(K2D7O6^EWYki60YWrUM1M@vgi>mFk&N@+YnpU5F-15gqFqw@ow3+xL6YqJ74 zo@3v=(*4H@i3DxjFY@o`Q7rPx3MtP7pwtI_>nFyn%imkIt|0^ZbVbPCSUDJZ5|z*!kyYCtYv2o zKq( zp$q&Lu`^MVczgI~@ezg3xnOh)C${&!^-|?8Xid&)8g2-4l<+aj}^7Q zqUr*~q+xcRf2xjh!qrD#k_3#j?b*ndz9E6(ulpN>0h&Brr#|V*q0{}V&YsHFJ6+Vm z$iL!pe-BFx;Y}wWeY||W)qHnx8e3Wo)zvii%5R>F*JJ{>X<_eJ4w*h#PnvUD%Gdl- z1GnG4tKZUf*~S4B*4BV@ zvW*u7?g6QJyJwN9iluOOqgGI_#MEvbj#12qIA}q%2jj>nE^N(*e;7)-{5RcpseGgq zVIZ+Bdmk5nXHXqEv(h}G?i9N(EgmUN>QAx%!9?1hlEy>eN;%iTKr9I%-R1 z)Q48M`V-&ceQ1hWhtF06Z|j}HF_}UltU8|Qpv@LSB&Pe`eZ9DIl?&-0-Yw+$d>0ih zA58aI5U?9m7x_t0Xw=7vzY?7`(~9_;u5WI?;bc$!q_>1dE)nFXA`yhO)cPH(Wv76f ze3w|!aT59te(HFZtAoc0&q0yIjs;=cNyOFZR9BbJ7GHzAM2|(KH*)?!*P8L{_YHHW zJV_i{nw%7RXGHCnig|u5b1F?49HB_01b5b@`ifFOc85%&Ti>8dBg5A=sAUO1iOOz3 zRYxo|Q9#bJmbCULgbB0=3NOzyORW0DZm9pEj}Z?rQ{ z6SiKhrrDqwQ>F^KrxmG>uGO#ye=sbzxDdJrIu&XErJ4xMM1uCdA8}3;6hR#EOsJKs z;wz*yhOzV0@=B5gy{4+)B~ktl1VQ`07bmm)%%4BUKm78$*tcyJ`joZUG*+D#Ao;KV z{57te99#1H*Dy_Pe%)Ps*U$V2fBWD5h-1$@k5??I%74^ShIrQvsjB(8DJ7qeM^(^U zVIT#)`&DA#YERP;0#eb?YJJY}IeC0M{5E^~7u6xAP|s<1zdGKFu4+|qJeAm}^eVc( zI<2%pRFjCPzY4qhlq%r0@uo_UT+!vf|G$@c>s`CJZfA%2N5rFWtfH+0 z22B-VL1)7k)>5}C|4&1Lv|6oJNvu}RmyL4glq_*Po@4g^;Zb_ zY&1(=g|%iZNB#HvlFz+vtqYe`z3xJ&?}MRUJq<#$I{W}8=9ZL^>jXfD(Gy!VN;3p> zMO&}>ZA+P0hT2C##REVq05q-9%mYBMHZA&5Q&4~RhLpJTc@n8;?FP6;8Y&tuTUcD! zW;x^uw4CX$yK>mf*)`_uM3(gBnTGQtsW`*89a`hyKVb5e(@Y#Wwfs0gP?g1d_QMD6 zQ5EK9A7^0u zFb8kDiJyA!zvRl<3n~~sH4c3VRnbpI;nrO$P&N&f9H_=LYJ2{!Ce4xzwi~|DNJe4* z;Nt6Jnb4bTe*b|~YKL42G9}0sA@7u@9|UT1Tt6j12$hs7IB>DKk>v3Uv;5x2j`BM{ z^v2GLnJaSoC23aC?xZK8X$#+1ii-L`&-K*t-Vk6@rD&>3jLEvosXMJdzdA^jRo~4u ziYXbQppxov3j!AWY!<55nl-^N;Lt7|{A*TEItSUpl2_3QfDWU2RGLKfO}EPKE{jye zpiq`V3Iw*@;`lDjmd7+j=x@0%)!%CAjv5WE1aaS|>+*P2kT2Dys9OF~BVnyd4hR+{ zsSO5B3;(Ij@HgBab>~&CSN%9uk6UjXWf{nsTnVgbm`z-|gm4`D8 ztayyxeLLtsw1>n{UzN{+iGBScUe}Z4l_y_iF5NgC!4D)Kec~+N{_yp@?e5*}zbI== zASM6x?_XwaVyfwNhIZ}X!@vB~y!YRH2UbK?viBT5$WQ$Kf92;s_#x~m*r)G<_a$_jwGV5U-~j7J)iVunyt1TsZ6K_CP_ zko@hJPV+sF+{oRBhn8QHMsqbWO%?1LRoigKgEJ#gY(bf|uGD=tHETm(3c6Y|(bZ_0 z;`%T#zwGBzCjdH(-l%~o7LC&UHojm}(b{?Kfs|yjo&H0j=@e4QD6yDH?kbs4C#=S4 z0;%fW|Ai_=CHUL`n~NO-u*x7^i41C=s~NHAJGiz1ZT89p6Gu+{|J(cTIN7$k&KrNP zwL`_O&fO>6bMCnTxP(g-P!R=1Kum}r>M%1Zn8qFQDlOH zhzZ0@R0dGOzh7b z;;^$*(9LETyX_pAu@P?G^F`vIF$=}Yr0=g*;7d1K9Vu$>3qc_zZq_F|QDXe|^NgII z!7FrL^av?gn?1*+7kWg0e=i#w+noSQ>oxx4JMQHxpL*uVwIn`q|2!Z3++x?%|1-DV z!cV{XKk&Sly?C4Wp@xxV8e1 zEt!aa($SzB8dH97-!=HkJGXx>8P{|gxaV?LQNa1t3jgJupXGOd`fHC@7Jy|qNo&Mt z4J#Wb!1%Wu2#$oAaU1=&^oOP~k8BSrwR4PC78YoB#7S7K^`63C@+AeY8KDsZR#tca z5m+n$W20HT4l47J(nJI3CNZ6N$hxf;x2z|ReJi)FWIR)=*XQ_yP;D{DT7}f49NT-wbs@&Gd zDsZzI@>64soS&h1Zi-B)i0EapBLw=)3=?1WRLURz^tLf+4IjPlCV%(oYrOn<7keAi z0rBQ{f1dK%ddJ5`C&&3e{_C&u{Fi@i*Vn)D2mcwLeE)}xF=>CW8jXPm=Q=tQw1#(o?her^?!s=0v!g5qhlpwc@wvNTJ8$oEg%Ji^2vkrh` zMm5qcYoNty?@HOOY|Q}B8aB%TN@=9^Dq42I_Z$j^?S^Kkp&s?`0FZ)~-=`3e^9CR; za8yi>ZLi1P2e+Rq@r*mB_~_?vG|MrSX5q0LEM8r}FXYHhl*o>a;N`P884t(zaWWp# zk)tZDj+cc8Sim?ie8ij_=_WvJ_?~896siVRiyH>+jnb8oT{G8`tJpe(>>akFAvh z-tX9+Fl``To>)SIhI^wxIYer0un15g{bg?qWsYk}Z zuZ7KRtuYP(6ti%qWVYS7G-a|Ux{P&Yqt4sk^%5kU0ykX8i%kbekFf(SO|CavH8kW|3o=2<$;Fyt=9VfRp1LF|r zbzUg=vPBOqj@9Yzvu+s}lM^{cI;gwHO0yXbCLKRrDzCM1TAfI;K1_@ZWKnSyt#YirD}G(}sq1|3G!RyU}vZfu>$iNT*3FT#-xTScI?0tC8Yu<4i(ik=wzi4uRL zT1Cg8VF)L;dpzc7uBrUL8$o1@_0=kr>&RH+WIR;PBOcEi(ZFouy?4k^+J@&CJ%CR? z-mxoy(waa0*cJZO^Up9-JYZb~&xJGN*7&#VOg)6fwWA(|<*1k*ZL|TkSo)wE>}ejc z4uIoEx~vx13>DQ#wWRj%#8^gd>oQ^%>2?8P*%>JX#lrRlaS&@(YWwfmo<^i{Yo!om z2hm>Ouo1x7iPrkfK3Lj}x%&xc`Q`6_A^-UgKgokvRywx6+iDNmFuqB?l6?e?gcOY5 zd9kDMpT^5)8NcHe#_zZVtrTIoMjV8Ml^Qx$XsvNG9&R>+o6qdJzkbP%k5D`}&FUl9 zwmr7GS?BlO^T5$L0RHiEN9BLd_juKhd><3D(>?9y#jp7mzWDKb`Lo~tpM>?mWC7e< zGm84YYrJS~Lp?m1>?37T>65L}NI)WRg=1R6Mlo>|p_D?!v3aR#IET8WvbXo1@1=8u z6mVf;SEE-{Lo$!85YDfnssSj45E88w5d!H*96(EfD)?|_)U-zIMO1LM1Y>z4D%gRW z8+HEi@*3ar)ZV_6eKTG(&O(c&8%flzi*AMGl#}sbvj0*-%aEhADIw~j@ze?H061pk zU5O_JK|=s7R(el0($jedDViNyq!c#&-_kSVW7%z4uS)Mti()6jl$LzP{oow%}$d}x87k;x%|Og_)Z*eJPTfjEk&S8G%@HmR1& zh}9~3t!lbWT%0tm1-rE*1mlFbG-+Bi(tcgxKk}+)@m(*ui%;G^#|J-k zg)cm|!2C*udJq#dT70TLy#gZ_W{=E>@0Y^aDRPsel;@VWJ$7|rllvcEIeZ7eTCHP; z0x2b5{taKp*!1L{_E#v4@P=Rd8J_>L7xSLq|5HBs{tvOfyh^=VBaWhG2TN_7B0>nH zl*q>KQc7V;MYP^B@Lk^{lgr{~OqNEyS|g|#BRdKs>g6h0>t=?@7JK}yjTd(ATu`pV zgExt*A)fDX?)FQ3)wjN!=e_hr-1gKbksm1%1p(D^g=-H##z+4AJ$&$w|D45ZH;Aes zJb2SY_V2#MWJPpivS^$UmF?vsTEi!=uCq~(8Oa=wX2fX0ih5agMr&AD>n*d!a{9<; zV0@&r=%~fgE3twb%Ny zido#&>Jee6s8mD3Fs53Ih$2NjhzJ@6O1&Oa4l6Cvros7Th9gXJO?QSo-1)2iRVciDNW|96vVM{pg4{opY!lMhit~(y3Z`W1+FV` z9f_Y3A*CkTFB~J&3qn}kXY%K@w$#Vp6i-=Zml&@WYpoKMyhofnr+aC3P+K` zYpCe^zGL>|n)en(ifSz+2x7uW5k(3qg-O|VB(c&aqqlK?6e%1>@|pW?cGSK4{m*Z3 z?_8ZQ)+WnXX`;qBRU`Nq#2T$ll;4xak(Ku(zJyZ7jI&+T@=R$5F|XsucoDj^tlJMx z7sp&Nm*IuayvPfmd68;8;`-tyHVWg;s5n4kK#Rvqk zQaDng8o#5o!@wUYaPGNJ#W|r-2gh?6y>yQ9{K__A!XS*9TdlHQRa62+6gNdxeOEAE zFd0&wGuRbZA?uQnf^9t(grHikaP^@_Id|K|Ed#w*?ta1Zc=Gd}#lqDaY^<&^cljzS z3rkcsHd$X; z(M#Bp6-_{vxC6Tk6qm^d@j`kZ`@;@BwD=g;!Yul@?Y{a?PGcf9G%{LSzE zAsZ`eu(%2LJO)p{VDtt$;k(8OP}%M%0=TwT=Yjb$Uv}Yux-3kMT2U{{&eTI#?%XxR za>@|`X2%CsN@y8k)+?}4+5LHK4CI#=#+sG7LJAYD)|gU6A=nmu)>;!PkQk#OS%_sF zfzq0SFHs7LzBrlb!9Y1wR3lBSpcWfLuNG?@AqbU53iJ6mjct<2=t{v{Ii}zXmK)vs zVhvwh3UOsfJ<^mzO(jwUv8Ebo>anI8naFCa;lbqqw_&sjOa{P@|LorwLrobYGBKVL zBQp7(gb-V`$6=(1V@16l6Gk!BYD5^t1VKz3o7by`5gW%1<#F9K#M9e$ErMjL8b)Y3 z%XF{XUTDw2Opl?{R!Xt;yG^!Qv-P**n62wd;<)*DVsJT)=L^ABbXPTMZCgd7cRzOf z=heKw`8n*wAU;#A;Y%wa53PiIjRiJ8^A7jW9cD%MnL0by($bFqpDLWSc9=9bF*+S@+PX0?$% zE(D_&&updgpH#A=#jSHAjneS&jS6#X=KTs`98se2*v-`l&k4vz5uIYa zDvo*gZ~q=2{G)d>d1i)-Pr8%oTh20l{wyQoV`K|?GTDr&%U6o>+6I-4O_pxVu{^iH z(v3OF>l>^sE>o}8sFo|lQA8AmsD@)uD>G*wh(W(sq%cvfZd5~9DkBh_z3n1D{A<6k z-T3donOkq+$A9DB@KxXPGJfp`-pKVwABXiC-1|5@;{uF#`8|&p;OcV6B!)^5Grze# zJ76G;(v{;}K{a>}w|6!$=gVNwi2`xiP7{kq_-VLG@?k|3LnU$KN94gl8icpzI zp3==UQ&$QTHEBfk9AOO8Al6huO{k0!nneG=L7*yx@WDUFooSX(vvjjfYxWux0tDkXTn z9P@_1nkP`kppT5m_m**}wBB0Wc8c6yyRpGL-g)1?jpsqLC1j>sKi~asdpqWCV`$wb z83pazcE?8CNR^Emnj0Z|uan>H*zJ#RcdGPqjJ<8U?q~Ny?di26S&s`71#Z>^mkP(g zc-f7qu>(ozJwNX8$b8V$bL(+E=z9(mo)LHx9iq0Pkqkb<4cJ5ZNT7e)!Iu76R{jcNfr3-u7{d2zV zh5WmB{SSWmdw!IM?!C{H6MW`zc;-bT`qxg*>w3Xc8p^=|7+*rbnF&)aWU+Lk8kp99 zmf=G-qW`^gHL+N_p|!~%s%*;8AL|WG6Dmy@bopl57B$`0iv1YR z7Ry2Llyjp@jbzyfAym*~ql=><>%-K+2zvRh;Px4xtIHulr1v!s=Q2%WHjFj((ClY* zvrg1zC_5)GUw$W-Z?3VhQttZv_D&9JTfP19M*xM4%h^(vFD-7iE*yj~>3!W;-UOwYx_E|f z_~)BlkJGN90P*LWD)HXH%T?MHlf90IV?O!^6k&Qu+^S2(gN?e z&O%$YdIwiCpEv>h3`Z64QOb5BTNO7J{aQp~vcjv(*5c#h;LXG?tjT{C?4+8ST_`-fUzs5I0g=+*>a zvyOBmU-1oJ$N0?DzQ;Fv@jUu}#Sc+RaR&2PC356yRN0|-#c zx|}TyIHM<-D^AckW;p^X^*t+gTTThd9APtrEd7v_5Y_k52fBePQ)%QUdBI{iJVaY) zEvc~uw%SZ3;%13~C#4C&B`L3oAf1$AtJPsTMK_7id9Jh7zA9D<0fe!_5rRl5n!jHo zdfOci__DJWzdqF9sl zB#wZE&AOQ*(#pfJg3nzuE%?rjZ7T;5K}%=GI&Ickg%$Kl+kaqbhY{ z^ndoM8N+JD)JE>WtrK}>#z(nU5lm+_{vg)l`HZRUwOG2LZ1jJq881TKW(ZmOq*8~a z{sctb*FNtOiyL*;Yay$ZfFM%TqL?UFM6n`Fgx-=G<%U7DC2lrg=RvZsy>5>KO`FGz zs$^Bo;55eIdk$J@qqr}G z5z51Sf3en}Ti?6yIcOl`I>bujxso7?aiyf**hX=TloG9tT7IlF8l!p+5XVOSTxq@K z6o?yQd`A4xI1P+*qG>F-jn6A_I>cd2eQ}+zZiLptNTD!_>#@>AvD*4P6RikGn$O>r zCIZ_O1T^B1TbdF=;59k{I8xv=yeY|eq4js32niFMWBKcPg6oR{Mo#3ax>v>F#wHjZ^ zZ&-+?eoQUY)WR4+Lxj;6`mW@aPd{s%8X6XAg7f)4zY!r|dd$}KT6Sh1{kkou z1jlLUgB;fdkL5(56wI&m?L>6H@2j2w!YqumHVdOj>4u>bQ;p1mr5r>=u_lOO^DkB` zZq`}asIgIt*r)~6Bh`4lX}_c~2108D)ZB8UiSW9PL`p%%m3WRM<2kre;=9s_|2d6l zD#k!Wm<6v=njlid+8AKa6fI1SZA6vK(G%m&5pwH!iNP2*6!f%|Ew!S__!A>)Ymp_z zR&?5NBw63Ink!^IWBg`3JXfX`Wo8wX80=CchOsf;gh+&|8pgdy3^uW4$U9QtH&QUO zzK0Ny%Xm1l`Py98MQO-*4ys`^$0>DsDVpuU%vKP^YO5`r(};Mdw@HM*Uz!GI=f``| zB}nvAM>_2Hz|g?jCgk?9s2i|ns+ae=(^ERWzRL$MQcvEx*%ry~bWG8B(?W=?+cI&8 zrEWU{G7@~LIeVM~W)mX=ZTr^?d0%p7)Zyk@+|db8$Vf7-XtZS1)T8cVaTm{&I6GBj zVb!#V(OR={ZGrOKGKJZR1AQL=Q7u445pg{vs@93>0b#jHuu-A9yiQoD5>@MHr8|oH z?S|({Uigd){PcG{mrG|yf#kObTdp$=zSqoj3nIPc`~(ga2(TK&ug@Q%lIZb?d}jA6g#dc_GTf99nHJ8 z#Y@s!&`BI0&FFS|n>Y`W=e2JKK~ILO*wY&B@Tk^JMC*t-a^t^;V|FtBlWZ8EVL+IY zg1igU8O?0&7)SqIr%|hS_yasU<}sFcxw;%~rS@k$!Pzm7Qckj3iCI{W2%?=&8Yu)X z|MJ_p|FI>4hPODX)p_iFA7|vk45PQ6BR5&X%V)Qg>3c;hO;oKB2N7YlMpUU0)dGTz z3Sp&6uvsMzLgFAq$IARmmFDzw!aI)S!psQY{-P)HZD0LFCQBxzvc2R%3Zt*kar{Z? zO2ZMn*BXypDr-Ohdb0*$=TwZ*oX2R+;|a4RV3v#n$(44!781sajaoz{h^U4!N1* z=lWWW%S+|XS2K-?QY@FzD;3H@@PR*kH;;Voi(Gutojl=LPhpV$7nZ1QmWiWiUmX%0DR}mUF@EC3cQ9MZZv6%Yf{n;z zBkh~X670jVVHqMS^?@whEhiA)GZ{h$9<{QZYN8nCR=SGY?gjDwpL%Jtyt0v^4y~rC z?!h&#R1eSDDf-*xrM)@<_We=#o{92xNZaf8JUuew{}|C}Tsy7X_Ohls@b?_WrdF@Z zqJBpP=*;N#eRg|Vuf~7-@3q&+zp?RKqy34ouQBaIbB?Cy!c<04^4MzYd91l*8fM0h z?a8&c5p!kPq@nL*43(=P-}i6-l83IYY{kcg@K>bhkvwf@~LB6CN=X=6D z(Uagi#yH41#-MiqPbySWc7vwq34D11(;W+06VW@S#y`MFPWE)N6mlNl|EJ#m(=`?5&yz;gvzPmuRTOV-(5nJBs}ZA7q9frhTgPR44%6F3K;TC=zOh1M(SmeXK| zJtWtnScB57&%0x~$S-~K)A;kxUFXj~bDhh}<(`BOwbtl3ZW#IdS2ErW*Ad)4S>Oj= zaEX^ad4_`TBm+p5>1i_kI3>qNjK|4h=|;I`))bcEBbPZeAz{lYCJ0UK|A5wELjT8? z^t7i?nMJgw2e(T}3*19NJQzn<3JzXo{3(KZ!7#D^04X z>p;enWL%8ifh&k&-4K9-dZ>|&*VRLF%$#pD5TaO<@g!0}5UDMZx>{(CTgXUip;@5k zd{Y~&w25qKAdJj$Vx`nm%aq2v4Aal#yHPPjVDd2y(7#5zOM!DFd+rpasEWq z^M3krZA+tMCzR5B?%{df{H}ZX%tP~pq1w_yIZl}QQ&7zLOpfMw#+@^~;OV#Uj60{9 z9?Pe?i)>#@iN@Sr%1LHNT{dfq&ALJwF*Y4`au=sn<7#ZKSvtuCXp8=*o|`epa6$HveCLJNDL``EoXgCpk z39c}&lLCq^s9Xkp>nz!k3<6Sucb4Nu;=phnu`NY6ij6nG5wKZTTi;_nRD^L;?;%#k zA(GTf8!=10)e^5B>Md)c8YtpwNPKe{9qVS~Jmmw6)ksVI&Y)VEu(SU6((&~ zVw_@NqURaM{63X7_s81&rcK0E;5H0-Pnd}NsAmN9ECT$@qzp2xcABmoAv0x+aV@K z|MWd3DLEEPJ5g*r^$j&|%aGxF@PzXxN~!k?*Xq=h zP-ZFxT|igIW*jT7EpGDJhi>q3yZQb}{qlBBYSECA8PfbaZVlk%Pz_d9jC z6eOAfyGQ@GUL#DvQ)vid#p6q5KJv&S@B89SuB}$7)T4o91qe(#zk=^_$5es4&zE?? z?Grrx+$iJul+mA*Jqei24LB3Zk*4-PZ`Tu+F4*Y*@FE4=b{58pM?DhDNhVfsd2ZnC zLx;-&V2yvvPH1h?Yi=wZ^++s7fe>(U1|~;OT&>=frI7WiYIG$LjOHalq}ix;j_yk- zc+y!P&k;Ouy~bxAUFCtxi+ui(MIN}a#L{Y&&1%ph>gGy`>qs)bLq6+K%KMBKvrLWU zm>SJ9Gj9G(l(LNEeLUBpnDq#irjYZx>zO11l8FJE(yI`SsCKvDssP3d4zr_2AifsG z@W>5Q|Gx(wFH06`v>4P`2W}rx6dP}2H4uDmwKq#uiloeEcM{_tZC#C8|xK#__|T+wG1Dn0^D}yRHf=Yz7(=nX^raVe8CgW zH0QxjJyvaLC#aNWWurzA#cWmrw8o_DyONym;klAR&c$gs1d{aoP7&x{y2EU>VoO9S z8>KmkE=xD0fQys*OCE8=$4xQoraRM;FQoT zBidp25~Cq*{BWKFO8M>l2ji5S8FKu+!3>e9JJoW4- zcb^-j=$ZHGNqBTquo`wT=z-a+=4`IH(}HXMmD_$I83)efGy~RqY^9j9i+jt?Y*e6J zJ?c?dj)KXO%{I35ht{yXejvs_41)u}_e|QqHU2H#&>H4ejL3#%IGG+j)rt3Au9LpzV!=FN)Dx@*-QSxK#=($0AKhdy6S_?n3wK7zYOHETi4^{S-S_$qS_+>%!vOAIa*Om@LS4I*v6KVN9h z5w~G_N za|BVWds2_j`jRJ~I{{f*S{viPzJrwi5i#n+sNZ`D(`;5Vn}uHM7$!5CybF()q1q@1 za0HBJG#B!n_wl5XrW(W5ifPm92tmn%i-q0CnLW4w%Yzj9#pHI@^=LrAT~`bv0+<;$rNp+nFlJ6%^X*D*bLM+?^Yx9m*R zNd1qk>iY-Kf@0?Z0I>@fxYv{ZOvL^2VVZ?&SYkrGQ(eVZvUR zEj^H={@Xg<;Y0|SoiJ^@ES6pfBCF_aF%iC;oi{992qRcrJL*wbj)JifDB8B5mOhA; zN&P>>EW?xS01%1sZ(D9ydLR+kSg#!QNGwN1F=t!!Sb9eTD;rR;HN8X6)TjwKSS;;m z4U6l?vOTEffJvhNc5bljmt>u>ak#e0$#nn-0p})R(q5D;JyH!0OfVLyQIEoMT&agP`ai5pjY94O>)Tk4p73b03{R#Apb&6=3Z}=b@o(vk zB=!H0#5F9(kl8W2h`01k()KT~bH>m!GiDu!mdcyWakb`XOif@6%`&nav9qd#L^#1nG(YznmgJIh{^b06 zr^jsXZp+?TFT<)${U2I#zNz1}UV2Nfgt2iN+O~g|u@UgSqaKCjIHEKxtU)}u=v|E9 zs>pJ`%=3`Q@iD8iKd`qW(c^XYCJ(#d6F(OqYuA!c<3qSV6<@5qp+N0!U%3I zn|b7jI2jIrsZls*jepA?2|~DT7xF`k5O8MFF5oS_qcL^=w(Xxq2-`B$(w%a3AkjOG z;2tr;yWJ_??@aK3D6ou+cAXu|7QHxPnt*4jOZR@J=rXKAW`r>0%c9hF=4z2V+EVOYw4XJv~B+^hOwd%0JK=z ziIr*FrS`885(vS&W~vPCTfH_7lBa1$*=gg@nL5S5V%_5 z?PBn^Becc=oJI-4ig0*a<~)Dw&hTx~0>2PF##7YM)EEDOGs}HW3CY2Ts45}(`f!o2 zQHN|qIkGV?*mXrhSqc8j@(5)ux00n4g6C#yd~2~f@Z%{B*CK}p0-uKhm&Zbf8JRR7^WDcla?+%LLq=4Y|vY`gRQb&1RMl*K^2Jwz1am zy3sOE^26>JIh|E)?v}M^RfV?0^~DCJqpWlB-+15$fEH1dGB`K z>YO8#4z7y#l%STZXgZmnjs_=+h=t@2GUs@&JIT*Qm-#Vu6*pZ=Ah!NXWyiJsoiY+y z{uaW#Z)qZ{-HeO3MYr%5x$_XV89#%<_i(EZ@-;GOj%n+yH2&_i-HnFb)s@kLX(^o0 z>wX7FMGJ054vz#L4+bvx1{rR30)Bq#Xs%uF+RXE_8?%jC_Qr=N9nLRr@>O@#nREub z4u3dw`RdCv+|+(+X1J#DJJ6}`uyI2RbMhnxaUEFKWa5w~Wg@;lU+1+Wn>;tSzl`C( z-pulw;jGCZOmG~YlfAm#0U&^xakEBE?r8rBwg0A)-(}h{plLgQJKeuC$I}5Yl81{k zw)Ku>?`UmmYc>b(d9<7mig{bRYuOu0o0Q%G3VKMm!j0aJod-1sX4o zSi$3s{uB9V_ALL;)B>|!y!DLKlbi3UWhZS$bJ_rDKVRAn4-NixA8O&jIRF4}q6ib` zQe*35+bg?$P6td?3BKvdG@lHzY{bIYNS?-O}CFGi)NP0es}2fBDgLBB!ejFuZ#%!VJsP<$MCWbGpNC)& z3sUFv&O_UE+t)Y_&oLMycsOv`zyTc_gHwZ_J(}9~zb)tZcs&cML-~qQ{MKrb?;R^s zl!F_e0Cvp_@ARE?%GlA`IQ`?8P)Po)R^q+a^8D2JDnB>5M&^|Je2>@FET1)=)r?Ku zwd@0>Oln?uOlx?PMP;&}b)~uONOK{R9k$8hc59(4w=Zm4Za0qAvcRRgr$0@*SAUS( zPR9DSiuRrI+1#=}G^SkSu3Krz|I{@9ZeKgJFDAC79Cmpgbol9Z zFhU`9?zS7%JH39V?Jncm8ei%>5p6fxPoegd!*27jqT~RUL0|c&ho8Sr+DZ2MV_2FxTyTDxb9%C z!@ftThx2;w3XZgOT!Iqtn=3`MBRh*>MloL`&pS8r{L|4xXvLkZrDFw3A+$yafzX;b zSvxyU^BSY#)-qvjqWBdl_@%WezF7Bo>)EA&IxmhJ$LETc^^Ngw>vk>sWxWC`2N1YU5f6kJzT@f?e|hTy7u`b+k_d2= z<_AVrIp;=wcV^a7^0oP+ZJ{>o{6i(f-_`QQklum+ce%)SmMSJq{-AIip6ONjg~@da zQjwM5pplp*cU?nON#mHw|Wq6c~xvr$k7nE@X{E-+Vb5rx*&nLouEs~sBA{oI~nuo?N*AZpe2R0WlQt#zKnOf$hBB3 z7K`O1bARCR`Wut1$FeWuKSnYuLVjdoqp$IJD&oF4!yB%R^RA1F;fdu~;mp zgRbk*y)5uM?6cDyT^IOW9%va$zwEQzB3;JOVqnnu{iMg*smvyMyi=J?$9;AwbLn-= z$=?Z5nssR(*YS!L{NVKot|@olY5xhzk-TASja$9`1xmd*;=T1EzqAnWt21kT?{BZv zPGZ`AyYU~zMrSHk+YRc3y`GPqY}{?XO##}0czXM9vs#D8=XZY(ou;Ywb9JZp)cE^L zWO;Y>79bTlmy(yV!bd1l7Vg$(prpfZU3dBV>|E>n?S)RIZ#oZpX4_{F*8=kyq|fbc zKQ|3yTJs%R^G!nVtDNIk#4W~6r&IHY()`NJBCopnAd|$cbCaOimP0s@o$m2X9UqR? z0pPiCX|}bkhQ+cUk_de_x~7#L(0D9Ii_%c8HN4Sn-r7#|Q}^7ykFIsl^j7cO>uPKJN4L9`vWyE(|)UeIZNYyX_m|>))MTpBBkYcZF~ofrLzdB|-mbX@n02IlNBdXnP<=a*lu>9v@t3qZ38^ z#&U_57i+vIUmw_hhXSo(e${l0ITBpRsqL0qJ%o+JbLhO)n`WbsZK~c&$wXY|&9(dZ zLH{n^o1JZHaYYe-!x*1kig~&k!0%Yb(8*-1hp@4_=iTLjUt$&M*Z9Tk6I;sx;+V@` zk#}v5^7{CC_nmkrv*q~FIRHGz82`oGkqyCOv7ADbhU<%izesnDbhRxalh$I1BD!p( z#Yvf3d?wGQRXM$rSYju;wWIOBli|O^*mp^l+jYC^g1pN%{aJMSyW{wFF;3c}HA0wZ z-o=?dTklwgjyQ%Z3$~@~k1`izC zIQPoW29NRAVv>(%CfiyX!n>X6ogDxtl%rV@xenZV21fGR7i^Z{q8B5Bw)-rWohVoL zb&=kcZ4s+(i_FG?Dp^z}A~{>z#(v_q?J&~*-Ut0z2w{4L26c_-vKxsb2P*Lg-ZMC@dkYYhvlJ$0E{5iTE^d=L_VS z7akR1%>FEjDMHSuI#1M9o}xCnOINr}RrjYAp*8E;;bDyu=fO4IcDHj1v_giupr1%g>3&IHQke)=37%560K{xR`8x zK*fAk7TLgMq|bBuxN-QaB1gi-StzB9|5{+x{|}RGMs~Zk-S*t{jZQ{TlGc~@uIto4 z)wb2T)dSxtC9*vY(sf|6w7oyG#gZn9;rdc*dl$>_Qpmzs@u){(IcX?moQNk>+{v;J zN`=0o|DUgW{P9{IN5y>yE0iPo;fYOVorCfaYyQh}k?$C(kUJ%<&fc^%!f$Vka=9j` zIbO5W1D#r{Vw~`i03rCj8u;@8FUZ&VvGGk_Ia2Ao^GY3-b{1k>6h8meyTJc+&+@2K zF!oNeu1(gq0$SP?$BIH6a2IvnSbv!Bis!oRzB5t8``t;N={_Ibi}rx$^OKc_`Q_;0 zy&VS#5d5xl-jvxSxGpcL-Qd}c^!^bdz9+iQEuDp5lV2OghosV?bR#9*-KBI0(%lWC z!_nO!9nyl1?(We@2-4jh(y;gO_j&gZY-eYC&UNnVd)@bhMc$Gdh@oG>(ScH zVge?@+`(x`OE6nj!i}MtiM-Ci<}cgw^=j~`D4A5`NdTl@s%au}x0pz2UWln%_*S=u zWk>NI5;VKxZnES9w<+phJ2@kChFF8b>4!f>^l%6i`S9=8KShBeLrqn*Uqg|#O zJ4e$a=%?>5aybcXTVswK@>`We~e zz=d0fBNU06<+B#xO|4uzQm!!+GG))Va>C@6^yrGL( z(?c$0(N9m~@D-xn+)-=0`%ZN~h!>RBcSC41>rwaVwO!ntDc2+4F6kZ5;!E9m}KL-v<}SN?};P*{+s!xpXxvA6A+xAxVGjRnSxkj|%o*?^LQTcg5pQ&F99WuRcwirmL>Q&PjU^2)G|+M@0To zBwKXO5;uvy1!2`UU=og0_6A~ft`n1k=*~-u-{_mq(a1=|7z=`n>YAic;Du6aC|zDTqMWgD)V*ij9_9{7G}acNq4L zJ98l9%WLs7&8f8#LRd~N6XzFeUV@+lG+TQ(DH%7>azB-yLKi}k+{H@b2M)GHr2CYq80;JqfmBo z(R3bNw|C0NF6zg&8 z%X$p9x5-8Vzx1|uZO*@*(MW{IaT167sr-Ef;CE}Rnsh2LeQrqKX|!=f^U{z-8R)$$ z#ro?iIEF++?uxb=tdrAF0LrHT>Y{m}Y3n`_erGgJ#QUUJ{x|R2r^>UO$+5TzNTT8T z(7K?}nXHCs050TE`J$L%0&nIVJ;Ug$&TQy(s)T6>3B63y@&E}-Is`VISIvaV_Cgz* zGPyiH!gN!KX-+Tpfo0qNt3251Otzk9N(HOKuFxxW8K{R>&-lK|-get;m1UptNUuKn z%H9yyXF{#^dbp@q;MxmWt}6uHf)o!%ftl zu{cq5D34et|A3XtY%x$GPZFp|uo-*rVesYqqqE#*Cke9Y$*+g_2pH;-?j4g=QutFM z?|EnXTz^g>{AFe2&h78DBwPl?Y=-KM;}fD4LLl1hw)Xu`-#W|5-7#4a=@2-`{oSpqoDjOgK~sd}YbT&``-CG?@;A?d-#I5x z8ji3-JtWWkz}YKF?wRIM@dU522N}G_KPkHtCiNN2329uMjA9B@_>P>*|NTN+ zDP&8iQfVr_Ri-tGPlfH`!qmZ73i0+tJ#@2_PSIiD9D%>sXkh&LYP_P8P4T)RS z75&CD5uu`jpZH?sAlI(FL=ekUmZXh;#rycLw86Svp~Xs$5UNRUH8E`IH1@2+ILPTY zIx63p$OZU0XK6RyVJ>kh(07Z&W8Amr?}&EbdHKBioc4%4I6JaVy# zV}FE)4zn@-)yca4EOTkh-zXcn70@R@A%RS>Tk-TKb}MZ;%CWtByYB#4J&aU z7yDmlEp+3xAL5`vb=0xygWW*Juk9eSSxUV5 z)yUz0g-ohEo*+Z|MMfuqR|SOlTF|(`s!Dzzoe;khBS3megpWbE(NeOkGNBRZe1-F9KbjX<(60}B0FJAoOmq;u!s zB}JRw-SE++7x*M;lF{0UqHG;bASxd@b6SwX*8?dH2*&)X{ZEnuhQPYWdKphDA^?1V zEqvQkE%iz?_&8AFR ziT~k1@>`uZHmY)I#GPS6QZVsOOyQZkq6qW_8&Xz*FWo^-c~8hI9XAaWSHg3GXXegw zw)4tf7?x#Kc%L9EQ12Gcc6{1BYrB6n@vHr-K#E&mBMki!c4Q51pT$A+lj9#@3qiy| zoXHgMdzMvhSYe?Qe@&^4$I2%iCMT2oU>?XeC~U!Im93t$Am>XCFL-2M#hu_g1(Ovj zdC1Qaq3(jvsGEeb4*{p|D&n6Z@yZJbQvA0^8@Anr9&aSHxTf6 zI}uQbNb_-Z`LaR24`iV|>myt|9S%5?aDPF{BKFhuZ$!ZOjaoub&I%=2)ND zsm=7iEn^a%B&hTLKr}2#^~&;PLK?fE0v<|P-qbh4uf_0$hiiSgQ{zca-RZpg?C{{p zL36U;qhj%!e`?RtD^Yw%aO^W;3|cHb_j`x6s{mQbz`V=_N?++oNNfp1x7Z*O zi0aI3REUlB;z|)BNJ1mz_TfVzw=iMLlHS-^a|?_nf5i1jRc%Kko}ZnDCO13QtDIuv z=<*4ExW@@08m&6GWjQ|il_@rwyF0PWXo$;lE;8wE_=fG~6CXtXR%G`l$G2n-g>Gx; zFkip#k7Y>7!dCP7dy4Z?4eDr)n+IA^LZ!3Vb5nS*gWt~L{$w*HZ4;K6No*cexQnD0 z<}x(^IdMaS7ZbGs1L9-;gDHHw!Nwks|E(MCpT!#Gu9G<$gIV-7%>qp=_O4G5FB}na zHVFw} zpvs)^`?yBU3Cv8EEY_YSBgB-Rcxp*Z-?v0wnG0K;vz>#7mnwxP{7Up7aYFUCSdb(U zSYBW4(p#sqOt0LzFh1{c(Utj0qt^l}r^?)z9w69u|2k>fA3XvT)G^Niu%GmJ-BM+7 zFWh+oYXG6@bCT;D*cPW^h-L>=Z~~5NxWic9_S9^p9DZh$*)0g_8T_}$u&XAUb&KjF z>0(DcV5M7}bS$TDyti4xKNMSzya|ttoC0QEjkiR($W>Qli$o@VTsyJvGjiGy%siFv zr4`#aQQTGLdy<7C;3P$ViSb0!u=eZv(f}y>yZKPHlR59p_5CKWzbEPoDwDizWcWLv zOUUcX!g+e|7+WTDe_z@6zgp#YPmYmB<1yzYXVjGu_;>kx@7dzC;fnI zj`Gv!jWpkNedk;l_)-1I13%lo*1?qY+)$v~BJps+Cf_P#Z%RP1&K{(isYuFBf-21Q zXU)PkBMlb4wBmqK7^;zxBg~H~PT2hwS$moE4=amQ(DAaveyDc$(#5qFODf=2C*PmW z174>8w>lR(U8>3TE>ER=aGlrDYKe z*<2nMYU8rMCrZXl$Tiv^+(@r+zAHRpd350)8F{jJK3y}(rJ%^`k|i4w+R7-&$D%~) zXZXgP?O^KLPKl&H#e**`|3l73i_3e3Ncj?Pa`S~+enG4x-8 z=@${s9uAS8e{Z~z|KT9ZR1u9PH9nL8&NWr+GcTf>4T{1amBHep3I8p9+!^osO`&B# zFNp0ddEMg6s!*>`cCGNy+p*w%UU2MB5DOCIcSLJ-UWQm5p?j=0ZPC=JU60SJU54rp@%UCrX6F{+Q!Y?m#WvG6nsQFASB+w60M z9`{taSEeT+lXB=hw6sRam0a7|`f`7ScrWz9uF!E|MgbbB=f@u5POxQU<@g-YsqrJ? zR$+o3{*L#@x{x_1p%&f&_dc;$$Fsou(p%$WjkX34Op5w;d!>xmA$b$Rf$>9A;;^dE zsUfhuk^Nq#`kBnZORrWTUw+u(*LOnmLIyn$n`%|c+IXyV#e5|+&omGFuzMFW8xnuOuOxXXJk!>kMTByFJzEVdg z);|*Scmf~bMz}Qr0*!EgU&`cc?`2x^%NR6rQde<<}YU6p9(G=f4bdCB>%MCi-xa- zZSR-km9M*9S$=Z?KF?`m1nb%DNWM9j;26(7%lN(MPE_=(X>sb5ryfD4Ot*J&JHz47 zRnE@vb9>J_1l?1(wq$zc0rrxPqhNDMvIHaf4SJhc_S)}rKQSj0c79g|d5jxTrh!)# zY+3gL(H5Nm_A<-5!O~i#R-YrotfXusL_R{5PcjUj&F3e*tr+4KE)wt6;G(J|hn}tS z$`5+M2kw+HafXSafG(HE_YuC*dp$|EH@jUNiNmBfFzkWzzuKM_}rr@Wa zdRrxC;f6qLrkhHRooJSNj0IAWlIVk~*75VHfwJ*JyTZB9+3Wrska<1UXM= zsSUAXxy~Y-f3*o_@o-1I z&JK~QX7re>qmO<6w1}}GcZjvFTz2r0PSuNDhq#@yQ0OHI`V5wtSY`0+%?}!l$ly zrOIT>M`LLL81cR^A@qEj<);Y|NWwZh79U-l)eO+HfNO5jpUR2_oC7q|ukIp;Fgxfp zs8WLQkVrpWi2+w!SJRwIf$n&MGlm%I$z+StbMN_Ff3;>(!Mtr2+*kpbC)NhOfX^$2%|EJ#?&OPeiE>Q~;!2 zU({qvHc)>7z^*r5a(GWFgXm*f6U<=4kPt-q+-K`z_#R}h$9>(k|#gm@y{dw4Jug$k$hH#q(g@IgAD>9l~=THT)d!}G|-@FnMTg*hi8X7sU&;F zi<3{w$QVXAl^b=X6XCeA+A>Po6NxrTr2yDc1yyBMd!U`ig|w8_k0aKW}#wEZRgYqF+KTLwLkfE zD5slcC14o?SP-w^I`>_(&)5W;GKD;DAxmE)y$+k-8iE~?FlnzHq=7NC7fK^fjPUTO zZO6v((_B3|NRI}5x~=8Y`YOw;cADd~a-`V_o{r(wE%Pdu?hXmMX6{ya%!gRL3aZ&* z1|(vMkZ(a-Ts3vOgO{&Z#kNHgmF70*&xu#xuw3+bg$lWca+vx-okL{pz}YpBt}HRl`xB2U{n`b(0$9#l_m)Ry!vAJm_* zi${{P1yA`q2a!+REV`HWWgZ7_QQ(eX;seI*M+Qq}pT~v!cknM9=IR5AtsJ40;!Rc& zq!P^E!g@Jb?Rse5n5tNeV+(rolA;!`ca zk9Vg+vZS7biTLHcpPw9`G=9HINZOrM#`!F2N&zeB7kW>oPP|n~Uaa$93<&O|)N^)M z>l#1py3MFz1}zv}s9Q+!Ei{YSxJH@=Ygo%tLjC@0`CdxG6R_=1hltf1IVTtZ{Ut9! zG3E5z)5N2#KE)hu?+Em(%knMjgibf+ zFVkMRoj^ztIC`GJWoS^Igd5$qzJqi*+^^xQry+;-#oxw!brSyT+$-+$y2EaocM?Q! zl&^httmQo?aLV)%GXVQ8}Bl`PQ*vnJ2hF(q9tOL)_KJq_;(bP6S0RlI;ac< zy9!Iw$;7n4116IKKh>e#X5d*fMRE>yP zy1!yob{YBN^3yC^=`t4`-bKSkOEq0wPlEZI$KNk<2O`a$J!wabQfqxHp5hZjrnZ0I zxj!HDY~&Neb?vyEN}p|9oOSe(^SvLMWen2{cwv`q4)S*l78pwmf7u)#HOk$WsY32p znor_bki|A)GRy=xE%xjRxo{fEDyLnFkXEf^e|szZ1wVSZ6_?%|+KxGe-&|t;CK+%( zPN7Qku&txu+Pw61#Ry=c?)A<2sOob0;7VF@@Yb*bYZlb0q3LB(XUh3B)%kXA+hIJT zqH;RoxU=#J3xH6Sdqqnyp!2-B$yJW?xd;GU3KUTTMmPzR7;?o(9e9`@r0wvEYXSVx z82^(MeVBX#%oPMQ*=GY@_k#t#-&SNcA1wPqtEp?x6D! zP{~XT!{yOU=S-p^;9%QOh(Jf6?_fj32lai8Fe|YfbRUyZwa1laTEkkkb+``Mdap}Z z)L|BnwctG#rdcI!juRiy!y_h&p)5k79@BAABH{G!I?p5KZ35}0S|V53)-i11{>$_L z6%LbQB$J<>MJ@$8#qPLB$%4vWf>;G44F0C_Lhl*5!rQy{l%-Hi!2Xb9qEEBK@{(?q zXaeEP(JJ$;Sm##(P(VuCCl;_4>SCPG2c$EDb5cm5W$ZKqRg_me*AP$Qx*w_tl0=r7 z)Zx?osXF(<^Iv*)W~4`7t=iATe}ytR*6{c6viJc#OR zeXr(A*^Oev1+aA9o;%R+d@-?&rMHTsOSrjff%$FKDXzX4tF5Jy@#eo5HTvo6_j3oV z!qZ!rZ*D_VP=KsUA~7J$Q79d=A3;RMuGB?D=BoUgUm>Sf&{#5DB$BV8z77FF-5yn^0?N3cvof(v4Lfpgsh&k&vF z4L{I|Dlf{pNiIcqhW$+tBbl?OZ*<>sI&*h_Mh8zA`AY-Va7P9Cc3H3|o%xhNhmV#d zdEPaI!C{A7uhb4#Gu%y?yO5iUIm1S-{O;L*14v-PWePZ4~2h z@%1j4Z%G-0Slf`kLs(@7Ek=Qx)khqYSV%+eHI*s==*ls0>TUuZLEAm3`?U6hM%GC$ z`_=`4XrEN+W8T1)NFRs3Q5}##s)~vK1Jn(c0XjO$Vba3J*>URMS@dh6?sfeD+&O^( zo`~koam>Y zM#-5NP667^XXm;N_DfYR2F`@n#KLW6t(d6c7O0j3l%B#Pp;+hy#m0`mWmlPl`#s}} z3FEiZ6Vc#|zST9xHK7A?aXxQSla+DidB)fiCvqcZ;L2#+6GOA!$_?Z2e&Wwk;iw1X z*rDX{;Yr1V`BCB^nX(KQQ&w+Wl`|SZ6)3jC`1)_Pt8~Mn#v-bU2JhHyLWc}eXHCZ6 zJL#cB;IIq1*!O!e!$PEQD@_4eo1T<^sbOz3rOo_675S_ulDKYSd-Z9Q1k3pc0r&^O zrTUS3wNnpp%ZUd*)@BHftl4*!_0H*lt%ZWv4jq&c(1NXYSb#3tB~y4Nv6aBUpA_K{ zN;GQi20$uPZD!mX+(zcyH+L|JeygYlo0fJJdzkifd0gAqUYgKG2(#Ir!Zs zaQPTH=>yVY-If$OpxS^&WhsTucZ{9glUJgRqzGm*wI@~DQ_>vFKgs@OSzb$KM)MVSyANx490h7V~7qW1#|dfGv?O+C~ewIYb~edxEFl z0rQvohr)G5RrT;xkN?77C8`8RrKa;@l3hpXn(OsP%Jq(m&pH?#c5K6`-PKwR7Bamd zr@HM_BOV2RQh^Lq26=Gy@0a^w27x-)Dx!#Z4PkRN=8DDqCc<~qWw_BG>c$7PoWMhM8V1alag(2KW7r(e(QCCJrUC3 zTZXxR|Ds+=G!nNed-^D2lQI4m%=lD_-@0uvjw9Sb+SjmKw3Ju>nK<-OfInpo(hkd# zj-9JkmKp&?e2siwOfBf`)$X>$)@i8K2`+a>(j`v00QUC&rDtD@9J4P>!Pe_|-eMjh zwrpbgCpnOLfd%e!Oy5t`@Fh(V6-zMHYAz6V$Y)$C+SUGkY2gfGT2(=~QiR4SM41%dk2_LMFNX zgh?mg%cF7?_-{jGXTuqpewzFXNZBl3?=%paoh@w*mBXSpW@X%K7{UfNcKPA_g ztLLQ7WHcXoY5Gmwx?ISRm*8>daxnk*X4^_M@eee@A|kf(s>wJ0{`(22W&#a=jG z*{};aa>_D`n20edoW{Jp_P}kxpqD3E@BAgZ7nU1|%g@L2Cno=$=G*0%I{L}$Yh=iq zEE&I1ZTk~#fGmVxR0x*YYEmI^8_&3MeoQ;u&hWQ5&>^RUn9z0)t#29cceQI`~_q*4(jl}Rc zJ8F#3pA`Oxhx?p-4o6?*j^mT6UJR%p6A2!km0 z@H1g=PkDwIb7`J=j;l$Frr!cF9G^WfIBTSY^c_ppq77NqTPH>oR^`Pb3+5 zX=!=2$%Eh!r@l32{Bp?OVNp`J zPuel%AI9&E4$moKh>b|1GKGiAGj;AmTIQfNen3`IQXOWZV;yaY&ud+oJeQoJeEKPDselXZ)_g(B&U4n_2$(W14rG$xL=U| zds4H8;0p7i9&Z1W4DS;DDmk#GzZqMa#Dcjh0#T_J>!}7HAD`fsm-za<#dO##XZFv} zKMx+*sc7}nt8+@37t6v+kc)VpeG6&NN+kkW3aahtBi1HK{u$a~yFJiapcivlh9W3h z#-?zpt;KtWraIfaL{14MK>b@lOzbl@tyA& ztALO^FBo&ta%c)sozSF0a+c7qryQ)uPOw+(UTfT_eXTGMoZ-S%IV1Hi*Biks*Y5+^ zZKQNj0_j9#Dhe5)x3GEW533MjDf=giJ2q^L_IA^gF7lz#H?zBUtrrYjLb})@TLG{Q$6G zC{QJ)*nU9$MQ-!I{&AdpI~k<5nTlEOI8nXg6OH@i>$hT#r^EaJ^arjEyYPHN#KAst zmS4XwZtgA}7QWAsb?>x4y2OdJt`@)X$r$X;vhzZya{*_D|Dantj>V;XWf;7^^hrKj zPFvG3S}m`=1+9MVyPT=Oes&H!ZdVbqI<|i-OKAdS(B0SnV2Cpf3o(3!Odk-s-K;VZ z&UKXFk#&sca>=2tj||#$D*f`ogy9bs;>{0rw9=_xh}d{(0;)MJKtLl~8^Cv9kq(ap zCu_+KPGvBm^VT{CXrp#j)v7sux6$2PouV<5A*865?JWKpD_^KQH%^->>P*JZWuqHl z6Vp2>ix{2^(D#wLVZqRvynnIgKh0bVE(^tsU z?$%sPg>i!D6vng)bQhZ~wSg=ojqPsAy7(&%t$+N{@jI4KD3nw6=&QT-OPXY5jYd=A zRC3%G<1u^$yZ8z{ORqjTEO!>G_+gi*Lp$x?IrC3;4TlY>)?uImn(TIBDkC;(2&D$& z&A;|HDV)d8y!I4IBjgM_#s%inE-cU)MC~eSgH!}|E)=4PrP+mXo?dxEqS68=9WjNWdc;LA{OU UHDXZBiVbUz!t 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

Nu=l< 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 U(Pz}jp#T5?07*qoM6N<$f)@CT2mk;8 literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/async/concurrent-burgers/concurrent-burgers-06.png b/docs/en/docs/img/async/concurrent-burgers/concurrent-burgers-06.png new file mode 100644 index 0000000000000000000000000000000000000000..4bbf247c0f3b51a7e0e4edbd454146442785aaff GIT binary patch literal 164838 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

4RFXOxbDw5LZW!icJgDC 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�@*isWQ8&$(d@c`puDn{l}0L5dTmS? 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

$${1cpK2$znyFR)oyi=M{`Lf^ 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

bcb6( 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 +pM3o2=1>m{-Y4;yR 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.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 VzBl4^-eUj&002ovPDHLkV1gk&*@6H7 literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/async/parallel-burgers/parallel-burgers-02.png b/docs/en/docs/img/async/parallel-burgers/parallel-burgers-02.png new file mode 100644 index 0000000000000000000000000000000000000000..9583b84dc239e12f7b4790393e2fbeb9dc07c16d GIT binary patch literal 203644 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 z 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

Onv+Y%F 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%0AYei|4 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 literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/async/parallel-burgers/parallel-burgers-03.png b/docs/en/docs/img/async/parallel-burgers/parallel-burgers-03.png new file mode 100644 index 0000000000000000000000000000000000000000..bea9ff0d8039df561b328eb803fafcc6f1346a0b GIT binary patch literal 168628 zcmeFZWmr^g`!76nH-a=G5`uILk}3!&p`r-V4bmVzFo1+eNjIpJfpm8dJ@nAc&^gpl z^Db`h=h^Rnf8EEiKkfMdbIir8b$0yDa}oAJLz#@2kr)I5k*TUEz5;=8fw$N?g!sU( zOUn4WAS@6_Rq@el&-CqCk92*v2Fw8>rLn<$#E0SzXTabc+#FSy?IXNnZ>1K)BJV%6 zz3>n`zR$!QJUp**B=6upCf>NyfY|ZP&v5mFLaO=)Ci@-SD>*Ox7@}8{r2aq@vXlv zm52_bcBZge!EjTN8}AfOA;Oet z_&=6|)Ii4{6JpS(zc1#!CEEKS_P_ELq2>ASTipNm_C_co|Ci-}d%pCDiD|RMKFw3? z8T;*aXJ+a!aEmb^tkT&aNkK?OB&ONj4w4wH!~b~;44UY#vY{fyFR^FJf``geHoF

=#QVj%&%>%sJeT;mwXEdseSj}_Ses%Ki?V) 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
h}Se1glj6jVqtTRtAN2|-(u4!43>I+H4ns1Ny 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

+5wYA`U2h{ej&t|ugMM%C;EEU+5SI9( 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 O;HRmkt6HNBiTodF$1I!x literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/async/parallel-burgers/parallel-burgers-05.png b/docs/en/docs/img/async/parallel-burgers/parallel-burgers-05.png new file mode 100644 index 0000000000000000000000000000000000000000..45aca8e217fee2975f9b79c58a6fd2133a9e9bff GIT binary patch literal 185116 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 z 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Î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�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 s!MNjY0r`9Ne+uG#|5C + + + + + + + + + + + + +

+ + + Server + + + + + + + + + + + + + + +
+
+
+ + + RAM + +
+
+
+
+
+
+ + RAM + +
+
+
+ + + + + + + + + + +
+
+
+ + + CPU + +
+
+
+
+
+
+ + CPU + +
+
+
+ + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + Process + + + + Manager + + +
+
+
+
+ + Process Manager + +
+
+
+ + + + + + + + + + +
+
+
+ + + Worker Process + + +
+
+
+
+ + Worker Process + +
+
+
+ + + + + + + + + + + + + +
+
+
+ + + Worker Process + + +
+
+
+
+ + Worker Process + +
+
+
+ + + + + + + + + + + + + +
+
+
+ + + Another Process + + +
+
+
+
+ + Another Process + +
+
+
+ + + + + + + + + + + + + + + + + + + +
+
+
+ + 1 GB + +
+
+
+
+ + 1 GB + +
+
+
+ + + + + + + +
+
+
+ + 1 GB + +
+
+
+
+ + 1 GB + +
+
+
+ + + + + + + + + +
+ + Text is not SVG - cannot display + + + + diff --git a/docs/en/docs/img/deployment/deta/image01.png b/docs/en/docs/img/deployment/deta/image01.png new file mode 100644 index 0000000000000000000000000000000000000000..f2e058b58037657c26e3e107e00d886a5efd840b GIT binary patch literal 39996 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 literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/deployment/deta/image02.png b/docs/en/docs/img/deployment/deta/image02.png new file mode 100644 index 0000000000000000000000000000000000000000..897ec41fb11972f3aaeee85d872e74c859a81663 GIT binary patch literal 48297 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 Q>E&G!0ZIN6-k-nz5B6b0OaK4? literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/deployment/deta/image03.png b/docs/en/docs/img/deployment/deta/image03.png new file mode 100644 index 0000000000000000000000000000000000000000..232355658f54ded0b634f0a6c360c1255d94968e GIT binary patch literal 52704 zcmagE2Q(aS^gldXtlpycAc!uyAS8k$ghZl6*(K3y^llMEqNJ(`Aw+_(dS?(VI?>B6 z(d+7~znkyxU(S2Zd(M0I?94MW_xU_`?!C|FK6hqf9_VRPQ?OG206=~B&TRt#AVmWJ zoQVuZJo8LVCmw1kyS*7H6|VE(r6Nd{0J($YxDXtvS|)zVOX>mdC>>Pd?J zlRAfw8i|sxZn)fAU0IwS>8s#>(+t*kwzee-6!dg=-SxXuTV46%>IX%8UE#a0=I5}t z)NiI?dBf{k6nI=S7U zf8=dKT!+%98!_YTf~c|E-wo1@+D7sUU9X{jOer}JU-N4Zlk^cXE!RckJ|MgI73!eaVdr106%dy)?QTY;X=mP-p=7( zNB-cSeoWXc4z|c!oDT&ptgN3^Z0~-;?R+-A{9g6-b7^+J`#pEB7_33EBF&X)42|ze z@#}jeo?aYV39`|t3OU_VBqt|-AbzX}0GENgw{Jf7n^>Q|?>5=Ng?=t7|5WGW+i-GB zZuQAM&=}TqnU9QFC+V%65Txm{s`FbC3g>~%R+a49XouG%B`>M3U@K%a-ey^fb(IL4 z_3XB|W-~bmrgiwA@)+z`RtDO0Wj39~dqDvE0n4OQ34N(PYCt^=B5|Uu1tUQK&b**R zqpEBb{1FOJuZ8%Wsm{@I}?{g!Bp(7u?>0#6Dmz+Me(XY`%920;L2oVe!+ z`%A5c%QMLU40u8#Rd4aflV3`omKdpmAb`He1rh@JJ!~aRLBZE}X~NQQXqjx#Bc4vp>={M*2|4Of1sG-3FeU3@JIT84V{3 zYv8XGwJ&zJEo?rIwg0vDFiH75l`i3cAklGjH2J z3pHWF>A!}YKmH6zFqpN;7|I7v7|QKf0N^%+-JskM>iATE5?P#n)DgOu~JFD|QQYPczGr;WRDo9-oc8 z)2r#M9|$UTo?6+|->l~U(3su!Q2rWcp)b7=U#fNb7J&anaeDQv98zJkQ9yyW5@M!2 zvtY(0d52yEd7|$tZ6xyl(D{LXZ$B`mm|SQ|Dsumk90$r*{p4+1a`XMVAy2Ta=$Ub8 z1*3)qNmYCS`8=2?lOO+>#|E~N%7Cxx*AtWu?c$^Y^b5d*AtbS9%y1r%pl^=W{!5yS zrVPBoYa;`O%-mn-ZfkhyRUa;vC$PQHX^j%+_0LqxFUm?pD6Lw^g1n;f6{;Nfyaw z$8?yy>9;cO5s1WZnFdXq#LHCIvLBohO4rOt#;7|E@;^4`!#HEi*A~~;jgpBPP1stj zjRT|FE(BNLi7=akdSH4u&yNDvmYU!A6RHA zY)3VrSr)YT`dKwy((m<=N)RWqoGFA?Rl1l0Rm}(a8V=R`xb8n%uZEQyCb&{Z+>854PbE@4R+$PFlf zYglY#Ygu{a*7kr(`mN?~cw}H@>@3kLP4o9f*5WFXOv?y^mwi=7_UgZE%y=y4KC{{S z4vr-KooO7k@yW$w|4?Er?06ZR2Xq34$n!#hn4^AGt-g%nN1)#+die#22 z-pfNmACN?*Bp{$v|C=!XW6A#^%>Sqq4KSeohim_bRsHsW!-JKLx--j!b13kH8eer7 zj_VC<0*Jh=3f6nRQeLamCQ|MOg3!T4Aj$9V*IE39W^H zmH*aA)CE4q#46)w4FDB%D0bao2w+Bok2$2G76O1W=Y-ek5Mb;EQ9FQ0(r6-$1OK(p z6FC#Aq&R^mGS>w`le|Fb8$@ZFpg{r9ME)WjKMnzYURNSsk+nW2K_}Yb=pk)cc0rDS zdRIC=wdHnkiUYG>X`INEc zh;FgI%y%EnBMiznO2^wYnrzP-NdMlw<9MS7KsB|V9I`00qhz}OJYcNlM13{n6m^+0 zW(cT+n%@p7E9ZChdKw=0*hhWyYV|l(kZXf8{^2y`{`=bcI)nGLjddb~+obq;FSWYR zi$gAIOvSdGX+tEC7FKO$JbId^ZgcDQTe=jAS7I|cK-wKG+i$JI z=ku}3`>oAZb2Rq%#ZC$>Zs2n@kg@R$-Qo=^Xr&4s1t!mDy#4)tLfa28nHOrsNS&7! z6!@@MyL73~-y2oH_t~pvusX@7@B8fPu0iw@-{)5qs{F_b!PhnzHgbt&pf3XMqai9a zU9=J)kA$xTSnc+sDA_5=wEnV6%ak}ci#W5$1rOFpEs*yUH%!p2Q$Ovc zn5k9g*dH!!odj8aP`3E66eNjVX`|RXQa-B72=#(A)EzGz`9@%a(LY1aeB7C1oVJ~U zGe^fIu@-h0Wt9=@N9AHXp~_wfN3f8K%7nhN=~Co5;dF_IzySyAN7C&+Z|I>vN-eCq z&_x}{znY|Qud)ht%Lv=wt7;pyNh%EQT}u2^8gx`sBAxEByYX&6sg2KPWOQJvbSSG2pBcn=fnxX{7 z%O~q8EX2>MmA?+OcO;%>(zfsTr)S4FCrs1)?frZB**ANZ!?$l0i497GoJ~GihTAXp5Q}dPktVF ziI=ndqN%^V_lF&m=UzBIm#JPAmpM^3U-_7Ad2}<^ErjCO(9xFVsf`l{ar3 zm!ISxKX8|zjk2>0YxN+<$Y-&h`=ljU+lM?m0K1m8+@8zcmL_LC=$l8lwQEmfaYi^ z${WV`Uc~u*6qTf6zWAIgftZb*=C(D0?bJe~W}M&a5fqVw6n+-&aT18{I`ZtLu7dWq<>KyF#( zLuB+V37|s)=f`~97z=pU z$icfr^xu!hccB$Ea=fz-Rl8Y}@6zKh%R$dO888D36f~8j89xw~W6o46kiZjkq$T#g zApbU#78oH}o1yi!G7}xmz`KHd3T>!qDAxX3RD(v=W`vJIfQ|y(-xvGXRWcK0a-$fi z5u*1oLe;c_Omuef8>L?s<*;72q$IQZ#T^Nr1VIPNR&sj$_+xlMfg+WH7|G%HgBBBt zV+%anZk+Ub4(6wodDOz=DC4qyyEoy9uUqnRbZ;V$h3%i?qXRzk%8&uimJ~CgHSEwt z@0JONFI}R|znyWK=fjn}{uax6c~@|4rADlUsXu?o+?Qa)TyxwP+L(u~tdJ=x3bm(P zDt?9D$~Zctu>nP2W5VCtSrB-)tBvn2kQ08N;e_(2)lv=hK0>+A<&K%FO;v*y0`gl+ zxOFJTB%9yO?ooHz0UfV1hpjA(?t$M_JU{sGX79Yhl(73{hT70fj9kRW^{Ka$n6GUf zEf#EfJEg$I(#mQ)3*Udy1Yy-%9p^L4evOUP;^i7E)0JB7-1oH-@g-AHvcc^4=-Voe zM`S`d1|#f@F76~sA-4{GW~k9NROMEPKkEPN#5*y%B|bU%&1>^_z0PLg-uZq@gG=D^ zy_~i5C&Amd=DxU?@{E&F0saR4$Lx5F0X?P??I!(NGyUk2)F3{-44A1OER)`A?_+_hA43YQDJ()?3zR?FH=RdYoDL$=9j@ zm>UpdpJTib{qdt8=Ta(Z(>#F5SG4Gjux?%6J-e?bEqD|PfY*sLbo^nw6)In&Mn#K2 zsDrNp&7{J9eWN=r9UuZpNdZur?`|Y}xqSZ@)=e8I2#(5CFx=idi0?oz^ zr*e;m7P^t|?EH$i|b zneFX4F#xED9)R$pqDUdcuC}*{p!7s}EpU$%BBMfdB}9gQkmrA{!gc=_@Q5I4=r*{w zw0X>r4W-iGhksIZ>n9pq$F0&9qU_!NJpDt$-vT?W_5HSYxi&JJKOLeD5gpG{^Z&|z zW->`ab1e;1k#4s{7$2DqP4>w8`lJ`Z7$8IOKE79Q?+p5#uDNC7O6+d0%;f6R?$&xQ zD*w2f7yg=)N87P%g>Zd8p&3d3+i>HL@%${V)3f21@3^qN!%Rdd*RTBm_sd&~_>dDq zyT6V30TKIYl*#~2o!dUs=}YcD3SoQnPg9s>Q4o_&@5}nxGQx+f}ixEmGHPEFp z2l2_*cD0_n+RriUZ}5iZ*M5Wk4X5gkC4V3c!M+V1D(SC2c{CHgL$+{XqW7C;x2b=Fx) z^AC_0qE@YOFPT1YVZ=mRo#~7c04f9cMwEc^$gmt2D3h`qdYP zmj+vD6O`)vIhN&Ky6`is-HXSLq&gLQw$UZCF?Ww;;s{jB>EBB5ok z^twb)lrNtt^NOW7D~SRQEF`0}dS|AKoycR4jlizLvvcM6I<7#!M{pHA<09Mfg=Cs{k3=$Z zvu3SH>bUo{o@3mQF4R^1WL2hFK`olIaug;)w! z_inY36O-uA-&U55@;XCOP{f!Pq;GpmdiDOB?P&_XPnfE}Lt(UY?~)7#4r|J-8O{iJ&DcwFgKJbE+-i+{l-Kxu-#mHm46N>R9XiezjAy_7l= z$$ECOul%feVdU#n`oI{|r7XVyMg69y8&w##8%-6D7Kh2)v?yGo+Ry*?EGx_LZxoRz ze6BuuQ&Klgk?-Hjf?$zTDaIf29Q1C=y?qwfVthh++fJa$S~k`6mX?po(d8Ieyz|I_ z9Ni&2O4ozwrZh|R4a_{BLPS#a+g*i>!mY}Nn*98Uar)I!TkF^te-AQw(hr04C*BC2 zS*zhlRhHe-BrImB;Mzd@FK1pf!&a7OC!@s5D?-i9V<^JzCZSvxrsqr$(6kM+P=B(M zP3kc9ezu$b6Rnj|oCGO&*9tw-&;0S!-@$W0;4}Ai9~+MHtSYAd95sdKT7=gZg2t~( zWfh@{g0?5XR2N(6aR`;f5)s^#Ai~(28ZWW5du1_Prbr?G!$xtl%ro)F)-i*slo7M) z%tJT>U|q1W{7GC^(jd!4EV5Pd&zLBL*}Qk9DbOsADnBlD5XK|5$3)oa=(Rpyk|E=S za59v712?7=LqGGHw=r!;J$(LtorKDWm+Az}F`s4dY&2&4#PmCL2$<{6;gU6v7(p^*ubr?Gcn{tw>}&{JXNpze4o zg=dmk)N_#0V^Q5$g0b z^?Wn)Rc@lPrf_+6MFIu(jcA`Ezk-UY;p-LWq!cg{=q*r6VyH}XR{{!?fA`-s`Ieba&uIMU8$m~{!>#1FIqR!)Dej-%8xZ$RTaFLeA)V3g z<3L5PnagEYX3hhD)S80lpOm-d5?_tfmILEhH|1~-%I`+NsK-hsd^H|2%doK#apxB$ zzcXmumYY8k#Ak`o0K5?4D5nH+$L8?^_Dq?V6GWS=sqL0Ge(Z{~EoYm_E%* zm4qM-PJc0=&=<(GSt2yyw62NktVqY$Sh$m+c^Y_vX8pX3!u9&(zN<#O6@I^?$Lp2* zq4c-!^vk#_^4+)JyQtH>=KtqT5-?^ugw##|G+w2dlq#62mzsY?I945Z;)*|yyQatr zlKUdPO@0q<|4i%933+VN?KN)jE~?h#HzN(;UNYNOL>r-@M~laP(+tj)_J@Q&yy~C3 zXUF!78IceR|E3f16+$E-YBYm#Fe%5&G!jyCdbgnMNjag8h!m1&^Vz`F_;-uVGR?vo z1;-$A(DOjqFe%Og7v&?W5ef)7E>*hg>FbYI4rN6QEWoPx`c&6;bjYt8_86;V?vWHN z)?&u`HJlJgZCE_O~*lno$koi16Ox&#o_mXlk1UQ=B~l^$8=$R z?>lLBrQQ4kUmyMpCm%pj_-3#&YjbR~gh~ZHL5vkFid?2tt(ji5d?t`p-*nQ1eLi>T8~tHC(+|z1)`+c1&6IMK5FcLu$oMp6QLJ zy{mlklbeUo-9OTK_y+rjosn6B;*Gqkh z`9^j?;{GlH+0-Y0kD5E}3FmrnK*-#tvh;UJSgx$XLOH^ON>AULbmVaHB|tPU1;CQ& z7X8E3h&4+2i0{)))Rt)0`;*_|GmH%{>o4z$*x}cQsBF%^O%K=n+9W$5buUV)Zq)jG z&G?~Z+Ii{=)^}q@(VN1%{S83jf=|e!^UXrjhECd4h2;)iJw7Qbw^CaR>G07vzWQ{bx{=XUL0=UmrjUp<{v+6dV3u~DLG&K;Xg*hNf zwNY_sbIfhL^aI{^E##q8XwhKz;)ZLN_w{@+Kqz2~rGS49@50zx*zNEg^gekY+h~)i zfadWS<@!7_BbF%oX~|43c;~f1FLdE{pJ70^qY~Wc@_JxEp|-8*LPctbT2*b8Uya|r zq0t);j`@zKBjtQqe6Jp|hvrV`%KrIZx?$d*`CJWGo)OM#Y5*EK+lu6IQ-;$?mlY!= zg>OEBG&I94#cXS*jYf4Mf{XBo)8AdMRK7di!u(-krYq!dy%Kw!*soXoM($~=mjJLS z+U{3AM`n2$nz2l!cNFNo^V~wYC+%HSpk`ot`m3hUTnrFL=(0NYn$)MC+KSMBVc8QQ z`8z2>a2a7Hmn`}}^al{6j6)pS6;vXqSR|-H|2>z5S(cNnx&U1gKl!Co)w_}hD>k7& zdB?7QG=!o9N943o-<8y~d!=0QsTEhfIgAj2Py%mz2)#55V{$jM_XP9_VJ@?(;j__|j*{iXWZz~>!>`aDVIWa_Tz#5L<# zcfd@$$m1yRHqSiJ7r*02RrbUp^~$E|Iw`IoN1HK;Cy5dTzHjK*nD?oB0sp3H9|6rM z7*wzTrPo5$-lgf>N4z_p3z)(s!gjMaTb(b3tHo zew4Z~TJ0i8k!%p>0XPp}3!lG_3ley&%jY(>9#M ziu%8A0m`lUgGe0Ls48(k_Rczf%_64Czgm6z&3BPj2b{ivA!%?-5cl6m_iU;2h;(QZ zmf>UL?Jzsxu$gb|H`fTdgMb#EbiJPyXvSCsepU2T#RS?=OTAYWK8E-26 zzs1*LG^zVL@kZC2h27rS$@b3q?TuO7l#5hX!+o2}Xt$Z_E%%SBZX)1Vn6I-qj*SjA z*Vt9m)o2`Aq-WL}XiEYatHOSit#oEWX<0T|;VDK@l+lm~>NL%-(q$}YndL5p$;*gX z^3&Ka$|<-|sW7(-6BHn6d<)I;jkiElR#f~||Gb+W{n*;xV`tHjwCm^;h>q$;2sRwK zli&;h=A05C^+UZ>cscSWx)@S4+*2woM%2-qgV2Sa`~&Dx z6PS&MPX0uSBXseU0pMXv;KLWp7Pfvmq@7{^m^Q=@pp8AzK*O>jLqkp!xzy*T)X*$`6F=x{Hur%2i&XBeY1g-(zp6s0w)4p_?`W~< zNXs^cDeF(M?UH@i_*L&FB=d0uxI@o4PenW8)3F1=P&XP}MPCaSx{hYi`AO<5jZ4V} zvlv}GQ5i#z-i~rP?BsJuIoLcpkcP>}tF0k|`d;;yz+_0$f1fnhdpS z+3KZhBnL-_WoT~VDFvlMtoCmXBAFWZ@(c4Y`K!@rC*Pu(BD zz6mVnI3QA4@!HN{ubE~bWX!#igsIVk{5VTeAO}Ab`4b_|hG&_AadT&f;yv=PjZIQ< zOvEB%mlmipcuwk`wL6-*r;E#*^HmuTV^uw6TYs*p%ekUM(Qmji2HCeO1jo>w+?+yw zY*IEbwsZgYuga9egKyAQ4c%&4Z_qXgH5P^7Si-Qf7qBl2SB>bzoK0dK*q8-`DV&c~ zmM=mp68?rGoxu-{WT1x>Itge*K<(J1))dy@2a2j{+b#-YsmQp7A)Ov{&eV-@k^UOU z?xnpP%NL28Df1+#zux=}lEh!%c>@Yy;jX*BMOWfTINL2!yWl)zq7V*OA9b_^)h6J>xm~aN+VD09i&W@t$C`Cvb zd+0Th4aC$E!g&P}A?Qww09!C=NXJu{U6Gi3f{;O2H2}vau&g&Qx2u%1<-fGP(Wtql z(7F{mupN5PyO5W=e>=ip^yp(i((DU?)wI%bn+ho;u z;S<>bPVy|#?ezVWY4C?PT}dmPo9Pwq}#ek+Y4_Hsd%Zy99NG4V>4 zF${lu^K828RU@B8-6O_U5+4+OsgtFM_^XJXYQpfPA#Uo#%eG{NRJa%|q*{33(ycIZ zv|D$MLH`2c)T|m})}oZBri$(C&A02Fm(j*cBUFM`URg#RDQxNM%`m`21-G7kt_y`7HYd5MQNkY)Dwg)N(&R1An6_OTPUUBV#sx_* zca%%j9&i|C7>AwY(I4Nj$rK2leQ~Rbv$be6!WfS6oM)O)fS-#0nrcglLE@1wmnapb zZeh$KDj&-*Yr5M2p}$s^-Yx$ys2xK0X)=78FRG-hxkBPH5}vQ7x;1~!18W`(Nhxwf zIRDH{Xo!MR!fqVQ9j1)LG69@?zXD)miq4qsATB}c?OzsBbm(XFYEHhPKy7h$NKb8IHUsH9 z`A`(8Qm3wNvXjK%XQx04E>iMVi7|+y>S7@mDhfwb^mk!5a)GD{*HfSP8cgrfFnWvj z>rO@m1$uk&>rH- z_b7e4WPPU7Z88=1hqpo_+v(wrgLG4tf5P({`Q&v1i&(F+UE>0bD5i{+>8VJ{mM!3{Pvy)kUsVi`5_pgWgA}95hf5WDTS8NL#{Mc zqlBqx!|tN(Dryn?XwWLH8_9$=(sZmF54P^LeJQDYlHXQ;o9C0`OV z$#7>=VYMSK?XIcDhzB5%DM^Oc3xfn*8=ABJhNrYaA_$JYtGD8>)+8;%q63@Jv`h9suRo1#U5L(qKZ@uQ#?+?_v zQ=(`98hY!W5Oa?yw?H#vWGs?BLpvhug?Q4;+h$3+sK6IlaVST^sC54F#GPW>N#6%?SarPI5Ws;@rOjAjt zh1~YHVQndP!cAJ#gdGwYq$K+6JtiB{)g=nsOt$%tLPog2^EtQL`kxCK^dXG~r!-oy zZZqnJ%OFf0Z^B22y==18w!`mt7pNswbBbl;@yU&=qG~*Qg8Y`LDQ*G}LL83Fsgj`f z_=Cs_PfzU0?cQi8DV(2n=1CiRsmxOILj%1u z3WAzOCzu4A(A<9BoB78P3~#dGw1k2a=g5La)+Rb)tuE}v6lwvqQK)cQ!?b`KMpW{2 z-M(5RKr~tLB5=@KFa5d^-e?fg*9K!wg(rvsrR}jFWjV+s^5K#&+=XA1>q`k?&S{6l zU*)Nlbh>WG1`)&8-|!5x_aIjVL(;;VIxC5_8QJz3iLfJ zy^GcBDu6hx4cdSj+wJ{#ZZZIs*KIoz#Z;lh*fy~P^i`s1Dl9tfI2vKL)q2Mir-Kjt zorc2eW9*-h6&}A*6dpphJgyybU?H1w$N5Hl40kG^GiUfUtbRIwm)~{s%)r;ue4WaY z9%RVhXG`!#K=ew>r2b|};V4gg20yrJ&cS;hN~eYpY!16vJnmL?2LBc5F>oIiEVz3Y zmiSxE6UdMu^#KTi3(6mU>wwK@f6iV{T<%B6>1U_ak2kT*!7`9oaw>$1mrX|Wgkbig zXP~%PQ#+Tj0KxPhAFk2hj2m1UXXa&^CBrc;jqKq?LCj*4wNuRI`@|_ZL|D&qmnVS| zKaNHqZTX(Ol46f*?R7-QHFJPSC{D4MYpn8`pDD1ls+@3zrS`USU=&Q5p9HqaWN}%t z-7Vg!3Aq!kR^)b0_`7&~aroVIV&FrL12Ns4%qv`4CO#~Elo-{3=fD(^Oi1I%9*rg7 z^7Q+Z?Jhos;Sy8A7YR9=lv_!gjKq1nB4AblH9PBvfV{T~Dj_HMNlVtoL*}}tj zFAw57o{Xd4|9T2OzeVMDy~nzkr^>2Us^1qTn=Jm2y)cYnl>HjscdHlf9)8H4mi8`D z9tB6r4v6#_n0OxP;3yHgt{zOat6!%%<1a-$x(Er?A;^~s`Pk<&i9n6v`1Zkxt;}#K zm{gjZ4UB-`c{v*)Sp?BOLVYaYQ9$wbOK$|e==E?&J6WSKOgpx~FdkPNg>!McR<$ZRm;SSH<_nN+TW;HYmQ;)B zw7Qn{?rHM$O?(;<>H@3S>CXoU$Qoda{qL3CtWllL)GZJ`IR3E6czs^$0eMJ&@3kvD zYKnH=&QECSuA^Jq_=_O960i|q{e_hNO$OME6rQw7*h?=V81R%tYT~kF3F^_m=dYD8|`ieMG*iDZ6&TXo7dQvSb8d2xy8*`U!Xl) zfoD(@@Y|#}IK)|zRx{Q19kJ2uP-*NOd1dJLc<`Ih`56M*c^e`g5XH|hT-hIVLO?1Y z3O~{Ed>kB*zOs+h-Zn0{$b|HT*C!c7>U#q^7sK(l-U%-!))WjU;b z&BgRM>0Ezza*9I649^w>a3A#AvtyQ<-^WBL3x~Q8yNL%bp^&sO-W;UWh2At_Ymddu}SrW6ts!7lkeJ(@g(rz1GXH8CD#NMRdV^a_yQ z7WG}$vIGLDl6~(4&UWcJpKsilz%VH`=ioj<3gXQbH>SR6;pv`_ zDpH$3lPxY?Gf6uNqx)~s@)d$<39Ss}jB9(9V#iN2BjjcofIH@r#wo^IklR~?=fh0&>L>n`_Axe{ z>XPB4=93bxx+0xE23dn1`o~h=qBw1>3Y08HvmegcS zBZ6EC`7f7tsAVL{T4^3~aB%2Bc|!PMT1+Uro$A(^V#w3I5=E|>sE3ZK{keJM`K^)@ zt7D8rv;U)cKUu()V@H(APqu=tz~J}m=SdA`E_0)Bce8V9BY9M?!kfj$*oNXf2rOLf z8BfW23q-2wF3&LP;a4~H856!wb7h5WQjMtfA0%C{h$Ly$SNvA9 zQjwBQ!FsKK1IDZ2_#464SqJp^V;W3Q^7hF$kF}hAchqq=O+E+A0bpf6Lgg(2fN!eP~A8P>)eb;WC3M2D_4KfD93!a(=%@MfQ3& z?>`>WhN52A)2W3)LZQ%5d3tk5quz-(EV($OAOXsniVnmrA zZI^iv2eNz9CIoMLdtQ6qxZF_MnNs?9;&6%9^k$U*ULAdk1KBB0bJ60KkI3N~p4wzu zmIPzHWf~h#1s+0R^6)~_7iH!YfNzQ3C(y1pAR7TJc7@7?cLpy|Z$bDCBLK_lwNUR1 z-*50_&HlDf*k6;0a0c|Foa-F&1jq;|?Q8RsLWx3N}4Y-A|2jU64J7<%t zP!&0PV{_}yQs2FhAD_70>A;cA_m;F{FpMKf!s&DS{kF>xMZ-J|z&*La9;8L`TnY2l z#-t|G%qh5nh$dxNGLNE3H1gr7*$i9@iZmX6CjH}=oP)l5qv-URK%kLT2^`!OYu#S}-MWNkwvL)R^j>+7 zNg*ijIX6}i#6}lMgkfEq9-d}F4%g`GY9Y~485#ruKwlizzuQL z6KEc(K~txUzPL1(zS=_pvm^r~b*b*}nk?uW#0<|ftrYncN}=>{kaOx^%c6x!%B4+- zs8k9k3S8=@@io+G^h%;2`Hdie?l9a_{Ze!w4#tXP&Y+$qu9)yH3JW)e%Z}#>Tf~Ph4Wl6Clb2 zRT`W^-=r40QYu0KPkAI`t}%$^WkG#Z=kcwEG}d`h@-+B6-^XtvIDe-vY@F_T3x9t_ z)-XbLPA*KfJp38CE!&aDg0H(qmwZ(v-56i0?*yon^*Z6P6taN(lG%#P;5(R!qhwan z<^$R)d32O7Z!@tXtfx_YEf?N%doKjhEts*f3PJBbFoc7m732aO==5taOYD9>dX_>F zqdyDBJ^s-U2t<=&WQj$E+Hb1sFL1a*&ICtn99c-{2YN5HEYJ~IU~!Sa+M5w^+Cw=4 zUF5>$-KWs4MKQIZRf$oVp^)DrGJhot}7Je<=el0H`GGMVfKm zpuChU*i!k?(>6k9wvB$zG`23q4m`Y=XhrX{qpn(krqQDAMnmMTWGJr- zPhghgCn!^htX99O1L#V((WB8481bLRPQd868xKT`?6hlP;VXM91!5p5qM-e_)9%++ zPY)9t(Fq>Nf_iGjgjr+v(s%S_>%dol17>tSDdG%cCbVjT7z)B3BS}?<#-&fBM*JHj zD1nCKwV=zuCvnCXT_}r)(_80t$z%ZSU33oVYaULK7pU!u>`QLCi;D_WT+DT%Xyu0l zX{we%i!OA1Ufh>`Mp+swmlqH_k8AGtsqPQ;*V0-Y>4b8@Hh+)>kfunoCWV~pWGqT*U|5%$>JK| z!P&$IrX1^)V15oYt5;Doub4B0c9Ma(`3T|285T#SsAo(u?}hWidh6?pX9U9K+galv z;5+ca!cR(UWHHjuTItQYCJ8ry-d?IC*9}uA@o?suz@=H=PF(-6A7GcQm6K=3T&Qv<#Y zr3Ngu)1Tf$R2tHnP+O6oFrEIK__zWjcvFtWe|e5r+Y>Nje%H`+Wg=J&LyBherw%J} zWBKCy3)PIzxy^{?#fFj8Wd2TYA9l^yr5*J~aL z=q54rVymHeqX4PeXTrd)X@M&L^4Pr0TZQ-8V$W0k?O?WCC}|vxu($2}^|skFDn+TF zVHv_OB9=#vcp-;|huzhw`H3 zRdL+xm@?ekM!_+P%>Od2I&3rl62N?VMsjrWOpM?ZM>0C$hNQp?Nuzd8_FBkhgu-d? zmHm@Xm<-H>(8vk~<_dHtx<>>RXAnp|xPmw?{QWHl5jg2#LNPUk&Izlb;+Bw>t9rpM zwq`W#pmWl?go5_4s?fdQay$(n!Io^VxpWl=!h@MDPP$%G`Bf)CBs(qq)JgJ4(6Gf1=&* zNHLx%>6%k)^32vx(a8>4tv*c>(jyz3$^05J=lews{!G(wHhha}=_wYy6v*c8PRM&I zn8S*W0ja5ysjXb3+tK?q+3IpKxSB<`J~^CW9jVF*b0|Hi`V_41e}|)=Oq2e%GJwT? z5r@eGTChTGce2I=kDZj`#*E8h4bQ2nuxhmN8Vd3_cW(3Vo05-DSa+ALrR6mGK_uCi zXqRzlg*N6vSPsC$8{)QG7`Jyhd^Z?SG2TEH0r5ouPDWF@@uln+-*IdEvDe5&4LDv( z7wH$YeDN*AU$m-;&d8o{k0Y

=LSK00=3RLwUj@T%n#Y`A{xX=IP|8zJLtDvdSqm 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

n5@->Ml; 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 literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/deployment/deta/image05.png b/docs/en/docs/img/deployment/deta/image05.png new file mode 100644 index 0000000000000000000000000000000000000000..590f6f5e407ed2d569e77a44629521f22d7bb7a8 GIT binary patch literal 33130 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 literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/deployment/deta/image06.png b/docs/en/docs/img/deployment/deta/image06.png new file mode 100644 index 0000000000000000000000000000000000000000..f5828bfda66e8812bfee15a9e2966fdd659f7e32 GIT binary patch literal 105270 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 literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/deployment/https/https.drawio.svg b/docs/en/docs/img/deployment/https/https.drawio.svg new file mode 100644 index 0000000..c2a65b6 --- /dev/null +++ b/docs/en/docs/img/deployment/https/https.drawio.svg @@ -0,0 +1,907 @@ + + + + + + + + + + + + + + + + + + + +
+
+
+ + + Server(s) + + +
+
+
+
+ + Server(s) + +
+
+
+ + + + + + + + + + + +
+
+
+ + DNS Servers + +
+
+
+
+ + DNS Servers + +
+
+
+ + + + + + + + + + +
+
+
+ + + TLS Termination Proxy + +
+
+
+
+
+
+ + TLS Termination Proxy + +
+
+
+ + + + + + + + + + + + + + + +
+
+
+ + Cert Renovation Program + +
+
+
+
+ + Cert Renovation Program + +
+
+
+ + + + + + + + + + + +
+
+
+ + Let's Encrypt + +
+
+
+
+ + Let's Encrypt + +
+
+
+ + + + + + + + + + + + + + + +
+
+
+ + + FastAPI + + + app for: someapp.example.com + + +
+
+
+
+ + FastAPI app for: someapp.example.com + +
+
+
+ + + + + + + +
+
+
+ + + Another app + + + : another.example.com + + +
+
+
+
+ + Another app: another.example.com + +
+
+
+ + + + + + + +
+
+
+ + + One more app + + + : onemore.example.com + + +
+
+
+
+ + One more app: onemore.example.com + +
+
+
+ + + + + + + +
+
+
+ + + A Database + + +
+
+
+
+ + A Database + +
+
+
+ + + + + + + + + + + + + +
+
+
+ + + Plain response from: someapp.example.com + + +
+
+
+
+ + Plain response from: someapp.example.com + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + Port 443 (HTTPS) + +
+
+
+
+ + Port 443 (HTTPS) + +
+
+
+ + + + + + + + + + + + + + +
+
+
+ + + Encrypted request for: someapp.example.com + + +
+
+
+
+ + Encrypted request for: someapp.example.com + +
+
+
+ + + + + + + +
+
+
+ + + Who is: someapp.example.com + + +
+
+
+
+ + Who is: someapp.example.com + +
+
+
+ + + + + + + +
+
+
+ + + IP: + +
+ + 123.124.125.126 + +
+
+
+
+
+ + IP:... + +
+
+
+ + + + + + + +
+
+
+ + + Renew HTTPS cert for: someapp.example.com + + +
+
+
+
+ + Renew HTTPS cert for: someapp.example.com + +
+
+
+ + + + + + + +
+
+
+ + + New HTTPS cert for: someapp.example.com + + +
+
+
+
+ + New HTTPS cert for: someapp.example.com + +
+
+
+ + + + + + + + + + +
+
+
+ + + TLS Handshake + + +
+
+
+
+ + TLS Handshake + +
+
+
+ + + + + + + + + + +
+
+
+ + + Encrypted response from: someapp.example.com + + +
+
+
+
+ + Encrypted response from: someapp.example.com + +
+
+
+ + + + + + + + + + + + + +
+
+
+ + + HTTPS certificates + +
+
+
+
+
+
+ + HTTPS certificates + +
+
+
+ + + + + + + +
+
+
+ + + + someapp.example.com + + +
+
+
+
+
+
+ + someapp.example.com + +
+
+
+ + + + + + + +
+
+
+ + + + another.example.net + + +
+
+
+
+
+
+ + another.example.net + +
+
+
+ + + + + + + +
+
+
+ + + + onemore.example.org + + +
+
+
+
+
+
+ + onemore.example.org + +
+
+
+ + + + + + + +
+
+
+ + + + IP: + +
+ + 123.124.125.126 + +
+
+
+
+
+
+
+ + IP:... + +
+
+
+ + + + + + + +
+
+
+ + + Decrypted request for: someapp.example.com + + +
+
+
+
+ + Decrypted request for: someapp.example.com + +
+
+
+ + + + + + + + + + +
+
+
+ + https://someapp.example.com + +
+
+
+
+ + https://someapp.example.com + +
+
+
+
+ + + + + Text is not SVG - cannot display + + + +
diff --git a/docs/en/docs/img/deployment/https/https01.drawio.svg b/docs/en/docs/img/deployment/https/https01.drawio.svg new file mode 100644 index 0000000..ea128da --- /dev/null +++ b/docs/en/docs/img/deployment/https/https01.drawio.svg @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + +
+
+
+ + DNS Servers + +
+
+
+
+ + DNS Servers + +
+
+
+ + + + + + + + + + + + + + + + + +
+
+
+ + + Who is: someapp.example.com + + +
+
+
+
+ + Who is: someapp.example.com + +
+
+
+ + + + + + + +
+
+
+ + + IP: + +
+ + 123.124.125.126 + +
+
+
+
+
+ + IP:... + +
+
+
+ + + + + + + +
+
+
+ + https://someapp.example.com + +
+
+
+
+ + https://someapp.example.com + +
+
+
+
+ + + + + Text is not SVG - cannot display + + + +
diff --git a/docs/en/docs/img/deployment/https/https02.drawio.svg b/docs/en/docs/img/deployment/https/https02.drawio.svg new file mode 100644 index 0000000..c29d593 --- /dev/null +++ b/docs/en/docs/img/deployment/https/https02.drawio.svg @@ -0,0 +1,245 @@ + + + + + + + + + + + + + + + + + +
+
+
+ + + Server(s) + + +
+
+
+
+ + Server(s) + +
+
+
+ + + + + + + + + + + +
+
+
+ + DNS Servers + +
+
+
+
+ + DNS Servers + +
+
+
+ + + + + + + + + + + + + + + + + +
+
+
+ + Port 443 (HTTPS) + +
+
+
+
+ + Port 443 (HTTPS) + +
+
+
+ + + + + + + +
+
+
+ + + + IP: + +
+ + 123.124.125.126 + +
+
+
+
+
+
+
+ + IP:... + +
+
+
+ + + + + + + +
+
+
+ + + Who is: someapp.example.com + + +
+
+
+
+ + Who is: someapp.example.com + +
+
+
+ + + + + + + +
+
+
+ + + IP: + +
+ + 123.124.125.126 + +
+
+
+
+
+ + IP:... + +
+
+
+ + + + + + + + + + +
+
+
+ + + TLS Handshake + + +
+
+
+
+ + TLS Handshake + +
+
+
+ + + + + + + + + + +
+
+
+ + https://someapp.example.com + +
+
+
+
+ + https://someapp.example.com + +
+
+
+
+ + + + + Text is not SVG - cannot display + + + +
diff --git a/docs/en/docs/img/deployment/https/https03.drawio.svg b/docs/en/docs/img/deployment/https/https03.drawio.svg new file mode 100644 index 0000000..6971e4c --- /dev/null +++ b/docs/en/docs/img/deployment/https/https03.drawio.svg @@ -0,0 +1,715 @@ + + + + + + + + + + + + + + + + + + + +
+
+
+ + + Server(s) + + +
+
+
+
+ + Server(s) + +
+
+
+ + + + + + + + + + + +
+
+
+ + DNS Servers + +
+
+
+
+ + DNS Servers + +
+
+
+ + + + + + + + + + +
+
+
+ + + TLS Termination Proxy + +
+
+
+
+
+
+ + TLS Termination Proxy + +
+
+
+ + + + + + + + + + + + + + + + + +
+
+
+ + Port 443 (HTTPS) + +
+
+
+
+ + Port 443 (HTTPS) + +
+
+
+ + + + + + + +
+
+
+ + + Who is: someapp.example.com + + +
+
+
+
+ + Who is: someapp.example.com + +
+
+
+ + + + + + + +
+
+
+ + + IP: + +
+ + 123.124.125.126 + +
+
+
+
+
+ + IP:... + +
+
+
+ + + + + + + + + + +
+
+
+ + + TLS Handshake + + +
+
+
+
+ + TLS Handshake + +
+
+
+ + + + + + + + + + + + + +
+
+
+ + + HTTPS certificates + +
+
+
+
+
+
+ + HTTPS certificates + +
+
+
+ + + + + + + +
+
+
+ + + + someapp.example.com + + +
+
+
+
+
+
+ + someapp.example.com + +
+
+
+ + + + + + + +
+
+
+ + + + another.example.net + + +
+
+
+
+
+
+ + another.example.net + +
+
+
+ + + + + + + +
+
+
+ + + + onemore.example.org + + +
+
+
+
+
+
+ + onemore.example.org + +
+
+
+ + + + + + + +
+
+
+ + + + IP: + +
+ + 123.124.125.126 + +
+
+
+
+
+
+
+ + IP:... + +
+
+
+ + + + + + + +
+
+
+ + https://someapp.example.com + +
+
+
+
+ + https://someapp.example.com + +
+
+
+
+ + + + + Text is not SVG - cannot display + + + +
diff --git a/docs/en/docs/img/deployment/https/https04.drawio.svg b/docs/en/docs/img/deployment/https/https04.drawio.svg new file mode 100644 index 0000000..7e32bcd --- /dev/null +++ b/docs/en/docs/img/deployment/https/https04.drawio.svg @@ -0,0 +1,419 @@ + + + + + + + + + + + + + + + + + +
+
+
+ + + Server(s) + + +
+
+
+
+ + Server(s) + +
+
+
+ + + + + + + + + + + +
+
+
+ + DNS Servers + +
+
+
+
+ + DNS Servers + +
+
+
+ + + + + + + + + + +
+
+
+ + + TLS Termination Proxy + +
+
+
+
+
+
+ + TLS Termination Proxy + +
+
+
+ + + + + + + + + + + + + + + + + +
+
+
+ + Port 443 (HTTPS) + +
+
+
+
+ + Port 443 (HTTPS) + +
+
+
+ + + + + + + + + + + + + + +
+
+
+ + + Encrypted request for: someapp.example.com + + +
+
+
+
+ + Encrypted request for: someapp.example.com + +
+
+
+ + + + + + + +
+
+
+ + + Who is: someapp.example.com + + +
+
+
+
+ + Who is: someapp.example.com + +
+
+
+ + + + + + + +
+
+
+ + + IP: + +
+ + 123.124.125.126 + +
+
+
+
+
+ + IP:... + +
+
+
+ + + + + + + + + + +
+
+
+ + + TLS Handshake + + +
+
+
+
+ + TLS Handshake + +
+
+
+ + + + + + + + + + + + + +
+
+
+ + + HTTPS certificates + +
+
+
+
+
+
+ + HTTPS certificates + +
+
+
+ + + + + + + +
+
+
+ + + + someapp.example.com + + +
+
+
+
+
+
+ + someapp.example.com + +
+
+
+ + + + + + + +
+
+
+ + + + another.example.net + + +
+
+
+
+
+
+ + another.example.net + +
+
+
+ + + + + + + +
+
+
+ + + + onemore.example.org + + +
+
+
+
+
+
+ + onemore.example.org + +
+
+
+ + + + + + + +
+
+
+ + + + IP: + +
+ + 123.124.125.126 + +
+
+
+
+
+
+
+ + IP:... + +
+
+
+ + + + + + + +
+
+
+ + https://someapp.example.com + +
+
+
+
+ + https://someapp.example.com + +
+
+
+
+ + + + + Text is not SVG - cannot display + + + +
diff --git a/docs/en/docs/img/deployment/https/https05.drawio.svg b/docs/en/docs/img/deployment/https/https05.drawio.svg new file mode 100644 index 0000000..fed2fad --- /dev/null +++ b/docs/en/docs/img/deployment/https/https05.drawio.svg @@ -0,0 +1,641 @@ + + + + + + + + + + + + + + + + + + + +
+
+
+ + + Server(s) + + +
+
+
+
+ + Server(s) + +
+
+
+ + + + + + + + + + + +
+
+
+ + DNS Servers + +
+
+
+
+ + DNS Servers + +
+
+
+ + + + + + + + + + +
+
+
+ + + TLS Termination Proxy + +
+
+
+
+
+
+ + TLS Termination Proxy + +
+
+
+ + + + + + + +
+
+
+ + + FastAPI + + + app for: someapp.example.com + + +
+
+
+
+ + FastAPI app for: someapp.example.com + +
+
+
+ + + + + + + + + + + +
+
+
+ + + Decrypted request for: someapp.example.com + + +
+
+
+
+ + Decrypted request for: someapp.example.com + +
+
+
+ + + + + + + + + + + + + + + + + +
+
+
+ + Port 443 (HTTPS) + +
+
+
+
+ + Port 443 (HTTPS) + +
+
+
+ + + + + + + + + + + + + + +
+
+
+ + + Encrypted request for: someapp.example.com + + +
+
+
+
+ + Encrypted request for: someapp.example.com + +
+
+
+ + + + + + + +
+
+
+ + + Who is: someapp.example.com + + +
+
+
+
+ + Who is: someapp.example.com + +
+
+
+ + + + + + + +
+
+
+ + + IP: + +
+ + 123.124.125.126 + +
+
+
+
+
+ + IP:... + +
+
+
+ + + + + + + + + + +
+
+
+ + + TLS Handshake + + +
+
+
+
+ + TLS Handshake + +
+
+
+ + + + + + + + + + + + + +
+
+
+ + + HTTPS certificates + +
+
+
+
+
+
+ + HTTPS certificates + +
+
+
+ + + + + + + +
+
+
+ + + + someapp.example.com + + +
+
+
+
+
+
+ + someapp.example.com + +
+
+
+ + + + + + + +
+
+
+ + + + another.example.net + + +
+
+
+
+
+
+ + another.example.net + +
+
+
+ + + + + + + +
+
+
+ + + + onemore.example.org + + +
+
+
+
+
+
+ + onemore.example.org + +
+
+
+ + + + + + + +
+
+
+ + + + IP: + +
+ + 123.124.125.126 + +
+
+
+
+
+
+
+ + IP:... + +
+
+
+ + + + + + + +
+
+
+ + https://someapp.example.com + +
+
+
+
+ + https://someapp.example.com + +
+
+
+
+ + + + + Text is not SVG - cannot display + + + +
diff --git a/docs/en/docs/img/deployment/https/https06.drawio.svg b/docs/en/docs/img/deployment/https/https06.drawio.svg new file mode 100644 index 0000000..e0bd9bc --- /dev/null +++ b/docs/en/docs/img/deployment/https/https06.drawio.svg @@ -0,0 +1,673 @@ + + + + + + + + + + + + + + + + + + + +
+
+
+ + + Server(s) + + +
+
+
+
+ + Server(s) + +
+
+
+ + + + + + + + + + + +
+
+
+ + DNS Servers + +
+
+
+
+ + DNS Servers + +
+
+
+ + + + + + + + + + +
+
+
+ + + TLS Termination Proxy + +
+
+
+
+
+
+ + TLS Termination Proxy + +
+
+
+ + + + + + + + + + + +
+
+
+ + + FastAPI + + + app for: someapp.example.com + + +
+
+
+
+ + FastAPI app for: someapp.example.com + +
+
+
+ + + + + + + +
+
+
+ + + Plain response from: someapp.example.com + + +
+
+
+
+ + Plain response from: someapp.example.com + +
+
+
+ + + + + + + + + + + + + + +
+
+
+ + + Decrypted request for: someapp.example.com + + +
+
+
+
+ + Decrypted request for: someapp.example.com + +
+
+
+ + + + + + + + + + + + + + + + + +
+
+
+ + Port 443 (HTTPS) + +
+
+
+
+ + Port 443 (HTTPS) + +
+
+
+ + + + + + + + + + + + + + +
+
+
+ + + Encrypted request for: someapp.example.com + + +
+
+
+
+ + Encrypted request for: someapp.example.com + +
+
+
+ + + + + + + +
+
+
+ + + Who is: someapp.example.com + + +
+
+
+
+ + Who is: someapp.example.com + +
+
+
+ + + + + + + +
+
+
+ + + IP: + +
+ + 123.124.125.126 + +
+
+
+
+
+ + IP:... + +
+
+
+ + + + + + + + + + +
+
+
+ + + TLS Handshake + + +
+
+
+
+ + TLS Handshake + +
+
+
+ + + + + + + + + + + + + +
+
+
+ + + HTTPS certificates + +
+
+
+
+
+
+ + HTTPS certificates + +
+
+
+ + + + + + + +
+
+
+ + + + someapp.example.com + + +
+
+
+
+
+
+ + someapp.example.com + +
+
+
+ + + + + + + +
+
+
+ + + + another.example.net + + +
+
+
+
+
+
+ + another.example.net + +
+
+
+ + + + + + + +
+
+
+ + + + onemore.example.org + + +
+
+
+
+
+
+ + onemore.example.org + +
+
+
+ + + + + + + +
+
+
+ + + + IP: + +
+ + 123.124.125.126 + +
+
+
+
+
+
+
+ + IP:... + +
+
+
+ + + + + + + +
+
+
+ + https://someapp.example.com + +
+
+
+
+ + https://someapp.example.com + +
+
+
+
+ + + + + Text is not SVG - cannot display + + + +
diff --git a/docs/en/docs/img/deployment/https/https07.drawio.svg b/docs/en/docs/img/deployment/https/https07.drawio.svg new file mode 100644 index 0000000..b74b338 --- /dev/null +++ b/docs/en/docs/img/deployment/https/https07.drawio.svg @@ -0,0 +1,540 @@ + + + + + + + + + + + + + + + + + +
+
+
+ + + Server(s) + + +
+
+
+
+ + Server(s) + +
+
+
+ + + + + + + + + + + +
+
+
+ + DNS Servers + +
+
+
+
+ + DNS Servers + +
+
+
+ + + + + + + + + + +
+
+
+ + + TLS Termination Proxy + +
+
+
+
+
+
+ + TLS Termination Proxy + +
+
+
+ + + + + + + + + + + +
+
+
+ + + FastAPI + + + app for: someapp.example.com + + +
+
+
+
+ + FastAPI app for: someapp.example.com + +
+
+
+ + + + + + + +
+
+
+ + + Plain response from: someapp.example.com + + +
+
+
+
+ + Plain response from: someapp.example.com + +
+
+
+ + + + + + + + + + + + + + +
+
+
+ + + Decrypted request for: someapp.example.com + + +
+
+
+
+ + Decrypted request for: someapp.example.com + +
+
+
+ + + + + + + + + + + + + + + + + + + + + +
+
+
+ + Port 443 (HTTPS) + +
+
+
+
+ + Port 443 (HTTPS) + +
+
+
+ + + + + + + + + + + + + + +
+
+
+ + + Encrypted request for: someapp.example.com + + +
+
+
+
+ + Encrypted request for: someapp.example.com + +
+
+
+ + + + + + + +
+
+
+ + + Who is: someapp.example.com + + +
+
+
+
+ + Who is: someapp.example.com + +
+
+
+ + + + + + + +
+
+
+ + + IP: + +
+ + 123.124.125.126 + +
+
+
+
+
+ + IP:... + +
+
+
+ + + + + + + + + + +
+
+
+ + + TLS Handshake + + +
+
+
+
+ + TLS Handshake + +
+
+
+ + + + + + + + + + +
+
+
+ + + Encrypted response from: someapp.example.com + + +
+
+
+
+ + Encrypted response from: someapp.example.com + +
+
+
+ + + + + + + + + + + + + +
+
+
+ + + HTTPS certificates + +
+
+
+
+
+
+ + HTTPS certificates + +
+
+
+ + + + + + + +
+
+
+ + + + someapp.example.com + + +
+
+
+
+
+
+ + someapp.example.com + +
+
+
+ + + + + + + +
+
+
+ + + + another.example.net + + +
+
+
+
+
+
+ + another.example.net + +
+
+
+ + + + + + + +
+
+
+ + + + onemore.example.org + + +
+
+
+
+
+
+ + onemore.example.org + +
+
+
+ + + + + + + +
+
+
+ + + + IP: + +
+ + 123.124.125.126 + +
+
+
+
+
+
+
+ + IP:... + +
+
+
+ + + + + + + +
+
+
+ + https://someapp.example.com + +
+
+
+
+ + https://someapp.example.com + +
+
+
+
+ + + + + Text is not SVG - cannot display + + + +
diff --git a/docs/en/docs/img/deployment/https/https08.drawio.svg b/docs/en/docs/img/deployment/https/https08.drawio.svg new file mode 100644 index 0000000..8fc0b31 --- /dev/null +++ b/docs/en/docs/img/deployment/https/https08.drawio.svg @@ -0,0 +1,625 @@ + + + + + + + + + + + + + + + + + +
+
+
+ + + Server(s) + + +
+
+
+
+ + Server(s) + +
+
+
+ + + + + + + + + + + +
+
+
+ + DNS Servers + +
+
+
+
+ + DNS Servers + +
+
+
+ + + + + + + + + + +
+
+
+ + + TLS Termination Proxy + +
+
+
+
+
+
+ + TLS Termination Proxy + +
+
+
+ + + + + + + + + + + + + + + +
+
+
+ + + FastAPI + + + app for: someapp.example.com + + +
+
+
+
+ + FastAPI app for: someapp.example.com + +
+
+
+ + + + + + + +
+
+
+ + + Another app + + + : another.example.com + + +
+
+
+
+ + Another app: another.example.com + +
+
+
+ + + + + + + +
+
+
+ + + One more app + + + : onemore.example.com + + +
+
+
+
+ + One more app: onemore.example.com + +
+
+
+ + + + + + + +
+
+
+ + + A Database + + +
+
+
+
+ + A Database + +
+
+
+ + + + + + + +
+
+
+ + + Plain response from: someapp.example.com + + +
+
+
+
+ + Plain response from: someapp.example.com + +
+
+
+ + + + + + + + + + + + + + +
+
+
+ + + Decrypted request for: someapp.example.com + + +
+
+
+
+ + Decrypted request for: someapp.example.com + +
+
+
+ + + + + + + + + + + + + + + + + + + + + +
+
+
+ + Port 443 (HTTPS) + +
+
+
+
+ + Port 443 (HTTPS) + +
+
+
+ + + + + + + + + + + + + + +
+
+
+ + + Encrypted request for: someapp.example.com + + +
+
+
+
+ + Encrypted request for: someapp.example.com + +
+
+
+ + + + + + + +
+
+
+ + + Who is: someapp.example.com + + +
+
+
+
+ + Who is: someapp.example.com + +
+
+
+ + + + + + + +
+
+
+ + + IP: + +
+ + 123.124.125.126 + +
+
+
+
+
+ + IP:... + +
+
+
+ + + + + + + + + + +
+
+
+ + + TLS Handshake + + +
+
+
+
+ + TLS Handshake + +
+
+
+ + + + + + + + + + +
+
+
+ + + Encrypted response from: someapp.example.com + + +
+
+
+
+ + Encrypted response from: someapp.example.com + +
+
+
+ + + + + + + + + + + + + +
+
+
+ + + HTTPS certificates + +
+
+
+
+
+
+ + HTTPS certificates + +
+
+
+ + + + + + + +
+
+
+ + + + someapp.example.com + + +
+
+
+
+
+
+ + someapp.example.com + +
+
+
+ + + + + + + +
+
+
+ + + + another.example.net + + +
+
+
+
+
+
+ + another.example.net + +
+
+
+ + + + + + + +
+
+
+ + + + onemore.example.org + + +
+
+
+
+
+
+ + onemore.example.org + +
+
+
+ + + + + + + +
+
+
+ + + + IP: + +
+ + 123.124.125.126 + +
+
+
+
+
+
+
+ + IP:... + +
+
+
+ + + + + + + +
+
+
+ + https://someapp.example.com + +
+
+
+
+ + https://someapp.example.com + +
+
+
+
+ + + + + Text is not SVG - cannot display + + + +
diff --git a/docs/en/docs/img/favicon.png b/docs/en/docs/img/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..e5b7c3ada7d093d237711560e03f6a841a4a41b2 GIT binary patch literal 5043 zcmV;k6HM%hP);M1&8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H16F^Bs zK~#90?VWpg71g)tbaW^d;G zhwQnm_1l}@tXVT_t?v_6-Ko=kYBm*64Pb&ke z02A1cun%QFLJ5}c!7z%zETWp7dS`ZtD__hdB#{jye|V?|$-y*4F9scik_vK~vz78C z=ysG3z}SS8Z_+F`d9 z*+twNsP>k09l~hPOF@#{*3<%3AnUo6FD%H=@N zZA}pp1_}@sQ+?8Mz4OjWw*|G8xH6E;%R3j5@xU!WSGV=pOex6I1Z1J6PyNJgF|8#o z3?z>|{C&i{6X7P1fZKW;#sXf&G9T5fd)BxurX@UWAbB)z6ai*}{LpPJF7YN7Gc{}a z8*U3}3QrnH9-Ea$!1yi7D7UqEgaSnF(~N2FxGkh1o-&X;k>8UF>p_J701>zKcnejK zWdxY6>C-=TTTLCFFpw--l!Uo|3dnTeB)9c=oHCSI1Ut{s^z>@C#kg)DSvY$z7K?x( zt_q1iwxc>;C(L-)O%bjcNOE(N>CrA1)yXHola)iL3GzFND{?g_r^*clt{6z>=l2I) zjNj_m#dgFTqZ#*Xk9EaHtSglH`C~!f#y5|h3`7I#W&Z42VqI~}S|FJ_H$>9WStt`@ zQsIfqA1SVw9IIPeObk>rts<}lNOQb09}wPxieJWJ8j0ful6m>(Bi2hGy&SE`ry)fI zteu>A7}hf1Jf5Wr%eqmsvRB$wplt?{`LjlX@iNfPmI8eoLd#LPS|?0@ z(~i)0ImyjUj;4_4TA&`GIrzg9@r!aX-9ryYQ$)ml zpxROO$D^s-$0LZ0(~N0G*KwSveF{yRJZvSCW{s&5tb+L&67xU zz%c$CNq?yAeIV<={fG=}^LajAX9zt)_qFw;Hr>KxVg4{IYkeZlVNMPN7~5}P%x7pu zL$zh{+$TG%qhY%iXQ+u4xJ0w2ZfWfqtu~P4<_1X#Z3MY6VtpQFZ2y7AE8z@*e+ant%dv+F}^$n#HzZ8r~q zkV^Q#U9CR6H7$@Vm~#eNwVm%mz9ketIjfJX`1cz;A0no-qFgfyS6MF=eQY^g)e!=r z3p9Q5mn|LGx~opB@<>qg0Nj;2)bqElHJ=yhuq981V_+VDlL=Qm(3%5VY=LBc{zYIF zChA)CfnB=E<{NGeibua*ML5g@TQ-`H{QVuvitQRc3-l7roUysNgIaF3Mej#F`s>=j z1Eo4<%?fktz7jW<4;u*g16MbHP&3H9hb~X#5GyI|J8)y)0iNqTt16Fe z-(saLT^x4FJhejP3VCeyWz8MZdQ+pbH3agEVx*ZpSFT?^v zgsnH;7VOuli|f7Tx4+)2w-&50Kl$d6ms*_$s7W9&u(9Z|jT@vUlx{+r2jH4s=NN9A zCu~_fuz907YWXu^Z<_}|0+{9O^=TLk{rFaS{wMU!9Q^2)?89?RL2*tHdhpV9KXM=%2;4&{Y}T*!emiyH_UdQ z62G}8n&s?{9p$5&(t|-GwjTQ1XS?-|!d2nDWk+IKul;B>mY%Iy+576Y9Q#X}q3cOd z^8idr9d5+ZJmukPrfe)Qf3|W-0+nFsc7EBuRXdJ#+45(?31}Wr z87cE}Pp-|^Pxvm@W=xV0P7Yq|svHNIJZQM>txvUO^1$Ye=9Md+3x9s(NFw)lnm~l4U>elj!bH;& z@$GZJPMzhdv-;R-pdAPI>6kSu%=b%+6Yv*n18Q9itf(=NGT2=;&MQnrr?~v6jxStgzOv_&1pAeuKy?s6 zQ0C6+PSA)t)S1`F8aTx0kQDuEt(S^EwlWG=o23;;ZBUg!i1d`lW_1k`WPsaR>?RZl zkp8_3qiTK1!`0mT&U*8Iw{1Srp0HYv5jZahM#AN>xTW6(MvwL#BJTWbt{unPnTSIX zcA{3VAkf=w9d;tXU4tSEln}Noe!ulSE9c$yX0_!vJS`)Af}m$5(h$Z~XZMu>ow~O9 z3t6hn`^Wp%mXfdZ+TQ2Ibi&ZrmvK0LCfX|qlH#@wJGpz%@Q4B>7$Qtc9coNU z9cs6vW_j(i-Fo}FSHm%_)Gky~fIIfI&vrcHYabd8n#_N$X!XpZ)ls@!L^u77fMy5}tqv69+m!-?^=<{bG;a zwsxiYMOk9c7YYJZfcGxnR&s6c^Nc>Hbn?tSxY7*s+s&@TG;{%}41&b9f$kn`|BS;( z`RL$29kb?T^Y5iDhNX)wl|i7g#lt+x@RZXftw&GSTb~nmvYA!}K@Y|2aK_XjX|A_E z#pOpey>OMe@J>!-u`;8 zjxAVW{>$@W>0&}j5actrRkW4#?+rFOCdYOJ#-D7~2r7Gmi0meg-d7|U2ALNOiD~Pz z=kOsNw|1rZrW5Iv;u_r@1hXif0)b z#HiYV>3rNAyNGnYb6Y7bKT75stIg%HNv{;2RFv;DG(D#jp~b{vUf@S(_Ljk2Qyg!7 z3clE*!vC!GFN^2FK=Hxoy88lKLNy zy*&gfUj#f6DPm~%)8x|ABMX#JT2Zc}SHBRxwcr)sJhr0MR93!Jf6Fljs(myoh^eL~ zh;+5Z>z^0tuq981UykR*ZeB&?Z+dsmF*8_?f4L$oMsamm7Sz0&peDZ5cw;jF0R35YOZ zV9WEJm+jtZ4SoK}uy39ip}e4(Gyc`suI5H4=K$9>v)^`Z=-c1u)$!COAKkyHs$}wp zHRjVh|KX2g#S+y&G_|YAt6e8d-w4F?&Ge*ZW*ol#^Y&8+5U!RWN#owFBThnak%r~ejV}RpZ#$x z_gJNw+3TA-pykJ9k^69X<>7g!c9Nf-)%UxBT~+??qpeojvc=&oB`0`dH}|j*&1vbN z77e5s)80XyeJ^xZy~J=O6-RaSYcGZ~3s;+E)hAM{9j~EJX~vBATRN(B^F-Sj|4pS{ z3!L2Iv2CPFyY}3C-uDcs3HzU3xGKE2>_|(e`8bJimmeM zUT~pdh%jYifqBi!CBAvQfTa)U>k{ZZ6L`1H=lOUX-9mB2gKa&lO}DUbPg?Zw zIhfYFIPg^F;|gV1R+?sI?`-Rd5ltJ_^r@c!lOj3S$Abu&k(dXf2u-G$)1L+wM0&oD zXPB!Q)BhUj$Q$R$0pkoSHl-rGPXgwn5L{*SatSLe& zMrcM(aWsWQZ6E-dpWh$!4WM(>h50y-upiU9EYf~YeQb%jqnXoofOP}t2^#Z1t~iRt z^>&yCY>e+)J8xt(XxwK1IRU5weqB4;)D~=w`lXpOUI*hp@yPOMpJNDPaI!>y3v9k%^O8Pmf^pxcAKN9-l!91yw>ue zZO1VK0m!`BBQRKk(#5e#e41k)%4j?LJPmQwKu|YsX1)XxcS-Hy8r9v1@$;G|Wan@^ z?}VmL{RFAJ9MrL^z~?wNVCo2`%>yw?)1w(V#S~Zm7ZLg_0H^)SXAct zE$p}o7v$fJ>Z3r1m{y$l96>cpC(L*@mX*fbKmf8JuQ$k3C>O`P@zra8@+QH0U?$B5?RzjTa-Frs+`yNq8HAu!ZcA#sOp#V|5- z{IvJnRN;EAOU<0JmEwv^QSJf!MPV%=97c6I#g!MiZ65GI3sfKZ{X?e{3fv1i&W-43 z-bS@%iFqJfCrtgyZ8ddx%0P9<{JfzE_oH%!+giMVu12`8HEY#ljVBFMhb)+N32Mv) zM!K!VCDvkDGc_yQv(tt>ZJ;`2LEaE7CL!`GY+4oTVJzTPklC6!ZIjz#S|TnCRENyZ z>x;;Elv{8yj+lBU_>wwWHmw74QS>tFWNFm5lD$18P%smlr#Jz#)Bab}N zfez*1?g~1;{o;w?beOX80}5%HHQ}o$is)25JnMliP*l$ok4#TerQie{l915ksq0nLO^HWs`Dr`~E|iDBHx&;NH&J5pDrTWH$Z!_1g2C z8Uiq+`+tMRQ#${fe~zWBe~BqNJuiU{1*H>Xd?dW)4b7 z#-w(1pFoe;YHAwZ+t}DD=cL*6y~LW)i4P7AlaUz>bv!yr%Iezayf8XxN)_1UR)7EB z`+dztAed9x3;W;eNVdbqT~sV}yh;jpw?mRI>U#Hh`S^W`Tg-RFjyRq@K8X!uw1LU| z_qN6Rjm2P$otILoh#|~`OFRsg{4$p1!>4oX$&P9)ug(r?uifl|wZ95R&SS5V{(Dac z1XYBxqp?Z!@PkUjfuc)JMNWn8gPN*`h;Rvs(F}&vLOaG}gY$LSa2bx-4fATSSpl6}}_i{`cRFO7RCV#X;`)Q%&$cJZ*?*av& z3D1TJB1y7ZxnK(aDj$6;e(_%|h!EjHP}~3TPLG_{yb`2( zFDCX>n^^+d9UA=k8?s~>ThuWo##qeoTi9pm5xx+Kn5#M;l5ZE>klQa1ymNGcFTU5O zZOqGgSGDj<&)IjXn(U@cx1E2F{GA*fAEA=9nPKF#v_`6$5y^a(nY3*$hhst7g7Wuv z6*P-2)?UHq-U;)K#~3Yrw>ZI)wDBn`+}>6hK)V?c;(SA<8)rtsTguci-xFUMDUG@)xaTtW^~d}^mez@lE}=6s?n{j2oSCKg*~vk9$&NUQDR2%DJwG7SMVw3&O;sCMxAKg~hyB6VuEFWJsDbCLo;5b(o ziq4U3>6--=Zf-}r@zG@ogPn8NgMfUob*yuupho_2!IX*md0R`$^CxUdR&J-C8!9Sq^AEB{haS!I zd6o9EkU=0~@Ql5=y~;yZop~y^eCM)*61O}gM^pd%re8mHEbJ7JDUk&>OyQOuTHgyd zU2Y%V{qohT<)%>5N{OV8o})h83;y-M?cy?3!Khz~?)j!0%^@Z_%0ns$x{z2K=c?Kj zjOeb;qsZz_Pf)V`)+tV}8h444ppu5EK=sPs#p8Zb5(f7W{{8C7R1++)_rTW}Ba% z8<9B1>9u(-aXE7E_40Scvw_%pUbqxGD;BzM+rug3e4(vg>xfHv)xd$?9rg6Yn$gyA zLb~JK*>&eHpA=Z*rXiIP#Md7zcgOM~QL+tlm51;d6$^3ryQ%5YWQ?niVk=?MMw}@6 z$5+$oC7<537<1zs7v#N_4Cl`qS|TCFXa$1`2zDuMl@nB~)w{ny1x$7>Kknx@>t|yj z)62I=KpPGMYbb&sdLe#?{nn%V_2dHVuU~VZAIinv;6SO`c3~LZP%EQ)VtOxVc_PXO zDY?qdu)@kx7+Oo^Ae3)v{O8+7{@4Py5n7sEe}UW{Nvf_dMUtbUeDc=u;I7YAA`VPOV;yKAW??%o)y!~f;CZtG0z9Omjm zOC?;1iQj#y9y;=znKeLWRKNAwdY^lF-J_0pJv{BloyTp`ucPiT&`GFCQ79>?Uy^K( z$=EfmSsr2G-F_?wm3X^4FsWT+RWwGC;Q2anWepz#5=@$*d(h-TL-F*0rzHKo+qJw! z&!@YaxuH`VI!FLhb#T+Te9^pRzDov&d+Ke*1G8u7sQ8R4EUzeIEbuR;=WV)Z%bFKo zUx$(pk<;_UGx|*EASV$ESP(omzho?oyMHNYa2`Am#{_R)0tWIGNIU)VNNMmSTrhgYJ)S+P0q% zgtLdOrMI2uQCIPTmHKyXm-|Tp_%&r(N8du{;=c5JfCPi3`G+OL`^4?c%0*=sO`&*> zBcIvp=HnU7>eV?vD#SPVpxfUgEP_gIYOt>MHh*Sr;N!uIRXOA8^XNVerne(2Qn_zO@Sm-bgi-C+w{7IhgC`70gV+#= z^@+1dfkS^_?V8m1i>{?~=9&6n-lFY7l>%@}uD-^%E+<<#dqNpQ zdy06}a%$w9r8>=HT+gwlbO5OhexEyW80y7uvuX68CSGrM;r$&BenIzo+{;O3n3o6A zJ)!rZM;k#CCEhdL62VMcb@=S=BRnj=xxPlrs3N@cN8)|q+mlUyPci(V34W{^N$Z*4@9&DnXN_5<~r5iT{}CKgqGV( zct#ru=99X)2auoTISucHZ{5hmOElm5YZHp+24)=w(o)V*2UAtn(SnQ&Z>o<>f{viax{*z_og4-WQa6eL4J z6I_>XE*vzqn>?o$>{u5G?O5OVfAKv&56tdfR}vHz9eKx@A8~Rf@!d>>?B&My7al~v9Gn~2Y>b}D4ohSy55^Lnxrwm)pxHRfUc>9C$$#FFYr3}apdpL80HE4nhh0%}x79Z+<6bGriS@Neud*A?=U6?ZwWcSUGI14|Yr${#E$f>1kCA8|VIOI_ zH&W<^7Ly-*c=cCTxvk(3!{2cnto*`sW~82euz;r6t;?w92MhO+ZKD+BK*l9`_XqLo04r%$c+)FC-wuV zR39Li-RE2JE~UGij{oqlbLlgDjJ~D>0$5(|H-yzk(MJty57*mA;#bsAIZF5Tj0mf{ zLd#D>&(81Mht2%+B1vr!)}gu?YPMe6E`&;gzJC_KLd4IN0ERpeeORAV+y zQ!gVIR{qe6gNb6xDAv3S7DdW_)9U5<9qqr;m0s0%!Ph2??6BlNhoM&qUi4I_oaiMd(jrfMJ2$SW3+Lb#B}JuW2^QGAv}d-u>+kw=*+4}-7bstt zIXPJi>lq!=wr^O~tARJ`x)rC=$ML#6upo9HSe<<6-EywCulZ4rHw$jn%)FIC{#;1*Xyo(h_}pxK z?1~WAyt!;+rpceyL}@>=bCToHgCEa`xO;x+85-X|>$St(F?~*{PxbqmSWe&@TZ5MB%1*qw4t`IiaFrDZIsrr&}+y#_xZTBRqBPxIBRBL2+( zD%W9ekuPhwz64F_foHvS2HSJvWudmW_iRzN(<^0yL{Nwz@CF{*^`d9`!f2P7<`r0H zKFmlu8Gke?{%*Nb8<>s`ugVbCuSR|_n;Pz(x^92v3vvu*CcnvXEQi5x-8ut4RK1}= z@ERVl(}Dr9m%dHxuYQPyB&HGHUT0}yw?El3*%QGu8>x1~Sp8Zk+SMwZ)amj>9Z)8P z_33t#u5Fib&tKOs6BG}NIEE7Zj-}yJ71}a-k+TinDxceh@$vOo-@xqDcW0c(Wl+=- zC%6D98s3bq^!k+XHO12S^{XBoj`bEodjP|4I`fjwGz5?)Mn-8fqw|?-kwm=@<*<;e z&%Pbo4K+}@4t3Q~rNx~%cfLmzX`>E!6a1D;l>B010$aPTyTS0Uv3Q`*5E=9LQ9WfcR`TknY|4P#25DktIS17=k8aQfkd<1&d%0-VYtnVH3tLLaNlTfa1YuQ zY-Hk#NsE9{y4z|;W>lclcI0?r*B9@WKWGGt4}9|vGmt#>GXiK$kcgx4zoR?MzZ7@V z-#2*gGB~aWs*KnzO`d!|Xx7ovmO;BQ5TpZJCpim63Fp?OJCjxD>w0a+yPeTni}eM7 zY8$M&v=RPs>yfc9yD=`!rP|qjZpUbU&1SDekqPJ56z2=}bN%lb8`*gjxi|i$oZN9B zh$N-CZwoNuc#TPU8Z$;ON!_xN%GGNxp$t!-NmK3w@MtMEe#Pj-*M4l3=WOqnlf7xX z+iTG{TF@f=^VWMbR+xNN+=C>(S4J|PBEx%6`0JFadr8*}S=|@)&hUWzg8|sQqecTV z`Pr;6k~r%QkUCF~ZTANEaRim#{{FInio>6&>4|=|PY}pIA*5Ey7y#k%HTbc?p1U;A zYqFH&+_Gfzn_Mznidn>9Vfk2zQs_WtSaFog7&qqxy$>eOOBBNgD3qDM?=eYyuKS0i zW$Dj|D8M^rbh_@#Bfe8ABW59CFZy#ZOr~U2Yroj+IVA+*nz5kX|&PC!CW zSMPI*>QJz8Q-fYZ50-k&9r7gNygzD?8HV(LL6_v#Hfh+ zWN=~~7sy76H+qSVtiDv76V=^3aO-@D)uYdPuA9|@;C}^J|EtE?m>tJW^aL%%zkgr- zT8&ZYEnw&7Qi+t3nOs&JHThuKC@W~NwmRGpHAFVp{xCF|)S4K;LobwQyIKECdS6I@S(WhbEJEGAvY%s9^7;WkQ&OFrq=DJ0GuiR* zOzHFmT`uVC*E6TdKVSTfCX`GNoz*N@*aVjW{G#Zv6h{TnU$E9yj`Z*B#ZSF=m=Y6W z8J_^En>nkn_B;B*U18o_kebcH)$FS)DvDd)YU0e8x*h3;dE7`Tj!Si&)&rr7=f#mX zFC!#nqbmwF-L)kP(_^FQt16vb9H8mxNoiTnbU0P;iOJv2S*c(As$`{+(i8gmFWWZX zBXm6p^cW)x#g@Dhjpk8D=`=n^tS^rlmlP#SlQ=bm)hqd54XihZLC^!kRbNmiFL17k z!|Oinv)19=m!gD2_q0wIy@sj|J=j$k=7h@Tay+xWcA2)~vVy{ko)qhOJPcM9{pGu3 zYo&07)Ec{uP_1drk|Eo%R$H2{xN-$7M?*s^M|DEAd6Ex|w5TkJ^P?WWMIqn1QSRgt zMIW4hOiCQ5z@^(VoQx?PC}u+&J8QpCEXYaa;j)-d<^ric5^K0af$sMGd!AWj&-l@& zuvj*Fi)$HtRZzD5TJy1l zML5$seG*p-I$B{xk6))~`v$8t3zZdH<#Ta!jRWyO#?ns9NtyAtS9#U_XI2uPJ*icQ zjm{}!NX^|(73xlnO@D9i>=$?|bfWyR;L>WGs(p(-upKm9zOnJ2I4&;vgb^MvQ0af9 z4!gJH!imdRNVR@+=f2~?n;oCXuB7l_wQMh#emPE41o zRuWJeN?%2Zrx(28iXSKC20BUTx3>K((#=i9JG&v(lhI~mm{hkM`#w{;oi3+sOvK4v z`~0cu3Bn5*PFRRTJbcPiy1T6)cXE=S_ZIit(`dJbtmD;Zj|YYbq$iHV!<@&C-svZg zm>lGn$sdYOCAX+v?4nqSbIx%$Pf1?|Y$wcfIJI1C-@vhyv|u4ufCzfpmmS=EH4~o{ zh2SG{Vj24oJbFbXl})(o*cdq$KlJ!6vT*S%(S3u}%O+GSP8S}Y_Z4426YNLsC5eN* zlEdwoG(!`Au2gTGN~FtlK&J1U3uNhE-*9^uwp9Y0+Qx{SAyE@yRin~%e*yk+v&=Eb zRYsrq)G2M=i>zb|sl`)2F;3yqaixNQTP5vUSV3>}Cz0$zOgd_wx1|uPhri##XOhS7 z_kuYV=A4xljSNq-1)#*;i#hQR8E_N!d2Y9>IR<$B?e@yMic_`SN^0M}>Mq^f2Ze4y z#m9~J#C3$m@W#EhW|TB_G1K7zI|KjZ9=oihh8o<{@}lYxal@a-_isk^^s5etTQ?uAfH!J(-PUy4W_8eI@ zO40S;-(ernbaZB+wYky{m>2lo}9^5xc+mWC_ds)M{&NZhhpkA08y2R<7muaoFDc# z;j9%Q%r?{X4!)U6Nf1=b6tN;nQzW&CwF{htnY+<0DZ$Pd_IOv#nHImIuEta5!L}{c+Wf zg^tR0qKj5cFpjOwI|_t-d!6*fbd4k0=XxGNR$5Y7sSU>#ZhQ7gb2$OpCa}DjiILA) zXc0Vo9LT+=3NeR(JpC^VVEtlD)7I^XYmz}6S9}$2{&4_*`TE6BgO-u~wBIzJ+q+*c z-1a5K=!zyg;Xu{nVChXRh}KItxiO`@mrNK~Li*OpsY7F6qHXf}*dqF_u01rF%4a9} zbH(ouh3NNq8*DTy=1iI*7qI#wVXZWT&6iDM$0t)dvQtg+FXpoRe7`F^&rycc-v1FIM9z*4aBmFV?DJOlIseLc>!x(i1NN!kpda&0S8?5#y8H!IvDm za=rbv*Y0=bzqV;*w=<_tB;Hatfvdgbl&x{Xb^Qpt5s(YYq88&2YpRXdl;)Q*$R+dOCmo4X2S{K9{b&uD2VbPywcc(WRT; z(&m#T*=C8-`Y5uO!4I5`@!53C_&yjdqo2JPs)M5geOjHM={UQ%u&5Ru8~jgG#<}DX zhNohnqGH=S-~Fn>Qb|D-{G^x4g6`(62aYZ#ViN?i01I;Anqegr)cmiYH@kjsnu6^; zF359emm{#X=wC>6@O6Q;UB9rB{T9GBR34;eopgVMPy)ZmT?Z3ckyx5rldktG7#Ra7 zi5y%2&)UZZ`6iO=ZAD4oXJ_jla&a(N{$>&%r^urE$4%nKCWdOOg-+tGE9fKX@X$$s z37-8cLTT0WG-Zv=yXycQ(|`N$(MMBR!$Q z9AZckC^sD(_5~@f&`?%+WFBq(sK&;Tgu_0A4xZy?FQO@k*7ve{ZNKRaONJSHppA-G zT;b+!1@tIVW5VXvA@itP`p<*Sq)T(Vx*RTHz@g3$Hl_T+FuDu!v6e7LcCvfi9-<8g z=e?u;?YqFT&skMFbFjyvtB-7e)pGalZmUVU*wxu^iB*o*sG$4WSNA4OQ`e~E9p8~< z#FyrouJuf2&4fZVuBIyrW~&U|)Xril0is?DZ?}op(Z-Vk8eQl~wE_l~0@t z5BG3tDk|QCZCn-QB^1T_2&=EIt`sKdKA(gCUHaB}AF6g0MQ6S4^fE9tO;}Y=sO66U zgHLgKlHi9tGQz*!itkHua?8Y3oMAmb2XTO@Tsm*dmn)ld)CXY@OyLw54fhr;v zP)B0L^zy+X`d4BN$IXD>^A@U(lL;2!Yvfg-U5EX@z`gd2?yWBhSbwJWP<(J6tG)4jCD%PV% zYLc|O&zn~Rn;q<%A+YIpM>v>Cnf=8+TM`7O#+w}C5fk_0{N3a!XxH&MO}||*ihz)1 z@`WrHK;@R?o4cy5Q+0E$P1nBo5%lf%8h$e}TsQ+3va452PLH$;a8!CtOHCM_k$vYi zzxnIvQzWiceLSFSpck+K^hZriy*fu`X(AJ+sp2y>HKKecM}b9`ZL-mny<#6v#QmM4 z>g0~;9i8Qe#0EZ^Ebd@0AW#{Y1ji>uQR-oe`f_t~$>;%utgB+SOVX*8OfvSX6w1Y6 zB{p^|V-R^mH9J;8$>hI{|G#N383>oYyGhvz5WDytn`9uk4&=-gE4x;D@WL8|1P~&2 zcFk4ts@9&9S^}&E#3CSgovgo>;bKXW&zCb*)~|n&W40AE*vxyLaYT@^Fx@ijx@ND@ zBm7#>>HNn*J8(?b=<)(Dl_~nhG|2^(pH^nn@Y1Q>o$fsGm--YL8r*sTyi7qa+lbq> z*^g_W4jC*XiR4sbNw&8l3x7;hz6nrb+>QSp^=gt(HZ&Q+s(J6ysM_udo^;Z43>d>) zp^VK&m)1@yI&rId#<$9~L$3ddpIF~5e%Tn_B8~-Ql4^5um6o>EZdV_Y0n9Y(^+)K& zKH>~0iwm9>YuXZzl>961Ve530s;+QnO^e|)zsw0J_hN?vi_47xJ)AH(naFQeoGkuEi7c!6hMn7Ka%1Qt-I(BDNR*3 zUZbUj12sRM{A}}^f0vx>oib~$OaeZgnTuBqeqjzD5R?y#9|ne4B$Uq$*1ldfx&exx zgnh$G>84Y=W2p-^SEcKwQh-n1M%tQDz=S=cD1Au$zkOFVSw?o4*IvAcgRD9KqakwU zs*_ti1*cc9cI$jn;60wky|nl*Z_~`REgQWTi=X(N^(PNu@?jxFO(tw_9riXH-lZy; zEn|t=rn8S8Ui|?e{ZV~dkBBjtSX>2d&yESm^iLyHUU znN1Zy712+0{m~AkCHtxMhCBHUenXk7_vfJsc!>r9iq+N#+OZat04aMPI1Oi`wd+mRIiM(do=m3n>6m9IQU<_~}X2z=F>jJch0{8|hMGi1n&EA&G32Zbjj^AK+>K8>?S6U{{?6&*yVm@NvF9-3WL5?DK z84C4GSTX6%ovhx|n1>5Xd$Qxae<)7PL_Vqot#)4MNW4Uml)M- zZ~agE#v}qi9mR|SMh*Nb@UMG zo>GOLb2C7wdnu$!=B~5e&`4#x$Xp-j{Tv>e06Z5Ba*@;Xro&l$D{;x+d~ZD($L@CA z`Lp5TUbXs<_vzbEcQ$dfR5-{~#Kcueresbm!!G2e#V1vuV5p znoaWyp)zrbDq+1>H;x$@$^;F@Rt~{{zM}o_xz5-azIFFyU0dAR1ITh0!TL7 zU=W9Rh8eI!O7Gy{xHJ`_?cw_X6Jk)5tZT*3KKw?QR;4tZv$Jx!*`-)@Z@ykL8RL?P z|Fw`hkoxCnJ5sT`w_=08TDU#Gxcyxvv)%ouJJ1PeJx{u1$Lu)A)ZKTR=4Odbttv+U z4g?*3SHz6N|4#n426}`mO5b2I!-(9^>jaJi@idKdQs?&beRB(C52V(36aG%eH=px; zvJ`FA{Y3l=v)4k3rBZu9FeQSVnp zqM^2BHT*wNqX&VAuH3RPvMvHXtF{s=ts!dLY_@TOqha(#OlKCUhnKF~seO{eSy%)9 zQ5E&Iw~v0L!yVGD-p_yt%vOUi{vQiiw0DTu9%79ryzh;h3-Fvk zDv%9%P+zG3OtBFI9Wvb1~pjk5X{T)Iu8=vdE(Zt)%}+chM3&D+qur=*P9Lnn~g0CGiGC@6R)|^Lf+qJ zpKP}EV7oR}kC6QP{6~Z-k4mG4*f9(rmk3UEjcI~$Kobm7{u7nZrI?CJV>xua-{$@n z#*fAs@|~lF@Jayq>J0t;FF}V_7a`)Bfl}ZwVLQXNc!rn&`==?^)K9R_fSiN+%w1AU zQppf0-|N4>SwS(mXgYk}a?eg35Hb7++{}fAhR&Le9J;wBth?7{rrYpDOC0rxARg<{ z9@=EO@FkdR5fLKi@V(88-QJiYcWhu%wHC8asXi zeOD@{W}6x{dMoLhqR|_o^5euh>7*AGRGl`X-(*BJ?tjQawvJ_o39sq&6XqngTpIdrREX@Yi` zJGphg*MxjAXCM6wDK}wlqJhu_>31&yC;8qobB+IXKrZOqHqsI)MSqb{P(^)e1%0m> zDCE`ZerYP)+JX74>KTsjIq)Uuj?z5f_Ck^8Eie$6o`R{m=E+z$v z&K8LyNV++Ec*9n4kLQ>Z4cA`1))0!ZvN~eBCvK)10)-?$)sT}#KvON`A+ZFBy{x{i za6{R+r_pqSt(>fH(WP`Cu7m)sF7wc|3>Y^6gx=tAhy_RR(rQ*;S2&k>nsw(Urnh)e zgY9ydmS%oNM&$Pmo0Y^Z?`Tde1CihGDCLdosY6$x84bW30z9DDGNZXgDL^5V;4C1VfPkV$Zi|sNTyW5R?2L%ALwUD1)m=&w-_NWv1=IsB83*zfqI2 zj=`~dlfv`~2#AWQIXmY7H;wKU$|6UcNtfKQ`BJgO-+zRAMZqThJ#c-ZfOhmkrb_u9W8az&Hw-JW;^nw% zwsRjaBNAvr%pWl)%<_3f%$ax^A_^H+i?k*r@?bq+(iMw!x<#rH!FAk_=Wej)`lS=I@MNItBN)tq09T(PI?)B8Cw_XA0s3Mew+1=e*LX}LjQkt`DHnp3N4a9q2 zV)dnMtHD7y&kbfGM<~cHRs+K5H4PQ>Bir?qf=U@_!rX&cAHIvMNV$@e5*U@uW`RdkvML_I4F_$s?;h1c56q0stC29%eoWLHTJ)$)}8L zABFskHSVAb{uv8W=rPd}z3zY@hDk~e8;y?83iEvghWqG6Zvphq+~DkpW9Ug~iSQQA zI!OTVXD`ldUg`+XHjlfE#uBfonGW!TRyj4$;YX7*E!f>`w7!}D_qX!VS5sZZ%A#=& z^GydWLI1;hmkiW?<|)kok5owL_k|26gMaY_o!WH1GWXyZbVG|HkdyrM*~{qk16=A{ zz9b#xqA$0mva)n$Pcc(f_5(GU-XdDHJBEpzN7c;eOy+4dPtoC?tjgSINub}CCGtx& z{$n6AvGc&P@6TMAnTG!Xj`s;5K52W43YMb);rR^ekzW5Qt!o$B$pvgH2zQTzT&R9X zo!!0Zc2eW0A9%Jw#^G#>%AB}3Js@@|6-3lY9OxWu_u;U&p#120xY-!~w&Vutdiyo?qmbe%FJoQ=!A&^o)LwhWM z@tOHQaZ21psKsL@X)XCOs|#f5ke^2Ftc#UizTDOZ=LkxN z%#q<=FxqYGt6<+WSJvK|i%sxo+qOrwYTJLbKN!iIvmub%zRJFr?cpFnxIi{#)Zf=T zUMHJmGB4ng%g0XNInjvcQ5`Ix>dBd9e(-v2^kb?volfZGZ&#B2km%QntokV9=KWIWeBRYL< zB?Zt#fe*5A{zMPS(@>hIZay#QRO$2?vJNA;$ES=EUOP%r%5As_TG*{9q!+PKoiS^-x z04DzscPEBo&t20wxSZ6avk5-KJ?AYu-DgcN3^VxF5C+J ziZJ^$2qDcNj!h_H2*1B1fIvRDSv7#n9pDzH<#>zt^T_qW8}TfENG93xbz|zVOQTz# z^wC0{jlIU)Yip7XHHPg%>^$@wUblllsZy3yOK-0|YNwX=_!&rQ2eBQSSji)cL2bGY z8=}Lqsx_oeU~ur*=}8aSwp#B*yb*Y&ybo}iy}vAj9$I)eTl-60*QtY*E5Y*>JXil) z!*NW}v5Qr_c>m|NWtB5%(cMf-@5xP?mbRMo8}|KlzV0S_Ym_Whg97hXIo-n2Y5_=- z+ZJPYfM$b4uVe4I#M-xHn)thPauyZ^pmkLOD^MO(x#L-X!EQfer_Q+?*eWu=8 zC2_Bxz6}7OXh0*N2~_t9wzB4%TmT!uAU}U+XWwN;!A!C(Q@e$o5lm9x>~K+Ah!G0` zaVqq93t@-pX*1R^=W=Jed(XE~+VJb~&?q*~|Em6x;a zbkzOs?QFfvjCC_e$gXzlXsFqMc%OfRgmuiCGB~W#VC?zD&1={hs9x0Rb0W`|Y`>N~ z9_4V6)K0}ZPvc74nK$$hzpL@USk>bxi<`76vMy=gG&PB|S2ly3!|zjVz@J(-O!&9q zY;0D?&#g*_ZJhe zANaZ;qID8qWc&E~s`jLGfqd%O!Dt;)!2i%+#}4k@Vh7(2RWeOpNUZ8fO->@4{z&sz z`2<=d6YdgUM{fu8M+XB{-~!*bvH$Sv&=uX=N02NX5ETZldPzbUc^Qr_8(>d~w(PKecYK|($bCq_sQ&@F@)g+^n%84`I znj7ghIEvzSuY{_}rW(%I-nyvi=-GAL*$9GjR|VFs2kVDVmkUF_59~AYB2sz$BAIyk z?sN94dW?Ci5hEO=mo2R(mJXj$+dyo=(oCyLGm*b9x|Ju-fu0svEseY$0r$zHAu>VT z3^vDVS$mBZ1x`o`cvw)`8R{0GZZVVd(C@6zjZQFvu0$W?(fHeYPn}DMNiB_f3+5!YjyK(2v-nN zd7JBIg%8pyed;P|HnW0G5f|-W*D;))e&1n!f^Y6+lm^Z)R#fA!f%M_^^K}egYU=yF z!P{xu9TDU%2&l{368bG+Gv0fiIe|i4@X90@#_v83^ zies2$unqX>ZkK>HiV49#QJqvPvQlMnx{?t;vvWwb0KH&bN|P zGpUQc%C7+oF5_UbJtz#2PJ@51A4c~5E^y0i>Nu3w3hDWqGsN523Ig>3EA{t>%T_lG zmb)@H+1$#!y#`T_7^-BecFg1)x|?}ud3tvV{8S)$esmA53C)Pug<-MtBgzyn(xPyk zK-%nSX{SSiidvr+;4ulXH;n7;!u$+Ap!;QN0x`YOVfXRxR-zhLKsdSp`ZBj)>eEjrjwX1p@lCZ7V>SA!oJ0vLMCp}u{VulE#O)}P^fIS#XD#AdaWqHhg&jI zE=psXCi61+qqP;qVUJ2tLZiE9@de>F!RqQZAi<1Np4-j0LGjwpQ`29N4b>8Ylc>`y z0(hXdq)Zd|u=d@C;fOdfM!D zbwEb$#ZzF%in^0~HdTp-v*{RUZ{wH85Jdmy+CPO|am4~;OCLi(QKq!~mv-J>0<>MA z(VfdE-KRv?y%vP|0|g2f_N(B>`3ayL^pe?znyfChoow0_PJ#eTxd-v`;~qpC(zL zV4LrB(BlJu@7)t23=UL8!tCPo5_X<*`0*Q7to(I&a7~3*a}S)0i-aw;&J$Lk2tR=J z82H79`ufI~M@L+|9h1XkC5GK3=pElKxz|lHaNP(N0(*4)7%C;>6A6yw{RG*DY>OYl zfBgnOo4%pVAm)+qF`doU*YPR4`18xF%V?GMQ>avRVr`kQIr@u~+tq}y0>c(k6H@|A16a@YCGj6Jm+6MwQzv2b(|?-#-Eq~rxY!qCd) zg5hVRp}4y|w=Et;6|Y-w9x&xjI4<jy8qtJ2`72y9B~^*&%ME+gBJDG?lRc}wrX|^{O2pb!9&K*5#<^OC_b^*( z`?`U-w%W~QtQ1*8-SzD0@AHC)JuO>IW%e(8o{&FQfg2jh@h^d9$*`R5S zPvSdk4~5Fma9Pc4(yo15QDg6ejq#Ly3f(ges|Ia{`6nN-(-@Dp=dM#gfrgV zt70%2;_t(ttBuE4Rf1!b|2l3&*=heg!R31?N1pIR$Xk4Vrmp>o)dRi8(ji}*Nog`X z{ENj!-K;*_v*~LJa<(pQ&YQR5V){`-@n25uM4XGgw=)r>57*~yeDuw8i3y0NOt&lb z@0g7~+9JcD*b5%}ZMGTlR{u&}E*jnzWd}Pwh0K8CVl#2%221P};#U;3jO=ed+inZ5 zG_4u%$XwjuZW~{Y`1CG~7_yWQdv3lL!s3kQxp~Ef2HY)TQ=~eTtfHZ05)JZ>2$_)%YN7Y@Nlu#>3d4S6vpsGu?`zOAgb{8&468ABvs%DOIzFJDhBme# ztT6PF6NYd7Eq(|wI67hJg}s^QXP0bs88#Wa7X9A%HLw?m)qkfPZqiOOvQN3RjuPFV zh)WPz$NuNoW5LmIJk~wwmHe9rEc~%aH}QIFh{(&Ozadb%j;EA7r#7uJOl1<=bRkR8 z1Gl>GRlaJUbv|wIIeA=Aj`S=y{TEl>Ceo0;*1GY7`!YYiUpTklx%%U%tg|*+rqPLb zg6{J9b>H?*FMf21BDVQx@3N)YQi19d(xzdaa)uO%2gpX?1f>-V27D$PLt>zglJSF?l(p)QqrB|3x^U3+^RG#ZE1*Z051^Y|U^E*crVUVU*mR+b!Re zae3GIv?sP!o{sr8J-q!AakGeu3v?}N2tQp6b$R=4KjJaGsgD(TT7BH9_ZV`6e0RIV z^=q|URZ2-XMbzKPlkjWFxDz!$ivyX?0g}i?FXPUm$XT)pN8W*rV06(!r>3%Qp`vwe zixd&WvbuOmOUm#k8u3^}@2j zS{7J8$v4^m8ez(98|o}9*pm^s+hs4$+bBI-6%WZj1u8CO?kAzHR$RH`bnyPlhx%py zwMfeE_uE;J*!LN5{LG+bfJ#khVKwJOYm5Q?|EyCjY<-4!;AA*``kwDWRVet4Np`yD zP8$;~X8w|{KQBCP{94Q5=;~LOmd_Lj8paa$>(?=OF(RrcGL-ikY4Gv#Uvyd)U&(EV zSF2<@$l0H$sk+%Yv^XM}vG|%FQKQpg7$?bC#xblf@7vHwl675=3@phC5hO+SSEw68 zRWYqAWpLTSe23{p(=QA0{Nkre4Lk{5hG?z?XE^~3J&lXXC=KpItcHu7x!?|x;Ty$` z<)(lEu_)o$`OudyBVyw`eABRB$@b5WqcpVFw{+cJU&rmJ=Or}q-=s>McDQM-N8I2} z7IWR#g~uhMPPGK{67vBf)ed09HbQaB*22xc@rmVwct|~;sa5mEPVvk`-tFuw6`U)o z9Pm3nTmA)Sq>`%8O3$Y2(IItUTn1!Kk`=GYh! zpNMB2&grS{J<`E$k1X>fO;^&N;PYt9Lb^Vkg{|Izlze?fvz102mET!qcn=0^eHndo zeRi>=2bv&1?$1#f@6UD|cgMa8WF$hc03cC76+kgSb5>X_7xJm!9*TZxM9J{B`%%QBqHK#5ssb$uda>VIXg8X)c=ik3NAT?_mPaz@tX&_XR(R?{rXai5 z-xCoT@#H<-a&s79K0bYXbl~9uahDOeHHU^q-Hbv1AO3CL9vQv6_Pmk zY4DCMyd&7n+HtTfUPMp3NLfe6(>0B;n^m5IPF7&dD18U(OLAoQS>GR~wIgBSVe(yN z`E04Yy(pt-m=!|;sROV(c;9SUMt&!xK-*Jaw8B;>apIwxM1Ozu9y3?0z;S&^`Mau2 zN#kc@Vb}Kk!r3!QWJo+OK5j{|6H~Y0vOc|Pl2Fm-Xlm178SW*mhP3wgu2tbSuOIFl zC?vvSDDg=LI);}nEfvMOq}%Z%TlZvf?ojStg1n&l!X*+5YMiI%aFupprmOeG1KyqK zfyHHb!Z)5-v25S^N9Ke{{U&xLu4Sm)>+LJbqzl3JaEVPGCnBQzkg99f^j%&gJjt~- zCKXVWNjrPr+~n^F=b;I7`)5}smby#n$J$l)T3sebhuK-F#9Ygd8%McYsGdBw@i76O z^lV(<*^}{&U&H&^!Q{!4$J`pB6>cYs?gL9-j4KVJWAheXz4GPVAwZBVOJ&!d?;xSw z653t;ZuG-3>S5-a9|N;9HdMm8TJyz|*{PmxeP;4D90FXVdiq{wVaS!^oj`9-)j$a9>~KjU&|0 z=Ah;`FU~PvxP>T#i;yKw+9%i}UX~krhK5>bumPA~6x@^3e;#lPP}fxBL?J$(0`9}gF=V*XJ^Wbd_PB`Dse@NcGY_?$TFQ;x-*#u|^abN=kOWFMpG z*!7qt-&Ajz=6Z)lG`iJ4(fi$!PQ15o%Luji#^*t9qjU#LXK7~im4fs|27bk#E<8k# zmVY>*o4fvJSsxDcX$RkK?y7#$-)r$>#AqFv{WxqgxuG zUBtH9@8X%o7qP!5vtr+>Y@&)tfvYrE!Q~jaD|OAMSTC+k==B|guBWKOWqhzi-MLeA1Xg`77LkEetx5un%Z5x zqJGaheCzIK>@+%D7CSzp>y_Y%%-OgOu2C~k(t~dW{2Gpc3T{&5ncy7XUCkTx1NgL$2X%a?nC`79=5em^AhoLe4P z$QLP9Tx&;2ij;T~2PL&Y@kZ9Q-OROi&!X?P+&!w)GJaQ+%5H@t(v+`S8~rL*yYVZU z1>3h=EeA$>waehtt&O?%r%+9bMB!BLmvZ3s{>)PjVP{tF+v3uF?>XjF{juy+2ze~E zY<|N&ro!KO;1LSh85n6rb=)d08rBjzd-e41IuDmyK?r9r1jK^!+?8oK ziA32lNAKYXHXUudkI@4g`ju6^E9o7;;vH7$rT`7%-AxceZMN$LT(5MiP2Rr-IaQF- zhePJ<#ee@^lH{`#vJZ5DUCh$~;&ZB@0RAWx4%Fxvth zufaMBUYxCyb&3QQ3iui3-=Ev!{H4iEx9RhxIZG-f4{2zMw2tM+ikeKcAhHY{hBP&~ysOOv;m z8MDQ$@#}+n*NUDlnrY>VsOx0`WEQ=Ze|@w+YsAKXh&GZqv6@xSh}d!d+%SmeQ@ZWQ zN%BV$EK}23o?l>Ju#nG6%(*dT!rfx6&d5S`3A(mx5D|_`Qb)PJ%J=XXj?!A={k0RK zzn{SpQhQ>OVLQ3#M+r{yiR&)y?P)E_(5)iU zj*hj_u6t{YRJo?ouO5l8y$ilVqWFE@Q(JwjEOf)6uxeTpDqFv(6I+~Z{y5rLE7Q4G z(cHl)b4tTSuX=gsFiz=8r@jH-vYFNwPLZ_zD!5wa6K(fpAwxUTL zeEilcNOl!u>gbzOvhpNXJgZa`e+qnXeX;mXHn9h=3*p?q&UH;Ppm;~^Tvxt#9Jj<} zun}L$_L!1_c{-2Bf18p2_vuKDQvAr6R!L1?d+y(LENXgmqp?=_f=le#>xLk=p`l;D zK7>S1nHJ1g+)1`pj6>xCoBuudZNdvQAsx4o*Z>O>s9yj0smRWqg3cMgKo7E2bFxfB zGeW87>^vdHg@gbmHS%Ma@9T*WWS0flxP)qt%&R*WIRQVib80(wdmSFJmM1~Gyb;6W z>aw~n5kP~z7CK0IgVtQ4)>S%L^Gl)A3me-U0S`TrdqFanNfZEN6pW2lw++Ws3Xa6~ z8>Kmjtu?=tV9@IYLFrnSQ_$^6LKieT&Juc!VtmZ4vB>E~PM<~Gp~$6!R9b1odqCu> zNYuZ@>*-B>BaqCI|Ohy4gr# z5TV@e_awG4H&(5f1{ii;hlW9GDcgbRvXX3s0d;roQPfmZsvcEN6(`*Otoa@N1P85Q z#=QX_GO%;0fy$jzkk^0;@_+v80nnGWvJY`QL1szf?LI=++`X%okIF5KebBSD?W~=L zK##TAzU;HGKI@C<$}maqYaG>k$jsdTPxlU_Ddg21KL;=|MqZN)jc};y;JHD%M4Q2j zEyZ9ssTf2gE2Qnd?u)H!^04HUOy8rHG^zln(pKfVt|5V{H~MhUUjIyTxr@0|37W1@ z82M9tsOh6v(WaYj%2sljB~()G0vk6N07;LiXujVo^zaq2l%;IuH|6)vk&n)f?;t0q ziyk^wrKM9aShV;)pC=joalHXM92w3qAnimNW2lz}JPRl^Q_bEaDycylYSIyA48 zpgby)B#0=WAKc5F+EZ3n>eVh#`y#00@y$#4C`kMF1Xd-On7G%6MxRyUsci58&eCA( z#|+=s{j$Ib58g=9dAS>*Dud~UeqiPBaNdGFKO4{(np}t8dRwlgeNbw#JcBU7*>sE< z0gDL#pr#0275%=C=)93@29-qHuUygf_At5v;mMSe%^#_JQ+K|-PQL{h#lH3g;bU`pvzqrsBxnn3L63 zCA)Ni+s%j(KM1;eDwkpEM0W5?v$~6lo^RDRef)7L?e6w(jrCv+R`wG}+jSrluzvw( z3I-Bjo#mk8t85BRE?zx&k^s_A*I7j9Nb0&Q$(3Gr9kf*|=NC+Ycx7^)-O__PqmdYO zEK&zG_#S_J26(~pLL$x4*;!|j&w$NOd{Gc`riK5)o{QM@pGzL4@guITsct?FhzHRZ zc99Y(u!Kh`W&4N!&{709(MS7c5vx4VoLR=(Ldz*5!da^z{Te`t_Th!qoFz!}d741; z-R`Do$GPe2!{r*YWEQ{nUGE#P_0*%}%%0dqVKlwhl<)0%| zG6*wcZ+_9!B~Vb$J+mNE99j3T$e4K;e3}(o5j+9e&a-(Uf{;#o;dTAzM+MjWB5-x2 zE;o?*l+SQ8jtN`&#KBH!)en=Ec`uc9P5!cFqLY}K@oqOfO!ON(Ygge5N+$F#cGmN= ziG{`~GZ6es&BWfmBd4|K3<`fc7ykcWuHQ)_+L>0My$V?Yn~@w5a_gz@{^JPud}CQe zg`1W3PRlYS3|eVC!Izlq)zE$VH3y5>32= zbL8&KbjQC}ua;D33>J6I(Y%m#A@J?_L51)kB44?{QV=d6fe<$PA#tyy@*$|7B~F?5 z&?Wgy;I%N;&BxH|ToEp-+c-+o8FBA?mM0@KwohThK_bobqcDGIF`CJT&=}~i;$Rdy z?0vRld{({W2(We2#l4%i@^|Q-jW+qV-K;Epsq3SaZL93%&(~FU^kLlU_gM2ulJz8; z+5f#3AnN6>cu@3^D~1b>U9A+G&w(Zteex1w_280J22=NZ6duzHujc8Wbr37VbM&s+ z?6hXejg%^ES+M&*k9P za&MamfQ?kHbFJ?)lb4x~5Gtv92(V3F(UNpw@X{3Bj2Jua936g08vZz#vdDBP*RN6~ z`u9U@xG(9tHwlH%2#cr+b8`YKZivr8v6gT-r#PH#n6Iqm)R_b#4M_PeVd1wL`2R?HpZ~?b3=*ATA)(jf?R6z1bd>=Jts_By?oa3 z;FJR=GsBdnOA_mM!FXz_T;nv4@^)st`}$8##jiX`!zV?7P9Axd@9NG$zQ+$mEg;5@ z>uq%VADA8wN!zT@?nM5Zyn7=z$MW50<*y;Jqr0zBqP%)u@^b65R6|~`?Q~KH`|;KU z4?FmyDK7qeY;XV1S_L4H_=DY-*tH?)j^$52ORFZ;0;GTbtR;3A;#mvN5MRZqMeRpm z;QkD5-vD87vGp&!Tg%yOYw=Ho@=>FQH)`IQDGr#47rQfK)<^vsEZ=!lQdX%%FgycX zL@@!f6SM-rIyQ&tE8|8Rj<1&dp3V76*UNN+pOxRPk7W*jh-0GN8uMkib2}@}!<|2K z5W-X`+5prlIJ!58^s=f%rV@Keb#;l(rPZr~cNU9-$9+vFJ@!2;eV^>rgP$Fb4Gu-f z%Y_L@bI!aVVw8n?CgOQek5&i#7Ysfa;oZ~Ta^khtBPhA(;c*u z%4Spn&zrSu4Hg#9XEsuCC~gkt$a`;K6a{0Qn9+~Xug3Hcd*r!h?|eSB)aiU{dGY*j z%FIIrZ_zri31^Eu!uKV)(B(hSRyms^vFdhYekM@YQLR)~>yRG5^1FUUDr3y?)s{cFkvTb9>G z%fC6t>8L&NTrw}p`EmxA1qc=n6em7T1CowEYY)l|v4eG&#erfROiJQ;OanIb9tY2m zsFDhAe*gl2PQ}5!8<2#7qAX$bnPVDP#if|4xm=({RPpepoT({u%eQbE=9 zquMNkI6d1xnbom+#eYZj6n|3)8T?EJq?+IOE{l4`qd!$5I7H)ym_UqT-aC{~dO z|9zmc3m2aC1$cpF`|ku+Z!QM}L{7fdXn7G|a+i6=(#MN`n$3QG)ravTb<_~(IT0>u18=dKX861C zG8y44QuGfYm-W=D+qsRGnVw6C)PZFNqD9JDuBTL=iEl`ExNhWvjshQii%*I*Se_dH zzmY_ME#d9|jOx{-ajP0Li05c8F5Q#7ouWEM;jIskm-mvFSqr6(0Th_u*9m@`?U=viVW6>T{Viz2x-b8k#iq&Ym~ZO+hArDcuMQN1ER9S|t;w#vXl6 zvxqF)tuf;I&m?n%!okQb&g2CqXRuCK8G1d-!y^@F0~-PAwJ{|*LW z23GvvyVD;-;~f8c3u$u)Gx)#vlK;;`R*t}l|Myv2@(<)!>I+BPx>ig=eDd>8>7_R&E53PSj@w2(<>dTHK28A{R8RLmuUGTtium>|TEZ9a$VCD06^LQ__#%QN8a?(tV6jMJQQ}(b zk-Tb`a-(u6N@N9K(aT+RP75BZR>3_zJ&ReP+}9?WJYg}_ub!x+%~*Wog&ZkrX~l_Q zM>YCs+_U8)$6?ETYr9LS)=3rb+es`ZCEPaO+27M#1lI$$9tYR6HB}9L+4Gs~mfmfj zrKP39sa+MBM|^x5q*ty8935jfkd3IZT9^9Se+`U56pTgf?d{Xfu7d&k4$Wi#=+2c= zMYR4i;B(WC)sT>@>}+hR-iMn}s7CkVAe;0{Qt~y{BTs5++<97#J_Pbii$pVux)nr6 zQ?H?8GT>e}ep5j~VThfbofo$J_V59u zwaNlPSG%$G=j*MrtR~F(bp;3{DG+i~Dqpp>UdhL&>0k$q)+aIn`yy(ntGm2^pILI~ z(EjYvqenT9L$Ti)C^f`fs#FHVaVdOj8?()gO@~vq6iLBEt9Ay)GqN%=UAyz`XaAC9 zbr>K4HQ)(585$GSwh8*MBf`_eF<+d7)J z%X)ISrBV7Gt0aUn8-7bKWvO8->3KIaw;b+ruasvYh@3u;wu=lhNLQc?)BuAK{qkvydy3s}vny|V;|PN}ALG1wF% zD?3|!`(nVNvO7QB&xX^u#lRljVwfu8+M}E7xI6a?|NA=6Xr%>$_aO_5S$hz9(a)c6 zWn>y$H=albQ*S(x(r$lD$GGtEoA`T;?mOD7DrvE8ZBhyGW&t)L4~MZsx{5di=OM zH^Ine))$B3Dt(}1V8EH~v;VdH!{2Lh$;rjaDK8$lH5z^}H8nrlo%dSqOT-rym-32R z`)xSBSWI?kae|^hf4)pBX!m2f<(ZNO1(R68J_hsGqEg}2t4{}OBl7ws+Q;W7J7D)1 z5dZ%S-hrUJO+(ZB?G8tOVd)gySQ2=c^{$6rrA0XYU_>Pxkt|d^Gh1 z|AqhR;Dfl-)U8wR)1$rqmsZX&*cd6ZPe#i*-u59Yt2_fm@FP~%UP4;(-f2eKu~~tp zaH}2&0ljLQIH%2t=jNU6&?w#S##UOQw^!}-;;GnVZ>eG9D407f zZSDA;{{Hx^EEX-`?uzVRBO>De{E-oNoRbpw#k+`q_;WQ9>Ao>uvJQ;h-~mE1l!GG%WM)FRf#T|Ve&Ks^SO_9h_<~?{3JQw5QI*JWO371IU+kDpKa5jC z!iblT54%;1hDI=o#yj4D7+9B-yaj(?d*N-=^ld6G7LgY(-sxy*Ra;36h+)E--6UAD z&|Vu{-qPt@+}t&ELG!1Z;NNfWn$hmGUbKj_vv<1~D*I~4$b3E@gZnLAy>Y|kd>Zb5 zwn37x2aGvw(0b9s0iW1%Ys4ai&{g?)d4dg12L~>&fi!VJDndbS(D z*X$D$6T?gOBbmex@|2R3s-ah|Tp9PoEDL`M45UYOuw?P^^7fVJgMDf*0Dh>qH%9uF z+akHAQ{89RR>w=Gg)#m(l>64jQK#glQi(ijZ6Q*!6gP3Q-MC{1(wF`I5is#My!lWs zu+sr$O$bTPj*bqS;P&@pdiuS+y(Rv~y~dm1D)Q8O>}g}3DDfJuIE^R?3ENy4o0w#9 z^YGLzFD*@Ox12z07wTGE4QrvP(-QAM&am$YqYXb-4*i=2obqv`-vavL+}+#5!=v)> z7bqr(aC#vxmrX;@rMP}H)7`sy_JYX*tgM}GNJDo4{IskL+W+E=VuU~0RiebWbym=I zeH3=6;HzO_k$2oLx&tie9f;vm8WHh7_woMl;X_QP_UqRne&@$4TL{CI@iYpC7bcDC zMa2xIOD@tQISMg-z(ED;;b2UtQlYfB^Yiog!u&KFmy*TagUKzojb5HsJC)b3cUL{|trsVfk$#;7xJF4% zZa-d=_U!$qP8{(W9t(rwKoG59GwSLl@SBwbQyY!ih$Mktdt)Q#?#KNDGP1JPV0sY! z{WU13PDTpk0(?6sc9>G)$fUAY`3d;*PrC|9{PE+|ucx;c=ACg*2%0iE?1@Mb9@(;R zy*NK3pS|pVIB5y(J?oS_A6g~%1o_FeKSh{A1=>cR6whrqHHQ~FI~ajJ82NPN`X;d3 z;n7P00f8|)Ysab4*yQAmnvzoBGM$@~mEyB^%gf7|#AQI_T&Ll#>iqME-?mXsR(35_ z)Ll^ILdV#5%>Kl0znirN)Q)L@b*HV`96^emE~%ZJ`gv9wJDjhQ?xyc&Zk~$;Ug_pR zeN?ARDSn_D^UDR~w=n_E=FN)Uw_wD+Yq<%VAhPWpXI+Wc8XoL$z?(iqhJ_tiiJN`^ zoBS$##f}zgjMGEwel2X7-wQITv`~ua><~a2jAX%h`1v)3?%Yhyvks4pboaCDiDh5D z&eLQ<30BB@2oFeJG|5vQSoWus&pP*VAtWedWSAxWnr1zj#Jxrj7fj?4NodnZ@#Ud6 zku^X3E>6(X(yv}6VZGJW)%#*tRRl%QW5qhPY;Dw3z5qk<*EgTfag%xZ=rz zKpW}28m|v^dRL;o!F;|;>J92aAm)4|{e02D0oXD8+c)R)R)Dq>!KE5hzUm#n>I&TD zhe(giEfa_ze7lW?%l=%yR(c;)*|q6fhd_)oW3y_`o*(HOMMX0Z)Z@3T*cG+Z{Pj^Dr0!R@iAdDShrRD+b54Yt}|~_yarlyH>yBYnsPzkByRAhH$PGkZ6nd2Bj%=t0Wo|y$)6%NS;g%FeDf_ ze`R`R5DN61df9H+pqqgw3pr?m=<06; zUVH%f$t8nM~_f!B%2p}aLU1Oh&|I6byzd7XJ7C_{+K3dpdi!5~pbx*g(F0luJ zaP?~`D0mGjsHJYRSM{`0VpLQn>)Rh0fT6I1ic#T-v8V>G72MmA*w(WxhYoNWI&r}o zyUBm2%3fX#Odv%t2|MQ~zkUsv=S_AluDFyG2Hh5)`gyN3Z7r>C2R{sbFQ`ZKVuFWT z(<|dQpdcmLEcJlgotBdFlK^7@t;hiv0bH}B6jAI~iSsfmq?>n30adWWX>O#ln_!*G=TM}bZV0pt%*v$&qZ zd|%pf;n4oAO8}U=mRh1)e6b*&ER~Z5l>lzjC%t_6HGp#XQ_R3v<$#2(Fu-FWA&ZNP z1;I>ST@{Y=zeyq=BNy1j#0)yZ>GS0ynMy{6he1Grbx+y^?*n0946?@z8yAYPL#Kb9pWC4FOLlqLca0;gfa=sQp| zVHe}bGXTvV9)Oga;_rZJ(88{bbY}Zv^Ci!^9k(cPd!5YgH)wemn{buZNxYW*43$+? zn!d+N3H`^GW@f7|14#s4Tr?-gB>mNBSbR>c?+U{<75$cNn1$LkTX=ztkS=qqe zqh90lf7+FcY2MpTu?Y!6N5?=e*a#pZp7HZXSrn9NNFxg3)V+YuEW-xGEsX($_8lwI zsu_?t=>zN>K56WK=31LX=04*TJndjpAg7J;)vvW!Ct#hKnHewSm`$~wgR}KF4weT0 zi*pP6m|1+@N}6}+FFj!(TObKxVfyRSmBTm=ohj{~@7{Y8pknJW!hr$MntspI4daU< zcP2nx`H`iD-u(?zc7huK?9Q5$G%3V9Ni5cZm*RwGfn)_mzX4RSDqcxfH_>%CN8!Kg zb=YhwPM!6^DAl5=Z{N?%PdWxMKC#Y04+Jg$es{WJ>mTXq4ob?(ZlV;W zt><3yzAJ89F1vFtr+?~JGO%R9oA!HP{ac%xcKRSqlA zZ`XHv+P&kvd)CJ{FhOrys;fivP(pS_H%+Q)h*Fuie<#Sa|6h zKfji0U>4}fCUE4^+L~by;P!Vz|8CJmrKh7;Pb(`c?Fp_g&7Mnu&uM&UP&fLwk`9y6 zrybe8)edNhSK;x+krH^Tz$Nz&A3!%+no@YybA|DwNUPY+*zY*k ze*X8DLwP38KWZ8p3n}ubBy9D_;{<~beqfTZ@u?0?dmX~)Nuc4VG(LL|@bfy`Eu#Ck zZpENgvgN{U)NUo@<#i-2>Vj-yi)rBiw>$qz-X)aUttV+e-7x?6T7YBx2Hf3ae@^Y) zyVda~i`gbma_(&Ch0Di}AMwc6bJuL5ALA<|G@uk(Ibqg1o*QtFxy z9Nrd{*Ho-sQiOZr4-`5<mUo6*A^sVc5bR$7WC z*@$e4)RRP{@sp3}=>sW9w$`-?VErU9KR^OYTu%~D30jK50ElvY3TZvS)3Ec?VTz3JjS!DHIvQWIAH|4H+b+Es925Rhdes93Z7UiPLRPb~vPdNL zg}MNdZ#@PT1ORz6GqXCb?946mq&$5|U6w3@Yk4s=H3J#suwf|?#2ny~-aoek*PfTt-b3wo2Cs)UuKF zWa}G8sUwqgW@aWH$XQH03xGLPjk)_J#KzVcN?Y`&OfI(Y0_x+rZ?@t@b?@GU)#T9d zT4pelv#6yQS%FP{1JPg@Enm_NHd`B;e$V+O1tbw7HO*&Vq1JV}#n-#JmyLr1wjt>N zP_Tsta%0MO-D`(X2;iyy6v6FVGZbWGL*c&XoodObo}I9;8<;>!i87(X-+x>i3j2GD zJ`$5A0akAxW5^A7c&9xf6A2K!=T^+P_WCR0U0a||3~Rz-;%$De^#kw|XL}0;v|jVx zyVx1n0BvcyewoR~hxaqqnCQT_E8~5+<=DdM8+f22xS!5b`aALqRP3~UBt|VCo0d?* zi>4phfU3U?RIN2Dt5Kw0R8-Wy>FT@-P`+S?t|05oIJT3=PYor*8@EL;<(*8J0&67D z$u|#$kxvRs3FmMV-u_vUj; zSOFMvGvI(vBGU&4RqKIXgIYGm-E*o2%JRz2^=sFnfnqj1)94OAtC@z{Rw>v>V^jc+ z0R^dopumKmcK|KCE*#vu7?p|JK|8eWb_WPSQ zAljDODJ3`Eeo7uM#>4|c{gf&SNO8wU3z5lUtg`*kP-f;+@GxQ^CqtJs^$8%W0VJ^$ z(hVR3K#ly*uuO5puE`0@%gbK&&D6JUp_T!}cJJ>fDlK)Rr*hw%C~wfOg);G&0>KC* z)u@#|Apm8Dhlf)xT7cg01Re+SNKm=W*wd92CcmTil`Wp>JV;m`NKfQ~rX?IgLON$i z|FZ;`WIot+1W?pACg82BxKE!xEdt`~D9S{~aZBF@u-^W&dyI@+l9&}hU` zdmoO1iK-EDZN4kqsA7l<7K+qrf4103_lw23h9e|M!nRs(DVW*MapT(@q0ay=w%rfF z6t5Wuq$~3cI{w!V(=`ac`7bnrUYu;XIZ!@)P>(WX)ef{;kE(&Oil*i|lV81hl~e9l zvM%w0|8~DP=t;a}b8R*dUG%Hi0Hl_|;8zaNBICv0A$?2(P`4w2&} z!h&`a8JmX}NZ%MUAZqT>8sDc+C|nnZ6<6#yfXoJ%)9b2#i!yTU+G9Z|^S+BakSVxEw|c)Swti zzf+H9%0^NO234RcyPThe8lV0?O}{v1j*QfZf=SPUg1k03IQXPh2S}Ht(`KuKnNu;r zbL;CiPFs~_+fM(;0d{pgcLxC2Rr;kBpj-@M9)l&u@+!54C=8E)05)YnQ%9$F$N$26 z<@YUW>P1j<_FtS94}87FN_g+gbQCGJAJRSok&~Ih=kqIR7@Y9hakQSGcEYCiA3T4q zCV4nv%H)vU@XOL3T{x>cUHhQ~kH6>z?4&UQ=xx=b0Ntka_6`itAYsj=3!Rb0^31-Y zonIOK@<#?82^>LI3BRj)Qpu!W2@fUu?M%$k4Nr; z){u+u%ZW5`?@<5`w@#S}>KrXI^Uj{LfwUR;%@}$PPtE!8VfL>9`^gGfEiEnK3%}F7 zPDY^rm92I6BJ^BO!hy(N1by07VqQ5pa?Ytv5`SuNm3&0=Z( zAff4d45^mTBhiDv8git;)*-ftn^AeTkh?&k|NZ59D!LvtkPZk*{?>4vZ%tEE)9k<) zN|K9KCLh|hu_ob0-Y+8~#%PuSRT>1PNWeRl5;On~Hz%_xm?b!YdbJLcg1V+=4(P7s z03va?joL8im?$@;7scIBv0Wcu@;d+f=TC};{#zL{021Z4?%!cy0f3|6p`hUSi0tUb z7aF6oQHdtdKI;bZ#q>|!k?N6iK*ql1SIhW521-7cUR9T8>FGhfqyP|0#Lio6Gad~) z3ah49RPat#n1_l0%@*_S>C>mt!^7%8abI`)Nf-10NYBES%$*$_4QJC}t}@Q|BK_}4 zo~@}2i0XpJUwt-e@+imb0IL)Q*({%*u1E^m;7a~}h^n3S>K&SJEz51WIQOo787wAl z3FNOOfHhsVSLWM;H*_m4Je$JTNt(&yzH(Ljp13X1%{EX(FRl|9qnbDB>({SQAidVt zucU8ayB7B4Y`H+gLJO1!9r*}`sE6_q1*fMz?A+YiK)@!j89;iS{aVVM2k4RE4S|6I zm76Z-?jWC3_Ui&a0_#0a^-xg`pnp(f@x`wCE|1a7PkJ?En?1;*4K2Y4!Ua2)D5%#S ztC?=PHP%JAh(KrRNRnlkB>fB+0U4LAW;d{XA5!IWd8wmrI~yo8uq1K8yzM|wl$2w4 z^keA54(M!?u2QlfV!<}umYgK264AZxm)FoRWiJZyTd6GNQYj@t=u`^QzBtFVk|Rk+ z>tQQ`w)Fr3L;dCD<&h`#UUEaw!yQbOoSk85_SUzQlIIKEI6dbXZEfwIlbu!v9}qM) zpqC5nRMJQqIh`FrLn|l$xbmYxw_*d|zegB`=Q(I+bR9<+*d*nFEjfvaml`%oZO6~D zHV)nGKTK%@q`#vbxDASqpmvGgk`u>0Bvp#+IuEIVJs3dq+2Qnm{SOe$vH1cdKyh{P zU3m}o)6D@z1E|!(wHu%@Zl5UW-{RCxF7$&y+L-vQRGX{2lm6)utLDr@9QXeH?TCK- zCgu7OkloD%??O@|8&<;dtA8hO>V5!iEzt`o)N$E5aY8*U_6lgm?}N^lXl5_#;rw!nGoWN_}fu2UW(}J9qrsm?FGu^dkvNQg+CMG7$zuYwRycjgKwCY{+ zhoWuoLXN=AIuJjA_6xV#6&E+B&+th)o>{__dy|usPbDQ=yW6$^26fi2UFP@2Rz>~- zy9!|;LG!gK{lP z7anwGAMsr?e`If6IMjb$6a?I4fXYjV&6CFofb$` zt}AZd)K^t)!&HvtzMC`b3j{$Dfg3 zm&AE^D1rFVUgRWbJ$#vC?|I?vZJ+m+maO`LIxkp3Q}o?hO4rGm@xh8>plE{LyLTZr zgQ=4KX{IjWWaxFK#P61#ln4c@TF#;9K}pH+pDfs8uNPN<9bpY z&|)}xlBqFtu+}VFe!8^y_n<);PGa;d7?hAdcN*@EuzhbZzHp$YrzZ|x2Yf&b9qg=> z{#Uh7Gi&NA3!U>fN_xo!a2w;9mmA$H!tCI>H|n zK41OP^z!A)==1&0jvF-qyj7fDknI#3w@N@K$}+85KzDl(sDhdXh^GPj?Vibk_GRhm z%+TQ+GB+nDB0xSj*THkjN=u&sEjF&jf%aC|^=j!jtE?{CS{iPHj5<=o`b+AjSHFLiZK2^m`5nmA9#> zKY<1`eGwRs2heM(3h{9LTJE~~`uAt@9GQolkhUgIj3&^VA*$R*U`c@}S7&g(uu0eh z7M4#qwb$D|zfx~8GBVz2{BW~@!3r26dRpoC*}avG4UVU`ual9@lNE1mZE={r;(2lv zKzjZp&`DHWT^O92qVw_fEr-K-K+b*+hD<`R(DE_~H#hfSt%LCx5Gkmn>T8O!v$I!4 zFHWxZoC{hiadLAnABSu0&kxUtQ+|}Xf660uIpFf8%qbR@5We0Ui(sveSV;(I^nEa; zsQ>c&RXJ|99u|!I(f~Ss-vkQ`h%!LwDTsVoZi_;p%EA2pbeENv$E0|0Oa}D+HNdiU0hLji^+g0NhA6>C;@>g!+y>E*|ClKS>uB&p}3Ap(xD3A@% zHVRv884&Tm3ZbcwOXex1lz~w=@9ph{*cNfQGbGtIa5KQwaX_%j1P%7$`lKo#{I*}e z%V{zTxT@T`WAC#Y!0)@L!;&|8Z?rjvg(eP?RqF!x(VKt%^mb6tmoIBZpLYfl{+^xS zJn6Im?6Y*+oKUl#vc1vX2Ks{R#FpJX{tum$WYc>TdwDC#`QO@YK~Sfkv)!8(&(pu&ERqK=@sb7xP2gm$ACKJ4&w z_e{WM)MJVH!PU!`=3PHsg^*o-Rh`T7`!V4ZX3 zQnEXw2n0yQ=LdPSnFmI&+00RuK`;PMy0qVO+yJ9BU9C|3L1=lW8A)@3l_D!ibTJ=6w}vZld& z_e?!35#-FFyebp`4PWc>J}Fi?AQ=7CO;5XHSnsTpez>~wBsVD+PXEfj9*^Asy?-IQ z2`Q&9{zgVdN1zv*yJVG~XvzdNH6;cOFAJ~=t8djsBqSn2PEAdXjg#{R0Mp+rJB+lo zNeG?r^#l`o)!Uy9YYditR zrcZcyB5BGL6a#p!v_Es)o)J!K4D8uFabDru{!vp^^||Nv`JLOh+rZI0f42h7av1a* z`3q6ZR8+q(=GJzz#jj0x#Fr0=!=5{!u3f$QozXQ_>i*4h8r5yCAK*>V)mI2kSc)n! z+jPkC$_j=7_r~z#U`=C|ubz}fgE0TO`S}=rbWUlr^U}9TNB3RDx%HZSI`j((Nx&Q#e1lBsaSXqN{)BXL*LnmPQ3!)bX z7>^7FVb3foDq5K(1xwHT6PaF5DkY3#eBl`IFX^NiunN!!v3+~(B6c~{y9E5bY`em) zuAxDN6dULg`+Z_aOQj2g!4PT5M)IG3@AssTS|tU6rbA`4!1e3bzjK_9thtDdc)%{* zDHyW>g!Ol&<$wj~eMcIdQFAY`gHHNU*Uz-0T4SYmiMkcn5eO*=R)2< z8+@ia=%|{mzdAihxNrm4`QKM&8=eZVCWWf9J;`$-SKY>_PA>tBg=&Z~x=l^SuAh``(|={oKzj_itR^>pIWlJdWc$uUGa} z$I7!Rg_mSq3lGszdZp0NlXg;inO?YglMB|ZDIt@FmIiX=#4U{b_n)Z0@ujlz!9s-D zmDTJ1jvqUI+z?rxLY3ao;5jTwAMz`Zvw>x(n_EdjHV-e46yS&L@+N z(z|!~fH_{?SpBS+H96;bBt74mTk2t0q|J<{KQU|e!wS^dhDq@+HZ zk#oTcTVOX!QU56Fpy=Y{WH{iQ@bL6{uJ&=OO@10dNP>Uo1%^MnAQv|mS{t>zQ@(PA z5^98Bhah|Kkm&9T*G}HerIUVfnht{MP zSZf{ES5K`131^EI4$G-2Vn@SOIx)#KaPFJ#t|pXaVW(^p6?jcBWqzl`hr+_bsqM7< z{QQqn*Od1>qBLS;6Y(OydFsB1uCA_QXV{mifoX^eYCZi&@F|U}IaXjL;oh#u@e_jH z&25-W@|ayjMDwp(18P18~MNgT~NFEN5P#wIb9_s+q^potAgara%CZ> z1DUHD8v{Zwr#qQxoa-t;5qTut*HN~A{vb)YEs*=5<5PypxtiA2*3r4BsHj4e788@u zMPrlI-lWWS|Da_Ns_28*M=iXz`p-h&Q|hHNRqeW`%@^um`sF} zb*BHWaq_VZd&K!fjscs#@t;2r?dhrN>x(`d2CLLLc(z`=dXcAnd;%HCwBzl|WyHsu z88fr9)z>TclFk}FdT!#!J8i{1xBV#lR;I{HTj8=%wT^dohqjj+7#JwMZrYagUT~%3 zmmS@{eQ&RL|3)~LgSHJwcGTxn+%EEpl_A+Y7-8~3jrE2a*4RcjS`MScky3Jbh zWTdIpCEKe`Qh-;NOFq}u$_Z(kIXjDKLw%OMVQ7Rb6Ls-E5Nr6X@k6@7+n;J{YS_~! zyN>JRH#7RioCpP38%0s}+~!+%_w)mHAf(ufp(kFN2Ld|8;Nj-vZ{(SE`oQ3;m69na zF8=B;gP_PAyUE^2(L}8@ZCPun>JRLkoLkbg^FGA{+KxyB$ZhI5rRfK|N*KS9k3xFB zsqq9WcfErte9YF+D3p40?*7*HJH3P5>zHPSp3>(JfNf|>!dmNQBFOz zeOi$#U>h}*D}&}3=~8hRaMb1?>?GsDOJ%H#xZ@Pb+s7wv3-#_K@HcIfWeZUXCbg#K zwr(@SO1)ZkYR`;|KD3`nq3m%03Aia;zx;{+(q5OTezGw*beF-8Pjt7Z>4=sZyeIz{ z0r{$Kx2!>Are$?0ZQ8A^(~3@bGxd zvJWnA2b^(;oO;T2NI+mG+=3Sq7WlpC9>CcBGQ`j1c-!lz<0Y5J_K>E9FYwfFM7OPY zRr(`x%Kssp*#=k?b^P6qgC|_SBV?yi(1Qo$Q8!;^IoOSN1Td8j{c3%~XIQye9ocw@^fdHjFHvOL82Aex zdUkH-h4!P2OiX6Td;BB=QU%zbn+Jna`CrY;Z z6UMj~*E)BwNw#$)sd#FoV<`n5ZfE@hnZTcw8XQ+Q3^~m`{P*bux*hmx!zpN4_fv!H`sFB)!CB;J#5mGe0-Bg$mM}L)Xtn0V{ ztNvRr1d%p?yMXnkp6&zeUQ@unhi1MY@8;8h-3Ylh4@1$^ayt~Jfc#b@zl>eOjdgVo z5xVv52=foDtV(br4-eKn?(Xk5=&rAS+!&gcb{xT+qDdD4`Mn_O&%dinGrw#{KHo-& z6oU93PLw^o*NR_XE3!#QhXmuVkZ?T%k1@H$753Kv(OOiWdjjOtl4txSC7hdb|%-(f%6d|#TpqVBqxZ}~li2tubrL0L4S zUnCDJR`REOhwy|gveJoV-K<=f1xrs62U}Ys1RQ<&h(`${P0?oSD_xa|@K6p1O073T z3^Bzsh?Q`hia|xfv&thpS9TwxsgpWpj(Z>tR>#1&%&=UI_`yAeoQE9V@(7u)-d zSe;4+X=Ps0mVWJ94BNI=tlw=zowhU`CU|RF4Gj&u-@ZMjgf0iJQ>U)Ftgkx3a&*xi z{732f+)R_y-k=1W?9z2Z3yT1l{w_qHw3gWma~bW99i7BtiGt)XiURkMkC;C~O+#KPL;QFR^(nI^|)d4KyR~OFb@*KXe zQ$ik*o*sHGpK|vX>aWtXUrQ$6@vP7tQUqL~aWJ|9smAFyvZ&+U3r3YPZiFA`l4C#p zMIaXg!mm%gefuyg4O(_Mm$t|9o%0|G1V>4_r3~yplz1u9^zPb)1VC}-eXoLF>?y#EYH=LWOKfY3D$ePHm`lQ^c6uh>Fn2bPKA;a#`E{ncI% zCDmjSAdu_5!}(7v+yR;hZ10OXn(#znaC;MOa8U=lk$zHrSX*5^G+E-lR;;N=vN%SI ztT8;#(m-?Wf4l(kHygt*NJ{bWJQnqVdC~3bTmkA2y>bP4dA{xplkg7zeW$*hF*tA- zn@c*EhNjBoWtOB$4vgXnkyzbtS#H?v1#X;JR7t>TR0E@&-r;luLrHLX0k-8!7wNU z8m^Q-|9XvIXz$1c4&Ou1^=@)-RS-lE`)uot^o?>r7Ck#n0*uRT9TIS!H5u;CGb=_I z=C4f3GtFZWbNJ)$vHJJ?@}KV|#gHBZn0WPm%E~j$xE&6O7P06y7?=s@sS|vb=06%# zJ58ay|B=k4AVWaBuAEyt+~9ucMlIJ-!Xje+C_}$I9kG7jS(WKf2^1#G!ln#4u!z5q zoSvANsMyykYrDE({ZiaXfcR-K+72i@cFk;IqNBT)ajhf~L{7NMOyZ}h9}M*Lh9PX_ zg@q@heiiHXdBTV(*JILM+Y7Snv8YA&xzu*kw7l4I>7?9UJN;A_%rDIMh_$zel)z$|NiDYGetm(@JAO1Mn)duI9*&AZ8d}k;4fz5sK{@?j|k*m?Fa{_23y9sSRx6Apk$YCJS-RI$N<~}`^vHzJ#6IWln zX6gWhzFC~)8yU8wAvdDyz!9e?_ew>EXrJq@j4N3WM273aUR-wlJ1F}dp=givne89* zor2ws$QEtiL_|c~czs<0l|p=>tutH%na@7}RNhx+l*X1#{k$1mp*k0os5gc5=g<^V zBV^Ki=I?+2z&(1EB7>QsSPwwsx@ft*^X=8MNC=zBg3cSR{(Nzn!Qv1~4{_&NO7y(l z&&d%ydFqs5y1@u&rv9HlZ>WH-A(05q09y6|=Of2?cz$dtomyC^1M?aZOxPdn#@deN z_n^DZa12YI{BQ=4B&q4uDNoX;9bK2BCEMXrssaX*25r8d^U$Ff__;a!`HA<@*Vh*} zX+9us+IB=vv5ON3hG7;q*f?})C`{@rq_#guNZ>pvCMH85YhX8PAgVAR0t2H-m_hd> zI4t+YNN+O#Og4?>We|0&gCxxEY$YrULgB4`xt{&%qIJ;Ir}qkF$PgD+Yxmyicj$H6 zx&zvO2;D5K&_{%Xa%J55vEZYKF^189-*096;P-aVu3esm?)%}8t@z-Z?mY6DwR%oN z7+%E-1HMs+ley@dX-7DECP_yrLkaNUg|!bnAHY%rOiO#v>%j5jwAP;I;W2ph3$@PZ z44O9{6LN*#%E!ae&8W;1{m|-3Y+m%S_>)M0_fybnZ!DxDX2pWbj0fqUyiAhQPTLJP z@236x_n+kBqgxp7+yRf_y=Of8xQ`$AmReu*L_x<;>^#T)>B9$uEi8Ga?c@#)4n67D zPWL3M9TqpJAeoz{(^6BPg)iQiGuWa#_dW7r`%!vLjUb%*7zA$>y#`~vapZo-%9uQvsT zo=ahJQzm}N5eHK4+agd8d{SY)N9^5mMdkgqH) z4IoPFVRQt)4*6iOI#SnJ(L23AmqP9B?Y*Hl3xF7U50%jPCqOklK3 z$;{+?9r#E|g~8Fqx;K=jdB0o1c_5wBq?DEgan~Eh?5O zWEEDwUy9z@-$*-X(MpvGG@7`21e6rwgZ@&o9qL$5XHZwvyCmT>prQOL& zCNIs@E&N+oH5gF=fi;e4H&p={o0*pOJN5Gyvp~7{`{39Q`11oS?fur(RXTR8tOHdw zM5F`fU&vExE#5ISB*QKd%c3mgjrbJ4m8cS-n_&&8ZH3pkBLKlN^YXSNR7&#WQN0r5qQyk0|M%~-4zuy)<>f(mq^{X7)5#y8qg171g93AZD%_Lb2k>1#foVNio%>3e zvwg5cjE0ZLDMaD9{^fPEui2dIyh-!}j4HaiG(>&*%i9AzN%v74JQHD8H-o4ljUVma zy*tx(~3xvx2Q>RRKQP;&`AI(2t~`SvcEJfHE4OB%SG2t2TsQoDroPRh+PjGV`g`M;S9 zMabT{bEm&4Ifs`4+DRHv;HTzJO#(~H^R8|pjrJ4?E=^xLpl+M4SLSyqO5B%3f zVca+77vuBj=p9J=Dp+mA!+$)*q9Lcc85mMm^t3ZnY(%W@9ALYDW>G(WEQ(_rR?}}M z6Vu_-c3d))&hrz#&@1I}eoH=4*Lzi7<{%xSOOb-MnslovikZ}p1eKWf_N|_M$oiX? z5-$1N5)zS-kBPjB^cUSw<7L{2Li#B}91#{kSO{dCowX)T?^n8A2E;$N5a|{@(=i}@ z(V?&fXY%Qb7oKgV!fiNFkj|x*mFfO;=kb6sw$A(d8l4wjU(CqKNN7HOwfKryve0t` z1BM(pzNxXMW=jaK{-uM5R!SHE1n{TaR0Oe(ZA<*yfB(_WymJfj(EsP(i61A`{?nlU z&kvOY{&AN7=Qm?n&JsH0|9-j6GQvKDi1mMd=wBaNs{^|4}cAOH zA6qe6@>&h!y8WM?Jx$S4(Z8BwHyPczvjguZjaBtQ4ci7Ole>iMd!8B791PLQBoZb2 zl|n1_HG$q0_=8lm(siXtB=Ed-U@+YGWN@l;^i*-nsx;#wP<~B}z z25*r0@ZnZ8YZrWC)hn{{euaEjh}Kcw)ku8lhvS_YIg>z zy=0YPWCzM}c$DGy!vjc}LF?%f8hiu*cZS@=QK-}cQ)r}{dug3jRHPZC2u${SV6Aoo zm%TCd&I6q91-D#Rz#1#U`e z>eS|&rR0-o^IIdwF3Ik&@!C*=D~tjj7Y%KzeY`cQvs775VlNrAWTa%ZHYQ$FtY z&AM@Tygl_H6zq>(hzwrb6fHy))QAFBdgSj9QUsj0FrOU7A59m^kZBYyT(}R)9MfAia|ctIwx?`CHBbmxQ3xKS5N(=%qUB&UtUzMfp?Vwx z=zbaz@!0S2<5(c^{y%@7e9OJYkq@f+Qgc zBDKl_HXjib+(o280MXUeRV&oge=(VXxrm;z2G9O1mMj*C-Uo{HeM9CXwKv;^u(2G* z+P0NLDDQ&IY`aznK(d3!w>s?EGcpjsaR^3Ua7_ARI0G5`X1F)#z+4c06p5fsGk(9H z0y8~|kUlYqSH5oe^dUaGypocvlarGHybNIC3>w;k6K@wf{^bw@l1JmCKVFXpCA9(K z58Mxhcp=A1uWf$0&+Nrm2{Io+mG*m)?bd|Xug}1>hUqO^@7XL+Ks%{IhN>=eo~tAy zBfHt@q@X|rQjbJMO&t%^7J~;50dO0hZ$E_YhctUCi8K(~e}(xZ*TI9EK!bjqyGR9< z(r;P=qV6*3ENO^s4>yaq=;_mYG3kSzQ~|TbSKMP+4B4Cebz&k5%^+fgLjI}$I40}{ ztGA8e#1UT@{+|l4y^sui(Ba~ZTBZI7zqP-wuQc!oNqK+sFL+~x937xU;f2uY!jYMi zvk4g$w9v5?R@I&|7pCv!9?@&~rnlZUp~s$M8K}P*@h=(0OS6fPa)ISF3>nz#j^6k^ zMZZCyJ_Lc^)dx<#TBdU!kt*8S)YX-hNeHckRy{E|$g$Kw=yIsnVu_pt3!*ykw1|iZ ztm;$*y9_+&>E`O%@aHrU5s9rx08C=STPZ=HyZ zkUbt(SQs`^A5_A23?`hGbo<2}`PPt-t~wn%cC77~UTGM7W+8K~ z1l0k{cr$iz>B!qFSu)mF$w&`+Y1ViKNX&QnIi9{J5)S1TU&MLr@YhC-E)4 zLMRo$BBUs<2frp1hPptu%Q`TdH$)&S<)Dk>8W{7RGj?K;H=%PDgL?>b)dSWK!#S@p z4)FDDq1dv8KQSspGxaZ_EnU2Laef1gp=`a=c}Na-A#)1Js&Lh}fL#dfzNtVkw_VQJ zd3iM~0dk)F9pWDAx;f~fxn^K+;NY=%NJ0nakAY_f$@rzHxH$anF3@+SFy2PK5_ezu zT_6U&QufF3BS#)V#ZXfpA=oCxS0|roCaZHr_hlKKPlTn({5w&nwhA@6^rH7Jx5s7o z3Ed;9cdT23j;cA@HbRo-Nd4@e0KHlJZ>iJLv~f%EDpbK-L|EZd9f( z!tEvsyRP*RXj50Su6w83k9SZ^?t|%kaGCKU4B$7$dp>=l0*z&Y!~_6;Qg$EvCae_xMQ(*4qsG+bFwFmBAa8lsqhC zM^kqA7zz<9@bPK})UhcLDo$?mIKj{D1)!VGYX>WM2c)s~1ig3>Kk)e?DxYWV^Dy%_ zKiMmKsl&M=)9~y~L>@6qH=<$qhCUM)9t%8HmGyOTvX33@gTlg0Y|_yr-mVxa7F?j` z%ZaTeV$Qq<@6%O#Cy>Rxu9?tlBIV*+%zFw|M*jS<%q;~lfgR+NSy4WrE*|=L0e~L= z)L5DYg?423CAf2*7Tkw3Nv-tb7ShD8UmqD57?>OT2#parMQD5pghHt+oJh)lZ4vU_ z=O?auk9Ad5o&D=l^ze!$6)mlXE*loO2HC02 znR{{B+B!Nv;P$*~oN!w^$L^PE!UgNOZTt3)k4qo86g}3L-faIdJtuqn+9uL= z8XBP^TA<>Ms$ps7ZV7PP&+NZ z^2d`yP_=$(9J)@fh!Rg6>JT4-AQZMe*UH@^M`C)>OC3P2o!3CP@t1~LH2KuNk6 zcf{md{&Bom9e zv?2oWGJ_kN_fi1=uz_0~(nzEve96qrkAQjpBA?M0r29a){AGj%d_u8w3bqLroO+as z{%hsPuY&~S#EIwv3_@u@ScX~T!r5~!%CNTitDTn0HzA;5Ra?+9~Zt7S$zXmWS4Jx|lkuFg&- z1O{doXXinX)@Q(ySJ&3YAthy5)YXI)u~hL*p)WSYeSPWHJS*YjC7gWD00#i3S@^t= z0cT;)h$CWUg6Paez$C(ifm|@2=bOob{671GnpA-djI*iKIA_7>llcUpPz7hD4Xsfm zWl7CC|2A=8o(y8+vF>n|l8vQOXHH*ejlR=zeL(IO`0ICWqS1AvkW*H>W&G{htb zMZ9*PAg*BE52B$to`=#}j9% z#YSl&0H5BC$maX@?tT2Hx2#?=6M3c!^;8Ti$N_Q)g%gti=%cM~0>!ww{mKfUa}qB2 zM8p9ClR^bA1VayB->w?rqw7$g)KQPrA@>HEPyVZ>Ga+*T>81Yo@q=;hqAkoV1C7+8 zmOW>5)h=Vp?!!(biU~y17Q&H+|N3jWAk8MoGMY7Yb>m)59kyTtqbB9yBL(5^xeT?? z?^6M0#u06?rCa(jHKqcKV8kM7>2G0San*L7DE4XX81R)Kvc`5}gj$O=A~G4uK`m>~ z>MK{SRDeeagBm~a=g)S?5c?%vDN*|n4MKDdtR#{NxRTem&9H~87Ir9f^P>9fJn#Qq z2P7>BcNGlY)4!Q^%ei$Ba!;iP+rfTF@NKY-kdZ22jz<7ER5VZB*eT3HYxS)d$I3s; zy6jfde$(lnAGyQVH-_QRtw40V9xh_x$GUGH1fH#<2t=bOmV?%dfg6ROy4ho-(+&O2 zd^9(w@yIhLv-9(PAgH~#-CKGJepg4h5MIG{jO1pVQEorJTg-X(h_KDi52oWr;gHOX z^zt@8CxTXT_7^CGPWtwfJw*pE?i$8t?Z$McW>hP!@Q|{UX})Q_jlJ>N<97bqaPXr!PMHv&VL0PWcoHFWyE5br@|j<* z3&K*K?(u9K!G7$qU$2G8DyypUbS;jPDp0zoG6XOgMxfs=Vqp&FKN>vKQ*&alUL#>* z$kPshZ0YIkarx4vj$#-tb7c^J&y6=KdH+Hv(Y}27vfh6D zZZgZ+Vm97y4;gD3QXzI|R~T0n6fmb@(>~XkfJ<*$FX%;MQcK#k5|I^GybCs)zCvHn z3p7QZzo4d!;3Ezj&T^-|M>}BnB}|UF`Wvwz9m6NLHAXUluXQvwN6X7DHnuxsE-+~<%v4}|OdK`k0l`UYbc4+>?l zowPb|(Ae^duI^j3SV~PUBcbn&0P@fV5iUf`v zIns=%HPihE-H|W$eFNV987%GVyNJ$W_KTjEpq6{F_@hiD#RD#1Yg~P&`A>}mvTGNEX6;JA8HfTSS>fEmg zBX!``q(d=M!wUY(kVMSOEEQXus@lO*vl{g;fg2wNVM`PrN`v9rc*6)GetuCn>rD#x zsPy)ZmNk43&Lv__Y!zH2K9fmPrqWN?(6z`U1e}T;j z$Ii=Mf|gYSLq*VB>Aoh2u()JO>k7`| zrHRwk4GcA3pg%df-9!+}O)ec89%c!<#Ioy<{X|zw#cHN;eMkdj=A%pZUuS=T-0L_r z4%%=Rd=t5i%s%`dW)QYH>zvSnP5Y@6g5XUI1QAPq_elvvi+1|aRJ1<5^VoRz(OuZ0 zTS)J#W4$SOA?9=Cy{fk8xXb{Vc1ju4VR&XnH|a?RZUf z=H=2C#5)Z*`fiLHVJ>U#D_0N(F9*U0w>8FaD}aI2hK1ftwF5+}D`tj9!WQ>-1(W(7 zp}K!B$n&k#Ns#DO$bSp(0sl;|%j8S*6#&WsXaPC)&%?w0z~Y!U`$mI4#LF8gaYnv+ z)emG7hb9IyfpR?C>jwkK0DNE~9qdviiFgt>|>TxAzwG zgg&}}`3_1i1-zfN4nr;0_!ZxS=v)CvV+WAIHJOu_Hzb?whQW3TN|z|vlh9YU@(s+x zYmN&|F9jb8x5!bx2h<(K(fY(vr<-#MdH)#WKu1$k;DUJisT^jp$n7w7eF{Ga8*?R! zR@I}4<+^ZwKJE3QKhq<7|0x*oTx6hp0b&gb%)ee2xC14R5Bhws<1+z4UXTy?mH9j1 zQZn(h#o)9Ty+Ovw;@o9@vvU^VZ%BoTv5v3oNvj;olgFkBp z$x=)VKJs^d0x`7L<+27kbx0&om{0bdihHrE$Q8wFsW_FA)Es7??p(v{7jrpi^0lt8 zO=d60G`oK5D*oW+0kVUylhK!G>TJQ;RC;$1#$q=h26K1q0?Po*1iSoo{3>W2f}5jl zc4z9in4;?p=!h3^Ec4^>gQzty?4fC%!@T z(US~1x5x$VwR77)1*-i4SZNNlp|1aFOKzp!<%gJduUCIB=^jkB6PLB8}obqD%v|SJV6X(QHC=i(R`z*scyMg&*P}TxF%p@QWTDT_e||Kx#1BvV%eP zJ-F9jev22|O!G3q{pY_$w#al{viT~B36OW1Qd{u>_v+>#M-c5#<~jrckc$BNHlHp( zR=sa&EHxtufd&^*z;^&%<@xtIxId~^8d*a#p5wngXjw*Vv8zQkoEBsKZ$`ixpm4G< z|3(2*BU~lfeH+m?sYyZ9W!x{|w9E#IdRA0jQxgmQHD`%U!dXZVUb3sd!%-WdPPwsk z0{Q^!%SfhQSB=$Ep;p}dM8|j2G;{+J9J6+E=#Qi zEdkyeZ|fl=eTF5b&_WcYj1P~Zs1G_NhuzOSH}$M}%#;)SyT3n1p450P5QIkzDDF5X zo})(x0=9UsZ+Ok*kCqV&?)LRpXU-=&b?d&%DnWy5j0;uQ&YU4ZsuL*WI&oq@bQ(EGLCrkR>A|Xw;z;gtRTJ@p0B>Q=+7S7 zx2KQ+2TaL`_dLbIOd`Rb@VZbYhB&g%?glEy%uak2ypVR0v%0P>9w{$-j}wLyhWX86 zAA-O>b!!E4)Ar^Xx2TVqnOe+-RcF+RbbP zU(0rah{On*hj1_vJn4t}`m>PyiJqYz$-}~I7G0V5ndl5)t;n9?jUzksasw&y0Wwj? z))2l#GRK8K*K%Rk&|LgNaGvnWGEGaPRai!4MG6ei;it?XDGw$T9rCey@_gshmj}b% z9s}5=uUhr6=b=|vyLG9NBVikls-*1i6^yFMTsxbfDh<#zv7*7v2&Yg5R)}<_l-5hy z5^?)H^@!oopv?t^HbYc{?xm`#oiemyZcn$LKm|DpFgsyScsdks+kEmqy$<7`uUUHv z=L)ztq?iu=dv--0ivwGuR6jvMW1M?|Y@1{Ir0q%-Ge%EtzRY}7i!L%Gq;};yjIN;~ zmk3{gz<>L9`uG0<$9jN|Pq}3nEH1VC+ML!H1}L||ZPSc0>_#6?UM#G35*Q(AJVQ)~ zPQk7|`3oPC0YB;PspM0G2s^cXTA|^I!|(2z-jU&9f`d;;vM6lX zcGQo2>(;HD1sAj76N$P&xQ%#@IbxbR)8!9@(@?gFK`sar27j($ggtYOa6%NOByuRR zTlU>$6) z?6orIV7GFxGA(A0{rn7|xwOIas03%Z_pN*js;nh~STF4M0OF+3j59tQw`P{B58qW* zw>$ZSTDqM=H2dSW|>$%}IZ7c#U3z(rl;pCchfoY@HS+zrt{ zpxYX-;!o}Gz-bYF+Tn!#;*{a1eQL5OS1!CLxh%Qlh43p{BYaxn^5ye5WpemC5lm*T zX*(5$o(#CJEf0`wqTsu}*X2Y}Q4#X9Nyr`**++hU0vBD_Va@zij#-2>`%cpFNc4{k z4P|ZIwX^g3BoKhMa>E(pTer3K1u&VTj+_dOd?QqOuk!_jh0 zAf+kvMyFza;)SD2l<#E~Pdb2h@{8EOi-!NM!U$yQh%aNa(7gZId4^_YAcHicFnP~2 zgE%Hb3_x%rdID}I7v;u**sTC1Q53Gt)rT=^PIu!}Q``AqJ(RWQ+E))~9M@^xc>;Lm ztC^PZflgNqe^3I`%jH(-U#eIgz`|+Gz8^z9#-Mf98l{0>_n9}XWDfhbeY=-<`y{@Z z&ISmdLM-Ra+rwmGvm15q>Uw+i@+q!Dyd3<){<`;lWZ(pv@Jpk96}c`6T+U2VKdW(s zw0qYp!n?FNndr`bwSXxN^Afra)T&No%3Rey+$)|5ZiPpta{QlH#*4cNFppkqT>cM* zJs9UU!cC&<;Z7Q=B+O+KFdgrOSvoQ@@_l^IcGdk8K57Kr37OP^y z#>FWlwdsh|D_D0neaGLJF0=(nJboF;eH0U}&e*6q1ApJJJn+OX=4VXR5WacoN|0$m zvkSM)q=NkGBZh>Tn#cXmFlIOIZGA0kp`RFk)4OUyu7ByKKJ&%lX+kg z8!disIv?GS4jQ`pE+i718qN6@I{&^XNFw5ke*L z3d|ivMtjb<{@EFR{+;5CKG4`MQ)WSZM$gk8i|M)U}E;8TxV;*gcCPiZl6 zd^iR_ZIlN`?9q^nj62?nS=D0#!otC~<`>bLBY=&Q0=7=XH-Gaq-Byp@V4WuT9j< zE@*0hb`NIpgfCltz>RxB7HH-b7~Rt8wXbQ)f4b z=7!fhW;ey?CcR%%R>rh#Pm!&Bx*0(smruUoZs!`#C%ZTB>hN2SECJ@TPi~($<8*)_ z{ay+PzMD%HYnMGg9|*)^1iy>&Ez|d%)F&mzmgbnBCsksAQF<@H?@pta}8hFej z_?D3;t;wOlPem2kk87Gjp!W~E=Tmau-qyBCL8zj^+mJbGUIwYz{P&jFNr8lQD(~SW z89^Ca+!wHIvdCr!d2N!(RWw;uKc?V5ma1&^wpyLGV(P$Qu8P6s^W-Guu{-1T32_g0 z8+xc{FVqsfvEcnvy`CAAuTEdA4cdJfHEKqad@zro;ES~aj0-idTObWLI>A!V)zb1z z*mKBKAFOH^=3MdVWa3hgW>v11;4KAf7Ut%PRL)*M&iuM^;@GjDw>zkcjBnu;=?Q> zE%MI>l+y6{Z!XjvN?v-j62nt!jpEJU@-s;Jv(~I~9#F@!y*x;(XCVwR=HBVk`zzP{ z?c3hKy`oQ+V1D}rc={cpiCv}A8sI1G@Ce{}REPJeNs)(;EdJ&)1#P}UPgN7NzaM(8 zXgzsP2a~iFOY6wif&i6|F;dYPfD#kkHJ%_f@B!pa+er`ePMv@o-6zIf@{Hm+U_xr z0RQU0_?)FA>-60~5&0B0Xyk}6VYA&$`r`=7`bmOrC;`Cek3_Tvk<`0-6-Ls4FK1j& zP}ODcw_Fi6?^3qD_t@`%kiN#w0Y`X}#iNTrB?w-92W4D-xjy*8>B~I!vV?EB=g4Qg zM=c`LkFs(O+mxLiHkD>WrYsmVQH4KH{QRxb2Fiwpf)ruqpWNj6rQfvjfS}y);odu( z76JS|L>o$4JOYy;KbhH;E6m2}D-4z^?djKavV1rQ;^oqRg4q{_-Mgng_%*pVas z5|=MLeFPx%iE0p>U;WAk`WZgD*Nyu%Z)oEE&*f$L8xlW1KHI8A53pAI?J+U4>7#4) zuFt-#ikKhoNH2f~6rM=rQ{6t_Y`4eO-uqYrC_peb6NHd+8V_;&vy8T;o!i^8@87VJ znJ2G=Wll;Rd0D{hb04I1)QEr~#tc(fghxj=Q7cXhG3eevKv$G zfg{wMSWD|7F)b*&CReTR$$;nQ>Q^GjlsPqk2Z5CvDV z;!n8{Mk8oc+?LI0;IDOs96z9>@*4i-H*&}Fv`LO;MO%F{h4`6^2Tr#4L z<(bzSBGr^+MTeIy?X9em>{`{Bm_ilwn@Hz6-M=oFVpLX*3<#t{o(+_pMguMhM~)u7 zPqeBsU30>yQm#Ce?>#*?&fjPH8@wbV9D-7BK=z--Iac8ygL#W~bv>N7hZwP~VDj9EDn0tR7aiJrKJZ`+M zMjM3vxA5UZe6d#{U-t7o#OSdGMnBv+bnuUsyBc)cIJi+~I+SBC%)=*sW1BWwXBD7A zM7VVj^Q^!T?F~X#z;bCHQkr;xGCyCfReuH97+RkPU#e2)QO|*z^!-D zYc6g(QDx!b_4JsuI%q_`&V5209F-MXsm!3sG4xvU`gj9MiZdkHCo00qjwWcMcNZ*qpdD6%GK|V$Kl1W zz>Md+ddOpX7+#)E6ciMEmdu~t`l}zkv+?ez@AFHcvIW!pVfW{Dog34rz9ywak1=5A zUo%iH=m|_9ed<^TmaP`{6xBS>v9cMoIlm8vlxx)l2&{ojZ;=_0xR=CxHs`G*>CuK1 z(ckeO79hbFh2cmRWV^80w1cb5xY)q|gkI^9B9+fDMG`!EJK;442=L~TqKJ^k*Fe!3 z4@%P_3kXEv3277o%mhC(KSlV8KllzF9?6{MIO(xoIlAz{JRwnf6;HkwD zV-+WaahNjfqzs8x23TUJ#t5q+ckELQc@zj};0#MagODkVP`!QK`4;t$pN2hu{@~r> zAoYd&yK9+=VV8(hS0{u)4`yO5TP^`KR_#*wIXqkm`_G|hHbzEoFm`eK1#i-1=vG#7 zKuXzCxoM4vwQzXw73sstmkDK-8}}=qbMQtmzo4i;KhcV?(11c@0DeoYVrBWC2k#HQ z6GC#1O0?3}W?>PtOVWN4vjO>y*f%L)Z&D$y8a0;_a)4w!hL7>k?1r&}9GOj`9ar}~ zhBflTT}9qD=ZMn|=?b41PQnbDsQ5AtO0cr+_-Akh&vs@bPnXxY{z^!_D z&n|OlJC#sX+To3z5Jr#x4e;DtV#BBHMl0%Dp&}@38;*F{u}(sTP9l6S{%R@Y1EgcW2{;OF=_*fLYiE>VFr9HUvvwtq)$Vc>c-rr zGQ#U4c|0YR2-~5r#TYR5X90PuX%!y2JN|SG#zai_4V1mIWrcjn3Y( zt+zEgJxEd`hDKM7IIo-_|9kOn_8woFt(&>*3SS@DbFSu^z!nC%)}umZ*L|eIy(k!( zw=q*xsT>fgSKj%p`PtA3>s=o%SiQa-SIAqXO1>iAbgEp+z+wLLgJWaA=E9fOv!*7B zT$|>cCQtP>AwIXFPqU%N@kc;=exugA>EKapOQq}$48Y-xR7gm%=p>jnMAQbtY~}_Y zU>byG2yXQ`NZdtm1Gz}e;wzRxGc^!hM`6iD8Suu4m4JM*6Nxw;_@fY>p!gx)vRTz( zOcGBODFaBUMwMe>RU$FleD-U2D;ox#=HB@Dya9N&71WOcaA-+Kwx$KrY?F{sAZ&?2 z#MPM{leGKAPint&bs}1of5C`5P5cpb?89ZQOVbTdp(DzsShV(SmhQm^DvWh1U7fDa zn;(LoV#e=x&K&C`jzNIf`L=fCL%q~VxXzd^M~ECRL4ulv+o2wN;1fpiJ=KHlcNrII zI1QWWuV|~=v*A2jroG$v?C?&_q8JAvkj=H4EeHJ>J3}s(m+_7#iPv8kcxQmV%NreL3!H3$%}7VhnV~}*GSV2uQ@%^0xVW2SzQL*ZZN&x2Z@WOyWSZAGyMxAteh>1yg+i^u{ z(p}49+$!<|hxjJ$LJD)oIHE6z9~WTt5EX>nZqD^0dA>!k!$Yb4tr%kK=BcJG!WtThX@vp7%f?}R!!Q5fwG4GzARTQxe%-f8L= z+TcV^hricr?~jYE7{Ko;74MM1RcE2Oyz1Bfpe*PJ*JF?!!t+RDWY91VT_zubbyKqV z$|6&p^%4;f=Dg3?=MkqA(JHxP0V`BA>I&-T`Maqb-Nt$NmChB}qkeJINapG~iKvQ2 zFC4LhQeaBfEV0mI`*r5y&72`*{#4swAw|$PoeYIB9)bgNr!-p z9eWMh%%hhYZVlp&lQ-SPXs4ZfzG4Y>ygiW^g?x^7OR!dP8D`D5KbeI4S%f*R&Afbd zh<98w|I<^=pY~>?l4~y%~jU=od?jPkrp;0d*)N-yH+q zKNx59;lie;>Ekx+UFIM_olozHCjLEf+5(` zO&;qr_EGVeq(QHLBwHgD0j%)-6fce_uA7Poc3b+|KMAW~lh4lI@F(Xe6d8Hnrf+8;kQ(Z=ZvWT^fLbGFcP`o|>e|as}bQoqj=8=&R(bDUo1Xp40wyCTW zR>O^67$aiPu+UoWv7x=8kIs-(DU>drxQO%y=3fNeZWwoFtAR`v4O1XkPhr&B z45;e|^KNjm+1`hS%%!tmE`G(3{gu4=40913vxbj+G@h`Ro+Ca8hLWwtt=u7qU-+nR zvanc5QhqLX$Gy!vWA>@D19mTnqd_9`nQ5LnwW^( zjouTD#PoN?Slu7B41Fn1zi~gUha>j$r|7-5e@x)+$%Ki*{908Z+5kn8v}^DT`?QW- z$vmKg*;mP_A1-+>x@NsLJ?p2=x>3MhyRqr{5q|)ILAFhcKb_{k zHn9?o?W(Bhm0(cF$-Z(Hp|BZz(xOh^vL;3|BqebKeMJMnBCdnd=smaIzg6lHONx&R z0!05p`G#8xwksNz%p9?vnH;M{!{KHR2*d(cRsfDX8?KBMLC2X!d??XDNeiQ0G;FMD z@KwI&qkIs9dKR_2Z8PlVj*tjiVA9N33?Leesz5iqA?`TzLPHI;t&I)3!yYVB>o3Y! z0nOGCd!B{GlmE$&e%zX)bo^@eAzeJJJPs--W$$qhGy^f1kvO%3C?NFP_x?r}*-BiU zZ3^5z0OF_;+Tj$s=A<#d3+*;<3eiFK7vO&o5|&)RnhmbA8%9gqQZkVmQ#5-TV9mBH z9Pn98FZtsKRg2jTH-EkRX}^YLU`2rd6Zvpo_$S<$xAHX zSeqOWY!ZKg(Rkapw_W$ln!*cYa>@ttCq&NAqn`! z7&-@rEt|-265Lj4L`36?-DoGH?m69Gv4s9|NmG)0?tS0)Jm;L}dEOkHSad($Px~-- z*{Wj#$vAw!SqUByd${x6-}^Ke;slzV_gM#Al2PnMkCvJt5_kY zt&bg(XE8P-)uaVy@h5lLK%SYeYcUNVr zxIi;>0{Z0_?UaFQG6gdLhcKRVSDg+c`g~>P`CITBDO?f^R|z2T z3mhD{;Th2b^She7X_011gviTS&a+hk6zE5p9L3PBy`{eh15^ zGyl8~z&*CI=m6Jps)E?t+QvJEx`?tG{gOQeK+O^kvd literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/github-social-preview.svg b/docs/en/docs/img/github-social-preview.svg new file mode 100644 index 0000000..f03a0ee --- /dev/null +++ b/docs/en/docs/img/github-social-preview.svg @@ -0,0 +1,75 @@ + + + + + + + image/svg+xml + + + + + + + + + + + FastAPI + + High performance, easy to learn,fast to code, ready for production + diff --git a/docs/en/docs/img/icon-white.svg b/docs/en/docs/img/icon-white.svg new file mode 100644 index 0000000..19f0825 --- /dev/null +++ b/docs/en/docs/img/icon-white.svg @@ -0,0 +1,34 @@ + + + + + + + image/svg+xml + + + + + + + diff --git a/docs/en/docs/img/index/index-01-swagger-ui-simple.png b/docs/en/docs/img/index/index-01-swagger-ui-simple.png new file mode 100644 index 0000000000000000000000000000000000000000..5b591a6a73a26368774bc5338453d53f8fd48a14 GIT binary patch literal 74158 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 Y8jA4V!+b+vKR8hs*4ojk!qO|@UmIK2v;Y7A literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/index/index-02-redoc-simple.png b/docs/en/docs/img/index/index-02-redoc-simple.png new file mode 100644 index 0000000000000000000000000000000000000000..a3b0e53b08c0666892f41ecf16895b103c21f641 GIT binary patch literal 68468 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

iggs3)9SC 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

n$0m(S=gmL%W87hNA3SX)LDDU{ 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

iggs3)9SC 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 B3G@H} literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/index/index-05-swagger-04.png b/docs/en/docs/img/index/index-05-swagger-04.png new file mode 100644 index 0000000000000000000000000000000000000000..218fbb0ace13b9b70304bdcb0935ade97adb4366 GIT binary patch literal 71441 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⩔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 LkrgQy()Is8p&a;6 literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/index/index-06-redoc-02.png b/docs/en/docs/img/index/index-06-redoc-02.png new file mode 100644 index 0000000000000000000000000000000000000000..7dcb9cdf1e7a54ad71ce1507e35fe82db5d28e52 GIT binary patch literal 78842 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 + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/docs/en/docs/img/logo-margin/logo-teal.png b/docs/en/docs/img/logo-margin/logo-teal.png new file mode 100644 index 0000000000000000000000000000000000000000..f08144cd92e7ae62f57e34044605c56a92c1504c GIT binary patch literal 19843 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 DDxOq& literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/logo-margin/logo-teal.svg b/docs/en/docs/img/logo-margin/logo-teal.svg new file mode 100644 index 0000000..ce9db53 --- /dev/null +++ b/docs/en/docs/img/logo-margin/logo-teal.svg @@ -0,0 +1,59 @@ + + + + + + + image/svg+xml + + + + + + + + + + + + + + diff --git a/docs/en/docs/img/logo-margin/logo-white-bg.png b/docs/en/docs/img/logo-margin/logo-white-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..b84fd285ee52d721a29af6e79fafb6ade5987469 GIT binary patch literal 20841 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 z + + + + + + image/svg+xml + + + + + + + + + + + + + + diff --git a/docs/en/docs/img/logo-teal.svg b/docs/en/docs/img/logo-teal.svg new file mode 100644 index 0000000..bc69986 --- /dev/null +++ b/docs/en/docs/img/logo-teal.svg @@ -0,0 +1,56 @@ + + + + + + + image/svg+xml + + + + + + + + + + + FastAPI + + + diff --git a/docs/en/docs/img/pycharm-completion.png b/docs/en/docs/img/pycharm-completion.png new file mode 100644 index 0000000000000000000000000000000000000000..6cd204cd42d8b2af6730f352f3a74b27820f486c GIT binary patch literal 51205 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 MALYf$L=C_GA9cLEQ2+n{ literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/python-types/image01.png b/docs/en/docs/img/python-types/image01.png new file mode 100644 index 0000000000000000000000000000000000000000..963dcf4d80b21620c49f00a1868c1b02301cc46c GIT binary patch literal 17722 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 literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/python-types/image02.png b/docs/en/docs/img/python-types/image02.png new file mode 100644 index 0000000000000000000000000000000000000000..1477ea10f83ac866eff40c2b1dc371d035134ba8 GIT binary patch literal 47799 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 literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/python-types/image05.png b/docs/en/docs/img/python-types/image05.png new file mode 100644 index 0000000000000000000000000000000000000000..d2dd08ed227212bc5b2cc0da5df91e9f9b2ba8af GIT binary patch literal 42637 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 Q+(zcXJ$b3@JI_7;7p7bSk^lez literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/sponsors/blockbee-banner.png b/docs/en/docs/img/sponsors/blockbee-banner.png new file mode 100644 index 0000000000000000000000000000000000000000..074b36031244e5b690e377d04ffa3ac98eea42d8 GIT binary patch literal 11353 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 literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/sponsors/blockbee.png b/docs/en/docs/img/sponsors/blockbee.png new file mode 100644 index 0000000000000000000000000000000000000000..6d2fcf7019c88d15cd547c870257982d433c67b6 GIT binary patch literal 13006 zcmYjYWn3H0*A4Dc+@)Bd6xZNx1qu|`;!c6!R-m}Mdy%3oUYr6&8=RElR)Pk1dH4B$ zdOsxl%Vx5fow@hibI#1hywgy^!=}Opfk1dF%JSO4@dS8TW1<7^?WNtrzya%{vY{sk zgg@}#3u)M`${ILH2~jYB=(yQJd_H*CfP8#>xEx%aJgq)_wBd5|u**9ZrviZ(Kq~Sw z?|t)+3VZ@-=39n)`8#Xok5y|{>nzn8m#Hnj^;2LVBgM-Rpl%AtA~Q>`GWlV#OH*y9 zpqh;ZFfvQa%Bp-?x5y3er?BFoh^O|*vevC>o4+c!9wu|iTg;hP%^bfCyqJbA&mK?Y z2LyZCL23JU_ftU(C)^KhBrSC}V*Wmmys*S}Z)?)wF)Y>ApKWMp0opVN``g=(B+}ZO zy88`At0MO-E&eRGtO{l_hDoKrPmbVQ#H(DdM#frL&J@%_cD5s`j^Jw^M_Om@R`NAc z3}fI@aMkAGd+M%S(xj(MJTpaJ=R4eJv}2c4}rBB#bjOg5Ia zQiWlNW=FtMZ0uf8o8l=RsEa}stUagNV1VSwF{q#q@t;_(rwJ`AYp`s`XvDv#FUzA(6~3>Xr6b zrK}z=b;8b1{gKVa@ZZy)pfRsra40uxj(b%n{6xN?2!~ehXrmPf{t?3}AiXH8ni9

s+?Voz7%-85A@u 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 + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/en/docs/img/sponsors/bump-sh-banner.png b/docs/en/docs/img/sponsors/bump-sh-banner.png new file mode 100755 index 0000000000000000000000000000000000000000..e75c0facd30acbee9121ae41cce236a99bea3646 GIT binary patch literal 10139 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 JPDHLkV1j@T&F26B literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/sponsors/bump-sh-banner.svg b/docs/en/docs/img/sponsors/bump-sh-banner.svg new file mode 100644 index 0000000..c8ec767 --- /dev/null +++ b/docs/en/docs/img/sponsors/bump-sh-banner.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/en/docs/img/sponsors/bump-sh.png b/docs/en/docs/img/sponsors/bump-sh.png new file mode 100755 index 0000000000000000000000000000000000000000..61817e86fa1064e2ea239bb45a504998aa6274c2 GIT binary patch literal 18609 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/en/docs/img/sponsors/calmcode.jpg b/docs/en/docs/img/sponsors/calmcode.jpg new file mode 100644 index 0000000000000000000000000000000000000000..59e68dd07357878a76bd228b61fb62f201bd0236 GIT binary patch literal 16949 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 V0r@Q>O`z!r($+9guTr%Q`yVU$Jsto6 literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/sponsors/classiq.png b/docs/en/docs/img/sponsors/classiq.png new file mode 100644 index 0000000000000000000000000000000000000000..189c6bbe8a4ad558391ae4b54412c8c9ed09f65b GIT binary patch literal 6286 zcmcIp_cI(|x7Jtho!DTNh_Xr&y?3Gut9MpgEqYs`*C2ZDMDLv-dh~=KI;#W`WwFZ5 zcjx{AcjnIh;k0+o%z0+cob%2+Cq_#{i3pz_9}NwSNJUv*=b!!aPi$~;{^^e5-qC*s z&rKQPiH1f%@gG4)%g&|!_lWMPqa=$~H_dqXFTk>wc`Jj4)|fxZ1DZlC@lOV-mFEMX>RD$Saw#mw)9h~qEor!K&{T)W{14sTugD6%G;Ra(lt`` zutpOlHXTR#+80zGZq=v}1v1hc+S2JCzJ@+8R4mj6%OZkZk+)Y5zcvESkn6A_)EvV2 z>R@B_)PGuHQUWmtc3iBaF45xr8=dZ|SfsT}Ju!f|K(O>^2VAa{Cc~v zC^)rzLI3T~NAowBk(X{uBtTKSHrV4@4dgZp^004jw{gnXOzFg~A^J_d=TA$qQ~%?h zhJkCZ+v=~O*y*MIps^amzcE!*BY8`!>K%U=PWg6lXfsZ7`oU^6r{BaCC2g1@lYT=H z#qHfAhVC_i4;0Ohd2(5ku&!M~!PB*oYXTl`;(h%$fXkp79?#s8jQj}q(02~NOPxu6 z&A3Saz(rnAC1@6kdnyly7YMk7X8B(Y41z$G5p2a71#5ZP(RE$WhR(nH%nD1ccZm1; zWPap^flPr=^|@Cg7Zp!kU-jb9MD_Xl)*<{(b%yo~6z8y^f} z=W*>u<=D-$J>VmF(g$JrP3!6J7i|<)_>x87z!<%~qq}-rDcSTq*`W2a1iUra zw|{fKQ?3(;0LTd>P!Wb4n-1wntafYqcn&4a2teG*zB`wjNet-4?u<5nL(fh#7S<7{ zPr5kS_L|W}=v}(L^Xec9yuaaBa`@F{YpkZ#pDam8-lmhX!jkgFQJMsJKT%_JUJ>SX z0xjq)JoHjamWa*YF`f9bKOURTMf(B|3}gH#1fe32x$^V8?y_ts$K`SSwGwW3Tt0M) zjMna*Y9B$qSaXv6^Qkq;_`3=94#+Ocf=zF6Tl#kOb5qb=(y_qVNonpzR zb^sL7fkMsFc^;Qlm+IGUe|l?6h5S8ao5_=?t}rfTYE0?KKXAjTlNb2X1GYi=m9Xv# ziycnn6qk)}BcucffE%{iB#)g3clQ8Ea4O%4efh&5ZY6p3mEXXJ^{P^Cp*>t7`8cTQ zgHx@odNw_*S{RXRyIn@-tn>x!WDsR|f6sK$@{Fc`BRujNjFb}m0j+2bY5Dnk*#q=l zmeEmw(r>kWU|bDS zbgv03qinbf$sG2IC+}!_!(ViI9CGMq3GB^o5eD|9dWU?MJbxj2B*uwVlL>YkGXcA% z3BldXeVy&`WX4dFCtTgGC(IXT%}SXSh*R)t&2Cx39xZ?MRU3}3(`>y*A{FS8{1|Pb z&y7-Q#;wli5vsC*48AGL3R<;WaCVUpqNVHhxVkzro!SkM5qcjEvHr$k2rMKnDNY?jBYYvz%6#35|CCszM`jNqNuaaA`e=McI07eSYwsF^x z7qhM$chfc8H{x!6U?CdAS7c{xQg-n}*F5HWJf_JOl{-3pX+$0DaRKy)#tv@2Rkc&4 z$WDD0MrT24$;Rde>4=j;m(0-I61G{A#Sruzsq3}%EW~pj(Oh_jv7J@@3{f

#8&X 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 Rf9C@<6$K6XI$4Xb{{s5EMvMRe literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/sponsors/codacy.png b/docs/en/docs/img/sponsors/codacy.png new file mode 100644 index 0000000000000000000000000000000000000000..baa615c2a836413df2aec00ff582162c759a4aab GIT binary patch literal 30480 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 Z{9hD0a-~Z>ZF>L!002ovPDHLkV1i{;0#5({ literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/sponsors/coderabbit-banner.png b/docs/en/docs/img/sponsors/coderabbit-banner.png new file mode 100644 index 0000000000000000000000000000000000000000..da3bb348204a39d83203e4580ad213dddce5ac99 GIT binary patch literal 9522 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 YVD9}kX5O^}o_9i$mQ;`^7dQ0(A0pkdO#lD@ literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/sponsors/coderabbit.png b/docs/en/docs/img/sponsors/coderabbit.png new file mode 100644 index 0000000000000000000000000000000000000000..1fb74569be3efae62ed0eb5608867b9d86e230b2 GIT binary patch literal 21167 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 literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/sponsors/coherence.png b/docs/en/docs/img/sponsors/coherence.png new file mode 100644 index 0000000000000000000000000000000000000000..d48c4edc4df9693ef0d847fcd1b6c3055cb6c609 GIT binary patch literal 27886 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 + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/en/docs/img/sponsors/cryptapi.svg b/docs/en/docs/img/sponsors/cryptapi.svg new file mode 100644 index 0000000..db4e093 --- /dev/null +++ b/docs/en/docs/img/sponsors/cryptapi.svg @@ -0,0 +1,1216 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/en/docs/img/sponsors/databento.svg b/docs/en/docs/img/sponsors/databento.svg new file mode 100644 index 0000000..dfdd9be --- /dev/null +++ b/docs/en/docs/img/sponsors/databento.svg @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/en/docs/img/sponsors/deta-banner.svg b/docs/en/docs/img/sponsors/deta-banner.svg new file mode 100644 index 0000000..e9b344a --- /dev/null +++ b/docs/en/docs/img/sponsors/deta-banner.svg @@ -0,0 +1,125 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/en/docs/img/sponsors/deta.svg b/docs/en/docs/img/sponsors/deta.svg new file mode 100644 index 0000000..066d6be --- /dev/null +++ b/docs/en/docs/img/sponsors/deta.svg @@ -0,0 +1,65 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + diff --git a/docs/en/docs/img/sponsors/docarray-top-banner.svg b/docs/en/docs/img/sponsors/docarray-top-banner.svg new file mode 100644 index 0000000..b2eca35 --- /dev/null +++ b/docs/en/docs/img/sponsors/docarray-top-banner.svg @@ -0,0 +1 @@ + diff --git a/docs/en/docs/img/sponsors/docarray.svg b/docs/en/docs/img/sponsors/docarray.svg new file mode 100644 index 0000000..f18df24 --- /dev/null +++ b/docs/en/docs/img/sponsors/docarray.svg @@ -0,0 +1 @@ + diff --git a/docs/en/docs/img/sponsors/doist-banner.svg b/docs/en/docs/img/sponsors/doist-banner.svg new file mode 100644 index 0000000..3a4d9a2 --- /dev/null +++ b/docs/en/docs/img/sponsors/doist-banner.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/en/docs/img/sponsors/doist.svg b/docs/en/docs/img/sponsors/doist.svg new file mode 100644 index 0000000..b55855f --- /dev/null +++ b/docs/en/docs/img/sponsors/doist.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/en/docs/img/sponsors/dribia.png b/docs/en/docs/img/sponsors/dribia.png new file mode 100644 index 0000000000000000000000000000000000000000..f40e140863503d7d35622acc061c60acce9b0d5b GIT binary patch literal 19211 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 + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/en/docs/img/sponsors/dropbase.svg b/docs/en/docs/img/sponsors/dropbase.svg new file mode 100644 index 0000000..d0defb4 --- /dev/null +++ b/docs/en/docs/img/sponsors/dropbase.svg @@ -0,0 +1,124 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/en/docs/img/sponsors/exoflare.png b/docs/en/docs/img/sponsors/exoflare.png new file mode 100644 index 0000000000000000000000000000000000000000..b5977d80bedb27d3a17eb16aa919947867750a75 GIT binary patch literal 10556 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 QoP0#6C}<$7b=SJM_Ofel z>$-MCQ3Mr`Do7PVhmeq->38luzd!C|k|7BsVf4Gd?>EouHLsbu^_+9>c|K1+f>x50 z5+OwW?+l`8~f`#1?YezQB#&U+jZ2ND82rq)3n)B-K}KF+uk zYSVhnLH$%#&Gn(F5Q$2LO{rzmmh^+&yZ^}ISEuS={QTo4OHD9AbZIM#6NF4BE+vX0 z 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 V=0{$9ew6?K002ovPDHLkV1mi>sMi1h literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/sponsors/fastapi-course-bundle-banner.svg b/docs/en/docs/img/sponsors/fastapi-course-bundle-banner.svg new file mode 100644 index 0000000..5dd89b2 --- /dev/null +++ b/docs/en/docs/img/sponsors/fastapi-course-bundle-banner.svg @@ -0,0 +1,293 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/en/docs/img/sponsors/fastapicloud.png b/docs/en/docs/img/sponsors/fastapicloud.png new file mode 100644 index 0000000000000000000000000000000000000000..c23dec220951ca1e5321411ea7200aee48cbe89d GIT binary patch literal 16777 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 diff --git a/docs/en/docs/img/sponsors/fern.png b/docs/en/docs/img/sponsors/fern.png new file mode 100644 index 0000000000000000000000000000000000000000..4c6e54b0d517f42d8297676a32e5558efb82785e GIT binary patch literal 10924 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 literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/sponsors/fern.svg b/docs/en/docs/img/sponsors/fern.svg new file mode 100644 index 0000000..ad3842f --- /dev/null +++ b/docs/en/docs/img/sponsors/fern.svg @@ -0,0 +1 @@ + diff --git a/docs/en/docs/img/sponsors/fine-banner.png b/docs/en/docs/img/sponsors/fine-banner.png new file mode 100644 index 0000000000000000000000000000000000000000..57d8e52c71b067248db4f383d72051a94e8cfa47 GIT binary patch literal 11458 zcmV;zEIreSP)i3wu4qL_L`Q^ZWcCAI5^UgENnKN_#^FL>v z_r(CPUH0sUH(q`Y#u)q~iR)WyIfp*wr9xiuZs^@m9dRdo=F*fwZJO{dTN0h4GR1~W z`W&wLUrT>N`^}Cmlry20&BtYt2~@t9w~^XOdg3yCt@|>eWZnkU*b1E$H}bNvJt|t0 z^Cjj(i=D1Tn^KlsKUz;pLR2;`Mkn=}&q=(`-goQtT z#!XhY=$`wPYtOggtFR%ZnsLFIBtuL*hPZBw1~XG(=s`Xya{^3Zcws^6MQI}FdJw4i z!+lzm^+-A}CTS}6DY`JRA1#w=hxK4>H0n4OFksU4brdR6>p%nt*B@#5E%q0vIUd z`UqvAQ_f^q9(j-2YO+mfZ6fKomVuRCM*-v%ph}RniNOiz((P%PAjV{KCYITi1U5>! zUH+q<(EsJM1z!}bqG}6;pwua^Sa2q~2~53<9XDnb<*kKe8id#l_MuMjrCeA=QKviYjW^Wqze#5%*6V%s*h zR~1#TQBI^$@|;5Iv1qr36n;ocujoIyV7%TKa72e`ASHJnCY>7Q<7bsAcR1~Jq9J{n zsc(r>Ua?UsoD=<)AjevoJPW>9L_SUNtz`kkxCYqNA|! z7P48@o)rMr^1zCcU|5p71S*;t`jJO|9rxZh4gVYIly9AiJMWsBV8lYPwU8YE3Xlwn zskPXs!DE!JfzORVn-+%^ZTQbtvkguPe1v@&v8xv{RM(d>AipP>fyk>2!UtLCbg8My zX11I2c`4wJ{W|b``iBm#SrdVt~Qyb%h z56!^r*>kY(p8fIEjq55K+-F!Tbn3MwW?i`sAO5X8*>&503J0Cm77Om%fIlz$8$K%a z`$iiyyt4#%O}!hX7>gB;UE1{6fz8>RNgr~SA`M8nsLU9o8*0<3X1-X;Ov%-0YD&gU zN7Ei;s{kg+W=pI7Dx%8$pyk0%ejsN*6ZRQnZ!Z zFoGUh{n(Bgpqy&c@*pb$R@_;lL26~N0?$7CJSoSw0vlE0D!EbKrWZzDKX5|nIeM&@&1y($)kyp7n7$@)%} zny9TBfo(J3B0-XI4q6x1RsbF3_*FxNJx3hZT1VE3=qdIWE>Jpgi}M&_fZ24!^$^uz z)HD@f2f?&+b|`>a082cH6pX0UhApjvBwOf{*K`D6Q>~kpl+>Ah)dIEAK`P!CEn1B0 zuA73vr?4+T!-x z@5G0jn$pf6Nr5TtSlhMkf<3qEhpzSAW8Pld_s7va&c$|ZyYL`m9h(_%MpA$Pgh?$% z87#9NtH4CG7vJRz74M9NMzv!lZ4l*@T?)b`$0PGT-bP&XQwxV5d0b7pXtD-hu`Wuj zn(|mRc!e#eRsm#U>?Y1d`mD+YmS<$YQc(eb;vXYoaJ;5uUl4J)&~Pnd&@gfxA)>0y zhXDiS8#2f%`E=WU(`W{)3VB*4V0kUjcM1Re>hq9vTWt~io13?6ha+O%tj-#!1k zz^uv-^KIL@GrqI`6ztWpU$HjaWWV_KJly=BqcM5dLRx9q@WC34nX#{XZ;V6dv5A4k zdzH${Y@nQM20FPOtFDU={q{N>yX;s1?fQ*t@WA|^#6_Bb&}vYWLEzZ0)z_iJ=pNei z89?X63^D9+>)i_Z7Cx_1#qc(O`jvn$Pictvo$+1$OHZb z7-VCCTs}6sd*wEgoDy*J`6b3DhoRUmvo6TF%hoaF`meU=ep4$(?LypE=`cmGL2IkQ zDls&a$&fLne6Y;Td?k+cA(tLYQPeYNX(^o&TJ@IgFhOO)zqs+nn=xwCsg5P>i1~NC zTWa{76(3@e1EnvGY=hSqe1P}XmRZzX2Wm%ORgXOeZHP$Pz=W{ltyr@J&;NNQe*33c?s_R6SaLP??>q!^{&){weCt`Udsi&V zL_rY!&v-vA9#&K}XtBl;FyuRS^Sh}@>iXuJVI?*T2rDD3 zkkw@4ro3+5y80>&D;f${PSoq#wF?>>8?k!znlw%b*5v+n=unTkx;n3~w^qH4_ukuB zF@h8uOycvwMjBHr6R#t+LmayTSrNwyG0&pq{CUJQpK=XQ0F+9Mzvx0g))mWF;IhlE zfTm~RJ+LsD%X&1{D!{C-ulKL2w0!w;{4*2xy=KiC|EjttQ(mrHw{G~ja+aW7@2)1B ztTg$XKHP-UMveANXve*`tZe*+$2Q`FcP;w6lfJ6-_Uj+I!2AaEJ*h3W4)L%KpWDI# z*fzLm{KaXvixQ+=j$f^}tP>MwF?G>+{CwHfXlPvKbAG;bBF4=+2s2;$35wlOvyj|1 z(grN{vwY{Su=A=NH?bTecGuKy0zR=jmr{~9B6h}9WP7oeU@HdAlo#WR@caP7nWlV>!CtiJJXk!_+-@YTN zbQf%0s|v`1`^6!NyjMA%*m6;}XRn?Pa4ta4o;_5Vd;>&Ds-lTWldi%=uKuuLL(!{O zugcBCM65J%z3?A)rHwG(AOHBrc>VR)ORuM&ej5L1BEY%il1uRQuYbMrKJ~%<<*7=p z)vH(I;)^dX)&Dq2JUD9PMieq3Ljg+n^m)#lxtKG1F1~Qg7cpa5Iac+-28*X}UXNiv zXpi6j>b=TS#f1-T#IAj}!599u73R5M{NOQd@%ZCU;NE-hN7=Xn*9!8C?Q^Gd^Lj>k zsMz=W--Qi-Ys9tlPekjj>M^R%^#yo1`uwBWBeDFymf_+hRjCrI_^KXjH%ecyImer#s{50jJ`y1CB@A)^)z@ ztAAOF`=7Z9v!0vg%N{#;6pk4*D(*3(uN{Ur|JqO(tot+dk~wJGrq1hd;mh-J>20TL z5VMH=g=q)x^2O(D_m4`q>2Vk}fQ%`GG;G+{;`LB>J$dqtVs3Skj6$|6+ZZ|W1WdT> zhY857{xWtn?kJ9S<%(ZI$R3pDv7~zz4TJgps38)v12^|u5e?gHa|&9Uw%#`C9ncSV`Zfo ziSi+xa>^*w@ANlx+kdOd4*s;{11y=f(LZ~&b;YUT`;LLpGhICnYvs#y++_=l9(|@- z1ipI}qbMY3;{a*f)}6$Cc*aFRczUNqr-KAe+qDUKt{7cYUdMJ_(CyRRap{m5*n5Y5 z(XjS%*Z(&3As_c*&>6hPahPz_!|2|rAKGryKCYG?o%`X;!=~W)zUQ)}fM6E9Ba(dE z*LA_f6K9}Tw|;2t+Mp(Oalkd{5Q6L*l~Ut#c3e>R#O6wlki8X}$)fqEj`qJc>mA1YZiQ z*VHmLo~;eZ`lt*Y){Go^JQgor;x@Z^7&x%MbBnqvhM6amov_cJ{4tdM8r@E9*9617$u9@ib$q)&|?*I8T-|v_)r$<*P&8K5m*Ib1z zU5XRyi=10{(upIz=p9_y@#8OWGEKw%_f0Rx6~@%FXHWd}r?>dA|G?FG^2uL#y;Y?d zGiG=Y;FkoLZ+zn$c<{joJ)^ny+G{=7aAHv6`&5<^ff1FZL|}CL?YAozj{uU=b=O_z z-%mQ}q)NF6#7G`uT;KfWH+^1njBRr%A&3H~;Foi-(S{vgoaXQ(5K8{&N7tkO$!#hD ziPD1U8?a3~gWf}{1MtMW8Ww$kJqK@tn{U3=`SlHvw&#a1K`?Jg6svmi?fKzGv70{s zr57uIZV_vdo$M#(?==1;T>kzPw`O1_i!wW0t zVcLIQji(%|V)=$U!0Oq#e=>9>aB(r>z;m&^V_1BY{_cBgG5_~7vEIG+-QzH%7)wIy z%TAi=0J6@H`7iId9qE@79jm%0&cR`QhWpq04QsIQ)%j6x19}euyD9tb(GUD^3gylD z-D4<0fjq)gev}c1ejKx6+Rb&vC?Rc5wSgDPy|BF#nL!2>*M+OBq^N| zLVQU#0F*kp3GZpINNMu*Q?O~v^)8-O4M@bI7EIfK-bc1ZhtAc{X03i>lc(6%{^-YP zxm&1sQ#7Jr)Q`V*3m$xFQj*!_|KinKaO;AxKHy$d6ow$_Lr8D0Ux{-b8iaEm9E9&q z-!JA<`#W!2JZ3Po_o&#%TWcFI{(&Pg?Kcx~-7m*@(Bjl*x5Hx0%9un=Ij^TVsR3veeb3taK|qu;>vr*;Eq`nUHqju z$T;ka!+qU(i)VuA#_o<)G4nWZpTnapvlq?6x{YfSqB4yVpdi_bim_R4Cg)-D6fMk; zx?jlQS%XWDKJu6Yo5uu0k^qS`Z}ihKrWSQy=L~n~u)~8Zw!{M;B?2j4m*dBe^H&Fd z^>Fk#pg#_A?{&;{U_6kGcCoX`*Wc*M4Dl~=DF+@nz`gn_(A@L$J^cMC!EGhLo$C6e zx|A-Pa0R}7%Bdcts9j=?RQ}jwhP(Vxc=+K*J=mmVaLm!e@xlu)_)lN`$`J1o6VMR| zoqg8%&Q0ux&+opM54RA2b?w$w>6Py7zT4hj2UQ0qGM+>)W-;U@l3O-t&>$RngDyij0WZ8r5gOA;v}Zn8n?B=bav`HpiUkKC`gD z=P)4uu_rNR)_ZvK#lKI!YY7s&WenNNH>oaA!6~0QyOj`gxg1-$MkuW}sa%W7BO&FT!BrRoCFq zLk~uu6ZXT?H&lPmkYZKGPU?VO4%ikynvSCPKc+QSzR`eNZux0w7|}H<*opZ05^+BX ztp*S-gAua3h_c-D<{ug*`i0@K-vlbwgOd#|=I>se=Yfh^-e>oM z(Y0%xcKJDrevwWab3KdX^TcyLR``9it5PW7!w)|UVFKyO%E?GiY7YoNK}NmtJsk)p z)3$wbF2&T5sStEOx|rus*m=W$9OprGpb@P z1Q^7K2#EN_?j3>EKKtzBT|zpwWQIf_N9{G2s69#qa(OoOKi)SY@DI3dCuh{ z!1A%H&-X{WHuX_Iv!1=j#kv|1fA1`+wY>6^OPj{QrCxjOHC;|zOV?e_pO00!boqoU zRX?YXKFu?vbI-m2d5UYyAq_JzVlM0o(tTn|qg@*w^c-Lj1EI3yVl7|3!prQLQ&3dn znzjCtSku(d4!Lw)T_Ai#LxTg4_B>pc0#z)X%h1?7^K$u@Pxv7koQKfG^-nP}lDA-d zFO=4l&2OECDSeg zUz+Wf4PD$Wz$kzK$5;$AE^d$HugQCe=*KagWq*1WJ8joJ=)>UY7pI3}4tP5Dz)l?t zmvR03iLUqP+!wokwg;YlWu{|OD?Oun*WLF4bk|0YZheESbb8py0a*9=nFsQRzbwNc zh43y|-x>3kx&Zyg!r zMRLC0404(wHU(i_j9py<*ihVQ!i1~T%noq*bZ@}Ge%`H0E$T0`v)f3qFWCk$kP!~> z2oNv7{7PJL`Bj*B^%eN#%evyMN}G(D{x9jq|b*z|l1U%OMAU%>yD! z5cOJO^Tox;Z~*YIbKhQmWr?r*?Nd%G0I+KjDrjs>8w790`P!y976tYxaDUF(=lP&J z#rCMZxh|G9fB_dKYzpC%`FMcEjEiDb^x{VgI8hz}6tOO1R19ELj~_*#L_kDwEdoAv z`v}nFNhARol_U330@nXjQjaz0|8h#qQ}`f*uk@;AzY9+3%rnnI>m4^>xBk_SIef6u z;@PS1V%L6K;VWmfL)&fPf}U5z`zCcLa!lM=^x|Q*lwJvRpyP4sS(?J=Bnygn1;gR= z-11*U!|mRwFUEZJdi2@lFbvyw6vhp`!^N_$!`MTw$5*-^=gWU_*Te9`;Sb`JFJFeM zM$B-oVtX&glZ&UvHVMq`Jo9;+dgx`i`s9c3*$$l}&~ndDJU`t5Q~`o*TeZiv-+c)E zyB~@}4>%6jjhTUQCrri#Bd*7gFCG`iL4daK)n}u@@7Ae^kF0adYR>Ow#j)3FCNUx_ z!7Ay<{}z5zt~YUC1-T@M758glBN#e#h|i^sDJKhePc2S7i6NC9*c6{f1cpZCWhsgg zJ@W8l9+Zfoknx{$_Bam|Wb}_dJktmHW%)1l8R)NXx%DRh_yav=Ky@f?C760LZaP4fL%0xo)FB=j`+SH9bZ_ zF)#|clbfkmVj% zK#B76=d!3R>W|&R|LNpcFMauW)gKloY6AWJu4XG6y=XZQd*OxW&ht)tl5ikEK6kRq9c1y%>NCg%a2zclRQ3vum-IJ4<^}y~i zv@CH+SPhW!%gH@^c6afprLmoR@Ba@6nuohnzh3D*zv`v2@C{@0w43^T3rmyFY{ny!=0ndpYmGcq5Twaq@};5**J6pt}n za~;aQBGd?em{r$MkugP9JT)@@h|-b5(>v1g~Lv6}F% z*{s%I0*Lf3AKca7oikd`(rt-Tkb@OU{DCX-oToz#6G2|HL7grfe;$7G++4?=Zg8w@ zxO4Z;_h3b9tzbL6ZjC#!YV~Vq zRa{H@2e0j7tQ44Dv$|2}G}O;^X7RBZ7AImv9|bn-2L8SE|Jf-qtk+(Ej2jd;bsT|G zPWQdH3_x>7?A&(Q6+lUvk2PQAW{Zi0&*^-ORaax08>)_xS1E9TN+@g zC*7l~z|Y^MG_ZtsTc0 z+qQ*#^g;DujL=^)Vvg$=F)wnXVb|0kts%sz(d#Cia%(r3%UFf~di@yGN^-<|a)U5p ziJ7b=Bgc&rSaDEZT37TujFzdTBpt&Nlg6qhQS4pW1HYsjm6fnp*ONxWlD%;InJeIY_ z|A}d~`b>pf7Ug?607zM3bpGrhA+7A-OfhK0DR@^0@x$;n2_TmJfTT?T2A(&Si- z8+Q?EZP%lxI}zMt@HSZg;VN7{VPbMS1ybg_EuvWl@CuJzNEg+}diml;-d>U9T+0Bi zQ42CHj1nwJ+8032W@eqsrV@jbU_p}Q@FG?7!7WNOViVQo4{Qb2`RKE05U zAQP{ZG?|{&T{+L(kpgBDHzg^j^lqdbwzMREts$6YzDWh}Qmn=Op|53>SdB`>1kkTa z-r!CR_dm9^|0U5WQ*L&rDB`rHWOUMy*v8mc)p7^q0#_)62$-o@GI$`YRR=7ikTvZ(2?UD&Kva()-`xut zBacb>wyHBBV;CdrKpz^2W;8tzpd{<+GRi$t24Pj5+&GLeC{3WapUQC47G>s{eycnh zQ3M11{WS&dl9?EJh$3aRl1!KNBD0KUzPiVX)ZAPOAu5&)Y~FT|RiD)5?Q#q$=|p!Y z76$7qRJK6@8la?9HnorPY^EOqOr3VzxqFKWx{LovwfN3fH2&N#2&EDzNCVAOYxVM4 zyLKJUI%}N&Eukg?tJoGwJ8IhDv)G1^QPwM%kQIxqDEX1U&)?kQ4w=PBO=`F32+HY; zveY1tt>r>i%u`+(tAIy|p;&-qJsE%k<;9g===e9ZAvTAjvf;RCp#z3i}G|yIpm0+~=#o$E?7oqfsPw0YTyG>TZp9FF( zx6$!GW~*wQhw-`%-bP($J4hO9Sti*KG}+G8l_#jv@r;9)a+Fok7UHAW=iuOpT$D9oGRc_xv)XsX;ZSXj)i7#+!r4R zA+pf4Mp%HFVs07J5u2S*mH+g{8*f0sUVN{G*rkP@lN1w#Vxm!SNU#es#knnHx4{-7 z1grn>qB$-8|4&;qe@m)cem06}@ZwIJtjTuY=8PIT#smRM(CrtPWc>dWk^`wC_G}r^ zNDWgkRmLbLmyOy~Un5%_%`uebo?U9PO_hr}2lzsr0f0r<31p@5iXOs3*G6K*&+8b` zR<1{+Hf_ctvOXnKh`<)*GbLteVU;VS)=>l>)2!<%WeFdOcBRfL)`0}^tT!>Da$QEk z7>9J%e|`I}YMbQ-ifKyYWLZ+o&-e{hZ4kVNMweUY(L#EYL9fZav~85vSxZRSZ@L?l zf|{mGNg;MK6>A6-I_fimg$Ra5unTS1V(2mSnNn$Yibj%^G$y+TNIT8zs2I)1NErlY z@70S|pGEqat^Xl#&18Lq>9gEUpL8~+Smc0+?#%1HpE z+kxmgjxC;i*-{w>pV9_mQ3+lqn`?E_Yb4_gHB7lZx#l3X5jH(j0q9n?S`%OVM_SXC zGsUK^HUYJ4vvp;}N~_R+x?xeJ@s^O(?_p6=`)l||eZf_@W1dZgUB+gM!U|5T)NQf_ zE-NBY?xJjHA_89m)>Orm7NW$@Qop8RA*1}2l|pp+lOTfG2nOf7ZxUa zfm#(?6JudZkSLtkMiWEg<>SHNQO|Wsn6Vw=q&7HP{tpRn1RU7 zqHIR*#D%<7yJ0ev@-CW}O6|%8lr2FRxk#9$jE4<76C%1g$i@`p@aQ~&?~ literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/sponsors/fine.png b/docs/en/docs/img/sponsors/fine.png new file mode 100644 index 0000000000000000000000000000000000000000..ed770f21240df78760840a5c8d5e731f3f1418fc GIT binary patch literal 21925 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 Kh?R@z`~5e=$(Wh| literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/sponsors/greptile-banner.png b/docs/en/docs/img/sponsors/greptile-banner.png new file mode 100644 index 0000000000000000000000000000000000000000..e0909b39d1d42469436ba4c1a406ef0a27f02d34 GIT binary patch literal 7222 zcmaJ`1ydXC7RHLSxH}Yg_aem|io3hJ6)Ock+}#4jDNb;0ad&sO;O^Y*AGkY{>`o?| z>?`N76Y)(+8s#J5M<^&L6j>PwRVXNECg7S55gvG#$QoDxPDsu&I&M%#p?vmQ>YEG8!UM8*fYI>*o#B}{Cv@sDDmwml@?_qRs=Pb0)N+w#VS&ji5K2Y(iP9G$I zV>!yY1~`%8O9WF>P+a{XCuG9FNI-y}GL8rj7i0^EmzR*(4HD(jrl6oeLq6ru=9c>~ zau?X=I}lJ@*t%UkFALmVC>hem9Xro}(~e#P>ZmP&s$u6ayS%UwbwDo*Y3VVoa! zdk#HFJY(ILuSdU~Eq?gT)#81KZjPZoL?G-|PU&ORy*-ri!HWi8hOQem?S~&9edhdU zR3vsqOEiKt3e>qcHDk(3%Pgg5kvt`Gz7|s!H5u@JUuoI2Jo=HPfv3-WQp?RDT}=5p zlH9dXI%^AhxrNQIbF7*4!mN(Y^ytz!Mt4~n!ap27v^5Fr(s-0k)Jc|?wcsbcTSJH2 z3Mi)(BZ6mS;H=d!^Prt;;MP}&J23s;zAq$-4m>OV{&t_!^}5uR$OBoGW;uVZXH567 zYBEF0{_E#)PzaMD+E?CBU+N-1z47E=y3Gu+vf8>umw`T$-c<>9KBB-2_}1(l%>}j? z@>72(#5UhDwv9;&H2_2QuH;NPv1&PMd;99-+stY9tX%my6Moj2B3pdt%UIbyJ&91) zI{+QFzdi88_JSzxI@SW^EL{U=c;!EFS9?$`rxV~$&2^KKRPqF8DUPeWBK_)GYW$@8dt3{Vr=ZhuhEL|Fqn;p4Pw{da^%g z;K^c18Br%g3q+Mv(cQj-{B870xow0#l8~i7f|0MKU{_^2!Hxgt4@F97&gTb?@EBW_a^` zD2-u_gf3}z1pUs+PM&4U;pHh1+jrincDf8it;h~9`WIV}ot+Ex4MTrb8MYnFF{IeX z@QvS<8arZ}7qHItO*lYR$7P5s*?cC;S%tQJ*s2Y56A}rIQ#yfy4#))mEV#sb;O0R5 z@j6ifP2N`cL(vKiBOP59_&x^-{cBtE<;^D2!##ef%e@HlTg+fI1li+mw+Lfq$#siv zg(7&6Zn#Hb15u<2x?R8)_l_p@BwRrBs{+2ol^hhX^EUN$i5vU(+XY=|oJb#0XD>D) zJ}tjgAo&p33;TxG6lz~FMzT-O4V2ii8sc+=0@F{jeyy|q_TUbw^m(XJgJFIXc=L#^qqDF*>M;xYOENq4+vOgmvW_Tyq} zq$Z|k{XMTOVM`@gmA^eFV2#aCR9>l~(_pBJyjt|Q5mHi67m#ATU%omPzXAF;Oif$|#w6QXLrUxBZ zQ!yW#jWqRzd2&Rt9LKrPlNh1Czl>H7#?xS?o1EES{$$(BVV|q~xvB$&{n1Fe~De-V*1WITv!apJlp&Sp9}ge)fM ztnZu^9p7W0SCJySK}vjt-15lKs*Og+qXxVkUS520hhc6!PGpS+K=%skBB4AespN=E z7deac!Q4wTc>ZP4%1UR2dHEstaqrzn$&B{d4aj!lGnxku$Q#w{n#!m*R!4&w+C-U& zy6#Eb15I^zy?2@i0WP+zSgQy-*0!M$qd&4Nn$nw2VdZ`^;-Bn}XNKkeDrunX)7X3Q z-l8)CEl=!&!!A5e{*DS$a=VHpngTHO;IS_EUz_)@Z)FdZZ!p021g+NTwd2=-Zf9_J zOdUredp1;As<$yFeknMUMgOZV%z6w0B&Kz65Mj|zS<=o5{4ZfumOQIWjN3CwZHpvW z-C1E>1zo{J>!?BkHP<91^}naN>;<_=i6D&jw$>eF4<)!6(>a6l# z!8s#~M3SUH^y7k9SUT#D|2mvhBBa-!m#m?c zS5OpVSfKPHJsQqc?j!!@>?gY&fw+$5y6E_asNEDC6BFxh{QJL(S5{jQD%$v&(<9@d zoU-hNIJ+0k6CtRlO9oy(eiNeU#{{bS=fCRloWcYkr0%bcc$nGV5eY`jW;>&41d#cz zC1PN+0$2sh_Sc_{sF-!?T02Yn;x*bf5~6gyu$A#vmjEH4Zo@4 z^zIphrWn4v(I#9_uL1_AN_2N8aQgVH>W_IbHjrn9igZc$SL%=PF;a3eoj2D4Ql&z; zCPL_zJ`BE9@5|+yTDbtu{(c$`tg$*-fAL1^P<|zuGiCLW*Nci%;CgOjc-^sFs>6H8 z5p4g})@YGpe|zV%TV2#OQsA|;619|#t2Pg*2fSV2tgI&4qJ&4KKIgzUtz2cxE?}KS zLujRH>CJh|Nqs;q!f3GQDWnstP8+>F>nR;k3pV>59p`qAyB5w@8ym3BYyu$~&s{bY zD_^zZ;>ZmCGpcUQ8d=_Gn(QfNjKyuVM@1@Sd~u&NUTc^!0I;x&6jp!=`_J?r{1jb9 zjY?wJGUSX{?6OpzP#o&frPlvqO3=8n0IEv@sv1i0=yYRLZE9|QtG2U1&%jNrpeJt&$jjwZZ4jI`ZI~BG}$qb)aJ$et0(}Tds`J za+HWo$*h7f9ua1y{Xb}r&kixFQ%4PFQl2itaVVfaEh&2Z?{_>PQsI=4tTOwLNR!bz zZijln+L|9Vw`2$U5>1tRU5zIngv-SpB#8vrs=XzQYyqT1b6Usbi#(@71f<>1(9$brz6 zF<3=ElS5Ic?QmTyZG^*<3)5zFM`GrUC&>+ugZx`F7^DHBcfLK4q8N z-PHsR9V`;+U7Q<0=&P7!20ulA830IK`|@Ju#kadlpx$Z{744I8h`iHXZ%Bh)X;cgI zIIgD*Tu`_cuS$V>-ZzHQvUiozWEnl@U!0NGnS<65EXA6YRg5#8Yu6e&dWuT^^p6Lh z1{MSP+n2ms@^MSud}ksZHwaO0zi#=6Awe%&e=WMr{Geq1{3ycbxrcnNtT+4nC3xzyOoK=ICO7tvt+i(}N8{0iMK(hskuGtZT~{9* zRfil;joAQUxA@~_LgAcO27lsJDCgRfZYwuKvllDYD}zN+(%U=Qo9}SESJOIzckGs^ z6(fQC=}R>MrUE_=wF2(f1S ze_Z_BZ=}VxDe;ZEs!>w52w-1y^`FBoUIAM%KNg@dqxlcxAH_>9*8eJIw+2K+_)8g^ zST7eo5rXhTo4^POHVb??_DC#7kHz&-sB#H%yjRd8mHG7{%S*2vt&^Vk<=@uFmhq-o3%2RD~hl*2XSC z7mfJ%8~1N1IbGTDrhAA%xqALLdgypYJNoh}33Rww+lKv-V$Jee4mMGAxa3+3{efu$B|`zQ7fD zK7Q{syz(VRxZV#9f~Ryau^uiZT@Rs=P}MXTx?SaRjl9;`<}I1~8Q0zj@2keRZr4ZT z+29IgT<@FnH&P)+ytp7ruF_H>?#&!~jcU`B9H@!GSw8z{X0A}EmV9_UtPxEMFR;6{ zn~{K68**wwm2jife&KrS(s4RHskrvxmx$gM1=6J}9$tBftI7sQXtd6gROhnhC^7;B zO|5}*(nh?_#9pmhzPKP}y@1)eEO6s>sHCmRWHMCCeC*838v__%fPj=2XbGUJRuz6V z|88H}I)glBn5XW-PBzIO5Q&p0R34g|%4*6&Zw;k!KmP8|mXD(3`9ffpA?)_l^n!5Z zHQ6BSN0+9>KHK2bc2G8F3m9aR((;KwOD0Fp*PQ|pmzQIL^^7b1wm2t6GPcyb=4*RY z6yxkL(d{vgT*VYBZ z;G|FzAQkamZhNCYFB7VN_R(I`<6|*l;`}o+PvA5Fs<_Dw6RX@lA|bPj#`%-B^-TAh z!H%bi`lg736v7MtV}s?xv(G`>d8R&b7`!wG> z+opWv2|KeXUT7)A@4q1q0jc+USN{TV=3#%giUy;%AshQAWW_FzC7WougVid@6fyG4 zL~h@BZz6y2fSRts-~A_;0q=>=gYNE2*mYT}Qqn%Ursi=$fEjQl7YG4VZGVa0IZu{E z$sJj+zDf^m;L9r2tt%}s;@~zPj0D$|i(WdZdA!x9FRf-&GY2Dir*s-}ihPJ{mGAhr z*bRPuHzhn48=scf1h;KXl+hD_nE}k2Amj@YS&88xkFDpYaHPHCv00jHM~&1=z?ZLI z2G$usDu{XGILowJ5|g@@H%}|jQ2u<=ikm)`tEa-meNfnLa|>Icwo_#_+DEl&78jT#>GsA&_q}+o(lQ?w1?f~w=+Ydtc zUyJwDNHJq*N)a3YA-V=Z01Y`kj5%n`Zv>GeR^;4rOxXLR`D|30XNRFV@+hefmdgyv zTFBgYGT*6lhXkuV#oBvTZoQ6u2H+3XLhKW%rCqC^pdG=8r{8cbqZOYUWoCj9ys4SJ zsH_J6&|`*#6_xYWsZj>MGqJR(^5xi&L2n`L4nIOpf3x-U2V|(&eIBM; z-|X9IR_NTir{fROErUO=;g#Q3_BS5)JuZA3-q2t8>ZC1J{viwW@Nm#&YDqYLjML5uiI|?hGfr1zb(|h}`z(Gz!Ub zTBCK--(!>09~qq(Mibh@Jsp1E3ie%3Wuuh^b(K2B=# z>zvAd#f7R@yLe*DO2pXV!qZbKx3KVc_V%zVJYVxA5Pr!p4m&jc#e@q&nMvC;bsWGe zxpSrGOpwor$b_8DD^&n~3)+jy@-&+H!Ty*6wDyRk2N~Ib0%RGG;`Jm-br_z<=1%;~ z$xYPKln|9flB#rX;B^My;O<>9m@lh(jvM{Ur?=9=ce3R=EBKq}5n;r$g_hVH*bM}H zLW-b?u;ktKkXndGD{38+dF}s9Phum0S2T11_m8A~L%$JnvVRj}4O0#3n;wid^klj5 zw0^T^P0<~jJE0P6Yu=ubi~Zf!fCZ!w3A*u$7K+@e4kW~54s3J0w%6DA5Q3{$we!07 zX(SkmV4&{f02!Go@iQj^=h}~U?qH6}@44D*kr?yOuk>%@CHnp96X9XLXl7*_t2FC_ z*9BH47UunEC3lzpi-sqPmD&Q1EDdrW+E_?uR!50P?H9q;Bw1oGd>Da27roXBw=su~ zr-S5Hahe`HoNWD5tMD21HrBQ##@%iOmUXlo;Rbkd;L&%a;#)FtJWjg+#Fc>vJ3P9| zsy_f0y(yh7uBm*^WuJ`u(+mbw{&t`=>Fif6G-)@Y8_2?JqRb-SIdfyqbB=%7&!vDj zI!sY9txsS2ThXM7H0|<3*@ZeDr~E_!&Vc7zJCnS*zxXUnOOWf>G3B71kcJ3jG~pX% zG(lprQG`Xfq=eh};Pa5DUN)I1Q^Q`H_i6!7ZGphP5Xvx&N>Ru-vp4N29BZr#TnVu+ z$wK*Y+UX<-%6nf~2n${kS*bdvN#~Mrgf=AU-3t<0m!8PNAu%*Wc1Nn-xVy7gDMva+ zA#WFT7?G35Kb|Qi+u|HadYqyQRgg^CP*3f92JL;<6f_X z2e2qE&X2~b9?JnIhp5~s_T7cW@~I!$>$1Bp^zNr_QQ~ZV)-0WE!aoOOD(h;3`fULO zq((9fgY(hnrlw0&BA(@S(bqN$gY?Y3U$vx+e6_yo@<+yT+0Yiv;o!^MP9}yczq}ch zh<`SL1vtn$8t3aR3H967+IP3XJy;kl3T>kHoWm2M7xzniR^*(YZj7%Q->fRyMSO!+ z>nL#1a{E`_u4`I)VEGI-oR3URqCo0+(9jc}T$qH%#~#hlnp%3xRr~_Fy3K0|J8fzu zjqY3vyxUtmu|LD>$3$*xz=ItnYE6X}lvW)1Q&`ZtwqAg1-&sSzc-W@(dtY?T9<9*9 zt1DM*S;l03`Hq~YtI`9cgnZt&3I$i+ne`}Pm((`Md7bhCqsDT89?*N6`|**9fbOz= zz>S7fKtuG;$V8f$_%YmgYj*I2OtCjAbv_ABXUfjL3lDd!U5m{Nq^TkOh{&YaN=8&N zqS%zL*jEG>C2N^rP7-K484HlytPtp3+>WMACCX%mhA{sNoJzq51_K!oBA1uPIG-LT z7Dr7~^|@hL`gYk$RavrUM?bDde$P>(xk3S-Y9QG*wlU5hN(1^;FJNo0=??C7{?-r7 z5g~IsxvkO+Yf>?pfPDmlJPrq&FjAOB0(HRb9FD&?l@vyX3nISQ1XF9xCTggDZNdf3 zFatw$Wqq9a*Y=XwJr}dr|JN-uMn_2v4(==|*W7K)O4mW(esR8Uz%iksca{A*Dg? z`QAU`-XG4Kcg~u1)_Z2}{p@FdPK?eQH4+dV2m=FyQ9M%MQz-Mc5*D!D* zbXPa>z`!8w|L?#YcB`-kF4B6cfIZ*2*?Rg|e6+#v@$unzaCP#qvT(QIcl&6Ub0|xP zfx%$;O8JGJZ!S8|&qPoEVOYV(`yvS6M$L!s|L)w{c)}_x zaeK$dGO z0I_>3mr?AHjrU1WP*XB!1rzJjFOTR@LL8Auf=oq0tN(}PkTn+EzNUY*`s?IVCn5b5 zoIY%_35xiw*;H1)CGO=a?oTaUM5_gLkI3=maUN@%$Lbp3ltb`aY2tTH`5uLC=rSC75dm^hUjM;{kU5v)~MBsfASx_Rwd!gpm8cm?G4ad~jYKTE~?l5v=Err?&a5k`p3B&_F!XK@!=ZT_)t}^uR5$rg;hY;eu!Y?edNLPwjHO!op?- zN-Zy)%31fu#us&QEt9*O!ev<8#<-8Q3Eoiq}2FH;(EmE@V>bEL-}e=!Q2viFq2K$*o{ zy!2v33U*8{gEUiEs}HGahZSO3O?&NbSb?ty#V-w-XPVRh_GU=3VX41^h&go%{8 zzWPEVD{svkc|(kmQL?1NQ&Zg|^1MJ1uGg3r(ROP&%|3=<&yeU4F@K`J7<>mo6_>-B zPcWRr(`o2san6dFhiD#pq28q+sq)}6Z7w~HU!w7yi^2xCV;3&gMuAJa59Fj&bH1lv z9}11xY#Ek1>?s*|YrOsm+_33?hp-)iyiKKJH+|sth|Rf^j>|D)`xxDSkJXuyqf6Im zj^kSo9FDW)ob!&sdTa>E9LK$?^S-qa>sS9KHTg$WkAaxLJtj^^>Ri_pWwxQUt zwe@)?JCo_;{~d_lLC&!9qhIxPywdLZETHVFPY6$4wdgck+BBZi8Iv}h zpTa3Kj?hl{y57xsp;&J1Z|@+;ZmsVq7Tl2^Ijh#pT3ZhF>OAMr!cL3#TJT1am72&W zj1<*_r7SQz(F>Sj!etDGW2ZDhl*=6@qp6@yA738CnB+{aul<~N$cS_VQ16*i_7n!% zCOCFHG8m!R2JF>;Nw>H;P~Tw7a9bHIF{)^~-`lucZZ$4EU%5cBZ~jb0L5u0ZkYjq2 z_8g)#7~D#4I$u3ybIl5gZF4>{IewM!~~MGe{;!zb^8>O$LSPct%2KI%G{H@Qc!Hf zkJil*)w0^$4+019MsTcN0BTqxdn%W&d5z=asPTIPU0Tp>o!6IIyY|AsD1S95r8?DD z?%X3VtJ$pflFX)aGfA_+cSj!TD%B9UAihU; z2y?foj8!UvR;35?O};uYoh7tNW^i%}FHv=!lFmRI+fMGvZnQ^!hy4~&ixiqSH zGU9b*&pQQJZ^XuX>BKWB6C6oDwnZ75;Dkfyk7{hG{i}&dMma}`j$#a_#Czg0pU76nA1FEl{P?@7{wAKV2&XM|W&EcHJ~1X9TWJHVW*2 zrqr(!0oorm`7ccH`*in9g`R653=Ox_`~vFbJG(!uvd>i2_&Y+!UKW0%whRFNnztpK-Elm+d7U;p!%kG+u1%T7~R$jnX+TnpV#^I(Ho7 z^QUiFZq}4VpMnm&a!}fbs{TkXgSPGz{Pe`Euu6-53!a9V1p^A5wW)A9!#5j1Viq3+p)$mntbq-w}C+g{3!E$`;P&bS)#w3=bV}5flS=*ea zK^Xi1eYW14k4XSIe{s6l+|2?v!GNYRT0qg}9i#k}hs>r2Lu_BMMM|CHhLY{gvoc8I`8S`z0CFl8haMf- z+40Aoq7vj^Pa6cA$x&6!ZI3Y?ZBvFb@7`nQdym%$)jf$8ln}-|!A$aX91d}Z3w}lO ziP}5MHc^l0#`y9G(S{C5`NEH-HGBSR-Qxn#*(g;bkEnYTDJTu(cJz?l6!%)m{3#;$ zjLxJ64SvXpYhuh#%!!4tPO7gq)3q5}3<70WfBl+!l_|&h%Rfxj<+sD11qM=oA&08+ zaifYKA(8VJ?G2UrLcZuqH-|n{rP+F!nLMg~I8b};dHUCBprp)x1ec9*)C6C^7bKmY zGc@u>9`+P*)#M;>+@AhWQNTA`h^;Z_YqY;bLRuGsPXtnD429$+9L#wEb@9w-n};AQ zz+w>A{-=6X`d8BTiWwgE?~^FS$NjUOn=-ckmR$dqCD1!Enyza)2aW^EFfVwH;w~-V zafYUw$f%M@(D7idVb;d%i_jEKMD`iCQx-3vJfi9(9-lCwot$%x$C6eC6FmmjxQ0%* z&GRZ=lod`62Y*Ezvxneg!%2U)b6Ua00i;X6?Jhsa{p2=dkfD{ofcww>SIRrYOw%y$ z_c5oSzO7#iq={qt8h5@YWU5&}`^<^)IB%A;RfQ_m#gUcp!q%l@QB~4c;gMSv%Hi#| ze`ZyI>-kXH39b?cy2|*0uEL^ooX>;U|~V7Y(ov zhl?)*e|c2muMQH7Oc7sE9``L13(~F8RleK5cv){hS+xj=j56@Lv@`O{azGs-rV1gv z65r&+qfHXpiz`F*)0;+R ze!R73=82)CVZzctA5PKtZu;;mM*MWWZPGM<4EVACDx zfC``T9@FDE*AGfRs&=~jI7%dRjS2xaN)-VWqvV3ue$FoMAoiNYFCmfy`VAJpb}jCG zK2SriiQ@X>*zI~$?MI}?%Ouym-|5}xto2q(S2*?!f>_)#upV*l?=3R8uwu1P&_tZioQv>z9s6{mcL3EmYt z!EN0vR#4`_isVPG_MU#ZFn{w&8qf!q_aJ5W>1pg0TDUkVRP1)u{0U}M>&?3PxK!AT ziY^5eNzQkWvQCwLtEp}@$=8dGwilUY}H_kfT)DAN&PDA^5)hktY59gvKIK0Y!xD9hLBC#KV`nJ-UpISi2lXz4g z6)W+all@u_x|O-e3w>!41Qr?t1f*gP$#9_g`r~s*3nV;Eai;o_FlI(n8ab8V=huWqWad`8ijiLHTjEj-JL!*1P0*?-S4xbugVMZB; zeLV%({l^$FgEy~%A_ovPm@g+v}Is;z0e&f=O z70t#02ORnX<4rmQQ}C%QDfLJaAygRH1lhwf+@~(Y+YeJbZ#61RYIiYsiU^L%HFNrQ z`NzQou>@&M7dNu;TS)Or)>YM|D32WUYJ(*rbUoxg6?6SaWEuwbUEMiXt*&K(xqGuq zWN0>h_EhmqYW$A~oCcp_QJvuU594EJd+Fj6(c`rFviJ3qg~?&p1^#f3eARjZ27w&M zWMFDlUp7muWCE6t;4}xcp`~AFRB5%QulP3~6#6m9$+?17td&U$nAhJ*1ZKS3wjOQH!HR2gS;_kZ8@>P z;WfpEx6_|P@r2AO%FpUAF7wAFxQUExBCS1p%m;2Fg-1u}9Z&v_C%UVt6-J4_Eo0EU zbTu#2RQ1DUox*Uafn_?2GXWES-OjtvmvtX>hDkjby&V?_AW=nrtn>Y9gwNJA}8;S{+uOm15Z~QmZI9j*0 zc|3C&&WL7&F7DuM`9OsJ5b_&%gXJKPsUAAhlQOy<{H5V()aLsYMl|%IIP#>~S_k&o zstzwnf+wV+yg0o@K2~DJ+uhDyN#!*^-y&pLKXvbDr`YTcB#N`*w74h~I`%lVC)yjS zecsZJ25u;#iFbW_EHxfKFv`#>3CAD6Q$&$;^da!RIcef^OWArr#B=bT@Pzhh_l-{&4 zkgodq=D(0Q70C+q@>6*p+xMuJg_r(}U;`Tu1udN#+!5*ab~23j8uqbhb)&gb^(Czb zY&jyciy_WC_=m6-Fc%7IeoQhdmbo1mUZtdGHj3qJd01M%ceK&ibMMR-q;^U;GzVkj zHf{UzoqGUk1a#WZuIx#i}@bSrOk6k4;6I6P*^-trnz7 zKF6fl8~HB4g0C@@!;B!t1QcU3hlJCUG zQrU_p!5yo^4Ubgjw}~+vpkD7Ei4(GO56nR8QbbU1lv}u3E9KyFyyMnkcTj``Q35bY zhT=%Q+dWYH%qDM4bh>Y2eO4v7UZ{`@^bIe*ul)CzCtOpL@*^;4Zra)ifl%B4?6Zx@ z7)Dwm>j=R@u87`#TP;p=>Lc;Vi1y22gi7_vMl>z28!WpVQeB19QJdRylhRR-8YMLN z@SZ7%#ObSCVle5=&uSpHa||mEGaRV{JzNaIhwQw}BKYD;W28Srcs>yTDZAM+$ZQ_n z;?RuP{wV1i;4B=R-HnB03ic1!ejcmT8pZtIcVJE`y&U0OKRsTf)jU4^p5+hAI+Zk$ zrA-M(pBZ}Yv3N8#_ELMKU&cgBQA7a#umqeYhG6|#~$ ze4z{U9|CkZhMAhgT*GVa{G41GiU^@kVUVpI+yg`))^42J2D~*EG7N+Q(5vVZ!l9C+ z6B_1Ioka2H)F(Lq5fMO(k=2d&l35vpHwgd$eZ(wCqfN?~SR~K-VNPmF0Be6t90^#6 z|3KAS2+0<=Z88+dbijlz{41((_$RafxtMDx6R*wJr*(#MuGba^c^JHKJ`>QYmmHVM zGYr`nr=*xkt)CKS}KprpjBGH`K`kP7Y zPrG*~gTM9C*$IC6`X}-m&F{~4SG|I|jWZ5hQj?Z+7Fn@I1zaH~cIQ_OwXp%__o(a8 zFTI~DWKi41X;sv|@gcn;AOL($kv(_tZiU53RmF;tuJk7`0Iu6^VgT_0ALD))LakPD z4`phN(F&~t#Pxe1n#cBi;UsTHQ9~sYWqi~6M@jb<$mf(Y65gvmrrK!~UB=v5X%}sE zP)*5%_utioFV89egTBsHVXZ1ym>Kw-JTk4|rQT!#VfEv;hM5PXKQ`Tk#JOVi5q}b0 zu7qKmffki-i=^g8LfgShNOb)O`1qG^VDK|a0CKB_CDInvJUBe-|U}VM7*~si7cN8lV*;8-E+B{=qah-k~G#nZrUBy5zlV$ z1{}(1nOt}MSN@Umz54Y#%0DvS;~4Z@zkH+ zAx+QQ(u6P%nzn&h9*9c6&dJ`vbCy2iDS;Mqy=IX7u}((KE}QwcEfmun`I20a-LiDt zs_S>z8UTxOnEh}=5Oq}3{c4K70uiXVZ9! z;$}_&M*YLp6{L2x7IC{8aMU$FpSP~VK#Y>WP;)g^))JXcQh{&*PnEeuMdRk~;abG*=F4^me%DKMIv}47Q6qGyrPm)n` zoZI+)LI}fE_PMeWK-3e<dC2Y(Jd zM%nT9*1#SteZ|B))>m^H1&AH4e-jAnB%A_;+Nu*s^j?HiXbKCk#Lll2 zLIINUw<-z%)HKpeA~JQ#1UMg-sh@fB)Zf268Sg&>kAZ}-UG@9RM3uy6`n&xY_~r92 z7}68+XE&AIfEGqcHZhE!l5cAx@t7bFVn+BM>W;}7A3aW@b5PTK*;^**E3yBI!FOj( z9TYPe;A8}d=q5h#;L!xE_w?$wYS1H5WbYP2#;TQpR6gqh%To3#-M>P39`RBa zke6QVGeefzX5z1h*2s_hF3WI!l@FTi+1qb{w(8#85C(MS;;xs1Qwj{h2~4WL4dy5$ z!HXMh$al1pItf&A0dwRy+Y3@+drK{{tx_wEz2jR)PDLzaFcLu}_(^du_jWG)*&~7vFL7S8 lWC|(w;C!b2zg?a^*jw6? + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/en/docs/img/sponsors/imgwhale-banner.svg b/docs/en/docs/img/sponsors/imgwhale-banner.svg new file mode 100644 index 0000000..db87cc4 --- /dev/null +++ b/docs/en/docs/img/sponsors/imgwhale-banner.svg @@ -0,0 +1,14 @@ + + + + + + + + + + ImgWhale + The ultimate solution to unlimited and forevercloud storage. + + diff --git a/docs/en/docs/img/sponsors/imgwhale.svg b/docs/en/docs/img/sponsors/imgwhale.svg new file mode 100644 index 0000000..46aefd9 --- /dev/null +++ b/docs/en/docs/img/sponsors/imgwhale.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + ImgWhale + + The ultimate solution to unlimited and forever cloud storage. + + The ultimate solution to unlimited and forever cloud storage. + + + + diff --git a/docs/en/docs/img/sponsors/ines-course.jpg b/docs/en/docs/img/sponsors/ines-course.jpg new file mode 100644 index 0000000000000000000000000000000000000000..05158b3872caa803c000c3dee1aa3f858ad5534f GIT binary patch literal 11727 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 literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/sponsors/interviewpal.png b/docs/en/docs/img/sponsors/interviewpal.png new file mode 100644 index 0000000000000000000000000000000000000000..e40ed01fd4f9c0b41183fb2f9cb5291985348e9e GIT binary patch literal 25890 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 z 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 Sn(1Z$0000 + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + Wealthtech jobs with FastAPI + diff --git a/docs/en/docs/img/sponsors/jina-ai-banner.png b/docs/en/docs/img/sponsors/jina-ai-banner.png new file mode 100644 index 0000000000000000000000000000000000000000..3ac6b44adcf4b0c28df130ca0e16c674ea43e229 GIT binary patch literal 14153 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 T7SUJA00000NkvXXu0mjfJ5Bsy literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/sponsors/jina-ai.png b/docs/en/docs/img/sponsors/jina-ai.png new file mode 100644 index 0000000000000000000000000000000000000000..d6b0bfb4ec24acce9ab9cb4ca46740bb16c702ae GIT binary patch literal 26112 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 X@XdfIPq1E700000NkvXXu0mjfyQ^GY literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/sponsors/jina-banner.svg b/docs/en/docs/img/sponsors/jina-banner.svg new file mode 100644 index 0000000..ebde273 --- /dev/null +++ b/docs/en/docs/img/sponsors/jina-banner.svg @@ -0,0 +1,233 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/en/docs/img/sponsors/jina-top-banner.svg b/docs/en/docs/img/sponsors/jina-top-banner.svg new file mode 100644 index 0000000..8b62cd6 --- /dev/null +++ b/docs/en/docs/img/sponsors/jina-top-banner.svg @@ -0,0 +1 @@ + diff --git a/docs/en/docs/img/sponsors/jina.svg b/docs/en/docs/img/sponsors/jina.svg new file mode 100644 index 0000000..3dda4fe --- /dev/null +++ b/docs/en/docs/img/sponsors/jina.svg @@ -0,0 +1,1981 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/en/docs/img/sponsors/jina2.svg b/docs/en/docs/img/sponsors/jina2.svg new file mode 100644 index 0000000..6a48677 --- /dev/null +++ b/docs/en/docs/img/sponsors/jina2.svg @@ -0,0 +1 @@ + diff --git a/docs/en/docs/img/sponsors/kong-banner.png b/docs/en/docs/img/sponsors/kong-banner.png new file mode 100644 index 0000000000000000000000000000000000000000..9f5b55a0fe8bc997f99faef278e21dfbc7a32b9d GIT binary patch literal 21116 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�uf1MR*~z1&wb%*5hxz!doyRQ z1z-K2|Blwn%5c#Izks)Fxf?EwZZ~L-CvYpfGSH<>f)J9i5K0TzK}P}rd87;oSfT5& zI`MJ|>Bfh`Eq{I#H{4`a_;^%M5thK!S6mM_UUzHE-?6O0bP7Da3z*V&^1=k zM$u)s5nE(0M@3ddMbQq~g2YAho%OLrRLqV1o-27-}@eGA=lnft)JW;mXbHutuY$h-rFD?A zWWe)%&;(L!SQW8NNB|P85CRa9-0>o-B)YvgF|~t$MuC<HA=5M#8`LALm>Z&PaFpqUUX5|e6!7QhaGl+v(Nq|Tp#nF zc;Xk~-h1zh*3`u;7>+pNaGW-6IzRu!amT`}b!WkXXr-KW);W03z4sQDV{`$*amRfO z){XIt`LRu>oN^k>p8aN=HER}}dg|%QFqMIE7|x!(3GDOkypT@36x*aOj~2u@JoR##`W5zdFwWp~%ziwtG9i``x=UKWM!C=*MRQSrOorb_J*` zoa5j0DEL2chycia_dN)2e)C4~(PNH)Z+`0(sUVwPsh{t=?;*JP=D&y#yS0h{xH5e8 zD+D4_VcYHA3YTAgO*tkM2OJvk?cH~O2duNsnsCNXf0Yuhv-X;J&;jp;tNwTcJn-P( zt(|yaytneoQ{ZQ3{#FSJu=U%wfOqY-Q{?*;Sg>$0{Qmb>a2}PeFfFG4_oEJkTW`B7 zmb(VLeXGsksz2QXS6_2;>I*;Esr)0OYipggUIz;nFM;zfy$QctF+;Rje2=STUG%I6D3CqtD}$|9BqOc5)<841-;Cu-*tqs)r}J_`1_ z?m}OW2I&*HQp~;Iqc8`F;s`VoaCl+`%VR5sB7k&zQT%ts`UrhqbQ@_LQQIN9v9O0j z9fHCbJL!tsjp8%V>#7A;)6!n{TOr2<`tg$hMqGemm-rB0Og9wEkMWy&tcRi32VFwV zXME{vPXu7Hu8jsDNs~12Kl*=7YW*hRwD+-A|@NuXudb=O@taL@AtU|_L<2j7MkSXhJ}Jeok09%(v^ z!i>L@(6;<1opcgJUI7Vx5_Z&f0t~X&sQr|O0Fyu`#!yoKQyxldU_o^gf9QS$n^ZaR z!_rat1f-NE#-tdmX3Ut*zxUnuJ-FFsvl);tzW8F!`=u|P2xmpGxbUJ&xB(wL{ICcD zn-X{+<)!jw?J$dhVwYX_hywl3+|pSQG_L;B6_MvN;f5P;f>|-|qkq3Imi;tK6#|eD zk}}MLl=AGb!?vuw(?#F!z4w0jCH&Sr>@kpjbky=^BHf?0?mBSj2M&TAw%-;$^3mf{ zX`lP=6X5fo`%k#>&$mL<{@EpU=m!pjJ@+~Y@4fHAko!Zr5itip_S*BEiEm&3<`3cA zb53V^$SrmA&3EV|D?@NVbVW6ok%YVd8m(Hrp7pZX~L=C>Dz zMT-{mj>>Jf-V#4`!ZA$4i6?yrOou%Aq!aMUtFE`P1t%PTG@kIEN5h;s&%tfC-3`0% zwj+G#sDt2p-~Ty${|7(gs-{LjIR3b!;C=h=fon$qp|lS?^ccqk+!*G@O`SRgFTL=m zuyzEG2OoY67A;x|M;^96EL^lCr!9wi!rEe5fFTS!2U%2t_agN^$TW+xd{O9NPf|p-<2ClpI);Lxkjmd_Sh4aV@ z*TWm%v==<`^cA7gU(POyx<3XJM~0x+k8Z0700biadRhD%3uGz8=dziPMiU|2 zpbjbq!Ah(#pg0H)kA%+16bwt3ie-qpI3caeQHxVtg*>f>pwx1~eVV!J{n|-e#&(yL zAMs(OUEYIX`BGST;csEu!AAn`QsF)Fx^XD}H@w!`Fm<2kd;Hn2wd!*JMAN!yUJ)EP zm`s;h2;~^X1RkVSQ*hbZXx0P83oPJlnaLkdU_=+CAq$5t(rPIkfsI)-&2kB_{1qC( z=?3U}pd7HUl&8sp2;~BRBAxFS15^^`l%A{(65a%^^k)_U34Ll?q@O^C0fIn<0=p!* zsqMx;0|zQE@+?_ubP+hw^ZobVKSX};GXf$4R9f_K^2uKoPXzOGTD0C?&tRO_7J_pN zS-R=)!yldsCx7K@e1F}@`^O%8D1ytOaN`Ys=Hw@S@pB9wyS{VJc<&}2-0Mbb<&N9` z%%GKYe`on!e97f-$t73789zA{4m)fn?Dnqrcs}z*R?S8mZyC#2#PwWx#UG+Iav*%> zvnS$$g^MD%ti#~(@5B=>*J=I zZimaSxSFk&nKRdpZmjoW1dsuq7-zgLzUQ91q$eCm2j>OUbcyKzX-(EGx8BKPWslw8 zfxkQNVovg|ckRT9cHey`1`v9_@y2fmE3Z5iZn^cZJnqP9A@I2BsvF@WM}Hn{@xm8R z{5X8__#@%=+y54=j=vQoY`5b9;pqqQAfOw!Q(4m`w{%&oC`>c4m01l z0bY34H;q}r);+NM#avm`ua)#F1lKxkYEWOPtYwuIzr6p0-I27oiJV$Ppi7fTmyR+t zS`D--Q}>nw>(-3vAzfj&>fAI$_NZ~$3o4nrA~;k zk{H*B7C@)RF_607r>*Q1$PX2rpM}wa==aSc2?*RMJ>93@BRT*yKpAPFH$kF(A?Tij-djV5xo zBx0U?@~H?sUsHN3c=D;I`5sviW{dB$&)yNl{v7{qN+aWmC!PxA4wHNtz(e{+`vG(R zc&&-9uYUDAv2BYqoDJ~jXl2k9<0c#^`PhH_JO4iQ)H6_RgJ^{;f^(vqYy0iDW-!p| zF;^?qQ2ZjgzWDdKzdoNI@+XjGvTJndtPC1~51uuj`OL9+>JPt;r=IdPxcGvz;FzNi z=lf4T{S4fE%U_y|OkoRW(XzCS0D?s8Hrs3|ZHg|i2qy58Gk!&`EZAh@H*(r-w%&p> z-g?_#nV1tk`C(3f^2tAtsyHg%fggPTY`*`#_w6BSp*HsS=U+kAhsZoINnc#}&Rw^Q zX`Y9lpZ$lRzAb!lw1#VMyI)giX2HgE9Fy=T6paNJpA!qDQdd(5;&IZ&r@RAS*SPY| z_n|;bS)(NqK$p^Dj4e<=TRnL^US4^55&YuJYhrt^j67QlKK;of;S(QwFRZuWM$lVn z2&T_^J-lVtU10W(JHWqfvOTOeb90!!+WIhg+UhWQ@)Ve~(zGz4GXf(KJSLF%jsQUB z4lTW6cT#kBksGZd;GpxfP}Yr+#S{bo^htj)M|6|Ld-P5cI;>Gva8WvS&+$Tm3N3QZ zt>;Bm6+f3H%6x_#baW#nWgm)Rg{d2EiejBrfaTmkXvz{@}UVhp6O3X|Tpb(V;j)Ml8n_wEpuE`!C<2diZ^ z-B|;Ef4WF$nTAZ7Gzlycl;c?}ZI^RZ{p*<;R|w^5s=>!0sbCF@4SgBV4id@f*k+AU z9K&DKeiHa}UwIKCAfUOMeE$;v=psO%`xg5lt1NzJmsWH$u~k8qNd)8&pL0xvz=!gz z7h^#L)Rd1bLM0lqcw8>1CPMg@qPpwvTm4mvOxYBtqJ<8SbHY~ zso8x;Ah6M!Hc*ssN}wP6AyK70h_KOy>%;jMTxAXtX5=a>PmXd@z3YN{sC{U5Mp}6l zwClj{MlhW_{}dcS!?N^;x)&mUvRjIUEz+_l+4s}8ft8ezTW^01{<=;dN`QitpX? z?XYT$nYi)xcy0cLX?TiLnO4F}bA#d#j;g zc*DADz}!mSj0G0W(1j;ptL3s%Br%ZC2<~QFC|6o3*S)JGP3Vam?*bDy-3f-)SQl~9 zL^MDZtN=xD5 zp{2UE;)sM8SpYllyz_Vg_wXv({=gg@6e=sen&}%n4UKkrVeVri*aqg{z#d$?NPv?@ z?_6a~HyAGv@GG@^StR(0cUBL%|CHD|S&GRF1!>POUc#paZBlX}D>E zk02)$(FN(6Nra;2pzXG$LX)%)6Q1c!d|7&V9?8Zj?@q%^BNV(0=>ZA*b=FxMO4}t` zD-jeH%wNEQG=wDVk{~tr6#>wXfAlSY5;tM5z1|6@|KHi3O?>_OHy1D{k@Y}swEOOV zI6Uyc!^&9`3AtS&$pxpCH#UFa%B!x!_aC%xq<<}-pgIA?!bs0=es@U(jxCsn+s01< z6`KYzAkOYP`axcK)RT~@ZUT_C*Ir#=6iVJ=W?cFP&N9rO?68_UH@Y6j{Am;+VKgU0 z_0D7sK!y>g3fj}`J&`+sw>E@6uQKK{M}T7tq?C}Bt6A9D$nScpV;*uJQ2?8w54ET} zRiDqFqIZ8ljB!8=bieT8TsY_VcfjheTMgd0{_3#o<=4RjPxj%3=N^aoFV2A_3toU_ zOBX;ly7FmNRw zHU_N2`TPWqgV2+Tw|oFYW<{ZPkQoz;i2?WrAAA(t9N?*Biil_<5=fV~XVnq|X;>0T zpm|N%$_y^JZCX{e@@g>UUB^d?YToBT%n^ly@=D-rD4KE84?Pa%o%RiQ&G9EfXVp~z z-7v6GHzT?R=AQiR==PcijXI$*Fu`ahpFX)-NO)Obm^AQa+RzAA+kFy@ZRIzFH#F{# z2TslVzTSe*jeG<2YTtkd&#;1cP@}KBIm1Gn+)`K=JRHkm!B1{DYcGKXxunPnp=V^J z&@*z=8J`UpsCac_ApuVW8*YCIoT!amzR!C9`L||mk zPXb~n`i=z&rWlmHW22!g7>;4yXClgVU|~xDu;*R}Dy^7R-c+}l`ym-K+ikm*xwjaA zw%cwiXkL_N`t+3eU3-&_bc-F&-&DyXzJ;4D-4%@{0bd;ZH^L^1&W6>LJw7v)*w6IUEA3bAIS4#&h zT)3E5VHux@%-*8;(e>YTEk|pz_CLQ_oZ}&w6a&|J!Q@GhHvslQg3v+VX+c*62icn# z3!pdyQC?RRW9CU#6NuEJt@Bn#1bLqan*pT3*YQa=h9yR!JGLx5J-P^=eP#}9@cPwY z?bSAg=jM;X;#Z!4#S347(WMJvth)?)-BGN&UFi3_vC1AWkbtNz{c0qJN0uY+At7pd zv7UaPL50tY=a*ImKIl-6a~Ib)>*?Hv{PHJT%$^3Ujd`>a8$`Fs^GZZa9b-15PdsXZ z(z-4wH*BTQ5aUy>B_>iqi$E@V4ZypOoGVu_v6{L%Oxy39v2ha9;A3Cq_>?Q2Zx;=jFYhJ{CH!nbFkdS>Ux;1nkS-Z@>N04RU3X zONK7L!H$F>#XI63dQI7-Y2!r!Hg=y@ZrN`t)0Vp064sV-d|U^dlI+1FGy&Y6H^5`S z*J9;cnU)t6gh==kfM~oYfm$Qj&d;J{!3B{uNB1SzjeK9*m|R~}2l0=7Q&|*zxAxH= z)feyC*@uqJxgkx#orQgVD1ss+Aw;|81wvPh zckr|CfA^&5s(Kb4h^{Pa;H|gb#XtVBXAn5=50`=5^UNyrnc!74 zqMBA-ZS}UzVCvMB)U1w4#>Qaf$rGB{QbY*Vq|@;l6#NSXB_y*W$jP;qiv8*$kONr~ zbp$FFQe8fFr0#e54T7N_i$(MZCIW2&?AQI!>vy9}UmkkB2pZibIJSIo7+tn78cPds z+2VO&(SqmUZ-2WN)?4Rg=q;WI6KZl@&4~idlu=`i~MbAJd}VB;34NX%iB0;7E-`%anI~8mg7nNFd>Z z$hl;1+o~3KC&#R?X)V3z}AA_pkQNwK!8iYV;Ak~pl1X`XPHqe(zp)h<%g5u6I}Y!<>n^GXp=fs~`C(#B4V8vLpPq3V?6AZ3 zuNMT~)PAYJ#6z(*s1 zgaULEQF$k(eCWzmESAY;TAdqKc>o$%xZR^z^Ypl`%oNUqag5uQ-03ibLoX= z;8t&)4ZH5Vb@==VN5ZZf8N14A2y1k{*o3$KAqXn{z zKxD})uzYl3_~&yk!qCXQFk_`1VInQOB`bx%V{{qxyOei%APc15r?Mjrk-q3Y3Q>R~ zTOMOQsQNvmW8kYE0ZA0p6b2FUxi82#;uF{VjM*r!p_Nrq!e6!1QBO5t{G=6Gw1-5j z6n#sGS>zEzBY;I$o4ja5%=tX)&`yxnX)3uY6)-uO-`R@;fos!k-@oaSLtCC3`Quf{KwxVCV|7s-^qb0|i$im`6X9$#IHoKgXFqeytQJ@SLUwj#Sa-Tn~%0O+x0}ebU-oF99`<)Zv zs>^>FKflO9^#cz653Mo{?W_nH%>dpY;cvIyes?(LV_)F!=brsNIQ@rT#y7oTJ-GV1 z+k$p9W(&SnASQ*o2Gfy~d8tl%7K*$UmQ9Z+f9oihW7H;)wCx3UOGV3rERdS5jVQe9 zF#?15i1uwnE2KxCqqG-;)6|ll_jd@8#28JVoLD^=8(W6GD0n5#u?#P}_=d30KAXcM z|F{I!T6JHX+=)QIn+baiAa#%G>M}q@aN-v_h2EH0Cf%5ptdDLlAZ_NO_V?(38CqsM zCG>}9V1L4E!}1BMjE~QVZJ)vm8+hLbMLL4SIP{f-Iu6-739=Ku20Ne2 zBoW7aA{}gC(Cw%RSaiM(Rxiw~P@HkZ^*Qd*>GOBczvU1A36|dW z>+AxcZeF&8_k}nO8CQDezA$CCeK>E3K`J?un9AfgrNH7#uYkpuTp1cP7W8Geoo>ESWf9(?WmrzX8(P^mt!a zdj+m@{sO%EPnYmsj<>yiCx=5Bx9N+%P>NSfEnKiD%#)ak92tcEXbl$u7y61o;PhAz zSwWPS4q?n=2(8Jw3;-MLx6OT`0jBq(NF&_~uUhg#gQuuif(9KwGyJIOo%T5;Nev?Lc@FUQnt zt^GRo(a(AQC1C--P8D45q03uAvcW_r28{$sw^f}`4-fGhq((+MFliWJn1pM$it&g} z=wS!>?c}_a*G|MmI#iJ3!$X8T^gp|adf9YEecwhEh4rKkbfc)QdhvN*g5o116X_H% z_^;0$5j`Hq!|T^RJeIT+UVQFCn723rOrKvRC~*XBT~&=B4s~QVJnaOp*+U3ko8nf* zzX?>wP;_w(^*P=@8Wr$fY*S|}LQJ$?hN5MI*k$?Ii88rjnOd`ajt`?=-w#}TthyUH z(!=362!^2tlcVlFAp*y8etTkwf6>H>BADLS+t(LO_4zOuvt)=tLo0F(={Oh=fGJPE z%B`~jNQTj(7huT^KMm7A@B<`w6rCJN;6T7IdgrCE_>Z!}gvwj|#|xn|otF1*qh*Qk zwMr+vVFOqUSDJtYowzoC(}0I8fZYU!0w7$m0|zI%3E3j)j9edhm2$~FLw^3Y%g!ch z(CO=3kzQV0O<-#X{UX@jAUd_pzLN!^?wg|Tn}8O|MFE~K!H)xP>CmUdhjQ|!_K|+6 zz;X;V*AYO{JVFwP%u7?JRJPNm!NU*x0G#}luTxN)@6De5=IGAa4u1K|Unhy@+L_k# zlHy0f;HSuKB&&Qv_O-ddc`iVjXguI7RRqZxP>&Xe3ZWJSq?}^X=8)=AhL(IrJtt`( zGpGQ~+JPD#sAZbbBfIHxvk}`sT(%TzalwkrPeXE+=X9}>MKSmtL02~OrLiSFseNbC zFR%w)jqI9*k5>XPNsc+sydX64a#JV=3v)vjB?v0XQGigHgGL;cRyY$u!kP~Bh=Q+6 zG1iLS3NFA?=apEfTh^6a-ZK%yvN86c?~PUKUiybuxDMf@kzN?>QQV-%F&17`MOF4m z=yvcozr6wuJaB(F^Jizkwr@EZmaeoV)T6h-{9bfr)n-9a6g<*GTT$u`FQWxs<)yTQ z+*{PSm8@7`0nTnO8Z+$L3ZWzKFz2qSw6iki)lz_ca;NgL0aYB-A|VT{?g#a7souf6 zD&>7+#HPN`po$4LPvZ@teVJ<#8juAvxti_|tsKXXf$!Q^g~ij-4uI1787Qa0 zXMdqf-yAD4zeU7z`E=|8&xg8<=cPVU!W1FUiU}&vO$oQEm0+%V#~rtaFMjdA;PAr_ z;iF9G*9cUbP`Ig(4?P8u3z@wNQAtB~Op~hZJ0?UiKyyl#c3lb4 zT$(f{F}Y-{Q!*%_9uU+ByJ?gO?*!T0a*Sfj;lo_2^!Y7!>2@K&d-=rC)%?j z;Rm}PWCkRzaaEqLN<`8aME>(3<8nV0RI@wMkEjiSS7Ox!Hf%2FPIjD7^?@k^n%_ufFAbR>l_}S$Ej@n2 zA}@0e=Gm$-jXbU&fmfJh_He)jD$dK>)ZPjd-DVXOc+k(~*ZrL)d8k%XZLdoU@OR}MjT$%HJ=0cmIY zamRfWW^ejta$mtc_ufxuV1@Z)k?8ajqXSb&*6LNf13A4{rL(;x5Fo9A2Zv!vD?oeG zU}+U5LRDz%JH-oLSbH%^do4S^nHa$f~q zDolqwqMn7-G5`jIgdb=sy>wMo9uUj!K9j)1l0bjK3sArKBvk8c3^F$j*(w;GwJ`w* z+FJusS;VOrDS>azc8M4;2J2$@L;@<5QpdT&kYZRQ86#v>HVPeL|8%Xi|`=78ahh zp{oflVQxOe!CW+H-uNyNpMQQ7ng9%LV~O%1^<+qDyl~$(D-@#-Z8u8xvjrOiA=6AW z)w%B#6vZIXR;B2S^}W#qg>ev6$cAG61A03xkJ(BNT+)8P#4Ix}I@13d%m@K>m#0%= z0%EcYbn*vG3V@U?7EM|Nq*a;^4{FF<3Zz`i8wPE<>mEzvs1U=8kjc%(Iy;|)rL3xZmqKJ;)||^qd#&8{N?t)z~fI{1QRE$4(rT12p)Ol zv@oHX5J4tt{dA>4^IrC|uK)+5(+fDgiEYnYglaQ= zY6~>3hBn`3*@RG9G=oy3VG*?OwXhZtOG}}p-Jyjq1yB8R-<%cD1Z{0J8X7z<_?Ly0 z0Ei|ISr$~vB$V;MUn{5kNgBsP6Q+<9L-g9Q2R)-trJX{x)i0W>D^nX%39yxoSDILM zrzIx3r5k)O0gF1_APSg-q^mK*ZWjKSbzc+ADkpP*TM0}PBcWinHW>I^w^q4x0GuKv zAgTQrGLw^NbxM_zoaj<=m6cWQBlM7$ln>65=t#OfDgf#f&uo)>6@~)2g=7WqLgUgl zD1)=|2bc(z06D!NoR7MSh0r_2d1E=h?g9({V?sG9(%yBV;*zMMldC$DD(sH-X%9xi zF((wc3p~6jF3Rz$*d=(GU@&-;eIAv97ee4z>|WEumOiCko;~N2&KIAcD)sy141= z4dAXj|H=Y+!Lr9-{h5bCH!Q}5OP_|}&Lp7CiC}ZpthO{J=|kN{e8h@uJr}bm$VNln zKuD*5^di9Y*mZ>!yRXP~#lLA6OrPJbNMRc~!i0{19|CbGP|OH)x039-$vPp4lHjYk=1ar_jugNkhrjik63t7XEE%LUvmvq2{#bVuJX5 zj+R6~XmJm@&vak^jAp9`&}lm%nb5iT@ycuAX`&sR^*3rQTS^Wnmo@SXq{!ugc6{VzX(+d`Tmhq_Kz~6=!cNklo>33^@1LIVx zAx9V(b7?^U_eaRyea}z(2&n~W4D!Tcez+9{(ypT05-~EaOz>fDZyH}gMRiCF024m0 z8z9RF-eheR26Zc@eiQN(R062s7lQa4GeV{LA9x>$9s|PTlQtFh^-tau7=oiU{YN{{ zLoNH)u^)vdot6&6p-*RYN!J8=jYo&ym0N{MPsL?V6LLI|PqcmL!GFM;H{TMbO`p!Z zT(amHxbM;L!OXSygUKtc9lHIon0ErEo$-ohN=|Ag1?nkyPOHZ#_#wxf&|l0Gy0KaU zH35-;-G~YNM<5bgNtQ>SPe@?{hbOPN%EVQtFYO9J-iKZXTg8Q{M#)hxMi=K2<&chO zJPES!MK6TF319a+Y1!Ze3}T^WTNw#l@&GKX0MnGvPb^0axcbxJ@O45%_`19{DX`Iw z)V_w5;KskIpQUg`-)>*8r>)VZ#KWd0kEKSRcnVgm>!tt)%)ssY z+4C+1VjKO{R(^8~WKi&$va%CF%K=TBgt{@$Q=Ke~P_`ja1$NiI>rhavK!CLDSKU;C z6lhk05^b^xAt}8^UvML#0AHn6$dp-DVR6qIo~5+6gq*^V?V8N=qNZZbxe*8GGv{0> z8DeUepPRwgl_h`9>}t0K0+4%1=+_;|!C_S412%dzKV}%KY!qADF^!j$221+DjbAI; zAT-H0`w5VEiwS$Ubatmv)pbTo&?(_$lm^7a`ZEAys~}nyJ=!@=J6J{9qFM{|%3OZ! z?a=TDRud=Ta168$cld>|w3rJ=MuuU%*RKT++;=}$+wCoaZg(lXVf_!`+?Q^{-q^xO zK@5?HzMW7deGY1UaN~n8fdP?CCnSrc;vap&uvk}gT@6XRgZJb`*A*}561Nv0oJcRY z?eTHLrW;m!-PPD+_1LrAu5$yjJ;O-UO8Cm>Bb(C_IJGg!0= zd@r=HF$tZ3O=-QgVVX4}dNrjOq)=+`=xFtI7)`+e+rT}aw_%|qOUGMDmIWJtf`b5I zbQaIR$&8RKFVFMB?d98pSj4Rcz#t4N{K4@!@yU4Xz8f7dUOkO|(zcYc!|+!ag$eLv zzZM!ZO15hQH5Zvto-Q8aI($gs&VGI&EO zNqd%5wFRp4BX2ciObV)1hcsfO>9$+g%_IFwZnb1_6u6OrF1XtYw%WTUjI8{morly^ zV|ys(zp=s3aZrIBoM9~PuyV{5Wv7W3GJPzok|ij{LO$%!c$L2CxXFX2&d(K0#fNG9 z;PadW5Q1pbeD+kbT$nyN=EQ2LC6E3VumKHh_j*zP?~Vb#TU;4cv-gJz@5b7@ari8c zV{}^|Wa6Lv4q80Pp3)jM&IoH5O8=ny479+eHp281e z>yn#_g5J@Zi0-MHmfi-kH29!Ff`GsN^2wPLM`v!FXISuk5 z1`Rp#3WHf3yz8Hu*6)M*18A=x=n4nSPMBcA7R>@N!REE`QoD4Q6D~<;LPLOKwh%lZ zS($}DAE3}b!Rigp$8SR1-*?(Lw3Llr_=8KB2B8YTM!O5}1Ax}&;6TIi#nXdWT5Jpf=syKLNR(h>&AknfGjpXzLug{8$-v=d8(Ao1DG#sP5FX;m2%n7}p(hoGn4 zTHrjFUyw)wHCqw}1Bqs#LzkK&rwy5ZCa)9l0TlfoLe}Pex%RI}+>9PZoBDb~CMvte z40wVDQneXcr|fce%}Z9E4IsCsK1=D$6pO#0vs)nZ7RBYHtPyr44_<0O>hC-v`H?JD zO>@VO>Bjuex6u>?*T-1SQ@zI!8H|6@RQ*J7lOz-h6iI#{r$haojoQUaMFW>_c#jmBN zp{%;%-zoP>T z*QUffUzclZ6UaTC)<3ctxDfnF1SXm)6+z%*Led~pEujPmEef*6ofr}<>i`c6zN$9F zb*Pg{Wm%@tq_Hx?9!pt>D%8P5N?t_)*#hu=D0K>3%uOZ$TaHN+T7Ha_GBTA1N##zX z3o{$o27m-b+V*5kHOpzJaVEz3R1L`U)6?XLvNq@bMl6!#`CqwvxklF7Av+YzoIpO) z!*y~RLcvM;0EPj|;Kp3{b1wa5YsLVgHcNvO%8??#mXJaN9oOD>agm^-jW!Arqa-c@ z9L%Oe5PLBu5&!xTCAu*T5o7BxHWpxcG*m|8=U6u?^J5gR2zc3r*T5co?;-C=isjL9 z^;FiQ|M)44OneQjv+jXFRt8bo4`Z?F9tB_60^x%n_4Hf$-qYQK@iT_wAqLDtrQo4f zNR4WJ@!m&y?*{=$1PwlfQ5;QHsZANE9?AFx=;LMEbdtn z`^4;?Y7=NatrtcEX`@`cszf?po^xUQ=g%>y9r<(AkwGR?b3U?d>UVd z|vD+H42|GXm4lbl{iC%pD=F7Xy)joMJGkJXYY;n1GonKA(ZJ zo#$pknPn}MeJ$Xls(a8btPAv#w3q=YJI+E%qTp*%8|2VL29=P)+FF(MTjE418-ldW zY7ro*C0eYd@dHsPfsYh15P|geCU*D$LlwU{P+VWCgvL8Hud)&gfsS0Kv!c53kItc@ z^G)dcSRXpQ8hMv_yuW1OVwkb&>afz3$sjAKYCc?%K;f@>iK5dr`ge<4THklr_F`y5Orwify&?aSujm1pE%^8zSimKghu|GxmwHH%;!Td$x?b~gR zf4lQ8*GF{q;JN2-f;VmWaqM-M;Ic)JfsiM1+B67E-}~%W;$yk0T3W}icMlx#CdXCH zFvWgm3b9AZhT?BpVobX^Iw(E>1`i9H@QY!^Z58N@ALs~QV)?an4hHM-WI_HvrDhPD TwDzM`00000NkvXXu0mjfCQmq! literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/sponsors/kong.png b/docs/en/docs/img/sponsors/kong.png new file mode 100644 index 0000000000000000000000000000000000000000..e54cdac2cfc3ab17df39c24d20c5437837a7643f GIT binary patch literal 30723 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

h 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 aNn)J05mscJEx>;p5Rc`b$`#9)2K^5%?KE=$ literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/sponsors/liblab-banner.png b/docs/en/docs/img/sponsors/liblab-banner.png new file mode 100644 index 0000000000000000000000000000000000000000..299ff816b8b97e8428eb53de4abcfe011bd15f02 GIT binary patch literal 12453 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�bh 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 literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/sponsors/liblab.png b/docs/en/docs/img/sponsors/liblab.png new file mode 100644 index 0000000000000000000000000000000000000000..ee461d7bcad65f6edd6c622492ad162d33acca3c GIT binary patch literal 8637 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%0A$XJ`3vlcLYN0j|tw?edFE(d{H`gM~vIza4ktrPP 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

=WMDDAr#Fp;TDW7fKOeyNR&^B(cOS7csl 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 literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/sponsors/platform-sh.png b/docs/en/docs/img/sponsors/platform-sh.png new file mode 100644 index 0000000000000000000000000000000000000000..fb4e07becdb896502137ac3a4f673ed368875a86 GIT binary patch literal 5779 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 LNkvXXu0mjfJEqlj literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/sponsors/porter.png b/docs/en/docs/img/sponsors/porter.png new file mode 100755 index 0000000000000000000000000000000000000000..582a15156470bd8af7ebf8e9c05beddea1a7de11 GIT binary patch literal 23992 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�S;@abbD|Vr_Aj3d(~E-cl*Fup6_8=vF_W zAPbrVK;MjrJ-+s%RzcjarUc9|^u8iqE@{GleDV2Jc_#&k1-HeSkXau8Zlp?rRt#R} z|5kA+Wew1jZg2Hx&Ao&Qq09NCJgp+%PkAv{mwUF+_<%p`)|#g5BJ>j0Q~LZ z%VEy5FVw3w*~)ZZxG=l_V30!MBfB<=nT^o2Qmo$f#?f!Sy5vm(0gdCAn9p7OW$tgT zWRgJJTi3}Onu~W`!@|C&)D+N^oRm0u1-r4XXY2Lb@i-Q|X@T-x%9N z^p)U_fBvugAA)b4_9I7YrtOL=t^l7t_G9p+6OM&xk57kduf18-Qg2tqOwJ(CLd4zj z>!FpL^uNP0%YXOkI&NH9?Poqd@jL2r(Wfhh_!53) z8(hZ#w&{kqhrvn~;KPOwhsBE*!;3GztTd1x*yWdB4weiILdQ;}472G+FFz6%EEo<0 zgG*qUWk$O+BS(&e6_#Hf1_uXW(V|7LaN#0p3z_%yM{RlQt$8qa?psL@M~)ofhL!SB z`W07L9@_0Ty!7%bQbtC!GNrI8(=Gh#PYg*W*V1W2#3-oUM+Qt)V1968!q+H?>a7X& z^><`#yb^1j(2$%X2S?GZ!ODiE47_lB^ltqh|z>FEQV7>JwSTnliUdBD~ z9UH-?KYb+ZwBxq0^2#eY@LqH6jd0$17r>n7UT|fO8Zi>S_ua3-l~>*X4^Mp@jy&QJ zc;_zL!Yi-53d2SWhqg7zS6g)zIO3y+!2bL1kCgJOvMK-(hFDLV2v7^gQKUH+xZjf| zO@#B#Jricneipv)#gkyhQ_sLg8?6W5{QBoDfcAn99d;}{Gy6HHEZEnz;97Id)!~?< z4|AsZQ-WKsMI;+~55A@o?SsH^ZfuUF|?RZ{9pt@0U*e41D0={o(ZQoC$Z| zeZQ-Bw_SIFGkM*^84qf+-L!%|o z=JRwVH3yBwuj08~uTfc>nqYRzE*YaM4F5WQ4X<4Z`G$7oT3vtdu9ag6Wo_SFWA8*m z(#lFevZ?IWWmU>$sVdE$?%z!|-VoklHSS;kb_KModHVC8eFq+S>~Z+ir@smd=FfMu zd}j6>xb?QX;7=F)3cmgAufnmP{#tlD1HdOg@e#Q2PnW{^zx|6fwHG;acVJ)%tZBhF zZ~g*!YUVR=*OY(Rdjqb%-FM#wj{EFUaKurchnsJ{Lt1muUoW?scQKq}>%aNdJK@pC zo^WlPyya%j0@!`858AR9$G&D=?;$A*w@_);IPI1ShmZ~wD6tO61hgh9q*^0QE+A?} z)w1Zzq|D#-YV>i3XsUC%ij8&lzuW_3Qj?}&wh5k z^;H)pl`LAc1b+Inb77mUCc!q_Y#{^u;!7{XdB6FKGrc+TDzt+7^}hGM2OfCv5xDi% zyK2vFy6Fyh`Q=w(@4a>vLXtrE@tObWO#MJ4`AdBA!X-&-WQ=rbx)8Im?P=lhAaZ_$ z+JCjSMp{W@y9{*Bql$4LW2E|TY@l7Ae{F4!LoZ1>lrxalPAKn&%Ou;AGja9@y44l{mG{U_*^En^Uk~e~UNJelir<~$FY%tdNo zce3j|x=o^COk6`QLXR~xTYr$PQ$YPzOzrBax=q>`VehPwGJai`UZp&wtE%P0#vdS| zbV&K8SYzm8yU3<`wTb&0f>Gf=4sL-g>obrXf!Yw{(lsTq#gbXm(CECaX?OKaX*}df zvL}T)pj2wTcy*^qtnd?Okyuli>}ML(D%A7D^cir`MVCt+TF5bd`b>Dl&IwbLnbM86 zT6xKm0hm8;0f^h82AZ@iJzHkaXUK2U@m3l(00X;@VMZkNOaKf77zGq0|TE9kty@KbwM>smA2 zwIXQdyQbU+lP7QHrmXlL{|y^93@-e`FX5DvPmoncnubzWRn=BBNt(tLN?}!>tOTr> z6-67nytZBF(p1XQOUF|NTWH4z97N4t;(?r3YVi=n+$wbl>AU=1KoRK`cv@F8*YQszV#*8VEuJt=k2x0 zCL6+WpZ>Ugemgue^$AcXuEvcGYU$nFx%1$yx%2Iu@`edBU46}sc5Zn^IOgMrc~jqW zjce~-d%hF4w}G_FuedfH7io7sUJ)=QkU-A(wKPFstNZk?YZo&@;LIdfLtRiv^S|Q{ z3g7i-rPB;~xn-H}+bE_1fZqvXmkbfX;|M2!5^m2j*4V=I+4h1GGhv3*AWhC zxq&oLo*#wcJuD{62CJB_K}hr%_p##Y?T2b|#@BIwU`thl7 z{;$u1i!ZqnUa(U*6DF(;d)n!r*>j$QpPzHSi&}#c2x0*!CYo=jkgm0Jz@Iq!BXG(o zC&KJ!=D>5$y#SY8ehqy4J7>eGR!GnyjXUnR+f5(sywi5DtBs1EbIxzzAsZlL(8Ycf zz?l&Ov*%EtB?Df9PpG^i=|kAr1)b1MEYx6lwG==t!0-Rb1Gt*8Ut~dq5OBK{jM->VH2hSj4#_#9ZUX#1d@RX4dZ7} z%aM1gkfydQPZ1PjzW*zKVpb}%+x{LiW)*mB+H`n$>SLnqK!XDPc0kHQn)8Z(T&(kxHXyb7>SL|eo(WGs{j4*|X%SARGw6a{ zbWNT5xZ5N#dGe-iK?X&)AAa~Tm^ST6xb5~Su)}s+!Jd1*3wE**>4kQ>=)ChUfd9Ve zGQSSMwrRE1R&hbHTW`BNuC_x=H*D~*pjI8RUku3j8Kwr&C=jy%svuoSSAAJqA+ z$U_->G5>hwV<^AKoE>b8tsV>81v09_eq5J#Y;s=tzG zswb;)nwS^n8;+-*;YMg15vMBruW2 z^v9lh5LAIl{d{~!%B~6w+-e~#v2(E0H3D_p{?URDs%QAH5!S~Y>HJyxqs1Bv7cH>q z7du+h_;hUDv~bb_P3Q=`oM_b{W+|C`OFy8Z^3&nG%OQcj2*gbI4aO>!3@TbZ-JpBPk+l>7^MK z3-@$oUP6MmmRl5suKZ4>a4wPdr}Y96y4;B%^xXvDQ)>+LG=cP0lCVizv7QENdAkUJ z5m281y?OsU`sR~*g!z)QD zH!k#y06Z`-m9Uu@HWK?<3N0F6++?O@b zh)T#Y82wsb*3up9Kt)Q}y_o=g6gyBnJ@`uxFou^usAER}dP=z_!NOY6bV;LFGTy;% zdgPDSAKG;crI&-+9DGN-O zXNtHB!oaAOxxsAto7r+sEeR8%70u?HiPCf_Xf>ep{j`8GzhX`3^}+yS$bEHZ6IYIQ z3{Yv6?9)XNqDj99r=6IAff(JO^w0&`0mV~F9Ue2RYxW}0u-=7ccLmclMZutiWUv@K zo;tFAAoc^?I&o(z)2;ZA=n-CP@9!bx>xZkHzJhB7ABMz~BRiE1FTB z;k=Ztf~0`}PS9Kkk!8bPU*35X2F5k2B1Dpr=$G_$OspKC&?xjKw}0!LiJpw<^ALb; zpv3aC9Pmx`V0jcFXYmO7$gCzaxLp0b%+YOJ*K#t|i~=ZT00?H32|`pY)Zi-gMv@9K zra=alff(KG)auH+sZB$G6pTgFIR|c5wqC5F-(M8VMb%#|1of&blhkQU6NvRs)UAZ3 zWxu}S-r($4%jS6+LEN`kaRpHjt5SVJDX7N7%86!Q)};+n%|G^UGO=%E=I*mYD zndXb>EqNiz=p=4%_>GdJ?y6!S%m3GD>~v0;p7&~6NBeap=w|5=n<@t>26EQo!2t+r z7sLmqX&y>XQ#=^8l8aO;>jRZQ@CrASqo!OcS+wD&sw$qk>ZD*cS~E(&b2`P=Gki3i z^mCmj5ukucS-Sm|YJ)_h!|F6ycmm-RPJ@Ys7b^%+6NOvdm=yR%4T^Thx`4Gb)=R;I z<)Zrsajv;_4egw`0GR2D^l=jK5J`x&*0Qzin6mO(l|nUccL|x(G~d_Jol*1(TAug5 zyZ7Q6zs9B~=jvVB!{=9F^S`KPsT<=)(^OE^oqgy11JWujbpVZP)*1(P?YAUVVG!-b- zNlYBWQWRRo#;7LhwgQv`NaaRI{w5Qci!B{~S3hLHw?CGt_&H14ZXyhuHK0DF5Xlm6 z#-mRH<1*n{dN>SwbI#9yqBEmA!E}sK=d=1yc z4EEGSg$F$aUc%3+i*6mcsYEC-@EilX1u?2_$N0Rr$eWygiY~qfDVpFY+Lwb|?l%dH zjt>%gIY3(+JLNtm!YyxnnjRy!CHYK2NL0a6Ffw})({TIqDU={~^sT&M&>Ly#RT8jy z---dGVp*9<&gJ&eqy)r@S4$>yPXD$xfe@MoCkH|E^X3%k?%=QvJVYh4OnhxOsDxrf>!`gTDT$U zSwJHPxgf)6K4yUv6cCannVO&2_Z&6rw*Y%Yk*!5l$_%LC-6tpSeq5pa_${FQm z@Dti_Ks$~Q>v4com@u#@lkpLK3h`Be(L)+XB?d2IvUivPWYD`V&adv2=+P|TihaXo ze>$-MD$gg{7v(hmJyM=ZO_yL$)uT15QE?L84!w{gDkCFyUoysq1wwtS`>=@XZ7$?1 z-7C&cBdSDIv;t}XZwv-iiD{ae&{z{r&_(#A0tyv9V}I&&RCzH>W3lA~5!}9A z73fVIOgowSQXov?w3t}VF_e-AukwhmUQ?ZPxYomPHNdwZ9FnA3^XK{U2dN2vh%j?4FeB^1K%`Zq>Gs*)*eC81XlO-j;!_9TL(7U zXhJBrPTQAXehu!q_rat>+Taf@|GlHlXx>=Qn>+#txJ{0JZXDd(seF5ROJWsIy70e! ze%fxh^;Vm~@ZoK^?z&q6vV|Pn*M0ZdjqgZH={TR~Uw9d2JUJ@??Zk;2!s=sIgBxzT zqX=M62MmW8P`d|f&-7RrP2)^K_-U~4T(q^`SL;ilf5)z|DU2GmlI6GiV9Db7LbLJX zH+Ls|%$j+>yyg~uO%#Ff_`HVoEVZ++N& zv(4PmM)T*-gGV2I#GPx#JH40}^txy6Rk8vLu?9JDB`{iKY|XZ7=42uzAe9c#AX&L$ zrJ48MdsjIAxR1LH6e-Ga=(7~{ck$v<8!0w8Zp9;-;Fok0pI=pFDw(!clQtZzafMYXCs`wnFDhz$I_D40RgSU-jx0VU0C6hI4;)jP#A!e6>~Af}@T)*;X+CU;5H}-9Bo4t+m$L@R?74 z6)wH(Pw>POk6M~94`2Mkmtni@wu2X*p98PI{wl1x>Pm3J7mtIxr`!!Ef9ni*?X}lp z0qF`TfUepTgpT5dQ1?3#7wrPvi@%dWk!KOSnxXZ4`p)k<$bp#h44nT%F#4GyA6nU1OZyRJQCf`>KMylN@$0#8{angL_`QS}9L zK_wa@sW>G~A~Ah>>hF#_zdywVM1{eotF#Hdpz#dYVHOtvcEW;wWKBvC$8e~3$Iqc| zw%I1I>MAS2g@3+WfwyvT2E+jou)Do$dwB7sS76OG$HE5=-UrS)``5sSA>>1U_D|1) zKVEo=0>vMJkBNtwYUf9D_Lvp?O@dCm951$12)=Z533Qc@=0vc*|Q&UAYOij)nM+MukgsY ztQ%~&g`?ZZk;}k(6DGowGp2&pYU9UEfR$ES8Sc3AW_MQDH@|T@j2$}$zIoEutb({- zcyNnJo56R#^DX$r&wm6*e(czAS_)q#qjpAl(LvF2fGHglOB{QSp^2I^r32{ zvxY$OrG0|5%%BO=dSV&|vxpC#kOm5AS^}mPOYB1{Ei)W4r|X2|tgZ@jD=5A? zGYw?X@v(dDxiegSHN95lI@o*9U0|gZmrI0+2AlLZoUlTh`{@kolTQ8-tUZ2BcQOdd zTO~3+DbPEi3t|#I&pp3d-Z%tdjytBQRK4_HyEP0pdB^_N)V~=XnR>YuR+C`aWml8* zbLLEi1qe(;K7ICdp|f6HrjA~*lo96K*J-q=ro`B*@8fuRwXV`K(GRo&(OG# z18P;2ZYybPAYsUuGZKeKf&9GduD=!j_{YD&e|+R1`17AHa|eZ!rX|yE+ikXhU3S?P zR$X}|c-5L8H{UV^ZoKJES=caY^hh}3@DIQxf4>?QFJ1!gd+*+`sWlC$csefT%75J8 z&Uw<)0?ZUF`&O~qYG>;k@3_O(FnaVTc;=aB;r2W4g}dA#>BefR9bnwJHQ<5^E{Xj? z5RH8BLHod4)+fBy_9Ll7)fI1OP47QOj2LEprgy-ed%Y9Jj#9;h115@UH9K& zvQoN@H{RT8^M{;Uv&zb2oT8ce)Kki815vPd-+dpvXx+uhlPAGH|9NvpT!duGNobe~ zKs|Np^dS0wd~ySo1{P#Mi+_;(q1HwarDNlTbrC?O00EE&ee10^_rU-=*ZbuYKLua; z(y{L3#QW}l*qR<4Yo;6rCx7#JSYf$korGF;^k_Ktlm7vmZMqTs?CjHEhwUfB^Uu8q z3oQr^|H#4c>;L+J9f0-3uLdPV=yUAqW8g_UZ8HPaW>s zv4Rao9QT*I9c_s~y*XaciwEFKDL@5Tot4@2-~lro&TD&91r>$V$aD#Q>jMKji|8dwsO3UlD-ofe!=H~dd zce1|v8y2LG!Mu4d!PB$uvO%VuY_MsBS0MJkInPYB{_Mt{*3KG0SZmyd&H|h@>rqRm zd#t&W}>E@twlK6$u(_D^?j zaL}JEwbDu}z<>Sc_u;E2ei}Y|{K@WqY)j=B`A0warqyiA!AFn$f_ps(T{Hj(9r$hw zpyOc9voBgrcr%=Q((&+qt7(7w^Yc~z5VqTPOZWcV>ubsb7REue!l%ocm!%E0`v4wJCh@gwx%tLMcBD z@{Kp&1!w)_WNVq+Wqq$7J74T1E96$Sg5}%aImh~Mqiytcw0noJV+hM^q^G6Rq2tIS{;ciyq*4yuK>FI1QdaL4>zI+Be z`0!(XXPc$Z>8G9mAOF~)aG5pz->@1v;X$J~(b8wbjo%A1XIvX1&lNm5{bty7vwf|v zx)D4(XR1p%=h;VL`yCF36;>Q;HL~ZmO*YxyT6{0SE3ZCl>v$QCJn}2nOy1bud(l1L ze9|^{CS@+ndU}TY{lxTXRuDb`pE%|-u*Mo|z*SdY0kh}KiAz&$fBd_w0Gcdav0kcl zRh(N7(J`Pm59xVx{-{{`q`n~qiv)X!nVT5#B52Zq0c;3MwuK-kAd<|*wv zciGMgu9s~fu^`k|N{I8gzYxUramkJx zguxbY6E+*p#Hxvj=12MS9NBDU*NQV@^3YVpxN&Q_fhHd?E|v6)G^k@!?s>@hZ1fVY zS6_SGm2>N@_jnD9to6JkyZ62a-HW;?GJD(Y_eSE`za6X}HfPRrb_!)$v0s;6ah>(4 z_j1Rr(o3z6v0$FO`>UO{c*^$IzgOu` zHf~@7ZDg(&K)}WfL7$^Xjf8jZyp^?9ZgR9{Q}0zPfF80yIpBajt-t(F_r^g@lihaR z!9}b24gqM(Ehai&`zL3eXMyp8ue*wMdv_&TJG<<>jScWjgI8aDJrOc|GAGeuM;i=V zeT~&5g8S&S={~KA@!A)yrA9Adqq>=)`FU6qX`9i4b=KV-UVUX6yz$1&xbVk5pZd_H zu^(J^Sn**;vUK%NygYJ45RLHn8KrKOFJVL+zB?E%2T1{lvZJ zO0j}+SCp>{ykRHC5t2R4;$X+C-3^?c*s9jjbNvjp38|hV6wGXNKHExGqTg(TD67~{ z8q_mRJ3&q5vPotMIIOaue9Hx#i1F!~^W5|CEdtz6H?RmVz5JTf?8HQ&6qk0z6_$64 zDM)L_l}z!PY0W|c6Pbzk-~Wg+T@O9v02_VvQv`eNv9r_MbYB7vnmqQC-p70FXHQZz z3MNo6v0t~qnfQ(k;8VvO24lvoDrOS3Z@l$iXU>}K!0^HgFTts&|I`Nh4utQ2=POQF zk!vyak;mcI+wOtsPtNjFDt7}wR(vr-W>I;XH(uG&k%C@)a;YyXT4`ib z)A|5^}<@ zzG=sGgazSbJ9d6bX~v9uV4H0Yu9f8SrlVl`^nXd+)2BZOyYGIWoo-s$T4Bq= ziYu)O(;j=}y;~XP@U*O#y2V z^x^bYFf&LJFEe_COG~CL`FI__>LaYu@ytPQ+goBan!Jt!J%cT_Q(5$0pd7qm%Y_pv zbdkA9$FBa-nt5k@`^(Ncm~EMs%=}w!z1s!ZlAx99Ke<5j-dd2+!(UYI9((NI%+TNd z{$dwhC+$SwCMG`fC*KHQ_6M@xap!$Dc=ezS1dVgA_uSY9+jiY`dn;7-hf_{H+Xc2N ztYkoiW)eiQ(dS*Zc8qrP$3IvYM<3@mGeMiOf z*7UK%R`?`$WYQJ~SQq3P2b$S7khRAiAG3kPm91qr$qMEfcH9?9Tc3S)rq$%H!lX&t zTcNzrS^&f0@h2XYK5j8-E9(X>hKC=1P|?#1lb2q81^(;Y-@?B8>}6e)cfkc0{!Oe! z;RzE%Q+ka&^CJJQ=}triU_ihgS~#Ip(_>Wz&)e~LR2B0*im-mtnx~Ij4e-DNk680# zO}8jurInY5M<1ImzD!_cf>CsI?AX=d zX**R>xdjp|@zBokJ>}kkJ9?Q>cDiPvB9{M`d}j)*J@@=et_`=`HpOb}SKKrXy}f_} zMgO?!Ce_Cbzy%rrXy!yX@O|%r+pI5o(ciB0Qxv2vu?4cWJ22^b>(e`X=h*<$YgQXP zZMEerxaOK$oUl9VCnv#&4%yF2{D-|?2Qk{t03y0k+MRdY0?s|}A}e^T%h4I|{#9qt z(s9693r8RIAv;&O1N`h4zjI@t+noB>SQ}^2{z0Qu-j;RkCjm(9-f73l&aH4e&oCaQ zN9EH@0%>*<*Fi#*{TT}W$ZuW*51v6@+Nrr!Qc325MpfM*E;KN z3%l)coaK#;t>&L*<0a48Ak#d{dz;v2o56z*T%YvsjW=Jl5$S1GXl@C#V{6vT>6T~a zN?Z2d|6muqI_`5HFDf`<$5(A|u+^@d2~MlKSo?O8U3K;8r2N9d^RN^-T_jQZs|5@S ze=cnm&9|E0tNvSU)m7lMQ%{5q)}P>30?oHfGvleJ-68>+29i8Mt5Rq8*=JX)b@sD? zqc=o*Qh;Rq_%)$reIs7{L4Tk6)JNQ_Hm5!^-4Tu%t!=e6&7Ur3r*01akN3+a0uCyW z*-XKvhb&N^vhAUKq=~Qp=WVe6etWq2W}3I0@zgUiC8XcN7Y}L+nu7ns^v#15S?m-Dif_H9q#~4Q%H*!+rLGxTUxztg_8YT@P-v8w^+KrX6MXzcI7R$QR)|7 zcoMeV_5j<))og5Jx}%vsj_AoJABJ~K+zQrTe<69 zWu(82tuMU6hU>#U*0LG2LX)gTx0NyoY7=F8=vQt%@zhew^G+3mU95PkB1p5p6wLZ( znyv!&fTPIRbB|r%J@4Mt{T=u|J5BTT)T9=Hm-&WwSbuuYy>^B@tpMUc9+}7={?Pt* z3d09`Xt4kLqN}WL`VRQQ=Z3 z@%yr7+d$XfFS{N-`7$olemdwOls?Uz`8X`I%<@)1tZs$+w8ScT;DLLs`*)Y^+ZSxW>SM6(y6f5~{mQnF zYr=aE*blya`pNM8^Dn?9f4?$p`Bb~-qKzEQ-IonRs%H)4ub@fe&U=sls z0KH)0B5x&BRZ5k>ko3=A|9TaSwL*iYPsj|W$S?`33opDJw%&R(aOa5G{Etn05`OfP z^V~*-pPqS=)htWg)C>tCGNrG%_BNR&y5YvVZTlv`hY#HsKJfm%-RU0Zp8t2NS(br| z|Nc+W%1)cQ6>a3JqgWXfm^$XDL!DM6U!P3c_}Z0VCJSSGUzV3q&b9G?*Is`!Xb23! znef^iTi0)Ycd^s{q=k308kguzF4UB}AA~>H7{eQHyyZ0$nVb|4pz-isg=n?qi z1%I*r@T+mHcZfFoH3J~l3l=fQ_qeAjEbq)1D-0%XwtLs`R8Rjnd(P=c(i`P%kV!XY zp=Iv*^XE&t#J7Uj5%S&EU3V>5ee77bT=6kG<>DA3Xb_U%7ytEt*a+>#nng70N9a#ij^!auSQpM>7ZXCPtoi;kW<^t`+PI0`UV0vefCU+}!Vy#cx@9 z4M2V+3~tLBHF_mW+l96czsY9g$mMP1d!Y+p8JU}kuo*RK8P~6Q^WLm)tO;o;7&m@A zjnRrOu0RVqXpMs$RAFNd$%-nIt*&A&LcM(h50sXw(Q_yb;;Me-h2DTVN;(T~*NE zr5P~X$?fJ^j_?m=4Xn~-W3m}NB+{VPW}9?O4YD(TZCHSOsaD$qU~sVIK+Lbt)P(bE zPW_?j9Yt7qOQ0eSS4#7+GpwIT0W3C+#iRt?R%T{tDX<{YG-6=X>B+(XU0*sugSlgK z&;!FAj*k!oS{3}|^rdE1IPF9SRpJVu7Wjh(A*^VafY_Hzn8rHdsxWRhD*u;2 z>efsL0nGEADCbXCferXrVSn0Br&+Y%V5mtYUU) zn}7mRK!|pZWzaOz^y#ylIq4;&f8Q;(gEk_+aDa}Zv6^OpkFo7Yn;bJc4NHdyRDoE$ z<0I4)Mr-8A;WmJ@y!A2fbf$R(pY8+uh3X#n31WY_0oXt{RF;SnH0_pH49p-MoioFDhE50}A9zXdfjiCzUhI}n^4Z5)7{xvTXw8eLciaH*E+C#Fb1x64Q!IiD z;tno!Cc7Vt4!bU)ANq6&UXi2&Jv`m$re&TKBvDncgd1G(PQkB7XQ6>xoJk)sMz>!lbAY>-2$XFq1^7Ae+pg*=^E3!Q^w#!~2_c zs(f!OD#nKd#M<;>U@*C~pyGQ%9*mllgb@L)+5`|BM6VERrq~^4r%5scMYqi5XGEXH9vWiDPH|}15$3A__n~NUs z@mL-7Dk(59(@8D6VQht-V_`8w4th=N=vQOZctH#LvY65)QJ#8AkO3YK;CH9AMJx!5 zpcH^=+&MUvSQc6IRDfA1`NR`_ybWj& z^Qo3ht12!!alNe~fT=9Qrhe!@-IG_wumu5OdI>s;tW}~Bg`E+?n>ai)G@tlsB1Kp2 z59?u4jPJF2YJ!TOO)gBoE2W|r&X{1eY1(&8h47uqd zjpp8j5&*#~a|oQ!60@z+E2s3r3*;bH2#j%={K`=Vue3`GB9yh&ylql^+@S60{JWMg zx=-h{E0;%U-Lb-zV{TbG$|h~c#Fvag5TMw@WafLA50f^{{ipLpSz96q9k`qln6*`< z58v}zmmTIPh*A5ZntwqV<$+HPDt-w37N?mrB^RtP?hwa3vds)w1}`=|)y#+3cn_P( zR~?UeQ_UorI4~FgX|paVmx0&uejXhNM~l#z*_}^3FyH{e=TCDJT;$Z5tb^f@JoWN5 zOq#8ruLTfheSpNu(BO?}W51)>9hb_H0E(I)li(3AwIg>yPl>g786K6>Qp@sMl@Hpv z1I?rMHcA60@rFS2D$%}`2$vWf^9S;|SI8P8TG~g^Q-R=j6?kAWaNUu@?$ab7^=7n* zN;EN<)nLe_CJnPMY*l%o;?p{so2bomGrSJobgB!~IJ@+kPcq(*3MSMYrkaBK@U2m? zt_oxME{Ad@{B2LGHmaR0$(2cu^jQzEVkuuCEwah42mw*^B4)q^0L%!hn*)jT?zk7I z5n!uo&@njyxz*~x05KiS6%TfjiFqeo9mp%?Gn=4Apx7Jv7eQ%LOaNL7d=)-@u3)ZK zQ8TyN?clfjkrh8YFjW=SBm3BZ7dX5gIvxrbj%sm2jD27aZZV-V%`5#;8r(;ey|2rr zB+tQ99HGTg=)j3?IVz7CrSEvgGgT0dj!rHl=YfjKbz#}c46NKFJroHTK|NC{+Lcqq z0Ga1I2DJLl0750Wu!Gk*dIOqosqt=bhLgFZ-Axn-H{u%lwt&xl>V$dZjtQ^wG*IXVC;$ebleaJH6DYwHi%>MG;s%kbYKazhQ$KFi6^c*n zH*okRq8J1YgW3VM<%3;SE7g|NnGSYby2y}<#_UH!6bLLR*fe*iZ?xJmYHAGdI&0eX zfYcP-MIB}LG%;beLY{LV z&LsLZ@`VB}_mP3haVFrNYFKe4$un+=Uv;wH(fzc*SOo1(HN)J>6-fSk5I^^fQxb)n;TeoAP7G!QH zw3*wbO;BOtq@T*lkUr{iqCj%s!(pzC#&}KWt$M%kfsf&JuSEr~g)0@@a(*g-z8Z-0 zzyPA5ISQ?P-NeeN;=&NW?waq#9Z7@kTyM4zTAt53nWaSd?S%JQ$y_Ih-!AN9{F&Em zj%uwLnMVONJO@Qz&cmtL!VsTZxW2bQ3l?}_3e#X7a{Vc4`7uAcWh6rSJrsD+gW2V8EvIqGdc);Kn3+; z+@d~>q!E==qU){$KEMak3<{tsUGiPkiPwRMKfm==! zSFNClEz>!WyG01TT&JB#OAQSApqHA0O1VG{1S-L%z?*345TxR?TH}G%1|jn9rjs04 zd>PIUc3}1nqT*t!>^8W=4Vi^H6TOaQSA>qx+nmcl+pEX2A{Xr)toGw&MgA~sY20O zm#UK32bbvj5lmk+sd9lRG)!jldWD&yr;I2Q1w#V#Xr0uqP;OhBs@$RC#f+5|g0(yd zc@ecBPWC+-Ch8x=OqOWv%V4b}TF1=KgAfM>gqplsh67vlUS0}pk&n4#i3f5O%xSKg z0xXV!Iq2n95OuUrPuiZeQ3F`8iK!4{p(Fr`0-#cUFtrnKaR^eyvy9b4K zGN0&vr$$B)Xu;{vS7}MTf$Q2lEue}|YD*xikl7u$b?q4&pP7o8mS@JVJc94TV~%ZnxG)4j}VaEaf>*D<1r>1-v6Tz4vEPHTqKRLDT6eaeym)4pe< zAqI0UZoqF3_hvJj&KS<;C2dPv`P^VTAPxrqw;g=o0KQgRv?hb4YU#+aqElEJ8P{45 z3&+~3lQ_aEF>*DiBThJU_#I4?)<>J&`ryE^9PBc|9Mk}ffhnjlbe+s~?JHA)kZN^Z z9%^NvOlG=x{yz%R%2AZx8d*|c-fDA+bPpQVl^OW-&PnS2e=R+S`56ROXgi|;lqcG z5TWBD$!7Ms}-h`yx;ABYlgvKt0O@yE&N&%wQkFSf_m+> z%wu9a^2Ym&f#!x{wFHXFy^I_JV7(isO=hiu!WX~dA_1U~7ywf9*)%YJU1NK`U~}L1 zliJ{4Jcg;|)8Mm8oow!hv0^O@kec(geB4tL@3BDj!9B|3rGrs(~!5Da`E2Q?hI{zom=)Ap?ey@d9l!3r$<{o!0@#UTb7OSMgjJGjRcAP9Bxn zj?y0OI@LEPV6B}|P^H2LGN5yuf~`Wn+R5>%8Gz(F6Cr^)Ch0=!)~gG}0Za3D$jhw?GKb+K7dIhVGFb{JYlbM12Vva&PfD@<(Dgms& zI&SZ@Zf9Je5zO!)99RSME+`lP0XhfI;*mX3n7PIM*ik;OsRJ-v32-?*G+db$k6;Oz ziO=~gsUQ@&Zz6bEpm)4WVvN?D@l%%78m}Qm&nhfwODYNhO#0H%faNk3pcCuDK-%{t zn1w>5Hu*L=G&NZ3c049UfC6OA-xc72NTv8tgFU9x8aoOEEC?5@YcWWH!0q9w0l+FT z6SX8GAd(hoS#Y*T4ug>+N5KGTpCya@d~ncQRE}Q=(h?1=4+f|SKd}ZPGhvkrHh?%S z#_flo(fqU#-5WtK=jxcCH9V;3Rhpz(TjBUz+LzQ$08GKF!7yJ;X;a_5-R>my>N#YN z4@eZ6mu(vF8*&iHna(OdTU#9mipl|)89oKC=pG0+KwrirPt|>sl?RC?i^?K(3w*MU zJ3N4zRE0I!6)!NU@j9deC)1Wn8>xDAn^ZXv4zp9`Xj({-4B@QXX?$CapBy2|?J-JA z3W(!(Q8P6_K}~Zek}MR2NoD*s04=p$k~~bWVwo6)ihfB{0wAS{MblMEs1Q+U|FG3k z1Mcwmkru=w!(8!VcdsL7Jh3MBtGU=G*3va?7sln0YLNh93CJnac~E#D(zI8n6Q{!b zc1iD(w!@q(X_r>`P2dKnfd{-M9iZJoE#F4;nxy5Xqf!m*0342o^#BgOaJv=Gdmfaz zVFJXGPMDt#n%DUl+n^ zG<~*}k$eIp2~@_mCbeW3@!=~O`e^!^%w&dC$k!|f-74b&El;qP#0Rk=D0HeED5~-L zMghn%S0)S)YEn+5WnPwlD0!>oR<6Bc-IdxYBhR%K)F4*Cf?5}XB5cF@wwY=Sxo~_*N`Q%LThE;0Fyq68XHSs1jW=` zf_j4SdAyqm2Nnd%jL~K4g%XKGPE6={UT{3~*q7y3JrOXy4@e-U01^eZoYqw!C2$Xf zfEQ0Obvo(Eh3OjuQ*+us*Vab4y?n0K$o43qc`I-|ft7&m{BkqsHLwHiaL>SDZ#3PD z3oWX^038t&3{*bZg!21nbSs$Y!yH|_Y3{YJ?}ryIZvF(rVhzXq9We(>(<9-L`i=T- zOrx}vF{$P>2BJVj-xj@5BV+S$@9F`*NjD#lN4DXp77iDh&FE@ljyT!Cp-;Zi52=1o!;fG~Xe8v#ITTc`tr zPpn{I1z*z>&p1#LIEgt&SaX_=4y7Y#{Hm=%=S#K0N2fiA#H#3MCLpX3@w>-x~J1gwVDD?832%adhUk`fVq!KgaT>-t*jMl zpPMruWO`R2e{6qJXNM!>(%Mw5DBhBmnAphFTn@jTg6Smv!dhQV(wdU8WMyRv!jG;t z4{}<%FH|!XADWdWLtt2eZVG|`C?u1{#GWYQ0n>UT_RD}TYGfri7%*i3`*u}o(Aj?z zz=Yqt5rTqPWIhg~xnj%6WKPo>YI?h$AM9a{!Rc-7-kc6c+8UD#oYYnEj+aW&DhjN! zA6&V^`r6Kn^-Df!YRC;DnY&iFm_dJ-K^1~eZWj}Hzu1GiElk=80)$WZh{3D22XH$E z$5=qPWs|LV_LXa`_{`wmQN=r=z(jLbM^@`sDQKgDJPK5`{6QGYyNv?{osS+icO>f^ z{2-(jfc8;AZ5~j(?Jb@N+PG*$#XMNYX8mZqM2q@-xw146@us!276nv$nwJy_{wVmzEPNMkPqf=`hp2;klTmP}9uOSIU+S29uRdK^LL6j4@)w zNWbXAow2;w`;Z}WLA0d9!3V=~%#PAPB4C1f&%Us1kdIQ!eaJb(6{_Q7y(vq1$()x+ zv<262YwmVh0oYDsGJrjZ+7^7|2lGY2EY?iicP`)Un^pjJik!%ty2mm@( zoQQ5E95B&YCC%*H%UqN4Ge6@(oCfAf60n4nWsQpo=o4+LTL3A5BdC&;>bEwa((;qi z8#Od*R!)>MU93MnyQ-2io+5B7wHt`icK9R@YmSmn%;q#N_;4U0O-KQ+fyI96X|R5v zH~ZXdwsSoxjiVJ2&tR^?!VK#Nj~Fh3sU1$RB+G#4=QlG14b1TkTYYC3Mc4Mk2xPS9|3GMGl{n2;{ilDB|du!e52df|N8v@`uqR#_5b+!|L^nv^!ESw`~UX&|MU0%>hAjY{Qvj& z|MKh1XY`Tza@|MdC)@b&)i_5b$z|Md0$=~kB@A~cV`1bez@$>%l^!w-Q_V)Mv^!5Ai@cZxZ`0Vie>FoIP z^!xDg`uO?&^7jAs_x|_z|M>m?>FfFF?DqBa|LyVp^Y;Gr_Wc729PaY_^7H!f^ZoDg z{q^?z=Ir_F@A~HI`1ADr_WS?#_W$wn{qywy@bmla?)dro|M&R*>+t;U@Bj7l_UrHZ z=Gt#J_37*W;^qJC@%ruX{POet+SyU^Z)7U^!D=e{Qdvs=>PKX z@nd`F?(zTb@cH27_3iKX>Ff67=koLQ`do7E^yc#T^6*n;_Eu{2P-6P?^!)Mc@AUEX z^XvEa_4?`U`|R%aW`E`6=I{6R|7(Te`S$kp@B97q`0MQT{PgbU=m@ap#P@c--M=jQ7FK2+fO=ITLK=Fips)YsxZLsRbQ^ylE@i=F7% z+vfKA{=CKXUu1H|&Hre#_3Pd1xx@eE+u-!!?6|tcfsprmkK~e``0)4t#m3Qy~2y7_m7^=*Chdw-1~Cpe<6=drl(>E-;<*7BUD_WSw$r?B|k+4jlE^!@w) zMO@B}!~7B$Dygits@DBxc-&1=Vjw0r+3o!Kx8VBK?QRwcPyhe`0b)x>L;#2d9Y_EG z010qNS#tmYAvgd4Avgg=mN8%e000McNliru=K&WE4*Z4T28jK zoP1((WF!(9Q6n-EbtmgPFseH`8an*`j%tj@svpxv$Fq;sKl|)o{ncMRyLWGPc1L!7 zeSPj;3~sXa=4NGO@8xfhM=l1pIL^&AaKHInzNkIYr`7jm<$eRV+;3pu6pyrxjNEU0 zO&xHr9X|fG%<7g5;_;T1X^z6TsfNbLYtn5g4)xt|3$SMd50t?a3!jww%Ph#d*`|ToH)@-PMJy+YJuE zZGg%E_xs69&Fkws>O1xV^5n_KAaBQB;PReJ&b`^9@?J$FyS<|3UIn)|jd-8){~_M1 zM1BxDy;Zci+U5cL+?^aP86qnfY3*FfEBDN-nv-hCzNMw{;L6RLU~U&XJI6ZPowc4S zKUn~}8)#%$xqfel>@+jfSJ&qnGWYU@ zXQmZS8+UJ}^0wmA;55QaHE?7ws6$*471>#u$l6`oJamxTTtj(lcGhUXnVZm5JF|Hc zm7ALF$1Wb*@4UHx|IIEXam3lRJTemXB!$rL&;FXfxw+Zj44s>KMgqIupfskwK(D8* z>m_;BXJzKf3(m?l;MHad9i0UkNt~H`Us}y_yeTir^IW;}0w`eqQ{X9avy{r(Q!z@- zPPu{0p7D>Mw4|BwBM`zTYY5sRjz;hf^&UHR5x^kc@5C6vV|l{aiWsJqVP=0rLj#eU z1)sdtf-J;HQq_BzsrT;f=%BCRfNx|Oame1%D15TdRndimER{{M(Uei=4f3VT ztosq24(zP7(}@dtYoIV6Cnu4#It&(z(pU0U%}JrHVIjipmF2PCix-b|Id8tOe?Jv& zZwGPLL~CnZRh3fJFQgsK&5;_7xmuJ5Uv_rZ*K@zV_p$mcu{0m`9WZ^p1fb!5M&b+8 zJWKTqn-UrXJ8fe{xw+LYhnONu0wPmHO~dnQ0JKI}tD$2HfIBQyIL*9M)ZHnt;NCtq z)YaPyOLyJ8d9!Q(OWjv;Q| z+o6?hKk{5hy&@x;HVoS9COkEyJYryjA#Lf+!f8mK(*l87s|28SS`N(2tgltPHMKRh zwKXj#w`UkE4+L>@jby5p8eR;1wQG5Kxodgi*s)_sTKgHr&YO{NE6P%DdwXeBsyQ-U z1KjE6>79|C{^oOM&)$W|)ymz?tXCb`5cuoxH7gaxsw<-+zpIPH z%R?X@a~@|5qZT`nr(18{47ZlXsv?od^mHU5JM8<<{;w-Py;f7x{6IWQ7z285HH%V1 zeZACc3Z32YHR*Q@Sz41v>+;wj@Dz@KS(y*`*r4KA^$c2N$=tS$C$q%zOj@}@4(_AV zwIZwGPU0&{;Kn!;wgnJ3>42Rp@?QVA}mYR-CM`|M6 z0(iQm|J2!2r>!`wmytmg(JZ%uFl;=%u=1; z{SvCx&#d%`bSjth1zJO9u7$9*Cu?gVE|tV+VGJ7-^7Ki39f4abv@KQ37vH=HJBz8i zIzh`U-Miv+wzjs0!)`b3=gy(sqPj}oNKNc4fzSTz(zRwKGVWWX9)lTe=(BV+T9szD zWz@J@H6mK^&s1GKjIF|1Li0h!P3WvmcJ;;d*(}KjlG~c0U#-AkTN_1Y!jsw-Doj5& z^R$w-rKPT=VrYNo#W&v_1MXNakjDVswZE%tV*kN|?d{HRJ4G(Nc4HG(d_CO{;In7X zUb=GSI?guZRC6;bR<@KUb{{Hjp>AdSWzQ42s=3V+g_U#3ley_wDVFI$aqd6Me4u68 z{8sr9(*&J{xKz0YN3{apvXEhDvRImUCGG=P42@yD`Q}Fm;fY?3G1wZ+`#1LAJm_@0 z+m)qn%n0qYjOJ+qpISe4>eQtxXaC`6cUx-JdB4BGkj=RfnCo}4NCUT8fwL-ScYHl_ zv+LQETI;8_Wo|+lEQW_c|38EOSfgucnHGg>1zI#+$Us(B^zse-dQ~Ukmfw8y-L9^& z-iZk?<4kW?*UkOC`}ZFVJ7MQ!t2>!mx(3K*AWM8q*G%`Hk^zM;UHQ+uwY5(?L7n|u zMP)EU;>V;iRr@J3<@QtL?A&z0F>LNLAJX`t$i3ev6&g0T=_HQ((b_0=C216H#x{z3 zO9gKW8MWAPXzI4usp&HOd-2VWAS?1!Z?BRW3iqNKhr{q^)Nn*_wRx4z0gWtf`M4LrDkbBcIJ>=!hgKZCpX?ft>Hf{^~ zjY1cNeBAOO{;jQx)^4u=a81kqgtjL&?9{PikhGHuU!=mzy_A?DPcV!(_8)W}1a6YR zDFCN&BO?lUP%M4w>^gvvuiuBMFyLxrYXc{S_2Ohn(b9zSkm=fxo4HB28H$>m=_8F% z$@+l0g%(TUW{5{2C-4L~+9J4O?A zJwMYb(c3D#c$_=0SsM2%rv?$qckf>L=bxRMW_|KI92QIV7C?9Sce33Ad53}Rc9txf z;D%7v;&q#VTDDmX+bot$*(zqa8nEzv-p!3eNf}j|Rw!-joE6)k#-XM8!Qe;4C3a;(0eo}$__k7H-ZBQot+CF$w8J()$eX* zCd+@7_kj}@OC7W%X>A3NE66H{Qg|4>brlu%?G@ulT9bG-)Y*w#Oo1;>0GtxPi#j}p z0!-kc-rk|*p|P%svHdL3$>b3rqbx0KSCY zE7H^i<_5=>hU|t0xVVP3X$vs3nZVPgMmh(wMG0y_=Cx=coAz{?w9xXCdLrfAU*=-WYx8qg~>X1 zxTUVO9lR|gt>*@3){&^i(x=vMFn4jBy>$1=U1V|)qw(5ez$3f*v6^c7+CW*eP^1hU z21wnorNgjSo6e~CRN@u_{$W`QAC$SNB}&f%na%~Mq$qiyE=BD)T~}w{Zl9c-%b4ix zI@q-VjNXZji^nbs@dh-d!ec|Y;dqF4=J7FXvCBVlBsrEeZ{NN!I~gsl3q^4;+tFj6 zn;F~$UWcVM;8Os;a`*0?>0(YA9jwV-C1jf{G zNcEPDL(8um7&_KF)WyE@m9b=1#Uz1eCsVDZ(Wsl7I;HU7rFAmH)9V1n_SA*DSI#1R zwW!?1HpI}-@ffC3TW}1AH&Ee*dK#L~aY=FuQFZRiYS^@}<34dyVV>+mLQ|(atc{dx zquN)XdR=L$ebR29y#?U0gUc5$ZY=k1On~ESVbJ^G9!fBymgJM%*wC96LZyzjCB%vSR!8$;rua07K+bH*O=X(a9N6 zcoD81TwlMleo7QRbxMG*oL|3k_Maoo4wNT{gIWUlvA+f~YI6e=2647JZISG4Nb9OP zDeCF4vy9@|*@aXJyl&Lt3xk6h*J{7*d5jBf|SjC zC3c6v4TcVf-;ygDKUjjuD!`7WJmp{&qR|vgTfvPT+d8|TQr=Wbg>=dqPJ}|C6ck=Q zICk-(M6NU*$2NLdcqa(lIJCiY2YMxp1vtL~y!P$zGDMyOuedr^3R6dCZ%|RV7 z<#p_?upc?Uj!DI-vp>9YchEtRVOdeKx*AQ0RAX7>11_!v0@Uw!G;|p5caH>zte_R@ z0wraOUAR?AqHilwN>TDw)P>YxT`Ck!grlKo2*CT9w4m(Ch ziQiFN#P9HS)H9_oqy;c&XJ>7*3zHCec4qL-;LPCMeT8`^_gMjk!q{Co`@>5P=!kNZ zg~*k;gJ0S$RHX)sUsRSN z`Tn;S2WKGiojdEl=3oq;;xzdWzrp}5M80t4?lnI9#2{H}XGh2HpL_Y`m!Es?xlgib zZG^W4)!ETuv2?tJ@vU#Y^{o#KdCJomO`*CMKY#E3kl;<(p(Y+69j>Strk89oZI#;F1{QfD$>+60Q64I~;$L9uU!Pw?kP5E3y;KjpG!m(r}$Q1SjJj4u_-B zVNtkK9KDQ5A>&sR?%g1;ObdHAdKtg3zpju;3to;%D!d^2e*4D)ED~c}hqvzxzD44} zQ!|UF06a+E=g*uye-@TLb^h#`(?Eut4O{k~Canhi(n~LONY=7g8Z2ME^p+A>8;o7c z(YlK7ysCiH$fU!=Y=_F|r&7apP})9Bnav@Hi|B>89K&gaCm=9xy`3n??436@E)p0` zrb<`6vDfbtgH<6Dc$O-E``bdSDg6C+zW)b?^H%~qh}6xFQv?3tAS`|M?0G8uD+_bg z%P(sJ6Zs|F0o#FuX88SE4-7?|=Yvn*d-Xf7zDnLSFeqtd(3*LWnzSQ&Q^UhmDJvio z3FhZv5PJwbvCO0efz=}PMkgJ;!MH`T-e3^(wtf49z?#NC`tJCGX#DL5ffX@;Z+uDM zFA2=?{0~SxNZ>nX&!0bo@zp5+pFSk#ut#jz636A3k#PnU0R>{l%9U)of~&<%)A5OPXIgv-rpD8F`g9N5|Iw%OS)|DL=*`V<a8`x&mXZ!aW3~$lYhOLGMjaLR2h?;==>bKA^iokW!L~%-hh{aFn|}&qaFFd^FI*gKhB(ABJk(*Wj(AxuHQkjSiE*FFCe0I2_a$ zjpnBW{z}F0cV2y)VoIh0qd7HcHk&7bjVCs#YA}{n zBMGx0>&2*N3{f%(jcsbyfOxgp#tHnRg%7Ck7f9C&q(>jeJh5-bhknWe>< zrI}6M=NZH2ml(on;L}=NdilAR(|OvUfZy_O<%)sB?`U%PqatxC8W&)drdgTZPT7cR zOi>1N$`&W1L@Y;7JZ{B3-^0_PP)29xSQi!MI}2onp_f67gA|*!ScN^t)|tyAl-OpU z6?M@-k1r_T_b9N91quq!UAS=R`lU;0g#{Q{dS-^WLVRZM{L-ECGiS~`fBH-sIE}p7 zZXs)Jl@M;ApXKgwOiK_CSEN4OEK8~qzYQ}R?PiZ^NfG^C7z_V;PRAG9L z3ctO8oJC7txUjfNU=UxM`GmkrOXEwT@bl0AT3K3R`1v!Ze?7RQEdBE7O;l|(7&L|9 zXaZyU7RI;_SAHgmuX;6V5Fc)rA~rzf7D-;6I`2{gFN2l9vk4eTi+o>wS zCtoLV3^PIGX9fHvf&X=UT(UIlF@P7-z#yKVf163`E5D`VTzAs_O%zeg?YcO;)8#IMq+U@7e*x|Q0(!enmqpH}K+C)jI`~~zin*&y&lClRT zej1OG9u8|yK3E}dIGo5h-u1@87v8v^ua@8FbYq%T0Z?F8fD|`m{n+;iJS%Qy%9a`t}#1@WR}M@x|+xenQ?a2Insj_y_ZgO9K472D}7?KVi~3_fZ;nckynA zdTT6OExc#@w+Jxii8$|Qwlp_86fkI0xTC#*g~6E;Vza`v!o!XEJyvTzqPC}}1fwTz zEkT|RQQuJFXvXn3-q?Tq_zTBDOYAqsx>9yDQ!%D2j2MzXlJl$pfA4$W11lsBNDG|? z{?n$!7cR^#UYNW79D%>Tcw=x*3i15n{L(i8{K?GH?+N_7`8!O~XU^RC-O{}wI{I{R z&Tfapq25P(?p+I~N=jkBWh?zGW$CEO(iNNlnr$&VMa6+cvAIvualR;8PSEn69xoL3 zg5GLn9S$Wii-5u}94tF{{P^)V0F7;z+0Gxx*u@njbIi6KM=|^NI9`9af9&D7G{+h?T-pd=)Mg4g@5K2}MmYyd^y)-jebXZ#lPMhVsLn z#PD!f6xO|P@Zbw%#dx8s)Gkv>I2js)JBE7hM@nRg>bc91U9q7#)|N!aMvO z%{jGcOTVg(?`%#HpDrn}S{bnA5Y<&)UhXP)d0oJT>d4Mk`*1jsFk$#IbjJnw1>GB6 z60*q5F?Qdv7|hH=8v>Y7{5=U`H7Vw-n5zK4SX~8h_o7PF+N4;f#9yF5-MMr9#yj_s z=g-a0pIcJR2k&S8a1M2N<?*VC>3tlEL9gVQ|#FJLUFL;Z{+XUd_y5lhyf#Z6pA{Kv%$RQURxZ@!aO_@zTo_}u)jgp~rHSt9Vwm8brP zl;YF(`z*{A9a_@bDt>O*ibu}$TU-Y~@M^ee;_rNF>?!vG(+g3{y_K#u7kORfPb03S znf8Pd31`CT^ZD{JeDJdK__7)GhoZ(R%&}Q?;0Rtx3^5yW1GX_EbJpkY-Bx*nb?p(ifBQ5Y(^Yho{4?*O=dtM>`8Yh;Z@cwgaD?fjr zoqo>26z#AmV1BTz0l*G69umXQ4Y=2yS^n@^FQA6TG$@AJ1=hRWN#-ZpTyRe}~9Z;27| zdQgv(p=2@yJL`S2!0XGfbiGkF40V}~k@?J=VIpp^K?1Y&i@*V9F99~%j9~xr%Rr!e zYHDh370}#(d2X(Id}>j0*!A)8_gSJA7FO?^yRdL=X6o8C@E$sc`~0CpVD6t^nkVr5 zwRWn@nzQe2GG#gZ)3!maGD{97Bg;(=+?bSWE-R2BM2Tfk^U9xg}Z zmUty}E88juTtFo%K+vBks^Y`sbGF!pRd5SorDK!f+A`b(Zxml*wF;Mn1Ndwq! z?guzy_;Vu;Q4GwkfGcpKdkVa(>M^&tILBC?8(#qM!uyo`1{986n!R>y^%}<7p;85m z(LXQa+|vBLLnA9IH&>9lKH0w#Au*60j@@WCwi25KX(wrMIF0_#&Q`-{GzPj|UKAi; zc_FNqy1FWfJW%d+we|Eojh3sVCmCY4O33Oxn0*?soxK#7NQRNGAgMXkZv&T&^AAca zlx9)bj3hFm<5puyoYNyT8&0v3$F2YX7)(h-K~$54xWsNE@MLP3s|99tz-gsj z^=#bq8v%{#q{XngKhWRrLUZ1TlyD;8>h7LeoFcNO^5XauX~*B^RAQljZXq_laPHdW zmTTu)S`JMfT8k-Q+o2Wk&J(!(kZ4TgPd;kjvuF2Hku@}$%Gcs;zx++bR)6z!%AKPIib5Vjfn1GY4<(b#D1*(Ys{*Bo&5kArzi$vh`2kB?skGlZtO7h;PG z=gzHC;g*)k=G_2Z18_`*@;NHJwjvsXc^2%N1m9Bwuv{o_)hP?S6@|sKu(we~Pv-o6WG*!$ZV=**P zh^VhQH48zjPC#N{nvFp0=Td?ITOn^8u=#PMeXrH%Jz<2(aJIy<@GdfGT_2z2ioo^p z8{@Wfv#aOk&w)7h#O_i8uhG&JS}YwIS(_K)n`>+P-R&d59f8Ef5P3HquCn3gp-p@cIrqAUSoN{)i=<+c=t%2{43?K;m zTJz54-7TeVbD$d*u51HbNh4(TilR^()8LYxr;nh|fSKd__Juh$5;Oax0IRoKeZHcM zqZPJTRTZb0wkoT6wjZWu)(@BiW~(jGZw?@7p#&HMR;$_Q?dgegzGdv`F=Fd-8NF7B zd?GN4jIF6WH-%(JNskOCCFH9H1uWS8l63TG)y~rT|LRTg) z#PgxQ9#NmrMfNI|kyGrDkJi^rx1_>--tu^P5Beu7jeEqCA3wr1$$XC|KN-(I68G%G zWIr4ZB_w*Cz9OGbPiFNlE4cL;O?3-0zqD6DOO`n^`VCPP)hB@PHTMMq0qkr>SH3JI z~2+;<*_)0sx)r1t=duxw$hJp-@g6J?X|a|@a^elgeach zT8rHN%zfzgy-4Kt?GNRzlIL#!roBD#8NSGKw{Nc@c@^Kjwfpvm*xfEJj@vM;65-pSB)|7|XkR?JFPSXKkE0MFa!o2*67z?c2eRBf;OeBf)!-k>GEGK>+_-5aW>h!=M5V z-Y(u#9N81RRU8Z!^KmP98{3@Vhmjn9XRyE&{MeZYf*ap^JB$ku_Vjqd37O`bOhx*% zo%2Ls-Vw>xjDjd~GNr|qlt{?zV*;qR{is0@8d=M1>@M$V#O3oe_T+nAJ>`u(uAUR{ zGnDT?(cj;F0=MqbDV4A1uFiqJdwe{wI@^CDR{B}6v@{rkCP6&x99|Lun>9|jL0YaRMH7f@Z^;D`EP z&{?ei?PvPn$2w=wobAyC6e_t7OEdsB;NXu2~6Cu#o$6{>l%V-*&Wbw6{s{%$l ziYqYtjX(wY3CPaI3M!U2=EoZw8)@mD#zs_Ouh$FV`%iEHIlz7QD4AE&z6SBA4PQ-t z20i|xbR_zJg1;S~E{;sE@%czZ0q@xp9C3~WM}on2>NfHrbzU36C6K>IC-8^31s&9N zu2@gtTTXtfUJ0!?>4JKb-qaHhnTkvar&EuePoKx=&C`a+>+^-I_VJ9S(5xN6W-D@V z3VJbm*1=~NwHzQdq;1K|i1V3B_Sg|9g z__sklfN`ZFw{8J7_%WUq6zBo04|z~@btWe^`l2Gebdp;4T&Pid&`_GYGn%3_Gs~~l zEI~{IQ|Uf*6({=9Kmt*8ZG@{qT5jd?7<$+fF4u_@MkBRVoAGWaJ|&HabYJK}knc`d zKMSU!!COaLQ^CmMNF*AK1p6Rp@xKLsaT^NjgK+d`?KpGmH^FuQx7WF8@^*}sb^(t3 zA{fm1O|baG;3HJ{v*2g9ZU>!C#Bc$D^}!_6)thicE9-pezL^^>Kj($a@nNeq(4BEK zWJ{q2gVcsX!_`i7$wro?J{KkkMi=TXU{Tu}F)hI^9|f>Sm`|KQN$RK0MoQU#0^!it zjp&tNo)ThXpM98?4!R2>=HPT+G|~cKj0gn_M(*ip&)d!sXFHy@6Bs-9%E!Sq5(BtB z_+id&0Pn_EZbk5{zH^V3!Ftk4;m`H4%#A96%{FQ)6hU>vND_FXd?jJ6tYcP ztIT$svC_i8$%`b8oe&B@r2iUqTdB-^NABK zc-+|6hhRpFy$I&T@jkS0Z-?BeXhF0pap$ zd4IUw^tC#U6z^Vps(3d_ROAtSSERt{e5Bo3P=J4hfld7Bu(QaiE7Iu@y9nH(bZ@0; zoL2-lo2Akc_$d2m2yCsg)67N+3|6R%dec_Y(+E^dI?FM+E*}7Ic}bg>^yonvdzib} zc$|=I-VeRKF2uj<#Hg!pbWuikpV`B=a$BRV*4EZQLBY}1f=G8H2fc)&w7B@5FQV5w z3&`8ruKvUixb5yLsJ!N0aj)z_@39B8dy4lUjq`6?M_FAt;KqRA*S73q+n z@3)e^w9Fp%h-O*R4NM_RGlX%1e#V&qr@BDKZlGM|U?43~x3+T5J$K;{C92%oD67C; zV+_cI1Jvf+g-JC=&#*RJwd*h;%gYXq>;;^(opwE7PI!S zAX{T#HuH{@2e)G;g?{x6S!*RM~FfpbLglGyhodwMho(eHsvoQ5Ws`UDT zf&~98Io#?_|D7MkNc*9+-CO>Q|5plq9oZ9s2`KU-1^6!PJ@KT|=Y*4;I)NsvkJR^V zE$v`Hf|Q}^3cQb`MPR-@6jr3=K5E=O>ZO*LX|{RW%0=8pNX6&(dUUYPx6e`3h7N1A;-E zCZ>tqBZqeX@25ug>>=_Vx`09ah*QUJZ;XfW50RS53|3@n$}8Fy$w893mJqpwD`1$( z27ZAU=Br`4>PNoux?BUUfl)61aU}u!Mp*@{lqZ;PSKf4 zlxPv|Dq@E`9$?$;SEty^#fPJq!a(3?!O_c>yaJ!2z?|o}mt*l2pkGji4hwJCUFC+L zdm_d9;*~vXPyOv4F7HM5@V^jQafVw7uJd{X*XcCrohBVhlE4iZYYT) zT%M5^RZ~GLva-laEEfrplG_Fb2Jj#*&bX*D*Z1==N900T+><}d50E51m~bcgL8vM> zt({7R+)+0_!OG9r7~h}jvzdqO{Gbs(_jt6)blK-Sn&)uzI~>2ru{fIWsyW5sga^X| zizBYp$idZUAKAU->w5hPD|IVv?alW%ojQ`^t6?RKqXT&68UQV(f~d$4IKL+zhrHBRcs8p)PNAeDA{?qU?-=<0qCx`Prp=2_= z!xQo(!=9vjbA*wW5nH#1 z+egBCinl!O4iEH%nWYne#lZAPM_L&PJdmmrst}=_2z2+M$_{k9M%xan@nYp+C~P0L z%96!v11dFDz6Nby11_|7v9}T%m-DkQjh?6D$$a?;&_3bY5#F(5N1}|Wri^Y&yRH@8 zD%vX&2l}qBUY_cnEz9kCw~t$os+ z=yU$o8xQM5T%8E4a~|g*^A_20A#`!8;tj~;hdFq3v~5=#)IIzf@Jcd#q2Ux~MwcrG z4iE6$VZ^Px|5jeIi>&4BAG!LO&rk4q_VJT^&~ry}2LX4GbcacBo#8T*f(})oK&j7Q zpq06`+C2q{%~s%6g+gJz{Q+VmQeWPG=5YR2=LtU& zeguT!9Xd_k1U5Pzaq3_)9XA;nyl^t#d6LmRa9LmvzXrC$yGnLtSQ2)tvG20-aHV?F z0<=(cm#o=wKA11VvjdH*XNU4Gqy<}9qKvt<3#mPLr=`o8>?CYEEOxV~3?Z~SkcP~3R;F72TmO~&g1yS zI^2_Hnf{;*x!_n%fK;wJT=^OXicbEKBN=%Kb5-|?T({pv^Oo?9bhwxAM)mB=m$rgI zyCc3Y-?I#F;1eaD!_|@`TO;!)v54Dug*B9vSzIAnOYHHMI_E_zn zP{PA%>`cge0;atGH07ZO0WxbRChwcXc}1M>p~mQ>u<8@uxDF~Ocxg@it^CD0QyE_a z!Z?BFXqf}vK4vM50L$zET`alk#lw}mUV(CD0Io74LGDPFA^+^#w*y4`c6bn(JmTgE zPwv~N!j+t5J9a2ZwLF2M&zynw9lsb2Zk(T}0WdSa3;B8U*45R^tKHq0PqB3I?ONVU zP6TFCUY?%w8c|ZG5mRcNR%hfZx>sI2ybskCzaydJDh`NaVXyZex% z2AG`(T%)h;g1DfCo7*a1$$tez1RiGT%Hz*f`Oai2)4{1gA{$Bt%)282NL^W3*rfSa zU01F0G0q6COC%BHRaBQ6W7Y*T;jU6EJ(^;|C$WUflF~P5L|wm)A&Z^6BLI zX;KTSN%Zy|c<~6Lm`Y1yk)WQm6<(5#OVB#qzJT}`l+ZUY!1qnjF_QN%?R3zO*%RujvSd>;TLhM}h%D%%d9)9hJCPxBS__!`T z$|P6qah1g-m&t!XovvN$r#QWcpPI zE_)g6+H3eupK8%@*J~kXva(*$&6p)g?GN;gj!t!7{^k3tt28zGIZvF4i+>{)#tWyN z1x}}aRgsuRWKO>xU(u1W34}0({^`=A!KS64&PN^)VCGBaQPaT-b_v!LX z2r=m@jwi~{S`gb*W-{$S`wZrMHjx8tBD>ic_F#td+OAzviw>7O^UO1kKl%8hPd@qN z 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 QZ#W?2q?9D9#0`V~2UC@28~^|S literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/sponsors/propelauth.png b/docs/en/docs/img/sponsors/propelauth.png new file mode 100644 index 0000000000000000000000000000000000000000..8234d631f6b672d206726279a49dbea30088aee8 GIT binary patch literal 28140 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

lE-+3E5_5E z@({rTx?dreyh)b#*3Qm!jTw_?e3X&*I9-6rm@QsAcHAv3FZ&lR*2ouMTw3x+rr_m^ zrShe5KD7{TGtvj-HbY4lmlnx&?)!VV({Q5^`V_}RFDw+h`1z9!y$jvGBf;?BVKxgU zdnM)>y0YQ8^Eg^OKN4pN(P8=U?5hk%J%U;HP~zfe9nbi@;pjY)7717LJyc)KFMcP0(R*0@d1+S249f>o=x2|!Vi^)94r{+~moXDP zpfT}~mXTm1hB(ANFI?#rlEF<{^1;p=_?Q9Z@oNP-Us=}%>jdf1Qm5nJz`_#J8Vx;R z(YqACK=I8|-=?$CPW4S8t0R%8S_jQw|HV-GW)#2b2xVh;TH}a$1eO3z@5?EFUJowP z3%5EJ@;u!Ymgym0RON|T@>I)M#eWMYhg6)FJ8RV^MqjF>4bha!H(gf3oCmKC_>Px9 zNWi#uk7O1TPq2*q@Dw>8W9&`R!o%vdmy+H_xKkt_;FDxqVVUc^i-V7qE zoJZi#3U2!{NN<#Dw!ViXF8iQWQ$2TQta^ z6)x66#w>&GoON7GDPxvY#>Mh$!w~CmLv^(1mjQBvRg6L=vgybDkj6S65a5bK0=%M9 zT&t8-%t*KVd(t&p`f0iq|7KS0hzwhN)uAQM65}N$gl4^N@c0>Y>X7c^Yj6m?Y zz>-;3;L70VU5z~V3XB&yB#saqtMOzx+gcYJ*A>rfiM0!zAFlCA{iq23c5rUJ_?g?@@tH7b27#10d zw?i{x77;OGs+2GmbZ;MGy2ZSr<0!U3DSFppypomLoI97?I3e0%9gam?NMKTg!?J#{ z2Dj)5;j!Sy;La0bf?bt2M!%Iegh%uJ(39~o0&dZfXqueaFj4jrLInUuZ zI99Jvryr|t6<-R9MFPgU!{Ly|tX=O0<52F6^>ug8efPN+o`2pS-i`N~CzG*Tzr9W_ zNP{M!ihY6PVc&3{VWF`jMjKm=5EdNj4fsF~I4yq&_{8n)?7i$Bn!o*pON1~wm`vRs zD6n^{^TP(oBY0AUUYBJ)#*`$KC$*!R2WJXTs}x$|3DIHUN~PycI{H*=Y~j&$Y51WR z$;)Ws*L4BmfF`2aSneb#*(W(_H;d)YJzDzYvGCpjW}A!QCia3J8b_y8@tveiN(X^L5fP)KQDhLhTf zSVEd7cu6t*GQ_+rE00WzDXPUot22w$!%~Wvf>gC>Rh$(c>Rcq=s`8c`g*te;9=gyW z!Yv?G6`7}^smw`@x9F6vk_Bg8Aqe%dRl*f2Th#$rN}%(^LX56?uk+%y>KvI`D-6zZ(2^ojHTf3FqHbEwz2RsaA107*qo IM6N<$f{ZBLzW@LL literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/sponsors/stainless.png b/docs/en/docs/img/sponsors/stainless.png new file mode 100644 index 0000000000000000000000000000000000000000..0f99c1d32c6448dd020f4252a96529420841cbcf GIT binary patch literal 29572 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 z%0D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 HWfJs1?HZlw literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/sponsors/striveworks-banner.png b/docs/en/docs/img/sponsors/striveworks-banner.png new file mode 100644 index 0000000000000000000000000000000000000000..5206744b7a6e45b8c541ea55941f47f84a63eaec GIT binary patch literal 9681 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 literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/sponsors/striveworks.png b/docs/en/docs/img/sponsors/striveworks.png new file mode 100644 index 0000000000000000000000000000000000000000..435ac536c14eacdd5c4f578d56495281c53261d6 GIT binary patch literal 22639 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

n~I<2aQ z?OLq9yve!$?W8scRDnhnR99=f{JU4_d!QTyHlzwpXPBm5NhO$6MtdP-TSb?YL=l=e zg8?cD+asleb1ahx)j@(;H(8ZZ24%FiMzZZFYx;tBl5)Ao_VzXxUw#$Wb$Q^Sa~v8! z#0!7_17>DsdGxVI@ftOb965|^H5nNh4k((Ca??>iEwFq&>~t3F6tBK=ftQ~B9=Tke zgGP%xx8@ib?BUdjb8KyFv$VEFrch$!_yna&H`#oSY&JtWoyKw9LD!)BX2XIGm-j)k4^QwyB)%qHs7HOb`X#_vEo% z3neAPZ|P;~Bct5;<{E1+Z87+Gg}MK_6x>keOrbcLM>Z9;)ka*`C`G#4rE;c7wl|Fs z0w-frIa4G*k_7>0{^e1cyB=#VZ!_>nnab%RTUU2MfRl6RIa4Axm<1sy9x2e=Z3X=( z4UIvK8C zyG-L?mx&{XD3>d&tgN$Nlen1z{f9>=_LRuvvSczDTsMuAN@3d$;_H9?S*1D&jVC;e zgof!v#93G`qvPzX{auIbjVAV{9}pt(T+vipn@a0DVUzAD42N`K2(uZ&l5IDXA3nS&;?D%fI_Nb6;NKZBITx>1d(jY^L31QMGeawdCVfB~CU_gYYEZc+U^< zs*-nq;|-c}(cKjx1^gIytE7#Mx(i`Z{CC>wnA&OjXB?}K+|6>xGV!WPTOD@7w<{S} z7!d~F1dAvG9HR_zI^6)xUqAb@va;3W2QOV^b!meafAliXKKnz4MhE%8hu_EHBZqnF zubyISW0TjeyvFJK&d_Q!I6QfTtCy})Jvd;XzmIC8Ny-wu_zy4g*0;Zf_kQ5L$bbVZ zrNomScpj~4gO!D4@S3EWHEzFtiCZ_WQm?nj70Nj293qt?oy*bHQ>1rvfI?Rng?ye& zE=$UFg8)uRM{2tx12wEnt%q=!C6or%4|YY7u$(XlLBb%PB_zs}GBC$cr=u{TjzZf> ztN6l-gb2MLAixskW$-GZOqt7QesF#owQ$IGICviq#jl={;Yf>qu71 zz$S4a);CaX0|${Ty%oIrhp)5t(l+^_EY-C-`?qSG`pxkO6p)nL(GN8PZ{3E?7RJCx zAQItj?n}+~Rdiq^n*&1g9jQn-F50^ap+P%!;W|Z9EwmlyraID2m4-4%+KU=qNs<1P zNIVvRON8%16doWl+}TQx-o9Rnr6So}p0Oi`_^+S;B73`gY;9~Jm7;vlaW<~s!0F2S z3Y0>SwjHFDG^Ix?m}+~Tq`H5=NV&}J!fh_T{5!b@k{TiC43O_HlF7QH z(k|JoKXG<5SsXWw?Ks%BgJs(R5=-5kv>kDdv<;C^7yxad2TlSc9y5)E#*k@uBUA|q zTNA1moU)cM!RsVd9wk^-g1)5#-c9z80g_Knj)iE`_6^xUJ@}BUcE08lnk3Xb??hu6aU=sOpsaRWdW9UH49kg8IZ+Bn|sIe3qK_v`V72V#(K# zRv3{m!UNl~kWyg>J+S9_K@Y50TUldsbCZiNzsmO32KU~3g3&|c{M4Hs=lH}V-}u(w zaP!72tws|(iC3#ZqZvR&6&c&6COle7p&X0t-5qxKb`jmZ42>VBcYKoC-ZrhB4N|ET zmhDpw(;0u-?55MCTnF2>v2EMe>k=X$GpNqtYXos5$fkmlR%wDbRz#O-4=pV~L#(tC zrfP#Ql`kQos}>D+;vh2QbTCiTcA|j@KqW+qEhhihinF7>4;Gzt2n24o!^Has+Yr!F zsWygQQrSbH5^*OC8Qt(7c29NDJypC*#VTTfz&1^(4q|pu8xYFQ=r7VT*}#UtUOc(g z=OgXndeX!I7$g&n8A^C4E1d>NCw_KP<+2^uo#bQaG{Lafjm79xqI?d&m&jm3Z3!a$ zGD_ijO~1UBlEL8tO63xnOoraR9-jK@U$d~VOloU`gZs{Kda%eFfBhG^v9`mDXnZ2n!tb9BU^^xo5`UQ8hlcj zg767iqSS&Q5_A)y4NNbT>R4fz$dN!N7|VEBoz_W7F*+gcZWt{LN~Vq%){HT9cwxBa z62d6olWL4{nJSDOtWv6tNUz%LANA=j35iwVpf$LW0n#d3w zRP7EKzV@CpG^OHzRUMc{%9NBf{;wkFq?8`Y^P&>kvi)jK1{qjN$nlUR%q+evmt+)r1LkY@;e9ST06IXmuu{ zhXE=gq*Z()g*~g#WnM!qVq%1iIRS~OaU!xsRnhZBLk*RD7qki1C95!smeVz#dCu=MN(BR|nk*F@eRqc41So#tMP!#_0; zv$one#EC&u+YC*Z0tQ0RZZ((WYY3yq1dy$O;NS?uH6hNby3UFU_TRx3G}e$3T`i-d zK9_-i*N(#|14|8}Ej4K@8QYGAqI1E0esE}jbjD?Aae@B9eqQ>A1r82o zs2=RIwY5Xf$QWPw-bFsA>W|lj1bJTWsSX;Qo$kC&m=$*6OL&~vnEX&ubju$=%2-ip&;aZw~Z+z#+^f{&R zf5Qk=GBJThpF|7a7BT!f2{p8J01sCnWf z8L3LKJ-ttLsm|b=d*b|QRGaPVEfVL5nJwZSc065=d%bX?zV^}Tu`soHXb%s?6^Z5gVd2P<`)oNe6rN_nxcAn=Bd zpTcWM|1k{_Pf*`%F#G>4@XSB^5pRF;Jo%vv zvgPknE!U#H;Um{F6*q1xq~c(uj<5uoJ{QYMXp}{X2GcCu@G;g7KV_ECXmH68pB%E0 ze1?#RWeFc_5hRUp^&_REf3P3R7R+3q<=~)7PyZmGn7uK_!oni&dds7X_4RP*q4V&L zpWs{He43lrF0r$uq0(I50=23!h9Gf1g;=6#o`oGY+5Q{&)v9gz~;^IM~gysL++e{hTS z7j^)6`X^py;+F?G_K{(3{N)lepIt=O6;{UL_`ew8@XzEV@-aCNTQvC2^(=0!`iAV|h9x4Tu zr9^o$vOYn<^S^zW>RN-J`sTxI&+PM^552;~2Zy-z)C#R#54W7+jem5C?x}(?nGY{{ z`E-HB@2)ZRi=zO{e|we6eO+w4vfE+hWghU-Q%wJt+cy?#%Ao?I6@Pd+_pdSuP=&j8yYPBZA!-JH|B`&{mfu8<;#tx5> z$z}QWGtcAfZZI`I&e-@Ek3V>t{97O6wTl zguUD`T9$*CPLoP!NTpp;=`@a$($+?P&|1O@`eqA9MTp`KyHS+{`J1@&=tS42$U@Jq zaj6`Y%h5nmMxc;z5F><$Cd9FKPf)7r?uSZS-fN;yQpR>FE8pE_@>d4P4Y^$Y_jkDQ zpO+YZM>m6S?`Gla>l7xk9RJl}G6OCfmv?#nPZt<|SA}E$bePvav%uB==Qh2M6r&4$ z<@awf{EiCcdkfUJ8oc^{-Jp0h$Ju`~!Q!_!xb`P^=zXY2ZMDJ9^a00zZIu2;y4iSj zm)vlgv3K{f^4u2vZzyr}!z1JmWmvzw!__~&#n?~xapG6TxcaBJxcCRN^gmi+_ttm5 zo9X{_hw54bx0qt_nRTZA=@=U??JVGvZr ziqqtE6B1GJ3e@kjmDbby?h5g&!wS5R{E3SHV6)jkN=YuCWp8(n*_l~dp2yj9_ftLC zXJuuT#rZ`h#}9Gs#%-prUggNdA;yM>8SLw&ufLDV#01q^m38USYBq3eo8{#d4i0Ka zEbNp^wr_)4z8`BZM>?CsO}o+X%5j{)7)@XWt*FnK5;*3?G1ohtfIdm}NTmgq(gfCY zc21Z*g{Di4(0W}Fle%?0wK1I5G1>ZKLZ93^(bwsL6l3onLZHZhah?6afufxN036Cm zL_t)UDjpVH#|vNyoGypb{oMd8{H+f$Y;1YV{J+aIHaw89JyY|u05JT{9`60<1PEC9 z`z^c!iIQ;RbIW*DA1k~)U8DDWHwd`?=L^&~T1IaKlU2f4%jJe*rW;U*)GcR%hSO(^)mdE zLwGgG)jzpOebYnPt|=pH`ADz6hkCjGpXXV8Zj(%J8m}f9c&v{rpP2I{X)OoB&o=lz zygj_8|9no~L0V39?d@#ZFVmYU`1k&l^VlzqQ$AVb@a-BGe)k$1R}Uy1_dlBpe=x(5 z_l+>|{!x^$V_7F%E6Xr9)28)7MW_Q+!d06L#qNZKuA{AjeXtBFKpz9`6A*06^7XI+ zJhb!_!nT<@IYoDOiRZrieX{vH6O-el(-{UUMSkhM?`CIfiO$6GG~x`OW3x+N~QeXH|1bkwt<2q zFkf>bmInNH5UXQr5}_|^4V6C=Bwz$?w3Cf3D0LEq&~8QpIw^F&UQOdS)I*6VVKEWG zDcb&ULWo#zO)AZ@#7Ej7gioIXuzX9&bbpGGf7DB+KZSQ7gR(B=`@|~nszDEE`#q#$XN&t*@j<$a!>2J}Di&@0Bt^x==yz+4P(%vG|=;-0l=T z_ZLZ*Y)vn!8G!vmMprB1cV~JWgbjOh2hoa00K2z*?sBHr4F*SnQMTioYTM~x?$B&; z_}xPY=M>YQy~(xzILF+V7kKNF4@R`eb_I`iXF?M`t@pjsD5G_cV5J07#*Yc%qoqRM zCZ+YjjYfmL-94tSOfxV%z}a*6(Q0|DF0V3k{W`f*$N8JDKgG%8$9Uw?^W0xQ%atov z+1%Ts-e@2c931R}@<^u~+>}culcrKCVLJ|Knq*cllRxuwNZF#gaSLy69wqAtVPQKC zLRiMyFc@OV$j3EJr>x07B5*ZjmZEY+c-sOV=Ra3&GE) zD-I`qd(2-y)Fi@!`bLfNnH&#);y5>+T;$p(@38Ue7JcXaEaO$1{_9XsobZ27>3Ei@ ze=-IF8e1*g?i9IUzn5HlVT1h7rr3CSOWV=4f{bGse!oh38kEx{suQhjbW<}K{l39B zRk-}|S*(=B$=?_^SYEm)g4gtD?9~GwaSJEs(0jhj>I<99eBm}n-ZMmVr^S^|&iIwf zTYA82M%Q5NAJ!=y$*}r^bpZ0iF16Jv!*41x{6v`xzdyt57Z=&OwnOg&#l+-XpZ$wA zV{g+wR7Tfc?}7DRIHY5SjHJknEa-zh?_iOC!DpIz<60p6sN!oSkEmu%VkL9A`7mB>3t8Jh*bP*x7G$S1wg4rYIJ%C}-30C;pIA*HQs}@uAxy;u z6@v+cP^RLfND>udTB5HdE@EpA5&P(f#KIpGsv)`X+ddI}`(l;XKe@={uMQZCetpoP zltS2o{E;*}m#h5!2d>ilM3Kq=aggHa9JBvvnU(KugHlwN8@%bO_eKE_^G6l=Lm5VX zrib~zTIc)Im$CCU`*T$u{mcp0U)<&Trx(Z{%1~XZV`VJLr}DVv6q)`Mi{IX4&KHqYYUZJ;Dnm+HLZn-4Pbjvi({x4^~Un`QblcYG#Qm=O)Mm}#c1 zJK6Z)eW^8u(#TT!)gFAT%*Efkf$}_t-dr&(arAB6%;)Br`JCU6yWJ_?`K?De^UkmQV+f_A_BDuRgffh1hsy9>lfmQu9yr88E5nh(3sy;6n_Dc- zFETT8gYNDkr|vsLy;f&?dyn}$3)HLk@Zk^t0$#JpbI(1;;+-4h3pw0WilwC`>Ww;G z`7Ax<3R`>oEUzpx+}FpU(J}URcS%`-X0=LnzfPlNk;^!wEDJkZ!O4}_t9$f7pFYXL z-)@lZNiqDk9u}V7p!;~iydFw2^^p<3qEH^$z7%Kv^+XT=U^y0NJ~|ncvZmx}<#d6w zADbl8@8XtHJn(OiVL2A*vWwS{oc-7&#iKbukw2W_?8lB8*W6C~Wp;iv$6KC!kfmqW z*_*3kr!9IOC{aFDY%|7w@b^x#eR&rvWik4$0T6Kby~AV%(=;}k48OCVp*Q!CDmunN zr8?}fb@?N`@=}p+uQb-*QpF>zkngLM^jizh^Wh{)8qnBq7u?g^L!;3Ip(qpzT)uD_ ziDL5T5yr+wc=5`0wioYk?$i`#PaR`wVuVXquClSYPO(_PYr53xHC9%aD3!YD86HJS zkLz=Dchgy=vn5GL6HZTgH>CMQJz;=OY6_X%?!-Lc#j=Ie^UOcuK1f=+LwP5eeg z&_DyBn;5R?{kieGMB;hcS%S1%eu#GG2h9z#lc`%Lc&BLNE?NorqsFi8AQ9UMOe+$Y z>7+)uDJPr2WhZ|9#Xq>g>=&1K;xF%`cqC^MSCk;>9&Tdvl?eg~`r2e>mKr)PuDopb(l=czRh_`rwW&+(J@aP`t_T)TRWYnQH2>@G5O z;y4HURXopQ`pPxN#z&dEeuEQ}Bh+_y=q=}PEvVOPG#X7DAxSwFwy+RFQOM@$E*43r zv*faQEKA@XeIq>&{Tx-##!k6Z3K=r#6bKvJval_|_I{0wYg5eFRGU&pJ+KKJ$1r1x zHJ!E6I417KY#w2*>-+#!8tW&f3yK8MI?l#kTfpjeEy9>qclJ&)EXZ`J6%ngB=!6JF z`_K%7hpZnuVQJsaVWv&A0AnDhlNXfGAcYA#8=;%L$+)VKp2D^*Q>i2|fQ%g&WN;9f zL9CaY$@dx$AH&zB7usInR;cxv#yTp&1CFGN5(kb7W)H?b*~Fk47-#)Cv=y4^M$t~% zCm`x4NenT>GANxr8R4CkR$*C|6%9R=QgoNQ=^yALpFdAFm*w)S7g<|fW#Z^0!uEw8 znk^5zt4yt-pl5`W=gxAly~*anEjH(G;x(!$0k&mPZ#CK4+oK>s*fxc(5{<4AcB@S+ zYSa&QSYB$9&!p%sb)m4yrc8l=_)tx1_t9Q%}s zP1e~&Dx3;i2~vV+gI|Y}Z4>IK8J`=&OkrY`HDEDGBYq#d9H|vZ{Op&iPLLf&{ zj9s5!-382^bQ+J6bX+pWs{b+lD;$O?4WVTy8YWEB#9b6ZP=d|%Dyg*1#>xSMqea#h z_fWv#Sc&=BZ3adQT)(u&>4%4zxxB`)d;7REyT#~4nO4)|(hnEt9V~G1hYR!#buoUt zhrOK!#c~EaWpit0ow3OZx2|teD5jacw$7P{M_8HPrMoA`{%(_W#vzkSF>_^wT)}1P z^dL81UuA2p%EHY}?zw-2x#?Ak-8rsbUg6&JqZG?oq=HvpxJ|w*&FGObufA}Tqo)SR zg+H(n^jg9b~yjU1WR|eSeV=7 z{>P5+@^iBcAFeQRq{77?-XfiKm^?Aa-1G|dYKv^%W$E@74?Z!8n@%NAcXu0Pl8{~! z3E5ZC#%hZ3^A_pB4DMjee@>u;B5A{9pKExIN2@ba_gSeB4`3O@ex)6l@$*UTH(P{$ zE0TEKR_^U3U+7}*;DAd1AWA8QMu!o?;^?tSY{$lRU8)BMRC+6{EG<(ib+NI!N~zSv ziIY>5%cbbZw*&~srr1A3SMNZO@fFQ_oz+`6nY%vA=&5t;@9j}*Nir#m<=ItmvZOLu z3i&Lv)0e32?~^TdbNIv=l$0#3ZTT74bmLQIX(keWKb^8e!evk>Wn!8&P3Ul{7%`9x zzoXD-T1KUy5~h)u(ul%RDXzY_#Pa+uTayQ@Ebf7Voy{88UR~zM@m@C94w#?awN1=uX6s037+}- z6&`u}B(4j}Yx0Bd+@R8zXY_Cv-+1yR-toTEeC;n@;oM_KxH-K_w&3DdJX&F1PZ7hag-l^1UE)BpG!-~HMZM#js0`^&HLz~d9F zuk5k5uuY+u<~#rG694!&ALomI_B{W?2k-aG@o-%v64s}YmN%v%iAu=dbfOvx(?nHi z{7;p*ag>hrQlTiFG!upH3m17nNrO+GY$a5}9mEt6AZk$*zIKb4;Gm;LzBno zJ2J&VE6u_BE!<*1(zDq=sDj$ZJxH+!q%#F_110i3gIHDyA)BnPZ)1g0tNw&GF>cq% zAW56K@J$P0J{Y)yx2q$GxuQjkNL9^MSUTe|ao269A zvcFqr@KA|dmrJA8Vt2caQj&N5!Wmw_w9Mrf@6c*`>~2-*8OV{z+DNI$IW#P;jUp)Yx3vrMsNQYqltKIjB~Xr~cwc>}>4QsJH0p%TwvivbVL*&gLFx z9~onBYoFSFjiaafNoOn$P4%BvS^4uh?rK%*A@S4^jIjNBdqvmgyo~J zu!3E>9iRiP$ZI*B%aAMN@w`^VNNP44{-0Khme&fbS0tYF&A~n8;YklK@KlPPJ8`-h zd;tq=%Oh{^k=nh+=F5M<#-*?0ZQaCC4fgkTIN05yzPEvs@21jIp?Yw@`pPotbOwjy zz`#JYsAQYfMiSRg;E*pI^@!oFN9Z<(dcP|l&SRR`O!1C=pXi} zZ>h9RcW;)VLnWSn`Ucs8%Y$zoXLVthVkOJusXnUvO^V$a)|dA=es+Kt{&p6}5j^(J zV;t=Jp0bA~%iMc@loy}9Nv_MKS!*(Url0S9{WTtW+XUbL#_J4@m3Z)p!#w?!ON<}y zp{wNL2B@uE!KH7wi4V3?NHrC$++rET7s%hr2fRcsX7Vwy;DXO^%KLYjT|kJI$if>UYE z1o7u-iVw8GrUclQBI7zJZxgw;!TyS%CNo%>9_raL2h|!I3$wIp2c)uj4jt=4eExGE zmr5bb%-cSc5K5DSQHk}2h=(1bO~p}@Q!!RS?NekS+V!LaNm*#oCg5gFf7{e9+bu0c zhpDwN94S;njnbS(hl1~-!%9q_R_pS)k@!HULPGll+gLGaucvmcFewABPTFN~Y&=E~8bShL)#0H$AA&1YD^mAR0jC({ zMU#D9M8Ge4VicGsJsP_kv<`LyrA*~#bI<>}7?*ZLaE;{!H)NVLYRVVN<(=Fgl5;P4AW=BJ|htnh7Yx%4TK_u zDHtG<=4zsooKA;|Kx1hsO;#wnfWbQu5p7aN%&JIECn)2HSZ#`QHpP*9dK3MoN&3(~ zNYPfZbT%tBvXzvkyMfYmF+?IGCY}Bgdt6=CD52LBE3KG@-La>)sg^-fKF3JVs@>dN z@0E4qK1~PO(9qJv+m-aF@2}I^S-{PtsZ_>jtk2Ps1TKcs2;NBeU)SBz>54z@aiy86 zg|AEbD<)t0RYq`QX-O;#%H9sm>Zh0d_ zLNUSr&N9{wrtWWYU10=obgFAMq)LZOn|?}3MG@UoNhP$PlYbxakrP?n1f=NHND=Ra zG07Q9D1V=*gG7uhBqE%*Vc(_N4e9mWs38%m*R0|$>lx@!3U{y~(^Nv*%iy~>LMw9= zWlFiqgmQ=JBCH<>LM7mxhMBsgZAh&JNSnK6+s@d0U4D-rub4s~V5Em*JGfR8ltpi) zi>WC)a zx~8*gXD}N|i&B}oU&5TEnx4q*J8mOrb;S`doF*c|hoqek9a_?82SGHXF%E(bb+HKS zRYZICQYtBfs|AxV`^S)O*J-2MX3wqKS4rXKLM3J=LO0(w5RL(*FZx~5oO5VoUS-H7 zYN{H_1Q{iRS0%8{QDs3=tx_MD1>}VwlDdjTa(0d;4n5^=nzaL3%|@hLnUwWW#%qZO zuRfc}9Ms8xswk6kg5fsH21^AP9DEfQUt2K9$U$^lfQ7{I7H|SSl}Iv@RJ(dxJM6S= zZI}?=R;HkoF7%P~8xmS}P#sFW#8Lvo@TSclT11wnMp>_A%Lv|~r7EEraS07VX{dzg zl*SIh90z$j8w=qxQj{>|h1z>!&0IZ+H0w~+tGjACcR0) zLsQvw6^mGwMJt>r2f?lrC6ttSL57x6(rUHvS}nX*la}ZCUwb}O(`$K1Jm2VBE2X7W zSfK%%*1HQN77{O*#rxm;J8LUgojGC7iu9;DDNc%n&#wt0PDt={H~^x|s1iH6@P@RE z-G9>I{Vrn{Qz1lGVI)~vYqxJiG!ce`kLVy8W9%+9=%mm~)Igsg>VLJvDr8~_4Xh$9 zEk8!Jt_B`g8rg$(Mag8q1vx5)q9#h|a2JX0kf5~pWE^nGgF%@{3fjG@l0L|2YeU_? zNNF^`(7di)SVWSv`B6!HblY^=gkQ$Kzbb@hL|HgK2()rvg*xR{#Jf$WGo1-Zh zIe4CoOYO+%PzFI844MK7TF>+R6;sRezYYSr<+bpdOX>72u!5akMo`KG9M;H+ zhS69DsU~GUhu*WRB;Hy{LyfZIfJ|G9MJ^M`AzN4y2c-V+Ut6|??Yh2zoNZ%Ee}EPC z@5-|Mo>cfm1mQ_6D_jRDEZf5l1K5^$o{ep{Xn7uvlcL#bVm19gp53C=vJlM{9s*Bz zSa^OA2e40nj^f|rmSsilfRqvkMH5si*4)%Oj3mQf>6EnOhc6;!KM_gqXx^;}oOQ$! zO5(4R)&|;0R_Ml8DzP^f2`4=jm&raWN43pUmFTqm*UiR6;BBo1w_yn*VxK78e@V-r zmayU#nH87cR&>(~BPipb^@Y66-JLe44TdBUol#i&a?ThvDjj5?PZN|z#ETN8G<)Jm zn87jzeyXis(j{D#wvtS)feeFZV^XY)@jIF!e4=dE-eYoDrxKEON+sqv3ZooX20F@O zZDk!*JK%wb9|{ghD+to~x(G|5EMKNqDCJLvr9@eQdAsy&Pb^1ahh=rk!)mo?*-eCH zBd`&|# + + + + sponsorship-banner + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/en/docs/img/sponsors/subtotal.svg b/docs/en/docs/img/sponsors/subtotal.svg new file mode 100644 index 0000000..b944c1b --- /dev/null +++ b/docs/en/docs/img/sponsors/subtotal.svg @@ -0,0 +1,31 @@ + + + sponsorship-badge + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/en/docs/img/sponsors/svix.svg b/docs/en/docs/img/sponsors/svix.svg new file mode 100644 index 0000000..845a860 --- /dev/null +++ b/docs/en/docs/img/sponsors/svix.svg @@ -0,0 +1,178 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/en/docs/img/sponsors/talkpython-v2.jpg b/docs/en/docs/img/sponsors/talkpython-v2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..adb0152489fa8dea5594a78a835e0cbfa817e840 GIT binary patch literal 9778 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 literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/sponsors/talkpython.png b/docs/en/docs/img/sponsors/talkpython.png new file mode 100644 index 0000000000000000000000000000000000000000..922d822c334fb02d48abf3af1c21eb408356210f GIT binary patch literal 14807 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

mdmZ-K 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 literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/tutorial/body/image03.png b/docs/en/docs/img/tutorial/body/image03.png new file mode 100644 index 0000000000000000000000000000000000000000..1301aafa8835bca38f384f341bac8f5dc6245cc0 GIT binary patch literal 66011 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 ArT_o{ literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/tutorial/body/image04.png b/docs/en/docs/img/tutorial/body/image04.png new file mode 100644 index 0000000000000000000000000000000000000000..f6c25c1530bf93affd9f9c48fad037960ec65fb7 GIT binary patch literal 40151 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

Uke#1AT>z=h*g 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�Okt1IFx9S1d6L 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 literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/tutorial/debugging/image02.png b/docs/en/docs/img/tutorial/debugging/image02.png new file mode 100644 index 0000000000000000000000000000000000000000..8394f50e2d12d23937aa734f415620988eaa76ec GIT binary patch literal 99443 zcmb5WV{~P~);7AsPSWYvwr!)sj;$TrwmWvZW3z)D+wR!5ZJRfJ-tWAB?j7SBxBjeJ zyY^UBtET5OYlSPwNqmFDfdc>l-+oAnDggixT>twVxLVr|&;hU|?WY zw&XWIZ;_nEG@O;~Or6~f98Cbq<}S|8CXPk{ldu2)5#WcYu!{TgX{MXI%0TnS2Di<` zz0Qx)bpoyfQUF@=~mQ!!OObAYBo;islSpbM1%wb3I6l*A`TtM zOriF_w_*Mi{~h_icEuwm7@PQYv*mw@VgsUSSJJeg>L zR9NDHHFTbB0eXe(I57xM{M{!Ha4h*Mvaa7c`J!eq$q;_vp>#~H{j{GUk&5fHEHdX{ zB_*Yx&;lue`461gT3AriR`$9kPvzuW9OD$I&fI2VJJjYyBhx?uoLhW?>67@;Wg9jv zrjlAYkQ$L~_YJfPqaDJppykCB^9N}uW%-BlB$Om5DEh6eF(Yw=@nu@|yJ=Yqdw03o zOUrVEHz`edy7Oj^tD2#N!6UZdDFS2gRUI{vjC)z&ablrflU&nv45NPc|12<4H zeVN9ykfDfYab{jLI=6NiuIo=h>d&=0jD)36=-rCO2&IUgHEDoba~KHe3p%O{cTUe4 zgkAO-tde+VkM>fU=_~#*wJyJcFPZzpL;r2v7=UNP5AoR%cE4-A=Q^&qO^Nu{l=zMsT ztmbcmhG>>{>P)R)-e#OY%ZPsNZCVP|Dpfekg?!hm%K!7fywUv40l{SbZc9~DJ74pg z?OP4{J~`|gc*i^O%uL$?i|+9@_qMHVGJ8S`8+ z1iL1#*Rg?+1KmYD2?&6s>dMC%=K$oJsMR5CL`KfqfhRFHPdP>cz8n1v|Bz$0-ur*EN@7s*!1Sd%0D>?;OCSah^Q>zarQ^>->K%MkJW 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

CT>@y??8 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 I2pb0e54J;0#sB~S literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/tutorial/dataclasses/image01.png b/docs/en/docs/img/tutorial/dataclasses/image01.png new file mode 100644 index 0000000000000000000000000000000000000000..7815f40adf065b51cd1a1e9fb2cd0221db2bcba7 GIT binary patch literal 72574 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

oFYI0h8@P*$sS}8H%Qjvp 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 E4-uhy>i_@% literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/sponsors/testdriven.svg b/docs/en/docs/img/sponsors/testdriven.svg new file mode 100644 index 0000000..6ba2daa --- /dev/null +++ b/docs/en/docs/img/sponsors/testdriven.svg @@ -0,0 +1 @@ + diff --git a/docs/en/docs/img/sponsors/vimso.png b/docs/en/docs/img/sponsors/vimso.png new file mode 100644 index 0000000000000000000000000000000000000000..d20791760768a50ae1a5aaaba7ec49b5ccf39d7e GIT binary patch literal 15198 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 + + + + + + + + + + + + + image/svg+xml + + + + + + + + + We deal in big ideas. You in? + + + + + + + + + + + + + + + + diff --git a/docs/en/docs/img/sponsors/zuplo-banner.png b/docs/en/docs/img/sponsors/zuplo-banner.png new file mode 100644 index 0000000000000000000000000000000000000000..a730f2cf2d339d34ac80dee90944b6e9b9740522 GIT binary patch literal 1760 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 VEU6WA8oB@g002ovPDHLkV1j!%^=tqD literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/tutorial/additional-responses/image01.png b/docs/en/docs/img/tutorial/additional-responses/image01.png new file mode 100644 index 0000000000000000000000000000000000000000..c348d07cbd305969b8dda66e2ab33b6060c30d02 GIT binary patch literal 72424 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 literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/tutorial/behind-a-proxy/image01.png b/docs/en/docs/img/tutorial/behind-a-proxy/image01.png new file mode 100644 index 0000000000000000000000000000000000000000..8012031401c8365f9ff01c92479e05854bc8bf00 GIT binary patch literal 29123 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�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 KkINJ+{`x1^kJdf_ literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/tutorial/behind-a-proxy/image03.png b/docs/en/docs/img/tutorial/behind-a-proxy/image03.png new file mode 100644 index 0000000000000000000000000000000000000000..278bd07c8ea1f8bda14db435e6661c0ab8a8fb64 GIT binary patch literal 74280 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 Xfjq)y| zSpYL6%eOU-LGH8Y>Qq(UV3EF@+eC11@HaZ%t7b{_1h97!1s~EymN%(=_O%m`oxna{ z2b}q{iHvq071GxW>jpctn!OGR3StMf25${&eik0(8C{JFK%=0!V19lWBvGw$&Y*p!Z~Y zQXRuJ0{mXDTsbA#w$n((WbeA>bgokl+Nn!+XtqsrR0W&V$D*q%8!X?dT4`J(#PvjYv(XENTS4BliHu&|EG1W(lP5D3 z5%46Yr}H<~-k|RzJr1#dZgz2t5nY9P2EH8)rhWY9vDm#}Y2MQAD=M~{)zsh}N)P_K zrds;Rh4+_P;w8E*aUmEi1-*FWii__KurDxuMmRP6>taHb`Qq-%*5(zs7$*s->lkcx z8o$%f3vyd|7Mv2c_F)IC4xC0W_2i%qdO2tlm0>3G|0oMt-&rZdmy%GfQiD`^Z)xyS zo4J_@q<*9JYVK%SVbyM7J5XA9%b%g^_B+iQ!{wwR z>pVup-=Gno&S(uP5s@`$3r6_C3SkqQF^$dyT@%F-M<-n=82{PZfz;fIGOOac-F9L_R(iVg6|>V1kw!FA|fWJNc?&r^k%*5C=J_py9kY=x5}-N$g!_FYS#u%KcR@36gIQ>c*+2gc#`UrGhL> z{5?DDB;0=OGw4u_zUsn%n_2jT+T)$x+ubdYSB?&(s!cu)jk>(rEle%G3*ow#@c|Yd-jFc-SNLfV&YQro;*ymwv4qUj>5EKc zsnfQ9pGp13u1fQ{4u{gkWqdoSt>SNB|28`TshrbBgwbvUhn0j@d5N!r3DgM-ov>pFYQjhuW=~i`u-$>OTYEo>9va1yi-S9cU=Zs&*JeL}x3VF!r3=_m7@0V9Q*>8d2A@X8gM$6az3>X?JhYcj|M6jELllBhlAMeHIG169VSX*j`Ee`P?@XpqIKMfO)I}fMp`*vlE zY!a*W%}5Pb&}tYZ$g|&X2rT%yG1V5ETXQ67qF;pjA!Bo{sL;cNF^*=zWJG>-utm7O zxjhr)gD4hf9%OA@OeQoUa{>}ynP*-ul(Dp~-y)ob6SCPUI- zI_ksagQLFh6fSsa9C$r{@hJqiqr>xjOzvAmMA5l7;I`}R7Tj-PLOoFpIj1X`HLsVw zVEQp;W>by$u?3etfzbvALK$Y7culT_{*$mmht}m^cecb7bHBE(;YYn|QFsR4JETLc ztx+v7PUOXCAs(f#8{%#NzATyqLtf!ko8Kh^HGq8eVhu(nn%}PvTHxjte!T=`t-Gw| zcNQXWN$yH9#~3Of!2rY{IOPIq+j{Sh1{Bi_0`BNs52@8?9rr%P6b)sFf@5JLXl>TD z(+!HXW^9s@E6mt!7M~I@S7!>8>GRd*eyISMS>;t^Xf0<#dU{80IH6$wbeFkIyaZOk?*J-}h5#Vs#-*4+ zm6KC{!bM1&eDai7Lh`Q2=ugE>L(ZLnxkO_+D;1}72X=no?LN+mXQ{?%{kP-Ce7QoD z0uFXJA1lJTC*VKs_5;w1MUxI&a^@fcq)lVc68_;;Rv$GQo9!JI>nayK^F59DSj`{e z45^zN6TDS-;X7i1$GCx@LHDvhKRen#i+=xbs#?D%jqRZNKU{#a%=7T&p&3a{mt5A8 zl@kS4jkl5_HG-8#7GyOs`7Od>;)QO|f|^fWXrfNNBLC<7y}fW5jFXl*EuMMh0A#s zcTooO+GKR-d377Xvw&N1;r+h8&O<;OOm=8+-zy|1Tt(vct?EKA#e}$%UaGNTiJM&< z)#>)vXuPy>>t)NK2V-(B3b3VWXbxZ4i}`a>E3K_^^$xDDB+&CGuBdl5BzK_YMuX-6u^WH3obAjmXK53i`xrg%~wFO~=?#9x>UN~R0t-@=#zBheb zkLkEI;;-$ZPvO^{etzG+tKRXZ;?SB}@X5i*#vQwF)5fmy(nz(=Lpb}BdT?O9cE$iU zX8~qrWsTr!)f$M;Q(zlDoBvUDR0-g3{l8Ti-YY0<02dWh{I+Kh^AW3s6Y!=gZbhrv zEocxF6Vs*lC3TfvEJM0V(*^_V`*MCL3%UM%vf?oNxUEdT=?X}1*Eg`L9oJp}z=Y>5 zVeBbTr#!i)a?sEL63;WB=63SXF&fZ<*7lQs&vHQ^-U93u;kGwz!kg-Od(xXCctmVa z{GE)Nz@lY9HKU}2{qjiiV>$0s&yK4xZ|Z>VK9$L0i^<^O{apn@H(1HyZppolj&4dC z44QHdby*tZyXp-jK?)oy3Cya1{U?-8Do&Ur3eBQIucOQsHaC{%;T7IyRQC1OB!mV! zmw6NF#*gHf-A5@>2n^Zxrhm5ZZC$k#GfOuSn#vzpz6fStbzL_*e*ta0ajI5(54m6v z5koJ+X)7p`lngc9+d7Yl`2wE!_Scghsr{aDYr1koSs!F6B-P^^&sQWYLRLdRnbH{( zaVL8=(N}@b&Q`r~bq*?iyt*SgXGGJTXmUtzJ*rFuIb!0tmwEp9MNJ|Z!pcnZy;2rE z`dkT%?iAJMX-8?LXW90?Uk(#-gP|U7EQaE-nr}1QGhhF@Eu$RJ(OsI1L~B}#PKHvH zZ_MOShZ5)+m=DReP1K82!?refZ`K{q#rW^7Y{%iBx_A1gcLjac(Zg!y*uBT zDA;XFOOa3J)c<)=DW|c=b9#DeN%NH8hxh>#H+O|tipFH2n%tvDkCf9c@4iL@)w_VM znVICiJ^^$LjLQ5>v_F|TF^xqEsQ^wjI$J585Ms!0h2rmh%C}Y8*5Ch1>~1pk;L+Vu z(Nyio#=*gGqNafqfB~MKo@qhc{SxdXfuuJ@Ib+}w`cq?-7!9GHHbz13C3YX1taFLdJGm5SkLDe^~P|y#s#rX%AZLsnI7=P)cXm(-lIZ`^I!@ zDDyV8Lpwe{Sn=7~8oCRfO@7YW*|eI$IO{g8R!BggPzY)q~acGRJ{o1&9)o6!br~=Rp<9HahnDbg^Raq8IAs@@)Cw-ZFw2rc;~`*$z?8E z?cA^QFAXrBjQ=ZZarruWSYSGknGij!^7(<`QTWBuz3r#0U*$u&evgPvB>N zpSM|d$h`ItpU3qWh^RWO#D7)Hl14MwYAkp7DyZ!DPm!`M&jxWr>j)>NqPb-6L?{7F zLv71F86a-hamL~b_Bx1L_6ZwU(doaT$;?=sJj!cSEdSLLBhF7#P#y4IS7wB`dKnxI z28XhheKP@S?gP4>9RB`Y-QAUT3zwLopq$D}=raIP1?oo;5fMVZLK`(2s|_wN9*09Q zOrWq31vls3KIG}@?M16_?dMJ6(EkAA)b~6IP4@ho6-Mqgu#r|oDcqP9K@)QtKeXDb;hiBQDG6FS^qN+jHkd32KuH#tU4BxA+oS{W^x2xBL&FK>PrM7x%cfUDe z#C7M?$fdxo2P*9Ez^!CYT}=sfC#WPGLOk_m&(0j*UFLcCu)JzYU=zIL-#G6Z8N0Gz zN`|!kmF5^1HVRp zO1b)6RJ5r>(xt3M#mcOnwh}Nj?gsZmOrVsuF*>RLZWwc z(%ssNYf7Z$Hdvnkf&P@j%6`^Mqw^tx0=;_|YHDT%fWk5}vs#TkJ)eLUKnDW4@o$%P zeEvE&>2Dd?-yK0q%@x7#jg4Ob=pegp@vk^Jw^!Rg0~NHp z>kGTnDpHbJOVaV8WwRoMI_IXe?UN7yHwm*TqxF`>?65xF>t>NY-cu|15w^;=MC2>b z!PVA*5m}Geu7cejE>>30$NdV!r_zxipH7!G*aFaC$0;X4fCusgfRa}MH@KClBO9E_ zyLAM>U_f_n_()Bp=P}Y#>&%1bgUHxTm(PMzlz7v4Oc*+!pSOX`$7>uS6+2{fYZzQI zApV;Qtzp*>(jo0r#-o)RRxWLe$}!%k0$I5ViyjNJ91%g!Wjp?(x81701a)~JI4m{l zFYQF#3*hhU9QSV{j^b5%GR!mVqjFtpLifSS?lx|wFcWx87Tm0|{!_IRc?dUE;qjs& zaaLvWM8V6@{rKnEHx~?5j$F6|8cthf5f{mR!OWE`b|^Dl7lG&eTX5PLBw2aH#azN{ zW4WN9fpCP4Qri1Ekza0}+L|-O6A9NY8*Qq1#(Y?j!GFEAB|FaGRRY}@WsF2>*L=o* zUVim-VCL@))eH>3Me8@k?D|uX5jkYyuD31!f}NRqF0?+~{Zt8gwNOG`w;dOT0g@D) z3!CVdI9Z(h`lEK$Q@f13yEea+(SkIX2|YlUsA-}orj4JLD>gAC3}u6!rR)X5TViQt$TihuA+KsZV?zCaJpgf+wT?Rde0hklL`9W2?mV z2brJhpFfj?5#;f#wVvoX`Tm+Yg08e>y|t=wSZOr^VeK80e}XjCh@r4Bmb`LU5~siX zu^gpu-1NP|8y}?_uGX9nT(RqKpIhZ=PC6Qpc32F6(0M;;bk`_&y}`-f^>m*U*-w+#KJ$<*LhZ~B!VU3`Xr9KC%S`Xy=-xQGSf*F+4G9LP?G+dQv90zVXn zR{QQl@uAEKH01Ax%*dR~0x3S=^eZn64Mdxvm4$u{T}@2;P=|Gl%d{v7u89yt5v(ZL zGTU)+n>&BO_KM2i$ivO9cISy{F;FQIPi3YxvyXuh~iFMOja z#z(7pa3u3W@(F(l-ARtOv=OE*bn&gu8@Jw*bNKt{t@6r}+9@UCqE2D|{5rJ-pThYa z{;Fypgr-&*r9Av(}b04F!~TyL$tUxx&AF zn6To5iz7b|LTI!C962J5a;rM;w992Y=d)AKRpdVM zQC@qpYb-C_-0f*!)T@$Zbvsg(BU9 z$jRG_@89gj!(Ud$n|T;nlPZB*<7NYpsKp)S-_oUkYBTcg$YZY2&L?js*39f=1iF$3 zOe;1nZt;u=2hweC04SD5wDc)kYLQb=P&}X??I$N)J?^N6lP7ZA>Uj<;672dKZXXpt z%#Q+sG`izWCvdKVC(8g_4dfR*_WR-h>{(fdjdfth3eYlU_e06k{)USH0#;&9$2V?X z&9jpgHoA*iH2C+=aODaRG{B-3`wnab)GT?Yib?C+%uN8Cp65)m`ux?(_!kc*k(X(k zoBK(X|GwhF%6#h;d^720BfMzWe>I!2HKpP9iZ4EZVXMfkX^#gIn+NJ0#1=?%BsEKj ztBT;7F32jlj_6B0zx#^MuPn(=K0_&_xSZnWyDJ7AGtB*6@eL?_Z*Fe#o@Bje*S~xh zLTB^&xW56WuNqL_#LY z<4vI}lR9ciW-08VXu$jkEd&^on%TF$hW3r;qt@yTBNx|Co?6LD1xZ~HKv4ij9SN!E zV?sjMY^BLoX}!mi8;i*yrJ9Y6qm&dXz%MpATtwhNmB{@&IqL&&o5d9Klc*S`9{FZE ziDUrWqe7;CC>bLLeca@LMd>M^)dv@^J2wGpm6x0QB|W{0#{nqBhtu(#S`YD5#g%Xp~O zr)x8F5eKzPr8NI!ehJJ5o-BaG;R5^~fN7ITwSdm9OxrQ4PP5V=8jK!gJuwwV4OA>4+sSEjrE{#5~2A~ujjc) zEA~)z^v?hKaQoL$?S@^zUXd-cF4I#^Lgit~KT!rGWWwAid6>s14~!bJ|BZjb35opV z@d_X_j*pL59sAI#q9E~woG<_~JiubfV-rWx0rV8e1lo_^pMI8Rk4nnYXg_dgo<2oz zd_;NR90CW1;lH2%ZNxp>tdXj~IjvS_d*IUmj2a}?D%k(}eeJ)eFE|XsVln`R4d*|6 zn-?!m(|-NW#+3h%&R)Fuzia$=qs#xR#{b=L{?E7he>JZE-sk`00G&Dc3UPAt7Ccs; z?}WuVUVTgKl;f?O!yTQiLqof@T3}A^6L?w^YpXOfLPOay!nmgsGfQx+a3~NnPw;V{ zRfyqc-3BMu?TrPe?Np=yYDPFdU2cNHgUA8=su7GiVK3iSSB$W6z7ZV?99#GJ_yb0! zf=9~SbG?V{D&@%1JuElIjAj?efYQIa-m5LP)mtds^b zF&l!Bacq`{-vX0r(V1V`q;)&Rnm!WmQst{`fgRbZ*A4XTQv1*3XExEh*zL0WE8fVk zWIm`M5PhY;*A{N@t+w`ye7PrBJe`o3pt~U^hjR&@Sc88d?Z4lYZ}-m#e7OC1_71I~ z6^~e69=p~x$4LCHuD_B|rJl#qmfkogxnyic=leA68ebNQ5$kQj*saF36TRgTJS^fX zsF&!gGW#tFyL#K%#I9ahB1_lrcQ!<9Q0?9kc8|nrQH2j$73aFN^Nd6(a4cvzv#)Nlkdazcudsyh z;^qxY_QOonXj!8sJ=>V+l(TMy&5$eKDrvePLXjk9x$*H9*>J$P22t;Edlkzpr& zEuDXfx7EW+ea4*nxMeTDb^QR#j+b|%8_Xt*30|;Nef1d2I>+-D_st!!x+$?yX@Wu2 zyCS2G5acb=O@_{Q(%wja=f^pIUF5Q$Yk`w?i2@R~7}_kORrgh1*@@bV?nL;MC(jAl zeKZ?GkZXOsc%~`;f&txi#utCEJs`{+^S>zsEq;pQKyEL zes!8!8bh#Ksj|$2p|h$SNqx4;p~i9?#^plULJJO3sk+URN(qRRbGgB@_uI8001IUC zn=E_B_IkhGI5|F{XMY{sx8jy72OgwwKR{_jpK-V|5^U}o?-wuDXFix=;0F&KG)`34 zV*4-krN;`IT(o?vOemwT)AeX9QMM?rcK(HLMJ3ZdvgPakTYSU*P}wk=EjC{TV(6HE zI^3%uUxVe;-2!*?YvMe&f`pq{9a0X`OmUvp%&1Tu50H$0Ps#e?N%|c*2u_8&7;D?q zRC18@A|uD_yt#j!d0sM&tjh14yp!Gt=XtB#BOUW4CQEmgd%j?wdCJ8%!{5pE7%d{H z((;C?7X+to?2N?2b6n@e2nLbeQa1^uK%&gvEA(^N4Q{naz~(h7Wv*}D#8rPvZQ4DN z|3}893o)*!RVzH0sx1PB&gba(ZqmR`lRo&$btQSP zwv~LMPdt>@cZ5azoduVet?}DR-#$jK;^XT(LFv}uJw;i0GXFJQ1d{f4g<})S7GE)) z7e)W{%grNU4FWRM*?u8otYB;hJNu6fDq{A(n{P|k!v)Yn*|ai#dRDR3!MK~$Bvu1) z6_HM^7m_^m-^-q&9WzBv4mIo#vY|jx_4Fze>lq_o5U%nCw%Tpfw|#am%cZ^LqdV}9 z`(mPPnAV$pK#Z_l`Q)t7F8GV^zz+Uy^9X!YKe@L0HAxg$MwXx3HC_8i-2 z(~V|tCgNbR8?smIP$}N*kFQG`lUF`NG0y~36&UglI_Za6T%XPSsl%>IbFbe?5T6+PJG)s1ttJX|?f=tbs8>5cKg z+(!+pkvzs*-jw6Nt*(2wB1i;=Epn3`*t8b@A< zbP?8^|Iira6|$eLx=3BhPTP72Sd+$d(anC>@5Gy?qil)(+NUF#AUTR?ct5QUZu6!b zofB=IN^JTuZk_adA&+pSBFps{Q+Gu6llaHZ@sYF-1Iy6{26y*(58<)tceTIh9rZ%lgsmuc$R6Vl$gGUWawg}R?~b?-j-nvHV|6st%=iCw#ZNYlJ-3p^r_wgeUR`g7OeK&`5gn1w6;XZ&!x~n z;mopjb4R*u!)as!9QVdGOSibLt0txsuJs7@00bLZxd>X+Ol|Rar~M}{(4>xCFR;8F z>wcQ+)G#^gYJS;#{?cnRN#s|JEx1_`wcx)~gyBd%*B{|9UFmcqaY;9@nKBHd;=Yfh zEpM6#&UYlg#R*P|c{{z+_L-?#Z;~N`BNfNv6mbS-U@8ml2RqKHbnE3UU$4mTCz6&f zM$nl#i?%bDx>BQ>y|=?<-rj~XHA&H4q#$ggw!qBu<6Wg$7zm7)Ge@Oe zc_+1wdG%VC2GU|L=HZ7xb2uu!DoVKX3HYk&M_GH=XB}+X5Y@8Z_qV_H;F`x>kx@8F zUIbC!x7Zj4);HXpkFCrxK33N5j|A^CHN)Oq*YHRgnrbUp%d?bGP~vn`+}2B^en$#& zmnBPv5lI;Le0@y>H=lq6yq;O&{~3uB@|PT&$;wB5$Wp687d-!SclnL<>8I?b=-lC> zSzRea zvl$8U_O8@4I?%pOB!iGv3cf*H4fbIW7r}UJ>6)cIrd4K^tIfp|_ytYi)KXI4YTc@^ zqV*;6=iop40kTniW1L_WMwe;L*ZpOzvP|ylL!uvc%W`rLuY)kauA52yqoWg~(_73R48WZ{DlGjT=S5nT~ zWGaakAQ*2iMK&(c6*cIUay~?AD<+iY7pnY=L%-9}3PV$9+|Dh~Rv7;_6A6|ygo$~zVCxZ>_BV1=Ni+2N*5 zAi*t7v5`fJxA*tPvN11SKL7S2`){z0rKC1~_f6VshXGfPLD#cz;*zaoE3$-Jl>aHK;X#@IBR-kH1<`Y` z8WF1r`&Pp3UBA>w>EXg=#8BD*t=H>x+^&?P-Rxv4uFz3v$QQh`sPnz#)BWJNGheAR zB;xLOed9)VeAmdk?05!EscdjWCHppiE3BHvR@Vw_2Ivht?{#$Nbjy?~%|AO?8+%9C z9#w1Gucf;#Ae6pk=&C}HbfrTX20iLu>qxyCPqsxM2YF{M2J&isNn4W22U09P7Vlig zzIq6PfE_K`=3Sq*NeH2`X!H2{Dl0yIzf)bl{^kH3ZxMz{=kll49{DM+sK~-F`uEl~ zT0Gufl}_Z+h7u0Yw-JzqI`6Gbi^CSGiWlfrd zZHAgdAW&US7T@;WQuF(jHr_@_x&5^_ak^8U=7TGEe72c)2eVa%~3j5-gbrwntT|W;p~+ zdFx(dN~m;-aGcYrJ*+0MC8ylgy>vnCwVv^x>(~kH68%n6kFcFZz<&F0!deYah-MQi zoT)$v86v3@mG-P%|$*5_YM6(**z7f#IvqK%LiT7H|l1Nj2)g$UP>n0cCa=H>R2 z4W#P!O3ztY5nl^h(ylb;ZrpJ2vt*+wZRaWpBbgxcG;X!lQ>KPs`!6*O1=4384wtXr z)Z(}Mp@9oR?l-O-{%5g%ZZWca(myEz{jQx@Ovh>>qw1fv?C)HnI-4u7i1;$N(M$Zi z=1=pqYy1eQevPu>AXNt!3g<8d@;s-@?tOc4CgJjh_({=`N>0&YEACTUah)3edA1sc z102CxN~VYLzU}I^KX)rX#bL2u>h*Omx;o4J5-LzU?tydXM-}{2aO>Xh;(xLCmQis% z-J56w0YZ>Qf?I$D5?q2?2p%kf1b2699J+A}9)hK@pdq-sdvJGmZCo3eCcpQ6XV&`9 z%vv+|-fx#L)aveYPF0;PRlA=3Z0uY`234qdkp_V%mFK$H?qr@e_37b2YEHJR8V~%+ zBgV?lTMm2Pk7V4kP80GsGYRQRt+!a?O~)&GwcmTzDL2@^Vw-(NB75bCxN4F6+_|lN zT9arC^DKx*eKQPdbC90zIwlj9`c~#@a#YMjSZS0W7&XjZOin1x9{N8YXijz7UCfyV zs3E#M$p2?D#QNqUUz^ulP7%#)=vBhedmf8W2L7V~;#c$NB<7RQ;5pU1p0QLaXLpbF zkAu0{1PS)>HDjS2uU>w0;5bzilv>!Eq)C^hLx$fyHD8qm7ekvTR1l){wAq_fH0O|p zpDF$-9LASG*f(LN(fp@sykJF2y!yot54bLh?%#|%=xa1BH-~+N^gzdD0h6Pm1tE3UNjv?_rde3k-%~HTRW=MQfx^L5{3;VRu&6RPFc{ zop|rwOE`oWhGw&J6!~=YM)+girz9@dhW1QB#@Zj7Xjs_P@|dTE`51O=N)3%d7E3%= zkyjt9ek0Pvy+jHhK0azSt*acMNMNQza(}ar5|63HMOUs5*dw}98dx@omwRkE`OW3$!S+ZtxxuA}>YYt6KJermxZ&i@Ds#!};$KCv(C&)~ zJhE@p(ts6JV5a>E_^1XRebh6A-MosIi!f}pf*s8OXTB(Fr<9l_5vTUAd&fB`t@ydg z&gNxW3p;-=%#T;jHQ{Yz2;e$f{Eg{nc6qR(UV5oC#|cfw-TqbeMLa7w2}+d4Q%cPZ5EjvWgS}dWF}d2?2mXB^9_q3dZAu8Z6D_nYeSz8zs~Mo7L1epI zrtj)KdwG%zE|#Vkw6S=@y&Y;VyZ3P|hwWIA}KI@+tn{#vCB#Vs0RpwHO4VyoFZE>lr3-){y zHfe2S)$u9vK)p8uypvt@UQ^%yK%<0dZ~+HUdor}fnw zi-$!d>LuFpG>5?mO>rudneJ+&1Gj(GdDvS7*l|f}<+F5a9JT53FE$eDPFgej`X>qv zQx|m4RI=5o58KIKmTVFh#rc#(J}J;vc`1=L-56ZMAdRa(iT?g?m!JFC$sGir<(~60 zg;gGE%G|EJu=0LQK}&vgbUMTVAGdb7`?#&CZ^caeP=f^9JAi&!w2(Lu~ii-ZAvh7TDwGyxQ#CD;4Gx-F(!lyMwiJm@^30y}#S=eWV z=z!W?&aet3vY%8j6s(Y~KC5O=6X}`Cm11Z8Nd5G$RMvu$4z~-fE=Y>+v&kd=)KM48 z83ie(bylz|A>RlqAF_NU!%qI=*DUfb?8E$@9`otQBYsfgWMdXmjgb5Hj#$O(%hXyT z92lRv`Mbh~a}3N(NfS-m0hS#+%>weObF6yT=) zI<$nu%P8c(8PI=&zK;>l|HqAg-!J5U(y-57KbZ*{gWn||U#LrKk3fTeY~w?`8(Wdhx5?1 zg`iy>3rQ5^fK4*2oq3;TZcq>??`+;6yE!f5*SOV7ZHEl+tsr<|5?Ag+Y{#;bQj=#3 zc9E{Bx2l3vz3Is~L(-W?21n)sz*^!!WZ-!@P*5CO>ija(dD7kGB@wXOz0VWcVrnqf z^n6jkIU-+Cas1qI?Oa#4B0s6O;}vO5wF^BDN5Xez^7~7-@@0tHe5u1thdVu0o&0ZX z%eslpY~4kyBX$P?0bd4XtJ46M;JYMM{GthCLs9A=&mS)YW1GD}zRtu4`k)Nwy@nIU zx`n{!5RnbzX9PfP`qpP^{oEwOBf&GiXvSv8n~|6W&HCsJN5Fz^KSk#wS=sC@MRKL9 zxoL+(G7OF3d=+t1bb-CGzw$#{U1>QiZ@#A9_62^Y{i~BuWEPAudvm<-3*fS7xA|~k zhHKKNH5R5OW3$@+TN+wYTh0Z&%n{UOTK_XcVc4K!zNHDh7pdJ385;0}GFgAH&rs86 zVYeKe&0JStQ(t`YMl^XVdtH;6gsR0i7oMoe6&s3PUgJklSyHm3nPB35WVZDYcqI~H zvh%J>lK!yq1FY$u!tFOk*blA5(k=Wq?^qZZl<`@vTrK*4cf;NDM+k{18j+``ySRj$*OdC(_kUHOG^8?xq)~NDMhlfLvRL=J3 zzqDdqY*q2gtO@52M=xx#=dEU@A3#K(NL4Mb-OAFd1r@CMDP$Zo)cR&4FS)cyM#m*S zw-I(ba$9lKSS;SUkGC*%fB3CH{m;>8ZR6dAPI@_LI!!A!?+~DB7?pc`NnI3eh+@qH zDVt~zu~XnWyuO}T4+x$a?930uEH4qAk+|iF1RM~2grJTOkOWR>ivLb__I^f-^~&0`Si2I znh$lX^sGAlamPK4|igl8#J%QI zAuN|9`t|)w4{U+?gbRmdHFcatxlC&%4mZY(nJ(Jt=hO@4AIGHr#KGU&X#XkwR2`2t z_(&0fSjCA(Qu$dusj!&aY$)$*_=S>mo+B0J7JEcL;S%Rv)AsNaF6DYj~IcsD-t ze5$k>sU5yjA|@z~9&XA0$W+YL2%UPd8;s>LtxfWA@b#Ev0`FLpEDPjj2fw=rX}xU6 z4W|-*qFb#o<3QUzLY5peu!&_Rz{|e2I2||nMgy)_N5`ipl+Yzt&lX1oIo(}RE+SA6 zvI6iZK78+uMC7<^s#@106=j*7%;e>3zk#n$$eR}Mch|{9rq5-i`T|{A0(BuSE)+w1 zR1ogqhp_Uo+PpB4e|Q!hyKii?d~DRF)2wqq!3`5fMRGMT{+xo4?uCJ*`vc*m@8AC{ z@#f%-WBk$zy9w<*6LgCBK2Ihzk||QCu#P=!%)r?C-aa;iW{{x;`vGi`HNWK`O!Dwu zVwpFA(qIHlShPWgC91Ar--f2<l;_mmpj)+_h<3OfCw9NXtHE~jwmYmseOV7}wf!vu-bMpFO9`J+3 zeEE53KTL4ywOKtS>nrVbJBEerg#!D8<5{5*TIid-)$95JjO2l{!_{^`J61{~e*+>F z;2{N#4{v%DiaIb5{Tmqg*9p%jB_q z?dM6v#v;dH|4VdjSGD;7;Z8rU9>n~0mJ)~b13%CS;gnbP0H={Hwr6b&i(#0gSzihZ>jK)6hJ_Vii*|rfGu>r`h_Cge>PvV6ZCM^w@=l6qfT2^DrZVz zPgMMsxDfazBGD;m#=7VTPFRP=*F3??%d5uy?~4#jMz+}=Z`9mynd=uKCoI2UhyA@w zrc%FBlgT;MHe1Sfvam zW>XgaJgku#gNIswk|pQ(JXjM1Sn4^Bi-$(0fTNS}xM1Q9PWaBIgqO#6pId_|h?x|) z#K*z+o#GQV1Th8rAvlt4OX!^`YM%wKCrvvWtI1$%ILANa zy^dNp2UYNnn1 z;TF{l2@9pb>}nV4R401(vYmQghHj5EBjX!VjmP?nPa0?k^}(NV@i)%SL-j}I^l+#4 zIX3T4z1=GlxbT<~PQGN|ko;rGP?w<_ixC!fB7MW2D_8Mx{YlqqRCn#_ZA**o8cfN; z&s#adn1q9b-rvR_xH;;}F?Z92@VPdI@I*EB)X*%LgS<%$uva>Mz8>|-#FOrIvJk&y zpZXKGhC#$+OrQFaha*fXs;O%#t-0%?C?)$pb6%Zq$?;S*B_1Uaj#!Imm4)8Yd@WXE zHJRzUbiZBX3DE0DE4y~wT=T;AK`lt_Ak?Pb|7s_$)}6K)e};W-e89Ve=e*)d5%r3k(c-2gOwoWy(>_E`1QW*V&eT%7Hy~Df3)*8U@4#+FYR=u$$D0Z z|3?#~=t;#v7hl2?7ix|6nGUD+kkla7k9Xeg+=bo=xW`2p%f3WpC^Dhgs#5&Iz)YZ4Boz%tV z+K)G9z_j&`LV-@XA3w~NesEV7$`fJnoJ`7!4*H973D1=#DI^YdbTT)`XUme^!b7>U zlB&@0!={5Y@^I+g#vlH3)D>XFORrB)9QX&v^I=~NT)GB2HKfD;j;qIJm)8!dh~R<( zQ`d2$ksDp3{_QhNG+hNv&a>%dycBCHpJ+6q)1#7gbvab|V zU9fwZi;;lTugqI6fCA$u#d7pSz8mSy!fS>#RSoue^0E67L}ajY81G-A3U%CFYHq&! zF`;O^uLMXIAoXmQcd4gDptd*q67p1XBmcYUM6jrh7wM44_6Eepj$s$`T2XyIa$SZY z|89N#FT@{hGxERfMlBP3a|$qbaN*Z1XIX|=IFDREhEr^B0oK)X4vvn7h#ZRkG|{w& z`^#qSIwx6Agp2+9ORJjoavlU^Yr3KZA_(tVuf-A9WN|{uS%6l-i&0+C4_{BuZJ?E>LWNBB?teGiSQg+3D|n@ctGH^0k|aN-)6kMBMukpEs7CH zO}u(nm_gT)?n>_TTEpGN93s0>y6}+^PuZf`0<$DGmVkqU1Mm!CwUvJ(uHm?a6(iZN zc3>nYC;!7vU9AKdOo)s7aKq-bpXkfIEfy6?hJbJkt~&!wN+7%T9@szHPHMD1HT_4t3)cA*x898bM8oy86S>41 z(YPGV_56hG%HYWoRn4LiVkp65R#&vNg#smykCc%34JE5y`=GVD8d6<1T4`~|_heSoGNj~mD zknKB7KmsDD+Hmt(Ku@UYO2I2@0S&0F5j}fe7}Ifm0vD*4qx-x*h%Qcdx-s&A707AP zhWp;~RhjFIAai8Zca{7h4JpoVLwj@% z#*{>}^_n4GH#@nnnkGw)q=qw!qgzu^82+#<@m8R;nubJ0(o-!PzV$S6 z{MmYUhJ)NM5F#M~K;*l%iUWlu+}zw^aN!7gR(vX|K?Ge|5}!i`<0G#;glpo4Ouv2s zvKE_U79t8fpMCrD=R)Md1m#wTOp|((-}Qr4tKk4DQ?zGX{?tCI3CTTDp@wS8mwR&@l6w)tUX=Fe9||-B@G_#@m@vJw3h$pftY=r8ceO zrACE09$;l<1@*zZJA%9$(HF!gpL!prs zFaVQ2{#ALb{Qk z1PaRpzW_3i5X&;H@JPhRGK5sG0-(+R<^>4CHx9arH7f<2?@l!vtZ%Mvpj-t7;=^I; zhD~!JbKd1YM^Kz>iu|P?wR3-E}jq4{AW6|GZ)`@Br5M0%au1OPceCPWUTviXpq_VBd7zM2`D-$ui_EDI zQ36PDc_twe1<>;ZdqZ$M7o-lrG+JxfmrfW|z?|IK9rDy@svEWuEeN&NgFf8^Bzp?A zG&(y+hlaqvwP+<#D-rr3%yCvfj1)moT&-6=8yazk;iJM}BnMYED4(hEy5@A=9nbr= z4244FBFMOpPEL@Q`;)kM36uK>&oQEgW+hd(wq~wGFRh}&Lgs^L`1IDgB9BQCaP%6N z1G2%v!8pywAm$6s1L_8Cb`-fFHddu}3pel) z#(u4UY=5k;srjo=<^?O;emuF~T%x(qV&&um z(_hc?2gP2p%?>in!U9Ne@(hFGAY6qq3*y66S4T(2%019MohUq>F#hj+t;auE{u8j& zRy=22MGhHZ%hRgxD-P*Np$s@pW1_MS3!ZJ;iaGh)d6_u$<*!b5tW-Y2LPCh55N1QE zjZQnG*Fo-mjB1E^X?US6bhKHG3|puNA~qMfxn`lFSwwoe|LBeefHgnN(PHItw$chg zx_E-1x#rxfY~})OG6gvAfBd{CwO1WdO7{K46x-5~i0=Z29#m^XfX6K^faejqAUWPook5b2n@o(Q@4fUrTW zP2k%^4x=vYDL{e?wZ0DKql$bX^XYrmWl{+cNIg81zv1&IY##G{Nqb_&xTBqsDv21Xaw=mpT1`dK&?~S( zZ5|sVJ%b0g&$i6%`LahW=iuDTXY<+isZdYO{r!^f<>~pMN@$bmW0K^#)|QgEc-Ms} z_A8T1t1K;+$B*{hkI$W{Ir00sNp=?NFrjj{MD8q)%S(QGavqLyheWZ#njh0?99Kof zNxDI6m70Z?(Oem5v2zp4!FXspM%aotZ^!cE*UpiIu^rKV^gy%J=m=!r@Qfm&W_L+s zLTdHHx05`jcclK6zV8(HoZlua!AfGXjASI%)e^jM-t0+#seFofDLpKhE!p7S*H$mL zq1T41BRwM@JX?_Ypovps^5t1p^YvGZsa8eDdUjl}N~SZpW@u>cg7w)=zu(p$E9>7z zo3Xbk&)(Z1l@m02y$~1~tR3TV(dObv-#Jep=iwfCGu8FgZP_nk>fyFe3lXqc-yGtP z6Rv)Z_4mn*Xf+KZ>2{laGHjv*vRl@Xt;LQuLe*XGi~V^NH{MGHMG(pk7o-wUO)bR{ zK9o8PqG^{N7pu5<-N^?$Upi@H=_4Yy8hW2gpX29is-~de34Wn8m|&o2 z`f4i5h11%nHxyUttM1a?euuE_6ay>|MY{_0`$%i6l9^hD`7EomYnE#`KQt5xiGEaR zZrWht@%}o<_Oe^wN9!aWm2v(XKzqhso3zm@Mdm}91EZY)-5kOLC_0^>C9eQ4p`?gP zCW>$SmN=mVbP&5$Dzjf328JKF2xQGpi)aQDrphQ{w9oE%Qp&{WxKz9h#)bmxM9GKy z+e1Bf`OwBreru?z?v4HO)wxM=hei^f zp8t$L7X8-j%&{I5-NlT?+*E($y^BZc6Gxi@83Zn%m+URq@_3S!5NI0Ge%^d(JpD{F z9`lc=jghpPS!#bJXZG-2dPrOuEr>HKGHJkPqJcV?n>MeUM zsi#@sLSIlae>8uq1#)kmE@;-<-_F<0kE6@Fzue|N6m~Rgofznyv9xzv`il{ggaRA3Tc^z^tR4~2o9|txQBn6&u2*_g4u}r-VZlHz zy+T{DL{`g18h0sy|WI2C`eYaA7S88hER% zG(8qLiqSe8+(k}t4mg*)z_WT|Qunpfi#k}%9&P4zcB;s9NQ2VLHPxC{G;u&{ zBvpv>99y*r9)OK$#xBB_GVyQ=jPKr{eyw$FFNc-%8frX zslI{nGW&5B=N+rfFpp+Z`gLl4*f5lHkOi{4oPe-w;VfLz&E1O>A@DV>eadsbu9MEG z+_a>=k{XNthBMr?1=?#Nfw&3^|7FM!C-}3~yboru+VSM7jzn57fSB5^4UNl0Tj@vL zJNT|e_$_@RDyB5PFuSKYx0axg`v(Ptn|Hf4k6KTf19x! zc2Rm_!!%k>Yh=cRfg=J^Oskxcvv-M z0j?}7)`=93MhoirGxx{%L@+_ISwfWJ^p8^E)B`@7Xvx~$HF>u?>|5AfXr%9+K}{R_ zpTV}SwgYkJM>91V^iiQrO6z_TgiGmz;a~%-Msg$#!6Y6JCNXcESCDpy;Wy4-GnP-; zL{-un(+cP~S>xoVs^At~Pds@2wl5z(o9Yk)BTLES*}d=Z498eVur=BBuSmLFE;BoV zZj<>Yy-N~@=nQ4s{FhnV6W9KkeB3dTT{H z!ZGs%NZ#tBuhtE+Epno~C7vgf^f&NrmvcWmPth)ENt6b1I37|+)g^p_U3YItFX4iz zyu{Hsn{+6+rlwpe!eU^MIoIRHJ?Wvg|^u(k;iWN$~{h=^DJGG$w{F;|4vkI{fqzsE&Zlu$>n+` z<+n9pQZS{MBitC9Zl;ObXw4)fl7Q+DuEDMSS{;8tEAWO~8~k*KJ6tyN{V}(AfAlq1oB z@N4hH@i)biBGqUr-xiOLDiznrEF@rn{lt2u$QPgl?cU7eDS!*!^0 z8qWA=O2cgD6OaV*9>x2!S+xPCy}(>m$H+=xt+hITa4EK-dX1N;25U+Zx7iDY2z`3+ z4F(A9@{NG-FiJa?MsU@M_*`>|@o{iL(im}H0<4^U6gl3U=mA9Bl}>6seMCyW=p7#& zK-hmLfC?yHP7U{}VbQ(TQ5aLgja~FxR(&PkU1W5)Ywa;~6-`MlVzg1gYFwz*v8zsv zHUx=5a@N_ooANFQs!)4dDGiJU7Ule;o_cjO~>Gy17X78~+rIhhyFj zEgCDBB@sh~2|N*ZzQ+{ScBzpzmc;*X6Hduw#xZ${YsWJE2Ni%-LSH64>VJH?S!Oyy zg6yr`S-~&;6k>oQ7e8QP+$io9#e{=paD+cMHU4xzRDV;fq++@Fj@jL$WROb-jmd(rjzR#*f z*FNq*({c}IEFzHX?NTWiT4lmzJxLMI?46MCBhB7Rgb~dAMZY-_6uRgb;$dW3vc3k? z5E%9E>D&vcxEiih0m#P0bP&V&aJv^np8M4;D#fG@nYMVuAKFllvMASuC1)tV9aVA|JwAAGOYWH{^T?re%S z2r~n>-Sum-Cvb=5j-JD%h#)EIZB64Cf6wcXu85vO+@9#5XmiZN-Ci&Q2I;?j9ue~) zb6SmQh^MAYM{m?J0UaG-l<3l*J|ihABJo*S_)&T)V$iBj4Vd@4<#hbG=XW@u!NJji z_Jm+nxy@{J zPrjgv^rrCrWnY7f7jDzIb&~@u?sJZjB^FVEw(Y^V`xuGBPpJd~Z25zysn(v#h_!dI z^X)MaL26?=A0lbilVY5l(e1PMFkxjUaWqeAQCJ~P2aCw~s}y21Z2Ey`JE6s-_CVSi zj`7-JbRA(z8aBS3;DYtfWq$P&9xo*5Frh1li!# zI*|)R>novDOVNab1`?+hC8!Ab+^~og(0cE zKRji+^7_21{(BhW(3P*FhxXR7Vr&Z2))yA{e08jqw*W;A3!qV6Fz;=$6j|Kyoikim2Uz0O<8J8~j)qt6iRM6HU|~a#|hI zd^Xuv4c4pk5QKbxYP*54NORUabnI?D`TCvfY=PAOE%N1MkY6D_(C9gd_7zuRAOO_%=TAtf8=H(C3!ITUTbV<*3N}uFenyXhj;d zX3G0@CNa2STmqi8pCtBt^O7Is2#|?Nm$uhmV-Xf&A?lm0Bm8W$R{#{!*;j?16y5p- zAjd;g_x!h(+HS2LkTnR&_FOycAZ*_6TCQ-fjmcDD$j3W{5%)R%_f+(B7WAU*MWqnE-6oW~sGY z{n$E;{LN^-3FRQX@qgjd)O};GvJ7RB- zVtgLB);)?+sn+;Slv*Q>Kc2BhZ+GJI^_icq7^}Lk)a6*^HRA=<2ZO9;;4z+bh}}f2 z?P5zOzQ`DM5zHUdOFG;FEPfAipte-a)Reant9Udkv z*ddfQHhvp}@L4xud)r3|{PJwi@hST{@Fat9z-i5IL3_>p*|$1I)~tOlz; z3gv(B`XhCs4EH)W+zi=aco{Gw0+PxSC)o-g_lNTsoMp;fZ8V=;5!Pb}HhjyaBSs4Xw%O z*cT8=u#xNZDTjm}){B?FzFS!FAaK|7aIG=VX%f=`XsZm2z^jz)xQpF`HvZ*M71rT5 z(Pb61(&HV};;GZK4o4Agn1D9IhfH57*A;q9<^GI$@Acm0CqsFyebew+C&GI&N7}Lt z=w}^cgQmLpQs&*G<3n3o*=n3Y7yh&&^bKYts=_97p@&*ljAh=7}uExTQL#Ip;jAws;(wZA`3 z%?Pm~J>m8%kV~+e&vD#c7#KsL6OO}--{aun;W^GZOw-OY$}79ge$r$>`BZ>ZVLeJZ zMBY*irbu|}n`w}F6P+xh`E%>rV9t9KQ8HDBk1kg0{%RMb&%o<182mAbogE+X*R_-g zFu>$5`Bp?e5~56<{rT>feHTHO`o`sR_zrx_nnx=pc)_;YvXV#$QD{-sitv)o$))Rs zKgg`C^sRH}YaZ-(f2zHjGBIOst_-g4nRp(yKlGFULUcMiNTs)rMjzO#8quXDH4J0R z9IT>=BaN!c?zg0{NXE(5ZjCz718|eQ@9auJ6-M(J?3(4t9M$tf}(1*4&<25$XA^tfk~jMzdyU-kMjmjSJ`Sd4rr$SJ3!o+ac#!pnA~;Nz28|e}*ytK@`anVYK{!F5>Z!Bo=I(?98Wv3= z0drb&Kx3;4>0~hrFo6H`X4bi5{*}9gkl3g~?1u^{yQ6(APqf%RO%jS(2eq9;n%SJzPh5wqUn=- z8AZh|YaRrNE}{%2Dv*JJL7rYEM*5zg`N5%_K^`GqdAhCDh?r_kP0i=sWZle+K*5vj zwZ1X~5)(AUF_Z4gtIY=;KEPJ+GULXQ?_!}#soU(S1Td}B@26yLH%b>+7~}eyuFDHw znk+Q{3mkb&gT@|^kXF|NkIG@+uC%s4e(`Go*Hn0d3`OSaOz(-E-wt~TDsfX(`(;y% z`vN~p$MYn#rC^4m(OOC7)Eg|WauCPv&B)IskkC>mVL!|E>_U`HUk=C3EeG=tkwj5v z?_i*wSI|b0h!e^4!82K;{^ZiHp~X|CBWDH;XGfm>-UmtrE*CV$%TK8=Lk%46d2+i; zz;kcrsVHSa>cx7vRFckm@re{Yf|7`SP4NX7aJB6m;AjM^u|L=YjEDmSiZZdt+OllX z6R%sP1p0T{r*mfZo?*{L&eIBWO8$JF2stymsMB*czd>SXtIH^i}_ zDv`HKbfX4aIe$>z!$e|n*|_>jWt*rii&rmeu`Gf)jVoem4Ag4hS?$i=sF&E;a~Mf9 z>_L;VQ{sWa)t#n)bjJIq=rV96`~iez=LLTj1=*~T9GVtGlCaBz?~)$$A$(`8-k&Y; zDa8o&D+dZ4hG12=Zs$Ep(z!B`9SgKK9hJ!bJhQ!pI8mf0clR=h-=~y|UjN#hn;=bF zf{5xZ_D<_r??&(v`Q?Uo*HUimNO9-Dz(LRvlsZHKAxkf``QVHIMBr|o9|=K*xwgOW z)z074|Hy*=Kfv$e=bOG!yI`U(eSNar7PX3mz)qFfue?VH-g*9K<^DEN4t|@L9ZCi-$4@DWykIF)>|l{O?Nh=3kI?o@?*n=yZB6K}72ClLC`VU7?c zDLo6-=}gR9!iSH3rguJi!Qw%w*WrfGSrD_kX{#S>bU5m;d~7$X`sqB90uTQjScgX%M21yQWt7xwKbX!~Ha4 zE|Hj&y1-?k-Vd+ss#n}?Z|&0E5sX%Ig*$IU!3I1ZD}CvD*L!G6{TJcpT3n9+ezmTN z8u!^$PojzW)0gN+@7~yMxGdqCvXD4VQOP|zUD_|5S&VqG)gnvv<jt{mk+e?9jE?miLYfij>52aNxwzLWhSPI7^CR6uGeAqT&EtnKB@;ab2HqFR>%`S=m zM)+d$-8yxe0qj>dM?71T$X&m7P^W^?W_BmFOUv{6J?Sw!-zRRh$>=0d_9YW)}Pcjoo=0>#%8$EWxmShyRzVi9u#HZ z#U_g7vo7ABRvn;FI)e}-)1zg_Llmf2NFa5Ash0dR4O6urRh}WTYiRiUsRN6=xkr<6 zG0fm>u5&=&r5wrW>>DcgE$*Oet&oMX@7Gqq=`u>oxzG8Yt6D^bH zMGMbS|3Ggpn;p+99Yrae+`yj{ukpilCPgFOL^H?Y$EHFOrNU{>TRCPixwBtqV|>zC z;@@8T@#fc(*H#?e8r5pxHpnUjUY;JayClveSrsKkxWk+WxJheqYUmRub*NW+7Y`?Y zRm? z^RD3pn?X(#N3WwQG5LZy)tbVjtC=?=-1lUJmpjZ!WG~Utxk}>nW*Sh*Wdplvef7j6F8>#rcI zb3`~V8fvkCqNrt?e5=8AK)Go<8+G?XfA)O;-NCnr+6zwCZA@b)?*xoX_4(#L?S7va zQn>Ry$f*c(5WG~k=juwOC`VH0iM8CD3V9hx+Bsf<+~elM!Vy*GRN~KZr$)fF9?0W<8O6E^=uJbi+rv!(9Vz+0dZCpEcZG~OhV`blXKmg@Zsoiu-w z!?_c2w2(~VtFSX~20&T!G7s|rWWB&jM#Io18uo;At|Gg~QnoLrxWDe9PMdqBRfdDtEEU?{_0Zkh2OQkk_P znKMaC4NbLjah7&9c8=`qR>8v(jpCIQr?HcrWpQfvx0Ku7-pkB2I;G=j8;F@mf|8mU zDQsjf&W>+40I9L+8@mNEhQW>aqjo#~)IKB9kL`8xoie9$IMCGurgi+5Bp@M4?CK9( zGQ70ttHIDQH%6513I-((3pc@?h()ourmG>H-nI}wchHi_PC&gqgeN6QD|uPo-qWu9g$!S6l9r{3nENc6bhq( za95eLoz?XNf_s*)Y8GVL#)W31Rf-HpkD9+-{-VmF*OI|eZST~p)xV%YvD>e|)D&9a zLYK&UX+z&lT(Wv_+<$kVOF!fWl^j~^Z#7|(VXoz!(SEl(Td2)@^+iOJJy-+G{IZ!V zin|K*2K4Hp&~%@CX=TZbLXKF;#L-Osv`esnA8TK0aGJNNy}BDzpot*Wq<3oN-J#Ug zDSe1KXb&{xVfTrBwdJ!1*y9y%TX#(w=3frq7}Pw*Q5o}dce|mO9E5z0MCXaI7VNXB zzhJ+N)5r?EG@A^@RDXM88p-M&R^41a42C}y&@);Y%oWw2*w%V8B{o+ZT+22<%e@Wj z*MuWkZHacKL{5Z*Z^dz~eC)f3l$iQbUW)4Wo zj(Dr?9Lgu2L)Tl3Cr!;`to?o~gw>-Y1_!lVZDN0_gqLsP z2%3EjO7#I!cTf^Ocbu`hdM!pU9gOzpoUC`_j4SmMqhjFBWNJ$z&_xAiAF*MZ#vP)V?wbhDmej8Jx0t1u z3zBry>9#5!u8~=P1Z7>l+i&P%UcRhIPer;48fkRZDpFkNAQIHK>03h~|Hf&@zo*7* zjCw3ISzaT_-+(^0+4RS#8dX0LdslK%aqk7XhG$e<(c)7Jh1|_UN1jlu_9;U7`ug_y z^U16?y!IjfwI-d%HiSxBA6+f{R|SUs-d4evg{nE#qAM*3NFxqcVGgZVH&-KBdw^6* zFXD*)=(sZ$Qknx&5}2(p?|Z>$T5*Fi$@92V z{*%}&S7c_4u2gw*7X;5;*<5+vwj5;mV^wk($xAHwYYlTqB`3ie6f>?t2N z=klhsFF5NJJKNPsZk9T%Esh@TQiF+8$m@m@JYp0uZdjt2$)9vqv2dHsg54rBJXNI(A~vLjOKj7ob9a4c23M5 zJvZK;7yoDs8-1tkKvwVs)kETQew>Hb(8xC;!88C_oKuwZh66is5sNDgO!_0(pUyql ze)fcK`y^8~y&Lk@`dxJG38v|-uaM*Z5?7U4+OwZ8!js#5*v9LP*imAoj{hKw;?rN+ zyY8Xc-+h?fb!VQh2u_Bt?wc~DfBGqnJ$2sR?398Qw9-BC3LJ=ShgD8swnL1+_=Njx znhgXHn|ik!qc>FBpNd1p_rw=lNb?@q+#%RgP|Gn&Oy6FE6zQP_&Hf4(U8gf&AQyb} zdaG_~hkL{G^4fI1{}(VV17vcSrQ^;_dJ16ra8g_jpgS_fmlEwrac*6BZvN_Z$v#}b zt?Yi%Rlj9cipyG-r{I)NpERv3aTDv_2M9} z-i*N|dpEfW>;1a@&KkVz)*0cxw#1%(CYRxF22vb9(+fq3t)0S|e^3<>*l*Q>U_Oo%s3)Y26^M7l=>FUm~h7`3V( zolJD`V>h7~LUV(~ZGmuIPNUN{a=`ug}PcZ z^+|BbaNr+$*=P9kmkjnb?SdNKh90gEwSYx8;<>=3_Ok+P)dtBvE9dBcygsBmPPGP- zsa#u6u90&kYA8^c(B%Jy1`HrMK@8t|H!s#-VFEG5RQpJGH-Yv#Ste|=TSHJH|6I=6 ze7#p(L*vL~@9JF)`tJ^x)}5M@BD5|DNWHD%{0B)*VRBW_T;YV`b?F2hQ{U>c=0|`9 zZSHAq6f!ukKARtC>gkjqA~k5haF2w|4!CtdS8q25D*>rISH95C+msyljjO=Kgp;Lq zkJ&Zf<{6R!h7My}R)idn)-`SzXdyLlC1&)Ewx=PSKMj36?tqWXIFUt`6 zc2yey?jxXR%Wu_8FZc;Hqultb7Aa5|^gA(eqYb$<7 zQL$0VPV=$@mh>(XSb)Yh+Jj$hx)q!2u~Cj5Ohh$Osr}~f)`xwhkhaJmC^f9OWo2c3 zV0R-?ul)i~`@aUslu^sYdni6RXWkvUq|pe=NG0%IK4qBLvU@DJ{2GvU@qQyix5CZS z$UfYE1}FJCP9A0b4yx3&2s`{;a|&vjw)rW!$KIpfUlQEK1=2e1thob_^5b}+gta@& zsxfPyqevs&4pR3#3w!zBSbGbow!Us(G(ds2Sc|(ADTU&$ZJ|hUDeg{-y9al-;1r6q zP~0uJ1TF3ar??ZG8|eQ#9&-# zzIiSW+a%pO0Vyr6=oCEyEJ556UjhH~W5}*eZy)OJwT6fh)2-fh9~mKx*=+myAE6&; zv9+{^hi6a@hauJ7cguyerCrEFMS>(oqf@ z@UFT<^wx#>)9UET>FonFYoAimZ#hgJIQV&qkPvu_2G#G9K5xLU7#*G0o92a8ZuD1G zu-H(~jh5e$3u_#{)#xE3U8qn0$)Osbbb#S%L?{=vvD=e*Ab3{yWPdq6@F%GgVh^m$ z7NS~LjZ{4B7Gfzf+gaP1QWX&Rvj;#g;lgaTTUI_GBh>$t)D>;79aiDpMpr>Si~Y6v zg_DPG#+J6Q|Lh{lH0Dv|prQqj=g%9PkVj|G^hmTt=v@cL5Yb!$3UC>4>B1)7A?bd9%S`Q3u;Pe_ z8&iEoGCAIoLgn(rpD)69SSZY459FAUYS~l8>>X$IYMvAU)>+!f#Ld(;1X44XmU?49}bbmuukyiMe!5a73*&B5>Z3` zjICzJpSz3i``7wHTAgxgrhxPK)C-LBd|-jclNYmrW|?JdXZ}a08J}+mbLlDaJiL6E zBRocjNYJ`Rol1)6E)Dv=_6we~*D06^A8=Dh|jNy?;^IsJEL>UF-6r4pR4j z2B@2ZV%{C+x}D0Z`vLU{Ga72?*|{*xsPwJ-S_x2A(`y0@ZlP^%pIM7NA~uek@xL+b zt@uf4vj*J>pdK!+u18C^SNfL^r^?@7L)$IXE$qMAbYp~H8$_9-#5)|i+ z91O>?UU3_U9hn_kKKZ?06Eu+C403)ooQ<9hT;a3pcDO`$8qaxK3>q-njS+GLI%A8b z?qE%9ffb5(55n8a;Uq!D4Pyizmy-k4`Dko>^R!hyg=n+NFRpCovhv4|5IAW3XjbOE zHnUoNmU6y~!F-(^ux|)1MJLBfV5^^5&Y?L&&GVvw9g@+TKPI*JuY;9WiyAhS#n$E{ z$pn&?JAzl&*8^uPnPFomSrFqlw;D&`YJrCE!?)CIJJ%VnLLO}jXFCf2waY6R=x;dV zOYes!kDak9^**?n_GyoM_%JpSJ_P&4qLKNqToK~HIfc?&?J^IaB6m7l69NX%8-N6+ z8>kxC9klJNe|(I|-}scyU>23;2esIm{L@ymtGOJ72VY-;b-q?w0-{Xcx|Oa_5UBB} z9-gOE0uD(sl-j@k#wE+`c(BI5g!mifL{P5Z*bM{{Pf(n^6bBhsgb^KFjmI-Xk5(=+3LCuw7(I*P6l4R%5qGe1>VC7M(q~1~OX!N`B#8$RNe3;CXWW zNeq!3eA=2A2<`Jb+-kS`Y@i8$XUz{~sZiX%gcsZKb9U{@fuLx~16J7=xfdmcv==f4 zbt^j@fmZM{M@0ZwpX$O=3&@C~Hw??L?leO-fd4x@Pk91(#(T#i;yn%69h}wme#B@s z!wF&B*;my#EUvTs>{~m3z|#T|TD_M=@UcT>qd6 z-t9%Cp1;^*0v?adp3=c&UN4Gd)igC+C~BrTVTVheJq0J;f-7u2^0S^lM06h)ATNdK zWDnCl$+93bBlD4^>r=IAUt9lpq?~kD7XLHc^>~m4VwZT654esM<(1iN*%wi$C-A(7 zj|&W-eRNh|bN=Shr}!gU>*v6wxH8QNp|;O~>ti~t=@pnPIQnle!gUEKDer)KK*q`_<22&KhmML${z?fpR-+FWs5GP!yMwjT<0#@ub1adPLE~ln;CLjt;69 z4_hgm9KNv15|QUQ0#^!ACJT?-^Xme~RgSNkkjjwe*d#29ihy$^r;S3}O1f_|P47u9 zWj}RTBjOOy-Gql|%Pn7MYq>p4K73E1wHBbY(HhhiQhEv_lvf2N#3_ClHVZ^1-|?TV zE^VkHP$`%b@puCf@OB#J(FyS)cv;_scsPTi_Yh?FlR?+>=%Z?hHspA{AD*=Xo^cf( z7Y8C2a{pbd#q;nR@)DZYOXbfmgq1IZxWojePu7(-eogn5WLc%NYCUT#rv*y=ksye- z>+|R@orJ`a?Pwg%h&$iVry=!_Eg8}N(vV)+-+@49QIr~8A$vALy{lg>*C$={XE>^~ zP?Ep9x^IQg@9Z!SFWRUcm$E3&92s#3@5!+;jklB#S@ECeK)nVJVY^{B2Skn@ra}^c zh@=Re8>S;L`AKx?=FzoT*#ffuI!pYbqYU86^S^U1&*#9Tomom3qdfD>CVMDZj-h&(E5w88d#B>;tqE1PeR? z&Sh5T>X};Up=PR`)~}4N-PvnwXtwUmlKFq|sSyOrjuD;r7+1ueUU5WdfwVNq0mo!( zxd-}gSD10m=q4NCE~90fPty8sVF@wT?1}vibZ^i-*XvP~XHG4cQ75pOs3-VeFy4fP zNXo8nZuSIWkeEZkLS+1oyhSf|iM)9%r+u=rvJelm>|Q#^!OoK|hL!S}uAiA5-4vxQ zK)z*KJ!RjlxUDp~`PvmV3fPhhG+93Aon;VgS)<>j!?_4J0rjAaY{CPEMCduLi;*pP z)!%i;{cLhtRq0-|rdqk%OeV_e4@$8)EOmtO-xyJ>1(HuGr|}0&uo>K&a+lI>)b|@< zu9akCjcuAT(%)Bx@f4JpMdL)}GwF-lqnFMbWHZ&O>UP_o$dXe{iPf(QfjCm`qrGu- zUwQ9%lIy8!|86LDTe;ll@zjM*bovme3I zQa!2j+nm4{D{uM_eMS$V2Kp&$TcP5d)I_-hzUPXyHIDL}P4NP}%^0`sFsyyUp1Zivch(JTG4XQIa{Yrjbr7?+ zsK;$7VE?`IAk8lYcbzYO9eSjo zERDg}c9h+r!i=%P_je_QwszxXiU1T^7^=s-o`*g>x8~cPwd1WHEk_ogNu2iRH+`Nd zSFSiEu>58qFh;E@SzBF)SjxFz`K&vBt{Fvq9(FKQJPoZc^zaed`SuIVapHh0!{Q;N z2hQeKKd^o~^vHX%blf)XYxcd^AbnO$Ypw@0tKj|a4WOX1>iQ(5)@bw3QKgpS!6*UY z&3;LR)3v&V`mmn?%I1hA=JXlWgX8wgSZM-3gg_`GJ0R^Xp}0na6aSu1^*lBGp0k|l zxh{o&QQPewDu<_7gQ?>8-J2TZ9_$BR>iFIyizlR&nIX(xYa=DKsO+wZd*}vf%KbZz zDqyU~7E*5#{!_0J?GN$KEEg`<*ja!>$n3bIY{jgm`Oaa__NFH zyt^*#cp5)xx(-rxxCd51D6h3 z?sf4LeW&o0l^mWb4l?D%)7Q|&t<8L%0cV&<%_O$KW?$#{_qT7IJI(dGgf3?Fu9cUb ztfU>V?R5;Aypqj|s%$mN`Q~|e#}}Ii6=2k>$*g92-B@vH-B_$mDW_RIv!LW9d`vct zm-Fc7DArf+r|E-{a}b)h+`z&MuoVo18090(89&-lIPQ=yiAX*U4r~g3-pLTfB3OR@MaHQyV>Yx$nu^8Sl zBLO>>br1M{?CsdyR|*AQ9{ln(*Na#(w{C39;m~;;t}lY6j6ch&ZSDl*=W*2ey{Ls^ zElMNI#u-mE&K)Sd?nb(ANp%6w`yzXHfx`;j=TCbUj%M02Co0`cPu0miOuQ{Fn)wS^ zj3}an8+-6{=3?*cOkk80GlE$?5yU`53?m#s12+`3UfR z2s2}WP`rta{8~91PRh9x0vi^rpn3B`*K96sjw$TVD2#968aApm04<5Fdu*&&NgV(k z-`c|vQJEraJzpPY-XBz&n9sIA$gxg~0wr#p$Xf`{NFRWCmL|@TXSC)#yWJwfk?Uwc z2_k~^4)WAw4}V`(=e#TxyUf(m(A}F0%AdjqA{@<-Z24|9emVRo{P2mGj>`0hVZj8UShB_gW8PKK#l>sT0~rN`)&DPRM^- zC^`7;U+IOEUTKfwFXiOqeA4^de91Ed_LMhXI!5r=qoucR-sJqF4^92u`$|H7r4Zxx z{{Es=j?`itX-U<5QGrE?xKbk5B+R?%K4)vY01 zD0oxhIFpD?aB#fo3s=yK{|j67GWLspR&$8W$@7%5Ms6c&IqW~{?UvkAP0YV(b+TFp z9D<=OfoV?8fBUWSDjQ69x3M$i{`Ca?j(j^8-XsuQNRJaj`APGHe)Gc|Kq&HWLvkCw zkSuj|Ykxu&0jn^(0fy|qSr7jmf(i8>rJ+m`aO3*l@6^D2P0-giOZss2!|&k-(YW>l zKargHPB@lKfh<=G`rVpZ#g~t-+PgJaYWZyL+m%yEEWNdZ8Mu>JE8jdo7K9U^?hPi$}j1U!>8?jcllAE%_uMFGHu)wHNE^&=t&kB*mS8w z1zS`N&;RU2tEk@F1I1&#Rd*_pL6z#CtQ&VC)ce>KuHOZh^XahKCCUDx7*y>2Gu%c{<-Isdx*0WX4Pnu(}>3MLcB3d8thT z)Xt^gg%}XLqY}wDEm=IPhoL3e*u9vpC$XFCZ>g(i>}EB0=1=bTHY4;7sQM$>z67o+ z1p4yS?Y+GkEN6Fy1I7<#a-`EVp912QNjO|Lo-{mhAF3?huMbX1a>jW@AS97KY%zK8 z$!tGn$__oVzfASY^>M``mbseGP7gqDWDdhKHd|`SnW5;oN-A?{X0z90H!cLS+pXjt zGai_`l^n;YYL|E^O>9#~8*?_m?5E#Ut>|DsWVMtLvaBux^XL%>i%I#YVa1;A=iDRa|j0eu4Z~rI-y=; zt{ZSzQyUB@tRS8pJ%mBWGRC8{U3DPT#e6IBX@}0N9(Ji{$B#sQWvj^x1R0VX+Y11L zKGz-8&O{1ZHq<)T1NEv7`8Sh#w!0wv>tAQKzQ}+wM+!LK1$7Fwch*ys>7N^SM^p54 z{_F^CMBz3@P`6AQa`4gTpl)LoQxi(<`nm;xJk9Z-&7sl$m{e(^~t+Q1UiC26S zG*_N=P(mti)&*+(X2Id|w3?RPYQ;Tbv9v;ezj1&ZNPixvtX@ab+TB3pFipmmK7+PV zq3JU72ZqcaxFfR@j0@kFgPT+B^3L-04e;T^ie=yoy|I zvrO46SUjlmtp%O~2h5<7V2Q~wMhCFeYU%(WFRod(3VG(#Q+qf!`=Y^;;o2KQBS4_( zR>c&&NGu(I^^TIQmdn&ylYhu7#kkQhlr>A#arh!RyIB}cf8^4ijNU}GusgqF0{aMY z1!g$Su^rW{$o2Y`ch;)6HXX1N5x$fI*&X26)YP>Aev*7FDnm@#oNZm#-`q!}CO2Q* z2U`ZbAef49la^B^ba;B?a>aJFLxyfXf?@=7=O!r^To~7Pfv|(E2>DuQFX~$C*{E|u z>b{`WbAOBTNP1<>VjbE2!8|1Kd+-SWL*X$c+w)c~X+YtPG(Kd(3nY5c_E)+_ZP!)H^OUU2 zNx$LRjqoD&&Xhn|4KP;W1atVg3C!$7<9I=S`Uu6F7RD1&T4gdrvic?({LIvA_fa@N zsDnHGvczHDh~HnSjcf;L&VRkm7~Z36@+2{IeV<0jk!U(QHjkwJYDQTd%uVwBlG0r) z9UePpmnU$O3Qt~n$An~!)i#wrH2>a6T~Xt;aB6Vmie0*;+qAaN3<mxBSjW^R9I)U|UtK@>4H&L?cZN z0P0TWHGR>79YOeT>Dp|D!uwpVLP`x=nxx7+InhR@{}H%(zm$9VFDg3R8xYhY{-9lz$xbYpMvS48O`$#V6# zB^u}ke$v;^mV}0f-EXVqE@3{v!CzhTENT^(1R^U9P>n6gE@uh5y-QA7I_4*ONWBY# z`yHQuv3k5>|_C0KXg3fEmf8C4_Ul5 zchYC5oUGS!_0p=!zFan*v}7a?cq0-&F}7&F#mj9V)XsVo(lUXc-d=RQ_oWR`VD#}H7{;F2;}7ll zDgTK1rvm(fAdE#@j^u_DDIrh^~op#RWug1ee>M) zgw2X*n4yG$o;818Wq_S&J|9crUbB&5)ESDdYy3WZ|LmR99NaGeEr=y~ctcC#h0$Jb z%t%i%p9}7-DS+ALgV7Z`(>&lLV;*Y9!4WJnKwLyYRqP)7yOb7Z1KhUuTa9SO=CuGl zxaXCZaK5g-(aKzPXG0Q)^BA|LQ*NRg!8xXt+ziFeUh^NY1CvZoOU*!#Dsn8m+Nj>2i8NnGA$e5t#$G{5RGzH@%R~=y8SzQwFt?@@qhUo`H3D>r58A0vFZ8Gio3=caLoF2*G50I$8q39jWzk?>x8vM58|=!B&T#xa^LGPQRu-dG7S-r&+mBWwxH(4X zW?xEvb4*^?0O(xPeqge_28rJt9x~mE>oVS*QFh-g#Q8^&?)~^#U0t$o;{XtH(Lxex z1^D=$HxF%Zx$mAVou5$ zFAqQzIo}6(TI=dLi3cBe_*HNIsbPdaV`wyn7Uc321)h(&G)dHx!=Jj_QOPe9b`%4&i7FF&wbGVtPzr?7gy5p;?LOL?tE|bV=vGD} zigO!!lNM#O!iO2`wJ5!P%h{ZVQ67o#y!X;ufT)M+Pd+#25h|-Wv1R(bv!9XcQWhI| z+ckZh^R(?`OI@Rj@z>`fyi}4Bnh15DgcSu3SDqRUbkPsa9^Dv?Iy-x2e2|N_enPeY zK^-GF+?te$YG8W86}e0ijkU7ajY2AK?0B%1s|^j`oXg|5?XXS3U{Nsoa@#}kj;Z3v!mKAdm25Fm{_FwrlrYiu8+-Yu3zuW&!Hv*y_F*c{*PtDzO?< zS|l08u-WABkN{8;OkcZ!ElF*@+o zGY@Sa10SMZo#FIqIZfw?^?dg-ml>_5CSw75>pxw8Uh32{013kNvW5y!7ocy5P?q|P zk8X50!=l&eC{T%ZHcoDm-FEBm&0>2K8uO zEU$(N)*4fA?sUF7+AqO7v)=3aLuJRwE--yF#MsnCjRVEJb@dkGNu7>MIlgh^o-1O8 zVV%&k+sV>_%e{z%awvrSP9!~HCX1i!|0q*FP&Y1r1ATx5Sf_6#y}Q%JvW?88x|0A^ zfP2qgFU!d2dNQk(^h1w8YKFHLSaBZO6505fn>R^9{FJuleOF-muG>AbcuSVdBo~|D zp#sZ_KUpqQO7CH9t-}ga*urbDh)^oA&-?yNQMYaIQ?h=MAF7cvV>e#Eu9*T!2`;!X z3u1}V$*wr~xqbdzY&>~6v{=mm->m!|QKHHetbkp7ez^GJA2xiOE=oouT*zTCQa(Qp zxN-4%-v`>diP>LcnIa}M^+8NMC2ad9z_iO(?vDyui^KVyLUbRozU_$05M4~O)8iO5 znvS!BE!7{Kgha7&$BQ<ZzeoVj=#+5+iIaGKHf@THK}FIPdG*GhRR-NiODW=1RICWURJ{rn7E|FY zfdcneOe6&_yAF>;>ubq>^9A5M!;!i%rIo_^NKmV(HhAByt{Eg_c1dpImm`1;tc?1O zXlt?y5p;5~zl2UiuCxiWjdzEZ^2M)36R;T-A{F$9jv*(91CzXqaN1Ai*Y=q)JV zP{5~K(>ikLaQg<~$Z zGAZ&cE8gs^0&OWY!^(0{7pY~j%O2x($&l=ukoI8^dH+VbCrDdr|3HZcOvYVi17VI z0*zpGU>1nNO&_L@{`MO{nTFG%Rln7((Au`Rci*AQ1Bad;3Zn@6Dr#Z;ZqiObeARS* z4UHaF5bxYe0)!S~SH|Orn8mMu5s#KIx+JkZ7CCXV?fm3?BajiVgVZ1Rm?$ciI8TF# ztW*mUe6QPO55h=we#Lw--|;msmWwx?PB_M?>_WBQ-A5>%;v7MkiW386^;_-r;#x<2 z`ZprA%IF9RvII_0DB_`8(E{ZQAjjGbeJs`_Kb0G;#u-zYNOVGHM(4Z^B+V1)*)j5N zTUu}TddNfDH^BSHwl zad$2<`5kY?R~`xN7r6L2hmXFWTxopi9tTf1J7Bf(e((GD%gyfVs3^j(ReSDfPuhC$ zR|K4M^ESEa{q#ussbOs2o$~oA|PPT%W8mE_~!?h!) zt)`Q=h6vAF*Po!5fcxMHOqwi(@B5FR__6&#EqLg&PJ}oul?X@O9ee>H58-S zO;qTqy{vMXbh^&_P$al>-1N;QsCQ;1Gexo{qSQ0py?krj8NZNHGt zC1On-VH**=wwo1Z9y$UDnct}J0_xMXn4=f$)7%uo^qm53;kr-?jYk< zS1-`1I~Dm7t2#T@;FU=i!R`-eq{O~6G+&*4Qo$HxU1h0n>o`TgBoFyWmU~aATp*Vb z=Iw$P8+-H$AYx*weHw|6kH6x`Z^uhI4>G2!56+5$10=#}D3=OcCWTur;&p)-K4yA^ z9vVp}Yv)^nhbq+chT>%x>*_8=));4f(yIW%v+*%k50BM#Cxcm8BM`-EB`*PfIC2Lo z^R&Bs!N2TAst%3s{u*8mPfUf?8~w>bL)Vg#>RVjWh{?Q*1pX0Mf7WB}t&Ew3lAb-I za_)Uf9x>Xg{4cA}gyN~_uZv@<2~mvYy#G`1V{GN>>MBxewrH>l5vV+FRoT7?_a9+* zNKps~1jO-JF2P+j3S;^?Z|H2M74}^}^AJCgewYX`W@0#8HN=>@VdCwBtPTU-ckJKa zN#Hr8G_Fr-Nk{8A<>3D#R@Y^B^oJkrlx~8p7c2-#W#CAepBX^eMI{YkOEE7RoDbfs zufjdJ3iY&A&>kS!9=*aW2~l`BEk1lNW7TFRfU7sScz8eUnQ>@~n@uZ;Y;0_rnw$S6 znGbQPBP0)+!hOIF&(HJWzHIPD93LM)7^FB~sMRw6{%2H<3j*LFRskRoNYlI2$LRA> zHR9iY7vh)r8lb1$0d}b9&$o%ZV;VDT3N0)+`kP2_tuJ5YFQ)f@V_8#+VLT>ZvZy8E zw}0Rua2GH+W`BJBNWg>d7@VWr>Rj!*K(u^hb#;v??gF8}d!1pVzdGhm>+&h%2Mbto z6SLR#*J5dnXLRw;;z2~;Yf>~97yn}_SpgnyZU)Epi5soN1U~&=I>I%pzij>bYaaSJ zDRnW*n@Fzgi+Dz%>x+2!UDzdlR;`y(brd*l9+QRzhGZ@w0#R}+Qc#tqq`%#2qC6KCn~hN!z+HOCW}V&>E{rsd95YSb~1&Dkufr&VRcV%~QK zlh_Kzg6`@w4^h*~9ojVO?ycw+Q-^+8P*fVYFk>w_EH)WZ~OmEV&|}KDC*31sOgVI>PISWM9(cDeK1sISdokmn zad@XJc5t6;K~aFDuO;LUNn>)%x)3f(Y8hsPwQe(1&RDvj+IOJeU%R9FcF?iihjJ5^ z=y-A-8J%-cv_<4)RXA=alnkr4j^oYjW2E|aq|MxD@pKP+f{^9KGoX`ADwd?xI|1FPpFJ(yVAJCpR+rJzUtOg40HXvN3#7mPq7anO3Yy z%G1tGg-+abU06h3-R5*FwYHkKq{eWn2cdH{5tJ-JggR3@4$^F~3`@~azZUL$l zxdsW8m7T9Xd|?R6P&3b#*S}B*&%TE?)??13q>wMvbcF7ZMj;TsR18R^S~-VXp585( ziUq(^oRI4q%{7pzA8bi`)*-W&)$B`ydIh;{1_YgWj$O)_FKKGewmt^nv1*0>nF*ge zR+jvP#Oj0CzIykmCF?>6eM-^iJ=kxaRD|0c zLVgbfsoF@oA)_QA9)cb&ssMMoy4DwnQuMH=3Q|1go`_GYl4Lb^wAxHNHvE3ySjKHI z8S2am?=t%!k}@;C%qt#7nGEtxaO!rByS}Ao(gp`E)Wq-W@kPCNh~CpN=~_{)utKu& zET4R<7qUWon>t8-Hl4$QL*Pj5p!FPTC2Ig- zEK(mi($J;A&Qtw|jqOgvYywcRMd}D9WgRZe<=<<3`$`yc2C_VNTkK3tlVwH-Kv5}w zBSBtI&hvE6{-l*SZOBlk}kQ>9@=s{)Mc_4<=vZ_;Dwe= zd+E0T8hs@gcUs7R{Qj**3HQCZ& z)!YpgNRnC8;su085q2cZxKyqHF;;)GaE~OM`_o9p(Lexq7rkU1#d-s|=dtdX8Fg=M za6iUosHkzp$RGr}R9G*l)){h&0;gh3#Up03tY~8qF|G3&_5rbeRBNW%GBDQN#qtbe zV$Ji($_)rz1&5|2x%(y>8?ul)_NQ+1hyu!tTss{;EzO4ZY?=dM{|;PSEUM47Nlq*@ zzPOO?vw5DK1C5gp*C(hczwIgIDri5xA^dQZXh2M^(Vryte6+ZedwzIVgYkz)!D^N= z#xL-m>b^#8rI$`#e5WC*Ihw?u{Y}X@8mUqG*1*l-927D7B&C~y4`1ZQO~eyIT?TWV z&O`^AmK&>(4RX|EOcx`TTRcFEzh8u1bC%UP5)GD`Vb>eJaiFU?5EXR4dO{3h{_gmJ zZu#z23j0^)%M_^LmdgR9CrrmC&5YF*aV$JZ!R}g3onRaCyWC`;{%zmNWi%^n@kRgL zwho=GA`x0VmQwjHHyzDf@9qfbrSkq-e%sz^zuQN(k=tu5Ma`OczM{U@O_$83f+})d zR(b|@&)fM#>%6^*J`%Le$?cJ%ujkj}sO#L3nF=2h7YBr#QVd1ZWLbeoa~N$C2_IB(x@bKg=0^gX9i+5FbP3U)O_~x z)xUfJOx8%e9_n$N?6&%J)Tu|B{dKCu*wl11uOGEV)E;VnA1?yT*ULIFCoqRE4yjSM zK|s>OGRYudcEoE!d$m#F9Z>Yx6yZ=(gvXzVS|4hp`G0*wQhzM>Z{Can(htS|-5a|8 zL-*qT-5UbaWAT6U#_mJ=Q2gJ$p_Dz0x72^WQD_l(lj?TDkzp3FA9|MSz~d85A%fWx zP4YNDjwRQGRZs~LM9&+-g-Ui$j>k>IN7j0O8`}~Py-T>XN_GakQJ>}Ud#F8Q=hlPC zs{(1b5g=TR9d#)e^H`^_kI2>eHDNmP>?-h~4_ktg`v3O{{C6kmpK||sl7wTK1?fTC zhjga$+HEIWwey*H`LHak&7e_>n=>=STJS^jiCQ;9B3O}130o=509)Lex)v*!L6J;u ze2@Z0u-wQ;Fv7!I5P&d&F~$lbv>~HCA_`crdgHobC0KRswp}ASlGtiP{95mbmFs?T zfU5np#Spy~dd{Q0__C+vc0$DNKAQX3Q&0-cz#V8!!vm82{zqvk<+}b{>+A{ebKl^5 zA(6{2a&Kw*Am||%Sl9xPg+d8Ai58S`lSOL0tBm~SAU+DrTXT2LHVlqo_k z0-DiC)6i(nP^cV`fd(L1!s~11teoeW~kiEfQ`b`Hu*{dFJVe?^uYIe_C zh(4Pju*;aVmbrSoc0zVDuN81u*7SvpJ;a zHcUp=Gf$X-t8V01=eIXm&?c;YN_d;4HbWgeo?QHq^S;?TP;f9L_;YW*a(VCb4f?u- z;t8i^t|^u=!7Tk1ZQca0 zU{USS+glBkhc2-Dh-{5Ma~6!}-OFF>GV!dmQzf9UZ#ib;ui_*L&DUGzlwx8fj(VSR$y=_^DcdaFiA368 z#w;g9G@pCv{HuA83W?(kiMeP5@3V5``8q>^(mS&-d9#*vYqg{bW5X7?TI1s$Ad0aV zgU&esG-aK0cRx22e(yrh6>V9NFWg=6xt4W}Ec3WUDmKT+_+p{AR}e3kz}ed|gzDab zL4>>^G*!=fvujV*(#!s>7LV2X25OShu`YPgY;rhzcTm5s_ur<-Un6UD7D9*tg`y-)}!LmEy?pbi0!L0@jfC>e8&iO;Wt5 zA4#~Gq4Per*||K&GB~9;ST4`9G@Q!P?&M zwS;UiMhivZ3d>>Hw|ZPqaR~dv>D|1OXQL%C2(=Y&OkD|uv1mub?Ot4oh>E%1l7^$j z8?7s2g^Lgl_qAOU7(BVZT>BpLd%?oc!27*MHoZF+SXu6lf5O!G$?rl{zkNk%+>>yp)i{& z0U=D|%$@m)Y?T}JNaiV3)zln!HK1>owp_&5pLcqcF}`=K!}`7skc0VcEsrlkDsPli9je4aD`^Pf238Q)DE zK$a$nPTgTUnwQ#N&aBf;aqF`wp_xgbZHwU92?abnjuTD*-1N>Jv`6>2v;LJLD419t z1^NGf#fkqcT>KB;Ab;hiMfMsV2K2PC>y3?(B?OeL7cba| zN?L4obf#yxJ8n-rR?-5S3*0v)T1ItpzSzm=$js zeA;}7BtSr~V5W=XNmvPuCj#A575APxtIF$1%33odhIiZMo5@JtvT>c^k}@N zV98v&q8F@YVhovlpqpKAI$wR-&!WP$@;kmg1X7}*Qvru>^71@64|A`w+&0B#Qnu3u zxT7Sq`c`Pj2s!P-9cl{Zqvd-7*m|OsKAUZRj+V`(PO+)yvCJ#nMa`7cA?WUVBOhugD?6caD3lVPY+t zhYrUj2e30Ij#ah@+&53J`8t&&t7%iUY+nu490N;#eqct1!8Q2aj(kC?D?L!9#hn3% z;H_z2D|c!kMXq7TNhfB_hu0q#Lylxx+&D*=reG=QX+400=}$)3A-equI7etPFSBho z;E}QC^h~cq0fXc7l`#|50#rbzu>xIDU3Yq}eu9ds8Y7C^Y4?4t`jlxBA%=8UGGt5B zg``&*nZFXPiVjS+aM(V4R8Ha8;m?5-Xn4V%*Hou>9Hh^W;BKP+Zi?@wp#g&Zx<0dD zH*Clyy{${y4YE%X#`gcN_4BF?WyK4QqX;qFz(uyyQj^;A*1s1|@^%qw!HhJV^h?1F z*3I1p+izncr6A<$Wji~>wU^4|{3-TeHbaS#JG3<7#v!;t;wbUS-^NqnI?pvee{#%D z$(fTtTPcCFbyMfav4igga+0MAGlLHDSd)L6OZv2b_g?62y89wL;k*Lt_XxY&Idk`% zxYXnpriTr@i2U9|lv7nmMl@Pc8wk(PNmo;8J)=piY*X*R4@okCX1nXDJvSRN>1*{F zcfhKsyRpD-7PlK4NSRl0WNXaQgsg<^<^7gH zJ@@>UvVm*s`09k-Qqbyd@aV}4A&Dtn#!!C=%2y!UTHLp986<^o1h{9MawOn*eC zm^&bpTgfWJXx(B`B~Q{ste0XEW;`z*6h(6%o55L<*0Z)94jClr{LLug-~~K^HDN66 z>hcB5$g$(UN+Or5I+>Zq?3u1%q_jCa;3YW>UG?BtJU$q!YQD|a{hrL>acc1$^!|cW zc-7Vur#h11k5EWcIHKVU!V{3g*liwe`pqtK00(7VLjtWDXcQYNCAz1nDs=Vq^Kb;* zKa@%z3nI!uNr`9k?L3gC{*`!(*Vw)w$Wi(Q)W;D>m{|P~$$(kFA$0K3TwI{15dbdxAUmT*Or8QjBy~oKV zBdV3EK!)ur2gaJw8*#d2aw@+FnGacgaJ#(iu^+Bh;gnKsai&v0sQikeHg14-PAwtl zsQlBHthrAU4aGE}F(SOE?1=0f-<;Htv{JDPD9}bcXg-ekbh41==al$babYPfBvWhi z#=Xzvd0nli@aO!a8aB`ieusY zz2@XU{AYe1nV+x|Iz;$!)hlhL=88LCn9pbU{3&mh3w^n9*te-5ktNVwyd48yve(giI#U)WPv(cP^*Pcn_9uBgqNMItlsU_zb|{a>8DbyytV zwk?WFLU1PpcMB5S-3btay9ak~+}#}#G`PFFLvV-SPUDR>xB2aJ-u>Qt`#W#H`)7Am zSFfry*Q_ze9CI$Z&MTwFIorbRCo3Kfj-NH20@|o|rjM|Z1a7E4@UyMP6gYf-q~Zmy zYVx@p(GG#Dp$dHirsK<90T98a@p(S_2+=^&NoeAFS@MypYwa|iQS zf+0NUGTy>Ia{MJz6ELM3L`7Xf&SEv(y zq`#03;KOb{Zy=wqya>3=%*@2Jv8 zs8ijk(-SsViDOFDs_dx&(XTABq&2O< z{^vL#{@Z0k~-=a+w(>|@=$w!GdeSCC*Wy{my1K9>x z*r&usCJ?!fwI@0`!ErYvmU?}!rLsb~{&bI#EN8n_*QGhNoqSsl^|8|YA@7#*{b+O7 zcIcXr6MDF>PXF& zErX-5UsUFZ6iTtH#8_A`6gjs*qKQ{jDg5+duC#r*#})d#Yt?`ntpLSt6{kw;g+Wi%&SzrF+1)a{r<=m6Rm)uYd#6?fH`u zz9n$8`$xy8J>k;ym8VV#wUaN5?Ore*h+G%lViUU)ngfqRfYFsF8Vqn#s3u6~xP3+M zU_ho?rDjO8V+&~@Q4)(x;_8;Owk`Om9nt3xlen2x0&W7OHtF2i&5lo-+gMS>m*vZe zh_@v#a(%9j^tg-OVu3`ZE~-1RaAzhx6gI$qgg4>;lKFcDZZRcUWr+a_#<7Y(L6FbV z`zX7VSMjHQ@2&sO60dNx%~f_~b18e`A!N*EacJoa~hDVg#a zfcqQe-$7K-526~0mh|^~PEZaa;%tl^q|OZQ$`PwatLG3@DqlsH+;xeVKp|bfn)XN)yAzLy`#1;AYlP^iZiRcd zyOu=ld$-?LT7yTZ<++Kp^z8&}^guZ% zn5lRf_w!8-dK>s+dhVegc^j2NiWg@EM$T^UmZ?FUiKpqaf{txn>F)HY79<9*pIo~z zEMFhQuTQOtD%6wKptSDJ$CSjpl_X$mjaRLf~Pl5eg}6`g*NI~6Es~mG8k47@dOhTgu8!OGDgmeid5}F zoTG|#ZEnUQAIaWqdk%w`)wSu4a^V$rLESk7OvozxRt2ZA!c3$t7&XONi7Er$nYxl{L6#kcY`*~$JAY!@pkkI&1O#mU&{ z%pb+JrYFive~{+LWBN8GM6?QRUsH)8A>n&YNC%iN)b1adC5*sD$9_|pWs6E+=tz4@ z6&9ej8B_N994%UMO`jSrswCAUmu8rePtz_7+xC!>*GznK%ev)hF%}qGq`~Lib~FZGtUotkQn%)DB4i$l9At~HS48CzTvITAsV2xT?hVk*v7(}I}O%mY(r zRr4~Ic%1fA6hs6~ySzp6n-E;* z_W7aB2Hly8#+PF=jXh-8qj7>6pWSTyl52Kox#7eV>aO3_=dY6I=@RS8$_lsRE|UJU zsd}jtBEa*_p&WhWv{j9u0dFJewz*QVvnMj^3f>bZJV`#~K0mO(JZ6!k{*%&$B*gwr zM%O1m=aBx-vaGGP(tQ4{btEzAasv5qXId6mj4p>GI>G;!leML`WvN#0%<&l|n^euu z(x?FTY;wWIl-lLYVf}ACQO|B^IkpB5NnRyBFHBA5a6#lgbhJ6+Hm<)O^FpSeGMs2N^#j$>{MLfwVa)qx}Ifat*~;)?Nh( zr7LF~G^@i=H>Uk~#SXJe&?Zl05IdO(?M^f}VhkE4;q@bJ%z47CGM7^gnDa_s2S=}Q zyGWB<~x*v%QuHqQ}kPQqa*N=U`{%6%eL?sLx=^XfywF@z?JPQ6w^ zL7S`B^IVuI^Pw%6sthpv;v|LfLu2H5PkVI{7P%CnAh|oVH)DDr+uPeT-e}I@Py>X{ zPc=49QNpV5fx}B*`qI_Gs+`ZeB+Y_P9^YAb8!8hT@-x=|h&Npt? zoIsx2M|a#b6a(iU(5|gb*fvWZ=}y#>5}JHr$I1v-Hs6PyXu52AV!qJST=+u3?l zM$^f;tstfL!4f`5nvy#cvyWggKm8tz9e*OFf^I|N8wStWB15Qsj9g249GAApO&5}8W>JCMvpA9wSSUw^?s`Vzbr*o05bb24bKA*sj{XPS8 zjb{ox&N=i;t@g3q4ckQd1T`_418Q-QRJqORB6Bp9CiaIk^>k(E8AN*;RMS~qxZ|-X zN;QAY#@2j*a80DiKZ3t8R9Fs!=d_uPlX1{T{rZV2ia({qKX`561*UbHu(q6#6yKGE z{w~px`C|+x2hPucFXfT zUVq^Rbss1pdk2RV`>OZV$Md$lcL*D2lqR+zg9oCwnCE;Ng@GUt>;11A873m%r(%ZS z#3kho7Q&Fv+VF*%(n~`ZYTcIy%GA9xV;H`U!W%oT+Z+V(t;>&ubm)V}DK#xJ6gc8I- zzu2t*bmpA8xWhrC^d0jh4`Zn#yGRiv1NMe@IuMjMK4vTe#R_jjmFV&8?&sXkCZ0y2 zZ+(LPBYV2+nSq+asFiDxp}6u zW@zyWY;_8p?i)Ee^~K@r)ph)8DG8r+lj)cf&qA68n1j@Wf4sUj^1B_s#IIYS53qwn zdP!xh-572@3G2mCE)yQtPdE;rrO5nY5^WrMmHn3uh*nL@KbIlZxJ0IPJv$sX+7y>q z(nL?$=KZ)7{m$iDXy5z$?gUmUPh6~O`u@6ta#mO_Y9(T#U&!T$tH+{_nBJ;Wx!xW3 zs_TG-r>npi16N`g3OQkxhv!X3&2E#e*+XqK$3P+_XlUtf7}G5EML>;DML1zlO5G8( z9a^$FEx&CLa37<<|4>yG=dlds$TrFGLcAa%i8?I^eR*(f$&XT?ZRzREG}Q?P=umKr zZ{3Vw*V~xRXT-4UV*RpM`y9ZO%;;0^?@lgbWC#024*1i0GSJ!*dL`qxt_KTc0er3x8p4RI|%tT~BPE3i+D{(Ym0{YBWTZ znj2H1QilVV`i~!86PGtP#b=b#A$BJScMelg_pUym7Fbg-rS+-ICqm5ySu0jFj+m_Y zbx*#{S$9%+Y$QJ`=BX}?K6}kJ{M3?WzVXl^?(kO zi7vnv<0?eKXiI@&B!pejx9zh8yKRx>k=A+3B^_Izz(`k75}m}v8VCk>R{Ir7K+Nw5FB9*icpEESyYiX)J&_>$n z%UJP}&gHYf@0^=>$^<1=l}@?Hf5gu>(xa-O49e?E`(j7$L45Y9(~}caL|^h-PgGNa zA&7kUL*{62=1|scLv&z(3hw0Zf;>-nCk8zV3E^hY9`;LBTN)-j(lE;l?&ff1!H?Tb z)oghY+R%0k)fQ0E^d~R_B%(tbfHxkD;sKjIa<{p5pmgUfRiZu1#1ivKYHJfo#eCd~ z>^habJ?v&8>j0|Etv}(Ue9D&H%VU)+dYdDa9nM1cZI+ln4OZ%G?CeJ~dx4u|Eq3*< zBe_DeRk8m?IZmSew*urZYxfKf!_ULYT$SC3H+mFG>R%#=|3RSe|IkVP-_9I?a>e;a zR`EYEm;ckTf5&Pj{KsGZ9|%Bi!E&}H;3XDFCL5xC1o~#R7RXa48Ql6V|zu(=V{RgTXyRG?hK~6s>qp_L|W&n0c6fM^{U4FHb zHc(@#bVY!&H}bcq6aHmxdw1B=fr>Lm+=k3R1=_6720p-N(X15`PE*BG)^tTbA33G7 zaf{P;hR-u_VbSHL>(`X5iXP7cwRX4{2r0apYcQ-r9|!4GzqsUb4k63{+gyqzL8&zBJ%q6X;gBl zZ07b+r5Q^{ZUo%^C)Z-T3RzQ0EZEBY?r05D&ILCyo`mESbjQTqL=N~mqgfu;nj8Y5 zt)tQXGGE&qDSpwp)tOwbGirX05KB&;YiL%3@MQ(p;S}AxR?EQ@;euL9JJZl`udUf@ z@xEdpU7{75^HmwuE2;$0xG}LXFMJ7lcs{EuNpn&F7@`S9K+V%nJ+q5EIsat_xOpDBcN?>FVl5U?Y)biO;K4@lB-+mIlG3Xnq<0y8u zDKHX?`UW8f1@wQF(7_AK?OdM%PMH5xHO;IriSCk<&X3o1Ma0V%Z}6DJW;Y9nDm$c^ zt5=x2fi2!Cwx@iH8YDgg$$UAZ++dKk{jPtN@6c#{v}D?9%6Br#g`w0Y@!wD1(+wep zQs{->CYMC~&%<4$q~pmrzFg|~*77M7#DrU2utg-hn~(aM&2Nbzc{TZFU(^>iZHtrV zrFP{co%*P!eQTPT4i*Xh_L#MKE6o?{Bm#SaU^9nC$^fs$h4Ph>j3PVHUKq*$ya=1X1pE$lk6C; zz1*R$mB$^Rv(pki5;uw(C2nJMd*s#|aHjJvTKnxn#-?jU*h7_F{nvSwz~x~<+9 ze3YQ*JE4bb^T%7rGRYN(h*8>tXwW_wjkd?!|C8il|Lk{*oFq1)i}v+uA(K6X9cbRC zEATIm@nRT5A_Taa3ip+JwAZ!ofv0&Dyp)0*L#W<3xEF9e#s8x4IzDP6v|T9H_E7aL zl0ot@&WCq+zxMnk&1HZ|$7$K3)%nN>4uX6;I8&f4|#L(jdV|`9o%W176DS)(iH2qLI^;dX**K^jVf9d+P3R z=$WAlLHP7SZ^PQk=}k2V0pm|}*@{lP6Ztf+u*^sK(FT5fC9mY!ify9*c+3uc-rNVx zgxog)*uP7oLB4$Khyf=AFDh*xmsq)zeX#b5L#9e>HoL46%sTMuD$x78LA0Xpb{q(~ zdB_y;AGr9r*dE^U3@WrEJ?cDy$AN#lJ{LO^r>@-?EfzsfqcVLNO8G&Avu-?Kh@Vp^PKsyg(ZRU#LVb z738P9Lww6O$Lx+qsxO=D5BkT3_i+{`Is?^e!1B2QX}Tv??&tH^%hN0u^E_OvrHg$0 zTaAe6)fag6Iv#vV6IQXqDMh}9Y7!rA+fd`)d9q!MI;^=~;~i$h7oc4@?-9}iIs<*G z#9VjTDqlvK);!ge^fWHj_W2(Op_G`j`imIs4oa477_**XbI$Kl87rE@dkErIp5*8k z_y>!KtL$lsw-dm*JFO*LtPTc9?!l#+ZeMGFPHT<#@AR1Uhl+eEOr)xI%baX^T2P*h zs^UiPu^vIl8-@g0%gP-gYDC~@T|{lNxkP`8L5GtG{hz+ypLX+3Suh(^28aVD1=>XMw#(66Q-_|s-j?kn`fazuPD=+kw!+7!E} z=N0{WDFhzkQ+$P#P`fdA-Wz#>&d)~Q-lItFDAgOjQu+q->sIb;kR408e4Di zgA7Q+BrPa@m*>IM7R=xH9Vzda1|cXTEV}lXtub>pM&xn6%cC`(TUA~`3V8ps9Ohj= zD)9guIT<6?S8@%*k~sTUX^n3t4h72IzEeBK<)u!?SyhS;yA{AWWN{J7uQeIvi;M9I ztZ76nwxSjTUi?>cUe?@MHnb0Zh`@@Kkn1P2IDjj*2atcvM#)DUiFOpsfTjozvdegl z5ki%t^6>hk87m;?icIM|M#@C@E{vSY=5teV<1_fNOQ$=q?^X7@Esu-walbY&u9zMaz++CQd?szQw;Q{B58i-nOCPME+dg0mM{K|1UOtQv&Z)!l)G zTfH^+p1`rsAjG*ss)ujNakIbF0fosUMMyAdqJ4(ixr;3@YVwvgBX{5eBYiixY>)>X z+1fpprfy7HMq%$cjqTmO$<^*n^rvE}9yyi{@hZIz_oKp8RCoQSyR&pQ(+F6I2XT(# zhAq$42zCDb{?p#JxmL@?d1i^z{gP$U|{rR({E^oZ!v3u=%7!JjjFk2hHvrXMs z?eW!j(JaKHzeUviy#WTqi;DDrC)}=NNalWfl8jn-E;FqyQ4sQqZNx!_dren*D9(05 zOUoSEJZs_U2gLDhFr>)zFDSS^+{mZu8NQZovB%2tribn{GrRNV{3bqo7Q)wDV+?gD z{*plC!C}t1EH@*gxP0y3FLTp*CL|+-BkH1F=RQue>(iKFuSJms2eypHXAQ{9BS%2{ zgwp+GQKyazfQa@b0Z zm&Ioj?0~DU8QoBW9xpltO$zm&Hs^waJ zT#gd#11Ac4eZpWom{qS!=LYcqig4^T^rP)f4pqA^r_(_cpWco#^RiQr=8q;VTmD)f zgB}gh0Aa{XlyTkdhRnsn_3o*$cmHz1_CdZ~r96GAyaW(7oym`u!S9-^kC`sh#Q&jB zzvk1I_EdqQztU`J{Yah}zviekm?N%YgtBXGGO?miP2+cxBdKzW;`F%@Lxl93-noNk zl6=}{XahSq-~$f@g)#80-j2=BC2Q#!?0!D+7$odS2#P%%r&~R^KEPPU{>VW$hTP|7 zM%jgBiSsR+&_^TO6CLM4-uoWDD3v2`wHm{uK7yL%TJKXf30VK!L>po zhV?T9oDp>MD&p)_QKL}0oQ^!m&|pk1_o^e_ueNOUdPmStQqa{t8hsUhk^F#s{$W0P z7bi)i&H|~T$N(07x%vn7{ZAN3yc zWWv^@6_4Wk?fiEa*S(>qWDMs(s=Q0^c9kYHn11`bo#-}}FZ z!Bgz>$kr1yhl$vy(%BV!0S5+~XBBHcCOZg9=__Nq@wFH&FtIRh5$9 zNk1@Ix;VKrSqVxgD;#qE#SNhZx+U0~P(0o!81|KO4Uf|0J7j(XJ6}`H31vld-(sG3 z2?g3Z=(B_7<=LD@WzN~trn%hm0HncXp*rG@>ni)EW>>D7=3wqCp+hW^fskOk3s*qe zu3i__-YzZYLB~)giOn-WE@v%VNPs)7ewX&DmfgeA@e`$PKZ(?aXzo(qa(6U#Ihat< zRLv-<|1c-@TC$c(|29hgaef4upUMwEgK-)g#P~m{S>+xE6aN zWIXfFkKoOC>?4Oa$&!zH^hSpla6_#oGaw)t%3E2(elEAZwl?AF%CXUAb+GXLaoqa4 z)in4cq@79RAFj=~o6{C3>n?U+vF0T-*bLa@qi{#Oc)c4zjpBZ#%$D&Yi{O2!-*V~? zALMJVL&?3xG6IE-0#5rIPNPy+L~|vbP@o@DpKe&>x+0m)>k<|bK~BDXI5m`$l2#8o zz@5nScvpYpgg)vO8@}ujHf@2b#pQ7vkQQ%0xl0&|JK%hM1KQ} zwDt%ZubyWJ*N^o*h#uWC1p?3XmR)&dmTMsBjiZxa5bYWzvBKoP>SX>en&RchTr@9+ z-&Cj0o`LkxpB&KN98keOPWVOq$J}p`Xu>a$27xf$!w`NH&Hxg?wYXe8D+^pk({fq*ahGGVs8ua@bGvHN(+kVgLmZOz1$l1#+PBb_;IH)lA3E%4 zKG@XzFBV?;d01L0shxP-z#r%1QryqA3T?L_w%OiV9G#X^TTX~5c9a8 zPs}10@!rG+XC?vFh%=8N#%zo!YzouvURH3@w|`RlGD8WFDf(40VY1DY`guR%z07Yx zqaR$&QK6N`-IKg7{tDwye+4BgmSsCK_?9%=@cL8{9c?F;*Pc(U=B(D^mnyR( zT4VOkSE?NBHj2yXK91&E#pLOa2%pmngnAa{&g}Q5-Z#}Muiai2qx&(nZ8twAJT>#W zcAX(l>`$o+y*i)gFnF{;gY#2hw+dJy-~0l9+NjIOQ5)LHyA_TlGY1 zEB*VumDKc6g_7lZHS_7p=wKKsic*Ka(~0$VgW3sJ-+4*332PV z3+c6yR&`AQ8P_v_d)>-w_+Qzbs=1T|wIq)AfQ3yStsjU)Dnv^)j*Ly^0-+;|D3oMI zG$d2)0epCk2QSRR?l}DdgK5kSOP5C#^<(K1e;5!P#h#tob2w7kv_+?>hnZ~pZ>&OQ z9fzx_rVFv$bsI*)Wz$&ikSt0FvI zq@e}SLf}*$J*TiVMKtFM1Xl?_IG~zX63p4E|dS;1h9^vi8($ zYWiO9K6c20*pIl7VfkJ4neMr_8-Z@6d$a>@I?|y8)>AS$I|F=pbxt$^R1}ojhUDU$andP;NwB9jb zyZCx#`m;bKZcx!@%4-K|8bL{rT_fgG=1>~Ij6Z18bhvJc^^D6{M)!pyHk8@i^A&|q z4fpy+PPKHQ%jO+ud~L4tqPT-WH3K*D|WQ1FG)PCe_@Do6e}cZsr7h^>i!6I`&I$uGs?^o8$v=Uv?r@_VwxsJw^JVR6xgoA8V&~9NMC`X4 zhAutO^v6g=y)BCN_bKY8OPuzZ>hCTiLy2EImWK2h3y#wJEQx=2G89RuVOQo%Jlm9M zTrZHMp>(5m7QtJ&e#Pl_nc7-A)?8n>9I@8T>XS^cbZ!p(=s>NTF<-HAfJLOj*B)5W zCb+i~Z8h@x7mcw5u(XKLU~&CnF4A^*k_ye?%)H?@PEGRO9v@HB#|3NpBHJB*wJ9Qu zsTKvoOI%@@PjaF><>}rZl+^8nwpy*r%RMJn`U$%J0jE@i1DrIjm!g8GpaMCA%`?7E zt>Gbz19Y$M!n?h16?W@@zYGHN5h$l#H@`X=R!Ot*5J2Qz7G&4&at=x*fLDKBTVk1? zaMohJ)TMVhQC;hw42*S8o(;@R=#Q*NYd_!nhqVNlR}wUHrGQp+UVyTtoof0cv8~)o z&_gAXY_Ly)L-Q`3FY*1_c54&us?--CRHmPfWNy)3p0BYCsO?}_+t=?`B?>mLN{|Z7 z0)1$ffI_jzF$3Waw-!(b-EJtTABcVKxdVVSIg^>aH*v*fA@8cC?-ta%rc+Q7xc1r{ zc}XFxuDgP&!OfIEsWlycEjkuzD%TVj>BC+*#j}ve6`Z&pXt40mQbKU;iUh=aFuv}u zmOXI$Vz^9s#83rp8ut8kOY=Q4wPwl^6Z~4W99+MALC9iP3IN-)O8hD%nG&dgwE{n2 zlBnaI#>{M&YR;kK!Jv0X+UM*`Grsk&%mnY?l?PSDaCEorKgJs6yRFLIl1p4$Cn zZg8{SJE7=6`aZ$V)3ilzhWkyQ$$C{ZCx<8ad9=cMxhAlP^-|5a{z_MHMH6R3fvC}7 zr!}h-$O+UMdEP!Q^Bu?$JFzokukcjkTQGM74tZ>%-F{_#*gU;SgD9Y897a4yh(p{F z?tEfa>PXCo`-{u=@vXklH0;3H3e+(-v?PZ{gg9Nxy)VJ5fozz-em@q>A+`4F$RI*`eOrCJ2FW{%Ay>S$8ZOSUhWq@Rfj+(}8vevotqfk0Qd%+}`0R z^)#v_fEDlD%ht$~?dNjl+U+(@|AOrP@ffNzMmY&SNU!PZ=NE*>-Gw4oQzos(j?@&4 z4?J{xYY;?{L2A=K+r#z0fY4WO;T{XvuC{55c<-quNriyMpHO*A`)|Bnv= zSBDEcJ8Z+UGQrUNdezT6H?yc~C)>SJJ4jV_F6yT{$P(f`pF3P{1D)&Qw9(OOAa~;h z!%Mx$FfcICv9Or0HrnX4{zP3~hwa3C+|%NVP^=@olzoNG`osi*1IT{=FU*)5=dEQl zvyrRKVYg5B2Xc9c$s;QHr+}NbL+XBZ^}SUgzpU}V{?mix{~(9-hI{@u+<{#F|KF#Z z>)TjUIbt}-@BT|Kc;s7EB=%EG>ykY1JWW()zzrBybRxjwu=+4$ze=CN4(RTXk0j|Y zi0=sJ$ubpnBKTsD@}3A}-kUZSzV75Tsqq+_CUG$;MUWZq-Yp?lye{`z94SNmCH`dP z`NWl7=Yn&GM&3|HIqWmKg*~spBO2AtbKt4N7Q-5UX%yKG!ZiI%-&-9x1oJKBC3;;y zT@#(T$@w+k>;H{`TXo!8o@RWuAdu^9&zegtn1@ zh2=SbK`KAej?90tgl{yop%j}a!1?y5AXwFgtMOP;YZEwRxK-BVFjTgB=sA^-VudI- zh_d6)Q-k8}jcr+6X*zgcV>0oOl@MWpIdw7=&84qsWI(56%0HaN`O?DtIWqj33)6Z& zb`>G3zkZ0O#$F7&qVi*pz)?8dJAK2$i7Kr11Nv=sd2_{SPNRe;hgDt3CJ()CO+`s- z>O*XRQ6ahw<rDiqQ3E zDaM}Insq<0N(o-9MrvvkDy?4cAbs<_KwmXQr^rmjAcjRRx_?3DPi{#{uxBz-Vcr=e z@>IQ*4c5FomLBZTmzLoUd2ff`<3eogr;;L1IQAZhhZ$2YA@8Uk^5I0$n{+%25rK{7 z7YS?dm_`GDqNmcA^em`FUcWYFnOx`&2$N)sfb6;-|@@#$Z=n z%6-(6$NkDIUA9oT!>pVils{BZ>ZFlG85rg8qnOP3$=d6^qn0U3p43j&$b@Hb@UPN* zj&~ZYzVP8-KtpWw*SX@L)@)YL4Oz1@OuqgLcqibD`KRt@ z`Ew~bWax7J!GznmrAwIY_ZucR{T@k$&;Fr6pw#n*se zK}yG9;<6PqEz1i{nIdt2S~!+Rt1n7jotZLB&_-^zYUB<+rz<%Y^>g~%g^8q6rB=wW zqaZ^B^$z%nz)6WqG;!#2{<*LH)bHsvCx z>g92^CYs2~DlA_DKwrwGsz`q%$lf9CB=Pk)a)jxzfQh%V!~?x+p(0w=fDRS#)oxA- zJ|Po4bM&m24O-E4-+7_)PE(a!jLeU<-!(qEES3t-77Vro@=t8$&<78iPw$MrlIF{O zH02qiwcUuWtbt;^X}0>PO9A^8ZcZ@rlbRd)EPwo?X<^d$AUd7)tR>sn8G4Nd`Nc?W zHis(}*~-%o!q<&9Wp`g1F>2z&>n+tA4r*#xlPYK_;OYsk;EWky)T$IukLn}RMP=yh zOMy5LCqvNv7#zvdB_!551ljHIj|Ffb8AfLPFrFj$(gS)$XU)dWI^^Bveo4)&X6u$! zFOD$0H^b}kz_)BRFHsJE>99&)OsHuZap=7uhGnlDQRj|hDhgwy1q4ww_CHTS$icnn zdV{Kq&wNVI--5^-nW(y(lr~WRG+y(FPw7w2v}4MqdP5_>9R5L})m6MZl#w4>mDZHN zr}tCs3uP635-^ja`}K}?qB9eqT6X?kU097wlH}npqLF1HXBelYaC1^`a25M`721_( z2hE`>E;%}J#{mUA65Jj5qf2jR?yn!z#G}Z`$*O5zvcRgPz~8hqAF<>#2XfTDvEXR> zK$yR$7q@vp$h(dG;PIC76&Udp)yF+W-tYH<5IcP1^@K?)zYqid!YKdpsETVKkGNMQ z<2sSRb?pd7y1AMCTM6F6vik*V$Da2J_x-HvFNRKb^UatFDQYj3H8ZS{ap$$q zEL4vH6pXpU*-oHEQx#G;Pxm#P3S|A>@H^slP3+?sVm>v}eA2jlbTZi!T^T+g_*0Zr zZpf9;vI9l*jX3mI?N_zAloVwxk$KMfNHTon9>FH3MN71xLMrO|9 z(qNy9uZ~cq`+vP&%>$U4Z&CI;qMpEdZnifwYR`#8>zaUF&yVPTx4pmHo&M60f z^3ZMJ(`i16R_-@rNkS>rLGL_ScW>jX9HkLe4aI-|*u&6ZvYXFGUxnWL|x^Qlc`4-lLTl z+B}km=suF?*Xf&YpZ0t_(*G)Zx|C5%XY5g0owaoR#f&>PEE3e(j;jr~bD>-Q(bLEUBf7E%Rx&0Z2!?>q+PJ>Y9#J0rv&ZuckyX!esE18qc(C;l(UojELm1vCbNk?dL?Xg{ z`AZ+Di^yty3sGGY3pc~S6zd5O+BkF@;#!+nsXTo#nj3~@j1H%|>@6EUtP3a}6dI4Z z=R3qWd6IxYCn2FPki2Dwm->M1yLaDVE+h5JFb{|5=Z{{~QoMj?6nFIdi7~ZdjMAl#1LZ2uDXp|6yK*spR!mXVXs`Wwh;S4<;aT;cL zp|WvF%c==%{yjvRb5Ge0Y7A(Z9nNSCr~>ptnW-|**43rA@!ssDRMDC(Jd1MYBU)Bu z!$Th7Onk`^`eAX3vn>&!IyU=B;tRv)l$#+Md!I3!ab5fg9%3WITa-`Ws>|_J6u9jp z&O=@VS38Lv;k3NMSr0RL>PRk<$Ad48H|27bP1tQW@&)tqM3FbKDOTY`QH(K6#ArS09 z$uPY*ZFVM{B9PcresB3K_SAw5V^g&=5UNt9WXDYQboc8?;v#l6r$cVhs!zc9i#8r>aGXsc}uFnMi&0yoO1bl{%?#WK-JNL`YE3Gl|2v`cdxb{c$2!Q=ITM zYQ0^H{$Vb$+{UhTO0bb-t^;wG9U#mmI*R6{adp^&h|<>+H{FSAw)x5B*;1GYl_!-T ztXLw^F=b+WI~{rXxh{`q9r43YC9$OoWoCFB=*b_t4LOhIP2^;3{k5@9$RtKWeO9;$ zJg(%LxgWQpPDL8c?I@bgWM@Kx8J}{Ykn!}#;&NC+wdh6&+#H4qD-0f-+3K8-xs>)| z+Gb@|UY!rNjX1vv??85&@#%vsgCnFjb%93Q-*9N8RAP5d2w8lDRhtgbV)SV(Qt2{e z^dGipb^D=cFc!-1^Qt=jZlLxTSff&?4OW*>k-}Y9eSw1n(F&U7KzfC-!Mw<%k6;7rx;7$` zZ^B4o)#O&@uugz^6eVOF2}64cPSwlPOm!X?kCs8b&@eRO%J#B|E5!qea~x2)jARFq zC<#**VvYuMw^Oo|)jsf%smahEO@y45+v!q|mKmfi6J#Hkr7qY=ti3ub0psS&{M_`B zAIyV1E-$}nfr~!)mpI+`tfNrQyac$zKrG~;c$1U{rR*fPCoFQsQKU}(-FG#iN^)@v zJ~+jw!Ni~c@>}@tFg9>Qy3zV&B*N@^yDN`hW8lb7u*wmw^~N&JpbD{*lSEGN6{Db0 zF}pt;51~UPuzfOf90a&!VT++J$rJFfr&j+mr;p}3U~}rp5soG+1b(jUs{ereB*D}G zGgpdgK;NrY^IaKd99^xUW4?1mN96@L5#*0`0`E_P`d2s*KOi36g3k}{mD6C8c-8o~ zZ`gZY_zaib$4s`v4YrW(jiD6G-ygnV*IH<@68LDxf7}ciG)F-8%^Ay^2wj;X0sdUA zJCI(|=nZ*?RHd)|#h3`?`vmXnUoB%K1bR7NN}uT7pmo`nJgnMo-pU?6qvfQW9ZI1~XKp5~O2eo7!h;$vie|`#L%j*uC`H7t!kg?d~ zQ0qX$1*rYfc5q*XMYqNlgEbJdX8hpymA0Nsqi?Ge4ZHKjEp!Yi*e?RjV}Im@`G0Le zSm3e$HT&XU&6Dzf%uus+-wjX|dr9!4HLwJ0JsG{L>FmT#mF<0Ydt9}+X6{T7eOM*C z^XI+9J0^eR)>&FRyqMg2=61;kSLg0$8*;c+O1+l;efd#ki$(J{+smHWvI;&8OTH+^ z6tg`^wL4%e-|F$ASeE(xz4g1CvQPdl(Va8R5t-uhir=J+z6dv$XvOW4HEfhWt^ULE*7^Mc*fE&FOS?(0Z(EX(|D zw`BR!qPjoxM8!8ht8aJ~D|yMj_sf=bD%b75d}Fxqsr=8&bFX*&pJu1x(suIy^RB(W zcP7SiDmKlz{NBpw*RqM%fcw?7XY5=d@oM{G|L61KD@7yquwFk54F#V2h><@$YR&P=^f z_d+6W&wBQQm)`sIwiic!=?`L3XGyqQB(`?lzS^q?zZp9e&ClMMd4l26c|In`b1$tM zUbn}2-WM9bbix`tc!7cpGt_k7-Tf=Syv% z+^pG0y}7#=rt-7#NgnuG8wDIxymzEsV&-0^sP77k>#Z`yw=BAL%jsYGd!JGr@scdp z2i=xF@mc?X%W__xAZ8eO@07FWZ;DQjt2=V~%KJ)j;k=&IU%lHu{8{xl+ve5s(7%#P zT>IlAzoxf;S%2B6IbHs}hM2k}n z>p3;V3&Iyf0IeqDq;E32AJA?K@x2hZ%CEtzgk|3uamu{aP=$#p*H7BHOJlKwsJm1N$u?K1h7d^?iGp7dfv2wvY=zotRtm%GWW2 zmW;dS`t6$!`Tv z#j$^`0R;kVnfJJVe|LAU45)Xn@^Xh^@v}2~@BaSJxcT%dpL^VerVK#f>FVdQ&MBb@ E0HK%p82|tP literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/tutorial/bigger-applications/image01.png b/docs/en/docs/img/tutorial/bigger-applications/image01.png new file mode 100644 index 0000000000000000000000000000000000000000..faba6628e765abca6ec4b534989cb9e371648af8 GIT binary patch literal 74516 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 dHjAB6CK z-EZhIGL!!5Rr!{oKfe%Uh>A>kTU%7Bcq3UiR=-Ivfj$IHZlY0uBkC#I(<9(11HE`$^y z?%zoX+sl}nmq+%{Oc%TiokdKSrY$HgHdd66TROs4c@H^v`k|vDqeC-(U=3;IIiB@r3gc4DQZ+{)7V#4x%5s4E-ZD$#m0@ER9>roaW$AlfP+CpLK=q-|B=rs_W@B&ofu*>8>cTix*|N zJT1F=pCB+3I1#<_16dDeZK87EQcY3rW|j!*d}pVNc|`9YD}F+Y(JI z^}5Y^K-f?_{pH_%()8EYv$O{L$saD`?`dP@PS0iq%zW&qc+Dc>%+-}%9u8j_T@xN! zOeIvg$q+k{4j+pcwM#yU4ZguNaLIl;pIbl>E(~dIsXQl@GUF{4_wp`fYxUmstp=Wz zyhM=*S|DFVd+@MYVNP`Xr;6g&fELm(IAR=9odm=+4B|6o+86Y2aaQH>?GosraNDR82S%}Cgj9oDZE#(exWh%rMy&M) z%^%5BirRYS(cbrEB104(1e5eGUqmm&dQPMcbN6wvU07#kPE7mKJa>JYlGD+v)scNT zRW)cd3yYRI9zt9$*Vy%F$HiHR;-6A1t5T6FNLlzd`nFiU8?oBcG$TbDSw9Zi5$w^In6bM7 zhiyNG1yzCf)PFBGf8cB}kDs{TWbKvL{`5|@e?fFxzGsziMu|M{ZGt?+R&I?!(orF2 zi2ju+tG4bZAzNCS8`I3svOyRhxS^wS{rokCzWk6!Na5Xn<%{ZH*i@?;PoM*A%BXyY z^A-&3rv#^pPF8UJjjfR-nWnS6p80VUi*ABDWaaAg70WC($$1r@bYS4?UCd9T3MW6Y zv=e_UM!DQ#8a$+qdgm(XAc6@$VJ%4Q@;vRBfRlZzM8PTK(BLUxZZcxZm;}UQ39qND)^bc}M(Zn^rkl{pQds(kUEE z#~>W_JenSUpf1ybz9Q4^&5#UI|4Fg<(Ug1A<6X<-hI z^YVg#ji)fUN03Z8o$ZIdiDNc~>yp0I6cDMDEia+(dyA2rkCUo#Lxf7BDZ_~*6_ftJ zs(blo8G7$FsI)P=O~kO`JOmMPupWe5Og!rNhf}z~p1KDwMWB+?itdZlW#$Lq$Do~z zmI^!J%5RB|xP095*oL8qbItN9i##7B7>DvWH zxjQCrl?gBN3Ur74H$HQfgE~qxAp5vl84lpAgs(jkzvTYPwEMI&?W#yY{O@SKUmPd{ zGyq-^NkSutdnC#2OB^4BAC^p2X;EHUkmyS`Vz%YTC>k@yr>BoIR_{139{akr3CVRf z7~!Y)%xj!jD>^Rq=aWi0r}OcjwQR5mT}3{az>`juhU_tL@|9=B^q&VX`g~*F14x4Q zZn^9gY`-p4ywz2b7BAKaQ%4A6vzkeR_@$93R!I7yT&DMIa+g`q$I51XSwNrKSdcQR z*9}%knfUV><|%1hke54}{;SM?Pwcgzo2jic^0!yX^E@)(D_>AN#S;p_1^3948@GRh z`!)VU{XX9tIO&u5q65}&$=*qR*7htcT9uAiIInDTKg1oaK(4oozgP{b0Ux8E%Rh=?76pj2}2+O{X97-ck!|KCh(Jqstj;nR9mz@^;Gup5z)BJ zf2Wa}&3F$CdC%m&sm4q*&F!N!qE)NWFsJu16MnHWM&_|1DpNA#T@oRKy4uH$O#==O z$#KU3e@)EL>WxNzR?X&&Z)4wa!pH+V(J0krBIK%4g;LWe0YB{aX_(`$LYIO=IhJo# zLPephkVglu=)=LE%bU#&=2pI4YMiU1d2+9J)gB{(|I&Q^!OEI-h3lZocWe*$5NZj+kG_@^ao^yy+jHWkE_jGu$t+ zz!aT)<1seqjBZLk;F6YHaW%|$?dlsOqP10VFMwmb|C2z@eN_uZu08Tim(*+>mH8i0 zj=e?lKHkegZs3K`{OvY7@gMlm@~zSKjJb*`wbwgV`2r|d)iFJVWhM0FA}5UoBr^G2 zBy{g$({f(|evJ^h-^u+A z!)rmjq3r{T2=yI3eMu+)W%eV2+?wy;9z7KixFqk6e{n!L#r4=M zvpYe zw0ncC6LCjq%gqgfqcS^q!%01Gb9@&UDu&g9@N1A^sz#?FcA&d8**?3R-E(>- zc8k7Dm~O@q!iRo-n0Kh7{T9~qT_MPeOL?TJmu#(By~4_IL1vJRWFB{V4RsP0x=Ur)aFJ9l-SBP9p4R!V+n|3c<=hgaW`(z8YA2?k>3ipb6a(<_ItUkgDi^(>|V$JPhf^~a?3$ARYUGw}Uw?mhVhup!aw!U!; z-hqTVrrWp!LBc+w zu51I;`OwcS8?f{N|Ktde$7DV1-wa>~>zIx--o4!7_Uu$7zSQhy$#y^wZ}i+{L~%u6 z{IXp!ox*vb|GEdBtAB?-+*1^USnAl|I)*C5dF%5*6q|Mo%tGFCb%!^PTKexUHff-e z49?xfW2&?E#PB=Vn0r_ag4qhYySrD%-8k1{sQ^}Tr#s&>Y=cFKO(})RcmYj$YJFK| zAm#fQF~$r-4;Fu7V2F8$f;Um#q2a1Y^7lVq0^l(lVFQwhbt+ zhh3Y%R8NJOP?RrxOFr^NW%v^4&%;Ac{@ zONe{!yUsaITaM>uye%6DOmkTNh;0AXl8hD~z4kBpGL+m8@jD!Ur^knlo)8}+gzc>i`FLEnzPJQ^{d5n^a<=Ox`!@7sD{pW-`-;E4Mfl#aGViht&DwxDcriOe zNGkFk{GZKmLRnmqQJ8i8e!>sd;JDl*s;_uY;4173=;{Ce1BbEAGgLQ!+huf7SbKH}W zRQ=7>BDrl4B1{xpRZ}u!J1(PsO zbG+PKT<5yKwu3*KL{<#^l~dPIRu+W)z~)7}>t;wx^;1t20>OjmcIN7m`kwZ#DdihI zusT`BwsveC@JNS99PcvD{~4|4d~Tkji)0@q`$vAE@Ak4zi-^Z_oNq3k`(#*GU)`_X z_+NNQYHQ7=cICh%~I1s*Bd?nSSs*A1&wAHZj}@^ltm zVz#q&qS|Yo>&MOL-~oc4s)cyG<6&(uRy^M2HvEskAYvtpKgP%YU3^AS{#Vcr+jtWH zJn#PCJa7G-zsT@5cRVq_6Dv31D)R|5*eRzQrstF0fk$!0vcKIBZ>mL)c`0rGlfK8& zSApZQlvZbt1i(T*96*U2s4SxpPu4`24FOD8YjRsaJZdq zFV0{)%!>Y%&?7tWbM9;KCE6|7law(#*l6yennf~3XW*r2|33JTO(N|$S){;gpzdVo zL6+K64J}_OpUY7G{(jG6RrZO@J6+XZueM@k0oN1Gp9;OK|EDn8fXieRFMN!Nr}a(H zLZ)C+)%GM2fBj;wUw@EiY9b3^m6a`h&k~8$;&n-X9jwvzXaw@fL0n+)(eR(jC9^9Y z;8tA=R=eR@IgJpXBj$Bhj)vOM?c1d}t_Xe=)YwUNmX(-j$-j_} z8<5`mh&VT1Eh1hIsHnZ^7infL0$zPs-9|(nL#vfBA5LXfhO;0R5}*zsMQ|3n{6>Ib z2`_;(my6e8h+5h=b3BBR5aMA6sgS_F{6Rm(ZN2U^)x%AE9KXbI;<0=VjPNl;PRx?% zg@C%2VKH@$MpV@x{m$T1Moz9UDSgxl>N+p2%LO7Av zG-L3kRb10jdQXFlY*;XQ<1K1yq2?Vm=|IjzP}RmhJ1D`swo3(!+-_+fH-c*W1`khHcfs!+4E#7Y~y{JGOxaFE7Ex%wL)-qQQz zi}F+bbfBrue@uNv@y9bcGRjb#(q^B2)%(uq8V?G!-tlcUqoCd zs7}1Z&WncvV=oCkN1S_YU3hn?YEqC#eR*&h6{e`uqqUZ} zOtFN=uVg@@qN4s2s({%+Xa}co8m2B*m04QJiVz8`E085Iuu4XGcXoKN5O28I{4rSQ z@=DcG|9WCHMBvzltiCmKeKiA{X(Z`Adlmm^P_r%js+<5>aeaa^IqGRJ=k@64$Q3Sy zjiij4uS?9NAmUO{g*v%z2r3MK;B={o z?Zt6MXaPqn>}nZ95_h1W!n{W@>ARzx zi!R81251;_9B=&KA3vQ}M}=bG zV^XYF>pbLf*}tyA;DOTMVX(W}hM!ohRU!0g^Bk|C778SzE>?NVpYWG5Nd0n=kLd5xKp68y1Ip6|RV)XIbz&fYm>zqVmCU+h&Rv4e zU<|d{U+HMSSS>1l?3}&@z;?bQ!y|eePxy1U%Tp(t;Vm_!#%a);?Ew`#$(C~9C~sIT z2OWup8Y@=%;_coBpj;X*{vZuojK!dmX5W6~q`~Mqd*dbS9R1dOP|uh#wEY8kkBr#P z^&_*!JDXPvSFs!GSJBzetF(XOr>Z^4pYkLNRcm%|ls%5cb=8d6#2Q-_cfo)dIrxtV z$6=Z9*tzB}2O8Ycs=UCj0KXlHd^~+eu42bCb5i&O268a;X|&riw+5%7cS51M+(j$b zGps+G;&ze5BEorPqciW&mJK8Ro>cyjZmwp8Rxr{*T0WVsd-USmG!!IYPmp1oVTqs1 z?LBfzv=WQvpAav*5m&bhCZ0ktjm5Tt9gP2tMcnm^*e~A%(~^6iYnh4G$9~1a_5bT> z&s7dzK(C&mpgt9w3z`JPpN+p^expeK4X2-2Bn)*NWID=?!+o^!?d<`7pzS;ir&de+ z{b~-#YtI@2bBGXtA;kP5Rt&1zKmWY0UTP+L32{)Q9l{6!T%|a? zd5T;#fothkN5g{Tq$@;G+%m&g>gMtYJjtS|%ma0nr}%TcH)JVGCOl9U1MZK;HrI*L7MP~iQTyj;65Y84k4 zU7SvsNYIj`Td{WVFc-G9XFv#l9l&mMl4gH;^nmU?Lb=hmGPLJg)Fs@ow%6Kd+pGKO zM*fQ!64#tr9MF?g#XLgDr+2qi7I;#=2fkf-M}G-M`oikDoF=q{%MZ4?ryAY8TER8Y zyM}iT!^8PA5-vsA6u*Gh|LqlR4uN2nWOT3o!3*T>UJm!aL`kS4Vc-r+!sEaKM&W4Nt8028#lSGVV%DW#p_2u5UFZ9_?Qfvx4D}TT9;ml7Cj%o z$5sY-AeE1sN{TygF7$Wgj*uW1SUA$vb`z_RObOEb1iePRa`e-L2snSS?E|43%HyEOop;pRqpQ`o>KHBmH(3%($C9Y`QmeZ#dnRqdvJraS#8C0?_{ zc-Yni<4faJ#xl{HPR{hyfOZAs6 zyD||M(9zdgI=-`#=Vvbwa=)kM#m;IlLxyetmaZX@{#~Fc7(xtDQ+Zb-%CD+?x-CWS z%{hDQ{cR!kPQjYQWrQhvNo|AGvn(RGbD6V_^$M9=f8Kp|3*m)>7qy$y#V*zND%OoOC}2u(+it*}kwyfaDNjkha29>3m&_b) zk9D-La`^0zllCl2K$YRY97PPoKS`K>ZZUMTdh(1Um>N? z=m6fEh%LFYd8na7F;TX&Uh^7Sp+0OVj;W1KRzB%cB)$)^a-ddfy+r(C-~Z;$_)sL{ z2J{ICw;`)_=aJsRzR>Gey~8gweJ*N`WODp>&dq16T#KV2rg9o{by0@m`1k%T@jYLR zG())?{u;C!_lDJgtR{+q{*H`YstSC-9oPKv(rk7=#QoioK?>iE2td&{?r8q}UGk=r z(Xo7MSc_X6@aNpQ>D>e$G&2>F%ZZ}`lxB#V3xHp`W;nD-=O}UeO$mT_h1x4lze4HC z2yeU;#OmG*QEZC7G#^^`%pnbqGS~OUbBz`apdh90!Q2)}4vz}p^N~21chvYt*R!$1 z=i^yTCMEion9cn1&W%G;MnVf5L;F=vonlWM0wb2X^j+HEW@k`vp_EAW^8b@HO-8rs zi!b3)^h?kyyoe0~H72L4c}5b~vsW_#mKi>J>U2j>2e z$;hVcwUmRuH0`AI(h-&7Wmedz3{=UW0}>59iN@xa={_^v zpJ-#4uiv_w8M-L|kcmX*r!CrwK42lH1}+McgS#F z=`In*Wws;;?8%B10ys{b9Q|%pQWYA^JsP3&7>ow;w1rmGhr+aycE!rznviRENR7pK z@Y$J@e`ouhO0Alj8l2T^%}&DQ&SWtm9OzKZ$xUmzSa1%p1WG#*P+9!|?K+YfY>wRd zVFUGeiUJ?@i~r9d;-FSJkb;eUi`hRWnE6jvPr-bhe;mHKn5g7c^L`@7&ue+9_4J*owHLj$nJsrTT9(JZ@zkDMz9&?e3 zKHAgSZ@sWXm|MNmFh-2h5Kbf>ZeA1>2B3KGK3!Gju7kPH(;Q$R%Nw8Zv9T+!KEAXi z#Z!t6G*AD3eBOlx3Ma54pdGZ1LAC~SIJE%vk@3T-#D3I7E|& zwix9e@cddwdo}v`1VmBhP)Dsj$}FXVo(nk8CES}ANd0J2+|2AF85*=Q^kmpiXuizw zdk$CvDF1r8%ZJSRr+cLHltV}lm5iU@3#Jh9r`}X{eE9+id#g?ogu})Q2QqshGU3N| zPKfmMe3PdCahM3HAA2^+Q>-d&Ev9&y80`H2HV*$k`_u&rYoJ40F=Vj z44fCq3UA`4*iU)V^zk90&q4mFipN+;2uJ~)-5`}h)gPFhTXb*~=#5~LI1?@zZ*O5( zAVkRHKcNRWu+BH+kcMGZu%LsGN1HGh@Nxmi@Cprvf&NvAU%zbbPLNtTNa0O+sy+`P z3=4aF^CXJoT7|gGOrHjZhCKcwcsE$UgoREQzCOw7Ll-41oZ;vn;EEn5;gXpQli4Ip zdcuh~JULwSAk2<@JRck^ZyyU+$*Wdw(e;dHJYrZ5280M!lbp`}Xzuo6V^`4D*8Z`N zEMi+OE`aZ^@o^1Vv|{T~S9mvjB}q<WPoYGKW_am&XK(?{!43DPlndI({V#I)l;T%wMHyi2iz{`;N+a+U80vQa zjz>WQT;H;c_o_4?Sx~%)m*N7CTkfS?cLvR;aDK|v5`W*oyB4xx(2%dCGO$W#`p5cR z_ibSGBbMPxxmE=gdMr6+TWd^u3%SXSyrA()@r^?t8CjT()^OEu9_z#8s~cU>s7$K4 z4^Q*GWE{PHtxVC}$p!8eT3x%rM;>tjJrc8yNpTPJY3OA+{om9;Rqt0X>P?9pe_>M>?}R7k zbDtKzP%)3p>4fd=$O7z?XsNtMr(_HG_|e2p@@LeRe(4t@HnC8{G$((;{h#N2q?zvD zPnB>EiPig8d`5qJ{ECF7ZE>SV^f@J^*T-oQi66x&`N^f)e|4=wG=F9Am`M7X>vo60 ziZS{XO}un2jr%m_m;FF0`7X)y?b)CqeHby|Qq(I9)A;Gq&`#ILFK!U}!rNi3h_sr7 zuLUv9zJJofd)TXBF&uh~X_-qYy^6t`Pv#r#fM!iYg4?3>hcm&?nng5=Zk{H!!Y~uv}d|4W{Fm{NAsd%iEGWd|GLYyp?PwURa5K3drU4zk->F_-qGqW zRCsNIAcrOnCo3ufNV(zQq5$ zMuao>@7o~@+qOhDAMGmY?-{4EbH@+i#`w9Nvf4~4+0s93K32Luj((nWedq&m$2U?9 zy}+c*Nnw4}GxRMUIZn-A;!a$flR(0>u%br1El*pkN%PJuc|hX_>JQSqswz!Z8|G%F z8VgMXfEejdqy$6WpA1aa)B<7*9~ck<_>9+sfnJX(U>r(DcviF)@-4fOp?RR^k=Nny z8~w}sYp+9uDs9q!Or>TQCJaKhzE&=fT)q$K6IlqpA3N`Bj2x8NP=+p2Uz;y!&bam( zJxT8sj`uflzE=J=c0Lp4snO2(%`d1}2{8BC7f<^S| zz2&jH*MlJ%21qM%`kfsPsf_lL*&UXCkwJNFE;vzJ591m6GdbJ|CZ-C-4%Pq_a`>N!$dXeQvaR zImjF(4w4$hX zG}trbuht=7Ia-quyoanPUb&(>ELiUq7Rdd!<~>m>{Q?%@1-})12wuQXo{ZrZBuL$5 zOnt=f36ZmFk|F=XpycZ}P%B#~Vp8R_!Z&YjnSK0T$Q6q)^S0Mc@&v^zBn-vy(FQ%a z^jFt(gi-Zcn=_ZAS!9p(5B+pTox1cfZ}=e&zH*8|Nk{V-PTUv!Sry9!%q05_DD)0n zp%_A>*hg7*JIu_asZ?GFG=<%DBIXpuNnSsw`=o3N7NyVGqAML-ihQ6?5{ADT!0vci zc7QCUaH`NBMwetU9@2Yq-e!+WTI+t5!!fvIdvu!a;D}JZEzCmG*S7TH6_3)3NWV;uSD{rl!34hcey>SbH^J_qdI*~;qQ6Evi z?=&ky&Evs)*Nz9A9h8n!UpAM>bQCMdkBl^Qq|2_}qfN>$4-A-FJTU5t*==DA`M5B^ zl7_0dKN_24>c6kWGQC+vmOGJ}wg6nAWt{3^agpC}DlYD2yKG$cv!CM?ly)nAt7)$1 zPP7#{p)Rbat0OZvI1w@{7Z5urTexy$s4Hc-7lc5imx)jH%Q_R!8IdoiV;=8cwNPB4 z#eFKcQ~QJijCq&&9s;2rCT@*6J=;%IRV#(%-sLk}9J8Os#3VHYC?BDs=$DN1iaGD7 zFFNLN^k69|T68)Tg=|!NeP&ju&KyIAYE=P%{!C$4Q*Sr69z5N$?5Jg~n0#;SlS*aG zC)4qZ(34e0%~50tqkBxJR4&fEBvw2}Jg2`+w@L)<39=d_M8)IQ_K4=R6lF$uUe9~K zvvS$Jyz1A|>`(8!X?)^5MK;W;#mNiOue%68%uc=xZ#LAHwDlwv*t&4 z3%c6d#oR8`h7ViHJm4VUF;QY`N8=|BcITQRGWJ@OcfYqj5!=%Eg!qS*A|*(&7O*($z{eWfq4aqAru$ z&7t97k^B`lD(A47obUe6H`usei-%_I>52HLT`;p3ICE;yr0^KjhP`0Z)m@;T~@w z3m>fvFC&E87oQXRp?4%_CB47`A+)X$O+f+`;k4bXZ{eqaxV`~tZ1tDH(infp{RBx7 ztttg8dkh-ocNQwXGmpz3A{z4_t;Ac5rzCHg%be)nEiNRuyQ-)omFfKAd<28t(#1H$ zI52U$>dQAL!Xn^AFfwK{cuA=2&RhMg>rPZEFXR!*=2E!J;-eb-EScCB#jJ@qZenA( zW6z*vN=^MhDC4=TeqPCx;(6VxqWVNJ32LoqkwT+Mg;qNc}ifEk!3xPxqze)`u>^U^flkmKU8<9i(jX}(oy z;q_T7gL9V@*JWwem;r1=k;(KHl%X2VNpH50z*;-?`Re|?n{9^J)On@1FgYc@h}dWg z5a0F6=0YTF)P5?&MM<|NaW{JCD=G3KgEl$NEA&}=fw}hT>S#nyLWZjFDBGy0G`p=$ zXo9!!-jvA4QAhEc{K&1Wko?#aWwEREwRoK;@-3bz^N{`=lYdoN+T zxFsYu&5Quf5{_MM(hRd%2r;79d-OxIg-wr$8ZEg~uSL?dxjyS)K~ln<4sKI;7Dvge zZ$*Zr@yHPX}sury1uYAwJ=+uCq|1t{ke{c#D@$vHekBh!UnZ- zSdr6OOP)}}Y*~&24)5ayUI{SG2Yc>P`KF7R`98*J2~UWho6NNfIkWu(x=NdH+{~c* zXHEf80Z(@dLTs9#c|yWC@7^9f_8v&P#KAU2^)`50%D8RST}T~k`FHFw)5Fi1*LMNm zjo*a`;%qAQ!vPz3MghxBS>Ji!}IgqOvsr4=WQ! zMZo>w?b(qy6aKJNmVfFdTIFz*1%2F{%Mr)I^EIv++L}8OuJ+$9&-vyHhlwg1!%g1GqD$}qtPya3emPLT8~H5P#C`&c zx)C&{p6Q0Wo4A!QNAt$zTV;5Wa=Vwk7NZEG;VSA}LJAfHMl>^=9;e@C*Z)Q%qrpY6 zA|HDIkWdy6PO045hgiNsy;N#4>jM&;Vh~^(^%jlD5F1N73c|(D&O&G65EW;YFe%SA zQ9cO*y885)rxTQ%J=FN-Lyr(U00|{%gj9ERD5Im}DL#@|LB$uiNOt+$9-+yn)4SOa zw9h(s2!nuWNj@n`lRlomWCsV!OY+xcA2=l6%>|#R;bX7Noih*WW5i{0zvhK!P8u=>oB5vcG8*B613W*9-nrj0!sdnpu?q4P zf~FN(OI2$uBJZWqCuIcQ^U7C>fi#_vD{skAENA(BGq^hJQZF?MQlPhjfeHpg+3!bJ zz(JOqBpK!)4euIjVvnX0i|=@@%diS-LDkxv>+;a$bzQ}NVQI>tR2&LUmj&Q-YgXwU zqcI3v!VU{YbDuD|a;T02&0qx1=$857O>Dgqe7+ zw3=f@Xqt{=rqw9?ntFX>LmYl$Mz)#8qE%tYGK{+S#aLeu{bUQa9=ZF9#s$-^9O8Uj zD()sliBoRKQgqS-sxYh->dRYOqg`_YR>-%1V_u=XgAZVc0hn4bETpje#Y)Vwp%AFi z*P600RYiBrRKz>aMP*Fy&KsoldT&6Kc8jy@M(VE<=Yp!4{2m+7>hR4Lg@F+&2zHjz zE~^a%^~?_O!j9CY*X2s-83RK)ufW5g;Zf5;cUJaUtU3E`qF)dhBpvEYc`|TykYkG4 zYM1l9rrAhpgsVLoh6ZgFqb(o@!>2b#W%|#OaKb((jlH$VpxhttkDTVQGNTZUc+oX} z1S7$+-}qJJ-l;p4GE-a(kvSgM(J8f?NGOJwBkQprb0o1wnxg+<+!}L7s53s846*h_ zSAMv7sZDL9UGb%IrgGNPD6&0u>bjEo@zUF7!M)D2T(d&YnGN81>pS6FF{>D;|NDF| zdeXriU|=|h!i+80e>c*wjoYul-+wcbqe|hOh;B>MmO}%4#}n&Z?Bek0yRDtTj8>%T z!R5-Fh9aZYvO_+HfH?||X>EwK>j)mJbE1-JQ~Wnur(VumWYv0hqHuy`PRV& ztTTZSY15J11joTJ5Mk|MT94!rYu+}_`NXZii98S%F-4~e%&(ila-El?cXso3R`ryZ z-u`%MeR(<@LSMh&1116h-y;VwYFB3th_*$ycSgtliO$s#$~8CT>UXJ(Zuqg^sEDh1 z!ffh!p?n7wnD73;x$}UJF1y#%CScCY{b)@k^S=GpK92JQ#l>1Zza5qg726v5*o_w& z!$AcxtHCsQ4;-(h&DGfboup^zeNM^@SSS9_J7VK9^JX?XJIp$oLZ2%7zHb+$w8A<)0870j-- zY7U7@_-O`f?#sqkOmIJ(xWSFpDf*Ahrjw|Q20ExTx+W}eAYSMnoA4j5#v~|ZR5ajB zeog_Zl&4z4xT*W;rg#&X6j_bJwO6w_s!o}}%7RaqLTv(`>3W~27?YDEYj?;$_Q^f- zQsMhSx?z5Kh0AvWX3w-yV;RnKsS87CR)0&5FJfQxIepBvDFwlIqiTYiKXYR|(+tAs zost_@*@jx*dw+Xo+>}~hRRXC!)%)ek&u|Z1TCA^2)LA6oEMwGdOFvg2)XBKb5JU2f zVXbzhCM$Z!7M@>U(@JD-=*W|HgHhPq>__&#FrJ59A@f;VUA>y6jNi?9>9d1X{OX@9 z(qqF{{%m(+q`z*y2700bVHupxVNf*K3PFH6he=5vJE*(1ay(6|O_@0wY%ReCf0n2G`KWqn7``4J#0=d9J0jt5L1?oX7FS z`tA`OMh7eG33(x zlfyu`H`?cn=KtdDEyLn&o;6|IC0MW!fx^N0flrr1>CgsmS(hs_PN;9%^Any&48PxW0yI^$W!VY&L$hDuh1hSN={cGJsF+NroNmHDL^fjJbi7^MyT z(GwHV?v8dW+RdX`Reus&u5s`U-EezKy}VWY2$%j?>CCU zbO9AiS2ZLMI&SukvBJr(vZj2eSS%zL#BIFUDW1uB_#ECO79;2eZ&N?5g$^VawdZ#GT8n%F>pb zfd8t3@F|q8!P@v5nuF|tWlh4l(J}DP4%g_uKHKd%-=D9C3=7onmNpJEAUI>R&I7IU zwOc*SdhI75jc?}#*O)yM2wUUF?!PX798^DHVrBJ6IqV)zr%Kf}!EQzE6Fe##`E)WM zs!TWt8aB^{Jx$kUHtgHoU;GKSJU@5zY)Z_$+tey;a1?Zn?Xgo@KK~$53v~$;vA1F9FUM^T^ErKk)?yVR^7(xQHjXAJym4sPYJQ5NUS#<8J9gt>V#zzkC@4k3m zRLCp-(L9Va2-w6N{?O{FVZdci^_2@5JL1pYWEd@c0kGr^b44|QVH5=nxwXS^Wapnw zii9lVms9hG47Hp-o%T)Qx$Yo)F7++Hhlj0A{QTRd#{)yygHxjUMc=UTS*wv90h?uA zdo`juFPx6s?0x>{jpo}o*c!?;Wr_}vAEae3R6+}1W9~Gmo3wGIi-KQg}l7JLVOWzTl3FSF(WuDqbgrE^OlCQ zw;fJH-tE?D-WI1{$W3MJH?O#nEFpgy#%L3J$OA*}F}Bcub)0-7ja5i~J22Zy4vL~# z+^C%fkM|tcm^(q{g1ptBlBn`tzM}&PY#Ycc+4PpWif?v@qey!<*UT1Bs?(nQcE9ccR z(t)NQ`d0_qg$1`_m{8JVPTuf<0C_hph~v)UAqo!Zb|`F+)M|_Aj{>R}6+23IUPAqT zR0OktI8AL=60ya*VB_sap2BuIhCEPoPa9EoFGr#sA@s2JmPQ2N#9+S6MX{HEat6;P z_`$f~@m%O7An_Hk7B~3_6KRHqg8^T%_^nKe=8pdotPLZ&$FSTgCiN-@o(9@rRI#9!zoxB%3}Gy zg<#Oy@u8@a$cow-;UUis#A~^s1B!PA|yq}2SdQ{ zw?=1Xp3bk_MzY#3@;E!s4flVLEiLw^RBo-QHf98Zcn((>r};v#dF(G)zub;AG|T|V za>#@w1``_Fg_Uz_D`f3t3pact`4vggsO7JFEEGiSs;}!_{E+K4t#Hgac3q- z#%ZSlPsJ`PtZb?u>@;=EHBSl8t|R+(=JTrSDY@d=a=(6&Nqb%sJrWiqY&nYEgJap$ zZ{0BSiA|ZqZ#I|!(WjWZS3|p8O_0RyEl(YrFAwi9q@>nM0dyx3vKI`%FMraJ;zXnC z6N`Ad5A@lf-(0k!x4|BI);t~V!4Bw;hTztizfNZmHZtfiFdx|L1jd}!rnrFpldv5p znla;_(LlFu~bgNnqvKQ>=(P#qQIkifg_SNGpKI~ih{ z-~SqNq0sEfZOqKf>B4_Uf6%2@;c%@ATZg^^{P6>75Iv`imYmmrI?=a<+o$y^phn&N zOJH^NY40<4DX3%D3$@GNQ{u>H2=?{G(#>Z)72T1%cr^aLmOw2x974kB^Cr4Lkjz(D ztf0cP}A*w`TV|RJSbx$1{oBULdjIh zCAn`6KK{%oB_B4-_GAlKbr4!WO-ht7b8zw@pU*r=w^0=Xj5Ez`t&_*SrT&{+;UtUk z@tDKN-6Y#z5@K%5jBx zgl?fx8tk?p(Vz2wN+bkJ@+7WR+tBC!Q`=~4zsqr&3_Z<6cd}7;Nf>t}sQ`X5{ftxR z5{A*0XU?XpD24TpVp~)KmcS6U;2GT@qqPdPv*XozJuFDDWEYm_&d9YzO7%46r~ z)BgDa)GVfO_=KFFKg#|jGDMvx0YEYDf7__<_}tt!k!H=NJ4X3BW#Yx3E}$@;klKFH zV8#)qQQ1kxbdQIC4E^h`a>v8hR(D)?=9`>+#+IaaDlNN{XImdW;at;dMnD7z9 zTDYIs;!XCb%WEpgBn9Frp0z|o!4z`~PIqy7vpHhY@xDL`wgLIyomh?drK(;Sp(#zNl5X=#y3UO;iTk^aJ9hV-P$nmf=KZGQZriUgtE*}p z3>ovxLrv!!w$k!2Gv(*C`pp&sC8?iF7K5h~Iy&(_ZL1QVm0kWy?d;tO+Rjs;?w7t!m8e%RYryNX+jGMkU|Qb7&q5-1Q}qchl*7%O+E%$KL)8A8-$ z{SYN6Utx*QcK{!EDB!bsZ))&z>Fwxl1W`ucpqCv-#!M~z7aIK1S?Ty`1r%hK=~ppU z#65%cV5wTi6Ru9jV#bno*_6TD(MX6HLuYKy2@Retu;r*CvGPInSCx!rvBsPGF$Bd2 zE9q%&4j}=uM7dVXzsuuVp-RN{TU-!l>Czr=zSu9g@pUbeov$&E*V{0fmqj^;1zD3j z)Wfr`p*4J9ee90+0y665r%pJ=t#EVWts!I6Q7aAl+-iObnrlS7_)$HuS#D+?S@I;q zJ_3A*3gjqU6DtB(r?z0?1y&LwWT1qomn-a*%mr>+Tl^b*=QVe^E5ldFF8C(WC(hDZt70#mL6r=-PDyiN1@YZ&jvt6#s z&B**%`2_@RZ3S1qcippaCs$jkvcsAM_{|zotQainD2IWW71`B+FvlPw>0v5prV1L8 zI`~E{!#=P5wrKr2cU1xTL*kd4sSsSgYvHOvF=z`^r?PtJ>rzg|1&Q znb05CrSSXVhjo<;VeW`~hJ^3Pw~J4hE!ZSJ?|o~yT;yJv!a)*c!w|p5zO@uG%AZ_z z<4)M4U3)naR~)9Ae^(bdwmj7)$0=FsbG1>##DvA}ag0_Oivib|5UYK}iK`+gF7Cp^ zc<+IHK+dE;YKb-IQFb!p8y~k^o0R6`h|j7S<@x|AP5}jW3aAQ>MDeYn*B-v;N|WeO zJd0_+U9UQt*LtxQ+%>yf@)CS~xDsbkEngDikgCR%!PSyg&s(-Kz+Nubn$BuMFru@T@jizDO3) zes9QSu)rPaS{CW=zs1oR8=60zdI|rwE@7^-&mbbivGgTx!d`X!XJ<#`JHX7k95ukx z>{Kr>y0>l*Ka~5hU4(|8J(-a!{SBQr>4gq*sn2$W)w-W#1CkRWoHx9R*U=ZN9~`C_ z1)aEk$*E|_1pOQxFt-|pB#&8!ffZ^JBJ?#FrHz+`ycHWwL4#*jEJUxPTYTM@%nHoy00XN z)sh5qa?8Z96t>)$%5iAbAKKnE5Tj2E*I(<10h#aNDrz}#=XmshKAq)2pzZt_HKCe_YH+=ikRj`^ zabL8HptIciO0vGx*xKyhU+y$UoAPTCVg2qlErSK3o@scxE4kmklYB&-XgQ@dqo#Rx zY3yw(P&0qZvb0AswTpTrv57e!J|7bxcpjM2u^gEN@;S#$nk1!PG>#FxBk!$CVtBYl9ee?d4`7^%{lbRBgH$Tq zY#Vh$s4N^~XJmh3s&9LgG#@lkSCX-B;|H=95IATk85i~ z>sf;)hT{*q`awKMkG4yzJ$~##>Y$nmqG$oDZCFceK?mRa2HzTZ$WV>6)ltbX;%%2nF z!r)aBX|j0&r8KZYa~pU}w|pIciMGj{JwbYh&VfW5GqYU!wDb9_3t_Zj!kB$jYI*EH z8^W?u(x5zH<<$@y>PzBQYm|zt(vU@rwyCW6vK@V@s*!DTvz7OE1T)@p0Qx0G`gy z(Txwf*X@phu_sB%XD?V;)Zd@PqF?q%^g#AxqBtGX@h;Bv>p1P7O=hNd3R6evRYUkP z()pqmu4IxjL{f7G5+JHtZ{7-65p|yOX<|H}Zm-GC3{-YSl@B8X_oQ=2NVMebls!7D z^f21K2o^naMcDKA__??HRMqc0s&%^bs`P6vI!L^@N+9}Q?hkJk8aUl+33MBGzFL%Y zm6Z2kE8m3t4y*ILtN6+?vVm?f|F%mPIeD3Q`nk@C4${%&)JK5yc)-zNStquQV88~O zC2+@fQ6MY`yCl~^g{(yk83iV=vHAJlu&eKnQru8!=TG}*;0wPM8!+)Pfw(bEXR;%> ziZo5$Ntx=)jmPErBpw=R-2y}SaB{ntT4b$9$-e?Y=vJK02YS+W0F6y|ncGx;Pl zj))NP_|XRnWVLUV@|@k7ck>NugtlA3yTI<8Rv5U~^&DNuEt*w{5Oy6wX+kdO|IyI=OYOIyaOHMq}pHPTr* zgVh!8FH}}qZ%~zor6lZm9z8Beg@negwVHX6AI^tMGy6`(Q>zD? z|Jl(lf@4YyW)4VZe8?Y1TQQ_Dr9|AN-EsNjb2`AMAp9vj`ls~hpVRiS2I)Ty)-^`)=P65bCr;~1-Kvgx3Cb7aWYG;Zo=6zvIy8sk zssG(q>nE_*Jz(BZVtiCul$3-)*TsLq0l1^YzCZ3U@hXgV`3DKnKTpmjg&?XEt-=&d zhIZ*epPC6HIE88bM%;n>ufwSi{f7vw3?qDaL`q25GmVt|nLOf1##%N0$=Qpx>V|r{ ziA!vg5>yKUz0@o$r9DtzntLD)8rCqXvUL>oCwG%Sniu!mH1BwUwvF)QGj6j4^6G?> zdTz1T^S6f%8SPdOfMi~JGe1YS+Lg+qNfva`^p||UnDw+i4d_Lab5njmIu$QgHJDme zCTJpsYAy|P{o3m4-(%TUe^I5yfG$1L0n3sob!`=x13eTg%eD+R#3!I(O&YZ$T}T`>f72H`0W|-0RnT`@aIrC$3&`4I(D3PwMr65Fz&PKfx8oxpWmHIDFm5#Jp zh6gSq$6E4NJuOp1GIf3ca{6dfZT%>SJXRJuA~yqq%a}!^0xpEZqt1Ol2cEwnw1d6# zcgjxJrm1apbPa2;mx?HkfF}@Vdm|?8Iaa{Gwtho1G}ExY4<2)|8_(e5*5-8l-ca?= z)+Q}=`SOQ4`92r0Q%eBqaPF{pc)J3m<2C9y$EL(@!Bf`%3-H;f>iIyS+bZFa z693`je@Im-u8vlJe$sH|8a`&)hUfke><=yJH24H1c`n8t7m;5702uuBBPu%B9~3+? zo2-R<{U1?~c3Qa2s_3X)de*OUA4h4;L=ILqyL!}B*;XDqe;IJ2S4Osk?_t^DCp(nd zvzkrfdyW1G{6&x8m6B+@(+?d5`YoWr-2H8f?48tcd^XtUV4tMbzAw%4f` z&?}n~x>3B62VM#LFUqot>kwGQ*ekoi+wH$>A#SF1h=hKQU zC6WEB@e4LRVY2mFA~KKSfEEw`@&7-vV$8&K?DeeVf_8JzXn3N^--Rlk0ip!3VXW)z z9iRh?Do1}4JwL@q0kEHo$XAr%Xv5oR!OrBaZd+I7>VH@=(&0slPT)!of^=t`We;2( zLpMie!SEGpM$=6-0W$FD6vz#7rFgyp&lUGD`{8`+pB)+VzlCD3?l?&Qvrr5XYEx0m z$iga?W=cf#pn9`+vHuLjhAbdzFuyvhbM7@-k|GWOpe#&tl`{vwQHqNe=KRT{SD|+* zDpz;gKp|b+Dh0hmEA*vnn%+FU-2yWGvNPPs-FUBHlTY?EDZ5~7^23^eV1*@ep)|cl zRs8F+%x72{rSGU0IU>i=1{a;9b-dQ|Ti()a5&sSj_&Nf93 z%V+*kDK;#daw0eYkuSMSZ6UjLpCze1#BQshx-!!0pPe?f2kqe9Xk2y-i#i`biqmFW zSl=yUdETGOFgejyIqdvE{oW3oQu@p#|5W51_7b=9{}Yr5{@cF=iM)}4$Z!7ZK_a^P zDmKWqTR$lV$MExS`V@D?*A4aUv7&757|Wg_>D5T$P&U6Hh3t6LGynq+-uXmP14&2b z*P`1B2;`PAto^|ej|d)5%IOWbY*}WuQsiXmm|TgCrry%4knucbuM+QMe{G!xYoU*Y zS3|+IPuZ@D*7;MPu)3;a^c$vtw=>i>TQK*-w49u~^lokph85@}-N=m$w^EpqRe|$Z zi87QM1tYBAI8B*mx6OYZP3gx3>rO#yFW7|^-s*()NRo7l+2=>Ez@dC>-atg-0pt+U zzvx>NJRwpVd*L18-1$jMLtTcx{lnN%McoKZu}W)yYg1F=+nIsATel77jPRlce}Vw@ z0!$y>U5PpPDwoS8gYfdij@c2MhMSjzJ3^Nvw{HM>?3gZdKQ&r$POfChdc7jsG?iK8i~9IY%;EV~zLOK~H5657O?vUY67=r5N)i#( z3B5_tb*)ui;8=Dug3Y(%Er?(;I5IGSAgT&f zZHtc|8M`&1M>}x$nH@REb=r4(edrZ_I@74>EF}F-9`kCMwLO(LgDx?*(soKI&I8m* z9!NdU_tK0iej70?#0mEPWk5}O8m6^nZWHWxay6)9~jV9Ct_IP3KIHq^SP64Q*L9LybLo&Hq^q<7So3_A9NgyjUt{W(gMF+XHBQFHKe% zJwto6zAAK|m{Q;HRIIk%8sHb}xK+L@H=}u|#97d;hBxI*f+jW1I8xAey{AX9SlRY1 z;eC0>UesOJ)*8?SN%-V&7dH3;2?_SKM+iPsO873AS@6zFOINDnVLjl(xD66_h0au2 zLDHMhh4yRIzxyFZ(i}H0v7|X0Fa$$7J6+vcwDO*laoIZawh)T_v{NywoM)lzeRl~X z@3FM6KfGqO6$mo>8F@x_uF~|&w|{0=BFAH5=wjz6KpnoE%$OBkBGcq*ahuIXrw1k_ zHM?M(j~9oB>(YaUDNTK3Ym`cAM3QbOcEL1&S@q1kzX>Tr4euyTD;Hzxqt;ic{T7~r zBiPdDaCy#_rdpKgPj@|AKM)`w+61NgpG9r12>e?L#otYQB zxZYq2QQB`d$4*0sB~e;yM1l!Y&UI}_$+6whr*5b%@}c<-`7$qze}H%{=eFdY{8A%o6E@Eru}P_ghLI24a3rwz4B9nqO}l zt2ur4iU%6{}aJYCNW;4fgA_nG;;RHA9Fj;%fSW@G(I?NbwBt22)wl)F#hvzuT# zYTJ?TPAo!TzDx~jh~NYB7u=AQ{b+K5uhDJWk`Nz$KZfiXVu|yIfY0Uty}==t&x$SX zx6cq>JKUwM_a?u7dwdH%kyORp(DgeyVVdip-a;~7U%}BQjs5&Wcla-uEOrNS+b6Y) z^&(cJ@GoYXf+eOK`dUP|oZeBrePvQ<+(orUQ0vuQU61+#`Df1UW>J9)9nn7Qk(&2g zUjC12^!RZ3MR&Kgd|QX#2Vi*}1pT*{e|03Q^Y6jfsKe+1OsO4s`MCkb{7ctOomY<@ zBh)b7eCb{C`Hg#bxKDF$9eZRMviwQvcf=xlwm<@LP4k>_*&9B6?=s2u#o~F5sA%pm zsSH+Eb$MiYQUpoejsC7Rr>TcGd+W`ts&W7p2T*dQcYHmCdkxp;)*8Qvvi)wLHCI3@ znOHmgJ}Fz#|BhHc-$Si!!HqnuwDcbQ8#m}D~A_{DLkuSc4MV6n<)g0|9n~OofZcYi-rd@t_DDah-cQ{ z@2o$FM|)8sBH~F&!7$J-{1rK99Psae9{YtsZ zan*oI@b)gnzBOiBZi9tT4Y_k2t*s6A4|Auqnz?I3dpbICiQnXfxhFcOT-t^-XU3Rw zu;VRs*qmo$cA2pUm!aQTmZaSCVy!-a(GK z4IL2?l~K8g8yeBJY;sC}X`3iBfJ!RW*N@CCHXcs-Xy&QJ5WH29Jc?u~~$yt&Px{fAMU-Hs=j%5k1eelo|U@KMzej@CyNX#P<9V@*Y(HQ#tg)F`qpYOh^@!IJmw z=i;cLg!j)VcR z;o^`wHpxuEWKy&QPV)r3={9`3lapS)y10%jnz}?;P;@~J6X4`Q@xUSajk};)r_(AX z599+`Kb}N5<#CNl64x#aBw=JV`c}V~-aV};(Yri7chJ;QKkN^F0(&VV+vZf!2}ARrQYh)WTG?&?@p5! zt)E!5wAEsMe&O`(D&5w&H6oI@O+}rMjC7vX-^+{4(;Lk2CMYD*5<%l)cy&dLkzw&m z(BW@bIPVoJ)|z_z44r}^|Ln2!&ww0G7E&yp3>YzjVYcz+@@FCZ12{9ePqvqn;-l;@YMOpOjyKN;r9uUz`X~($;Y;7DjF)yq zm6{Ojp*;_+BPsdb^_?Ya9!b581g`EaV*xsfWE)K!jilJCZ~jTavffa4X>jl`D%l?f z7B-9e#N&a>KJ$=|2hx9$VLu|b-XjM0HImDDGLz4!g2Q8BT`1OVlpb6RzKr(6kIPhv z?7?!2oI?mHA%&Auewi$s5j!BPt37KQiT?sQHXYDh_Ofz;E92pEvgB5GU1IIvAqKqO zQ*r6I5eaa^5ux@`mz!=GHXn#mRJ5@gs9jVR_ZhO^@R{`fK_}vNoImlS3^XpLtz@v< zxwY-baCwGyUUNlfaG?Re%(BB_aDa?auj2-TD)PXL${gkh4jLc7)Kyon+ojlG@z`1j z*>2sG7|K-ggzmr+<4Cg`MK}pI=b>PG(aW+2-tE0xPjGU)a7zS1BP8eH)}!e9uumc3 z{yc40cgK2p{IC{^*eopISWW!=ctD$#D~yo5h3dqq^g)Q<6Zh^}{mLR7y8w*O^vxHNB2(p(5(?YJ7lK`1V7Bd{k?Ad(NKw zb-zB-f^PoJFW}W#RKs@mb+`F8iq|DD+1-W7o5J2}B>d*{9|rpLz>LCP@y$D-`}_N( zA*1l_-G|SXjy0REEzN)nt#f``TU!`+5tbIix%3KlGuQ;uUlXyJOqxRqExVhpJz}?J zLt-lBz5xOai)eASYhY(dp!&93&)e?%a)JHYSo2BS$S(pdx)hvQ(VD1D2|WBHSSN{l zf{|n+o2)%B<0Zd#&V(P26gyP3Hp+e3iwcF4oJv{lJ%N7hN^H?qMbDW?_@fHPvLkE8 z))fk;@r%n*0d&{3Nb@>y1C{&r%IkAoitoD@l0-rQIL=$wfAB&?o#;raU;R|9ENjtN zc6C{P83xLyJQ1p7Z-M4_THvFPw>@4_V`q<#h0^aSPcCqX^l2!>*B_NJ<-T^K2eyrO zwrfxh|6gVgsOY!I;Lo{jozKRPpP(GesF~+(%sge&<>*+FCd@w*&vh!PLR{^DrrOGv z3ZVG&At>Mc^~7}B$ic_VuTLmuJ@2qC)S&3kMPZ0*PSMmDaL<$eR=uKp(x#hPSf4yS3$yG zAlhj|wImfgl6Tg5tV?9ctf!|ZzcUa-%H1E=uG40~VH=hiHrq@xds!2JcqK2rWhD=Yjfy+?Z0E@Q$%Hk=D55)I#0uCb23;&%?^LnUf%T4cyU~e>_ex4i1I|wp zG$jugrxMS>AtxtycX$8V;ta*1#nipi<>|13;GNSkA7X}xWQ02v9c5MiGUf!Jna|-> zK2u_{ciJNQ>vN~7fAtkeA${q+=*SJ{+=8fi7)UM~^ljcT;IAC;0t;E$;}589Hq|Gv z+@Bl&E=iKj!y@*!?xp`dG;+($#kHc+)Q9I;!hqKLchkuA?q@VjoxQvbeaK%wo{Z%6 z9LEG;ezHg5PB`%X>C^D@?>wu1-moQXIL#c*v%r;S?IeBme1iGs8o$l6ecc&2}O`RB1?EH%r|K|)^MtNUoJWbMhX z6*Tv+{Q95bDfr%Hs$CBSPW&X3$$umY4dx+AG@Iq;d`y3u=YPnTT+nc0rD3>2#Z`J9 zJ#G`5_+g*LC{OU6-pP3G{y{LEjc+_><}3CqRN7|kLUZ-U+2MPy(|$gpi0#($pntv8 z;zKhq{jI(^TQk$>YUfQL?Z_)jAh;tr|GdIr=|v2Ay13p69+b-TetmK;w;|YZV7lDk ziuR;P;L`D9bHuj(W9Nut*e?0A+^%^M>EdHi(Ddt9%Rfi8zdg=I!#64vq>du%gQ}1L zAZ<4cYM`XofPJ`V)wxA>Su@;nAes_J%ugY#ZfnD++vJ{kU`oqC@k7#Z*FGcf3~EK% zbgqB9+o#r?t``=s*7uQc_yBj{Hv%$Oo(UxrA!=Lwu3GJ+kD<+*0zb;RO;hgMi1^)5 zP${Zx)3kg0-t8U%(?Hcb6Q(|?=HNQ8Jlu$OFRpAR>|F&f{MP8YURH(oUNI&D%r`HZil)FBJZjOi73Y z(`w>QMa7oJkaawOwg3}Blcb?@&yr}|XQb?|rLguhIvm4N-}7Q+Fh!`TGt+2&1GBj5 zit|+akZ!}b9_#h%LYS>%o!3<_nv$J>bf*Kvfv;P1C!}qkE!k zq;^7N7IVBn{p2^#>xFcAuK5NZ@O=v01Te`Tuz=`nM5w1XEElTIWgmR zWLn3?=C_o|LYb(*)d$L7jc`V#uF{ThTqa6k5=}%K+HacXS30bu-IE1Tox48mUyx676 z+RXpq0+19rFUL3Xe7kSwwu_qk*`8Vc+eYu;<*!rY!12zBZd3j+)rwje0B}@R`pCNK z1xa(s?Ynl%!R6-gwZz(*9o&6|6V_#;spgW73A!-JuW`#}KR$8f3B5z|W(b8QqK%mw z;>?PmuS;0vRUOBCUKOiHJ80OYzgc_9ld!L6dre}8rSi@{exgT@wM8zL zd}V3M5`er<5#4Ib%-6iy>S)ufJpZV3Kf)x)oM0YN^xljBs}6|dufh7qS=)A;MNuKc zLp8eWE^hp!7zo!_AaDyR+R-JgvZwNg8SIzF25a?IaGg0@Kfbr+diFv-6Gedy5+O+XyI;gLu^{ZE;Fqi_klu~g68~Uc{F*SRVkmRq6wrj8 zu&;}bgTQCGX2?t>BIw&Ij}>}RLMLENJ@w9rezq;VnhSq!=>3u*jquDnS62qtOajIG zK^wPf+Z3*Op30UE+0`z%N*)C5&yu`CfbLKGh1qN0N`{QJnA>rFT@>e!>gF6t5;zUM zcZ$jmBWC-6JKNW&(11RWtj*at0XW2v#F+i&EZu?` zvFlVsW-o2aG}|Il46IUPkq~BUK{+EG+~eBTk1mCwp@BBtvVfS0mV1!kyJ5g#^s%c@ z!f%`6&Kwhq8Y{ztph18aVV5zCXs{RWqxy<7_z_)O6PnU=mHS+Q(tal$zf^tLHwuk6 zgcvSc66#+5YP@50wFn@z$Y+iBT5RhWv|O9^DP#A)jO!Cj#1F8(63-JjOM%JX{>8m&lFcGtI?=N=+BiNW`M>aw96rCQ%!5SProkxb&U1K zE3bW{leCYrQrj}WUG1sJ-DAR$kHg{a#!9(GwGkK|gv0Q421v(~nkRi|4sbYz4=c?c zNEs71l|n>9#y84A?dslcPOQlzLPj*PbO+Hia4BsI}Sk~Sve`|Kb=F$v0z66C;r|?_Gkt4I= ztxb!A>doJvKMy~5DD!Y<5ZJR^2q!*5*@pM7#LN}02^6Iyg4`A-C~HT#*(F%NDueAn zdWaj`yum}7u+Z+$op!De0Z^%T3rhJqZYW~bTF z{Yqk~Dr9a>zIL+~%y~OPc?Svzdvmb(>l#f#@&%tg3k0b>fd_hs?RIgSb?Y6+dDH`~ zN(sYI(L`A397kpIkj2)!5oNzNWn5moq_BgaJwFIrk9VfCxBl*TdoiA5#RF(?oj%ZA z$<}-?e8I5|e`_juL?Mzb7_IkcIBm;YRV8{=4T=Kx^{6PPim?tn; z0YYKhwoYz5v?R2L)e;qsa5$7u3Qvre*tNRwDUUAonCk<(fp>nuG!I7%+YT}R?U$1 z9|UXEu>_Hw+t3QTFFT?#8H*WlamjnTg<|6?y5HY&I!yheyEAYmM;xbh0_@!cB}BFgCj~W;6~JAi;BgDH`6C8r@1&Qmr>fi!JL}1Kj3<-zy^*;Bqqk1 zxnMi2z@F#D;?(rL3vmbK7pIWil=QRH&t!hLlFDT@0~1@$)80K2QhMe3ep1$PyWe@B zoLyv9wPLroh%+(M0A8rvE2n7a>~NA_)B$xS^oVYl@?dNdy@J6rL-TMN8CB8DlN8iK z4qmB?fn~gcYEA9=*A7L|G0?!4>r%ijliuQv$LCrE9^`ee#a}TZ@mjOPk%SdsMFQ2^ zknQ=*xSou)0-uZ{W!r@*v-a0^%GUXU-$i0yHcdbZj3^J~D6iyUNNIX@S~Yc(JOnip z($79CXOep#Qnw`LI|42OBi4W^+DesC@#K3ACg!_m&qswi#__&Gv-d6~Y_Bdfg*kXx zVHISkNGu8nZolp*%iqHjUkExhR%5!a?ig44zJkzLl@OzbFVi1fmGfC;<4`XQ=oSV% z$Xc6HUG2=;6#6)EduH!64L4DB1Fq_^C@alpf90E`IMUQ{Ha~M{r#NpGS8QhOQhWcM zH9~+V8r*#KTeT(Zbb8tacr%m&#KWJ?beWg0bOw~=1b(U{WHnr;5Q=+*I(S%XU>?XW z$pNvkq%9o}{ISX z$h~lcb6heO+y7wDl+^v2>i3zjk%$QNR#TDj1w9kK&T{I99i{n@ErV|0GF7fZB%+M= zORs7|^(DsdmkQRgO?>{n!-`63A0o(n#RZ2Za)%SWZhLBD&&Rm;G^v6kQRrr@s2;xO zrxutFeJiV<+fO*#wFe$}du@?41;oavPoy>gG?>VV;KGF|=vLdv^$;f&V3 zf0I%BaTex%IJIYo$8=LaL`3!NwG}c5lzZVRcD3#AEb{rhYNvlW5$SB>H zBox#{M9);N>DDQ?REd7nx}y)-=Sc=;YId#`e+c)Q7tdkv@6CW(*C)I&>JhRp^&_ag zj@>!>i+)mshKP`YiRsOL85p@kkpxAE|%T_S^}s`udO{4q&}evKrsgF}S;0|IqC zws0~?ZdptZnX-G*jDr=zY3#2C!dX+=Vm9f@k5<;1k~sY^2;Y!&O35a>Yb9RS`lkWY zZ<5)oQUa18QuhjNrnE*NUL!}IPKG;{N7@(Eb1Ino0u5-zi2H@GP!O_8`$dHfuMhmZ z0$Uf@HQ3g-o4i>yXUADJZ#eqFOoLv*d`lotPHu&Hdk_fjAL6s9{^J3*UYa}X<@33f z_d+Zz!rc0?2|i*elI^-)6akYuVrV&Y4EPxB!{}KUe&Cinl$fb;p0pcZYHqo4OdU`j z{){*&YsY;ipINtrLHYvov*tbO`>({Dmk9Miuj%=|DMXCR&XiP8M|t|^2VMeS>?Z6D z;j6o`oA0eVnl^7iYKGnV!$N1YZMFCk2wcB5%CQxn{rsJ`lzTsK^4hC4y@`V~0NGN< z?%S5f`SeBUXm0Cs`EF#=tJ5&Fentz`Td3bAkl;^o49(amQ6WF)IG#y7 zbPCB=r_KM5b==vmE!r`%+G7)Dl zGBG!?(;LaIBQ_>Ib67Q4-Fdgkv8)|er3|VMqRE6(2C+}^9&b1<3k8165wA~8v%(_d z$7ma+3M##k*JL5Y3i7+Yb`w=m@DCYa)i7B%n3R{8P}Zy^-UyY>aXlwQt5A){P2uW)J_1at!sD5XbhPkQL7ifE3V64YTpUdSwlrsehTS? z4R3-gGz(kaNEWyYC=D5Dmdj@O_{RX!!KoMb1;p|LSPID2Y&wzTRwuUttyTM@lFH4S zz(*^&Wn`thf50{<;dAYfioStIEawZ><5sSW`@aKjN!rGeNqHoHuSc7A{G@#LIJQUgY`0g3 z4T>q-1}(sT(JrL@2M#P`g}&l5YVu2m4T{gn!8m=O5#5&8lzki)6bDz^X3_WvMdejU zJw4prO@fKBdRo12C(TfwU_w*t!j{vu8t{#2uqzBXc_tRAul39;RU|*y*gk*8S7~!T zBT%Fg6>PjsR2aDp_XMSz(k)OpgF>ah>w@fw;5yioWyzo^O#_j2{Mz5f9xLwvqIxDF zx*9BrrGIY_J9U`6sXYbl_m;HsFu{;wAT3xq%d~S5=FRVS?>p_H{nIT5l9-H@`Tc^R zChR4en2kNG(}V!Z(?ob=o>}cy!5ztc_I`R{jGgEU!c+6#<-qiU(sl%XCtBO z0zING{c&WkH*ro;Ol$Tw55EcS;=P7tIvyOjMx=sQA1b@{-^N>_7(sm|-QTgyK~*~G zzR7SRav!`W=ej3y%TugI%B zn9lh*8`rnGY;Aav==f|b0uUq%Dq!#nsd%fut<3Sso`E7tuw^Vrgi zl%c&jq>sa?*fq=#6Snv=k$=pnsVgCN$b9-^+J*6$5fq-}c^K|xX}J6|6RYasbb%_v zf#-o(Wc}s3oh*z9K&)2vT8k|E&EeO*htO2u$Ed6|Xsz#@qx7KVekkd|<6qQ@1yqsg zAgY)BXl_hWUDwQuizeqg`aw zo0Zmz+)bRyWtX6|GQs&R_WR92q6x%XD;hX&a53P=m&>!=?%&7Q?3Kp!X}!jG)i&DcrD$AHInH_Wl@N-yFHnYVo7IpR>qr9BoWKO%GX! zn6H$uB?wr_vMfNPGAYmTaDzgn)VRCzNLIty)}c^cxu8XByDCzy$f;kyNWi(}utW>- zfjOq`4)_EC17|*=$9Z=2FG#5dxi=zcxPyM?*ASH7E4{`G3UX^b`$e)G@v1e7zS@6m zy;jl2*E;b)RZK^sXc1{~3B8D`dL01XEb8t3Z?wI2SX@oBFA70}OK=Opg9UdB5+Fz* zxDzzN-3ONh2=1B?+}%C64DRke_zZq$lJDJnf9Kif+|HXIFq9{wc;2NP|~cbotMfL$G&HG9rhakU}M&!$W& z&95y&nf+D`Ltam3@Sj8tq$?>PucOS$w<|F!mL@2Qr{zDreMWUrJT zkyv2+TMy?gLfBWdU_CpnhjadSi)c`GyxEJcz-&Rma4T@+J{E4?x+7Re6C|g$lP6;d ze@Zw^NW6WMed-nIoId+<{&-HeRi}UU+>LmkVb^rRkW_iYX7^+Wuz~84Ci?0jfk+l$ z&6cu@ZSJB{J2j{4bA@jCxl@E;@UHd?LEWseoz+KrbpKuQ#FQCBpNCNqbHm!}KO2ag z3vkFOC`O>4%L{HcSR?1DujWw)7eKIlloGtw&vrhuhs@NRmoK z1W3tLw%Fd|RaV3eiFIL9Isz(ffeV{WK~7$2$?69;CE1zx;eTwb?Fvk{$Ij_&V~Ms> zOV7ObZ*)|2WN7qtT`p=rw(Qf?x$oYs2qb@fuHQNFWy@4aMHi{Y)3u?pCIW4j?^xJR z*6JD445Dhw-Rmde@S0hT7)_+~rGZ3mV!^$%I(&I&HAeS$rgce_Kjxm#IO$j%^1C;v z^X)G-pNZ72{ORCQJheM$rS)}~Rl#NrTv}5Mj;|~C_8_o6cCl%?mN#k`tPvg47!Wb6 ze#F0S!*`75d3~d8K_Yanlz|^6_5fO{4pgn3v5#P7=G2BP91f>H;Rf#pnWD!a^u{h- zSTB|=&%1^@D;^85v-AqmJ|6jL7#`Dl-8C-flVLx7J@WP%0+a;eaqIjAZu@!0{0#z4 z*H_N4ai54l%mGTabT)~>gJ%fOof2c3>BH0GR;2C7yss0a>%nx7i3BeINJb2x_Q$~B z2#bCjd&@~Q&I{Hc?SlegvG!YuvwW%;A7UfyZ6%??oIAY99t_NU#+AG0DPFD2+Mam6 z^?Vp<&rofryYwKdL;Wq=@ShamFNs%@`XOfuUx9S2A7+JDDggn+LkYv1)7TryX|E9jHlc)yk)v5Q$I&(ziN1Q~5O#r5Capq+m?eqm?W z*>cRxCQSd4@#|zJ?RMhMbN#PTAY_z5VMFDum@^$pL@e{p=r*a;rr7%pAk))!xmKbf z3e*mnwn>iOI6QgLB!g97Yl!Lp`s=Ci8NwlVAuAdW#JX#g-*Tm0pfL)ogf71jpR-w( zBj<)qn)|qpD}qlDr-=uR=*myb9=Z7i)PDV$XTKEW%|6{TC6>S`J)2UQw09L*&BT{| zQdFKPy`geE$5MrCGkqaFGJ5{LXh|HX;%G83el~#a z7c<99W)L4c&O}ln`lQ_bP*(rrkkU2PW9m7w5Mld=SM9TLLDV_2B+E&%k$}I2VjM?^ zWggM)ix!I~IR$d^Uu7xoKI@8p)cqZ0i<^(aA>(#}}#xO(h!I{#jV~H7_qO5%gE{6QabCGSEZ@QBhF{1XAM- z3ZsUE)WHd5D3N2KoCuOV(xq`EdWS$W1pd&E8Gm#%X6 zIEH(jk1zg7LP(2V6!9oM6oC*tDGzNHQ#jn`kzJGi+QG4AS%z0Za8dbJf`o+%*qCMH zxMICtAJIs1nxppq?^jpjMqO`GAei^h_O^+Yo0>%$D}GEb%`VLw`#gD`=}Z?i|HTp< zKHPi3V&OmX{-yt=owdX35w2&E03Z~=rJmWeaDkE#{AV~p7e$rdo<1Hsa~E;_(SQnE z8`^hI=nDBiGK2n`Qa^un1=V?D=gEEx<2Zz&e6NzzBQ-hNPP@j-Z>SWfNaCEYAKaz6bTLorig!L~1$ zOZnJjphbXIOfd5I7K3bh_1D4Tc{vx{!^Cpqfpf(zO}Ep-pPposeK6wazo<@?s%_2{ z$b=$)Q2{Nk&)ZdU+F!zWY(%6Y=&Z*{eukeZ4CW0O!g7)R(D3XL}(f zqA)I{#fInSG+S+5j4-rjsfr?91Dv#mkTK5^bn4?LyO-Yt%-_s2Yb9C)j%mfldEz?s zWgup@N7E&XBHWrdAdlq?^}IEKpVua1q(xh$?yf|x&wpEivs^DG*(|PAvpQ|_>SbyS zzRcvNJNzLZQ6-%fk_d9E!j~FA>K~oLLl&Hx9pKDo<;eTc9GW`T$oy~WR){xu*IdQI zjm74cjXEQjkxHF(<0d1q$ELP=)qKLZq}edw0OJrD86*CWZ#R<&8sJIaziI5a*JlI9 zj+8)JGW%6%NJtiX?@zi@c)Z+0#YP54$h0gjEcV)0l!uX=DAd%{;Kw#Q)yzdaV{q*D z6%X3MCmp#sZ#PWD=*||cyVw)A1}fKBdK@jG@e%76NeG$*e#QNOGo+cG5jv-?MzglN zR+1Jip_E7s@|Gwv%|GV;OY7UhZJT2JC@!IJw_krXBJ1VE?a1= z-6y7JAFo_VMIR|_iHzRh?Sb`ADo>2wUDKl}Ru0RaMA{V#1cQLoJjLos=HUq*zV0D0 zBbcG1uO{+yE32koU6+Dl8>X8fYgtvfbS?ahKz-mwiT+l?TmeTgj+3Tg?2`uz{#}S) zbv)hVPWA9qR(x4*iO^bypgD`Ajex1QdG~}BM)~6>ZVgZyvzy(^hd`Sx%375`G2IrfD# z&RBy7uACjAks_&-$%(6cz#Z3ijD1~8mLx!uUvAQz(@M5~ThpnV&HTxdN%zQtp+_Nk z=v&{Y&6yp`V$a4U&lY)E04j4~RF8po8ogLoYw6-O)`H|K-%TAy&mP~yHP6yISZyEZ zGCXOEY)vv6oMmUR%#nWC*S8@#xoxgNg`bgT)&1%8(wUbS_41;#&ja>eaW{9 zD&f)oekTj0kay$x`C?P*740Q$k#Jkerq(Pz0YB<~hHZR#$)7HYn`yK|=E0kt;Cs&Y zk!btl*OUrdl}q~t#-;kmOLi=iG_j<8usadUVmIL{RL6z>AsrcjJ7P=*`3sP)vg?X$ zN#O8@Du0sCR*W@iUt5Ocy(@rOFnd+$F>FjO$|O`a_G_pPj|&Vb-06e z!^St~RE>ZDb3G#EnzqpAq0=KE9lS!bdEv?OV_hrs-T2&><-sNF6!0V4Hy~UP&XfIX zsQF?Xkf*V+BH;13kYml1+L;n!(yLELq9U-z<3f~*;p9p9>UL*%K8MCWr)2p0smVV$ zWwE~;!O#Ttj4958jR|cPTAk3NEbRAJ_@k$mp!0LjSAC+RIoHSD70m$~Z1=KQ%53S9*0*k!uur})AUud=|?^dHef!UFJAtLac5vX+|`i*XIB2KW^_hv zoE+Hw4w&j0b9=xQ)C%UVcB1BRVdFX=jJY>}?;+rQ8IT&#u40MO6uC9c*Xw~$8aNn$ zM!IPIQ2NsAitT?yTPch~-&|eSlk4hg#a+ffQ~I_Oo#^vY^Vcha z%xHec9lagQ09LzEi|d(io2iJN4W>IsyJbCgLi`s11EqtXDGJyjgOTXTHSQv3Ad$CQ zI|M9CL_^FVrJWUVlp9b!$Fl9U^F`Tmcb9Z?nD>d<1PWx*eN7S|Y$0%nGW^P{OIdFD z;aOw%Zq>_yENB7(2TgG%Q+b<=BOg~n<52Q#uj9{EpV;5;h1r%jTaN9&kbOq4!{xUj zJVXxeII|fB0GLR|*||i>?O#;1Pm&Y1IHE^pv76l=wi{p7G_tsh1f?E>I3FKIUSN4` z;qiTe%~db_>?X#%#1f~XfElhk=m+P#xU%iY_6lSp8QISa?Ks|j=EF(2l@k}?I zs&nNe4v~6~r%VmAyBHdB7hV)2E{Tj`L}V`={J>|!h@X0&&5;T7kiNi`phb#LvN7s) zBEV3rh{ah=f*7a-)mGl6wp^J~aZK)hjnM*9{VuKxbD`RX8GcuUDm^I;1tBkHY2;|R?`6onEpFD1s=Ck`zyAG`9vPUxiR0xD-lyJ?;9lb+$Fz#D6 z?Q^+BCvAfex6|_>qpv-yFya>jLOipaT~?NG8}0S6gpSq~ydiCecv_<&!(YCn!(F|g zV$6oz-&hMTISv1pnF;@r#T~YM0Q&pd-YKU&XyN>oT#hxFcK00w|5wzf*aSE{& zl~B5-d@Xs$b?DFAl%PRnuCIZ0m*Gbj^cy8k7PbAm*}8T1P6Qug!i#84$H#lmFBC+H z(ihe9ZL?=%N0=+NCqLGMcPdwyJRU>bOx(@cwN0?yT6~~^fL4qNH=<4 z)MT%XTC_VuYt4HW0r?9`op4@I+PfN5h;_1-=Bsa&KSi50=1v(Q9~AN6~hVRuYl&9$!#M=;dYzt%JA*ss2tzfUv0?EJ)O^0_U>xXMTc z1S`P{HE(rKCQkvqk?iAJhzLg9B+q%tDwE+Xm_{dEQNQ&PlcChLX1Y8JHQt*+D##ts z@VwBFI;PaHF6sD`@%xv-tcRgL05K&yRx6LavA@4%R22*G(WTz|yiahQL_oC>NH{f$Pry$p2eh#jVz;HGIlOb@(PggiV0Pn1G#w<;vN1?hq5*g&$VuX$%hIt ziRD;X!>L}bg*wICWhlTBlNPHYZEpj)y~8;GNm}?)1^7g2>BwL6m))0gH+D=}h@Lpu zbr$rzxz<*IUt@d1>8nhuM`{qZpwTUol=a+uJ)gD5-D?+%&5+S4ni)(;Yfq;9sa`n)cFRC*KbmzST}g41~H7#PdM z&gwEuLDvTFFmp}W4F(4#JsDv&UTqD&z&{F|ie1w)@OcM6i3$7Jx!Yl695)7H6Bm%;u7iLzlh&b66qmcgOGRjOE)d6ZD*Q$JiTr8F0<`kLTH@jF89lj$iR3P*Sr zLo%@LTj6)PjMdR8 z2YLuOA9%+8A_|2xF5g*Iph2_EVLCdK5G9<0VjA+ewx^HLEj?+%8 zIiyEBocO6OQsyISj0n`b-gcm^CruIVC6#;JxG{~_RFQmv@5|fE^Nd=iCr-R zdI}5w8Fp`+*{q*Yhtn>PNU3tP! zx)A1cQPCw*$TDVMLYmW@<)0Ox@7e6$oU+rUQOxfA9N|?w)$5<+*@80{Cz^H~!E}n| zG6RkpJA^8Fs`7M3`#RHA=39Zl)8?@&(~@QB6&12=!$7*1>7ov;B)t5j1x@$(VKtoQ zr_UX+)jv4C%p%QCsn9i%qkKSB#yqnVm|>kyW2(FSG&47JIN>?IYn5>oPef4JzR}{y z!hBxinr5VRsPaRxRqmmFTX~~s2rr9Bj?MS9)Zn!zE4CDuQ^u% zfv(luSe{F6d~Lu=GEnqjy2H*~tg@+BuUOrAUeU?pN0-RNE~;d6tHVoKr{eyT2wRLN z`XPKKde)q|;vu#5iI3BmyqrFw`SR@#jXW`~)csxMda3C9d%aj)<@c1w4`XSCi8-Wk$6IR=##+O;IgYoAYfCnnr*IgTz4li5GG)^3jEYm{y zXIn>pVZUZ;js90A|1s%FLs?LI3FekDeSy^rNvibWWZPM=9)6Zrnw0)eSYQwe5j#dA zg6UnZ^;CuW*F!K`u;jSf|kkxVBWd zqi^y-6B$j(FcC>fEmTkFH~hqdZb;&VZI~Ow;UfR;3x88Q{m&UTD{4Ob16F?EkBa{~0^~(VJhGqI^Ej)qJ`xpM#=z5mD*P*6mVo z-6+6r=gJDc&V_Ei`YDjZC)3*}JJ4u%&TG)qlb8j43J%^&WAqS;;09^`FqUs?0R$y$ z0a>qYf)|RY+;mDxhmC`7U&3vAkV=dQKEn~PAXiQyeF#JIub>kTG3y$> ze@w;+kU?jpqXzc5IOsc>j|w^U~;OuF`djvM7{b4Yh~Ma4SWV@WbU9+Kjpsb-Kh5R_LVL*i8g!>bvl=cD=n&E!i)=nhjiSC1N6^^XNqZtZNX4Tj|4?a+3-#ZzQ@}Bd`mUw zvyladCBKWtgNeAk7a_-4BRk_LncLIY8Wp0668ZOW4X5WS>C*x&R{4fp&u5a_?TA^@ zyK?aJKQ=VPkC;ZMX?A#sk@o~6%^S2rJE1DV=Xq&q;C&|TdAZjq_IQTfB;=b*^>T+R=blJna1f1I=IT+ z3ONoyY`m20#kBN+rhrJ%Vkwz(g7OI|pYI9y4%`FM6$PuD+)O)v%W1yWuCn9>uT~_- zF7|QlKrqUUV2Yz08XWvtQ4#HrfZ}*QzyMM~Eh7P-qoWTD4pz~CKeUoQYxUU4iC827 zND8C_j%^g~yX`!-cJs$ei~5@YCsLHj1oO2j(zsDd1-O8;U8nWhStszZ*!BU};@Lj> zWN}fYVIraYa&3hJe3WRVAAKLT`POON-b{&1a;Csn2e85x>pA~Jx^a4fVUA$410{Yw z+hWe<-2_-MdGr>`hacqC&0lUORCL&1sha8KiA-nE4i)@_1b%>!>k&-I!(GAXnC*9R ztwnI<3vf4mM6^T;nS;}kQ9qExL*El~xbd2-hCRdmw)2Rtw4a7C;*@^@J}9!r+Ff?$ z(sWan836d8?-94A9vU#;0S()XNe)r;fxir|bDzKY>6MJj2Q(59cP0s@+Tz-Yfu>CA zzI4SKVJGX38;VOKWWNo&a)y?mSGLjW%|}W)4Rw$#Dw^M&1eX;zo+K320b0U-Mt1kx z>`1dfWlh0C4LN+>8M10uW}xoZjQND*7S$|pvs={0^UN$+QshuI@9Tctzu*LLg(0bU0$V*{J)w?RqEcg`q4p6Lm&s@YzZPl$Z80&UpT{Rml-yD zQQ1jsrlRcyMi+IMt(JtGG^<2|j4VcIcTjtSyeIu<>NPRswKplvHt9`^Z4(o2t4=z5 zWR%v7o9L@3K`llwsv(2{@ZENS=p6*r9+&(2>wMsdG>Uj=l!)AYkkP6YR2`Bb zA)lZpD?saI*8D&ocu)Gn{qB7G1sSX}w9}n9_byy-tw7URauu%4QFV^sT{vIfzyb7} z+Ojk^(Z%Lt39GAd*n6<c_ zLUlakbY=NJbZudDcerIR`^yaU#N1xZ-fxl0EDL_^D!qwle85AlE4r=tgbR*p3pq5< zf*-kc+|Na7rlhJd<^U={FlU!N*`r2THXBsB_ccwb3Jbb_z&beq=WS#*2C~>}aFU{G zs+AkPC$~+M?99epdKeo?chQ2+DWi~)NHa~vtUq`Q2sJet71{KpY_#D=xNx+@L+&Ek zqMQ$nsgKzFzV1;|0LZipI@WDvgh_ti=moK`yZxtkES(d%R0tK`^QvCbu#TuPSTEE( zH!7z`JX~oNg6nf-F93ilB!#B)|IRCNccXBykt@du_eY?naEUN_1AlME!fU~Z&?5Yq zgXEB522Cy&qvOv_l0S<3?{EG)wf%PHZE?P}$i@p1bXZe0<@CAwB=`nu*Gw4o!bf}5 znm-p3{A&bjQm<4Ftza)wUB*F0{NiH+w=%SrCQB|ho~;a3wr0Kp%w)2Lzv zWgP*}&n;xhU06w&(gHdmK&QAIPwhYN;X@3R2!_-IG=P^`9+d%w2!j@W)L}O&t{3`#5zVoI)Qb zN@(kRo?_$P&<)qbGkA^`2jfNX(?Ff0!GhMXbgtd0+UVCBY+kw-Xb-ap_TZD{_A^ne zewHyI(9LqC35v1?%Vy9pZ^Xd9EhOPj+dSPImfkJr-QUB!3MG(Vx7X9R{JxX$UKkUj zIQRE?+v(FKahkA4X{U`>ZDzg_@e<4~p6W6@JAJn}RC*5^t*X#^T`GiBHtc+Vb*MI* zJ2f3rTDUYwQM_ubA^qIS&H6%N+PGAel;b5=QrZIfyTd7GAt_jQ;oa>b^m($F$dbH5 z4*Y9{>Npy`NfN#yV!QAUV8I*=HHPVV>anM}magiLK=)A?BP4#{&OG;Ai~P*9beNw0 zUD^LRbQV?<#U4L~WSt>|M5V~2EK~n!n`<``8b|E2gH8Mpx?$H++=FeHfKkpzh*xM5 zs(pK86T!dvnlh8>DjhZ+pXiueJ1NoJc1v?^$N4^Nw*JN%%sEVMYzt%7^c_4Xswc~J zF;z%2xdBXSI4j8o&JiZs>33$$JjR`Er_I$l-5I?Hq%Wp1r`4{9*^@@jN!(n!46`tA zG^uB)&TJ?Q3cB7O@Tvp)Q=T4CCh<_-GrUW_u%>42T5j~#$`>5}*_+Wk*=#6K1EjmR zId(q0YvDFyawhB4ZtZ$phKcX-eF+?>5P~HOcZRm24}Ly51Lzu#+>TxdadK+!z7Sw7 zo&b#t&mJq-+Kqo7{aWg+)fVekkFvk?i>%&FAS+4NViMJld(_64KC1qtANR~ff!QO9 zL8JT^OD^UvizzX#mfhcYnCSud>@(*rPvaf*%20_ zT*Y5kU#i_bH7*9Nj1SJnYhCv-@O9c2rE+s#+0^5>R|Pyy4ce6}@+2s1<~g01k7_(M zLVK-x4DEF3oczh-8XbL)zf}6D&0{F`_dTgqbAA4w&gc)0UR<;U8s$D2)ZyRU`EdN) zqbVCLxQ@dl1-7Ff?;E^dV{6oH#YbR-m7CwU(>q*TfkFBbKV!^RhXL%{hFJNA2I)!O{57UjX9atKAOZf))5h{est(1mu5 zDeJZ_^YeU*@#`>ybdH0!N+Qm?sknrSp6U4pI{kw-+FKa_(R^=e3>m}rG!?g2<&`ym zsnyq}(vt>y?h?!^kKNpac2?3)#kO1L{@UUKaB#Qf3TSasv3AcBK$lK<+u!r@N@}z1yb5gxk2E+ z3aY!S;<0PL74^s&{pCG~LFnsC>+!>`(Z4a@Ve>cque>`T%;CrASdD#Y%3EfjL%?oA zkg-RO5uLE$@09jS!kY)1#qf9Y2q!gM^xE=yitq;jW4%S~`cht`hyAg+hP1y7E6Kz* zzj>K<*YGjNV0~*(3aF2oJVeG=wiM0%bEp35>aVlT+0tAt_s>cK+7G^OpO%)zUT1Pe z3VdN02DrL$)=WBiJI11=*>wmU-6-+zwnQ;?JCQfQc$M2z!dQHNTUXA! z1)LOeaBgOqX=zXF@%4(x|1J=lm36u8N0!1BIs0C9|E5~P8S6N!EJC3@?me22gM{sK z5I{p|zKPKW*cxCJ>hekpTK5&R%_IS3*y!e87r|>C5e5(dJRCN2lC0G>-f8tL98xBn+i5ZOy zI_~iVkd+@uyAEKSw45W1COcEKt~RBql)G;A>C3x&4d~3o%UJr%5a@wh%lP;7U`x4t zf#W+M3hNCZjm;T(kcJHMCSGnA4oAPcxzk=9f`lrr6VVvs_%e93aGo12{$lOCK7~y2 z$GhS=k@#fx(dOP2syL8iTw{1}=+k0cPITdp#K&T>gP>dm31fEOi^4vIfMmuzAEh!=@%>HS*&nAgnqE>4_-uxb3)I9GZc>`4 z+{GwBHd}=+=V~t@?yuT2^zKe~2z;}owcFvhLaX<<3YfzUJS=A4oRr((|56?O33P1S z8`W(*tndE(a2==Mp3khgTs7-Y zKe-h9dGKD4;vF!Z=ms2$tF(=fxJy2?tuEQe<%yMTp+wCbD~4&``{d>K@vXYg9-lS_Z|yg@qltxfo7zq+!od3L8f{-Wm}mn z_$}r1uJj2&dJIC0udjYu>@H6^xN=~9H^t`jEO)}uin>@l_fW2lOwf6xc=ht*&$lO) zm-`yiD91wMiP&1z`{9RB!4JTdloOU4oiwQq&UMy7umNEOphZBCeYm*%DOgsks0Dtge<9^AHC@t@ z8Mt)LG^vGS(=&E)=i~9S5c9$Vl8^7+T61l~oRfePiSw22j=$MV#>Lm7cG$1{{yBB6 zC*u*{=+7Th`d+t#T@R!?!a`Z+M+SNho`-g=*g0oKWAz^=Sx7@&DXhNG6fEh;NwYj7 z(QdvKm`W~DDC#!fZ}}|Dvn?`XjqnzSsgQPaPp8e^L?A|s19*S=nqCuSnXz!hktwQj z@y*^|%WSfy&Tyg?;CEK>Y^mw|s-|PFv`t|Fk$)Wd2p5M3hq)oKn*$@~mxy8Oe=#bIqSq~HUL*__Q?(xoRQ+*4Wi%EC+ zog~JV#>EN^Pn7asS^t)1to0lb9cB&J`s+hHfR>P&{@D@q1>T$k`Zw{+* z<`m-0zeS8Cn4ar3y?SAEY;}JE&9rPi(*Ue6BZQsaMrxkP+hBf9l$L2=wh(cr$p_d- z*QN`Udy6L(pKSMb@`U*Kp0nhDWR*gu*&eJGV6Li9cngZVVG~O=2e)D<{r(ugizYkr zPvNt9h0IlCZNPZp{M;+89lP8-eyo_`?yTtcZ z3CoKsRU2qB77^5{_DaFA;6z*RC;^a7ASd;iPLupCQW!7S(^SPUz^ zRUq8MOi0KJouCq9!9{-N(-5J;X5{vV#@qw)plnV&xof-8%F7e2;bErtP)S8rK-jU* zPA}P)5cJLoxx|j7Kmfyr-NujXo}oKjPJqk9#lNB}f%7eX)}cD;wOhV4b>rT)T1D}W z+g3iu9f_*!DNKw2Xm)>1%#9}giFLLW%u*}}-tJ>vu$Qma;QoZNy*R^BY6{Qi+ZMka z`4Ri%WT7c~H=iZgmWIDr^B5s!@rplo#`m?kV$a*mlsA!8wh8xlcI<$4kNVPm-`g1B z`YnV(bgGTr;^tWWy7=uFA1e*#724hh49U!w62vlk$<@Bd=`Dcl> zBvyS>JNNZQveeP_Yuxo9PS4>iU+=Ct2BUQyZ;(N_7w8*}(N7Y3wb^CmiVYch zGU)$C6Ee0N-bZmDl?8|-xf>MH|S_F@1H@1uNPbHCpH zu1xRL7b^5J(N7#l_2Ul*9nSl==dCh_#7_gJy&%0PxS+Sugi0ETR&yGUq@ni@cF_x{ zRTEg>*jT-MNS$V&ZhtO%&_u!=dx28Tvqj&{nw_+!eqz zk48|`*11zNfcb&&WGX8B(NK)-wkhFl>7MVgYzV-^>U^~Q``u{y%}VxxW@~v<#){_j zeTh(1R@=qZ%@R*zZ-_u^!``TY;o|pEv0F^#lTHi6|37b`E49 z4y?h7vHqPXgw_zNB~cE+>WHnCO3e31*3);`ByH~xJ^P)(^*0`i{w)XGP!j7h$dELu zudt-VbSROP+wc*C`Qjbmb4Fcw=H=0pWNpTfP7l<2(baSCa7Q!)+@N*k=}+LnH{7;O zj(EBG27QvVu21E{fxPDj%X;Tv8V~#XXr0gm*kbgq==dkY{MgM~Qa)RSFJE4Fu06IF zyH4gQ-nAT8E~6J2Qn^|(Fn0)wztwNt1N+|JzTWA~e!w|N7W{ny3&~HzBOC3%jB~hk zQ4m}Pzzld>zjih(F!Y~6lsoN7qoV(^vIYglrPW*t#%!Jc!`&d5NtI-+is#Y9Y2 zSLs@ySQP%~qE#F(gV8^{oyXfZPXc`kx{B~BcKITRzW@efz?#Lj5hw-xc@ZZZNZDW9 z&*)A6`e$vHd5x147$3g`t)U?dEajnB#29#}h!`Drcz(do3ty9X3B7n=1XL-m>mz&8 zCu=^oVs)TwQLbgI^U=`-tE7aUcTWf)`hj>4rRrt04gQ8*-a!eEuJRIc<$oej-o0d? zqsv_hSwrA`uJID*VED!k$VgCrkfhsA|GVf0?8*NnF!ui-TK0dU_WwTi_AhE`;qie7mMai3l^rfv+f!oM}ISgLCBQlfS0rmQMQZiBd>9(vYRVs`A^Ny&UR{Zt?R5{-Gv4)-!OUFT$i0Lw)nj-rx+aHPjOZ%_p(_Q zK71m6EcURr~+vLDncXw3J)Jz8^zP5lk zBcIYe+xMT>Ynm3PzCqENSDBnJ9wf#-YZ)!LWZBx#cK&Vp5b7XbcmAiT#Ye^;Mz40@#u#c>p7#(84@OKZVxf;aYi z_H4o&p&7W~3@^5w)TANT#U|5p_I*AQ)NQBki}sC@VN!iKFE!-HTdwcszk=7E@I;+Nrd4gZjWRfJnt>f z;>u-`Su-|%8Ka5ZI7Z@&k-SqcK8L5=zA@9N#g8)U<#t9#R=Lf-yECYC;oJG%Pduu^`?> zvE)I>b1p5s;43GF^Ny0XB@g-D$Njjm^$2pX74pLcw%&!ax@6jw@i42!Br77TpjQmc zFr&Oj<-O-kh9loDO|tmd;v}ov><4 zBg19>;cn|~vGLMvwQ8cCSO(r8W4ds7EIzbkY90EGO*K;)hp<5D^bhi+EX~#yQ-m!l z!)QHAuh*K`A|Zru6l})7m*yjUXwak>Q}5XMb3uTEBn-!>;hdfW>n=6*_U?J-VIa+F zQ8iTI&STIMwxWGa zu@-Z9kXd)Pot$r-?bL%(vqu4Caw& zHl>TMw_M}FGy-*4mD=y;kR#~DfIcs+VA zX(5sEp3E2Z#M!M^g<1)F@rk4@?T`dX;w)DL#GuisiKJZ+-aR!A?5YR9(D=wszdAcN{P){Uw^3 z_{}|U1DpbHC^t$`QBkp|Znx_Kh!^8_GD>qwbgDs721&-*b+|}8fGg&q>rxUhn)Z9hyC2$e@9zJngXTEEE z+HY(&Pkj^|A0$OjXhs16&EI$!*Ic`#S%A<6D+yZE)#`L#X7ae$R;fNHT1S2`4uh%i z*YZ>jntgHrm(nY6?S4F*b$TC!jMDVsRMgoN$%#R1Xq9h@n5I?N{iN#@L~weqKd{ye zmNDyakwXEwj@@gP1KLmXHFi4#;lMjk zL&o7ra=%m7w*5Nx9c@-Oy7;y&7iT^Hro634KKg(^5I3>qo|wPbFe)HQxdT#-I^NEDP|1J9VLs;g%!bnqyIq_^MXw`lMvwi(BCE>Ew`vrp4D5y3+ zVX4I%t*AbnJ_@7>=B(^bX@H8Fwr~Z>s6TrZ*n774UU_4$ZeTvKJ7wPaP$+`z<(*ljtN zt~|xGYmY^fW+JtA(W5b?tI}tGCg6!Sj=!ML|DR6HEl6Hq4Ab4@#2Xj@V`mzl;riGN z&NeKA0mfXB*uPRzzTjX%v9}o6soOu(zgj)wGk+aJGC%OEdwRU*cwZ6E+*@vI|0w4K zaaH`K_#5I9K!z;sff=gkOL%vS{>Z+~-S7?TZ=*GTji?MDH(9^s-&Rpp z(@!J_IbjWm5N45bO`Z1sqyCQ>rEpIGxri?Hkk#94VYJ}ljeCIH@F>i=H-%f#MW5*t z5xR=l{R45ryHiQIx;q|_0aIYS{GY&GPPk>>r6CERiJUEIo5WnB~3I$elx4{qV(4 zA~cx4Trs*V^4TvWJnNNIqs{|jD4!N`W{$OOeIbp-KH1kkzc-gIG}1xW?|&?6KG5Pu zT@33c2x|e}xS0oO16xOT*E97*YQkq>){hp!ULUPJ=~BteR0Hl4N1|Q9uYi}0Bi$JM z+_JzD3cWkm2s#JZqc8+&Uc05ic3wKyRpnPQ1Fr5CW?{8(oj9TOiaAIegh|#G`WP=q z&yNdH+?(YWT#xXQ0;jQ2*_=t-vH!TKmV;8S(W>8RC1$_HVe6!Mp`|L; z7}WcfcWyM|d>p;}v|P&q06haTWp%-J2r?U9ej(>d`4opxlGgbE9;Vq%a&vkgg~6EC z2N?&S%QoMUOtwd~fA@`0{@xsk(&s`=&b+;?TW+#M)qJ}4^!?LtG}4lqU;s)vXtS0b zs!kF=vQ)?@twPRN**DuXLTcpN`C5&EYk5lDMyvDUg%kKPtt`vA{GZmmz8Na=GN5sc z{Y%VieBF+R9JaN`j2pgG`8!I6v-bLktz_qdWT7bE+P!YO?}bfN{LR>bp2CBWpHbP1 zXwY~i1%mBKEIEK;(0Gi=<9@wdx+HAdqY?ILLsyzCxcR2&WBkEo+A4Dx(QCO~+buZ3 zHIh!r4sT7u82t3%8|u9L5DHU*CP-~H+0q0P+e>VmfVsZ3{2w}pTK`-+X2rm zjaF@ja%O)#|Gv?mhiYmbr*8srG@s;tRs2edF9DZ2Z8)!46rFE`zV>GX8sxfY0;V7= z;w*#~AUuD6Nvw@ELx)3X?&-3EA6)0KUKgv=zLRXS4wucFxcK3t<;S22RWe&Kjp5B; zO${7TbH-irN7fU*^u8y(sW{*hgtmGx*3OK3#81&Iej4&%+?{u9$~{8A#GQsQSTLuS z^Eqv>V0f7KPjUkCS_s?k{2|_p{92BF)U%;S<459nZ0k7vD51H!NZ_@mK*=}y0Z}Sqt^xC6l{{n>)Up-oTW-;qRsl9iWWOnTH z-M?cw%k6NJ1AKR)j>Iq5Yg?ym`FqEQx*tt4Y_T>y)7RI}+0S?C`J=^tk6+DS`|#iK zb&n@`H5`+vJE#96@V&u>zRm0Rw_N)D{_&~q)oG3I3@63M&DisQdu+emmg<*}2^y+%M?5&erAI$%ADz-XQiD|z4pSbmyWsCIt zmwuN$Px{&K_^rEbhIm|z%a*?d=U%3R*SKu?FWFF<(DG@=kB!fF-k1lflD@=0Qo+8m z=zdIFx%zc$$Y>YagW3z5TaUi{b*xwo7(y%cR&O@l-Mzb&gEbMOE=)-W)lI;PdF`7m z42%1VeAa?$l$W<3&IknsE^whsJr@fTa6OP!+JWbyoab9W(pMAbhpW7p!FVuXf`dW= z!@cPYH9>rPcB;L*3X=6Ky#cKFznnK@cwhX(*VFT%_1eXMvYqGH>vu2%!Gy0I_kP9v zwM}5O5a5{Lp|Z+4FFhU9V&ZIf1UDLD=`_m4uh;6!z`*3}>Eajy303T|2=XPc%mug4 zXfomj9V#Qj3cSr5tP9#!-41%g1oB-_tzprV6YKxH0gjIRxs|&X(vW`DyPj+3f6YHm zvMU+fwY4MnR`I^RmY;C?TJF3+aD*vKEjM43+WiceYi1Q>WzFS0XsUg%TBz=|3qxO6 zm{I+~>MiGOTMmEbTU=PRD;(S$yeb&IEid)%F5WZoALRB{$wfbR`Y^BUzLj7@`1&~K z-*=o}T-diZ9Nb2_YS?@E^6JmGUR}+86;gJ4_6P3L2XYTeUz=aplv=!A3+#f!QQLCP z?fNSH>Z_s52ZlYVug&0%OAFh*_s-vZqH_ThMN8NeBO)U`l@i^-20;U7!ekxj>lVMQP3ZBe%A`e#;B8>5}8}(A8pR{y)FnsNk@9 znQz9`RjqrKKr&V@4&?&{8dh{@$w_3!`B&r Nz|+;wWt~$(69D33F`@tf literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/tutorial/bigger-applications/package.drawio.svg b/docs/en/docs/img/tutorial/bigger-applications/package.drawio.svg new file mode 100644 index 0000000..7e28f4a --- /dev/null +++ b/docs/en/docs/img/tutorial/bigger-applications/package.drawio.svg @@ -0,0 +1,420 @@ + + + + + + + + + + + + + + + + +
+
+
+ + Package app +
+ app/__init__.py +
+
+
+
+
+ + Package app... + +
+
+
+ + + + + + + +
+
+
+ + + Module app.main + +
+ + app/main.py + +
+
+
+
+
+ + Module app.main... + +
+
+
+ + + + + + + +
+
+
+ + + Module app.dependencies + +
+ + app/dependencies.py + +
+
+
+
+
+ + Module app.dependencies... + +
+
+
+ + + + + + + + + + +
+
+
+ + + Subpackage app.internal +
+
+ + app/internal/__init__.py + +
+ +
+
+
+
+
+
+ + Subpackage app.internal... + +
+
+
+ + + + + + + +
+
+
+ + + Module app.internal.admin + +
+ + app/internal/admin.py + +
+
+
+
+
+ + Module app.internal.admin... + +
+
+
+ + + + + + + + + + +
+
+
+ + + Subpackage app.routers +
+ app/routers/__init__.py +
+
+
+
+
+
+
+ + Subpackage app.routers... + +
+
+
+ + + + + + + +
+
+
+ + + Module app.routers.items + +
+ + app/routers/items.py + +
+
+
+
+
+ + Module app.routers.items... + +
+
+
+ + + + + + + +
+
+
+ + + Module app.routers.users + +
+ + app/routers/users.py + +
+
+
+
+
+ + Module app.routers.users... + +
+
+
+
+ + + + + Text is not SVG - cannot display + + + +
diff --git a/docs/en/docs/img/tutorial/body-fields/image01.png b/docs/en/docs/img/tutorial/body-fields/image01.png new file mode 100644 index 0000000000000000000000000000000000000000..d8e12bb5b4e58664c961d84f8fc7aa3730080024 GIT binary patch literal 78746 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 pQi@c;|NWLc3GLPSzW4e`NHf6DHFU=e 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 literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/tutorial/body/image01.png b/docs/en/docs/img/tutorial/body/image01.png new file mode 100644 index 0000000000000000000000000000000000000000..819bf9c78c060ea2372cc0ee8c300b8786f16d93 GIT binary patch literal 55506 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 r3`8`6vohrHy7{r0b_JZY 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

v|w1?s_p#Ev#~&IU|!f!yE=Jl)n% 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 F{{Rhzf!Y87 literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/sponsors/reflex-banner.png b/docs/en/docs/img/sponsors/reflex-banner.png new file mode 100644 index 0000000000000000000000000000000000000000..3095c3a7b40906a8f6476c97370d03f95470e461 GIT binary patch literal 8143 zcmV;=A28sFP)5C00009a7bBm000XU z000XU0RWnu7ytkPKxsomP;*c-LjVAHoMT{Me2|lzTg;-sz>u3)QWWIwq!1AqrNI7( zftf*sfs=ucK{heDxWG5qErbCGiWAF=lS_(n7*N2sYYdDa`m%0DVqS_|`yBVC^Ro|% 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%0DVqS_|`yBVC^Ro|% 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 T*-t(000000NkvXXu0mjf_P{u$ literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/sponsors/render-banner.svg b/docs/en/docs/img/sponsors/render-banner.svg new file mode 100644 index 0000000..b8b1ed2 --- /dev/null +++ b/docs/en/docs/img/sponsors/render-banner.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/en/docs/img/sponsors/render.svg b/docs/en/docs/img/sponsors/render.svg new file mode 100644 index 0000000..4a83048 --- /dev/null +++ b/docs/en/docs/img/sponsors/render.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/en/docs/img/sponsors/requestly.png b/docs/en/docs/img/sponsors/requestly.png new file mode 100644 index 0000000000000000000000000000000000000000..a167aa017441dca85deb0079db72d0cc4c248644 GIT binary patch literal 18379 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 M07*qoM6N<$g60jPApigX literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/sponsors/scalar-banner.svg b/docs/en/docs/img/sponsors/scalar-banner.svg new file mode 100644 index 0000000..bab74e2 --- /dev/null +++ b/docs/en/docs/img/sponsors/scalar-banner.svg @@ -0,0 +1 @@ + diff --git a/docs/en/docs/img/sponsors/scalar.svg b/docs/en/docs/img/sponsors/scalar.svg new file mode 100644 index 0000000..174c57e --- /dev/null +++ b/docs/en/docs/img/sponsors/scalar.svg @@ -0,0 +1 @@ + diff --git a/docs/en/docs/img/sponsors/serpapi-banner.png b/docs/en/docs/img/sponsors/serpapi-banner.png new file mode 100644 index 0000000000000000000000000000000000000000..3c3fd629eb08f6e174d83e675e0fa086cb2271d6 GIT binary patch literal 6458 zcmV-A8O7#_P)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H17{^IO zK~#90?VWj;RMnmLKj+rIba&B+pdzw2HpnIrL=4j^M2%?F#L?j~iFqUA#Ej#Zm^>!Y z$vBgk(TvHsjM3M`WHkE5xWqTn;6e}=1eG-VBHCaBjo2$q*Isqc{PC;Xx2n6U7psF3 z@ArB7>8e|&&VIhX?VMBUYd2|)0|yQq90f2w>Iyh;;K0E^;SiPs2M&%JIE3ZEfrFz4 z?xD&^=Uidw&NlpMO}ZnFjt05zUn@CzriUMW{SY1Rn;04l6Zx;fFjd}bP#RP&&$!Wr zs`k@bVUQUy46Q*aRk{)m960!^#*h$})|zZGjwhNTko1yCrf?e}l1gKF^i3syfXzrC z3}rnqgtW+!RxlezHEXKdyd+x=@!p9(G9kZ1S`Hk1LQythX{{lX#^^Fh#IqRM#83)F zj-YbfqLs1<%K*&0*IL_brsR>*pcSAMiEJ7UX{N+Y_Dssq6?PApv?3L0>P|~?+=wgy zEo~X7pG?IVGIMFU0p#c6YTd}Kl)adjzckibYH~~)x&{{8C7nv*QVI=d158sm$kMR1GSP-cn|2y)%I7B7npPf}8Qr8MreG|UV(c#1 zJ~>S`6c`X`ojE_s-z=zP@BRdB?MZ4T1bMG13k(%u!5MS1%$#;CT0=)P%S&tXw8j$H zvNJ|kR|0Sd%YlP|qAbEv3bLsr$z&FnQkVu{<`%0$-sjM55*m5hRF0esgqSoMjp`;m zMZTt$M_P@FcTWxssE*-443`n%w)=f3C7O@cVt0-jk>S*7CWp5`JNGjO>~MvuzUcF4t=KYLKhg;Hr|POIRxw-U^q;bHvf7%x!?z{HbG zCXIy++fvM)Dh+<_6-7GZ;$UltOlDwhaNxj!pe(|QMcc`m9<(yMEj&>yG#HAmxJlL& z9V;5wWVFVuRH5H0&rFPUnuNnH3 zX2IoxXe`a9oi1k8YP8n8x8J~RM430M5`LQiFUc_50*WpKiA!u8`%Oko&`H#el%cQ6QOW=+lOU_1!P{&%Vh$jX9J zFn6Jkm!3<|)R09hO)3Rnydf-0yJva>7B3IdanOXU?AHRzqKxpT0aURne3;HIKPVp! zjcE)+p_C?-&Z4#E>E|>2X-x(IQ`-usDpnyN5Rfz)#YxA-@cY6f5+)1h1|-;N!u;6* z9(&dVTmTqKf!4U)ic~TQIHcvk!G}Rvgk^7Aup@loDuZz+xqFe71*KrxY!8hMS=CNGy&;N9D|8>0TGR3$t9+JrnUT=tO)}*;T!1i|_nKD^=wwswJCpdOQ zkmp}fyzokduEXlJF`{wM+RJkAXf|$3Gjpo9BniFwMoP9WXxQ7BrL84P^)arZ=`$(KEf;lQ zCc)L?SPx73j}jheso=oN0HN+@RynPQy!`Pcu=iw19ag+-zqVi~gB33+$Zd^K3f9!S zav8e1)9pRrX72%cJ#nl=HP>xO(s*E4LHR4!7!2XbCx2A;ldJ z9H#w{N&Zb+TFc+#kHy&6l-!nXv40Ax=NlOCX?luQAK-o{q6? zbDDt1C_LgR%}wo3MXQWGMT>fddC0 zbChio8o6ERK;f|(1ODfUDEB|qg-e4QMMXg2@heQzcG4T-HX@qP+;eLuwX=p3saCxB zRD$M%CWcoP9N{sP#+3=&2)L_D%mNV}Adm zeW$zhv#@@%^x072pRNR-7jC<6X!9+GNF^*i3!Z#V#(yYq+_7->>C!jb-s%1Msnei# zQsJ}CE=j-defwF>c$hb%yg5*w)4ki-uJc|C@n|JSZaQKnhhip&<7TfTIR)P}AfD3Q z=4CpqF%4ZLeUH1f`ayLBZu|$BKNA`nVdD;{48sk}Vd0!|TL1CG6&Jy^UzSO`vjN&W zVbMJJ*5AXJ<3HNEjTjE|XMHqfH#R|YoBe+J6u9wgz0=K|A@v+;G`9(19tnhk($7PA zpkm$($#d};#Xlc+qV#D#rcH)#T@4Fn+s}?4S^gX-?|PZMD`E<+jsda?uDm$J!r4B8 ze#P#+SswpGjLloq1Uz~7Wg)jT1cL_Ge!GIoDuvdt_;Uf;TcRA?o5kzO@oF)Rs~>!} z4&n*8{r^HHx0maMSKy-0z=exp?FRe#(Tqj&WWn9{2yEJ6KMw`rnk!)W!>*$@X?ND#c>5_A0oz-uXH8>O~ zi?Fij+_f;dZ3s$^toS_ez>U>ZR~p@WnWjxPn0kE`k31FSsb}H@+~Tj&8jd~I;NNeF z;C9=`c_!6*`0gDM?!C2>w>M-^O7$Sffz`1(B5G;Rg}P!jY}r}(EEE)i8#`Lw?`)8C z$&|cbybydoIB-x@dm=^#A2 zs!;lalz+}5$*U_WCf)iirQ2v2lK$m&g=7U{7X0c7xcOR`RSR!!vOk+YQ_M%751L!y z`By|6$w#CT&Z~oyPJnb8cI|;@R`u@Bg>ys_`+V^BZdmoYXnenZ8d`d^uULPZX6d{w zOd2b7x&Kjn0gN3jg6G*)@_hieTS$7vY8k^z&XxAP{DzE!bvXT>u9Uv-NhpgK+G%#} zf#0v}o9KOB>HnJC+1AD;`Hp3hS@Y%(E9L!_Ux50pFgyaMo+9&N6PvHRGYO0v>w?uDcTEOoQiN z?f-iKtJlGqr-^W|#-?19MOatVg}QGCweDg!v#?;Qw}7lbHcKjC*+n7N)u(7}78NNL z)7<`z$^x>o(gR#|Lj^Z{xeYT5y&U`lz=027?sPGU@)u(~QP_!xCC`gM0i)2nWTF^U7ON{=Dg8 zuHJgDO4odzE!W=d0lZ4OdeO-G_m@- zvrGEY>hIc#@E`Z(MV|A}^Z`sbNyfk;=4mxj&Vdi?@tibPo>`jJ=u!5x*|Sf~zELA2 zkFIE88Fllezg~Sy+JE-x;sfnVOS*a)46BrdoJ_%zg>dbc>~@SAA$eFBccP5zfe)md z=~HCPckPz`SpA0d!{rx9U95IZI0=G&8HY80mORgx1LH=+PaiDaXKpwA!!jvv)mo|F z{Fy>Ncl;bWI!m_;LtUyUUt-{>E+-b0G@t99MIps8g}m$r{T6;y&djnoh}afAKYVWR6E~= zYrZH8)S5ItFWmeSI}OO7|N3__i7bSJFy|DTus|lU$@TE)O@}+RgT{8JE{){Z3 zpFU`l)0UmKPw>^Z#38%rQ}Bz&Y%S2rt1p~&y0j%f?@im`yVr;lH(wL95RJi}y+TqJ zVbx9)jjnd0ovwD0jCHZaxaDmKg=B12z25ut)(-f^ZwsF-npc{zB9%gpcmEG;&pD*u zeNQwrkGpW5^lXbosB7!tmVcH$x1O!5hvScxw&n{~pSRGxv1vPe_v@wmY*sCdIRSof zx7{CW>*0IXK;3EZ)N{q_2SSLmro#XG|MGtQW+CvN!oL*e&5&bwLmAvEi?G)0O3BR$ zHIjszu!o^te!T_uj&&NhTwc=bT0I-qMuT z)fY$pOjl{@d0ey4s{FUbwyZA)&KYz zd~><G@xlUB?xP(2$^K6_newEw(mMxj`WQ=;n3Iw?>CF%yeDB*hDGoK zxC}U96r55c^Jl31S5U5o_45ueb-~Yc#iE+0zc-x8qdi55NNad=YYJQ%(^NF<%My)g zf`Q)G(OBtsY|j+@poNgu;Og4YD1T4cYX|{Z_24`KTTyzNZTp_x^0-_R`+R1lZ9DcmC3LFANpRBCLptlL-V-7GY_q z2*Aycbn@^ws&V(Y6H9AY^;Uw7@1zNP7242v{qUdnb#l{nRRy;;=v=t*u}7nHcA5BG zw$t4NQbd9N4?h<}V-x)H3HZS`g}in)2x;X@puynUFUdrG=trN|77c7#0 zFd&O8nX)yvo9-wsmC_{~tBp;PNA1Kyvvgff%W%6z`dK6rOTfq?BX6}omXNZtW^V~^ zwIiLj>r`39Gf-LlMxbuQ6XFzKTg30y7il!N!3VA4>l=NXy)S6X+qu0!O0>s;m@Gqu zoel7BcZr5KVT=S{Zn#Q>;Xs7oU{Gw1hJvL{&twW-Ti>_oR}9q=F?DymE3YlIc1XY1 zPAt?$o7>^P9voa59|mRZ!;1Jrkc$*{?~ekSIpmf&$!XDpshdC z6bV{tA;%Nqq(86DZdX1Q%odWdw2nP{#jlY+5kbtfbO!e4qN@82h^f)DPo_<_{VF@( z6*KnaiG}I){jFLy!dJVL=xv~+2%_;DL+cP0V&^@}ln_i7xU-{`dg)a8ZU`?GxU+BP~4 znJ5K6d!UOAn^JiEy*G`zeO?m2{;QtvBdVJ(3p5mjnYHkhF9=as4#5?x#VLN_Vo4JU zikiQ0Zr{7alPPFFB))=xUnbCk*%aLCo{z75K_-jOD`wh^lkMnVJOQu1DI__4iliA) zEn)Dh{?_^}5t)*@ZHf+-`BuU;ov zjr(O#dy>|!JrbI?d{nUnJpOFq-l->_6Lae;m)a7rxm6@xU(U;pP6<%)@Cl{U5E_(IDfq>~mr!fA7bAr|%2< z--qA)0hXR^`{UXVNz`;8`F|tu-+-&byUa(y_QWpmKY%3=OfE$-T>mF~7#kFP@9? z=!-E7t!yW~2A654KYU2@*j>YkR2kfUcPE=Rr3V&oOH_hV5FqU5~|L=cPBwnOa(v{lqXGzd_V(@+tpI0JisZ{@G z2rI*qwxzAKA0)p|ifsZdxUnOLF~^G&`j$KUKbCS#wSC5OuukuC5DH3pLlMPtyCqmL z*m*M;-2NR28m+CDK7+xPRUHwnsIPhVaYvayq^bxS0mjGEGz2y2SfX3g(%6^#fo(D> zRd|HQ%$_gT8zn@H{7sKNj6j^}`&_JR#r3h!J@(1yA^>;8enfmZireq3| zC3cthL}yq3q}ErTxZM(TSii+KOAJHIqFAE;NEDRb3ICVIP#q2i8UG`7UJyQ9pZz5? zz9WsY_n<1J2xUD?=*+M`=q9FIWRpourFtDuHjUgb-W2)uXDB?-tS!G7^3zyuSC*{b zz~yldnyeiB<&epUDR$9k#824XDM1LI7an}<=#}ISKAsqoP4kwfH8~leE!D>1fI)jA zidJ?c&&<=9fTE;TKv*a;I!ZVc1k!lI)wyjCM<-eRer5k@j#jK#Et^s&jgx3(=V2kS zq1-U&Ku#unRNCmr1!eiL95`^`;7G!`XxM=R2S*JY!gAoi!BGQ;upBsWaMa*`0WV04 UcVKxRT>t<807*qoM6N<$f)*jfDgXcg literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/sponsors/serpapi.png b/docs/en/docs/img/sponsors/serpapi.png new file mode 100644 index 0000000000000000000000000000000000000000..d7258ef70a4f326d24ea4d607534feaef2039a84 GIT binary patch literal 10694 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¢voe?R=x4MJ%-X=lgxf;6+mQm*5SLltam)k+~4^*BpE*XE|FOsq}0W&#(1 z)jC^FgVONTE?RF8GxbXUL{qzRiB9*FI17k?fW*a3J$246Zln^<=fB=%v^rNRfmfvU zY4ym-6%iy$O6mLofIB@`ums%>`mx5Kk^s`)U7ZW7zYcSz#onYU8gT+Fd)ni)Qak)K zx-1nmf?_BWvxG*sMi$ws=j;i@izn+;xH#{Jtzs*nIg4Wm=$mNf0+#k;S|0li?s7O^in;F$kGLG1^tg&CEkl{+e@AT$;#K(3V5?|t4g z9FV+N}T&O3#KW09-oB8owx>v*ZUkk{_5yN+nQ*rO-Jx z;rD0H2A#5Xg`loP-X+Yjg}7um%)ixq=lwXJX<7l<*1s^GZ}Be~ciuG2nG3sgW}R&z zJ0V<$Qdu|qazLa|v>!G$ZJ5H0_|~TQk>A*KXT3n;#w;hdYgs43ci(C*iu@-N;8@TW zawxLp%*RptguWaqYN^#j>x7zqUw^J2gd-gM6v_5;oYPwo_Z?wNWSVDslxCK#f=%Md zrw|urGb-TmnjJpJ=L(+uLoFuohk3bX|DoE99B{nP)r`(JGAH7d#0)pBTGig@!kV8s zs9565Y-tEVKAvIaT>w~bA=78~hGZcx9OP4vmh2}kOuGA^n-1vV=H9RWC@XtA9O+ds>6zEUP$yESwg;+!osNJm9ZK7jbdd zbIzC?q2H>n)OP{B)eb*Q1hW720%+8|rBs$L~n7&bYc(C0Q`j>1BIb#?NZCaLu^Wmte}$9!hG)?5Qt}d^Z(* z){eMJbz)>y7AH-PcnA+}&)BbkEV~`lF1oGE3y9pl69f!I%neU_o+F$uHn!D`Gz4eY zs#~nRR3H~@&7S-Xo0bKcyu^7zrf+g9&o|DC;-*H>yGwVyom)#?T6~W#Z%aJm!D~@G z!_*ZrLSf#H!6r~~ zIb6|^v~EOj0g_4gtpz13V)A^R-$G4POyt9WxLhN!Bo~@U>tB8&G^yHDMM;h*;x%a` za?^f@DJCUEZCzp5TuX>PTQQ%^qdy-GqQO8DknqSAE1?dE$tO!6!SlIOP2_kd{J=wa zsup|(#$|tu2Gz2crj&Y?-mH5H){){QF4w5Kb^13p)9>1VG#UPoQQ$STKo&!8rhTl{ z4L%zL&1@MOU6J(^RkCTg9w5_Rc)WD{T@|FlQ}@W;W$4|RFxKAcU=lqa^Doe@aS^2^ zk0{UREe#hFLo2)wAIl5Fo^-CD%1z8Uo>9|h_TE!UuJx~ogBX*^V6Z^)D-wJ**YkNaXUl__5-$7uaA1GW1Ro`YFNh8Pk6j*6 z{!eqCyRV}WPAkyT8sUMlmH5NFqWS}Vn}mBWtg*k}W9%wILlu|zvu6G-1pL`wdC9WP z#@{CXn!6hvB&Uuoe8=GK6;E|IuAuq2aZ5WC_CcDxk+vu@|Jmf<_MnggO_BES_;%%An5x%JqwU5IZJ^0O+n>^5%Tl5t| zBPwb^6*BCdK)k#JMVH7%K}p1|6C}<3(yngsn@{3wox#Zf|1dLsI9g`=m-Kjm{Y#Lt z%RsxURws3TBqNp3>i|t;@P4aWw&-g&QQ(bCR)kyScWKn-b%P1Scbi~E1XRk5(VQ+c zLZ>wc%WA%Y!$d^C^G?+#U@3Cg#S3EUV0LtY4=bz=)xk8)iIjRL+l?3~c1+u-^pZQs zdg4`QFW}{(&5PqhIBDqP^WtG=re5ALdaQItyF&yot7wyM#~i5E=#U+#laKxW=EmCc zmPQ0Ex|+Go7$iEn-a4jvRlT>NK>fO}nHr@FWhkoPdIXLF)v9i=!}*`)L6be1CSASx z2%iNtMM~dE{-l}jyqae~rR1B-FFb197i6W;y@~roZh*T}`HxG6>sRT6M6Xv6*YH)4 zWyaQ<%6C6!M=NDX+}rz(z^^eMDrCWjQcqSe9qwY}g0RLrl*+||=U~io>s16E$pHj$ zAs}eBfd~rS1@W73t^T%tYsyWM9r((vFH&kbm_^L%{eIwD^C-o7_70Z2d}&_IE9NKL zzWotqp%h}NHWtz02BY;mk{PXR7)oP%&_2;;jTl!+#Hl0Rq@jAHl+MWdDv-Pwioghm~Yx;Fnah9o%*i zPLNtGNQ7t!i6V-d_T+kl9ftR{SUe~Ycw2Sj) zc~M7R-iT|0Eq&|FMG0(Al<}*f234X@T3fG5J6!Wht=4-X#ozLb03*QY#8K9dv$J(=KNLQ+3Mu~0E!0^5^T95P1Q)n6 zN1znMqw_NP(Cl;ne)V%+$6m#_$Owj8HF53hi9^Bq_R|8XgR#@g`|b3K>=0Z{W#pIU zvd6xjlGa9QV5gQzR;acg9p9|^JP&IyV5eg3MaNAJ7i9*8EiL8swFya?7T%2*&1vz`%$m@D9d0>khZGnhoa4NCM3yv^CprXTpANKE+zfvED3JG2 za4j-?BSP@Micozw-{QN=Li2p{4}CWs6U2jmntX!|hhgKOn;FNNZ-aBZcwiS)eG;fc zy0L4D9h))Y9J7L^NlY-=@qy;h3LTF)g6DTPxc$M)0f+iYlTb<`rtS+f_0M#a{aO0g z^K@(tcsLJk1c}~g=m0Gfg61eqP0Y>4Ric@M2K5ro*#~1nJ9C7@go19FTmq8%HU5!? zvm8$n{=&3!|4C&m5=zjp$<_&xR literal 0 HcmV?d00001 diff --git a/docs/en/docs/img/sponsors/speakeasy.png b/docs/en/docs/img/sponsors/speakeasy.png new file mode 100644 index 0000000000000000000000000000000000000000..7bb9c3a18e1efa4f7d65c3c2ba8a817a3a4f71dc GIT binary patch literal 18817 zcmV)VK(D`vP)&K~#7Ft$kUL zY{^k&+}txOv(~r2?zeWgx)Cj@B}PaL5^D7f!VE@8GBEhj0zdF2kbZ!{04-x|AAov3 zSUv#td@-0wppTJ+VM5YigD?gy0|>RG-d^kVd%e7+_R6ZvyyGYC^(;>>kGPSq6;)~X z-dNl{Jlw-QBJPdIvMkG&*S^i4+q&8OYL{n%K zFS)&)7b!k-d7e8N5XS*&p*)<%`D9u7Ec01Gr)yZTGBMaOI953gGjy%WtNEaL!s%5! zit#sAzbf8nxQ#}`jYcDru24A(e~dq&V8M*#PstN&3;CRi!)m8ax9!H`iRT;c_xJYQ z!eW>7D|frwL$|onbM!#zW4F6|;70r7N*e0jg%clYbqB7$c$XU;?7CKWk?zluqTX~% zYnR=4wBu^^rt2)M5wf#xLIf3Y4szvlVG zbvivS6u57XYhE9XbGTcU^PP#ZDgShCry^b3n zjNQW0f?GSe;x=w>x`jcP(gtqh*0x(au}Jp|?)FQYuGeq7*SzL}d-};2+yf7tbQkVf zag&4GZEqbMq2J?OUb{cv*?x|+|B^cx?z-Kb=Ujj3qPz9Nzqn(kU*}%B_Rl_JZ*YN> zweHq$JW<&z&11zZ3zOPoS3Sq9i43V0Qil+|v5q3fiz@n4ERBZ6bm}-OK9o=9)e3Fp zwepARD)Xm$Efx;>91B(Q6e^S2ezEj+r{$mb_YcVEP2B2whEbl2&>~*@|bFI!Ynf+T)f-UC6 zDjHJ`3#P@ODn+egeieNo;R?YEJ*U)b-VVshTh*!DNk^dJ!P>yWgcRMP$;xBFud0Iu zBSw1_ZK-)J&m>l_Sm-Xaef}Z2(Y=0$TxW8lclN#eY}FwoOZ7&h_o1~@50YZ8dtV%G z^N8H$c4x)A&4VSl*4u>SIJp3KlM6j2bN?VI{4rAa>obVBXVyq#0?B3AWyZDLAs3ol zGYCkEfL6s@LK~w=)1KN$5|73yc_W{-Qd#9RUGitqW$`!!GbO}29k|ez)ztZ9ovU!f zc2+_g6S}C)=g&xfpwaWW0=}OD%*1}?so;!Xx*r)rm7f!er zuibVl#|G}weW%@X&)#q+?_P2z&J0MOb9eTxfxGK8-H&p&vo|_YH(zJO9Y6DWa+Uwd zC!9F@2KU0%FZsm5^1YOC=r(UZOK$bOr0tIU^lw)7T=Q5Xt855Xs{3PEg?tWo(h8{- zpvwBi;Lgj}7@QPK9)lyF8NW=Iyr^o2sd;QZiLG_aN)3X}6O5Vm$0f&-Te0cSzSrfwzV`K+=spUiJ5Ukqlbev)>{V+*fr%TNflZww}1QxrzSwP=df zRl?)8$BKu%M`$*i(|B1%%d(aOPRH;M&;7vy4L$ob>D#0gm8Ls(a@D)gn8Z4B?zmUz zPOs%IzT%9xxE+fB-UrXo&~@T2J#frD^oBF;#HoIe@2c&xd_ZfzZn90T@-yTr-$yz2 z+}`#LKhDK)0r4r!&hEex>O7K23vN|UTa{1epEoTfZx!qi{T#INe>W_Yl`jN4R_43K zGmSge_8Ld%8lorGk%sbwtZj(KQ2j9$hO0c2>T~WlElLo2v?^R3KI^#-JFZbXsa47+flCkkD9w(YqNtj?@QSz5{Yk&9v~v8l-ojyJf-Fv}t-RII^6CDO{YHbe(3E zk+7=-#A*W>FYBSp$9QDr*LBi35cdXBYcsJyHv++{EHbgh>&(d_mjzCp9J z{4z$P+3-JqPs-P9wWj-3>%Q;ORC!ldyGQ7k{GX|Nv(?YLq_B8ha=3egmX1!46&|^r&1*yu4Xzyq z;QOvtZ}}bsuUn?}?v|p>+uO@{P78GmG1xj-f*q?<%o^zQkQJ)3_%ZrI<*I0_vVtk? zG%sHy%^FYsGQ0(gk12RGO_tp7Jud|z)Ejj_;Z!5Vgk^>jR>_*i3wT&Q+FFO+IJdak z_itPw{?y$o?%I``ZuNNIdjlJ{cl|ins(YxOhc0xv4x5jQ`^o6#xzJWahLkl1x2ggu zFhhA`N>NqLxv;Q?;M{3?EN==uu?{1(?y3BY!J4NoDPi6=lBXa1+ zl)t}qYxZ^2P*1LLS@AKtEqEL*UcBg@eDXSm_Ky=a;ZKgalaAtKnF% zxXuz6zx4-q8OuDZJd?>JShpBHtIS|&0eAk(Bg{IVIltnrK7G?2J6uU0}{T-D7#Z(avkNroU2VADX%xUl)AXDh2bgq>*oArEorJMKrt-RH0MBCO%YxMf39MT5M7u*Y1|F1iH`Hk+z^WUaH z_tP}RsPt=J~o3x29*EBU;IUP{``4&`}S?07gqcCfB*O0AN;`|xc9y9 zebcl@AAQtYbp%+{U-*Sza7#-|KL4Np`Ja315BTqW?|a=3{m>8jd|&v&7u?4`{_!L2 zgnS?R(1+Y#{ncOj@+gBkt*@_p8W+Uu8<$rq8_4{3S>GBEp#m|4keb41Jw?s44SFUcjt2ehz8I<=mC~Cbv zaGT^Z*BWhi;{~`?h3`KeZBGefAd&%^v6|uf-l}94ad#M|#F1t8L`tgC>X0Y8`kEdc z4~2T?JKyPk=4XD!efYy4_KE;yMLY)xGUDIzmbc9CM#3cP?3Dp|p$Pm8!N)zrSy@?e zpZnbBd>Rzu%U}Mo$Mx7_kNIcrOrTW1@f*M4757u0`jo#%oNl8(`?Eju<>2aL2mpM@ zk2(MkIshmq-~tb50Q^7w(?9ia(81st_)!M50v^Y68v(cENi10W(R6D$l`(;`|jJ{x<<-f^XtH0 z|F>sptX+3sf8vJwhkv=|p1ZYkq%M*#)3_`vT!&VBxzeR^i7tXmaH+C8aC2P1U2y@o zCd;bbdRO5BRn>#zNGWr&U^73mr1`@SKkU<9^P1QAI0UjzIVqq?4+07P^cgVl4A&g@ zl7>%y@{=AWS=*cxa0U)3n$Hj1D9`1ngUP8AnQ@^R2G;|)Wc}Xpj(2!?D1&>8UX+n( z)S2ZEJ@k+-$MHPGu;eO5&O&W!wOy+0&4VX&UnN^rc`Ti&l2N`k`b*~>I3O%G*S-l z&Qb^AExV)#`GE^o5a}Eb*c?D3e()X;kPns<6I?oA@(t;LrvqGK!~+&vXy5^ju)2Kx z{O3RKG_SKPZPG>$YdD1RNj&T-OSgF%PgyZ>a8qVO8xEgSw7uQ}% zW8N#?b>6&rwNP`)gxTjTJ39NP36pUaLoEffLZ)0*Jo6aDKO68YdSWxvnxks~C3a&L7wPVewt>m2cgcmcRAl&NTh`8#^4vv>?FhLkVG_VXZNd z1z1pKlzrE`-sL?2C^%1^p;JN{;@|TR@AbR+LFaAsU=IHvg{fc zGF6|xCh1?9gx6P2WXabmEx7Ftw#9L7INYDQ=Ddb%(IsiQ{J@%Pw`%U%l}&f{MBlZ^ zg?{$hhC8*?b=_veedonZcWTgeoo3Trxv}Y<-I%q^Q{J>X%Xxor*6&C;+`H*|gERhq zd*eG;BX;~EM<~SHnV7YeWi=c*Zn5BpI*S->Rf<|gUlnXvTXrA$%Hu$3m07^0yQ}fQ z;$oH=@$5cBIe+$Ne|9>%3plb9KwgxAlJUzT3={Y`9<%^HcQn!>ay;UgUf|$orW5r8 z9O>HgJ<1>roe;wXy-@l~moClFD?^o=8*2wy-YOGPcs(9|xp+djELbV@rocjKJ`clE zLX~2s;tMI2j?;KJ%v-M%7@+{G20@k<7=n!QPz-iI@q-m)d=f{DH>|+0%$B0z*Uu__!=$~2Fk@{P!}s0bRSGUEy;dtb16bZs^-dZw z`SNg-j4iYpZhtiKuXpZ`j;;v#y!eR0yU^Zk-Xa$o_j`1|?%LgDzen_FxaC@%KDh@& zx3{xy5_SY|Vo!}e1jnh&)3Zxl7K36m&7&+K0gowki0%;lJF$B6bTBbIvCgClp3bA= ztLkUfx2m4=@J?D4nZ3e8T_Ec8noZqRPJ2hSdNpZ@nN?v=-uT!&`NpSiu|p4r+x ztS4OPW_yJyu;X3mW{ceBF@9Vwkk zs=!-#=j|{;I4$9;vVP80^P`FeeQ!Od!sB3dY!*(PF7sH11aX>A5{6WK1U5X_pzdIQ zov*`2H>x~)2vcgtRrWu1PToUYZz`Gt;K?~e$?-#coI_NSM&9UA% z)Um{ZbmN$QOL$}+h8t3Hi*{KqB%r!}R=Sl(^Ip@C=izyg!@SO{dsWbFZqa3h5Dsfc z4R)dN;~hEteY4?r;=n8s_ILK%!#e0llXRlv^FV2N+t|Tk&vpAwdT(DJMJ#R^Nv@ZcP)ZR+rk|S7N0_Stmk?7FUxaWOu(#%>Uotf#KCmH+a}0Q=B-7kaHr`bXCI7Tq7~ z6rIUSH1?)4g$rGUu!^y%!WL6X-J`}D-Ku;QomKS-30jQFsX~;R*Q!$$-7&l}o#BL@ zWAvrm$LI;wOVSXc*OHr1T2*H?Ra!+uOdcit!+o_fzh;c>)bW8r@y9yiCUd=mQcPpLC!DX(AP3@-l&2odgyl|oU z#i17NDGdj9cY1B_LgT#OWtwoRliQ3LX;c?3H1@rUb;$C%)NatYcH&;Kyx_k7@@e-Z z%|idcrPHp4azxWZr}45!4X;hQSDiZMS~x?AXsKzTgPV*1w;At5V@V0&U>~kQ?zhDp zk0@<)U^cG)Nrp~wX_oL+DQ^h2q`4}{y2{42t|9muMhH(; zS)Dgju1e9Z`&h>mY7-4VR<{^Ux;_?9CwVb+8;wT(=kNVCuf>iWxWZ+|0c23tnlD#u z54%fCI#B41^&P*A1dE9PD;$#X8GS41SuZ~`+$F32?W-^O`@etUsyj_q_N9#-_l2jg zxfSX}p5NGVUwq~{cV>0bJxBKh%kQdS_7X9MSW2Yx$Ami+X9;vnX<|whDyw_usyM4` zC@w|mtAa%j-^)71=n1t`tQ}Kmvg*qrMwb;IYu^x0EnNIu)rngcc%Jq_UiliPFGv6W zENgH44&Mxn@j%lcuhNA^I7!P?o5P{E!rq0ZNwgc7<)*ZKco0g+wf=NXaPeDchB@Bfd;oj!K_bm?|XT&L6ZE;sJm?T+8f%fDADDxw*n zduMI^bVX&pkf3XrDavHwkW7~_wWZb#W5EmEYaFs{6vzS%& z(d`tX&BCkib=_mU*ElT2mmAsTrR79`v4IQiH@6#)r>{pAF7!cRVaJo{W_LSqpBr@_ zkNm8>x{j7ig=Auz;D7sC;X+@d@$~aMLvM}$_Sx(1Bu!v_humhY4S)H$7if9O*Q+%hXI|+!IT?JN}uJxY2BR<=ffXprxapA1mza zY|+$t$1Cs7&bI5cyI$cvA$j3~A0;?9U8zt{&(BsK&3Nsagn|}iD?P+?9bcu`mSV*^ z0gEQxX~irCr&}5N5~jGEeLfZ6^H1Z)P|(li zjb+^OHu!_wd2k&_uc2O zJnvS?D1K*a+dV^ZkKf*OFAe?Yy@&5Y=Mk5(c*U&dU1)xbYD6Z!=GV&X%3FdO!lN0g z%UPDoVn7II2u29Mr7WR1E6n4L#qx%fJ%!I!-Vm)>g*D{+Se>e1$vhllZF(oP%p)gN zxaXlMC2tCBISY+Et2Akbmo^$WF@h}nfYyF*lpi)A%(&1T0Jz!exML^Ic?HEz9Npf4 zX5YHgnY#X9iCpEOTU|ThO*__wF=Ne#95<-9sH=T-C4Ai*%X@6B#wQMhe%Pv|)9JXM z{^_4~k3asn+uPeSt)paCtih~upo4dN^N~m1 z>i+fL{?$)bHQUYNC5>@$!eG18^e!_3WM6MEq3O^((BXcvwy!&P(mi!^)14+|ebvcT z_w>fL`++kjT!XTADeer-f}f|cu^$?QdPDr6#98Tfw8>T8T)*jdy$jv-E<{nb`0*Jq zcv}l_{AuTnhUqHk%ISN#5jg_xv1_8F6I-l8!ElC;-lA2)w-}`bM++LR*aI2+PhlS? z;K$ZDp%ChYs|3D^9!;~3*8-x;$g-O6vK+_f74EOqmX?sl>Ke0D5*GsYkj7rp`n)NN z57XxW576mj_e@*?4~hxc7M*;3)vI3R+x|^&dNUcZ^2incf(It7GCwoDyR+{nolt~d z;?VU81(WBL|LTjkeJ6B_aNXP;x)J61(sM7mwN^0;jqicKK`!*I{o-Y+=OXCgCGYs8P(LDzZ6`*pOuz zUsbtKx{gP^Li|XDFX;hKvMh`8IEAjNcB-N;#6y1Owh8gFipRQr=i!(9L0-_N5*Ch= zvFfVh_}H2l?^5_>;n2Sp=~%PWvtFZ~lS`eib=p3@RmRJ*H5Ukjr8WOD$J+6;=ob8} z^WyTFTUZ$QiLIsO;v8YTu+eJG9!Q)exQAJmnXU$UNIpF;#R_@}( zi&L1hZ8A%@=3UI%Tj{bsRy^;D$=ly@u<~cZg+{>q4?ZLGpTN?!-EH|iwOV{wrt6di zJSF*j@6v+%;mc>qUC!Ja$ZbBp&~?Y?ckg1~z5Sl^u1{X=gUd_q`_@+cY;+^k;2XDZ zxTTfjG`8HP<)cMBqmoSu2;AaF3;S)3#o+B>88&Yb3)pk}rPoi@qLw_7VrC#lpqygLu%1jpdnc?r^!@TsK+oP=^6rl2_cx zBOdbXIWA6W4zu_*B0$+KlsNXZ&JFuy4AKxB_$4$;{ZQSsRJlx$O zMc#4Sw48*JJEX)L>$m({E4w>8^xG~gG%*RbEU2ttiq)8_`F)A<9u3) z4~>s_K0^rOYzV9N6!;hu2nNUD$765^0H0k1f#3jm!2iJye$Y2MPk=#4@eFv33;7_3 zNJmEknjn-AcpmRzyoPds2SLI~2@o!ngYxo`od~>fJf69u0cMsu^lS;<>R5R`9 zXpn|Fe&iz`@k$6dNCQmNS5D>uE^zRP46?oT=Jg!V4uFX?)D8J~Y|3zD8zaDqqjN;t zf>+3kqhr8R(1kQ^Hw4`C7?(H6$9NieWn0StTxc@{;J^=UhvQR`##!UOPKVM?_^~j#(3H1R_~VohKftL8e_h5`jSZ|HkAbcH z7$afK%*Sq zC|>{WTOQ;Ot}W#!x}E%fx_`&L7xF&MH@$LsF@N3KN=|NbPA+u*AL#xR-PfG6$4|J& z(h;HZJx8zCcN-hG$og*i<)Ykg9a8t>gSyzNL|-*b{VaQ@)Uj5k#uDs8N*sI^QC7OP zY&ql@`hprqhQ`D4NKT0x)`xq3cD-deSXYa7SQI(4$~`lmMFiSl{Um>2?by4}LH71p zX@!|KnZ}k>))Q8T&tc+YRwNJDTVOu(sf8TiZn8To>!Ru8cF6~H%iF0#|p?JGM5#DQ)}pT!3b+SS#H&!;}>&IdROmpS*t z%8-$fZK%h=q5L`^?~d4C`s+7toAeIFfoly52m;oCG4l)so%j!(_i0jVmBz%k-GC;w z4n_xl?A!344;Ei96(2Yh_qvP752CnlOve!N*c4Bw3-{ofQ5M}+Cx8a#1E*u< zB@8PaRukiFK9LVX%!tNyCf&JpQ0#cQ z)M~nQY%ZVyO%c#_p%3>krKt1cYJv-F6^6-ojN$dfg&c+x$E@}iDVeD)%^ zjtu{?#~z!OhbIwR%9FGq@X$cU$si}fVr|a>9f`G)V9}uAXxc86!!21ZcRbr%&O+zm zx@pA>8I({6rM*-tFVZ(hhi?348DF!I7q0QpJ^S?Ie)$MtduyHCmKS|xp1b-ixzroQ zEHuqfV&M&-TS4PVj{s%XqrlYw14 z%hiI#iMc!c%&s`k>T=-mFCX72@x!`8xFuc=(z0m*;3GnHJ)l%jI8CQTJKsZDF-FC> znqL{j70RsX;-f{i$G~;uIPMf6@K%uYNNWOEu$Z7nTN*rrMxG(pbqe9)wq+PP$eC$P zpMHkN!OL<}1)LNIsdI&V)H2r1%Ofn7BoG!gEQ>79~Mq9AuIw+TAE6QU_U7lT4JhLDmu%%%am+3|x2oZ3> z%4vS^I;ULkjMblAUbx`sP`HjzQoz@fY_g7k!)xBM-aJ8uQwQOa7cggOkbID@xuP9- zEtk{rLq`gpNQIPjM;YBdJgmSyl#e?G4zhhxtT{S6_Hd-afd`QDX0tB#khWpS`fCN3 ziZ6d!_B4&ULuB|1jbd+h|1pEKLJSDwR*Zv-vFm~VXaQDvOjZ})`WDEGV?N0b_AWP+ z6Q3L+&tP%jcQioRUa#kSFCGIkF5X02Oa*v=g?o%y`DF`?A=&zJU0@Xu zCue~nNcaJsoKWIAAPsRy1HIC%Gpv&LpdYxAAFy$cr6acB z2eN6bgr4p45rL?_ELoq&Tfs1JC{Z=Okf-03hb#)JG9N~_Op%CpWa zBhpjC3_N(oGQysTo;1@u*L4pmvaVxDuVfz0U-5jnD`gd75{OLmv&fj7%8JeHbY;*B zVu=ZdB5QX7VPb9qU{~1cU{V;RnQMg<8Z0_Oy>V5!)KJyi%X}QH_$u5ff`@o0Gdu#> zDWnQs6%SH*Id8Dqze>)nd{we`r};IV5>BjKEoAEDJ@UvijB0gp?u&Tg8;aWL7T*kG z%!_d{$~IfAsapW|8)Id-+PL@U&p2mVb4h3@ejepzJp8lj%<$z^$ED)3I*U*T63VOT z2q|((-83%EOPN=ek=6knPbQ;H({RMBE$p>ehO@zpYKCu=IL!U9Vz@s2^J4ia9Q;U#f8en_z{B3 zSBwQQX~iFJV7w|PoMN<8wPl`%UBpl)rOVE14Y^D{ho!8lUn+lJuIy{LGYVW4EQa#I z$GpBxsBz|n!{t-*%Q!2f2#FP6rBn<%wN4?0nTI}} z(Y59cs%Y1^=WXlM5N-3!`PVFUTWP+|Lmy{jv8EYezwJ$|(+J^Cl~qY&SuT7sLsg?7 z9db-Db1Bu*qBug!Q^n5*ZG4F#*;is zb1Dz4VA1BQG>^pz37*b-r-~929$hYl4h?G_W!Gh$n@^xMomCw`YN+bbW93p5nPG>N zdmcqhZQGO%u?l});cZxXG#uQya!LaVF@;ZL1z*b?4co|}i!`8J*nJl4^ z_nINGv~WZF6*HfPWd)4s__abS#Dr}gCBZ$GJ@k@C2u~FqRzQ8Q?D6I|zuA9Z%VX1+ zuwyw3KkI#LtfBH3QS3JJvKN2w&zlw?@LDzU=+`Q>uz^-y>d~7jSas*JxW_UQ#^JmX z0@KAivoPHVaygNg!>~Dlgp0i30rFr83FCXFpZ7pRJ(0#Am`I-b^ME@IFI9W{W7lgp zyqN6_54;=Qq)FQS3C=EZu0>^bCwX#*7ScryN8~6AeACErSr*^hN9V&cz7^)@T6r(y zH4N)Mgflgtq^!|EiK}a->M7Z`MX|zw!S~MeizH{ zi20jujssotTVe29f0qqBppBF`fB3Br`#AnS9lA(kdY?!07x4L;a?L}A(P`K7Zo82; z>a~2K-OT%)W?rZGI>}kH{AQTO#d*8@j#$I6>t z(JApsnDSnyv5N=SOY=eR@fG5!h8yEoD4pLm4&?(5{s3RbaT)m`gQOR3BsPaBp%YN9hS zmdYaIWGlY~7lAi6!#D)5>S0_8=JBhH{4FhSM#dY-p$zVS@+W`7cR}xd_q*N7^2+pU znvZ<+Bkma*-%dO&wEVHMcSKQzK?=QN?zx9N}rWf^co@ID|Gr*jG zUwI!#t>Au=2kFwvsq;lU|0;8yYW7oI0sV}n6^ue0)*HrL0o_zAj=}w`#Joto74ZtJnApGVE@*@{bzvhYj0jICCA`kC& z1HSZ57$$yt^Mg7~FMssI|J5z@THZZAvD_z@y5*W=iO(+f+~t*lqsc6{*lxNd>?K_e z>)OUJPV+qrcoe#Rel}bJ(11Bp2!LjiW>|=!x|4ugqsKxJM7iy&{stBTd4*h<0%+MK zQCTPzTxJ9a2P;rPQ<43#$3E^fkFqShNjGq5_mzWQipl~*4Acen)D6U&)yb`ECii!i0eR3dz4o=Q^;hmp zcsU83GL)K?L>m?;9uyr*X2^qWi{v)El2$FN@_x!kK^|}K`>uDr%XifB8)m-p5P&<; z@ffFb9=N~#%>Q!R!x7yN-9oeOw)YP(MeSu0Ukns4J7)f4{JL`{O;Trc2z8*GKlnkv z4qCwFgn~q55ytT{zb07YjAL2(EaA}kEky@Catj_=Z@>nQkkD1psdeS7GS1iiMt?Vh-~>4qee8>G?ZDj%dB9X+kY#$T$lqUoFO4!4h~48`qG)^Muv3QskcCoK|*=Zr?6H48HW~7zQTg@WFG>oyS2qF0`Kk!3mOxA zT{lfbEbvC|98h0YVxIVm@mC8jUwIP%z0a1WU(yH#=9z0wms<{_^FtoF!w1VH%Aw=< zALYJaPmtSx@4c5@yFo7WQqMJ84evsq>37^Ea;Y06Zv%>3Y!xmv;IspE(R5bH8RxBq z68K&UcF4_&HMk^5T8&U8WU#i5;a>Q{#S7C@)2HQ$3@G#Z`i9RVU2uH_#ZRh{_?3&YDyvOEGGF=CYs!Q^|(QXvis10lmREMRE!H_nUM_)wiV9{db>A2CIS zg6aLMV9}r~pZnbBJe_jPFZ1CikI&IG@zF7%jz!YQs{%*f7<04rM&|-o8hkq{`?Os4 z#V`0gAElZ5U;Wizb6aqs_x4?ntnU_C+lgowjE{>Yq|Bdp)G(SgMV3OLrh!O6vgfma zTZm&WfzHQy<(|A8z&u_z2`N~(_n||<3{vPf#yU^#)op(2H-t+#%K(ApeV}DMa7E`}je9lSRpZ zG&d`kfQRuo#@HNqat>(t7*TjNyXBclo5R9|2A*phJMM{Fn|>MTrQLn^;_lGz)HD#QN7ep#2vMv@j`c3Qf0YbyyZGe+ixxBl7z{=8pEA~KQ)T$* zfBR^W=OZ8XJ*n>?%JO`0INu}ij)aVd4w=gplbh!0&ETL! zzyo?@JX=ToPOuczP{${EE3E~dc`kt0UbQzRVS#?E#bXv&o*%@pP)E$%@=5`_yhl6b z!!k0UbK(gg370p?M?3Qi7Tj^lx*%Sj56yI=Q{b^H=hK}j&Ox*3`pt%akppS1tlBe`xMe-% z)r#|*+G&86m9Shl%_yBm2F~Nhs=4!@A9lJOKV$sqPk-85fqU+~$Gz!IZ}QgQkN)V7 z{N`e4P%x2uaEy!byK?17a{evH|yPZ+n}2;~U>Nb6kuS&-_Js;6OSA z7(C;>vycy)wV{3pNC!^j1+553L))O-U;M>i_>J{=IS2W`cWfF5Ys0wkLwVkzQo5H` zM-Bdc^PAuFJm(i#00SG{{qFDn?sU^Z@KkTWhrl0K{QS@Vyf62LH@so`Q3UVo3Amu0 zJ7}hp^CKU4!2x-AhfMGlG@{L zb^9dK9X|^_a(x>2Vp(&)JgEd9HjMIFJ+O?X)+eolTCb-0vn>5x+)zH}W*3;Vgavxs z%Y}C=*zgsCof_lx)TjW`p!KL%@3mmd8njTr!sw=-7qWPioUKB5` z%)|ebc9}Q7E{kUp?3tHjs_^K#hT!Wqu96*YJIy<*%)E8hZ4;AMrUTbiy5hr_R=t+D z8+HEzN25{m*DC&6JgTZgMY_*mx@Edo&^-VLt5?zS8m>Rdf!vJ0`Rw1A8~W4$+trLc9q*bDV`UmEM%LNTJud*JDu~mkKMC zKb1a9_ELCj!IOa}JrUh(((o)VUWe>;nslAGgM*191@><8O&aIo;O)h3%U#>rE%$78 zZhtf;%bc6^hHz`%wCi=ZU!H}8S?z=Icm~eQ7+C(S29Gh)LY^se54X9u(DO&LAP@E% zURhmrmo8s&-CozVJMAEBezq!GYt*KvrDr}~rptOsX4!AHgz#GR)AtsQ5?%;C!?xt4DS4p$PVU^KBm_^(=2`8l77C&XZW5ME|6=a=avMgo4$j|Z4pT1f5<5?VJ zKXzR*JO|_Alm>4wDD0Cw@sVS#dghfo58%=CSoJ+hPi}s|<1KJrVL?OB7PCT1ugm!j zxZn3)x3swA$2WYKmdn?VOOSB7kP50-dUGVc_r;BA%skaXl!{ImIUNlXAK}WL2sxy)2^} ztni=H-4!d|qDhzGbX`Wqhj6FTX63W+rj$*A9kQw^u&elcC$PQ&F$vE08!&af5K`#y zic;RUOBWjNKx49W;xezOu(q($DLhS0i*`OvyooiB@>)HK?qy{@85*V4#SFAR(Xc$3 zA%?q(o*4_{d(y)xukbEUb=&SPiiZ^)kkwo&--Y(xVnCLgrA5UI_Hw)Jt?ep# ztCx-)Ba2RP{RMaTu{D1NcbjykM-#yCZfhwP#3K-jhI{D(aNv^%k&e>|`-6d3(gi{e zHyUMn3tj)}8cr^35d(@D-Wc(~Bs%4df!#?302zY`7V%*NGt z7*}d1Wj&_|xmDikAS8`d%4OA$uTpuejzD)5p=-!$Se=SiDhm#m4Rz?DI>$PB%OlEa zVm7^8GU74tRLQ}IvOKIUcAK0o9NdExdBN_}bjrKaLtXrQSD_*5&) zc1VZdM#BNeSa?9g%FM%QxPH6P4=8l2bf<~d!*$@8domBxg06{YO07JCv~ZhYEpcCE zspfG#3Px(LqL`dG%rpNaTnJ~CtES^64OKW}xU9}i^Q_83#c*1JZ_yBvla%rne=NE! z`X$UNoFTfMtL^|0@HW+f-zK)m2dmp`)QflUVVN;L_HOjy;oFji82>|gV*C-Xk1BAC zSt%6{30Yw+3oCuFf8ebq?)QiL(>zshB~y;jSN56+tgJY?crwn*h54{`O{s(CL2Bog z(l8bbjql~co3|sL2VSgWvdUOI40V<=gk&%(mxZ}BL&Hyg=6-#*-ER7hemES_eZyPD zJ-Y9-ianqG#4CA>_?VwofgLuE#rw}MZtc1gbloOH1agPvix(IZ`

F$&nSGjm+)B(l^i#fk@M42$y;{?fP5NJM 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Ⓢ<%VQ556rL)Q= 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