Skip to content

Commit 342208d

Browse files
authored
Merge pull request #408 from microsoft/InfoTextInGuidelines
Updated guidelines to ref Azure & Graph guidelines
2 parents 2938e71 + da9888d commit 342208d

File tree

2 files changed

+84
-64
lines changed

2 files changed

+84
-64
lines changed

Guidelines.md

Lines changed: 81 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -20,137 +20,157 @@ To provide the smoothest possible experience for developers on platforms followi
2020

2121
This document establishes the guidelines Microsoft REST APIs SHOULD follow so RESTful interfaces are developed consistently.
2222

23+
### **Guidance for Azure service teams**
24+
Azure service teams should use the companion documents, [Azure REST API Guidelines](./azure/Guidelines.md) and [Considerations for Service Design](./azure/ConsiderationsForServiceDesign.md), when building or modifying their services. These documents provide a refined set of guidance targeted specifically for Azure services. For more information please refer to the [README](./azure/README.md) in the Azure folder.
25+
26+
### **Guidance for Microsoft Graph service teams**
27+
Graph service teams should reference the companion document, [Graph REST API Guidelines](./graph/GuidelinesGraph.md) when building or modifying their services. This document and the associated pattern catalog provides a refined set of guidance targeted specifically for Microsoft Graph services.
28+
29+
2330
## 2. Table of contents
2431
<!-- TOC depthFrom:2 depthTo:4 orderedList:false updateOnSave:false withLinks:true -->
2532

26-
- [Microsoft REST API Guidelines Working Group](#microsoft-rest-api-guidelines-working-group)
27-
- [1. Abstract](#1-abstract)
28-
- [2. Table of contents](#2-table-of-contents)
29-
- [3. Introduction](#3-introduction)
33+
- [Microsoft REST API Guidelines](#microsoft-rest-api-guidelines)
34+
- [Microsoft REST API Guidelines Working Group](#microsoft-rest-api-guidelines-working-group)
35+
- [Microsoft REST API Guidelines](#microsoft-rest-api-guidelines-1)
36+
- [1. Abstract](#1-abstract)
37+
- [**Guidance for Azure service teams**](#guidance-for-azure-service-teams)
38+
- [**Guidance for Microsoft Graph service teams**](#guidance-for-microsoft-graph-service-teams)
39+
- [2. Table of contents](#2-table-of-contents)
40+
- [3. Introduction](#3-introduction)
3041
- [3.1. Recommended reading](#31-recommended-reading)
31-
- [4. Interpreting the guidelines](#4-interpreting-the-guidelines)
42+
- [4. Interpreting the guidelines](#4-interpreting-the-guidelines)
3243
- [4.1. Application of the guidelines](#41-application-of-the-guidelines)
3344
- [4.2. Guidelines for existing services and versioning of services](#42-guidelines-for-existing-services-and-versioning-of-services)
3445
- [4.3. Requirements language](#43-requirements-language)
3546
- [4.4. License](#44-license)
36-
- [5. Taxonomy](#5-taxonomy)
47+
- [5. Taxonomy](#5-taxonomy)
3748
- [5.1. Errors](#51-errors)
3849
- [5.2. Faults](#52-faults)
3950
- [5.3. Latency](#53-latency)
4051
- [5.4. Time to complete](#54-time-to-complete)
4152
- [5.5. Long running API faults](#55-long-running-api-faults)
42-
- [6. Client guidance](#6-client-guidance)
53+
- [6. Client guidance](#6-client-guidance)
4354
- [6.1. Ignore rule](#61-ignore-rule)
4455
- [6.2. Variable order rule](#62-variable-order-rule)
4556
- [6.3. Silent fail rule](#63-silent-fail-rule)
46-
- [7. Consistency fundamentals](#7-consistency-fundamentals)
57+
- [7. Consistency fundamentals](#7-consistency-fundamentals)
4758
- [7.1. URL structure](#71-url-structure)
4859
- [7.2. URL length](#72-url-length)
4960
- [7.3. Canonical identifier](#73-canonical-identifier)
5061
- [7.4. Supported methods](#74-supported-methods)
51-
- [7.4.1. POST](#741-post)
52-
- [7.4.2. PATCH](#742-patch)
53-
- [7.4.3. Creating resources via PATCH (UPSERT semantics)](#743-creating-resources-via-patch-upsert-semantics)
54-
- [7.4.4. Options and link headers](#744-options-and-link-headers)
62+
- [7.4.1. POST](#741-post)
63+
- [7.4.2. PATCH](#742-patch)
64+
- [7.4.3. Creating resources via PATCH (UPSERT semantics)](#743-creating-resources-via-patch-upsert-semantics)
65+
- [7.4.4. Options and link headers](#744-options-and-link-headers)
5566
- [7.5. Standard request headers](#75-standard-request-headers)
5667
- [7.6. Standard response headers](#76-standard-response-headers)
5768
- [7.7. Custom headers](#77-custom-headers)
5869
- [7.8. Specifying headers as query parameters](#78-specifying-headers-as-query-parameters)
5970
- [7.9. PII parameters](#79-pii-parameters)
6071
- [7.10. Response formats](#710-response-formats)
61-
- [7.10.1. Clients-specified response format](#7101-clients-specified-response-format)
62-
- [7.10.2. Error condition responses](#7102-error-condition-responses)
72+
- [7.10.1. Clients-specified response format](#7101-clients-specified-response-format)
73+
- [7.10.2. Error condition responses](#7102-error-condition-responses)
74+
- [ErrorResponse : Object](#errorresponse--object)
75+
- [Error : Object](#error--object)
76+
- [InnerError : Object](#innererror--object)
77+
- [Examples](#examples)
6378
- [7.11. HTTP Status Codes](#711-http-status-codes)
6479
- [7.12. Client library optional](#712-client-library-optional)
65-
- [8. CORS](#8-cors)
80+
- [8. CORS](#8-cors)
6681
- [8.1. Client guidance](#81-client-guidance)
67-
- [8.1.1. Avoiding preflight](#811-avoiding-preflight)
82+
- [8.1.1. Avoiding preflight](#811-avoiding-preflight)
6883
- [8.2. Service guidance](#82-service-guidance)
69-
- [9. Collections](#9-collections)
84+
- [9. Collections](#9-collections)
7085
- [9.1. Item keys](#91-item-keys)
7186
- [9.2. Serialization](#92-serialization)
7287
- [9.3. Collection URL patterns](#93-collection-url-patterns)
73-
- [9.3.1. Nested collections and properties](#931-nested-collections-and-properties)
88+
- [9.3.1. Nested collections and properties](#931-nested-collections-and-properties)
7489
- [9.4. Big collections](#94-big-collections)
7590
- [9.5. Changing collections](#95-changing-collections)
7691
- [9.6. Sorting collections](#96-sorting-collections)
77-
- [9.6.1. Interpreting a sorting expression](#961-interpreting-a-sorting-expression)
92+
- [9.6.1. Interpreting a sorting expression](#961-interpreting-a-sorting-expression)
7893
- [9.7. Filtering](#97-filtering)
79-
- [9.7.1. Filter operations](#971-filter-operations)
80-
- [9.7.2. Operator examples](#972-operator-examples)
81-
- [9.7.3. Operator precedence](#973-operator-precedence)
94+
- [9.7.1. Filter operations](#971-filter-operations)
95+
- [9.7.2. Operator examples](#972-operator-examples)
96+
- [9.7.3. Operator precedence](#973-operator-precedence)
8297
- [9.8. Pagination](#98-pagination)
83-
- [9.8.1. Server-driven paging](#981-server-driven-paging)
84-
- [9.8.2. Client-driven paging](#982-client-driven-paging)
85-
- [9.8.3. Additional considerations](#983-additional-considerations)
98+
- [9.8.1. Server-driven paging](#981-server-driven-paging)
99+
- [9.8.2. Client-driven paging](#982-client-driven-paging)
100+
- [9.8.3. Additional considerations](#983-additional-considerations)
86101
- [9.9. Compound collection operations](#99-compound-collection-operations)
87102
- [9.10. Empty Results](#910-empty-results)
88-
- [10. Delta queries](#10-delta-queries)
103+
- [10. Delta queries](#10-delta-queries)
89104
- [10.1. Delta links](#101-delta-links)
90105
- [10.2. Entity representation](#102-entity-representation)
91106
- [10.3. Obtaining a delta link](#103-obtaining-a-delta-link)
92107
- [10.4. Contents of a delta link response](#104-contents-of-a-delta-link-response)
93108
- [10.5. Using a delta link](#105-using-a-delta-link)
94-
- [11. JSON standardizations](#11-json-standardizations)
109+
- [11. JSON standardizations](#11-json-standardizations)
95110
- [11.1. JSON formatting standardization for primitive types](#111-json-formatting-standardization-for-primitive-types)
96111
- [11.2. Guidelines for dates and times](#112-guidelines-for-dates-and-times)
97-
- [11.2.1. Producing dates](#1121-producing-dates)
98-
- [11.2.2. Consuming dates](#1122-consuming-dates)
99-
- [11.2.3. Compatibility](#1123-compatibility)
112+
- [11.2.1. Producing dates](#1121-producing-dates)
113+
- [11.2.2. Consuming dates](#1122-consuming-dates)
114+
- [11.2.3. Compatibility](#1123-compatibility)
100115
- [11.3. JSON serialization of dates and times](#113-json-serialization-of-dates-and-times)
101-
- [11.3.1. The `DateLiteral` format](#1131-the-dateliteral-format)
102-
- [11.3.2. Commentary on date formatting](#1132-commentary-on-date-formatting)
116+
- [11.3.1. The `DateLiteral` format](#1131-the-dateliteral-format)
117+
- [11.3.2. Commentary on date formatting](#1132-commentary-on-date-formatting)
103118
- [11.4. Durations](#114-durations)
104119
- [11.5. Intervals](#115-intervals)
105120
- [11.6. Repeating intervals](#116-repeating-intervals)
106-
- [12. Versioning](#12-versioning)
121+
- [12. Versioning](#12-versioning)
107122
- [12.1. Versioning formats](#121-versioning-formats)
108-
- [12.1.1. Group versioning](#1211-group-versioning)
123+
- [12.1.1. Group versioning](#1211-group-versioning)
124+
- [Examples of group versioning](#examples-of-group-versioning)
109125
- [12.2. When to version](#122-when-to-version)
110126
- [12.3. Definition of a breaking change](#123-definition-of-a-breaking-change)
111-
- [13. Long running operations](#13-long-running-operations)
127+
- [13. Long running operations](#13-long-running-operations)
112128
- [13.1. Resource based long running operations (RELO)](#131-resource-based-long-running-operations-relo)
113129
- [13.2. Stepwise long running operations](#132-stepwise-long-running-operations)
114-
- [13.2.1. PUT](#1321-put)
115-
- [13.2.2. POST](#1322-post)
116-
- [13.2.3. POST, hybrid model](#1323-post-hybrid-model)
117-
- [13.2.4. Operations resource](#1324-operations-resource)
118-
- [13.2.5. Operation resource](#1325-operation-resource)
119-
- [13.2.6. Operation tombstones](#1326-operation-tombstones)
120-
- [13.2.7. The typical flow, polling](#1327-the-typical-flow-polling)
121-
- [13.2.8. The typical flow, push notifications](#1328-the-typical-flow-push-notifications)
122-
- [13.2.9. Retry-After](#1329-retry-after)
130+
- [13.2.1. PUT](#1321-put)
131+
- [13.2.2. POST](#1322-post)
132+
- [13.2.3. POST, hybrid model](#1323-post-hybrid-model)
133+
- [13.2.4. Operations resource](#1324-operations-resource)
134+
- [13.2.5. Operation resource](#1325-operation-resource)
135+
- [Percent complete](#percent-complete)
136+
- [Target resource location](#target-resource-location)
137+
- [13.2.6. Operation tombstones](#1326-operation-tombstones)
138+
- [13.2.7. The typical flow, polling](#1327-the-typical-flow-polling)
139+
- [Example of the typical flow, polling](#example-of-the-typical-flow-polling)
140+
- [13.2.8. The typical flow, push notifications](#1328-the-typical-flow-push-notifications)
141+
- [Example of the typical flow, push notifications existing subscription](#example-of-the-typical-flow-push-notifications-existing-subscription)
142+
- [13.2.9. Retry-After](#1329-retry-after)
123143
- [13.3. Retention policy for operation results](#133-retention-policy-for-operation-results)
124-
- [14. Throttling, Quotas, and Limits](#14-throttling-quotas-and-limits)
144+
- [14. Throttling, Quotas, and Limits](#14-throttling-quotas-and-limits)
125145
- [14.1. Principles](#141-principles)
126146
- [14.2. Return Codes (429 vs 503)](#142-return-codes-429-vs-503)
127147
- [14.3. Retry-After and RateLimit Headers](#143-retry-after-and-ratelimit-headers)
128148
- [14.4. Service Guidance](#144-service-guidance)
129-
- [14.4.1. Responsiveness](#1441-responsiveness)
130-
- [14.4.2. Rate Limits and Quotas](#1442-rate-limits-and-quotas)
131-
- [14.4.3. Overloaded services](#1443-overloaded-services)
132-
- [14.4.4. Example Response](#1444-example-response)
149+
- [14.4.1. Responsiveness](#1441-responsiveness)
150+
- [14.4.2. Rate Limits and Quotas](#1442-rate-limits-and-quotas)
151+
- [14.4.3. Overloaded services](#1443-overloaded-services)
152+
- [14.4.4. Example Response](#1444-example-response)
133153
- [14.5. Caller Guidance](#145-caller-guidance)
134154
- [14.6. Handling callers that ignore Retry-After headers](#146-handling-callers-that-ignore-retry-after-headers)
135-
- [15. Push notifications via webhooks](#15-push-notifications-via-webhooks)
155+
- [15. Push notifications via webhooks](#15-push-notifications-via-webhooks)
136156
- [15.1. Scope](#151-scope)
137157
- [15.2. Principles](#152-principles)
138158
- [15.3. Types of subscriptions](#153-types-of-subscriptions)
139159
- [15.4. Call sequences](#154-call-sequences)
140160
- [15.5. Verifying subscriptions](#155-verifying-subscriptions)
141161
- [15.6. Receiving notifications](#156-receiving-notifications)
142-
- [15.6.1. Notification payload](#1561-notification-payload)
162+
- [15.6.1. Notification payload](#1561-notification-payload)
143163
- [15.7. Managing subscriptions programmatically](#157-managing-subscriptions-programmatically)
144-
- [15.7.1. Creating subscriptions](#1571-creating-subscriptions)
145-
- [15.7.2. Updating subscriptions](#1572-updating-subscriptions)
146-
- [15.7.3. Deleting subscriptions](#1573-deleting-subscriptions)
147-
- [15.7.4. Enumerating subscriptions](#1574-enumerating-subscriptions)
164+
- [15.7.1. Creating subscriptions](#1571-creating-subscriptions)
165+
- [15.7.2. Updating subscriptions](#1572-updating-subscriptions)
166+
- [15.7.3. Deleting subscriptions](#1573-deleting-subscriptions)
167+
- [15.7.4. Enumerating subscriptions](#1574-enumerating-subscriptions)
148168
- [15.8. Security](#158-security)
149-
- [16. Unsupported requests](#16-unsupported-requests)
169+
- [16. Unsupported requests](#16-unsupported-requests)
150170
- [16.1. Essential guidance](#161-essential-guidance)
151171
- [16.2. Feature allow list](#162-feature-allow-list)
152-
- [16.2.1. Error response](#1621-error-response)
153-
- [17. Naming guidelines](#17-naming-guidelines)
172+
- [16.2.1. Error response](#1621-error-response)
173+
- [17. Naming guidelines](#17-naming-guidelines)
154174
- [17.1. Approach](#171-approach)
155175
- [17.2. Casing](#172-casing)
156176
- [17.3. Names to avoid](#173-names-to-avoid)
@@ -160,10 +180,10 @@ This document establishes the guidelines Microsoft REST APIs SHOULD follow so RE
160180
- [17.7. Name properties](#177-name-properties)
161181
- [17.8. Collections and counts](#178-collections-and-counts)
162182
- [17.9. Common property names](#179-common-property-names)
163-
- [18. Appendix](#18-appendix)
183+
- [18. Appendix](#18-appendix)
164184
- [18.1. Sequence diagram notes](#181-sequence-diagram-notes)
165-
- [18.1.1. Push notifications, per user flow](#1811-push-notifications-per-user-flow)
166-
- [18.1.2. Push notifications, firehose flow](#1812-push-notifications-firehose-flow)
185+
- [18.1.1. Push notifications, per user flow](#1811-push-notifications-per-user-flow)
186+
- [18.1.2. Push notifications, firehose flow](#1812-push-notifications-firehose-flow)
167187

168188
<!-- /TOC -->
169189

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ They may additionally create documents specific to their team, adding further gu
66
We publish these guidelines here with the aim of fostering dialogue and learning in the API community at large.
77
We further hope that these guidelines may encourage other organizations to create guidelines that are appropriate for them and in turn, if they are able, to publish theirs.
88

9-
### Additional guidance for Azure service teams
10-
Azure service teams should reference the companion documents, [Azure REST API Guidelines](./azure/Guidelines.md) and [Considerations for Service Design](./azure/ConsiderationsForServiceDesign.md), when building or modifying their services. These documents provide a refined set of guidance targeted specifically for Azure services. For more information please refer to the [README](./azure/README.md) in the Azure folder.
9+
### Guidance for Azure service teams
10+
Azure service teams should use companion documents, [Azure REST API Guidelines](./azure/Guidelines.md) and [Considerations for Service Design](./azure/ConsiderationsForServiceDesign.md), when building or modifying their services. These documents provide a refined set of guidance targeted specifically for Azure services. For more information please refer to the [README](./azure/README.md) in the Azure folder.
1111

12-
### Additional guidance for Microsoft Graph service teams
12+
### Guidance for Microsoft Graph service teams
1313
Graph service teams should reference the companion document, [Graph REST API Guidelines](./graph/GuidelinesGraph.md) when building or modifying their services. This document and the associated pattern catalog provides a refined set of guidance targeted specifically for Microsoft Graph services.
1414

1515
[![License: CC BY 4.0](https://img.shields.io/badge/License-CC%20BY%204.0-lightgrey.svg)](https://creativecommons.org/licenses/by/4.0/)

0 commit comments

Comments
 (0)