サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
プライムデーセール
fastapi.tiangolo.com
Server Workers - Gunicorn と Uvicorn¶ 前回のデプロイメントのコンセプトを振り返ってみましょう: セキュリティ - HTTPS 起動時の実行 再起動 レプリケーション(実行中のプロセス数) メモリ 開始前の事前ステップ ここまでのドキュメントのチュートリアルでは、おそらくUvicornのようなサーバープログラムを単一のプロセスで実行しています。 アプリケーションをデプロイする際には、複数のコアを利用し、そしてより多くのリクエストを処理できるようにするために、プロセスのレプリケーションを持つことを望むでしょう。 前のチャプターであるデプロイメントのコンセプトにて見てきたように、有効な戦略がいくつかあります。 ここではGunicornがUvicornのワーカー・プロセスを管理する場合の使い方について紹介していきます。 Info DockerやKubernete
パスワード(およびハッシュ化)によるOAuth2、JWTトークンによるBearer¶ これでセキュリティの流れが全てわかったので、JWTトークンと安全なパスワードのハッシュ化を使用して、実際にアプリケーションを安全にしてみましょう。 このコードは、アプリケーションで実際に使用したり、パスワードハッシュをデータベースに保存するといった用途に利用できます。 本章では、前章の続きから始めて、コードをアップデートしていきます。 JWT について¶ JWTとは「JSON Web Tokens」の略称です。 JSONオブジェクトをスペースのない長く密集した文字列で表現したトークンの仕様です。例えば次のようになります: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0
from fastapi import FastAPI app = FastAPI() @app.get("/") async def root(): return {"message": "Hello World"} $ <font color="#4E9A06">fastapi</font> dev <span style="background-color:#009485"><font color="#D3D7CF"> FastAPI </font></span> Starting development server 🚀 Searching for package file structure from directories with <font color="#3465A4">__init__.py</font> files Importing from <font colo
テスト¶ 🌐 AI と人間による翻訳 この翻訳は、人間のガイドに基づいて AI によって作成されました。🤝 原文の意図を取り違えていたり、不自然な表現になっている可能性があります。🤖 AI LLM をより適切に誘導するのを手伝う ことで、この翻訳を改善できます。 英語版 Starlette のおかげで、FastAPI アプリケーションのテストは簡単で楽しいものになっています。 HTTPX がベースで、さらにその設計は Requests をベースにしているため、とても馴染みがあり直感的です。 これを使用すると、FastAPI と共に pytest を直接利用できます。 TestClient を使用¶ Info TestClient を使用するには、まず httpx をインストールします。 仮想環境 を作成し、それを有効化してから、例えば以下のようにインストールしてください: TestC
コンテナ内のFastAPI - Docker¶ FastAPIアプリケーションをデプロイする場合、一般的なアプローチはLinuxコンテナ・イメージをビルドすることです。 基本的には Dockerを用いて行われます。生成されたコンテナ・イメージは、いくつかの方法のいずれかでデプロイできます。 Linuxコンテナの使用には、セキュリティ、反復可能性(レプリカビリティ)、シンプリシティなど、いくつかの利点があります。 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:a
Warning The current page still doesn't have a translation for this language. But you can help translating it: Contributing. FastAPI doesn't require you to use a SQL (relational) database. But you can use any database that you want. Here we'll see an example using SQLModel. SQLModel is built on top of SQLAlchemy and Pydantic. It was made by the same author of FastAPI to be the perfect match for Fas
リクエストボディ¶ 🌐 AI と人間による翻訳 この翻訳は、人間のガイドに基づいて AI によって作成されました。🤝 原文の意図を取り違えていたり、不自然な表現になっている可能性があります。🤖 AI LLM をより適切に誘導するのを手伝う ことで、この翻訳を改善できます。 英語版 クライアント(例えばブラウザ)からAPIにデータを送信する必要がある場合、リクエストボディとして送信します。 リクエストボディは、クライアントからAPIへ送信されるデータです。レスポンスボディは、APIがクライアントに送信するデータです。 APIはほとんどの場合 レスポンス ボディを送信する必要があります。しかしクライアントは、常に リクエストボディ を送信する必要があるとは限りません。場合によっては、クエリパラメータ付きのパスだけをリクエストして、ボディを送信しないこともあります。 リクエストボディを宣言
チュートリアル - ユーザーガイド¶ このチュートリアルはFastAPIのほぼすべての機能の使い方を段階的に紹介します。 各セクションは前のセクションを踏まえた内容になっています。しかし、トピックごとに分割されているので、特定のAPIの要求を満たすようなトピックに直接たどり着けるようになっています。 また、将来的にリファレンスとして機能するように構築されています。 従って、後でこのチュートリアルに戻ってきて必要なものを確認できます。 コードを実行する¶ すべてのコードブロックをコピーして直接使用できます(実際にテストされたPythonファイルです)。 いずれかの例を実行するには、コードを main.pyファイルにコピーし、uvicornを次のように起動します: $ uvicorn main:app --reload <span style="color: green;">INFO</spa
代替ツールから受けたインスピレーションと比較¶ 何がFastAPIにインスピレーションを与えたのか、他の代替ツールと比較してどうか、そしてそこから何を学んだのかについて。 はじめに¶ FastAPIは、代替ツールのこれまでの働きがなければ存在しなかったでしょう。 以前に作られた多くのツールが、作成における刺激として役立ってきました。 私は数年前から新しいフレームワークの作成を避けてきました。まず、FastAPIでカバーされているすべての機能を、さまざまなフレームワーク、プラグイン、ツールを使って解決しようとしました。 しかし、その時点では、これらの機能をすべて提供し、以前のツールから優れたアイデアを取り入れ、可能な限り最高の方法でそれらを組み合わせ、それまで利用できなかった言語機能 (Python 3.6以降の型ヒント) を利用したものを作る以外に選択肢はありませんでした。 以前のツール¶
アプリケーションが (どういうわけか) 他の何とも通信せず、応答を待つ必要がない場合は、async def を使用して下さい。 よく分からない場合は、通常の def を使用して下さい。 備考: path operation 関数に必要なだけ def と async def を混在させ、それぞれに最適なオプションを使用して定義できます。それに応じてFastAPIは正しい処理を行います。 とにかく、上記のいずれの場合でもFastAPIは非同期で動作し、非常に高速です。 しかし、上記のステップに従うことで、パフォーマンスの最適化を行えます。 技術詳細¶ 現代版のPythonは「非同期コード」を、「コルーチン」と称されるものを利用してサポートしています。これは async と await 構文を用います。 次のセクションで、フレーズ内のパーツを順に見ていきましょう: 非同期コード async と
Query Parameters and String Validations¶ FastAPI allows you to declare additional information and validation for your parameters. Let's take this application as example: from fastapi import FastAPI app = FastAPI() @app.get("/items/") async def read_items(q: str | None = None): results = {"items": [{"item_id": "Foo"}, {"item_id": "Bar"}]} if q: results.update({"q": q}) return results The query para
FastAPI¶ FastAPI framework, high performance, easy to learn, fast to code, ready for production ドキュメント: https://fastapi.tiangolo.com ソースコード: https://github.com/fastapi/fastapi FastAPI は、Pythonの標準である型ヒントに基づいてPython 以降でAPI を構築するための、モダンで、高速(高パフォーマンス)な、Web フレームワークです。 主な特徴: 高速: NodeJS や Go 並みのとても高いパフォーマンス (Starlette と Pydantic のおかげです)。 最も高速な Python フレームワークの一つです. 高速なコーディング: 開発速度を約 200%~300%向上させます。 * 少ない
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: If your application (somehow) doesn't have to communicate with anything else and wait for it to respond, us
OAuth2 with Password (and hashing), Bearer with JWT tokens¶ Now that we have all the security flow, let's make the application actually secure, using JWT tokens and secure password hashing. This code is something you can actually use in your application, save the password hashes in your database, etc. We are going to start from where we left in the previous chapter and increment it. About JWT¶ JWT
Python Types Intro¶ Python has support for optional "type hints" (also called "type annotations"). These "type hints" or annotations are a special syntax that allow declaring the type of a variable. By declaring types for your variables, editors and tools can give you better support. This is just a quick tutorial / refresher about Python type hints. It covers only the minimum necessary to use them
FastAPI¶ FastAPI framework, high performance, easy to learn, fast to code, ready for production 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
このページを最初にブックマークしてみませんか?
『FastAPI - FastAPI』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く