Retrofit笔记 | 简析官方API文档(结合示例代码)

简介: Retrofit笔记 | 简析官方API文档(结合示例代码)
  • 其思想,类似于ListView、RecycleView的适配器(负责把布局和数据进行整合,然后渲染出来)
  • 创建一个Client交给它,它会帮我们去调用请求网络;默认使用OkHttpClient;

官方文档简阅

  • Retrofit会自动把返回数据转换成Call<List<Repo>><List<Repo>>位置类型的值;例如:
@GET("user/{id}")
    Call<User> getUserInfoWithPath(@Path("id") int user_id);

<List<Repo>>对应的位置类型就是User
所以上面这个Call方法 返回的就是一个User类型的实例
所以省去了我们用Gson解析的步骤:

private Api api;
---
User user = api.getUserInfoWithPath(1).execute().body();
  • Call<List<Repo>>随后的listRepos是方法名,

由开发者自定义,如以上实例代码中的getUserInfoWithPath()

  • 再往后是@Path("user")

这部分同注解("users/{user}/repos")中的{user}相对应,
指定的是通过什么字段去服务端Get

如示例代码中@GET("user/{id}")中的{id}就和@Path("id")相对应,
指定了方法getUserInfoWithPath()是通过id字段去服务端获取(GET)数据的,
例如User user = api.getUserInfoWithPath(1).execute().body();
聚焦getUserInfoWithPath(1)
就是到服务端查询到id字段是1User类数据,
查到之后就返回到客户端,
转化成一个id字段为1User类实例;
(也就是通过id字段去Get数据)

  • 再往后就是指定@Path("user")"user"数据类型了,

如以上String userint user_id

  • **定义完以上接口之后,

创建一个Retrofit类实例,
通过这个Retrofit实例创建一个方才定义的接口的代理实例

接口的代理实例编写语句类似于普通class的声明,
但是它事实上并不同于class声明那样子声明出一个实在的对象
而仅仅是一个接口代理对象(如下图的service)而已,
不是一个实实在在的接口对象
(我们知道接口一般是没有实例对象的)**


  • 接着通过方才创建出来的接口代理实例去调用Call<List<Repo>>随后的由开发者自定义的请求方法listRepos方法,

如以上实例代码中的getUserInfoWithPath()

即可:然后返回结果;

以上可以归结为三个步骤,示例代码如下:

//1. 定义对应 HTTP API的 Java接口
public interface Api {
    @GET("user/{id}")
    Call<User> getUserInfoWithPath(@Path("id") int user_id);
}

---
private Api api;

---
//2. 创建 Retrofit实例,通过该实例创建接口代理实例
      Retrofit retrofit = new Retrofit.Builder()
              .baseUrl("http://192.168.1.189:5000/")
              .addConverterFactory(GsonConverterFactory.create())
              .build();

      api = retrofit.create(Api.class);

---
//3. 通过接口代理实例调用自定义的请求方法,得到返回结果
User user = api.getUserInfoWithPath(1).execute().body();

其他API文档

  • 关于请求方法:
  • manipulation 操作,操控;
  • 把一个User实例转换成json形式进行提交(Post)
  • 表单(form)形式提交:
  • 多种类型数据提交:
  • 添加请求头部:
  • **Retrofit默认将HTTP bodies转化成OkHttpResponseBody

另外我们可以给Retrofit配置数据默认的转换框架
例如Gson(从这点看,Retrofit适配器):**





参考自 菜鸟窝

相关文章
|
1月前
|
数据可视化 Linux API
如何在Linux使用docker部署Swagger Editor并实现无公网IP远程协同编辑API文档
如何在Linux使用docker部署Swagger Editor并实现无公网IP远程协同编辑API文档
|
2月前
|
数据可视化 API 开发者
通俗易懂:一步步教你 Flask 项目自动生成 API 文档
Flasgger,作为一款强大的 Flask 扩展,自动从 Flask 应用中提取并生成 OpenAPI 规范文档,配备 SwaggerUI,为开发者提供了一条快捷通道,让 API 的文档编制和交互式测试变得简单易行。Flasgger 的设计原则是简化开发流程,通过与 Flask 框架的无缝整合,让开发者可以更专注于应用逻辑的构建。
|
2月前
|
API
Poi 中文API文档 「40种操作 Excel文件的姿势」
Poi 中文API文档 「40种操作 Excel文件的姿势」
117 0
|
3月前
|
JSON API 数据格式
您可以在钉钉开放平台的API文档中找到对应的API接口来创建审批实例
您可以在钉钉开放平台的API文档中找到对应的API接口来创建审批实例【1月更文挑战第20天】【1月更文挑战第96篇】
46 2
|
3月前
|
JSON API 数据格式
您可以在钉钉开放平台的API文档中找到对应的API接口来创建审批实例
您可以在钉钉开放平台的API文档中找到对应的API接口来创建审批实例【1月更文挑战第9天】【1月更文挑战第41篇】
130 2
|
3月前
|
数据可视化 Linux API
使用Docker安装部署Swagger Editor并远程访问编辑API文档
使用Docker安装部署Swagger Editor并远程访问编辑API文档
52 0
|
1月前
|
API 开发者
1688阿里巴巴中国站平台 API接口获取商品详情 接入文档说明
1688(阿里巴巴批发网)的API接入文档是专为开发者提供的,用于指导如何集成和使用1688平台提供的API接口。这些API接口可以帮助开发者实现各种功能,如商品搜索、订单管理、用户认证等。
|
1月前
|
数据采集 API 开发者
调用API接口获取小红书笔记详情数据(小红书怎么推广)
小红书平台对于其API的使用有严格的规定和限制,并且并非所有的功能和数据都通过公开API提供。关于获取小红书笔记详情的API,以下是一些建议和指导:
|
1月前
|
JSON 缓存 API
淘宝天猫获取sku详细信息 API 调用文档 及请求代码
淘宝天猫获取SKU详细信息的API调用通常涉及到商品信息的API接口。在淘宝开放平台或天猫开放平台上,你可以找到相关的API文档和调用示例。下面是一个简化的步骤和示例代码来展示如何调用这些API:
|
1月前
|
前端开发 BI API
钉钉多维表目前没有提供具体的API文档供开发者调用
【2月更文挑战第17天】钉钉多维表目前没有提供具体的API文档供开发者调用
36 4