ответ от соединения с выводом "не относится к типу" объект "," тип ":" about: blank " - PullRequest
0 голосов
/ 04 ноября 2019

Я определяю REST API с помощью openapi3 с каркасом подключения, ниже показано, как выглядит openapy.yaml.

.
.
openapi: 3.0.0
paths:
  /add:
    post:
      operationId: manage_add
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                cust_data:
                    $ref: '#/components/schemas/test_data'
                file:
                    format: binary

.
.
components:
  schemas:
    test_data:
      type: object
      required:
        - uid
        - port
        - name
      properties:
        uid:
          type: string
          example: 5c6fc35ef926f1ef6174881e
        port:
          type: integer
          example: 8081
        name:
          type: string
          example: my_name

, когда я делаю запрос curl с содержимым, включая файл, получая вывод как плохойзапрос с пустым типом

curl -X POST "http://0.0.0.0:5001/add" -H "accept: */*" -H "X-Auth: 3_KbYSYjy3m6AvTAt9dCJXhK66AW" -H "Content-Type: multipart/form-data" -F "cust_data={ "name": "my_name", "port": 8081, "userid": "5c6fc35ef926f1ef6174881e" }" -F "file=@fileadd.tar.gz;type=application/gzip"

Я получаю ответ в виде:

{
  "detail": "'{ name: my_name, port: 8081, userid: 5c6fc35ef926f1ef6174881e }' is not of type 'object'",
  "status": 400,
  "title": "Bad Request",
  "type": "about:blank"
}

версии моего подключения и Flask: connexion == 2.4.0 Flask == 1.1. 1

По сути, я хотел написать API, который будет вызываться так из python:

files = {'cust_data':(None, json.dumps(cust_data),'application/json'),
                 'file':(os.path.basename(tar_path),open(tar_path,'rb'),'application/octet-stream')
                 }
requests.post("https://localhost:5001/vpn_add",files=files,verify=False)
...