当前位置: 首页 > 面试题库 >

大张旗鼓地发布JSON正文

养焱
2023-03-14
问题内容

我想用Swagger发布一个json主体,像这样:

curl -H "Content-Type: application/json" -X POST -d {"username":"foobar","password":"xxxxxxxxxxxxxxxxx", "email": "foo@bar.com"}' http://localhost/user/register

目前,我有这个定义:

"/auth/register": {
        "post": {
            "tags": [
              "auth"
            ],
            "summary": "Create a new user account",
            "parameters": [
                {
                    "name": "username",
                    "in": "query",
                    "description": "The username of the user",
                    "required": true,
                    "type": "string"
                },
                {
                    "name": "password",
                    "in": "query",
                    "description": "The password of the user",
                    "required": true,
                    "type": "string",
                    "format": "password"
                },
                {
                    "name": "email",
                    "in": "query",
                    "description": "The email of the user",
                    "required": true,
                    "type": "string",
                    "format": "email"
                }
            ],
            "responses": {
                "201": {
                    "description": "The user account has been created",
                    "schema": {
                        "$ref": "#/definitions/User"
                    }
                },
                "default": {
                    "description": "Unexpected error",
                    "schema": {
                        "$ref": "#/definitions/Errors"
                    }
                }
            }
        }
    }

但是数据是在URL中发送的。这是Swagger提供的生成的卷曲:

curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' 'http://localhost/user/register?username=foobar&password=password&email=foo%40bar.com'

我知道query键值不好,但是我没有找到发布JSON正文的方法。我试过了,formData但是没有用。


问题答案:

您需要使用body参数:

    "parameters": [
      {
        "in": "body",
        "name": "body",
        "description": "Pet object that needs to be added to the store",
        "required": false,
        "schema": {
          "$ref": "#/definitions/Pet"
        }
      }
    ],

#/definitions/Pet定义为模型:

"Pet": {
  "required": [
    "name",
    "photoUrls"
  ],
  "properties": {
    "id": {
      "type": "integer",
      "format": "int64"
    },
    "category": {
      "$ref": "#/definitions/Category"
    },
    "name": {
      "type": "string",
      "example": "doggie"
    },
    "photoUrls": {
      "type": "array",
      "xml": {
        "name": "photoUrl",
        "wrapped": true
      },
      "items": {
        "type": "string"
      }
    },
    "tags": {
      "type": "array",
      "xml": {
        "name": "tag",
        "wrapped": true
      },
      "items": {
        "$ref": "#/definitions/Tag"
      }
    },
    "status": {
      "type": "string",
      "description": "pet status in the store",
      "enum": [
        "available",
        "pending",
        "sold"
      ]
    }
  },
  "xml": {
    "name": "Pet"
  }
},

参考:https :
//github.com/OpenAPITools/openapi-generator/blob/master/modules/openapi-
generator/src/test/resources/2_0/petstore.json#L35-L43

OpenAPI / Swagger v2规范:https :
//github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#parameter-
object

对于OpenAPI
v3规范,该body参数已被弃用。要定义HTTP有效负载,需要使用HTTP有效负载requestBody,例如https://github.com/OpenAPITools/openapi-
generator/blob/master/modules/openapi-
generator/src/test/resources/3_0/petstore.json#
L39-L41

OpenAPI v3规范:https://github.com/OAI/OpenAPI-
Specification/blob/master/versions/3.0.0.md#requestBodyObject



 类似资料:
  • 问题内容: 所以,当我使用Koush的离子时,我能够使用一个简单的方法将json正文添加到我的帖子中 我要转到OkHttp,但我确实没有找到一种很好的方法。我到处都是错误400。 有人有主意吗? 我什至尝试手动将其格式化为json字符串。 编辑:对于以后在这个问题上遇到麻烦的人,这是我的解决方案,它异步执行所有操作。所选答案正确,但是我的代码有些不同。 要做更多的工作,主要是因为您必须回到UI线程

  • 在显示添加到css类主题之前,我将如何过滤WordPress中的帖子或第一张图片。我看到我可以在我的functions.php中使用API中的add_filter()函数,但是我在获取每个帖子的第一个图像时遇到了问题。

  • 问题内容: 更新:我想传递给服务器 你好,同一个老,同一个老… :) 我有一个名为的表格和一个名为的代码区 我正在使用以下代码来字符串化并在代码区域中显示数据: 我想要的是将此数据发送到JSON文件。我一直在从事这个项目:http : //ridegrab.com/profile_old/,如果您按按钮,您将看到页面的顶部。 我也想使用这段脚本来发送数据: 再次,我想要的是能够将JSON数据发送到

  • 本文向大家介绍实现中国五星红旗国旗的布局相关面试题,主要包含被问及实现中国五星红旗国旗的布局时的应答技巧和注意事项,需要的朋友参考一下 注1: 因为 浏览器 CORS,所以需配置 nginx 代理才能正常显示 注2: 参考 国旗墨线图 绘制 注3: 可在我的 git仓库 查看 效果 html less

  • 问题内容: 因此,根据jQuery Ajax文档 ,它在发送请求时以查询字符串的形式序列化数据,但是设置应允许我在正文中发送实际的JSON。不幸的是,我很难首先确定是否发生这种情况,其次是将对象的外观发送给服务器。我所知道的是服务器未解析我正在发送的内容。 使用http客户端发布对象文字时,它可以工作。但是当将jQuery与结合使用时,它将失败。不幸的是,当我在Safari中分析请求时,它说消息的

  • 我一直试图为一个SAML安全的Web服务编写jmeter负载测试。因此,我有一个http请求采样器,它获取访问代码并存储在一个名为access_code的变量中。但是Web服务以以下形式接受post请求: api.service.edu/api/authentication,主体数据为{“code”:“${access_code}”,“redirect_uri”:“some site”}。 但是每