GraphQL Flashcards

1
Q

Jak stworzyć schemat?

A

Klasa, która dziedziczy po Schema. W konstruktorze wstrzykujemy IDependencyResolver i uruchamiamy konstruktor z nadklasy przekazując wstrzyknięty obiekt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Do czego służy klasa dziedzicząca po Schema?

A

Służy do rozwiązywania Query, Mutation lub Subscription

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Jaka jest cecha właściwości schematu?

A

Wszystkie muszą implementować IObjectGraphType

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Czy GraphQL może zwracać bezpośrednio nasze modele?

A

Nie, zwraca typy implementujące IObjectGraphType

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

W jaki sposób implementujemy obiekty dostępne poprzez GraphQL?

A

Dla każdej klasy modelu tworzymy klasę o nazwie NazwaKlasyType, która dziedziczy po ObjectGraphType. Najlepiej wewnątrz fodleru GraphQLTypes

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

W jaki sposób definiujemy zapytania?

A

Najlepiej wewnątrz folderu GraphQLQueries. Przykład definicji:

public class AppQuery : ObjectGraphType
{
    public AppQuery(IOwnerRepository repository)
    {
        Field>(
           "owners",
           resolve: context => repository.GetAll()
       );
    }
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Co powinno wejść w skład rozwiązania GraphQL?

A
  1. Framework Web’owy i obsługa protokołu HTTP
  2. ORM do pracy z bazą danych
  3. Implementacja protokołu GraphQL w danym języku programowania
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Jak dodać seedowanie danych w .NET Core?

A

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();

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Kiedy wbudowane DI będzie samo wywoływać metodę Dispose?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Co to jest GraphQL?

A

To serwerowy język zapytań

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

W jaki sposób definiujemy GraphQL?

A

Specyfikujemy typy i pola tych typów. Następnie specyfikujemy funkcje dostępne na danych typach.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

W jaki sposób możemy budować API wykorzystująca GraphQL?

A

Używając podejścia SchemaFirst lub CodeFirst (GraphType first).
Schema first nie wspiera wszystkich scenariuszy

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Jakiego rodzaju operacje możemy wykonać na api wykorystujące GraphQL?

A

Zapytania i mutacje (queries and mutations)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Jaka metodą można Scaffold’ować bazę danych?

A

Scaffold-DbContext “ConString” -Provider Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models

How well did you know this?
1
Not at all
2
3
4
5
Perfectly