Skip to main content

OpenAPI specification tools for analyzing, updating, and generating a CLI.

Project description

openapi-spec-tools

Welcome to OpenAPI specification (OAS) tools!

This is a collection of tools for using OpenAPI specifications. The OpenAPI community has a plethora of tools, and this is intended to supplement those. The tools here provide functionality that has not been readily available elsewhere.

OAS

The oas script provides a tool for analyzing and modifying an OpenAPI spec. See OAS.md for more info.

CLI Generation

The cli-gen tool allows users to create a user-friendly CLI using the OpenAPI spec and a layout file. The layout file provides the CLI structure and refers to the OpenAPI spec for details of operations. LAYOUT.md has more details about the layout file, and the CLI_GEN.md has more info about CLI generation.

Turn a simple layout like:

main:
  description: Manage pets
  operations:
    - name: add
      operationId: createPets

Into code that produces a CLI that has commands like:

% pets add --help
                                                                                                                                                        
 Usage: pets add [OPTIONS]                                             

 Create a pet
 
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --id                 INTEGER                                                                                                                         │
│ --name               TEXT                                                                                                                            │
│ --tag                TEXT                                                                                                                            │
│ --owner              TEXT                                                                                                                            │
│ --api-host           TEXT                              API host address [env var: API_HOST]                                                          │
│ --api-key            TEXT                              API key for authentication [env var: API_KEY]                                                 │
│ --api-timeout        INTEGER                           API request timeout in seconds for a single request [env var: API_TIMEOUT] [default: 5]       │
│ --log                [critical|error|warn|info|debug]  Log level [env var: LOG_LEVEL] [default: warn]                                                │
│ --format             [table|json|yaml]                 Output format style [env var: OUTPUT_FORMAT] [default: table]                                 │
│ --style              [none|bold|all]                   Style for output [env var: OUTPUT_STYLE] [default: all]                                       │
│ --help                                                 Show this message and exit.                                                                   │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
% 

See the examples in examples/ for some more complete works.

client.mk

The client.mk file is an example of a Makefile to invoke the OpenAPI generator via a container. The file can be copied/modified to be invoked with an OpenAPI specfication (other than openapi.yaml) and a real package name. For a more complete list of generator options, look at the OpenAPI generator usage documentation.

Contributing

The DEVELOPMENT.md has more information about getting setup as a developer.

The TODO.md has some ideas where this project can be improved and expanded -- please add your ideas here, or email Rick directly (rickwporter@gmail.com).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

openapi_spec_tools-0.3.0.tar.gz (39.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

openapi_spec_tools-0.3.0-py3-none-any.whl (46.9 kB view details)

Uploaded Python 3

File details

Details for the file openapi_spec_tools-0.3.0.tar.gz.

File metadata

  • Download URL: openapi_spec_tools-0.3.0.tar.gz
  • Upload date:
  • Size: 39.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for openapi_spec_tools-0.3.0.tar.gz
Algorithm Hash digest
SHA256 8f2c874049ecf32ee2aec8a1e2e47c16ca6ca33dd4067ba55e2ce46da683c0bf
MD5 cb277cdacd4c3481c5fcd92e43f99453
BLAKE2b-256 07da3c710c1692e6dc7d3fd01b3400a7ea6b490ea0c3b0f138c9df6976b92139

See more details on using hashes here.

Provenance

The following attestation bundles were made for openapi_spec_tools-0.3.0.tar.gz:

Publisher: pypi_publish.yaml on rickwporter/openapi-spec-tools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file openapi_spec_tools-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for openapi_spec_tools-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2588b43097ea825830453dbc66387325b922cafbae8307373fc500b75f939c00
MD5 29f804aae80a4290230edf48d18366c4
BLAKE2b-256 a74ba8e0d459d16b81dc3ad19eac76ff534582990a6ed3731cfda3faaf0dff86

See more details on using hashes here.

Provenance

The following attestation bundles were made for openapi_spec_tools-0.3.0-py3-none-any.whl:

Publisher: pypi_publish.yaml on rickwporter/openapi-spec-tools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page