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