私はGraphQLを使い慣れていませんが、今はしばらくの間Retrofitを使用しており、使いやすく高速です。 GraphQLは、データをどのように渡すかに関して、残りの部分とは大きく異なります。 AndroidでGraphQLを使用するにあたって実際にあまり多くのチュートリアルはありませんが、このビデオ(https://www.youtube.com/watch?v=P0uJHI7GjIc&t=1s)しか見つかりませんでしたが、実際のコードはありません。私はそうのように設定されたエンドポイントを持つ改造コールの私の現在のコードでAndroidでGraphroQLをRetrofitで使用するには?
:
final RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint(endPoint)
.build();
T service = restAdapter.create(clazz);
それから私はこのようなRESTサービスを呼び出す:あなたが唯一持っているGraphQLで今
@GET("https://stackoverflow.com/users/{login}")
Observable<Github> getUser(@Path("login") String login);
をベースURLとサービスパスなし。あなたは= 1のuserIdのようなクエリを実行している場合にも、あなたは身体パラメータをポストとして送信する必要があります:
operationName: arbitrary name ,
query: "{users(userid:$userId){username}},
variables: "{"userId":1}"
は、私はちょうどこれがGraphQLため
のサポートは、 query'、 'operationName'、' variables'を指定して、JSONをサーバーに指定したRetrofitを指定されたGraphQL URLに配置します。私は、RetrofitがGraphQLのためにOkHttpとGsonを使用するだけでははるかに有益であると確信しています。 – CommonsWare
ここでは、改造のためにJSON本体を作成する方法を示します。http://stackoverflow.com/questions/21398598/how-to-post-raw-whole-json-in-the-body-of-a-retrofit-要求。しかし、Postのパスはどのようにすべきですか?すなわち、私はGraphqlサーバのベースURLしか持っていません。 – Mike6679
"しかし、Postのパスはどのようにすべきですか?" - GraphQLサーバには通常1つのエンドポイントしかありません。ですから、既に存在するベースURLを、特に '/ graphql'で終わるURLを使用してください。 – CommonsWare