Tech-invite3GPPspaceIETFspace
21222324252627282931323334353637384‑5x
Top   in Index   Prev   Next

TS 32.158
Design Rules
for REST Solution Sets

V19.1.0 (PDF)2025/12  … p.
V18.4.02025/12  … p.
V17.9.0  2024/09  77 p.
V16.13.0  2024/09  77 p.
V15.6.0  2024/09  39 p.
Rapporteur:
Dr. Pollakowski, Olaf
Nokia Networks

full Table of Contents for  TS 32.158  Word version:  19.0.0

each clause number in 'red' refers to the equivalent title in the Partial Content
Here   Top
1Scope  p. 6
2References  p. 6
3Definitions and abbreviations  p. 7
3.1Definitions  p. 7
3.2Abbreviations  p. 7
4General rules  p. 7
4.1Information models and resources  p. 7
4.1.1Information models  p. 7
4.1.2Resources  p. 8
4.1.3Resource archetypes  p. 8
4.1.4Mapping of information models to resources  p. 8
4.1.5Usage of information models |R16|p. 8
4.2Managed object naming and resource identification  p. 9
4.2.1Managed object naming  p. 9
4.2.1.0Distinguished Name (DN)  p. 9
4.2.1.1Global and local namespaces  p. 9
4.2.2Resource identification  p. 9
4.2.3Mapping of DNs to URIs  p. 9
4.2.4Canonical URI |R16|p. 10
4.3Message content formats  p. 11
4.3.1Media types |R16|p. 11
4.3.2Response content format negotiation |R16|p. 11
4.4URI structure  p. 11
4.4.1Introduction  p. 11
4.4.2URI structure for resources representing managed object instances  p. 11
4.4.3URI structure for resources not representing managed object instances  p. 13
4.4.4Resource "../{MnSName}/{MnSVersion}" |R16|p. 13
4.5Response status codes  p. 14
4.6Versioning |R18|p. 14
4.6.1MnS definition file versioning  p. 14
4.6.2MnS version in target URIs  p. 14
5Basic design patterns  p. 14
5.1Design pattern for creating a resource  p. 14
5.1.1Creating a resource with identifier creation by the MnS Producer  p. 14
5.1.2Creating a resource with identifier creation by the MnS Consumer  p. 15
5.2Design pattern for reading a resource  p. 16
5.3Design pattern for updating a resource  p. 16
5.4Design pattern for deleting a resource  p. 17
5.5Design pattern for subscribe/notify  p. 18
5.5.1Concept  p. 18
5.5.2Subscription creation  p. 18
5.5.3Subscription deletion  p. 18
5.5.4Notification emission  p. 19
5.5.5Subscription retrieval  p. 19
6Advanced design patterns  p. 20
6.1Design pattern for scoping and filtering  p. 20
6.1.1Introduction  p. 20
6.1.2Query parameters for scoping  p. 20
6.1.3Query parameters for filtering  p. 21
6.1.4Construction rules for the response message body  p. 21
6.2Design patterns for attribute and attribute field selection  p. 22
6.2.1Introduction  p. 22
6.2.2Query parameters for attribute and attribute field selection  p. 22
6.2.3Construction rules for the response message body |R16|p. 22
6.3Design pattern for partially updating a resource  p. 23
6.3.1Introduction |R16|p. 23
6.3.2JSON Merge Patch |R16|p. 23
6.3.3JSON Patch |R16|p. 24
6.4Design patterns for patching multiple resources  p. 28
6.4.1Introduction  p. 28
6.4.23GPP JSON Merge Patch  p. 28
6.4.33GPP JSON Patch  p. 29
6.5Design pattern for large queries |R16|p. 31
6.6Design pattern for error responses |R18|p. 32
6.6.1Introduction  p. 32
6.6.2HTTP error codes  p. 32
6.6.3Error response body  p. 33
6.6.3.1Overview  p. 33
6.6.3.2Error response format for GET requests  p. 34
6.6.3.3Error response format for PUT, POST, DELETE, JSON Merge Patch and 3GPP JSON Merge Patch requests  p. 34
6.6.3.4Error response format for JSON Patch and 3GPP JSON Patch requests  p. 35
6.6.4The "type" property  p. 36
6.6.5The "reason" property  p. 36
6.6.5.1Overview  p. 36
6.6.5.2Error reasons for GET  p. 37
6.6.5.3Error reasons for attribute manipulations  p. 39
6.6.5.3.1JSON Patch and 3GPP JSON Patch  p. 39
6.6.5.3.2JSON Merge Patch, 3GPP JSON Merge Patch and PUT  p. 40
6.6.5.4Error reasons for object manipulations  p. 41
6.6.6Error reasons for application layer errors  p. 45
6.6.7Security considerations  p. 46
6.7Design pattern for conditional data node selection |R18|p. 46
7Resource representation formats  p. 46
7.1Introduction  p. 46
7.2Top-level object  p. 47
7.3Data objects  p. 47
7.4Data arrays  p. 47
7.5Error objects  p. 47
7.6Resource objects  p. 48
7.7Resource objects carried in data objects and arrays  p. 49
8REST SS specification template  p. 49
AExamples  p. 54
A.1Example data model  p. 54
A.2Retrieval of resources  p. 59
A.2.1Retrieval of a single complete resource with HTTP GET  p. 59
A.2.2Attribute and attribute field selection on a single resource  p. 60
A.2.3Retrieval of multiple complete resources using scoping and filtering  p. 61
A.2.4Large queries |R16|p. 71
A.3Creation of resources  p. 71
A.3.1Creation of a resource with HTTP PUT  p. 71
A.3.2Creation of a resource with HTTP POST  p. 72
A.3.3Creation of multiple resources with 3GPP JSON Merge Patch  p. 73
A.3.4Creation of multiple resources with 3GPP JSON Patch |R16|p. 75
A.4Deletion of resources  p. 77
A.4.1Deletion of a resource with HTTP DELETE  p. 77
A.4.2Deletion of multiple resources with HTTP DELETE  p. 77
A.4.3Deletion of multiple resources with 3GPP JSON Merge Patch  p. 77
A.4.4Deletion of multiple resources with 3GPP JSON Patch |R16|p. 78
A.5Complete update of a resource  p. 78
A.6Partial update of a resource  p. 79
A.6.1Partial update of a resource with JSON Merge Patch  p. 79
A.6.2Partial update of a resource with 3GPP JSON Merge Patch  p. 80
A.6.3Partial update of a resource with JSON Patch  p. 80
A.6.4Partial update of a resource with 3GPP JSON Patch  p. 82
A.7Manipulating multiple resources  p. 83
A.7.1Manipulating multiple resources with 3GPP JSON Merge Patch  p. 83
A.7.2Manipulating multiple resources with 3GPP JSON PATCH  p. 84
A.8Partitioning a data model |R16|p. 86
$Change history  p. 87

Up   Top