製品比較

FastAPI Python(開発者向けの動作方法)

イントロダクション

FastAPIは、Pythonを使用してAPIを構築するための、モダンで高性能なウェブフレームワークです。 それは、簡単に使用および学習できるように設計されており、自動検証、シリアライゼーション、自動インタラクティブAPIドキュメントといった強力な機能を提供します。 さらに、任意のテンプレートエンジンと互換性があり、プロジェクトに必要な任意のデフォルトテンプレート設定を使用することができます。

FastAPIの詳細、その特徴、および効果的な使用方法について詳しく見ていきましょう。 この記事の後半では、IronPDF についても検討します。これは、Iron Software からのPDF生成用Pythonパッケージです。

FastAPIの主な機能

  1. 高性能:FastAPIは、ウェブ部分にStarletteを、データ部分にPydanticを使用しているため、Node.jsやGoに匹敵する、利用可能な最速のPythonフレームワークの1つです。

  2. 使いやすさ: これは、直感的に使用できるよう設計されており、ドキュメントを読む時間を短縮します。 フレームワークは、データの検証とシリアル化のために標準的なPython型ヒントを活用しています。

  3. 自動インタラクティブドキュメント: FastAPIはOpenAPIとJSON Schemaを使用してインタラクティブなAPIドキュメントを自動的に生成し、/docs (Swagger UI) および /redoc (ReDoc) からアクセス可能です。また、インタラクティブAPIドキュメントのアップグレードにより、このドキュメントは自動的に更新されます。 代替APIドキュメントのアップグレードにもこれが反映されます。

  4. エディターサポート:VS Codeなどのエディターでコード補完や型チェックの優れたサポートを提供し、開発のスピードを上げ、エラーを減らします。

  5. 標準に基づく: これは、APIのオープン標準であるOpenAPIとJSON Schemaに基づいており、完全に互換性があります。

インストール

FastAPI と ASGI サーバーであるUvicorn を pip を使用してインストールできます。

pip install fastapi
pip install "uvicorn[standard]"
pip install fastapi
pip install "uvicorn[standard]"
SHELL

最初のFastAPIアプリケーションを作成する

以下は、FastAPIを使用してユーザーインターフェースを介してPythonデータを公開するための簡単な例です。

from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
    return {"Hello": "World"}
@app.get("/items/{item_id}") # with query parameters
def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}
py
PYTHON

アプリケーションを実行するには、Uvicornを使用します。

uvicorn main:app --reload
py
PYTHON

このコマンドは開発サーバーを起動し、コードの変更に対して自動的にリロードします。 インタラクティブAPIドキュメントにはhttp://127.0.0.1:8000/docsでアクセスできます。

高度な機能

FastAPIは、高度な機能を幅広くサポートしており、複雑なアプリケーションに適しています。

  1. 依存性注入: FastAPIは、依存性をクリーンかつ効率的に管理できる強力な依存性注入システムを提供します。

  2. バックグラウンドタスク:レスポンスを返した後に実行するバックグラウンドタスクを定義できます。これは、メールの送信やデータの処理などのタスクに役立ちます。

  3. WebSockets: FastAPIはWebSocketsをサポートしており、クライアントとサーバー間のリアルタイム通信が可能です。

  4. セキュリティ: FastAPIには、OAuth2、JWTトークンなど、セキュリティを処理するためのツールが含まれています。

  5. データベース統合: FastAPIはSQLAlchemyやTortoise-ORMのようなライブラリを使用して、簡単にデータベースと統合できます。

例: CRUD API の構築

アイテムを管理するためのシンプルなCRUD(Create、Read、Update、Delete)APIを構築しましょう。

  1. データモデルの定義:
from pydantic import BaseModel
class Item(BaseModel):
    name: str
    description: str = None
    price: float
    tax: float = None
py
PYTHON
  1. FastAPIアプリケーションを作成する:
from fastapi import FastAPI, HTTPException
app = FastAPI()
items = {}
@app.post("/items/")
def create_item(item: Item):
    item_id = len(items) + 1
    items[item_id] = item
    return item
@app.get("/items/{item_id}") # optional str query parameter
def read_item(item_id: int):
    if item_id not in items:
        raise HTTPException(status_code=404, detail="Item not found")
    return items[item_id]
@app.put("/items/{item_id}") # with path parameters
def update_item(item_id: int, item: Item):
    if item_id not in items:
        raise HTTPException(status_code=404, detail="Item not found")
    items[item_id] = item
    return item
@app.delete("/items/{item_id}")
def delete_item(item_id: int):
    if item_id not in items:
        raise HTTPException(status_code=404, detail="Item not found")
    del items[item_id]
    return {"message": "Item deleted"}
py
PYTHON

IronPDFの紹介

FastAPI Python(開発者向けの仕組みについて):図1

IronPDFは、HTML、CSS、画像、JavaScriptからPDFの作成、編集、署名を行うために設計された強力なPythonライブラリです。 商業利用レベルのパフォーマンスを、低メモリフットプリントで提供します。 主要な機能には次のものが含まれます:

HTMLをPDFに変換

HTMLファイル、HTML文字列、URLをPDFに変換。 例えば、Chrome PDFレンダラーを使用してウェブページをPDFとしてレンダリングします。

クロスプラットフォームサポート

.NET Core、.NET Standard、.NET Frameworkなど、さまざまな.NETプラットフォームに対応。 Windows、Linux、macOSに対応しています。

編集と署名

プロパティを設定し、パスワードとアクセス許可を使用してセキュリティを追加し、PDFに電子署名を適用します。

ページテンプレートと設定

ヘッダー、フッター、ページ番号、調整可能な余白でPDFをカスタマイズ。 レスポンシブレイアウトとカスタム用紙サイズをサポートします。

規格遵守

PDF/AやPDF/UAなどのPDF標準に準拠。 UTF-8文字エンコーディングをサポートし、画像、CSS、およびフォントなどのアセットを処理します。

IronPDFとFastAPIを使用してPDFドキュメントを生成する

pip install fastapi
pip install ironPDF
pip install fastapi
pip install ironPDF
SHELL
from fastapi import FastAPI
from fastapi.responses import FileResponse
from ironpdf import * 
# Apply your license key
License.LicenseKey = "key"
app = FastAPI()
@app.get("/")
def read_root():
    return {"Hello": "IronPDF"}
@app.get("/items/{item_id}") # with query parameters
def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}
@app.get("/pdf")
async def get_pdf(greet1: str = None,greet2: str = None):
    renderer = ChromePdfRenderer()
# Create a PDF from a HTML string using Python
    content = "<h1>Document Generated using IronPDF with fastapi GET</h1>"
    content += "<p> Demonstrate PDF generation using User Inputs"+"</p>"
    content += "<p>"+f"Greetings from: {greet1}"+"</p>"
    content += "<p>"+f"And Greetings from: {greet2}"+"</p>"
    pdf = renderer.RenderHtmlAsPdf(content)
    # Export to a file or Stream
    pdf.SaveAs("fastapi.pdf") 
    # To view the file in the browser, use "inline" for the media_type
    headers = {
        "Content-Disposition": "inline; filename=sample.pdf"
    }  
    # Create a FileResponse object with the file path, media type and headers
    response = FileResponse("fastapi.pdf", media_type="application/pdf", headers=headers)
    # Return the FileResponse object
    return response
py
PYTHON

コードの説明

このコードスニペットは、FastAPIとIronPDFの統合を示しており、ユーザーの入力に基づいて動的にPDFドキュメントを生成し、ダウンロード可能なレスポンスとして提供します。

  1. ライセンスキーの設定: IronPDFのライセンスキーを適用して、その機能を有効にします。

  2. FastAPI 初期化: HTTPリクエストを処理するためのFastAPIインスタンス(`app`)を初期化します。基本的なルートハンドラー: `read_root()`: ルートURL(`/`)にアクセスした際に「Hello IronPDF」という簡単なJSONメッセージで応答します。 `read_item()`: `item_id` のパスパラメータとオプションの `q` クエリパラメータを受け取ります。 これらの関数パラメータを伴ったJSON応答を返します。

  3. PDF生成ルート (`/pdf`): `get_pdf()`

    • この非同期関数は、オプションのクエリパラメータ (`greet1` および `greet2`) を使用して `/pdf` エンドポイントへの GET リクエストを処理します。
    • HTML文字列(`content`)を構築します。これには、ドキュメントの出所と目的を示すヘッダーが含まれています。 ユーザー入力(`greet1`および`greet2`)を使用したPDF生成を示す段落。 IronPDFの`ChromePdfRenderer()`を使用してHTMLコンテンツをPDFにレンダリングします (`pdf = renderer.RenderHtmlAsPdf(content)`)。
    • 生成されたPDFを「fastapi.pdf」として保存します(`pdf.SaveAs("fastapi.pdf")`)。5. PDFの提供:
    • レスポンスヘッダーを構成して、PDF がブラウザ内でインライン表示されるように指定します(`"Content-Disposition": "inline; filename=sample.pdf"`)。
    • 生成されたPDFファイルを指す`FileResponse`オブジェクトを、適切なメディアタイプ(`"application/pdf"`)で作成します。
    • `/pdf`エンドポイントにアクセスするとPDFドキュメントのダウンロードをトリガーする`FileResponse`オブジェクトを返します。

    このコードスニペットは、FastAPIと統合して、ユーザーの入力に基づいてPDFドキュメントを動的に生成および提供するためにIronPDFをどのようにシームレスに統合できるかを示しています。 HTMLコンテンツをPDFに変換する能力を示しており、HTTP経由でのオンデマンドのドキュメント生成や配信を必要とするアプリケーションに適しています。

出力

以下は、APIから生成されたSwagger出力を示しています。

FastAPI Python(開発者向けの仕組み):図2

PDF

FastAPI Python(開発者向けの仕組み):図 3

IronPDFライセンス

IronPDF は Python 用のライセンスキーで動作します。 IronPDF for Pythonは、購入前に機能を試すことができる無料試用ライセンスキーを提供しています。

IronPDFパッケージを使用する前に、スクリプトの先頭にライセンスキーを配置します。

from ironpdf import * 
# Apply your license key
License.LicenseKey = "key"
py
PYTHON

結論

FastAPIは、PythonでAPIを構築するための強力で使いやすいフレームワークです。 FastAPIは高性能、自動ドキュメント、そして高度な機能を備えており、初心者と経験豊富な開発者の両方にとって優れた選択肢です。 シンプルなAPIや複雑なWebアプリケーションを構築している場合でも、FastAPIは成功するために必要なツールを提供します。

IronPDF は、HTMLコンテンツからPDFドキュメントを作成、操作、およびレンダリングするための強力なPythonライブラリです。 HTMLからPDFへの変換、インタラクティブなフォーム作成、PDFの操作(結合、分割)、およびテキストの抽出などの機能を提供します。 さまざまなPythonアプリケーションに簡単に統合し、動的なPDFを手軽に生成するのに最適です。

チャクニット・ビン
ソフトウェアエンジニア
ChaknithはIronXLとIronBarcodeで作業しています。彼はC#と.NETに深い専門知識を持ち、ソフトウェアの改善と顧客サポートを支援しています。ユーザーとの対話から得た彼の洞察は、より良い製品、文書、および全体的な体験に貢献しています。
< 以前
Python PDFライブラリ比較(無料&有料ツール)
次へ >
Python向けIronPDFとPDFium Pythonの比較 ### Python向けIronPDF - **簡単なインストール:** `pip install IronPDF`を使用して数分でインストールできます。 - **豊富な機能:** PDFの作成、編集、変換、合併、分割、フォームの記入、画像変換など、多岐にわたる機能を提供します。 - **高品質のレンダリング:** 高解像度の画像やテキストを正確にレンダリングできるため、プロフェッショナルな品質のPDFを生成できます。 - **優れたサポート:** 迅速なサポートと豊富なドキュメントが提供されています。 ### PDFium Python - **オープンソース:** PDFiumはオープンソースプロジェクトで、利用は無料です。 - **基本機能:** PDFの表示や簡単な編集を行う基本的な機能を提供します。 - **カスタマイズ性:** 開発者が自分のニーズに合わせてソースコードを自由に変更できます。 - **サポート制限:** 主にコミュニティベースのサポートで、公式の技術サポートはありません。 ### 結論 IronPDFは商用プロジェクトやプロフェッショナルな用途に向けた多機能かつ高品質なPDFソリューションを提供します。一方、PDFiumはオープンソースというメリットがあり、小規模なプロジェクトや予算の制約がある場合に適しています。選択する際には、プロジェクトの要求や予算に合わせて決定することが重要です。