我是新手使用GraphQL,但我已经使用Retrofit有一段时间了,它易于使用和快速。在传递数据方面,GraphQL与rest API有很大的不同。目前关于在Android中使用GraphQL并没有太多教程,我只能找到这个视频(https://www.youtube.com/watch?v=P0uJHI7GjIc&t=1s),但里面没有实际代码。
在我的当前Retrofit调用代码中,我设置了一个端点,如下所示:
然后我像这样调用一个REST服务:
在我的当前Retrofit调用代码中,我设置了一个端点,如下所示:
final RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint(endPoint)
.build();
T service = restAdapter.create(clazz);
然后我像这样调用一个REST服务:
@GET("/users/{login}")
Observable<Github> getUser(@Path("login") String login);
现在使用GraphQL时,您只需要一个基本URL而无需服务路径。此外,如果您查询像userId = 1这样的内容,则必须将其作为Post与Body参数一起发送:
operationName: arbitrary name ,
query: "{users(userid:$userId){username}},
variables: "{"userId":1}"
我不确定这如何转换为Retrofit
query
、operationName
和variables
的JSON主体,然后安排Retrofit将该JSON POST到服务器,到其指定的GraphQL URL。我不确定相对于仅使用OkHttp和Gson来处理GraphQL,Retrofit是否会带来太多好处。 - CommonsWare