🎯 Definicja

Introspekcja (Introspection) to unikalna cecha GraphQL, która pozwala zapytać API o jego własną strukturę. Możesz wysłać specjalne zapytanie, a serwer zwróci Ci listę wszystkich dostępnych typów, pól, zapytań (Queries) i mutacji (Mutations). To automatyczna dokumentacja wbudowana w silnik.

🔑 Kluczowe punkty

  • Samodokumentacja: Nie potrzebujesz PDF-a z dokumentacją. Narzędzia (np. Playground) same pobierają schemat i podpowiadają składnię (Autocomplete).
  • Bezpieczeństwo: Na produkcji Introspekcja powinna być WYŁĄCZONA, aby hakerzy nie poznali łatwo struktury Twojej bazy.
  • Narzędzia: GraphQL Playground, Apollo Studio, Network Inspector w przeglądarce.

📚 Szczegółowe wyjaśnienie

Jak to działa? GraphQL ma zarezerwowane pole __schema. Zapytanie:

query {
  __schema {
    types {
      name
    }
  }
}

Zwróci listę wszystkich obiektów w API (np. User, Product, Order). W Ataccama ONE Network Inspector wykorzystuje ten mechanizm do podglądu, jakie zapytania wysyła frontend do backendu.

💡 Przykład zastosowania

Piszesz integrację z Ataccama ONE. Otwierasz GraphQL Playground. Zaczynasz pisać qu... i wciskasz Ctrl+Space. Pojawia się lista podpowiedzi: query, qualityResult, quarantine. To działa właśnie dzięki introspekcji - IDE “zapytało” serwer o dostępne opcje w tle.

📌 Źródła

  • GraphQL Specification - Introspection.

👽 Brudnopis

  • Jeśli widzisz błąd “Field __schema does not exist”, to znaczy, że administrator wyłączył introspekcję (popularna praktyka Security Hardening).