当前位置: 首页 > news >正文

Retrofit+Hilt后端请求小项目1--项目介绍

简介

本项目根据 youtube 对应教程实现而来

将会对对应代码以及依赖(如 Hilt、retrofit、coil)进行详细的分析与解读,同时缕清项目结构安排

如文章有叙述不清晰的,请直接查看原教程:https://www.youtube.com/watch?v=bLIWWOMVxts


使用技术

Retrofit 基于 OkHttp 的网络请求库
Coil 图像处理库
Hilt 依赖注入库

Moshi 基于 retrofit 的对象类型转换库


项目结构

项目完整结构图:

com└─example│  CharacterApplication.kt│└─character│  MainActivity.kt│├─data│  ├─api│  │  │  ApiConstants.kt│  │  │  CharacterApi.kt│  │  ││  │  └─model│  │          Character.kt│  │          Wand.kt│  ││  └─repository│          CharacterRepo.kt│├─di│      CharacterApiModule.kt│└─ui├─home│      Home.kt│      HomeViewModel.kt│└─themeColor.ktShape.ktTheme.ktType.kt

在这里插入图片描述


完整代码调整

作者提供的 github 项目:https://github.com/Hoodlab/retrofit-mvvm-

请注意!由于接口地址变更,而作者目前没有对仓库进行更新,我们在导入项目后需要执行以下修改操作:


找到 ApiConstants.kt,修改 BASE_URL 的值为最新接口地址

object ApiConstants {const val BASE_URL = "https://hp-api.onrender.com/api/"const val END_POINTS = "characters"
}

找到 module/Wand.kt ,删除 length 一项

找到 module/Character.kt ,删除 dateOfBirth、yearOfBirth 两项

此时两个文件内容如下(可以直接复制粘贴):

// Wand.kt
@JsonClass(generateAdapter = true)
data class Wand(@Json(name = "core")val core: String,@Json(name = "wood")val wood: String
)// Character.kt
@JsonClass(generateAdapter = true)
data class Character(@Json(name = "actor")val actor: String,@Json(name = "alive")val alive: Boolean,@Json(name = "alternate_actors")val alternateActors: List<String>,@Json(name = "alternate_names")val alternateNames: List<String>,@Json(name = "ancestry")val ancestry: String,@Json(name = "eyeColour")val eyeColour: String,@Json(name = "gender")val gender: String,@Json(name = "hairColour")val hairColour: String,@Json(name = "hogwartsStaff")val hogwartsStaff: Boolean,@Json(name = "hogwartsStudent")val hogwartsStudent: Boolean,@Json(name = "house")val house: String,@Json(name = "id")val id: String,@Json(name = "image")val image: String,@Json(name = "name")val name: String,@Json(name = "patronus")val patronus: String,@Json(name = "species")val species: String,@Json(name = "wand")val wand: Wand,@Json(name = "wizard")val wizard: Boolean,
)

此时就可以直接构建了(不需要搭梯子即可访问后端接口)

http://www.lryc.cn/news/13725.html

相关文章:

  • 实际项目角度优化App性能
  • Structure|Alphafold2在肽结构预测任务上的基准实验
  • Simple XML
  • 在代码质量和工作效率的矛盾间如何取舍?
  • rabbitMq安装(小短文)--未完成
  • Python调用MMDetection实现AI抠图去背景
  • Java代码使用最小二乘法实现线性回归预测
  • linux-rockchip-音频相关
  • Android Handler的内存抖动以及子线程创建Handler
  • 机器学习算法原理之k近邻 / KNN
  • 【期末复习】例题说明Prim算法与Kruskal算法
  • AtCoder Beginner Contest 290 A-E F只会n^2
  • springMvc源码解析
  • 采用aar方式将react-native集成到已有安卓APP
  • Tomcat目录介绍,结构目录有哪些?哪些常用?
  • Elasticsearch也能“分库分表“,rollover实现自动分索引
  • 6 大经典机器学习数据集,3w+ 用户票选得出,建议收藏
  • Logview下载
  • macos 下载 macOS 系统安装程序及安装U盘制作方法
  • c++动态内存分布以及和C语言的比较
  • 软考高级信息系统项目管理师系列之三十一:项目变更管理
  • 【Vue3源码】第二章 effect功能的完善补充
  • CHAPTER 2 Web Server - apache(httpd)
  • 【Vagrant】下载安装与基本操作
  • 常用类(五)System类
  • Navicat Premium 安装 注册
  • 回溯算法总结
  • ccc-pytorch-基础操作(2)
  • 独居老人一键式报警器
  • 软考案例分析题精选