Blog Logo
TAGS

Express Zod API

# Express Zod API ![logo](https://raw.githubusercontent.com/RobinTail/express-zod-api/master/logo.svg) ![CI](https://github.com/RobinTail/express-zod-api/actions/workflows/node.js.yml/badge.svg) ![OpenAPI](https://img.shields.io/swagger/valid/3.0?specUrl=https%3A%2F%2Fraw.githubusercontent.com%2FRobinTail%2Fexpress-zod-api%2Fmaster%2Fexample%2Fexample.documentation.yaml&label=OpenAPI) [![coverage](https://coveralls.io/repos/github/RobinTail/express-zod-api/badge.svg)](https://coveralls.io/github/RobinTail/express-zod-api) ![downloads](https://img.shields.io/npm/dw/express-zod-api.svg) ![npm release](https://img.shields.io/npm/v/express-zod-api.svg?color=green25&label=latest) ![GitHub Repo stars](https://img.shields.io/github/stars/RobinTail/express-zod-api.svg?style=flat) ![License](https://img.shields.io/npm/l/express-zod-api.svg?color=green25) Start your API server with I/O schema validation and custom middlewares in minutes. 1. [Overview](#overview) 2. [How it works](#how-it-works) 3. [Quick start](#quick-start) — **Fast Track** 4. [Basic features](#basic-features) 1. [Middlewares](#middlewares) 2. [Options](#options) 3. [Using native express middlewares](#using-native-express-middlewares) 4. [Refinements](#refinements) 5. [Transformations](#transformations) 6. [Top level transformations and mapping](#top-level-transformations-and-mapping) 7. [Dealing with dates](#dealing-with-dates) 8. [Cross-Origin Resource Sharing](#cross-origin-resource-sharing) (CORS) 9. [Enabling HTTPS](#enabling-https) 10. [Customizing logger](#customizing-logger) 11. [Child logger](#child-logger) 12. [Profiling](#profiling) 13. [Enabling compression](#enabling-compression) 5. [Advanced features](#advanced-features) 1. [Customizing input sources](#customizing-input-sources) 2. [Headers as input source](#headers-as-input-source) 3. [Nested routes](#nested-routes) 4. [Route path params](#route-path-params) 5. [Multiple schemas for one route](#multiple-schemas-for-one-route) 6. [Response customization](#response-customization) 7. [Empty response](#empty-response) 8. [Error handling](#error-handling) 9. [Production mode](#production-mode) 10. [Non-object response](#non-object-response) including file downloads 11. [File uploads](#file-uploads) 12. [Serving static files](#serving-static-files) 13. [Connect to your own express app](#connect-to-your-own-express-app) 14. [Testing endpoints](#testing-endpoints) 15. [Testing middlewares](#testing-middlewares) 6. [Special needs](#special-needs) 1. [Different responses for different status codes](#different-responses-for-different-status-codes) 2. [Array response](#array-response) for migrating legacy APIs 3. [Accepting raw data](#accepting-raw-data) 4. [Graceful shutdown](#graceful-shutdown) 5. [Subscriptions](#subscriptions) 7. [Integration and Documentation](#integration-and-documentation) 1. [Zod Plugin](#zod-plugin) 2. [Generating a Frontend Client](#generating-a-frontend-client) 3. [Creating a documentation](#creating-a-documentation) 4. [Tagging the endpoints](#tagging-the-endpoints) 5. [Deprecated schemas and routes](#deprecated-schemas-and-routes) 6. [Customizable brands handling](#customizable-brands-handling) 8. [Caveats](#caveats) 1. [Coercive schema of Zod](#coercive-schema-of-zod) 2. [Excessive properties in endpoint output](#excessive-properties-in-endpoint-output) 9. [Your input to my