@Test
public void getUsersTest() throws Exception{
...
testActions
.andDo(getMethodDocument("get-users",
List.of(queryParam("page","page 번호"),
queryParam("size","page 크기")),
List.of(responseField("data", JsonFieldType.ARRAY, "결과 데이터"),
responseField("data[].userId", JsonFieldType.NUMBER, "회원 식별자"),
responseField("data[].name",JsonFieldType.STRING, "회원 이름"),
responseField("data[].companyLocation", JsonFieldType.STRING, "회사 위치"),
responseField("data[].companyName", JsonFieldType.STRING, "회사 이름"),
responseField("data[].companyType", JsonFieldType.STRING, "회사 타입"),
responseField("pageInfo.page", JsonFieldType.NUMBER, "현재 페이지"),
responseField("pageInfo.size", JsonFieldType.NUMBER, "현재 페이지 크기"),
responseField("pageInfo.totalElements", JsonFieldType.NUMBER, "총 User 수"),
responseField("pageInfo.totalPages", JsonFieldType.NUMBER, "총 페이지 수"))));
}
public interface Document {
static RestDocumentationResultHandler getMethodDocument(String identifier,
List<ParameterDescriptor> queryParameters,
List<FieldDescriptor> responseFields){
return document(identifier,
ApiDocumentUtils.getRequestPreProcessor(),
ApiDocumentUtils.getResponsePreProcessor(),
requestParameters(queryParameters),
responseFields(responseFields));
}
static ParameterDescriptor queryParam(String name, String description){
return parameterWithName(name).description(description);
}
static FieldDescriptor responseField(String jsonPath, JsonFieldType type, String description){
return fieldWithPath(jsonPath).type(type).description(description);
}
}
Custom 이전의 get-users > request-parameters.adoc
Parameter | Description |
---|---|
page | page 번호 |
size | page 크기 |
src/test/resources/org/springframework/restdocs/templates
경로에 request-parameters.snippet 추가
// request-parameters.snippet
|===
|Parameter|Description|필수값
{{#parameters}}
|{{#tableCellContent}}`+{{name}}+`{{/tableCellContent}}
|{{#tableCellContent}}{{description}}{{/tableCellContent}}
|{{#tableCellContent}}{{^optional}}true{{/optional}}{{/tableCellContent}}
{{/parameters}}
|===
Custom 이후 get-users > request-parameters.adoc
좋은 정보 잘 보고 갑니다.
감사합니다.