GraphQL Flashcards
Jak stworzyć schemat?
Klasa, która dziedziczy po Schema. W konstruktorze wstrzykujemy IDependencyResolver i uruchamiamy konstruktor z nadklasy przekazując wstrzyknięty obiekt.
Do czego służy klasa dziedzicząca po Schema?
Służy do rozwiązywania Query, Mutation lub Subscription
Jaka jest cecha właściwości schematu?
Wszystkie muszą implementować IObjectGraphType
Czy GraphQL może zwracać bezpośrednio nasze modele?
Nie, zwraca typy implementujące IObjectGraphType
W jaki sposób implementujemy obiekty dostępne poprzez GraphQL?
Dla każdej klasy modelu tworzymy klasę o nazwie NazwaKlasyType, która dziedziczy po ObjectGraphType. Najlepiej wewnątrz fodleru GraphQLTypes
W jaki sposób definiujemy zapytania?
Najlepiej wewnątrz folderu GraphQLQueries. Przykład definicji:
public class AppQuery : ObjectGraphType { public AppQuery(IOwnerRepository repository) { Field>( "owners", resolve: context => repository.GetAll() ); } }
Co powinno wejść w skład rozwiązania GraphQL?
- Framework Web’owy i obsługa protokołu HTTP
- ORM do pracy z bazą danych
- Implementacja protokołu GraphQL w danym języku programowania
Jak dodać seedowanie danych w .NET Core?
W metodzie Main.
1) Wykorzystuje instancję IWebHost.
2) Pobieramy z niej kolekcje serwisów - host.Services.CreateScope() - metoda rozszerzeń z Microsoft.Extensions.DependencyInjection - IServiceScope
3) Z serviceScope pobieramy .ServiceProvider.GetRequiredService();
Kiedy wbudowane DI będzie samo wywoływać metodę Dispose?
Kiedy DI będzie samo tworzyło nowe instancje obiektów.
1) services.AddScoped();
services. AddSingleton();
services. AddSingleton(sp => new SomeServiceImplementation());
2) W poniższych przypadkach nie będzie:
services. AddSingleton(new Service3());
services. AddSingleton(new Service3());
Kontener zależności musi sam tworzyć nowe instancje obiektów.
Co to jest GraphQL?
To serwerowy język zapytań
W jaki sposób definiujemy GraphQL?
Specyfikujemy typy i pola tych typów. Następnie specyfikujemy funkcje dostępne na danych typach.
W jaki sposób możemy budować API wykorzystująca GraphQL?
Używając podejścia SchemaFirst lub CodeFirst (GraphType first).
Schema first nie wspiera wszystkich scenariuszy
Jakiego rodzaju operacje możemy wykonać na api wykorystujące GraphQL?
Zapytania i mutacje (queries and mutations)
Jaka metodą można Scaffold’ować bazę danych?
Scaffold-DbContext “ConString” -Provider Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models