mirror of
https://github.com/netbox-community/netbox.git
synced 2025-12-13 03:49:36 -06:00
19724 update docs
This commit is contained in:
parent
af55da008b
commit
26c91f01c6
@ -16,6 +16,28 @@ http://netbox/graphql/ \
|
|||||||
|
|
||||||
The response will include the requested data formatted as JSON:
|
The response will include the requested data formatted as JSON:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"data": {
|
||||||
|
"circuits": [
|
||||||
|
{
|
||||||
|
"cid": "1002840283",
|
||||||
|
"provider": {
|
||||||
|
"name": "CenturyLink"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cid": "1002840457",
|
||||||
|
"provider": {
|
||||||
|
"name": "CenturyLink"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
If using the GraphQL API v2 the format will be:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"data": {
|
"data": {
|
||||||
@ -50,17 +72,30 @@ NetBox provides both a singular and plural query field for each object type:
|
|||||||
For example, query `device(id:123)` to fetch a specific device (identified by its unique ID), and query `device_list` (with an optional set of filters) to fetch all devices.
|
For example, query `device(id:123)` to fetch a specific device (identified by its unique ID), and query `device_list` (with an optional set of filters) to fetch all devices.
|
||||||
|
|
||||||
!!! note "Changed in NetBox v4.5"
|
!!! note "Changed in NetBox v4.5"
|
||||||
List queries now return paginated results. The actual objects are contained within the `results` field of the response, along with `total_count` and `page_info` fields for pagination metadata. Prior to v4.5, list queries returned objects directly as an array.
|
If using the GraphQL API v2, List queries now return paginated results. The actual objects are contained within the `results` field of the response, along with `total_count` and `page_info` fields for pagination metadata. Prior to v4.5, list queries returned objects directly as an array.
|
||||||
|
|
||||||
For more detail on constructing GraphQL queries, see the [GraphQL queries documentation](https://graphql.org/learn/queries/). For filtering and lookup syntax, please refer to the [Strawberry Django documentation](https://strawberry.rocks/docs/django/guide/filters).
|
For more detail on constructing GraphQL queries, see the [GraphQL queries documentation](https://graphql.org/learn/queries/). For filtering and lookup syntax, please refer to the [Strawberry Django documentation](https://strawberry.rocks/docs/django/guide/filters).
|
||||||
|
|
||||||
## Filtering
|
## Filtering
|
||||||
|
|
||||||
!!! note "Changed in NetBox v4.3"
|
!!! note "Changed in NetBox v4.3"
|
||||||
The filtering syntax fo the GraphQL API has changed substantially in NetBox v4.3.
|
The filtering syntax for the GraphQL API has changed substantially in NetBox v4.3.
|
||||||
|
|
||||||
Filters can be specified as key-value pairs within parentheses immediately following the query name. For example, the following will return only active sites:
|
Filters can be specified as key-value pairs within parentheses immediately following the query name. For example, the following will return only active sites:
|
||||||
|
|
||||||
|
```
|
||||||
|
query {
|
||||||
|
site_list(
|
||||||
|
filters: {
|
||||||
|
status: STATUS_ACTIVE
|
||||||
|
}
|
||||||
|
) {
|
||||||
|
name
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
If using the GraphQL API v2 the format will be:
|
||||||
|
|
||||||
```
|
```
|
||||||
query {
|
query {
|
||||||
site_list(
|
site_list(
|
||||||
@ -77,6 +112,26 @@ query {
|
|||||||
|
|
||||||
Filters can be combined with logical operators, such as `OR` and `NOT`. For example, the following will return every site that is planned _or_ assigned to a tenant named Foo:
|
Filters can be combined with logical operators, such as `OR` and `NOT`. For example, the following will return every site that is planned _or_ assigned to a tenant named Foo:
|
||||||
|
|
||||||
|
```
|
||||||
|
query {
|
||||||
|
site_list(
|
||||||
|
filters: {
|
||||||
|
status: STATUS_PLANNED,
|
||||||
|
OR: {
|
||||||
|
tenant: {
|
||||||
|
name: {
|
||||||
|
exact: "Foo"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
) {
|
||||||
|
name
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
If using the GraphQL API v2 the format will be:
|
||||||
|
|
||||||
```
|
```
|
||||||
query {
|
query {
|
||||||
site_list(
|
site_list(
|
||||||
@ -100,6 +155,19 @@ query {
|
|||||||
|
|
||||||
Filtering can also be applied to related objects. For example, the following query will return only enabled interfaces for each device:
|
Filtering can also be applied to related objects. For example, the following query will return only enabled interfaces for each device:
|
||||||
|
|
||||||
|
```
|
||||||
|
query {
|
||||||
|
device_list {
|
||||||
|
id
|
||||||
|
name
|
||||||
|
interfaces(filters: {enabled: true}) {
|
||||||
|
name
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
If using the GraphQL API v2 the format will be:
|
||||||
|
|
||||||
```
|
```
|
||||||
query {
|
query {
|
||||||
device_list {
|
device_list {
|
||||||
@ -118,6 +186,29 @@ query {
|
|||||||
|
|
||||||
Certain queries can return multiple types of objects, for example cable terminations can return circuit terminations, console ports and many others. These can be queried using [inline fragments](https://graphql.org/learn/schema/#union-types) as shown below:
|
Certain queries can return multiple types of objects, for example cable terminations can return circuit terminations, console ports and many others. These can be queried using [inline fragments](https://graphql.org/learn/schema/#union-types) as shown below:
|
||||||
|
|
||||||
|
```
|
||||||
|
{
|
||||||
|
cable_list {
|
||||||
|
id
|
||||||
|
a_terminations {
|
||||||
|
... on CircuitTerminationType {
|
||||||
|
id
|
||||||
|
class_type
|
||||||
|
}
|
||||||
|
... on ConsolePortType {
|
||||||
|
id
|
||||||
|
class_type
|
||||||
|
}
|
||||||
|
... on ConsoleServerPortType {
|
||||||
|
id
|
||||||
|
class_type
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
If using the GraphQL API v2 the format will be:
|
||||||
|
|
||||||
```
|
```
|
||||||
{
|
{
|
||||||
cable_list {
|
cable_list {
|
||||||
@ -146,6 +237,17 @@ The field "class_type" is an easy way to distinguish what type of object it is w
|
|||||||
|
|
||||||
## Pagination
|
## Pagination
|
||||||
|
|
||||||
|
Queries can be paginated by specifying pagination in the query and supplying an offset and optionaly a limit in the query. If no limit is given, a default of 100 is used. Queries are not paginated unless requested in the query. An example paginated query is shown below:
|
||||||
|
|
||||||
|
```
|
||||||
|
query {
|
||||||
|
device_list(pagination: { offset: 0, limit: 20 }) {
|
||||||
|
id
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
### Pagination in GraphQL API V2
|
||||||
|
|
||||||
All list queries return paginated results using the `OffsetPaginated` type, which includes:
|
All list queries return paginated results using the `OffsetPaginated` type, which includes:
|
||||||
|
|
||||||
- `results`: The list of objects matching the query
|
- `results`: The list of objects matching the query
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user