gpt4 book ai didi

php - Swagger PHP - 如何定义嵌套属性?

转载 作者:可可西里 更新时间:2023-11-01 13:10:03 24 4
gpt4 key购买 nike

我使用的是 Swagger PHP,并且大多数定义都很容易定义,但我遇到了一个特定数据片段的问题,该数据片段不是单独类的一部分,而是关联数组的一部分。

我希望显示的 json 响应(针对这个问题进行了简化):

{
"id": 1,
"status": "published",
"gps": {
"lat": "0.00000000",
"lng": "0.00000000"
}

idstatus 很容易定义,但是 gps 是个问题,因为没有单独的类来定义它,它是模型内部的一个数组。是否可以在不必创建虚拟类的情况下定义此数组?

目前模型文件中的注释:

/**
* @SWG\Definition(@SWG\Xml(name="Event"))
*/
class Event extends BaseModel {
/**
* @SWG\Property(
* property="id",
* type="integer",
* example="103"
* )
* @SWG\Property(
* property="status",
* type="string",
* enum={"published", "draft", "suspended"}
* example="published"
* )
*/

}

最佳答案

遇到了完全相同的问题,今天解决了!

This is for Swagger 2.0

下面是我用来实现嵌套参数的注解嵌套..

/**
* @SWG\Post(
* path="/getCustomerByEmail.php",
* summary="List the details of customer by the email.",
* consumes={"string"},
* produces={"application/json"},
* @SWG\Parameter(
* name="email",
* in="body",
* description="Customer email to ge the data",
* required=true,
* @SWG\Schema(
* @SWG\Property(
* property="id",
* type="object",
* @SWG\Property(
* property="abc",
* type="object",
* @SWG\Property(
* property="inner abc",
* type="number",
* default=1,
* example=123
* )
* ),
* @SWG\Property(
* property="xyz",
* type="string",
* default="xyz default value",
* example="xyz example value",
* )
* )
* )
* ),
* @SWG\Response(
* response=200,
* description="Details of the customer"
* ),
* @SWG\Response(
* response=400,
* description="Email required"
* ),
* @SWG\Response(
* response=404,
* description="Customer does not exist"
* ),
* @SWG\Response(
* response="default",
* description="an ""unexpected"" error"
* )
* )
*/
/**

The output is as below

Note: I was working on a project which required raw PHP but still wanted to use Swagger. So instead of creating the models, I used this technique to make the nested parameters.


编辑 1:我不知道出了什么问题,UI 符合预期,但在发出请求时,帖子或负载中没有数据。

编辑 2:转换 Get 到 Post。适用于 file_get_contents("php://input")

关于php - Swagger PHP - 如何定义嵌套属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37342495/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com