open api error: request should have required property ‘.headers’ – docker

  docker, node.js, openapi, pm2

My nodejs app has an open-api.yaml file and express-openapi-validate validator. I’m doing a POST request which is working and the api validator doesn’t return any errors:

curl --request POST 'http://localhost:33004/my-app/settings' --data-raw '{"serials":["1234","2355"]}'

In my open-api.yaml I have:

openapi: '3.0.0'
servers:
 - url: 'http://{host}/my-app'
   variables:
     host:
     enum:
       - 'localhost'
       ....
...
paths:
    /settings:
      ...
      post:
      tags:
        - 'settings'
      operationId: 'postSettings'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                serials:
                  type: array
                  items:
                    type: string
...

Then I tried dockerizing my app – created a docker container, and ran it inside with the pm2-runtime. However, when I send the same request to the docker container when the app is running in it, I get error while validating request: request should have required property '.headers' . I have no property ‘.headers’ mentioned in the open-api.yaml file.

I tried removing the validator middleware, and the request went through just fine. Can you help me understand what is the validator complaining about?

Source: Docker Questions

LEAVE A COMMENT