当前位置: 首页 > 知识库问答 >
问题:

多部分POST请求中参数的Swager错误

慕容昊焜
2023-03-14

我正在使用Swagger编辑器来记录Node中内置的现有API,但它一直给我以下错误:

路径上的架构错误。/上载/Rate.post.parameters[0]不完全是来自

此错误出现在我代码的 3 个位置:

  • paths./upload/Rate.post。参数[0]
  • paths./upload/Rate.post。参数[1]
  • paths./users/register.post.parameters[0]

我已经搜索了很多,但例如,这个链接并没有解决我的问题,尽管它是相同的错误:

Swager参数错误”与

这是我对斯威格的定义:

  /users/register:
    post:
      tags:
      - "users"
      description: Allows an user to register at the Server
      produces:
        - application/json
      parameters:
        - name: body
          in: body
          description: JSON Object with information for a Register request from an User
          schema: 
            type: object
            required:
              - username
              - password
              - weight
              - height
              - gender
              - restRate
              - age
            properties:
              username:
                type: string
              password:
                type:
                format: password
              weight:
                type: integer
              height:
                type: integer
              gender:
                type: string
              restRate:
                type: integer
              age: 
                type: integer
      # Expected responses for this operation:
      responses:
        # Response code
        200:
          description: Register successful
          schema:
            type: string

  /upload/Rate:
    post:
      tags:
      - "upload"
      description: Allows an user to upload a file into the server
      produces:
        - application/json
      consumes: 
        - multipart/form-data
      parameters:
        - name: body
          in: formData
          description: JSON Object with information for an upload request from an User
          required: false
          schema:
            type: object
            required:   
              - user
              - overlap
              - window 
              - latitude
              - longitude
              - time
              - date
            properties:
              user:
                type: string
              overlap:
                type: string
              window:
                type: string
              latitude:
                type: string
              longitude:
                type: string
              time:
                type: string
              date:
                type: string
        - name: files 
          in: formData
          description: File with the corresponding Rate
          required: false
          schema:
            type: object
            required:
              - rate
            properties:
              rate:
                type: file
      # Expected responses for this operation:
      responses:
        # Response code
        200:
          description: Login successful
          schema:
            type: string

也许这会有所帮助,但是一旦我解析了它的参数,发布路由(上传/速率)应该会收到一个类似这样的请求:

user = req.body.user;
rr = req.files.rate;
overlap = req.body.overlap;
windowT = req.body.window;
latitude = req.body.latitude;
longitude = req.body.longitude;
time = req.body.time;
date = req.body.date;

感谢您的帮助和时间!

共有1个答案

龙志勇
2023-03-14

有多个问题。

/upload/register

  • 架构属性密码缺少type的值。
  • 属性名称不匹配-rest HR(在属性下)与rest的(在必需的列表中)。

< code >上传/费率:

>

  • 这里的问题是由多部分/form-data请求中的对象参数引起的。在OpenAPI(fka Swagger)2.0中,表单参数可以是原始值和数组,但不能是对象。因此,您的示例无法使用OpenAPI 2.0进行描述。

    如果您正在设计一个新的API(或者如果您能够并且愿意更改API实现以兼容OpenAPI 2.0),可能的解决方案是:

      < li >更改操作以使用< code>application/json,并将所有输入参数组合成一个json对象。file参数需要以base64 string-< code > type:string 和< code>format: byte的形式实现。 < li >使用< code>multipart/form-data,但将对象参数拆分为单独的表单参数。

    < br >即将推出的OpenAPI 3.0将支持表单数据中的对象参数:< br > https://github . com/OAI/open API-Specification/blob/open API . next/versions/3.0 . MD # special-considerations-for-multipart-content

  •  类似资料:
    • 问题内容: 我正在尝试开发一个侧边栏小工具,该工具可以自动检查网页中我的转让配额的演变过程。我快要解决了,但是我需要做的最后一步是:将带有正确POST数据的HttpRequest发送到php页面。使用firefox插件,标题的“ Content-Type”如下所示: 参数“边界”似乎是随机的,而POSTDATA是这样的: 我不明白如何使用神秘的“边界”参数返回来正确模拟POSTDATA。 有人知道

    • 问题内容: 我正在尝试通过带有POST请求的照片上传 根据自述文件,我应该能够做到这一点 问题是,这不起作用。我收到测试服务器的回复,说它转储了0个post变量。 我已经确认该HTML小页面服务器处于工作状态 所以问题是,请求模块在做什么?有没有更好的方法来发送节点? 问题答案: 经过更多研究后,我决定使用。这使得分段上传非常容易。

    • 我正在使用Multipart执行帖子类型请求。问题是因为我一直收到两个错误 1) 500 2) 422不可处理实体 Api仅接受音乐文件。因此,我添加了一个默认文件,以避免不断选择新文件 和我的界面 如果有任何帮助,我将不胜感激。 我发现它将文件作为对象通过Reform2发送到服务器

    • 我试图做一个POST请求,但我不能让它工作: 我基本上想复制这个超文本传输协议请求(不是ajax),就像它是由html表单发起的一样: URL:/api 参数:用户名和密码

    • 问题内容: 我有一个API端点,必须向其发送多部分HTTP请求,该请求由两部分组成(文件系统文件)和(JSON对象)。 经过一些研究,我发现了如何在AngularJS中执行多部分请求: 1) 该函数最初具有以下形式: 此实现的结果是,请求的各个部分没有设置。 Blob ,对象看起来像这样(有点混乱,基本上第一部分是of ,第二个): 第二种方法为请求的每个部分设置了正确的内容,但没有为部分设置任何

    • 我正在使用请求库编写Web服务客户端。我正在获取包含文件和文本json的多部分/表单数据。我不知道如何解析它。是否有合适的库来解析python中的多部分/表单数据格式,或者我应该自己编写解析器? 我的代码: b'\r\n--c00750d1-8ce4-4d29-8390-b50bf02a92cc\r\nContent-Displace: form-data; name="playback Hash