coding-kitties / flask-swagger-generator

A simple to use flask swagger generator working with the Flask web framework.
MIT License
6 stars 6 forks source link

No support for Nested Schema for request/responses #28

Closed fizaashraf37 closed 1 year ago

fizaashraf37 commented 1 year ago

If user passes a json schema for request or response with nested fields as in this example:

@generator.request_body({'id': 10, 'name': 'test_object', "values": {"id":1, "name":"test"}})
@blueprint.route('/objects/<int:object_id>', methods=['PUT'])
def update_object(object_id):
    return jsonify({'id': 1, 'name': 'test_object_name'}), 201

It generates below error:

Traceback (most recent call last):
  File "test.py", line 24, in <module>
    @blueprint.route('/objects/<int:object_id>', methods=['PUT'])
  File "E:\OpenSource\flask-swagger-generator\flask_swagger_generator\generators\generator.py", line 83, in swagger_request_body
    func.__name__, schema
  File "E:\OpenSource\flask-swagger-generator\flask_swagger_generator\specifiers\swagger_three_specifier.py", line 660, in add_request_body   
    schema
  File "E:\OpenSource\flask-swagger-generator\flask_swagger_generator\specifiers\swagger_three_specifier.py", line 70, in __init__
    self.get_type(schema[key]).value
AttributeError: 'NoneType' object has no attribute 'value'

This prevents nested object to get added in schema and also generates invalid yaml.

fizaashraf37 commented 1 year ago

I have created a feature branch for this and have also created PR#29

MDUYN commented 1 year ago

Hey @fizaashraf37, thanks a lot. I currently adding this feature with your pull request on develop branch. I am adding tests and then I will release it

MDUYN commented 1 year ago

Lets keep this issue open and update it when its resolved