The AutoRest tool generates client libraries for accessing RESTful web services. Input to AutoRest is a spec that describes the REST API using the Open API Initiative format.
AutoRest is an open source tool -- if you need assistance, first check the documentation. If you find a bug or need some help, feel free to submit an issue
AutoRest will release a stable version on the second Wednesday of the month.
Using npm
you can upgrade to the latest stable version of AutoRest:
# Install latest autorest package
npm install -g autorest
# Update the generator plugins to the latest stable version
autorest --reset
You can still access the nightly build of the generator plugins by using --prerelease
on the autorest command line:
# install the latest nightly autorest generators
autorest --latest --prerelease
# revert back to the latest stable release of autorest generators:
autorest --reset
If you're living life on the edge (and know what you're doing!) you can access the next
version of the main autorest package from npm:
# install the 'next' version of the autorest package
npm install autorest@next
# revert to the 'stable' version of the autorest package
npm install autorest@latest
Features-in-progress in AutoRest will be found in the 'next' version, and use at your own risk :D
The finishing touches on the extension model are being made right now in the @next
version of autorest, which will
make it possible to install and manage extensions on a fine-grained level, as well as being able to publish a plugin written in different languages.
We've already started on the path to OpenAPI 3 support, a new code modeler, which will lead to generators for some languages, and new language support!
Installing AutoRest on Windows, MacOS or Linux involves two steps:
- Install Node.js (7.10.0 or greater)
for more help, check out Installing Node.JS on different platforms
- Install AutoRest using
npm
# Depending on your configuration you may need to be elevated or root to run this. (on OSX/Linux use 'sudo' )
npm install -g autorest
To update AutoRest if you have previous versions installed, please run:
autorest --latest
or
# Removes all other versions and installs the latest
autorest --reset
For more information, run autorest --help
OS | Status |
---|---|
Windows x64 | Verified - Working |
OSX 10.11 x64 | Verified - Working (may have to install openssl manually?) |
Ubuntu 14.04 x64 (any) | Verified - Working -- use the following commands first: sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get install libunwind8 libicu52 -y |
Ubuntu 16.04 x64 (desktop) | Verified - Working |
Ubuntu 16.04 x64 (server or via BashForWindows/WSL) | Verified - Working -- use the following commands first: sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get install libunwind8 -y |
Ubuntu 16.10 x64 | Verified - Working -- use the following commands first: sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get install libunwind8 -y && wget http://mirrors.kernel.org/ubuntu/pool/main/i/icu/libicu55_55.1-7_amd64.deb && sudo dpkg -i libicu55_55.1-7_amd64.deb |
Other Linux platforms might work -- if the platform is listed https://github.com/Azure/autorest/releases/tag/dotnet-runtime-1.0.4 -- there is a fairly good chance that it'll work. As more testing is completed, we'll ensure that we update the status here.
Start by reading the documentation for using AutoRest:
- Managing Autorest - shows how to get new updates to AutoRest and choose which version to use for code generation
- Generating a Client using AutoRest - shows simple command line usage for generating a client library.
- Command Line Interface Documentation - explains common command line arguments
- Examples - full, walkthrough-style scenarios for using AutoRest
Get yourself up and coding in AutoRest
- Developer Workstation Requirements - what do you need to install to start working with the AutoRest code
- Compiling AutoRest - compiling/testing AutoRest using the build scripts
Some information about the internal AutoRest architecture (may need updating!):
- Developer Guide - Notes on developing with AutoRest
- AutoRest and ClientRuntimes - about the client runtime requirements for AutoRest
- The
CodeModel
data model and the Language-specific Generator/Transformer/Namer Fixable<T>
implementation - When a value is both calculated and/or fixed- LODIS - The Least Offensive Dependency Injection System
- Name Disambiguation - how names don't collide in code generation.
- Validation Rules & Linting - about the validation rules in AutoRest
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.