OpenAPI Integration
FieldTest can generate Zod schemas directly from an OpenAPI spec. This makes it easy to validate request/response payloads using your API contract.
Install
bash
pnpm add @fieldtest/openapi @fieldtest/validation-libLoad schemas
ts
import { loadOpenApiSchemas } from "@fieldtest/openapi";
import { validate } from "@fieldtest/validation-lib";
const registry = loadOpenApiSchemas("./openapi.yaml");
// Components
const UserSchema = registry.components.User;
const [ok, result] = validate(UserSchema, { id: "123", name: "Ada" });Validate request/response bodies
ts
const createUser = registry.paths["/users"].post;
const [isRequestValid, requestResult] = validate(
createUser.requestBody!,
{ name: "Ada" }
);
const [isResponseValid, responseResult] = validate(
createUser.responses["201"],
{ id: "123", name: "Ada" }
);Supported schema features
$ref(local#/components/schemas/*)enumoneOf,anyOf,allOfnullableobject,array,string,number,integer,boolean
Limitations
- External
$refis not resolved. - Only
application/jsoncontent is supported for request/response bodies. - Custom formats are not validated beyond basic string/number constraints.