Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add guidance for implementing an external standard on graph #503

Draft
wants to merge 112 commits into
base: corranrogue9/externalstandards
Choose a base branch
from

Conversation

corranrogue9
Copy link
Contributor

No description provided.

@@ -328,6 +329,19 @@ For a complete mapping of error codes to HTTP statuses, see

<a name="api-contract-and-non-backward-compatible-changes"></a>

## External standards

For ease of client use and interoperatibility, some APIs should implement a standard that is defined external to Microsoft Graph and OData.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From Mike, I should be clear what APIs "conflict with odata stnadrad/graph guidelines"

Workloads must define these standards in their CSDL model if they do not conflict with the OData standard.
Standards that *do* conflict with the OData standard may be defined in the CSDL in one of two ways:
1. Using `Edm.Untyped` only and support for the external standard will come directly from the service implementation; OR
2. Adding CSDL elements to model the external standard using `Edm.String` for `EnumType`s that conflict with the OData standard and `Edm.Untyped` wherever any other conflict with the OData standard occurs
Copy link
Contributor Author

@corranrogue9 corranrogue9 Nov 6, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From Mike: The structuring of the conjunction makes this sentence seem like it's only about enums

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The allowed values annotaiton should be used for strings

@OlgaPodo OlgaPodo added Graph Guidelines This should be reviewed by Microsoft Grap team. Microsoft Graph This should be reviewed by Microsoft Grap team. labels Dec 1, 2023
tylercleveland2 and others added 30 commits April 3, 2024 13:23
* Added LRO guidelines
* Restore all prior named guidelines with some edits where needed
* Address PR review feedback

Co-authored-by: Mike Kistler <[email protected]>
Co-authored-by: Weidong Xu <[email protected]>
Clarify: cast is not required in order to see properties of derived types.
Use proper noun name for graph product
Rename `bankAccountInformation` to `bankAccountDetail`
Fix grammar
Add link to nav prop article
Update to `existing core types`
Update description of core types in overview to addd "intrinsic"
Add guidance for types which should not have new structural properties
-require alias, as per [ADR-030](https://microsoft.sharepoint.com/teams/APICouncil/_layouts/OneNote.aspx?id=%2Fteams%2FAPICouncil%2FSiteAssets%2FAPI%20Council%20Notebook&wd=target%28ADRs.one%7CCC35B798-B670-4554-9FCF-1682729EFA23%2FADR-030%20Namespace%20Aliases%7C363534F8-EFBD-4201-9F11-DB02AD5B7FAA%2F%29)
-support multiple levels below microsoft.graph (as per [ADR-030])
-clarify uniqueness across namespaces
-clarify that any change to a custom namespace name is breaking
-add alias to the examples as per above
Co-authored-by: Dan Kershaw [MSFT] <[email protected]>
Clarify the naming of EnumTypes and give guidance for the use of flags enums and non-flags enums simultaneously
Add guidance for naming flags vs non-flags enums and cases where they should be defined side-by-side
Fixed wording from `modeling behavior` to `behavior modeling`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Graph Guidelines This should be reviewed by Microsoft Grap team. Microsoft Graph This should be reviewed by Microsoft Grap team.
Projects
None yet
Development

Successfully merging this pull request may close these issues.