/msgraph-sdk-design

Requirements and design documents for Microsoft Graph SDKs

Primary LanguageSCSSMIT LicenseMIT

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.

Component Architecture

SDK Features Support

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

Supported Languages

.NET

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

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 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.

PHP

Role Repo Packages
Service+Models msgraph-sdk-php
Core msgraph-sdk-php-core
beta msgraph-sdk-php-beta

Ruby

Role Repo Packages
All msgraph-sdk-ruby

Python

Role Repo Packages
Service+Models msgraph-sdk-python PyPI
Core msgraph-sdk-python-core PyPI
beta msgraph-beta-sdk-python 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.