Преглед на файлове

Closes #2671: Add documentation of API brief format

Jeremy Stretch преди 7 години
родител
ревизия
785cdcefd6
променени са 1 файла, в които са добавени 47 реда и са изтрити 1 реда
  1. 47 1
      docs/api/overview.md

+ 47 - 1
docs/api/overview.md

@@ -104,7 +104,7 @@ The base serializer is used to represent the default view of a model. This inclu
 }
 ```
 
-Related objects (e.g. `ForeignKey` fields) are represented using a nested serializer. A nested serializer provides a minimal representation of an object, including only its URL and enough information to construct its name. When performing write api actions (`POST`, `PUT`, and `PATCH`), any `ForeignKey` relationships do not use the nested serializer, instead you will pass just the integer ID of the related model.  
+Related objects (e.g. `ForeignKey` fields) are represented using a nested serializer. A nested serializer provides a minimal representation of an object, including only its URL and enough information to construct its name. When performing write api actions (`POST`, `PUT`, and `PATCH`), any `ForeignKey` relationships do not use the nested serializer, instead you will pass just the integer ID of the related model.
 
 When a base serializer includes one or more nested serializers, the hierarchical structure precludes it from being used for write operations. Thus, a flat representation of an object may be provided using a writable serializer. This serializer includes only raw database values and is not typically used for retrieval, except as part of the response to the creation or updating of an object.
 
@@ -122,6 +122,52 @@ When a base serializer includes one or more nested serializers, the hierarchical
 }
 ```
 
+## Brief Format
+
+Most API endpoints support an optional "brief" format, which returns only a minimal representation of each object in the response. This is useful when you need only a list of the objects themselves without any related data, such as when populating a drop-down list in a form.
+
+For example, the default (complete) format of an IP address looks like this:
+
+```
+GET /api/ipam/prefixes/13980/
+
+{
+    "id": 13980,
+    "family": 4,
+    "prefix": "192.0.2.0/24",
+    "site": null,
+    "vrf": null,
+    "tenant": null,
+    "vlan": null,
+    "status": {
+        "value": 1,
+        "label": "Active"
+    },
+    "role": null,
+    "is_pool": false,
+    "description": "",
+    "tags": [],
+    "custom_fields": {},
+    "created": "2018-12-11",
+    "last_updated": "2018-12-11T16:27:55.073174-05:00"
+}
+```
+
+The brief format is much more terse, but includes a link to the object's full representation:
+
+```
+GET /api/ipam/prefixes/13980/?brief=1
+
+{
+    "id": 13980,
+    "url": "https://netbox/api/ipam/prefixes/13980/",
+    "family": 4,
+    "prefix": "192.0.2.0/24"
+}
+```
+
+The brief format is supported for both lists and individual objects.
+
 ## Static Choice Fields
 
 Some model fields, such as the `status` field in the above example, utilize static integers corresponding to static choices. The available choices can be retrieved from the read-only `_choices` endpoint within each app. A specific `model:field` tuple may optionally be specified in the URL.