microsoft / dev-proxy

Dev Proxy is an API simulator that helps you effortlessly test your app beyond the happy path.
https://aka.ms/devproxy
MIT License
457 stars 53 forks source link
command-line-tool dev-proxy developer-tools development devxeng hacktoberfest http microsoft-365 microsoft-graph proxy rest

Dev Proxy
Dev Proxy

Test the untestable

Download Now

Discord

Get started | Documentation

Example | Features | Trademarks

📽️ Simulate throttling using Dev Proxy

Dev Proxy is a command line tool for simulating APIs for testing apps. It aims to provide a better way to test applications. Use the proxy to: - simulate errors - simulate API behaviours - mock responses Identify and fix issues in your code before they reach production. ## Get started Begin with our [tutorial](https://learn.microsoft.com/microsoft-cloud/dev/dev-proxy/get-started/). It will guide you through the installation process and running the proxy for the first time. ## Example Fail requests (with a 50% chance) and respond with `429 Too Many Requests` or `503 Service Unavailable`: ``` devproxy --failure-rate 50 --no-mocks --allowed-errors 429 503 ``` ## Features - run on any OS - Windows - macOS - Linux - intercept requests from Microsoft Graph and other APIs - simulate errors - simulate throttling - simulate rate-limiting - mock responses - mock error responses - define wildcard paths to serve mocked responses - mock responses of different types (JSON, binary, etc.) - `$select` guidance to improve performance - caching guidance to improve performance - OData paging guidance - client-request-id header guidance - non-production beta endpoint guidance for Microsoft Graph - configure proxy to your needs, by setting: - failure rate - port - whether to use mock responses or not - URLs to intercept traffic - record proxy activity - get proxy activity summary report - detect minimal Microsoft Graph API permissions - check for excessive Microsoft Graph API permissions ## Trademarks This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow [Microsoft’s Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general). Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party’s policies. ## A Microsoft Hackathon 2022 Project The initial build of this project was completed in the week of 5-9 September 2022 by Waldek Mastykarz, Gavin Barron and Garry Trinder