스팀 앱 개발기 #60 - bridge.get_ranked_posts API의 응답 자료를 맡을 데이터 클래스 정의
시작하며...
오늘은 bridge.get_ranked_posts API의 응답 자료를 맡을 데이터 클래스를 정의해 봅니다. 파라메터 클래스까지 정의하고 싶었지만, 시간이 얼마 남지 않았네요.
응답 데이터 클래스 RankedPostsResponse
최상위에 속하는 응답 클래스는 아래와 같습니다. 이 자체로는 간단하지만, 그 안에 속한 PostItemDTO 클래스가 복잡한 녀석입니다.
data class RankedPostsResponse(
val jsonrpc: String = "2.0",
val result: List<PostItemDTO>
)
PostItemDTO 데이터 클래스
포스트 항목의 내용을 담당하는 데이터 클래스입니다.
data class PostItemDTO(
val post_id: String?,
val author: String?,
val permlink: String?,
val category: String?,
val title: String?,
val body: String?,
val json_metadata: JSONMetadataDTO,
val created: String,
val updated: String,
val depth: Int,
val children: Int,
val net_shares: Int,
val is_payout: Boolean,
val payout_at: String,
val payout: Float,
val pending_payout_value: String,
val author_payout_value: String,
val curator_payout_value: String,
val promoted: String,
val replies: List<Any>, // it is empty list
val active_votes: List<ActiveVoteDTO>,
val author_reputation: Float,
val stats: PostStatsDTO,
val beneficiaries: List<PostBeneficiaryDTO>,
val max_accepted_payout: String,
val percent_steem_dollars: Int,
val url: String,
val blacklists: List<String>,
val community: String,
val community_title: String,
val author_role: String,
val author_title: String
)
이 클래스의 필드들 중에는 추가적으로 정의한 데이터 클래스들이 있습니다.
JSONMetadataDTO 클래스
data class JSONMetadataDTO(
val tags: List<String>,
val app: String
)
ActiveVoteDTO 클래스
data class ActiveVoteDTO(
val voter: String,
val rshares: String
)
PostStatsDTO 데이터 클래스
data class PostStatsDTO(
val hide: Boolean,
val gray: Boolean,
val total_votes: Int,
val flag_weight: Float
)
PostBeneficiaryDTO 데이터 클래스
data class PostBeneficiaryDTO(
val account: String,
val weight: Int
)
[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.
Upvoted! Thank you for supporting witness @jswit.