iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 4
0
自我挑戰組

30 天開發 Android App 的流水帳系列 第 4

Day 4:星戰人物 response 分析及單元測試撰寫(1/3)

Day 3 最後跟大家分享要來接星戰的 API,當然這個網站提供蠻多的,不過我想要先從人物開始分析 response 結構,接下來兩天分別是物件的實做,以及如何寫物件的 unit test 確保資料正確性

People (星戰人物資訊)

https://swapi.dev/documentation#people

https://ithelp.ithome.com.tw/upload/images/20200916/20130546BpjtT2zRRf.png
截圖是示意的 JSON 格式,可以看到人物描述:姓名、性別、出生年還有外觀等等。response 這邊有幾個有些不確定回傳的地方:

  • birth_year:不是西元紀年,應該是星戰自己的年曆,那是不是有需要轉成西元年顯示呢?
  • gender:現在多元性別存在著,而且星戰各星球有不同的種族,想必有些種族可能連性別設定都是模糊的。在這邊我先打了一個問號,也許需要做一些擴充或做檢查?
  • height:單位是公分嗎?若是是英吋的話,在物件那邊需要再開一個函式去計算英吋轉成公分的換算。
  • mass:單位是公斤還是磅?

在這些不確定的地方之下,/people底下提供了這些欄位的說明,這邊就截個圖示意:

https://ithelp.ithome.com.tw/upload/images/20200916/20130546HuGhsdx4Vq.png

  • birth_year:星戰自己的年曆,對應第 4 集時間點。
  • gender:有 Male, Female, unknown or n/a 那在做對應資料的時候需要定義 gender enum
  • height:預設單位是公分,那就不用做轉成公分了,直接顯示就可以
  • mass:kilograms,單位是公斤。不過 mass 我覺得這個欄位沒有那麼直覺,所以我在轉成物件的時候,會讓它轉成 weight 變數會更直覺些。

總結

  • gender 回傳值需要設計成 enum 解析
  • mass 在 Gson 解析的時候,需要給它一個指定的 weight 變數名稱
  • 有底線的欄位,在 Gson 解析時,變數命名需要改成駝峰,以符合我常用的命名習慣

以上這些分析結果,會讓明天在寫物件的時候輕鬆許多:)

大家明天見!


上一篇
Day 3:在 App 開發前怎麼挑選要使用的 Open Api?
下一篇
Day 5:星戰人物 response 分析及單元測試撰寫(2/3)
系列文
30 天開發 Android App 的流水帳32

尚未有邦友留言

立即登入留言