Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ioggstream/openapi-resolver
A python 3 module for resolving $refs in OpenAPI specs and create bundles.
https://github.com/ioggstream/openapi-resolver
api api-design openapi3
Last synced: about 2 months ago
JSON representation
A python 3 module for resolving $refs in OpenAPI specs and create bundles.
- Host: GitHub
- URL: https://github.com/ioggstream/openapi-resolver
- Owner: ioggstream
- License: mit
- Created: 2018-08-24T13:05:35.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2021-09-24T13:34:06.000Z (about 3 years ago)
- Last Synced: 2024-10-15T03:43:00.676Z (2 months ago)
- Topics: api, api-design, openapi3
- Language: Python
- Homepage:
- Size: 54.7 KB
- Stars: 5
- Watchers: 3
- Forks: 6
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# OpenAPI Resolver
[![CircleCI](https://circleci.com/gh/ioggstream/openapi-resolver.svg?style=svg)](https://circleci.com/gh/ioggstream/openapi-resolver)
[![CodeCov](https://codecov.io/gh/ioggstream/openapi-resolver/branch/master/graph/badge.svg)](https://codecov.io/gh/ioggstream/openapi-resolver)This module recursively parses openapi specs resolving references.
## Test
Tests run locally via
tox
Or via [circleci-local](https://circleci.com/docs/2.0/local-cli/)
circleci build
## Usage
The module has an embedded script that can be run via
$ python -m openapi_resolver --help
usage: __main__.py [-h] src_file [dst_file]
Recursively resolves and bundles OpenAPI v3 files.
positional arguments:
src_file An OpenAPI v3 yaml file.
dst_file Destination file, default is stdout.optional arguments:
-h, --help show this help message and exitTo create an openapi bundle from a spec file just run
$ python -m openapi_resolver sample.yaml
You can use this module to normalize two specs before diffing, eg:
$ python -m openapi_resolver one.yaml normal-one.yaml
$ python -m openapi_resolver two.yaml normal-two.yaml
$ diff normal-one.yaml normal-two.yaml## Use with docker
Build the image with:
```
$ docker build --tag openapi-resolver .
```then run docker mapping the openapi.yaml directory
to the `/code` volume.```
docker run -it --rm -v $(dirname path-to-openapi.yaml):/code \
openapi-resolver /code/openapi.yaml /code/bundle.yaml
```