How to return a JSON response form a Flask API ? - GeeksforGeeks

21 Oct, 2021
Flask is one of the most widely used python micro-frameworks to design a REST API. In this article, we are going to learn how to create a simple REST API that returns a simple JSON object, with the help of a flask.
Prerequisites: Introduction to REST API
What is a REST API?
REST stands for Representational State Transfer and is an architectural style used in modern web development. It defines a set or rules/constraints for a web application to send and receive data. In this article, we will build a REST API in Python using the Flask framework. Flask is a popular micro framework for building web applications.
Approaches: We are going to write a simple flask API that returns a JSON response using two approaches:
Using Flask jsonify object.Using the flask_restful library with Flask.
Using Flask jsonify object.
Using the flask_restful library with Flask.
Libraries Required:
Install the python Flask library using the following command:
pip install Flask
Install the flask-restful library using the following command:
pip install Flask-RESTful
Approach 1: Using Flask jsonify object – In this approach, we are going to return a JSON response using the flask jsonify method. We are not going to use the flask-restful library in this method.
Create a new python file named ‘main.py’.
import Flask, jsonify, and request from the flask framework.
Register the web app into an app variable using the following syntax.
app = Flask(__name__)
Create a new function named ‘ReturnJSON’. This function is going to return the sample JSON response.
Route the ‘ReturnJSON’ function to your desired URL using the following syntax.
@app.route('/path_of_the_response', methods = ['GET'])
def ReturnJSON():
  pass
Inside the ‘ReturnJSON’ function if the request method is ‘GET’ then create a python dictionary with the two elements message.
Jsonify the python dictionary and return it.
Build the flask application using the following command.
if __name__=='__main__':
    app.run(debug=True)
Run the ‘main.py’ file in the terminal or the IDE.
Code:
Python3
from flask import Flask,jsonify,request  app =   Flask(__name__)  @app.route('/returnjson', methods = ['GET'])def ReturnJSON():    if(request.method == 'GET'):        data = {            "Modules" : 15,            "Subject" : "Data Structures and Algorithms",        }          return jsonify(data)  if __name__=='__main__':    app.run(debug=True)
Output:
Approach 2: Using the flask_restful library with Flask – In this approach, we are going to create a simple JSON response with the help of the flask-restful library. The steps are discussed below:
Create a new python file named ‘main.py’.
Import Flask from the flask framework.
Import API and Resource from the ‘flask_restful’ library.
Register the web app into an app variable using the following syntax.
app = Flask(__name__)
Register the app variable as an API object using the API method of the ‘flask_restful’  library.
api = Api(app)
Create a resource class named ‘ReturnJSON’.
Inside the resource, the class creates a ‘get’ method.
Return a dictionary with the simple JSON response from the ‘get’ method.
Add the resource class to the API using the add_resource method.
Build the flask application using the following command.
if __name__=='__main__':
    app.run(debug=True)
Run the ‘main.py’ file in the terminal or the IDE.
Code:
Python3
from flask import Flaskfrom flask_restful import Api, Resource  app =   Flask(__name__)  api =   Api(app)  class returnjson(Resource):    def get(self):        data={            "Modules": 15,             "Subject": "Data Structures and Algorithms"        }        return data  api.add_resource(returnjson,'/returnjson')    if __name__=='__main__':    app.run(debug=True)
Output:
Picked
Python Flask
Python
Web Technologies
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Read a file line by line in Python
How to Install PIP on Windows ?
Enumerate() in Python
Different ways to create Pandas Dataframe
Iterate over a list in Python
Remove elements from a JavaScript Array
Installation of Node.js on Linux
Convert a string to an integer in JavaScript
How to fetch data from an API in ReactJS ?
How to insert spaces/tabs in text using HTML/CSS?