如何在swagger中提供一个对象定义的示例,该对象定义包含一个数组作为其属性之一

3npbholx  于 2024-01-08  发布在  其他
关注(0)|答案(1)|浏览(309)

参考下面的例子,我想在其定义中提供一个NamedElementArray的例子。这需要为elements属性显示一个NamedElement数组的例子。
我怎么做呢?我在swagger规范中找不到如何做的细节。

  1. swagger: '2.0'
  2. info:
  3. version: "0.0.0"
  4. title: Example
  5. definitions:
  6. Identifier:
  7. type: string
  8. format: uuid
  9. NamedElement:
  10. type: object
  11. properties:
  12. name:
  13. type: string
  14. identifier:
  15. $ref: "#/definitions/Identifier"
  16. required:
  17. - name
  18. - identifier
  19. example:
  20. name: Identifier1
  21. identifier: ab804529-11d0-4781-a49a-3bbbc40243df
  22. NamedElementArray:
  23. type: object
  24. properties:
  25. name:
  26. type: string
  27. elements:
  28. type: array
  29. minLength: 0
  30. items:
  31. $ref: "#/definitions/NamedElement"
  32. required:
  33. - name
  34. - elements
  35. example:
  36. name: Fred
  37. elements:
  38. paths:
  39. /elements/{name}:
  40. get:
  41. description: |
  42. Gets `NamedElement` objects, based on the **name** query param.
  43. parameters:
  44. -
  45. name: name
  46. in: path
  47. description: Name of element array to return
  48. required: true
  49. type: string
  50. responses:
  51. 200:
  52. description: Returns a named element array
  53. schema:
  54. $ref: "#/definitions/NamedElementArray"
  55. default:
  56. description: Return nothing

字符串

cs7cruho

cs7cruho1#

你必须在 * 高级 * 示例和 * 低级 * 示例之间进行选择。在Swagger UI中,高级示例在本地示例之前。

您可以在每个属性上定义一个示例(低级别):

  1. Identifier:
  2. type: string
  3. format: uuid
  4. example: Local UUID example
  5. NamedElement:
  6. type: object
  7. properties:
  8. name:
  9. type: string
  10. example: Local identifier example
  11. identifier:
  12. $ref: "#/definitions/Identifier"
  13. required:
  14. - name
  15. - identifier
  16. NamedElementArray:
  17. type: object
  18. properties:
  19. name:
  20. type: string
  21. example: Local name example
  22. elements:
  23. type: array
  24. minLength: 0
  25. items:
  26. $ref: "#/definitions/NamedElement"
  27. required:
  28. - name
  29. - elements

字符串
在这种情况下,Swagger UI中的示例如下所示:

  1. {
  2. "name": "Local name example",
  3. "elements": [
  4. {
  5. "name": "Local identifier example",
  6. "identifier": "Local UUID example"
  7. }
  8. ]
  9. }


但是你也可以给予一个完整的高层次的例子,就像你在NamedElement上的例子一样:

  1. NamedElementArray:
  2. type: object
  3. properties:
  4. name:
  5. type: string
  6. elements:
  7. type: array
  8. minLength: 0
  9. items:
  10. $ref: "#/definitions/NamedElement"
  11. required:
  12. - name
  13. - elements
  14. example:
  15. name: Fred
  16. elements:
  17. - name: Identifier1
  18. identifier: ab804529-11d0-4781-a49a-3bbbc40243df
  19. - name: Identifier2
  20. identifier: zzz4529-11d0-4781-a49a-3bbbc40243df


在这种情况下,Swagger UI中的示例如下所示:

  1. {
  2. "name": "Fred",
  3. "elements": [
  4. {
  5. "name": "Identifier1",
  6. "identifier": "ab804529-11d0-4781-a49a-3bbbc40243df"
  7. },
  8. {
  9. "name": "Identifier2",
  10. "identifier": "zzz4529-11d0-4781-a49a-3bbbc40243df"
  11. }
  12. ]
  13. }

展开查看全部

相关问题