Jestem nowym użytkownikiem GraphQL, ale od pewnego czasu używam Retrofit, a jego obsługa jest prosta i szybka. GraphQL znacznie różni się od reis apis pod względem sposobu przekazywania danych. Naprawdę nie ma zbyt wielu tutoriali na temat korzystania z GraphQL na Androida, mogłem tylko znaleźć ten film (https://www.youtube.com/watch?v=P0uJHI7GjIc&t=1s), ale tam nie ma prawdziwego kodu.Jak korzystać z GraphQL z Retrofit na Androida?
W moim bieżącego kodu dla połączeń modernizacji Mam końcowy mam ustawione tak:
final RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint(endPoint)
.build();
T service = restAdapter.create(clazz);
Potem zadzwonić usługę reszta tak:
@GET("https://stackoverflow.com/users/{login}")
Observable<Github> getUser(@Path("login") String login);
Teraz GraphQL masz tylko podstawowy adres URL i brak ścieżki usług. Również jeśli zapytań jak userid = 1 następnie trzeba wysłać jako post z parametrami ciele:
operationName: arbitrary name ,
query: "{users(userid:$userId){username}},
variables: "{"userId":1}"
prostu nie jestem pewien, jak to przekłada się Retrofit
trzeba by stworzyć ciało JSON zawierającego plik ' query', 'operationName' i' variables', a następnie ustawić Retrofit na POST, że JSON na serwer, do wyznaczonego adresu URL GraphQL. Nie jestem przekonany, że Retrofit przyniesie wiele korzyści, jeśli po prostu wykorzystamy OkHttp i Gson dla GraphQL. – CommonsWare
Ok Widzę tutaj, jak utworzyć ciało JSON do modernizacji: http://stackoverflow.com/questions/21398598/how-to-post-raw-whole-json-in-the-body-a-retrofit- żądanie. Ale jaka powinna być ścieżka Post? tj. mam tylko bazowy URL dla mojego serwera Graphql. – Mike6679
"Ale jaka powinna być ścieżka Post" - serwer GraphQL ma zwykle tylko jeden punkt końcowy. Tak więc użyj podstawowego adresu URL, który już masz, szczególnie jeśli kończy się na '/ graphql'. – CommonsWare