java - 如何与android的API接口?
问题描述
我构建了一个 android 应用程序并构建了一个相应的 node.js 后端来存储来自它的数据。我创建了一些 API 端点以及从 MongoDB 保存和检索数据的方法。
我了解如何从 java/android 发出 https 请求,但我不确定理想情况下应该如何设置和构建。为 api 相关的东西创建一个新包是最佳实践吗?例如,像这样的包:
API Package
Class containing GET requests
Class containing POST requests
这些类可能包含如下方法:
public static String getItem(int item_id) {
//HTTPS boiler plate
//HTTPS GET request and process data
return result;
还是最好创建一个类来处理和发出 HTTPS 请求,然后在一个单独的类中实现所有必需的 API 方法?
解决方案
有几个流行的库可供您查看,例如Retrofit或Android Volley。我建议你不要自己编写代码来向后端发出请求,因为解析 JSON 数据之类的事情不应该手动完成,因为随着项目的增长,一切都将难以管理。要构造代码,这取决于个人喜好。我个人使用 Retrofit,所以我将所有网络请求保存在一个接口中。例如:
interface APIs {
@GET("api/user")
Call<Users> getUsers();
@GET("api/comment")
Call<Comments> getComments();
@GET("api/photos")
Call<Photos> getPhotos();
}
但是,如果您想了解应该如何正确设置和构建事物,我建议您阅读Android 架构组件和Clean Code 架构,其中代码逻辑分开保存并以可管理的方式分组。
推荐阅读
- java - 400 错误请求。在 JMeter 中测试的 Java 中发送 HTTP POST 调用
- reactjs - 设置“选择文件”按钮的样式
- angular - 自动调整 mat-header-cell 中的输入宽度
- python - python中R的“制表”和“C”的等价物
- php - 为什么刀片指令仍然可见?
- vue.js - vue-chartjs 圆环图百分比显示
- docker - 当 Docker 共享文件夹抛出实例时它是如何工作的。我们是否应该考虑对一个文件抛出容器进行并发修改?
- ansible-galaxy - 使用 enix.mongodb Ansible Galaxy 角色安装特定的 MongoDB 版本
- python - 在 pytube 模块问题中解压的值太多
- analytics - 无法在自定义代码中的 Adobe Launch 中设置 list2