在 Swagger 属性 (OAS3) 中设置带有 id 的数组示例

Set example of array with ids in Swagger Property (OAS3)

我试图在 swagger (OAS3) 中指定以下 requestBody:

{
  "first_name": "John",
  "last_name": "Doe",
  "email": "user@example.com",
  "interest_ids": [
     1,2
  ]
}

我目前指定的requestBody如下:

 *     @OA\RequestBody(
 *          required=true,
 *          @OA\JsonContent(
 *              required={"email"},
 *              @OA\Property(property="first_name", type="string", format="string", example="John"),
 *              @OA\Property(property="last_name", type="string", format="string", example="Doe"),
 *              @OA\Property(property="email", type="string", format="email", example="user@example.com"),
 *              @OA\Property(property="interest_ids", type="array", @OA\Items(
 *                      type="integer",
 *                      example=3
 *                  ),
 *              ),
 *          ),
 *     ),

这给了我一个正确的 requestBody,但是这显然只给了我一个值为 3 的键作为 interest_ids 数组的示例值。如何在不将类型设置为字符串的情况下指定多个 ID?我尝试了多种解决方案,例如将示例设置为 example={1,2},不幸的是,这给了我 interest_ids 数组中的另一个数组:

{
  "first_name": "John",
  "last_name": "Doe",
  "email": "user@example.com",
  "interest_ids": [
    [
      1,
      2
    ]
  ]
}

我也试过将 属性 类型的 collectionFormat 设置为不同的值,但这也没有帮助。

您是否尝试将示例从 @OA\Items 移至 属性?

现在的例子是数组的单个值的例子

我想你想要的是 interest_ids 本身的例子。

 *       @OA\Property(property="interest_ids", type="array",
 *         example={3, 4},
 *         @OA\Items(
 *           type="integer"
 *         )
 *       )