Hidi is a command line tool that makes it easy to work with and transform OpenAPI documents. The tool enables you validate and apply transformations to and from different file formats using various commands to do different actions on the files.
Hidi has these key capabilities that enable you to build different scenarios off the tool
• Validation of OpenAPI files
• Conversion of OpenAPI files into different file formats: convert files from JSON to YAML, YAML to JSON
• Slice or filter OpenAPI documents to smaller subsets using operationIDs and tags
• Generate a Mermaid diagram of the API from an OpenAPI document
Install Microsoft.OpenApi.Hidi package from NuGet by running the following command:
dotnet tool install --global Microsoft.OpenApi.Hidi --prerelease
dotnet new tool-manifest #if you are setting up the OpenAPI.NET repo
dotnet tool install --local Microsoft.OpenApi.Hidi --prerelease
Once you've installed the package locally, you can invoke the Hidi by running: hidi [command]
. You can access the list of command options we have by running hidi -h
The tool avails the following commands:
• Validate
• Transform
• Show
This command option accepts an OpenAPI document as an input parameter, visits multiple OpenAPI elements within the document and returns statistics count report on the following elements:
• Path Items
• Operations
• Parameters
• Request bodies
• Responses
• Links
• Callbacks
• Schemas
It accepts the following command:
• --openapi(-d) - OpenAPI description file path or URL
• --loglevel(-ll) - The log level to use when logging messages to the main output
hidi validate --openapi C:\OpenApidocs\Mail.yml --loglevel trace`
Run
hidi validate -h
to see the options available.
Used to convert file formats from JSON to YAML and vice versa and performs slicing of OpenAPI documents.
This command accepts the following parameters:
• --openapi, (-d) - OpenAPI description file path in the local filesystem or a valid URL hosted on a HTTPS server
• --csdl (--cs) - CSDL file path in the local filesystem or a valid URL hosted on a HTTPS server
• --csdl-filter (--csf) - a filter parameter that a user can use to select a subset of a large CSDL file. They do so by providing a comma delimited list of EntitySet and Singleton names that appear in the EntityContainer.
• --output (-o) - Output directory path for the transformed document.
• --clean-output (--co) - an optional param that allows a user to overwrite an existing file.
• --version (-v) - OpenAPI specification version.
• --metadata-version (--mv) - the metadata version to use.
• --format (-f) - File format
• --terse-output (--to) - Produce terse json output
• --settings-path (--sp) - The configuration file with CSDL conversion settings.
• --log-level (--ll) - The log level to use when logging messages to the main output
• --inline-local (--il) - Inline local $ref instances
• --inline-external (--ie) - Inline external $refs instances
• --filter-by-operationids(--op) - Slice document based on OperationId(s) provided. Accepts a comma delimited list of operation ids.
• --filter-by-tags (--t) - Slice document based on tag(s) provided. Accepts a comma delimited list of tags.
• --filter-by-collection (-c) - Slices the OpenAPI document based on the Postman Collection file generated by Resource Explorer
- Filtering by OperationIds
hidi transform -d files\People.yml -f yaml -o files\People.yml -v OpenApi3_0 --op users_UpdateInsights --co
- Filtering by Postman collection
hidi transform --openapi files\People.yml --format yaml --output files\People2.yml --version OpenApi3_0 --filter-by-collection Graph-Collection-0017059134807617005.postman_collection.json
- CSDL--->OpenAPI conversion and filtering
hidi transform --csdl Files/Todo.xml --output Files/Todo-subset.yml --format yaml --version OpenApi3_0 --filter-by-operationids Todos.Todo.UpdateTodo
- CSDL Filtering by EntitySets and Singletons
hidi transform --cs dataverse.csdl --csdl-filter "appointments,opportunities" -o appointmentsAndOpportunities.yaml --ll trace
Run
hidi transform -h
to see all the available usage options.
This command accepts an OpenAPI document as an input parameter and generates a Markdown file that contains a diagram of the API using Mermaid syntax.
hidi show -d files\People.yml -o People.md -ll trace
This command generates an OpenAI style Plugin manifest and minimal OpenAPI file based on the provided API Manifest
hidi plugin -m exampleApiManifest.yml -o mypluginfolder
Run
hidi plugin -h
to see all the available usage options.