我得到下面的错误:
声明的路径参数“imageId”需要定义为路径或操作级别的路径参数
这是我的狂妄自大定义的快照
'/api/v1/images/{unitnumber}/{type}/{imageId}':
delete:
tags:
- Images
summary: 'Summary'
description: "Description"
operationId: DeleteImage
consumes: []
produces:
- application/json
parameters:
- name: unitnumber
in: path
required: true
type: string
- name: type
in: path
required: true
type: string
- name: imageId
in: query
required: false
type: string
responses:
'400':
description: Bad Request
schema:
$ref: '#/definitions/ErrorResponse'
'401':
description: Unauthorized
schema:
type: string
'500':
description: Server Error
schema:
$ref: '#/definitions/ErrorResponse'
我只能摆脱错误,如果我采取imageId
并更改为path
而不是query
,这不是意图
- name: imageId
in: path
required: true
type: string
你知道我需要改变什么才能让这一切正常吗?
3条答案
按热度按时间sgtfey8w1#
路径字符串
/api/v1/images/{unitnumber}/{type}/{imageId}
意味着imageId
是一个路径参数,因此它必须是in: path
。如果
imageId
应该是一个查询参数,如/api/v1/images/{unitnumber}/{type}?imageId=...
,则需要将路径字符串更改为/api/v1/images/{unitnumber}/{type}
。查询参数should not be mentioned in paths,它们仅在parameters
部分中定义。gijlo24d2#
必须使用问号声明查询参数,如下所示:
hi3rlvi23#
(The问题的上下文不清楚,所以:)
如果您使用OpenAPI并在C#上下文中:
该错误发生在某些使用OpenAPI的管道中。将代码片段放在Azure Function/ Endpoint / Controller上方,错误应该会得到修复。