1

次のようなオブジェクトを返す REST サービスのドキュメントを作成しています。

Map<String, HashMap<Long, String>>

そのようなオブジェクトの応答フィールドを記述する方法が見つかりません。

私のコードを見てみましょう。

サービス:

@RequestMapping(value = "/data", method = RequestMethod.GET)
public Map<String, HashMap<Long, String>> getData()
 {
Map<String, HashMap<Long, String>> list = dao.getData();
return list;
}

私の単体テストベースのドキュメント:

  @Test
  public void testData() throws Exception
  {
    TestUtils.beginTestLog(log, "testData");

    RestDocumentationResultHandler document = document(SNIPPET_NAME_PATTERN ,preprocessResponse(prettyPrint()));    
    document.snippets(
 //        ,responseFields(
 //            fieldWithPath("key").description("key description").type("String"),
 //            fieldWithPath("value").description("value as a Hashmap").type("String"),
 //            fieldWithPath("value.key").description("value.key description").type("String"),
 //            fieldWithPath("value.value").description("value.value description").type("String"),
 //        )

      String token = TestUtils.performLogin(mockMvc, "user", "password");

    mockMvc
    .perform(get(APP_BUILD_NAME + "/svc/data").contextPath(APP_BUILD_NAME)
        .header("TOKEN", token)
    )
    .andExpect(status().is(200))
    .andExpect(content().contentType("application/json;charset=UTF-8"))
    .andExpect(jsonPath("$").isMap())
    .andDo(document);

    TestUtils.endTestLog(log, "testData");
 }

ご覧のとおり、応答フィールドのコードはコメントアウトされています。これはまだ解決策がないためです。私はそれに取り組んでいますが、あなたの助けに本当に感謝しています. 前もって感謝します。

4

2 に答える 2

3
于 2016-05-25T12:12:18.600 に答える
0

次の 2 つのオプションがあります。

1> オブジェクトの MAP を LIST に変更して、応答フィールドを簡単に記述できるようにします。

2>index.adocファイルに手動で説明を入れます。

私の場合は、MAP に固執する必要があるため、オプション 2 を選択します。

于 2016-06-01T11:06:03.263 に答える