Building A Basic RestFul API in Python
Building A Basic RestFul API in Python
codementor.io/@sagaragarwal94/building-a-basic-restful-api-in-python-58k02xsiq
Introduction
API Development in Python is a very easy task. This tutorial will help you to create a
basic REST API in Python with the Flask Framework.
REST APIs are pretty much everywhere. They are the standard method to expose
databases to clients and knowing how to develop a REST API is a necessity at all layers
of the stack.
There are many reasons why you should learn to develop REST APIs in Python. If you
are new to API development, then learning how to develop a REST API, will help you to
showcase yourself to the industry.
1/6
Stuffs we require to build our first REST API
Python
Flask
Flask-SQLAlchemy
Flask-Restful
SQlite3
Jsonify
Once downloaded, make a file named server.py in the python_rest folder. This file will
contain the API Definitions and Flask Code.
2/6
Now, we create a basic virtual
environment for Python2.7 and
install the packages after it's
activation.
$ virtualenv venv
$ source venv/bin/activate
$ pip install flask flask-jsonpify flask-
sqlalchemy flask-restful
$ pip freeze
GET
PUT
POST
DELETE
We will deal with GET and you will get how other works
3/6
Now everything being set up, we begin the code of exposing employees data and tracks
data from database and also add a query operator on employees where employee's
details is searched and fetched by EmployeeID.
db_connect = create_engine('sqlite:///chinook.db')
app = Flask(__name__)
api = Api(app)
class Employees(Resource):
def get(self):
conn = db_connect.connect() # connect to database
query = conn.execute("select * from employees") # This line performs query and returns
json result
return {'employees': [i[0] for i in query.cursor.fetchall()]} # Fetches first column that is
Employee ID
class Tracks(Resource):
def get(self):
conn = db_connect.connect()
query = conn.execute("select trackid, name, composer, unitprice from tracks;")
result = {'data': [dict(zip(tuple (query.keys()) ,i)) for i in query.cursor]}
return jsonify(result)
class Employees_Name(Resource):
def get(self, employee_id):
conn = db_connect.connect()
query = conn.execute("select * from employees where EmployeeId =%d "
%int(employee_id))
result = {'data': [dict(zip(tuple (query.keys()) ,i)) for i in query.cursor]}
return jsonify(result)
if __name__ == '__main__':
app.run(port='5002')
4/6
http://127.0.0.1:5002/employees shows ids of all the employees in database
5/6
It is simple to create a API. You
can also add support to
PUT,POST and DELETE on
data too.
GitHub link is given below.
Fork, Clone and add the
supports and ace me back the
Pull Requests
Project Link:
https://github.com/sagaragarwal94/python_rest_flask
Resources
Flask Official Documentation
6/6