0.0.2 • Published 2 years ago

gewu-request v0.0.2

Weekly downloads
-
License
-
Repository
github
Last release
2 years ago

gewu-request

定义接口描述和校验

import { gewuRequest } from "gewu-request";
import { yup } from "yup";

interface Hello {
  name: string;
  age: number;
}

interface HelloResp {
  name: string;
  age: number;
  vip: string;
}

// 描述了请求体类型、响应类型、url、校验
export const api_hello = gewuRequest.api<Hello, HelloResp>({
  url: "/v1/hello",
  method: "POST",
  requestSchema: yup.object({
    name: yup.string().required("需要提供name"),
    age: yup.number().required("需要提供age").min(3),
  }),
  responseSchema: yup.object({
    name: yup.string().required("需要返回name"),
    age: yup.number().required("需要返回age"),
    vip: yup.string().required("需要返回vip"),
  }),
});

前端发起请求

import { gewuRequest } from "gewu-request";
import { api_hello } from "dto/hello";

const app = fastify();

// 会根据 api_hello 的描述绑定路由、解析 query或body,校验入参,如果都通过了,执行第三个参数并且返回
gewuRequest.use(app, api_hello, async (body) => {
  return { ...body, vip: "Supper" };
});

gewuRequest.listen({ port: 5000 });
0.0.2

2 years ago

0.0.1

2 years ago