Skip to content

Commit

Permalink
1.0.7 release
Browse files Browse the repository at this point in the history
  • Loading branch information
goyounha11 committed Jul 24, 2024
1 parent b8f1ea4 commit 0b64467
Show file tree
Hide file tree
Showing 5 changed files with 126 additions and 13 deletions.
2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ plugins {
}

group = "io.github.goyounha11"
version = "1.0.3"
version = "1.0.7"

apply(from = "${rootDir}/scripts/publish-maven.gradle")
apply(from = "publish.gradle")
Expand Down
2 changes: 1 addition & 1 deletion publish.gradle
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
ext {
PUBLISH_GROUP_ID = 'io.github.goyounha11'
PUBLISH_VERSION = '1.0.3'
PUBLISH_VERSION = '1.0.7'
PUBLISH_ARTIFACT_ID = 'automatedAPIDocsUtil'
PUBLISH_DESCRIPTION = 'restdocs simple create util'
PUBLISH_URL = 'https://github.com/goyounha11/automatedAPIDocsUtil'
Expand Down
5 changes: 5 additions & 0 deletions src/main/kotlin/com/goyounha11/api/UserApi.kt
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,11 @@ class UserApi {
));
}

@GetMapping("/{id}")
fun getUser(@PathVariable id: Long): ApiResult<Unit> {
return Result.ok()
}

@GetMapping
fun getUser(): ApiResult<PageImpl<UserCreateData>> {
val users = MutableList(10) { i ->
Expand Down
97 changes: 93 additions & 4 deletions src/main/kotlin/com/goyounha11/docs/DocsUtil.kt
Original file line number Diff line number Diff line change
Expand Up @@ -58,15 +58,16 @@ object DocsUtil {

resourceSnippetParametersBuilder.apply {
requestClazz?.let { schema ->
requestSchema(Schema(schema.simpleName))
requestSchema(Schema(schema.canonicalName))
}

responseClazz?.let { schema ->
responseSchema(Schema(schema.simpleName))
responseSchema(Schema(schema.canonicalName))
}
}

val requestParameter = parameterDescriptor.ifEmpty { createParameters(request, ParameterType.QUERY) }
val requestParameter =
parameterDescriptor.ifEmpty { createParameters(request, ParameterType.QUERY) }
val requestPathParameter = createParameters(request, ParameterType.PATH)

resourceSnippetParametersBuilder.requestFields(requestFieldDescriptors)
Expand Down Expand Up @@ -110,7 +111,8 @@ object DocsUtil {
when {
value.isObject -> {
val childIsInDataField = isInDataField || key == "data"
var childClass = if (childIsInDataField) clazz else property?.returnType?.jvmErasure
var childClass =
if (childIsInDataField) clazz else property?.returnType?.jvmErasure

if (path.startsWith("data.")) childClass = property?.returnType?.jvmErasure

Expand Down Expand Up @@ -277,4 +279,91 @@ object DocsUtil {
private fun isRequired(annotations: Array<Annotation>): Boolean {
return annotations.any { it.annotationClass == NotNull::class || it.annotationClass == NotBlank::class }
}

/**
* 오버로딩 for java
* response, request class가 없는 경우
* queryparameter가 없는 경우
*/
@JvmStatic
fun createDocs(
tag: String,
identifier: String,
description: String,
resultActions: ResultActions
): RestDocumentationResultHandler {
return createDocs(tag, identifier, description, resultActions, emptyList(), null, null);
}

/**
* 오버로딩 for java
* queryparameter가 없는 경우
*/
@JvmStatic
fun createDocs(
tag: String,
identifier: String,
description: String,
resultActions: ResultActions,
requestClazz: Class<*>? = null,
responseClazz: Class<*>? = null
): RestDocumentationResultHandler {
return createDocs(
tag,
identifier,
description,
resultActions,
parameterDescriptor = emptyList(),
requestClazz = requestClazz,
responseClazz = responseClazz
)
}

/**
* 오버로딩 for java
* request class가 없는 경우
*/
@JvmStatic
fun createDocs(
tag: String,
identifier: String,
description: String,
resultActions: ResultActions,
parameterDescriptor: List<ParameterDescriptorWithType>,
responseClazz: Class<*>? = null
): RestDocumentationResultHandler {
return createDocs(
tag,
identifier,
description,
resultActions,
parameterDescriptor = parameterDescriptor,
requestClazz = null,
responseClazz = responseClazz
)
}

/**
* 오버로딩 for java
* request class가 없는 경우
* queryparameter가 없는 경우
*/
@JvmStatic
fun createDocs(
tag: String,
identifier: String,
description: String,
resultActions: ResultActions,
responseClazz: Class<*>? = null
): RestDocumentationResultHandler {
return createDocs(
tag,
identifier,
description,
resultActions,
parameterDescriptor = emptyList(),
requestClazz = null,
responseClazz = responseClazz
)
}
}
33 changes: 26 additions & 7 deletions src/test/kotlin/com/goyounha11/api/UserApiTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -36,16 +36,23 @@ internal class UserApiTest {
private lateinit var mockMvc: MockMvc

@BeforeEach
fun setUp(webApplicationContext: WebApplicationContext, restDocumentation: RestDocumentationContextProvider) {
fun setUp(
webApplicationContext: WebApplicationContext,
restDocumentation: RestDocumentationContextProvider
) {
this.mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext)
.addFilter<DefaultMockMvcBuilder>(CharacterEncodingFilter("UTF-8", true))
.apply<DefaultMockMvcBuilder>(MockMvcRestDocumentation.documentationConfiguration(restDocumentation))
.apply<DefaultMockMvcBuilder>(
MockMvcRestDocumentation.documentationConfiguration(
restDocumentation
)
)
.build()
}

@Test
fun `회원 가입`() {
val req = UserCreateRequest("test@test.com", Gender.MALE,"1234", "테스터")
val req = UserCreateRequest("test@test.com", Gender.MALE, "1234", "테스터")

val resultAction = mockMvc.perform(
post("/user")
Expand Down Expand Up @@ -75,8 +82,22 @@ internal class UserApiTest {
resultAction,
requestClazz = UserCreateRequest::class.java,
responseClazz = UserCreateData::class.java
// "UserCreateRequest",
// "UserCreateData"
)
)
}

@Test
fun `유저 단건 조회 성공`() {
val resultAction = mockMvc.perform(
get("/user/{id}", 1)
)

resultAction.andDo(
DocsUtil.createDocs(
"User",
"{methodname}",
"유저 단건 조회 API",
resultAction
)
)
}
Expand All @@ -95,8 +116,6 @@ internal class UserApiTest {
resultAction,
requestClazz = null,
responseClazz = UserCreateData::class.java
// "UserCreateRequest",
// "UserCreateData"
)
)

Expand Down

0 comments on commit 0b64467

Please sign in to comment.