1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00
Markku Leiniö 21db54ae2f Closes #15740: Fix typos and deprecated List in docs (#15741)
* Fix typos in migration-v4.md

* Replace typing.List with list

typing.List is deprecated since Python 3.9

* Also replace typing.List with list in graphql-api.md
2024-04-17 08:28:03 -04:00

49 lines
1.0 KiB
Markdown

# GraphQL API
## Defining the Schema Class
A plugin can extend NetBox's GraphQL API by registering its own schema class. By default, NetBox will attempt to import `graphql.schema` from the plugin, if it exists. This path can be overridden by defining `graphql_schema` on the PluginConfig instance as the dotted path to the desired Python class. This class must be a subclass of `graphene.ObjectType`.
### Example
```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 Objects
NetBox provides two object type classes for use by plugins.
::: netbox.graphql.types.BaseObjectType
options:
members: false
::: netbox.graphql.types.NetBoxObjectType
options:
members: false