Giter Site home page Giter Site logo

Comments (7)

larssn avatar larssn commented on July 28, 2024

Think I have the same problem. validate does absolutely nothing. I'm thinking it doesn't match the path.

@manwithsteelnerves Did you find a solution?

from openapi-validator-middleware.

manwithsteelnerves avatar manwithsteelnerves commented on July 28, 2024

@larssn Are you using cloud functions? If so, you can try this hack.

import  { init, validate as internalValidate }  from    'openapi-validator-middleware';
init(path-to-schema, options);

export const validator = {
    validate  : () => (req: any, res: any, next: Function) => {
        req.baseUrl = req.baseUrl.replace(req.baseUrlPrefix , ""); //This is the patch

        console.time("Validate Request");
        internalValidate(req, res, next);
        console.timeEnd("Validate Request");

    }
}

We call validator.validate from our routes as a middleware call.

from openapi-validator-middleware.

larssn avatar larssn commented on July 28, 2024

Thanks for the quick response!

We are indeed using cloud functions. However our Request object does not have a baseUrlPrefix, and the baseUrl is an empty string. Googling baseUrlPrefix doesn't yield much, is it a custom field you've made?

from openapi-validator-middleware.

larssn avatar larssn commented on July 28, 2024

Figured it out, we had to do:

   validate  : () => (req: any, res: any, next: Function) => {
        req.baseUrl = '/v1';

        console.time("Validate Request");
        internalValidate(req, res, next);
        console.timeEnd("Validate Request");
    }

Thanks for the hint. Saved us some time!

from openapi-validator-middleware.

manwithsteelnerves avatar manwithsteelnerves commented on July 28, 2024

I forgot to add how we have the baseUrlPrefix

router.use("/", async (req : express.Request, res : express.Response, next : express.NextFunction) => {
    req.locals = { context : {}};
    req.baseUrlPrefix = req.baseUrl; //Save this
    next();
});

We saved it in at very first router to avoid hardcoding :)
Sorry for not mentioning it!

from openapi-validator-middleware.

kobik avatar kobik commented on July 28, 2024

@larssn @manwithsteelnerves glad to see you've managed.

Adding a baseUrlPrefix sounds like a legitimate feature and we'll consider adding that.

from openapi-validator-middleware.

manwithsteelnerves avatar manwithsteelnerves commented on July 28, 2024

Great!
Just a small change.
Would be good if its req.locals.baseUrlPrefix

from openapi-validator-middleware.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.