gpt4 book ai didi

java - 在 Retrofit 中,为什么每个接口(interface)使用一种方法

转载 作者:行者123 更新时间:2023-12-02 03:16:16 26 4
gpt4 key购买 nike

我是 Android 和 REST 客户端的新手。我正在使用 Retrofit 构建一个应用程序来与 API 进行通信。

许多教程都说最佳实践是每个接口(interface)声明 1 个方法(如此多的方法意味着许多接口(interface))。

示例:如果我想要 2 个方法,一个 GET 和一个 POST。我需要两个接口(interface):

public interface GetService {
@GET("/abc/xyz")
Call <ABC> getService();
}

public interface PostService {
@POST("/abc/def")
Call<XYZ> postServer(@Body XYZ content);
}

在 main_activity 中我需要调用

//call get
GetService get = ServiceGenerator.createService(GetService.class);
ABC call1 = get.getService();
//call post
PostService post = ServiceGenerator.createService(PostService.class);
XYZ call2 = post.postService();

为什么我不能只有一个这样的界面:

public interface APIInterface {
@GET("/abc/xyz")
Call <ABC> getService();

@POST("/abc/def")
Call<XYZ> postServer(@Body XYZ content);
}

在Main_Activity中,我只需要执行以下操作:

APIInterface api = ServiceGenerator.createService(APIInterface.class);
ABC call1 = api.getService();
XYZ call2 = api.postServer();

最佳答案

您不必遵循每个接口(interface)一个服务的“良好实践”。如果您为每个业务部分使用一个界面,如下所示,那就没问题。

public interface ProductRestService {
@GET("/product/****")
Call <Product> getProduct(long id);

@PUT("/product/****")
Call <Product> update(long id, @Body Product product);

@POST("/product/****")
Call <Product> create(@Body Product product);

@DELETE("/product/****")
Call <Void> deleteProduct(long id);
}

目标只是避免与所有应用程序服务建立接口(interface)

关于java - 在 Retrofit 中,为什么每个接口(interface)使用一种方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40246378/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com