Перейти к содержанию

GraphQL API

Определение класса схемы

Плагин может расширить GraphQL API InfraVision, зарегистрировав собственный класс схемы. По умолчанию InfraVision попытается импортировать graphql.schema из плагина, если он существует. Этот путь можно переопределить, определив graphql_schema в экземпляре PluginConfig как путь с точками к желаемому классу Python.

Пример

# graphql.py
import strawberry
import strawberry_django

from . import models


@strawberry_django.type(
    models.MyModel,
    fields='__all__',
)
class MyModelType:
    pass


@strawberry.type
class MyQuery:
    @strawberry.field
    def dummymodel(self, id: int) -> DummyModelType:
        return None
    dummymodel_list: list[DummyModelType] = strawberry_django.field()


schema = [
    MyQuery,
]

Объекты GraphQL

InfraVision предоставляет два класса типов объектов для использования плагинами.

::: netbox.graphql.types.BaseObjectType options: members: false

::: netbox.graphql.types.NetBoxObjectType options: members: false