UGA Boxxx

つぶやきの延長のつもりで、知ったこと思ったこと書いてます

【Zod】Zodiosとは

ZodiosというAPIクライアントを知ったので調べた

github.com

ZodiosはAPIのパラメータやレスポンスをZodで型をつけたものとして扱えるというもの

Zodを使っている人は重宝しそう

kaniさんの記事が参考になる   oisham.hatenablog.com

axios依存の API クライアントであるが、fetchをプラグインとして使うことは可能みたい

Zodiosでの宣言例

import { Zodios } from "@zodios/core";
import { z } from "zod";

const apiClient = new Zodios(
  "https://jsonplaceholder.typicode.com",
  // API definition
  [
    {
      method: "get",
      path: "/users/:id", // auto detect :id and ask for it in apiClient get params
      alias: "getUser", // optionnal alias to call this endpoint with it
      description: "Get a user",
      response: z.object({
        id: z.number(),
        name: z.string(),
      }),
    },
  ],
);

こう宣言しておくと、呼び出す時にパスの候補を出してくれたり、レスポンスに型補完がついて便利になる

書き心地もよさそうなので、使ってみたい