Skip to content

Instantly share code, notes, and snippets.

@always-hii
Last active May 2, 2020 07:14
Show Gist options
  • Save always-hii/ffc516c487ee02b0a7a3e869372ed3c0 to your computer and use it in GitHub Desktop.
Save always-hii/ffc516c487ee02b0a7a3e869372ed3c0 to your computer and use it in GitHub Desktop.
Simple RestApi with Flask Example
"""
Other request methods to use in the Resource object:
- request.get_json()
- request.path
- request.base_url
- request.get_data()
- request.query_string
- request.args -> Kind of dict
"""
from flask import request
from flask_restful import Api, Resource
class Article(Resource):
def get(self, id):
"""Return a specific data."""
data = get_data(id) # Retrive data as a dict from database.
return {'status': 'success', 'data': data}, 200, {'extra_header', 'value'}
def delete(self, id):
"""Delete a specific data."""
data = delete_data(id) # Delete data from database.
return {'status': 'success', 'data': data}, 200, {'extra_header', 'value'}
class Articles(Resource):
def get(self):
"""Return the list of objects from database."""
data = None # List of dict from database
return {'status': 'success', 'data': data}, 200, {'extra_header': 'value'}
def post(self):
"""Create a row of data."""
if 'name' in request.form:
name = request.form['name']
data = add_to_db(name) # Create data, load to database and get the info.
{'status': 'success', 'data': data}, 200, {'extra_header': 'value'}
return {'status': 'failure', 'msg': 'Invalid form was provided.'}, 404, {'extra_header': 'value'}
def main():
app = Flask(__name__)
api = Api(app)
api.add_resource(Article, '/articles/<id>')
api.add_resource(Articles, '/articles')
app.run(host='0.0.0.0', port=1234, debug=True)
if __name__ == '__main__':
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment