UNPKG

create-backan

Version:

Quickly create a backan application to get started

70 lines (57 loc) 1.31 kB
/** * Backan Route: [post-example]. * * @see https://backan.pigeonposse.com/guide/core/route/post */ import { Route } from 'backan' import { getRandomFact } from './_utils' const id = 'post-example' const route = new Route( { path : id, } ) route.add( { method : 'post', path : '/', summary : 'Get random facts from [uselessfacts] api with post request', request : { body : { content : { 'application/json' : { schema : route.validation.object( { lang : route.validation.union([ route.validation.literal( 'en' ), route.validation.literal( 'de' ), ]) .optional() .default( 'en' ) .describe( 'Select language: en | de' ), } ), }, }, }, }, responses : { 200 : route.response.responseJSONSuccess( route.validation.object( { fact : route.validation.string(), } ) ), 400 : route.response.responseJSONError400, 500 : route.response.responseJSONError500, }, tags : [ id, ], }, async c => { try { const { lang } = c.req.valid( 'json' ) const fact = await getRandomFact( lang ) return route.response.addSuccessResponse( c, { fact, } ) } catch ( e ) { return route.response.add500Error( c, e ) } }, ) export default route