Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/avanov/openapi-client-generator

Generates Python client packages from OpenAPI v3 specifications. The project aims at supporting any generic valid specification.
https://github.com/avanov/openapi-client-generator

codegen http-client mypy oas3 openapi openapi3 parsing python3 rest-api specification swagger typing validation

Last synced: about 1 month ago
JSON representation

Generates Python client packages from OpenAPI v3 specifications. The project aims at supporting any generic valid specification.

Awesome Lists containing this project

README

        

.. _badges:

.. image:: https://github.com/avanov/openapi-client-generator/workflows/CI/badge.svg?branch=develop
:target: https://github.com/avanov/openapi-client-generator/actions?query=branch%3Adevelop

.. image:: https://coveralls.io/repos/github/avanov/openapi-client-generator/badge.svg?branch=develop
:target: https://coveralls.io/github/avanov/openapi-client-generator?branch=develop

.. image:: https://requires.io/github/avanov/openapi-client-generator/requirements.svg?branch=master
:target: https://requires.io/github/avanov/openapi-client-generator/requirements/?branch=master
:alt: Requirements Status

.. image:: https://readthedocs.org/projects/openapi-client-generator/badge/?version=latest
:target: https://openapi-client-generator.readthedocs.io/en/latest/
:alt: Documentation Status

.. image:: http://img.shields.io/pypi/v/openapi-client-generator.svg
:target: https://pypi.python.org/pypi/openapi-client-generator
:alt: Latest PyPI Release

OpenAPI Client Generator
========================

This CLI utility allows you to generate Python client packages from OpenAPI v3 specifications.
The project aims at supporting any generic valid specification.

Features
--------

* works on Python 3.8 and above;
* generates clients with type hints to aid static analysis of higher level interfaces that would use the clients;
* supports streaming endpoints.

Installation
------------

You can install it from PyPI:

.. code-block:: bash

pip install openapi-client-generator

Afterwards, use a CLI utility called ``openapi-client-generator``:

.. code-block:: bash

$ openapi-client-generator --help
usage: openapi-client-generator [-h] [-V] {gen} ...

OpenAPI Client Generator

optional arguments:
-h, --help show this help message and exit
-V, --version show program's version number and exit

sub-commands:
valid sub-commands

{gen} additional help
gen Generate client for a provided schema (JSON, YAML).

Contributing
============

Cloning this repo
-----------------

The proper way to clone this repo is:

.. code-block:: bash

git clone --recurse-submodules
cd

# for showing submodule status with `git status`
git config status.submodulesummary 1

# for logging submodule diff with `git diff`
git config diff.submodule log

Test framework
--------------

The project uses `Nix `_ for bootstrapping its dev environment.

You can run existing test suite with

.. code::

$ nix-shell --run "make test"

Documentation
-------------

Documentation is hosted on ReadTheDocs: https://openapi-client-generator.readthedocs.io/en/develop/

Changelog
---------

See `CHANGELOG `_.

LICENSE
-------

MIT