{"library":"node-restify-validation","title":"Node-Restify Validation","description":"node-restify-validation is a Node.js library designed to integrate request validation directly into REST services built using the `node-restify` framework. It allows developers to define validation schemas for path parameters (resources), query parameters, request body content, and HTTP headers directly within the `restify` route definition object. The current stable version is 1.3.0, released after 1.1.0, but the project explicitly states \"Maintener wanted\" in its README, indicating an abandoned or maintenance-only status with no active development. Its primary differentiator is its close integration with `restify`'s route definition, aiming to keep validation logic co-located with the route itself. It supports basic validation rules like `isRequired`, `isIn`, `isEmail`, `isNatural`, `isDictionary`, and `isObject` with nested properties and array validations.","language":"javascript","status":"abandoned","last_verified":"Sun Apr 19","install":{"commands":["npm install node-restify-validation"],"cli":null},"imports":["const restifyValidation = require('node-restify-validation');\n// then use restifyValidation.validationPlugin","server.get({ url: '/test', validation: { ... } }, handler)"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"const restify = require('restify');\nconst restifyValidation = require('node-restify-validation');\n\nconst server = restify.createServer();\nserver.use(restify.queryParser());\nserver.use(restify.bodyParser()); // Required for 'content' validation\nserver.use(restifyValidation.validationPlugin({\n    errorsAsArray: false,\n    forbidUndefinedVariables: false,\n    errorHandler: restify.errors.InvalidArgumentError\n}));\n\nserver.get({\n    url: '/test/:name',\n    validation: {\n        resources: { // Path parameters\n            name: { isRequired: true, isIn: ['foo', 'bar'] }\n        },\n        queries: { // Query parameters\n            status: { isRequired: true, isIn: ['foo', 'bar'] },\n            email: { isRequired: false, isEmail: true },\n            age: { isRequired: true, isNatural: true }\n        },\n        headers: { // HTTP Headers\n            requestid: { isRequired: true }\n        }\n    }\n}, function (req, res, next) {\n    res.send(200, { message: `Hello ${req.params.name}, your status is ${req.query.status}.` });\n    return next();\n});\n\nserver.listen(8001, function () {\n    console.log('%s listening at %s', server.name, server.url);\n});","lang":"javascript","description":"Initializes a Restify server with the validation plugin and defines a GET route with path, query, and header parameter validation rules, demonstrating how to attach validation schemas directly to routes.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}