@elm-street-technology/express-joi-openapi

1.1.0 • Public • Published

express-joi-openapi

Example Implementation

import * as expressJoiOpenapi from "express-joi-openapi";

const openapiServer = new expressJoiOpenapi.server(
    {
      openapi: "3.0.3",
      info: {
        title: "API v2",
        version: "0.0.1",
        termsOfService: "http://example.com/terms/",
        contact: {
          name: "API Support",
          url: "http://www.example.com/support",
          email: "support@example.com",
        },
        license: {
          name: "Apache 2.0",
          url: "https://www.apache.org/licenses/LICENSE-2.0.html",
        },
      },
      servers: [
        {
          url: "/v1",
        },
      ],
    },
    server.app
  );



openapiServer.route({
    description: "List categories",
    method: "get",
    path: "/v1/categories",
    handler: async (req, res) => {
      res.json(await Category.all({
        limit: query.limit,
        offset: query.offset,
      }));
    },
    validateQuery: {
      schema: joi.object().keys({
        limit: joi
          .number()
          .integer()
          .min(1)
          .max(100)
          .default(1)
          .optional(),
        offset: joi
          .number()
          .integer()
          .default(0)
          .optional(),
      }),
    }
  })

/@elm-street-technology/express-joi-openapi/

    Package Sidebar

    Install

    npm i @elm-street-technology/express-joi-openapi

    Weekly Downloads

    0

    Version

    1.1.0

    License

    MIT

    Unpacked Size

    147 kB

    Total Files

    53

    Last publish

    Collaborators

    • idxbrokertm
    • john.lysen
    • darceloixest
    • tamlee_est
    • bondi
    • elmsttim
    • semcgee
    • pharv
    • nuex