"Json to Swagger" conversor
Python utility created to convert JSON to Swagger definitions structure, based on entities concept.
Dependencies
- Python 3.6+
- Libraries:
- swagger-parser
- pyyaml
- pattern
Note: Before run, execute:
$ pip install -r requirements.txt
Usage
Running:
$ python main.py <json-file-path> <RootEntityName> [swagger-file-path] [-v]
json-file-path- path of json file to convertRootEntityName- name of root swagger definitions entityswagger-file-path- path of swagger file. If the file has content, it will be merged with json converted content-v- verbose mode
example.json
{
"id": "ffe74d36-4f76-4ca6-9dd1-8d5c9b16b056",
"name": "JSON example",
"description": "Just a simple JSON file to convert into swagger definition",
"someObject": {
"someInteger": 0,
"someNumber": 0.1,
"someBoolean": true,
"someNull": null,
"someString": "Example string content"
},
"items": [
{
"name": "Item",
"subItem": {
"subItemsOfSubItem": [
{
"foo": "bar"
}
]
}
}
]
}
example.swagger.yaml
definitions:
Root:
type: object
title: Root
description: Root Entity
properties:
id:
type: string
example: ffe74d36-4f76-4ca6-9dd1-8d5c9b16b056
name:
type: string
example: JSON example
description:
type: string
example: Just a simple JSON file to convert into swagger definition
someObject:
$ref: '#/definitions/SomeObject'
items:
type: array
items:
$ref: '#/definitions/Item'
SomeObject:
type: object
title: Some Object
description: Some Object Entity
properties:
someInteger:
type: integer
example: 0
someNumber:
type: number
example: 0.1
someBoolean:
type: boolean
example: true
someNull:
type: string
example: null
someString:
type: string
example: Example string content
Item:
type: object
title: Item
description: Item Entity
properties:
name:
type: string
example: Item
subItem:
$ref: '#/definitions/SubItem'
SubItem:
type: object
title: Sub Item
description: Sub Item Entity
properties:
subItemsOfSubItem:
type: array
items:
$ref: '#/definitions/SubItemsOfSubItem'
SubItemsOfSubItem:
type: object
title: Sub Items Of Sub Item
description: Sub Items Of Sub Item Entity
properties:
foo:
type: string
example: bar
Attention: Properties with same name will be merged
Example
In the JSON structure bellow, it has the "items" property in two objects:
{
"items": [
{
"name": "Item",
"subItem": {
"items": [
{
"foo": "bar"
}
]
}
}
]
}
The result will merge the two "items" properties into "Item" entity:
definitions:
RootEntity:
type: object
title: Root
description: Root Entity
properties:
items:
type: array
items:
$ref: '#/definitions/Item'
Item:
type: object
title: Item
description: Item Entity
properties:
name:
type: string
example: Item
subItem:
$ref: '#/definitions/SubItem'
foo:
type: string
example: bar
SubItem:
type: object
title: Sub Item
description: Sub Item Entity
properties:
items:
type: array
items:
$ref: '#/definitions/Item'
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
json-to-swagger-0.0.5.tar.gz
(3.9 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file json-to-swagger-0.0.5.tar.gz.
File metadata
- Download URL: json-to-swagger-0.0.5.tar.gz
- Upload date:
- Size: 3.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/47.3.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4f52bb9ca4c9217ac5ea85efb3c6b72c1dd22acde008384da8ace685892bb000
|
|
| MD5 |
a6241c8ccdb5decbdbf21c05374ddc12
|
|
| BLAKE2b-256 |
f30e810c9cd7ba722d486f530c7b760ae29aabff4d39b76fb97ea2051a655789
|
File details
Details for the file json_to_swagger-0.0.5-py3-none-any.whl.
File metadata
- Download URL: json_to_swagger-0.0.5-py3-none-any.whl
- Upload date:
- Size: 16.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/47.3.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0463e5e67d84d3ac3308bbfb3ba5e88580ee9339b12aacf080d2d774be54f0a1
|
|
| MD5 |
39073bea416577071d62e716427fb29e
|
|
| BLAKE2b-256 |
d17cfc3a69ae6a45467e4cf742f646458999c42e2e697caf5c44ed167ba7b50a
|