Cómo dar formato a la primavera RESTO Docs en el cuerpo de respuesta mockMvc

FreeOnGoo:

Escribo mi documentación de la API REST con muelle Docs.

Código de ejemplo:

@Override
public void getById(String urlTemplate, PathParametersSnippet pathParametersSnippet, Object... urlVariables) throws Exception {
    resultActions = mockMvc.perform(get(urlTemplate, urlVariables)
            .principal(principal)
            .contentType(APPLICATION_JSON))
            .andExpect(status().isOk())
            .andDo(print());

    // do..
}

Pero el problema es que el resultado de la prueba se responde en una sola línea. Y es muy difícil entender la estructura de los datos devueltos.

Respuesta ejemplo:

MockHttpServletResponse:
           Status = 200
    Error message = null
          Headers = {Content-Type=[application/json;charset=UTF-8]}
     Content type = application/json;charset=UTF-8
             Body = {"creator":null,"modifier":null,"modificationTime":null,"creationTime":null,"id":100,"deleted":false,"name":"Name","description":null,"report":[{"creator":"System","modifier":"System","modificationTime":"2019-01-30T14:21:50","creationTime":"2019-01-30T14:21:50","id":1,"name":"Form name","reportType":{"creator":"System","modifier":"System","modificationTime":"2019-01-30T14:21:50","creationTime":"2019-01-30T14:21:50","id":1,"deleted":false,"name":"Raport"},"unmodifiable":true}]}
    Forwarded URL = null
   Redirected URL = null
          Cookies = []

Además, genero la documentación de la respuesta recibida y en la documentación también sin formato JSON

¿Qué estoy haciendo mal? Cómo habilitar el formato de JSON?

Andy Wilkinson:

Si no está en condiciones de configurar la aplicación para producir respuestas muy impresos, puede tener descanso Docs lo haga por usted antes de que se está documentando. Esto se describe en la solicitudes y respuestas Personalización de la sección de la documentación:

Pre-procesamiento se configura llamando documento con una OperationRequestPreprocessor, y / o un OperationResponsePreprocessor. Los casos se pueden obtener usando la estática preprocessRequesty preprocessResponsemétodos en Preprocessors. Por ejemplo:

this.mockMvc.perform(get("/")).andExpect(status().isOk())
    .andDo(document("index", preprocessRequest(removeHeaders("Foo")), 
            preprocessResponse(prettyPrint()))); 

En el caso anterior la solicitud está siendo pre-procesada para eliminar una Foocabecera y la respuesta está siendo pre-procesada para que aparezca impreso bastante.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=199963&siteId=1
Recomendado
Clasificación