Multi-access Edge Computing (MEC); General principles, patterns and common aspects of MEC Service APIs

RGS/MEC-0009v331ApiPrinciples

General Information

Status
Not Published
Current Stage
12 - Citation in the OJ (auto-insert)
Due Date
22-Feb-2024
Completion Date
01-Feb-2024
Ref Project
Standard
ETSI GS MEC 009 V3.3.1 (2024-02) - Multi-access Edge Computing (MEC); General principles, patterns and common aspects of MEC Service APIs
English language
78 pages
sale 15% off
Preview
sale 15% off
Preview

Standards Content (Sample)


GROUP SPECIFICATION
Multi-access Edge Computing (MEC);
General principles, patterns and common aspects
of MEC Service APIs
Disclaimer
The present document has been produced and approved by the Multi-access Edge Computing (MEC) ETSI Industry
Specification Group (ISG) and represents the views of those members who participated in this ISG.
It does not necessarily represent the views of the entire ETSI membership.

2 ETSI GS MEC 009 V3.3.1 (2024-02)

Reference
RGS/MEC-0009v331ApiPrinciples
Keywords
API, MEC
ETSI
650 Route des Lucioles
F-06921 Sophia Antipolis Cedex - FRANCE

Tel.: +33 4 92 94 42 00  Fax: +33 4 93 65 47 16

Siret N° 348 623 562 00017 - APE 7112B
Association à but non lucratif enregistrée à la
Sous-Préfecture de Grasse (06) N° w061004871

Important notice
The present document can be downloaded from:
https://www.etsi.org/standards-search
The present document may be made available in electronic versions and/or in print. The content of any electronic and/or
print versions of the present document shall not be modified without the prior written authorization of ETSI. In case of any
existing or perceived difference in contents between such versions and/or in print, the prevailing version of an ETSI
deliverable is the one made publicly available in PDF format at www.etsi.org/deliver.
Users of the present document should be aware that the document may be subject to revision or change of status.
Information on the current status of this and other ETSI documents is available at
https://portal.etsi.org/TB/ETSIDeliverableStatus.aspx
If you find errors in the present document, please send your comment to one of the following services:
https://portal.etsi.org/People/CommiteeSupportStaff.aspx
If you find a security vulnerability in the present document, please report it through our
Coordinated Vulnerability Disclosure Program:
https://www.etsi.org/standards/coordinated-vulnerability-disclosure
Notice of disclaimer & limitation of liability
The information provided in the present deliverable is directed solely to professionals who have the appropriate degree of
experience to understand and interpret its content in accordance with generally accepted engineering or
other professional standard and applicable regulations.
No recommendation as to products and services or vendors is made or should be implied.
No representation or warranty is made that this deliverable is technically accurate or sufficient or conforms to any law
rule and/or regulation and further, no representation or warranty is made of merchantability or fitness
and/or governmental
for any particular purpose or against infringement of intellectual property rights.
In no event shall ETSI be held liable for loss of profits or any other incidental or consequential damages.

Any software contained in this deliverable is provided "AS IS" with no warranties, express or implied, including but not
limited to, the warranties of merchantability, fitness for a particular purpose and non-infringement of intellectual property
rights and ETSI shall not be held liable in any event for any damages whatsoever (including, without limitation, damages
for loss of profits, business interruption, loss of information, or any other pecuniary loss) arising out of or related to the use
of or inability to use the software.
Copyright Notification
No part may be reproduced or utilized in any form or by any means, electronic or mechanical, including photocopying and
microfilm except as authorized by written permission of ETSI.
The content of the PDF version shall not be modified without the written authorization of ETSI.
The copyright and the foregoing restriction extend to reproduction in all media.

© ETSI 2024.
All rights reserved.
ETSI
3 ETSI GS MEC 009 V3.3.1 (2024-02)
Contents
Intellectual Property Rights . 7
Foreword . 7
Modal verbs terminology . 7
1 Scope . 8
2 References . 8
2.1 Normative references . 8
2.2 Informative references . 9
3 Definition of terms, symbols and abbreviations . 10
3.1 Terms . 10
3.2 Symbols . 10
3.3 Abbreviations . 10
4 Design principles for developing RESTful MEC service APIs . 11
4.1 REST implementation levels . 11
4.2 General principles. 11
4.3 Entry point of a RESTful MEC service API . 12
4.4 API security and privacy considerations . 12
5 Documenting RESTful MEC service APIs . 12
5.1 RESTful MEC service API template . 12
5.2 Conventions for names . 12
5.2.1 Case conventions . 12
5.2.2 Conventions for URI parts . 13
5.2.2.1 Introduction . 13
5.2.2.2 Path segment naming conventions . 13
5.2.2.3 Query naming conventions . 14
5.2.3 Conventions for names in data structures . 14
5.3 Provision of an OpenAPI definition . 15
5.4 Documentation of the API data model . 15
5.4.1 Overview . 15
5.4.2 Structured data types . 15
5.4.3 Simple data types . 16
5.4.4 Enumerations . 17
5.4.5 Serialization . 17
6 Patterns of RESTful MEC service APIs . 18
6.1 Introduction . 18
6.2 Void . 18
6.3 Pattern: Resource identification . 18
6.3.1 Description . 18
6.3.2 Resource definition(s) and HTTP methods . 19
6.4 Pattern: Resource representations and content format negotiation . 19
6.4.1 Description . 19
6.4.2 Resource definition(s) and HTTP methods . 19
6.4.3 Resource representation(s) . 19
6.4.4 HTTP headers . 19
6.4.5 Response codes and error handling . 20
6.5 Pattern: Creating a resource (POST) . 20
6.5.1 Description . 20
6.5.2 Resource definition(s) and HTTP methods . 20
6.5.3 Resource representation(s) . 21
6.5.4 HTTP headers . 21
6.5.5 Response codes and error handling . 21
6.5a Pattern: Creating a resource (PUT) . 21
6.5a.1 Description . 21
6.5a.2 Resource definition(s) and HTTP methods . 22
ETSI
4 ETSI GS MEC 009 V3.3.1 (2024-02)
6.5a.3 Resource representation(s) . 22
6.5a.4 HTTP headers . 22
6.5a.5 Response codes and error handling . 22
6.6 Pattern: Reading a resource . 23
6.6.1 Description . 23
6.6.2 Resource definition(s) and HTTP methods . 23
6.6.3 Resource representation(s) . 23
6.6.4 HTTP headers . 23
6.6.5 Response codes and error handling . 23
6.7 Pattern: Queries on a resource . 23
6.7.1 Description . 23
6.7.2 Resource definition(s) and HTTP methods . 24
6.7.3 Resource representation(s) . 24
6.7.4 HTTP headers . 24
6.7.5 Response codes and error handling . 24
6.8 Pattern: Updating a resource (PUT) . 24
6.8.1 Description . 24
6.8.2 Resource definition(s) and HTTP methods . 26
6.8.3 Resource representation(s) . 26
6.8.4 HTTP headers . 26
6.8.5 Response codes and error handling . 26
6.9 Pattern: Updating a resource (PATCH) . 27
6.9.1 Description . 27
6.9.2 Resource definition(s) and HTTP methods . 28
6.9.3 Resource representation(s) . 28
6.9.4 HTTP headers . 29
6.9.5 Response codes and error handling . 29
6.10 Pattern: Deleting a resource. 29
6.10.1 Description . 29
6.10.2 Resource definition(s) and HTTP methods . 30
6.10.3 Resource representation(s) . 30
6.10.4 HTTP headers . 30
6.10.5 Response codes and error handling . 30
6.11 Pattern: Task resources . 31
6.11.1 Description . 31
6.11.2 Resource definition(s) and HTTP methods . 31
6.11.3 Resource representation(s) . 31
6.11.4 HTTP headers . 31
6.11.5 Response codes and error handling . 31
6.12 Pattern: REST-based subscribe/notify . 32
6.12.1 Description . 32
6.12.2 Resource definition(s) and HTTP methods . 33
6.12.3 Resource representation(s) . 34
6.12.4 HTTP headers . 34
6.12.5 Response codes and error handling . 34
6.12a Pattern: REST-based subscribe/notify with Websocket fallback . 34
6.12a.1 Description . 34
6.12a.2 Resource definition(s) and HTTP methods . 36
6.12a.3 Resource representation(s) . 37
6.12a.4 HTTP headers . 37
6.12a.5 Response codes and error handling . 37
6.13 Pattern: Asynchronous operations . 37
6.13.1 Description . 37
6.13.2 Resource definition(s) and HTTP methods . 39
6.13.3 Resource representation(s) . 39
6.13.4 HTTP headers . 40
6.13.5 Response codes and error handling . 40
6.14 Pattern: Links (HATEOAS) . 40
6.14.1 Description . 40
6.14.2 Resource definition(s) and HTTP methods . 40
6.14.3 Resource representation(s) . 40
6.14.4 HTTP headers . 42
ETSI
5 ETSI GS MEC 009 V3.3.1 (2024-02)
6.14.5 Response codes and error handling . 42
6.15 Pattern: Error responses . 42
6.15.1 Description . 42
6.15.2 Resource definition(s) and HTTP methods . 42
6.15.3 Resource representation(s) . 42
6.15.4 HTTP headers . 43
6.15.5 Response codes and error handling . 43
6.16 Pattern: Authorization of access to a RESTful MEC service API using OAuth 2.0 . 43
6.16.1 Description . 43
6.16.2 Resource definition(s) and HTTP methods . 46
6.16.3 Resource representation(s) . 46
6.16.4 HTTP headers . 46
6.16.5 Response codes and error handling . 46
6.16.6 Obtaining the parameters needed for exchanges with the token endpoint . 47
6.16.7 Scope values . 47
6.17 Pattern: Representation of lists in JSON . 47
6.17.1 Description . 47
6.17.2 Representation as arrays . 47
6.17.3 Representation as maps . 47
6.18 Pattern: Attribute selectors . 48
6.18.1 Description . 48
6.18.2 Resource definition(s) and HTTP methods . 48
6.18.3 Resource representation(s) . 49
6.18.4 HTTP headers . 49
6.18.5 Response codes and error handling . 49
6.19 Pattern: Attribute-based filtering . 50
6.19.1 Description . 50
6.19.2 Resource definition(s) and HTTP methods . 50
6.19.3 Resource representation(s) . 52
6.19.4 HTTP headers . 52
6.19.5 Response codes and error handling . 52
6.20 Pattern: Handling of too large responses . 53
6.20.1 Description . 53
6.20.2 Resource definition(s) and HTTP methods . 53
6.20.3 Resource representation(s) . 53
6.20.4 HTTP headers . 53
6.20.5 Response codes and error handling . 54
6.21 Pattern: Large queries . 54
6.21.1 Description . 54
6.21.2 Resource definition(s) and HTTP methods . 54
6.21.3 Resource representation(s) . 54
6.21.4 HTTP headers . 54
6.21.5 Response codes and error handling . 55
6.22 Pattern: Secure communication using TLS . 55
7 Alternative transport mechanisms . 55
7.1 Description . 55
7.2 Relationship of topics, subscriptions and access rights . 56
7.3 Serializers . 58
7.4 Authorization of access to a service over alternative transports using TLS credentials . 58
8 Common Data Types . 60
8.1 Introduction . 60
8.2 Simple Data Types . 60
8.3 Enumerations . 61
8.4 Structured Data Types . 61
8.4.1 Type: LinkType . 61
8.4.2 Type: TimeStamp . 61
Annex A (informative): REST methods. 62
Annex B (normative): HTTP response status codes . 63
ETSI
6 ETSI GS MEC 009 V3.3.1 (2024-02)
Annex C (informative): Richardson maturity model of REST APIs . 65
Annex D (informative): RESTful MEC service API template. 66
Sequence diagrams (informative) . 66
.1 Introduction . 66
.2 . 66
Data model (normative) . 67
.1 Introduction . 67
.2 Resource data types . 67
.2.1 Introduction. 67
.2.2 Type: . 67
.3 Subscription data types . 67
.3.1 Introduction. 67
.3.2 Type: . 67
.4 Notification data types . 67
.4.1 Introduction. 67
.4.2 Type: . 67
.5 Referenced structured data types . 67
.5.1 Introduction. 67
.5.2 Type: . 68
.6 Referenced simple data types and enumerations . 68
.6.1 Introduction. 68
.6.2 Simple data types . 68
.6.3 Enumeration: . 68
.6.4 Enumeration: . 68
RESTful API definition (normative) . 69
.1 Introduction . 69
.2 Global definitions and resource structure . 69
.3 Resource: . 70
.3.1 Description . 70
.3.2 Resource definition . 71
.3.3 Resource methods . 71
.3.3.1 GET . 71
.3.3.2 PUT . 72
.3.3.3 PATCH . 72
.3.3.4 POST . 72
.3.3.5 DELETE . 72
Annex E (normative): Error reporting . 73
E.1 Introduction . 73
E.2 General mechanism . 73
E.3 Common error situations . 73
Annex F (informative): Change history . 76
History . 78

ETSI
7 ETSI GS MEC 009 V3.3.1 (2024-02)
Intellectual Property Rights
Essential patents
IPRs essential or potentially essential to normative deliverables may have been declared to ETSI. The declarations
pertaining to these essential IPRs, if any, are publicly available for ETSI members and non-members, and can be
found in ETSI SR 000 314: "Intellectual Property Rights (IPRs); Essential, or potentially Essential, IPRs notified to
ETSI in respect of ETSI standards", which is available from the ETSI Secretariat. Latest updates are available on the
ETSI Web server (https://ipr.etsi.org/).
Pursuant to the ETSI Directives including the ETSI IPR Policy, no investigation regarding the essentiality of IPRs,
including IPR searches, has been carried out by ETSI. No guarantee can be given as to the existence of other IPRs not
referenced in ETSI SR 000 314 (or the updates on the ETSI Web server) which are, or may be, or may become,
essential to the present document.
Trademarks
The present document may include trademarks and/or tradenames which are asserted and/or registered by their owners.
ETSI claims no ownership of these except for any which are indicated as being the property of ETSI, and conveys no
right to use or reproduce any trademark and/or tradename. Mention of those trademarks in the present document does
not constitute an endorsement by ETSI of products, services or organizations associated with those trademarks.
DECT™, PLUGTESTS™, UMTS™ and the ETSI logo are trademarks of ETSI registered for the benefit of its

Members. 3GPP™ and LTE™ are trademarks of ETSI registered for the benefit of its Members and of the 3GPP
Organizational Partners. oneM2M™ logo is a trademark of ETSI registered for the benefit of its Members and of the ®
oneM2M Partners. GSM and the GSM logo are trademarks registered and owned by the GSM Association.
Foreword
This Group Specification (GS) has been produced by ETSI Industry Specification Group (ISG) Multi-access Edge
Computing (MEC).
Modal verbs terminology
In the present document "shall", "shall not", "should", "should not", "may", "need not", "will", "will not", "can" and
"cannot" are to be interpreted as described in clause 3.2 of the ETSI Drafting Rules (Verbal forms for the expression of
provisions).
"must" and "must not" are NOT allowed in ETSI deliverables except when used in direct citation.

ETSI
8 ETSI GS MEC 009 V3.3.1 (2024-02)
1 Scope
The present document defines design principles for RESTful MEC service APIs, provides guidelines and templates for
the documentation of these, and defines patterns of how MEC service APIs use RESTful principles.
2 References
2.1 Normative references
References are either specific (identified by date of publication and/or edition number or version number) or
non-specific. For specific references, only the cited version applies. For non-specific references, the latest version of the
referenced document (including any amendments) applies.
Referenced documents which are not found to be publicly available in the expected location might be found at
https://docbox.etsi.org/Reference/.
NOTE: While any hyperlinks included in this clause were valid at the time of publication, ETSI cannot guarantee
their long term validity.
The following referenced documents are necessary for the application of the present document.
[1] IETF RFC 9110: "HTTP Semantics".
[2] Void.
[3] IETF RFC 5789: "PATCH Method for HTTP".
[4] IETF RFC 6901: "JavaScript Object Notation (JSON) Pointer".
[5] IETF RFC 7396: "JSON Merge Patch".
[6] IETF RFC 6902: "JavaScript Object Notation (JSON) Patch".
[7] IETF RFC 5261: "An Extensible Markup Language (XML) Patch Operations Framework Utilizing
XML Path Language (XPath) Selectors".
[8] IETF RFC 6585: "Additional HTTP Status Codes".
[9] IETF RFC 3986: "Uniform Resource Identifier (URI): Generic Syntax".
[10] IETF RFC 8259: "The JavaScript Object Notation (JSON) Data Interchange Format". ®
[11] W3C Recommendation 16 August 2006: "Extensible Markup Language (XML) 1.1" (Second
Edition).
[12] IETF RFC 8288: "Web Linking".
[13] Void.
[14] IETF RFC 5246: "The Transport Layer Security (TLS) Protocol Version 1.2".
[15] IETF RFC 7807: "Problem Details for HTTP APIs".
[16] IETF RFC 6749: "The OAuth 2.0 Authorization Framework".
[17] IETF RFC 6750: "The OAuth 2.0 Authorization Framework: Bearer Token Usage".
[18] IETF RFC 9113: "HTTP/2".
[19] Void.
[20] IETF RFC 3339: "Date and Time on the Internet: Timestamps".
ETSI
9 ETSI GS MEC 009 V3.3.1 (2024-02)
[21] Void.
[22] Void.
[23] Void.
[24] IETF RFC 8446: "The Transport Layer Security (TLS) Protocol Version 1.3".
[25] IETF RFC 6455: "The WebSocket Protocol".
[26] ETSI TS 129 122: "Universal Mobile Telecommunications System (UMTS); LTE; 5G;
T8 reference point for Northbound APIs (3GPP TS 29.122)".
[27] ETSI TS 133 210: "Digital cellular telecommunications system (Phase 2+) (GSM); Universal
Mobile Telecommunications System (UMTS); LTE; 5G; Network Domain Security (NDS);
IP network layer security (3GPP TS 33.210)".
[28] IETF RFC 9112: "HTTP/1.1".
[29] WHATWG: "URL. Living Standard", Last Updated 21 February 2022.
[30] IETF RFC 1166: "Internet Numbers".
[31] IETF RFC 5952: "A recommendation for IPv6 Address Text Representation".
[32] IETF RFC 4632: "Classless Inter-domain Routing (CIDR): The Internet Address Assignment and
Aggregation Plan".
2.2 Informative references
References are either specific (identified by date of publication and/or edition number or version number) or
non-specific. For specific references, only the cited version applies. For non-specific references, the latest version of the
referenced document (including any amendments) applies.
NOTE: While any hyperlinks included in this clause were valid at the time of publication, ETSI cannot guarantee
their long term validity.
The following referenced documents are not necessary for the application of the present document but they assist the
user with regard to a particular subject area.
[i.1] ETSI GR MEC 001: "Multi-access Edge Computing (MEC); Terminology".
[i.2] William Durand: "Please. Don't P
...

Questions, Comments and Discussion

Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.

Loading comments...