Microsoft Graph SDKs - Requirements and Design
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.
SDK Features Support
Component | Feature | .net | Java | JS | ObjC | Powershell | PHP | Ruby | Python | Go |
---|---|---|---|---|---|---|---|---|---|---|
Middleware | ||||||||||
Pipeline | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
Authorization Handler | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | N/A | |||
Retry Handler | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
Redirect Handler | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
Request compression Handler | ||||||||||
Response decompression Handler | ✓ | N | N | N | ✓ | |||||
Logging Handler | O | ✓ | ||||||||
Telemetry Handler | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
Connection Management | ||||||||||
Long Running Operations | ||||||||||
Chaos Handler | ✓ | O | ||||||||
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
Supported Languages
.NET
Role | Repo | Packages |
---|---|---|
Service+Models | msgraph-sdk-dotnet | Nuget |
Core | msgraph-sdk-dotnet-core | Nuget |
Auth | msgraph-sdk-dotnet-auth | Nuget |
Beta | msgraph-beta-sdk-dotnet | Nuget |
Go
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 |
Javascript
Role | Repo | Packages |
---|---|---|
Service+Core | msgraph-sdk-javascript | |
Models | msgraph-typescript-typings |
Java
Role | Repo | Packages |
---|---|---|
Service+Models | msgraph-sdk-java | |
Core | msgraph-sdk-java-core | |
Auth | azure-identity | |
beta | msgraph-beta-sdk-java |
Java Core is based on the OkHttp.
Objective C
Role | Repo | Packages |
---|---|---|
Core | msgraph-sdk-objc | |
Auth | msgraph-sdk-objc-auth | |
Models | msgraph-sdk-objc-models |
PHP
Role | Repo | Packages |
---|---|---|
Service+Models | msgraph-sdk-php |
Ruby
Role | Repo | Packages |
---|---|---|
All | msgraph-sdk-ruby |
Python
Role | Repo | Packages |
---|---|---|
Core | msgraph-sdk-python-core | PyPI |
Issues
View or log issues on the Issues tab in the repo.
Copyright and license
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.