swagger - 任何人都可以在这个 YAML 文件中为我识别错误吗?
问题描述
我无法从它告诉我的内容中找到错误:
243
should match exactly one schema in oneOf
244
should be equal to one of the allowed values allowedValues: query, header, cookie
244 错误有点奇怪,因为他说如果我用查询替换路径,我应该使用有效语句之一,然后在错误代码中写入查询路径而不是查询路径。
如果我有IstGeloescht
参数,这个错误就会出现。当我删除整个块时,它很好,但据我所知它应该是正确的。由于我已经看到一些错误被隐藏并且仅在我们修复其他问题时才会出现,因此我决定向您展示所有代码。
openapi: 3.0.0
servers: []
info:
description: REST API
version: "1.0.0"
title: REST API
contact:
email: info@lala.net
license:
name: Apache 2.0
url: 'http://www.apache.org/licenses/LICENSE-2.0.html'
tags:
- name: Adresse
description: Adressendpunkt der REST API
路径:
/v2/ADR/地址:
get:
tags:
- Adresse
summary: Gibt alle Adressen zurück.
operationId: V2ADRAdresseGet
description: |
Gibt alle Adressen der zurück.
parameters:
- $ref: '#/components/parameters/Sort'
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/Offset'
- $ref: '#/components/parameters/Filter'
- $ref: '#/components/parameters/Depth'
- $ref: '#/components/parameters/Fields'
- $ref: '#/components/parameters/IstGeloescht'
responses:
'200':
description: search results matching criteria
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/adresseModell'
'400':
description: bad input parameter
成分:
模式:
adresseModell:
required:
- Name
- PLZ
- Ort
type: object
properties:
AdressNr:
format: int32
type: integer
Name:
description: "Beinhaltet Firmenname bei Firmenadressen"
maxLength: 40
type: string
Vorname:
description: Optional
maxLength: 40
type: string
Strasse:
description: Optional
maxLength: 40
type: string
PLZ:
maxLength: 10
type: string
Ort:
maxLength: 40
type: string
Geloescht:
description: "Kann nicht gefiltert werden, URL-Parameter verwenden"
type: boolean
Adressgruppen:
description: "dieses Feld kann nicht gefiltert oder sortiert werden"
uniqueItems: false
type: string
Anrede:
description: Optional
maxLength: 40
type: string
Bemerkungen:
description: Optional
maxLength: 100000
type: string
EMail:
description: Optional
maxLength: 100
type: string
TelDirekt:
description: Optional
maxLength: 40
type: string
TelZentrale:
description: Optional
maxLength: 40
type: string
TelPrivat:
description: Optional
maxLength: 40
type: string
Fax:
description: Optional
maxLength: 40
type: string
Mobiltelefon:
description: Optional
maxLength: 40
type: string
Homepage:
description: Optional
maxLength: 100
type: string
PLZPostfach:
description: Optional
maxLength: 50
type: string
Postfach:
description: Optional
maxLength: 50
type: string
Region:
description: Optional
type: string
Land:
type: string
description: Optional
Longitude:
format: double
description: Optional
type: number
Latitude:
format: double
description: Optional
type: number
DebitorenSteuercode:
type: string
description: Optional
DebitorenSteuercodeVerwenden:
description: "Bei True wird der Steuercode der Adresse verwendet und übersteuert andere Steuercodes, optional"
type: boolean
DebitorenErtragskonto:
type: string
description: Optional
DebitorenErtragskontoVerwenden:
description: "Bei True wird der Steuercode der Adresse verwendet und übersteuert andere Steuercodes, optional"
type: boolean
DebitorenWaehrung:
type: string
description: Optional
DebitorenKostenstelle:
type: string
description: Optional
DebitorenKostenstelleVerwenden:
description: "Bei True wird der Steuercode der Adresse verwendet und übersteuert andere Steuercodes, optional"
type: boolean
DebitorenKostenart:
type: string
description: Optional
DebitorenKostenartVerwenden:
description: "Bei True wird der Steuercode der Adresse verwendet und übersteuert andere Steuercodes, optional"
type: boolean
DebitorenRabatt:
format: double
description: Optional
type: number
Vertreter:
type: string
description: Optional
Lagerpreis:
format: int32
description: Optional
type: integer
Geburtsdatum:
description: Optional
type: string
ErstelltAm:
type: string
ErstelltVon:
type: string
GeaendertAm:
type: string
GeaendertVon:
type: string
Zusatzfelder:
type: object
additionalProperties:
type: object
参数:
Sort:
in: query
name: sort
schema:
type: integer
description: Kommagetrennte Liste der Felder die aufsteigend sortiert werden sollen (ein Minus vor der Feldbezeichnung sortiert absteigend), eingebette Objekte können nur nach dem Primärschlüssel sortiert werden
Limit:
in: query
name: limit
schema:
type: integer
description: Limitiert die Anzahl Datensätze die zurückgegeben wird
Offset:
in: query
name: offset
schema:
type: integer
description: Legt fest bei welchem Datensatz gestartet werden soll
Filter:
in: query
name: filter
schema:
type: integer
description: Ermöglicht innerhalb eines Felds nach Werten zu filtern (Details im Kapitel Filter Syntax)
Depth:
in: query
name: depth
schema:
type: integer
description: Gibt an, wie viele Hierarchie-Stufen an Unterobjekten komplett eingebettet werden sollen (Details im Kapitel Einbettungstiefe)
Fields:
in: query
name: fields
schema:
type: integer
description: Kommagetrennte Liste der Felder welche zurückgegeben werden sollen (der Primärschlüssel wird in jedemfall zurückgegeben)
IstGeloescht:
in: path
name: istgeloescht
schema:
type: string
enum:
- yes
- no
- any
description: Kommagetrennte Liste der Felder welche zurückgegeben werden sollen (der Primärschlüssel wird in jedemfall zurückgegeben)
解决方案
IstGeloescht
应该是路径参数(/v2/ADR/Adresse/{IstGeloescht}
)还是查询参数(/v2/ADR/Adresse?IstGeloescht=...
)?它目前被定义为路径参数 - 如果是这样,您需要更新路径并添加required: true
到路径参数。如果是查询参数,in: path
改为in: query
改为。
此外,一些 YAML 解析器将yes
和no
作为布尔值true
和false
. 我建议将这些值括在引号中,以确保它们被解析为字符串。
enum:
- 'yes' # <------
- 'no' # <------
- any
推荐阅读
- oracle - 如何在不指定模式名称的情况下定义可从任何模式调用的 PUBLIC Oracle 函数?
- dc.js - 每个条目具有多个类别的 Sunburst
- json - 您如何编组 sql.NullString 以使输出变平以仅给出 go 中的值?
- ffmpeg - 如何将ffprobe结果保存在json中
- python - 使用 Python 数据库中的数组创建一个有效的 JSON
- java - 在自定义图库中查找所选图像的图像大小
- javascript - 如何将 Javascript 代码从 PHP 文件传递到 JS 文件
- android - 需要通过 ResourcesCompat.getFont 以编程方式设置无法从 Android XML 布局文件(有时)使用的 Google 字体
- apache-spark - 如何在 Spark 中使用 Timestamp/Date 类型的参数创建 UDF
- dialogflow-es - Actions on Google - 在对话流程中不询问输入提示