(这是我的第一个堆栈溢出帖子,所以请放心,哈哈)
我正在使用:
-OpenApi(v3)
-L5-Swagger(swagger-php和swagger-ui的包装器)
我正在使用注释来生成OpenAPI规范。生成规范时,控制台没有错误。但是,在每个模型的每个属性中,一旦生成,就会添加一个附加属性。
我尝试过:
1.重新编写模型,
2.以不同的方式重写属性
我的一个模型和“ id”属性:
/**
* Class ActionPlan
*
* @OA\Schema(
* description="Action Plans",
* title="Action Plan Schema",
* required={
* "id",
* "name",
* "organization_id",
* "assessment_period_id",
* "completed",
* "created_by",
* "updated_by"
* },
* )
*
* @OA\Property(
* property="id",
* type="integer",
* format="int32",
* description="Action Plan ID"
* )
正在生成以下内容:
"ActionPlan": {
"title": "Action Plan Schema",
"description": "Action Plans",
"required": [
"id",
"name",
"organization_id",
"assessment_period_id",
"completed",
"created_by",
"updated_by"
],
"properties": {
"id": {
"schema": "ActionPlan",
"description": "Action Plan ID",
"type": "integer",
"format": "int32"
},
我正在做什么,正在生成“ schema”属性?
当我将规格文件放入Swagger编辑器时,它说ActionPlan.properties.id不应具有其他属性。附加属性:模式。
我只是想知道如何创建“ schema”属性。
谢谢!
答案 0 :(得分:1)
我了解到,这种“错误”实际上根本不是错误。实际上,这是一个我从未意识到的非常有用的功能!当在其对应的OA \ Schema对象之外创建OA \ Property时,我想在每个属性中添加一个“ schema”属性,以创建一个引用,这样我们开发人员就不会对哪个OA \ Schema感到困惑属性属于。要删除此“模式”属性,只需将所有OA \ Properties移至其对应的OA \ Schema对象的内部即可。就是这样。
/**
* Class ActionPlan
*
* @OA\Schema(
* description="Action Plans",
* title="Action Plan Schema",
* required={
* "id",
* "name",
* "organization_id",
* "assessment_period_id",
* "completed",
* "created_by",
* "updated_by"
* },
* @OA\Property(
* property="id",
* type="integer",
* format="int32",
* description="Action Plan ID"
* )
* )
*/