스팀 앱 개발기 #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
)
Sort:  
 2 years ago 

[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.

Upvoted! Thank you for supporting witness @jswit.

Coin Marketplace

STEEM 0.18
TRX 0.14
JST 0.029
BTC 57956.22
ETH 3126.99
USDT 1.00
SBD 2.45