네. 맞습니다.
참고로 님의 예제에서 API의 응답값에는 데이터를 바꿀 수 없도록 final이나 immutable type을 사용하는게 일반적입니다.
data class ImageSearchResponse (
@SerializedName("documents") val documents: List<Document>,
@SerializedName("meta") val meta: Meta
)
data class Document(
@SerializedName("collection") val collection: String,
@SerializedName("thumbnail_url") val thumbnailUrl: String,
@SerializedName("image_url") val imageUrl: String,
@SerializedName("width") val width: Int,
@SerializedName("height") val height: Int,
@SerializedName("display_sitename") val displaySiteName:String,
@SerializedName("doc_url") val docUrl: String,
@SerializedName("datetime") val datetime: String
)
data class Meta(
@SerializedName("total_count") val totalCount: Int,
@SerializedName("pageable_count") val pageableCount: Int,
@SerializedName("is_end") val isEnd: Boolean
)
var 대신 val, ArrayList대신 List를 사용하는게 더 좋습니다. 그리고 Gson의 경우 @SearializedName을 사용하면 API 응답 필드명과 클래스 프로퍼티 명을 다르게 줄 수 있습니다.
그리고 안드로이드 스튜디오 플러그인에서 JSON 을 검색하셔서 하나 설치하시면 JSON을 코틀린 데이터 클래스로 만들어주는 작업을 대신할 수 있습니다.