我收到以下错误:
paths./cards/count.get.parameters[0]上的模式错误并不完全正确 一个来自<#/ definitions / parameter>,<#/ definitions / jsonReference>
这是我的定义:
WebElement number = driver.findElement(By.id("com.ulink.agrostar.debug:id/edt_enter_mobileNumber"));
number.sendKeys("7976358798");
据我所知,您无法根据此问题使用架构定义:Swagger: Reusing an enum definition as query parameter
我需要修改什么才能使YAML编译没有错误?
答案 0 :(得分:1)
OpenAPI / Swagger 2.0不支持查询参数中的对象,但OpenAPI 3.0支持这些对象。
如果您坚持使用OpenAPI 2.0,则需要将对象拆分为单独的参数,如下所示:
parameters:
- in: query
name: tags_any
type: array
items:
type: integer
format: int64
enum: [1,2,3]
- in: query
name: tags_all
type: array
items:
type: integer
format: int64
enum: [4,5,6]
- in: query
name: tags_not
type: array
items:
type: integer
format: int64
enum: [4,5,6]
在OpenAPI 3.0中,您可以将参数定义为对象,并使用style
and explode
关键字指定此对象应如何序列化。
parameters:
- name: tagFilter
in: query
description: Input is optional - left blank will return all tags and a count
# Send the object as ?prop1=value1&prop2=value2
# This is the default serialization method for objects in query parameters
style: form
explode: true
schema:
type: object
properties:
tags_any:
type: array
items:
type: integer
format: int64
enum: [1,2,3]
tags_all:
type: array
items:
type: integer
format: int64
enum: [4,5,6]
tags_not:
type: array
items:
type: integer
format: int64
enum: [4,5,6]