gpt4 book ai didi

Android Retrofit 动态端点 URL

转载 作者:太空宇宙 更新时间:2023-11-03 11:10:24 24 4
gpt4 key购买 nike

有没有办法为改造库提供动态端点 url。我知道修改改造用于生成实现的接口(interface)将很困难或不可能,但还有其他方法吗。

例如,我可以动态更改“/users/{user}/repos”

public interface GitHubService {
@GET("/users/{user}/repos")
List<Repo> listRepos(@Path("user") String user);
}

我想这样做的原因是因为 api 设计者提供了一个 enpoint url 的映射,而客户坚持使用它们,这样当 api 发生变化时,我们就不需要发布应用程序的更新。

最佳答案

我什至不知道它是否会起作用,但我会尝试这样做:

listReposTemplateUrl() 返回当前 api 的模板,其中 {user} 被替换。然后将其替换为特定用户,并将替换后的 {user} 的整个 url 传递给 listRepos() 调用。

我的api接口(interface):

public interface MyApi {
@GET("/apiTemplates/listRepos")
String listReposTemplateUrl();

@GET("/{listReposUrl}")
List<Repo> listRepos(@Path("listReposUrl") String listReposUrl);
}

辅助类:

class TemplateUrlFiller {
public static String fillListRepos(String template, String user) {
return template.replace("{user}", user);
}
}

用法:

String user = "Bob";
String listReposTemplate = getMyApi().listReposTemplateUrl(); // "/users/{user}/repos" || "/giveMyRepos/{user}" || ...

List<Repo> = getMyApi().listRepos(TemplateUrlFiller.fillListRepos(listReposTemplate, user));

关于Android Retrofit 动态端点 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26110357/

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