This repository holds documents related to current and on-going work on Microsoft Graph SDKs. The following diagram shows a high level view of the SDK component architecture. The goal is to enable developers to opt-into functionality that they wish to use. Over time all the SDKs will be adapted to follow this pattern.
Component | Feature | .net | Java | JS | Powershell | PHP | Ruby | Python | Go | TS |
---|---|---|---|---|---|---|---|---|---|---|
Middleware | ||||||||||
Pipeline | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
Authorization Handler | ✓ | ✓ | ||||||||
Retry Handler | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
Redirect Handler | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
Request compression Handler | ||||||||||
Response decompression Handler | N | N | N | N | ||||||
Logging Handler (PowerShell only since other languages implement Observability/OTEL ) | N/A | N/A | ✓ | N/A | N/A | N/A | N/A | N/A | ||
Telemetry Handler | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
Connection Management | ||||||||||
Long Running Operations | ||||||||||
Chaos Handler | ✓ | O | ||||||||
Sunset Handler | ||||||||||
Headers Inspection Handler | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
Parameters Name Decoding Handler | ✓ | ✓ | N/A | ✓ | ✓ | ✓ | ✓ | |||
Service Discovery Handler | ||||||||||
Content | ||||||||||
Batch Request Content | ✓ | ✓ | ✓ | |||||||
Batch Response Content | ✓ | ✓ | ✓ | |||||||
Multipart Content | ✓ | ✓ | ||||||||
Error Content | N | |||||||||
Graph Components | ||||||||||
Client Factory | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
Response Handling | ✓ | ✓ | ✓ | |||||||
Tasks | ||||||||||
File Upload | ✓ | ✓ | ✓ | |||||||
Page Iterator | ✓ | ✓ | ✓ | |||||||
Providers | ||||||||||
Authentication | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
Logging | N |
✓ - Completed
O - In progress
N - Native library support
NOTE: additionally all handler should provide observability and tracing support through Open Telemetry. More information
Role | Repo | Packages |
---|---|---|
Service+Models | msgraph-sdk-dotnet | Nuget |
Core | msgraph-sdk-dotnet-core | Nuget |
Auth | Azure Identity | Nuget |
Beta | msgraph-beta-sdk-dotnet | Nuget |
Role | Repo | Packages |
---|---|---|
Service+Models | msgraph-sdk-go | pkg.go.dev |
Core | msgraph-sdk-go-core | pkg.go.dev |
Auth | azure-identity | pkg.go.dev |
beta | msgraph-beta-sdk-go | pkg.go.dev |
Role | Repo | Packages |
---|---|---|
Service+Core | msgraph-sdk-javascript | |
Models | msgraph-typescript-typings |
Role | Repo | Packages |
---|---|---|
Service+Models | msgraph-sdk-java | Maven Central |
Core | msgraph-sdk-java-core | Maven Central |
Auth | azure-identity | Maven Central |
beta | msgraph-beta-sdk-java | Maven Central |
Java Core is based on the OkHttp.
Role | Repo | Packages |
---|---|---|
Service+Models | msgraph-sdk-php | |
Core | msgraph-sdk-php-core | |
beta | msgraph-sdk-php-beta |
Role | Repo | Packages |
---|---|---|
All | msgraph-sdk-ruby |
Role | Repo | Packages |
---|---|---|
Service+Models | msgraph-sdk-python | PyPI |
Core | msgraph-sdk-python-core | PyPI |
beta | msgraph-beta-sdk-python | PyPI |
View or log issues on the Issues tab in the repo.
Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT license.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.