1

I'm using swagger to describe a simple endpoint to upload file with date(int64). There is request body:

put:
  tags:
    - files
  description: Add an associated file to a project
  operationId: addFile
  parameters:
    - name: projectId
      in: path
      required: true
      schema:
        type: string
        format: uuid
  requestBody:
    content:
      multipart/form-data:
        schema:
          $ref: "#/components/schemas/AddFileToProjectRequestBody"
    required: true
  responses:
    200:
      description: Successful
      content: {}

and schema:

  AddFileToProjectRequestBody:
      required:
        - file
      type: object
      properties:
        file:
          type: string
          format: binary
          description: The file to upload
        fileDate:
          type: integer
          format: int64
          minimum: 0
          description: File modified date (Unix timestamp in milliseconds)

enter image description here

If I upload a simple file it works fine. But if I am trying to add a fileDate I get an error. "request body has an error: doesn't match the schema: Error at "/fileDate": Field must be set to integer or not be present" Looks like it fails to read number as int. Can someone explain to me why? I have tried to change it to string and it worked, but doesn't look logical to me to set date as string.

UPD:

    ------WebKitFormBoundaryGs2
Content-Disposition: form-data; name="fileDate"

1670485649000
------WebKitFormBoundaryGs2
Content-Disposition: form-data; name="projectFile"; filename="1.txt"
Content-Type: text/plain


------WebKitFormBoundaryGs2--
Bernard Vander Beken
  • 4,848
  • 5
  • 54
  • 76
Howkee
  • 37
  • 4

0 Answers0