[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

タグ

2024年9月8日のブックマーク (2件)

  • FastAPIでDBが非同期対応(async)していない場合は、router(Path関数)でasyncを使用してはいけない

    FastAPIのrouterにはasync def/defのいずれも指定できるが、適当に決めてはならない FastAPIのrouter定義(path関数)では、def/async def のいずれも使用できるため、サンプルなどを見てなんとなくasync defにしている方もいるのではないでしょうか? 以下にasyncとsyncの実装例を記述します。 # sync @router.get("/sync") def get_develop_sync(i: int) -> None: import time print(f"start: {i}") time.sleep(30) print(f"end: {i}") # async @router.get("/async") async def get_develop_async(i: int) -> None: import time impo

    FastAPIでDBが非同期対応(async)していない場合は、router(Path関数)でasyncを使用してはいけない
  • Zod の refine を理解する

    Zod で独自のスキーマバリデーションを実現するには、refine というメソッドを使います。また、さらに高度な使い方ができる superRefine が提供されているため、使い方を復習してみようと思います。 refine とは refine は refinement のエイリアスとして提供されており、素材などを変換する (Zod でいうスキーマの型を再定義) という意味で使われます。Zod は数多くのスキーマを提供していますが、独自で定義したい場面も少なくありません。 import z from 'zod'; // Zod は整数だけでなく、自然数のようなスキーマも提供している。 const numberSchema = z.number().positive(); console.log(numberSchema.safeParse(12)); // { success: true,

    wozozo
    wozozo 2024/09/08