Skip to content

Minima.js API


Minima.js API / @minimajs/schema / / createResponse

Function: createResponse()

Call Signature

ts
function createResponse<T>(schema, options?): SchemaType;

Defined in: packages/schema/src/response.ts:33

Creates a response body schema descriptor for OpenAPI documentation.

Unlike request validators, this doesn't perform runtime validation - it only attaches the schema to route metadata for documentation generation.

Type Parameters

T

T extends ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>

Parameters

schema

T

options?

name?

string

Returns

SchemaType

Example

typescript
import { schema, createBody, createResponse } from "@minimajs/schema";
import { z } from "zod";

const bodySchema = createBody(z.object({ name: z.string() }));

// Default status code (200)
const responseSchema = createResponse(z.object({ id: z.string(), name: z.string() }));

// Explicit status code
const createdSchema = createResponse(201, z.object({ id: z.string() }));
const errorSchema = createResponse(400, z.object({ error: z.string() }));

app.post('/users',
  schema(bodySchema, responseSchema, errorSchema),
  () => {
    const { name } = bodySchema();
    return { id: crypto.randomUUID(), name };
  }
);

Call Signature

ts
function createResponse<T>(
   statusCode, 
   schema, 
   options?): SchemaType;

Defined in: packages/schema/src/response.ts:34

Creates a response body schema descriptor for OpenAPI documentation.

Unlike request validators, this doesn't perform runtime validation - it only attaches the schema to route metadata for documentation generation.

Type Parameters

T

T extends ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>

Parameters

statusCode

number

schema

T

options?

name?

string

Returns

SchemaType

Example

typescript
import { schema, createBody, createResponse } from "@minimajs/schema";
import { z } from "zod";

const bodySchema = createBody(z.object({ name: z.string() }));

// Default status code (200)
const responseSchema = createResponse(z.object({ id: z.string(), name: z.string() }));

// Explicit status code
const createdSchema = createResponse(201, z.object({ id: z.string() }));
const errorSchema = createResponse(400, z.object({ error: z.string() }));

app.post('/users',
  schema(bodySchema, responseSchema, errorSchema),
  () => {
    const { name } = bodySchema();
    return { id: crypto.randomUUID(), name };
  }
);