Udostępnij za pośrednictwem


Zarządzanie relacjami w interfejsie API sieci szkieletowej dla języka GraphQL

Jedną z najbardziej zaawansowanych funkcji w narzędziu GraphQL jest możliwość ustanawiania relacji między typami, w tym obsługi relacji jeden do jednego (1:1), jeden do wielu (1:N) i relacji wiele do wielu (M:N).

Tworzenie nowej relacji jeden do jednego (1:1)

  1. W okienku Eksplorator schematu wybierz wielokropek obok typu i wybierz opcję Zarządzaj relacjami . Zostanie wyświetlony ekran Zarządzanie relacjami .

    Zrzut ekranu przedstawiający ekran Zarządzanie relacjami, na którym ma być wybrana opcja Nowa relacja.

  2. Wybierz Nowa relacja. W tym przykładzie utworzymy nową relację jeden do jednego między typem Product a typem ProductModel na podstawie pola ProductModelID, które istnieje w obu typach. Wybieramy opcję Jeden do jednego dla opcji Kardynalność, wybieramy typy Od i Do, a następnie wybieramy pola Od i Do dla tej relacji.

    Zrzut ekranu przedstawiający ekran Nowa relacja z przykładami wyboru pięciu wymaganych pól.

    Uwaga

    Możesz wybrać wiele pól w selektorach pól Od i Do. Ta funkcja umożliwia tworzenie relacji składających się na wiele pól.

  3. Wybierz pozycję Utwórz relację. Lista relacji zawiera teraz nowo utworzoną relację.

    Zrzut ekranu przedstawiający ekran Zarządzanie relacjami przedstawiający nowo utworzoną relację na liście.

  4. Wybierz ikonę X w prawym górnym rogu, aby zamknąć ekran Zarządzanie relacjami .

Relacje jeden do wielu (1:N) i wiele do wielu (M:N)

Aby utworzyć relację jeden do wielu (1:N), na przykład między produktem i zamówieniem, gdzie każdy produkt może być skojarzony z wieloma zamówieniami, wybierz jeden do wielu jako kardynalność. Ta relacja odzwierciedla ideę, że jeden produkt może być połączony z wieloma zamówieniami, ale każde zamówienie jest połączone tylko z jednym produktem.

W przypadku relacji wiele do wielu (M:N), takich jak między książkami i autorami, gdzie książka może mieć wielu autorów, a autor może mieć wiele książek, wybierz pozycję Wiele do wielu jako kardynalność. Aby dopasować ten rodzaj relacji, musisz mieć typ łączenia w schemacie.

W oknie dialogowym Nowa relacja zostanie wyświetlony inny zestaw selektorów po wybraniu opcji Wiele do wielu jako kardynalności. W przykładzie książek i autorów należy wybrać typ łączenia, taki jak BooksAuthors, oraz pola, takie jak BookId i AuthorId, jako link z i do pól.

Zrzut ekranu przedstawiający okno dialogowe Nowa relacja dla relacji wiele-do-wielu.

Zagadnienia dotyczące relacji wiele-do-wielu

Jeśli typ łączenia zawiera jedno lub więcej pól, do których nie odwołuje się pole z pól lub do pól, interfejs API dla języka GraphQL automatycznie generuje cztery relacje jeden do wielu w następujący sposób:

  • Relacja jeden do wielu z typu Od do typu Łączenie
  • Relacja jeden do wielu z typu Łączenie z typem From
  • Relacja jeden do wielu z typu To do typu Łączenie
  • Relacja jeden do wielu z typu Łączenie z typem To

Umożliwiają one odwołowanie się do niezwiązanych pól w typie Link w zapytaniach lub mutacjach, jednocześnie umożliwiając zapytania/mutacje odwołujące się do relacji w dowolnym kierunku.

W przypadku braku niezwiązanych pól w typie łączenia zostanie utworzona jedna relacja wiele-do-wielu, a wszystkie zapytania lub mutacje nie będą musiały odwoływać się do typu Link, aby wykorzystać relację.

Usuwanie relacji

Relację można usunąć z ekranu Zarządzanie relacjami , zaznaczając pole wyboru obok relacji, a następnie wybierając pozycję Usuń.