Search code examples
pythonflaskflask-restplus

How to document the post body using flask-ReSTplus?


insert user data

How to document the input body that is expected to be posted in the value field to appear so that the user knows what to post? the following data is used currently:

{
 "customer_id": "",
 "service_id": "",
 "customer_name": "",
 "site_name": "",
 "service_type": ""
}

can we populate the value by default with the above json?

Code:

post_parser = reqparse.RequestParser()
post_parser.add_argument('database',  type=list, help='user data', location='json')

@ns_database.route('/insert_user')
class database(Resource):
@ns_database.expect(post_parser)
def post(self):
    """insert data"""
    json_data = request.json
    customer_id = json_data['customer_id']
    service_id = json_data['service_id']
    customer_name = json_data['customer_name']
    site_name = json_data['site_name']
    service_type = json_data['service_type']

Solution

  • I have solved it (partially) using the following model

    """ Model for documenting the API"""
    
    insert_user_data = ns_database.model(
        "Insert_user_data",
        {
            "customer_id": fields.String(description="cust ID", required=True),
            "service_id": fields.String(description="service ID", required=True),
            "customer_name": fields.String(description="Customer1", required=True),
            "site_name": fields.String(description="site", required=True),
            "service_type": fields.String(description="service", required=True),
        },
    )
    
    
    @ns_database.route("/insert_user")
    class database(Resource):
        @ns_database.expect(insert_user_data)
        def post(self):
            """insert data"""
            json_data = request.json
            customer_id = json_data["customer_id"]
            service_id = json_data["service_id"]
            customer_name = json_data["customer_name"]
            site_name = json_data["site_name"]
            service_type = json_data["service_type"]
    

    now the API shows model for data input and an example

    solved