Curl “招摇过市”的回应;“试试看”;与生成的旋度中的旋度不同

Curl “招摇过市”的回应;“试试看”;与生成的旋度中的旋度不同,curl,swagger-ui,Curl,Swagger Ui,记录了我的API之后,我在UI中填写了请求的参数并单击“执行” 然后我得到了相应的旋度和响应体 出于我还不明白的原因,我已登录,但如果我注销,响应主体就是我所期望的 但我真正感到惊讶的是,在终端中运行curl时,我确实收到了正确的答案(登录时收到的答案) 以下是生成的旋度: curl -X GET "http://server/path" -H "accept: */*" -H "Cookie: PHPSESSID=uk30v14m2l788eehtkb9q1j260" 以及openapi规范

记录了我的API之后,我在UI中填写了请求的参数并单击“执行”

然后我得到了相应的旋度和响应体

出于我还不明白的原因,我已登录,但如果我注销,响应主体就是我所期望的

但我真正感到惊讶的是,在终端中运行curl时,我确实收到了正确的答案(登录时收到的答案)

以下是生成的旋度:

curl -X GET "http://server/path" -H "accept: */*" -H "Cookie: PHPSESSID=uk30v14m2l788eehtkb9q1j260"
以及openapi规范

openapi: '3.0.0'
paths:
  /add.php:
    get:
      tags:
        - information
      parameters:
        - in: "header"
          name: "Cookie"
          type: string
      responses:
        '200':
          description: successful operation
对于上下文,我已经添加了“Access Control Allow Origin:*”头来授权来自Swagger的查询(在此之前,我得到了描述的“Failed to fetch error”)

谢谢你的帮助

我找到了答案(谢谢@Helen的提示!)

我在浏览器开发工具中检查了swagger发送的curl,但cookie参数不在那里。我原以为它会像其他人一样处理,但它必须以不同的方式声明

检查文档后,我发现cookies参数必须声明为“in:cookie”,而不是“in:header”()。(这是可行的,但招摇过市的编辑器会发出警告,不认为这是一个有效的选项)

此外,此cookie用于身份验证目的,我使用了专用的securityScheme()

以下是有效的openapi规范

openapi: '3.0.0'
components:
  securitySchemes:
    PHP_session:
      type: apiKey
      in: cookie
      name: PHPSESSID
paths:
  /add.php:
    get:
      tags:
        - information
      security:
        - PHP_session: []
      responses:
        '200':
          description: successful operation
编辑:嗯,我学到了很多,规范现在是有效的,但实际上它仍然不起作用(答案很难解释,我有一些错误的希望)。但我想它会一直保持下去,直到大摇大摆的用户界面支持cookies为止


编辑:如相关问题()的答案所述,它在SwiggerHub中工作(这次是实时的)

请发布curl命令和Swigger UI发送的实际请求。要捕获Swagger UI请求,请打开开发工具(F12),打开网络选项卡,然后执行该请求。然后,如果使用Chrome,右键单击请求(实际请求,而不是选项请求)并选择“复制为cURL(bash)”。如果您使用Firefox,右键单击请求,选择“编辑并重新发送”,然后在此处发布屏幕截图。(或者,您可以使用Fiddler或Charles Proxy或类似工具记录原始HTTP请求。)“但我真正惊讶的是,当在终端中运行curl时,我确实收到了正确的答案。”-正确的是“注销”,或者像您登录一样的响应?您的API使用哪种身份验证?Swagger Editor和Swagger UI当前不支持在“试用”请求中发送cookie-有关详细信息,请参阅。这就是为什么它在Swagger UI中不起作用,但在命令行中与curl一起起作用的原因。我不确定你所说的“像个魔咒”是什么意思,因为Swagger UI目前正在发送“试用”请求中的Cookie。@Helen Well yes^^当我看到我错误地认为它起作用时,我想编辑它(响应非常大,我错过了相关信息)但你比我快。