【问题标题】:Spring rest docs nested objectSpring rest docs 嵌套对象
【发布时间】:2016-09-28 23:30:19
【问题描述】:

我们需要以以下形式对呼叫做出响应:

{
  "3" : {
    "id" : "3",
    "parent" : "1",
    "title" : "Folder 2",
    "folder" : true
  },
  "4" : {
    "id" : "4",
    "parent" : "2",
    "title" : "Folder 1.1",
    "folder" : true
  },
  "doc:3" : {
    "parent" : "3",
    "title" : "Document 3",
    "folder" : false
  },
  "doc:2" : {
    "parent" : "2",
    "title" : "Document 2",
    "folder" : false
  },
  "doc:1" : {
    "parent" : "3",
    "title" : "Document 1",
    "folder" : false
  }
}

我应该如何记录它?问题是该对象是以 EntryId 作为键的结构,并且在其文档时不包含 id。有没有可以使用变量来定义键的选项?或者推荐在 responseFields 中使用什么?

【问题讨论】:

标签: spring-restdocs


【解决方案1】:

我遇到了 Andy Wilkinson 在 cmets 中指出的相同问题,我没有在 ascii.doc 中对其进行硬编码,而是这样做了:

  ,relaxedResponseFields(
     fieldWithPath("key").description(getMessage(MessageProperties.TRANSLATION_RESOURCE_MAP_KEY)).type(MessageProperties.TYPE_STRING).optional(),
     fieldWithPath("value").description(getMessage(MessageProperties.TRANSLATION_RESOURCE_MAP_KEY_VALUE)).type(MessageProperties.TYPE_MAP).optional(),
     fieldWithPath("value[].key").description(getMessage(MessageProperties.TRANSLATION_RESOURCE_MAP_KEY_VALUE_KEY)).type(MessageProperties.TYPE_LONG).optional(),
     fieldWithPath("value[].value").description(getMessage(MessageProperties.TRANSLATION_RESOURCE_MAP_KEY_VALUE_KEY_VALUE)).type(MessageProperties.TYPE_STRING).optional()
  )

查看How to document response fields for an object as Map(HashMap) 以获取有关问题的更多信息以及它是否真的喜欢你的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-06
    • 2015-05-31
    • 2018-03-10
    • 1970-01-01
    • 2015-07-31
    • 1970-01-01
    • 1970-01-01
    • 2014-05-21
    相关资源
    最近更新 更多