Schemas

This page was deprecating! Please use Schemator middleware

Swagger documentation generated based on schemas

If you correctly and exactly define the schema, your app will be faster by 25-30% which is good and validation support will be out-of-the-box

Validation

All validations are optional

Types of validation

  • headers

  • params

  • query

  • body

  • cookies

For more information, please look at Ajv docs

If you don't want to use any or all (except body) of these validation method, please set it to false for performance reason

app.get(
  '/',
  {
    schema: {
      headers: {
        type: 'object',
        properties: {
          authorization: { type: 'string' }
        }
      },
      query: false,
      params: false,
      cookies: false
    }
  },
  async () => ({ hello: 'world' })
);

app.listen(4000);

Serialization

Types of serialization

We use fast-json-stringify under the hood for serialization and improving response time (applies for Array and Object)

If schema is wrong, error is not causing, it just removes that value from response which may be bad for your application, so, please be careful then typing schema

If required property was used and value isn't returned, server may crash or performance may be dropped by 6-8 times, please, try to make sure everything is correct on your schema

Response content types:

  • response

  • response.HTTP_CODE

app.get(
  '/',
  {
    schema: {
      response: {
        type: 'object',
        properties: {
          hello: { type: 'string' }
        }
      }
    }
  },
  async () => ({ hello: 'world' })
);

app.listen(4000);

HTTP Code-based serialization

app.get(
  '/',
  {
    schema: {
      response: {
        200: {
          type: 'object',
          properties: {
            hello: { type: 'string' }
          }
        },
        404: {
          type: 'object',
          properties: {
            status: { type: 'string' }
          }
        }
      }
    }
  },
  async () => ({ hello: 'world' })
);

app.listen(4000);

Last updated