cdimascio / express-openapi-validator

🦋 Auto-validates api requests, responses, and securities using ExpressJS and an OpenAPI 3.x specification
MIT License
919 stars 210 forks source link

Multiple path params break support for URI path param #887

Closed Mitchell3514 closed 9 months ago

Mitchell3514 commented 10 months ago

Describe the bug As per the FAQ, we should be able to define paths that end on a path parameter acting as a wildcard/use URI format.
However, when we introduce a second path parameter, the middleware always throws an error and the server returns status code 500.

To Reproduce

  1. Create the validation middleware using an OpenAPI specification that includes a path with multiple path parameters of which the last (at the end) is a wildcard as per RFC-6570. For example:
    /namespaces/{id}/files/{path}*:
      get:
        parameters:
          - name: path
            in: path
            required: true
            schema:
              type: string
  2. Create an Express application with the middleware and call any (existing or non-existing) route.

Actual behavior The middleware always responds with 500 - Internal Server Error

Expected behavior The middleware validates the internal path parameter as per usual and parses the wildcard parameter at the end.

Examples and context Original use-case: #457 implemented in #491 I have added a commit to my fork that includes tests which reproduce this issue: https://github.com/Mitchell3514/express-openapi-validator/commit/0c5531869055500140dcbb6aee5da98b9c643b2a

guillerecalde commented 9 months ago

Hi @Mitchell3514, I'm facing the same issue in one of my projects. Since you've added some tests, I went ahead and created a pull request to your fork: https://github.com/Mitchell3514/express-openapi-validator/pull/1 to fix this issue. Could you please update your fork and create a pull request to this library so @cdimascio can take a look?