You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					57 lines
				
				1.1 KiB
			
		
		
			
		
	
	
					57 lines
				
				1.1 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								'use strict'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const qs = require('qs')
							 | 
						||
| 
								 | 
							
								const fastify = require('fastify')({
							 | 
						||
| 
								 | 
							
								  querystringParser: (str) => {
							 | 
						||
| 
								 | 
							
								    const result = qs.parse(str)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if (result.filter && typeof result.filter === 'string') {
							 | 
						||
| 
								 | 
							
								      result.filter = JSON.parse(result.filter)
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    return result
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								})
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								fastify.register(require('../index'), {
							 | 
						||
| 
								 | 
							
								  openapi: {
							 | 
						||
| 
								 | 
							
								    info: {
							 | 
						||
| 
								 | 
							
								      title: 'Test swagger',
							 | 
						||
| 
								 | 
							
								      description: 'testing the fastify swagger api',
							 | 
						||
| 
								 | 
							
								      version: '0.1.0'
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  exposeRoute: true
							 | 
						||
| 
								 | 
							
								})
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								fastify.route({
							 | 
						||
| 
								 | 
							
								  method: 'GET',
							 | 
						||
| 
								 | 
							
								  url: '/',
							 | 
						||
| 
								 | 
							
								  schema: {
							 | 
						||
| 
								 | 
							
								    querystring: {
							 | 
						||
| 
								 | 
							
								      type: 'object',
							 | 
						||
| 
								 | 
							
								      required: ['filter'],
							 | 
						||
| 
								 | 
							
								      additionalProperties: false,
							 | 
						||
| 
								 | 
							
								      properties: {
							 | 
						||
| 
								 | 
							
								        filter: {
							 | 
						||
| 
								 | 
							
								          type: 'object',
							 | 
						||
| 
								 | 
							
								          required: ['foo'],
							 | 
						||
| 
								 | 
							
								          properties: {
							 | 
						||
| 
								 | 
							
								            foo: { type: 'string' },
							 | 
						||
| 
								 | 
							
								            bar: { type: 'string' }
							 | 
						||
| 
								 | 
							
								          },
							 | 
						||
| 
								 | 
							
								          'x-consume': 'application/json'
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  handler (request, reply) {
							 | 
						||
| 
								 | 
							
								    reply.send(request.query.filter)
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								})
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								fastify.listen(3000, (err, addr) => {
							 | 
						||
| 
								 | 
							
								  if (err) throw err
							 | 
						||
| 
								 | 
							
								  console.log(`listening on ${addr}`)
							 | 
						||
| 
								 | 
							
								})
							 |