ホームページ >バックエンド開発 >Python チュートリアル >先生: API クライアントの生成を簡素化する
Sensei は、ルーティング、データ検証、応答マッピングを自動的に処理することで、API クライアントの作成プロセスを簡素化します。これにより、HTTP リクエストの複雑さが軽減され、定型コードを記述せずに API をプロジェクトに簡単に統合できるようになります。
Sensei は、タイプヒントを使用して API クライアントを生成し、API と対話するための明確なインターフェイスと堅牢な検証を提供します。その構文はフレームワーク FastAPI
に非常に似ています。from typing import Annotated from sensei import Router, Path, APIModel router = Router('https://pokeapi.co/api/v2/') class Pokemon(APIModel): name: str id: int height: int weight: int @router.get('/pokemon/{name}') def get_pokemon(name: Annotated[str, Path(max_length=300)]) -> Pokemon: pass pokemon = get_pokemon(name="pikachu") print(pokemon) # Pokemon(name='pikachu'> <p>Didn't it seem to you that the function doesn't contain the code? <strong>Sensei writes it instead of you!</strong> The result of the call get_pokemon(name="pikachu") is the object Pokemon(name='pikachu'> </p><p>There is a wonderful OOP approach proposed by Sensei:<br> </p> <pre class="brush:php;toolbar:false">class User(APIModel): email: EmailStr id: PositiveInt first_name: str last_name: str avatar: AnyHttpUrl @classmethod @router.get('/users') def query( cls, page: Annotated[int, Query()] = 1, per_page: Annotated[int, Query(le=7)] = 3 ) -> list[Self]: pass @classmethod @router.get('/users/{id_}') def get(cls, id_: Annotated[int, Path(alias='id')]) -> Self: pass @router.post('/token') def login(self) -> str: pass @login.prepare def _login_in(self, args: Args) -> Args: args.json_['email'] = self.email return args @login.finalize def _login_out(self, response: Response) -> str: return response.json()['token'] user = User.get(1) user.login() # User(id=1, email="john@example.com", first_name="John", ...)
先生がリクエストの処理方法を知らない場合は、前処理を準備として、後処理をファイナライズとして使用して、自分で処理することができます
先生: 高度な抽象化を提供します。 Teacher は API ラッパーの作成を簡素化し、ルーティング、データ検証、API 応答のモデルへの自動マッピングを容易にするデコレーターを提供します。これにより定型文が削減され、コードの可読性と保守性が向上します。
ベア HTTP クライアント: リクエストや httpx のようなベア HTTP クライアントでは、リクエストの手動管理、応答解析の処理、データ検証、およびエラー処理が必要です。エンドポイントごとに繰り返しコードを記述する必要があります。
Sensei は、標準 API と複雑な API の両方に役立つ機能を提供します。
API を使用する開発者、データ サイエンティスト、アナリストなど
以上が先生: API クライアントの生成を簡素化するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。