Develop RESTful APIs the Blazing Flask Way
by kumar rishabh (speaking)
Objective
The objective of this session is to cover development of API back-end using Flask , a Python Micro framework swiftly.I will also cover version maintenance of the application using Flask Blueprint . Since most of the RESTful APIs need a data back-end to serve the request , I will also cover basics of NoSQL database MongoDB .
Description
This session is for the lazy programmers out there who want to develop RESTful APIs on the fly but would like to leave the repetitive and configuration part of the job to the framework .Django a full stack framework can also achieve the same but it would very cumbersome for rapid development jobs.
This is where the flask comes into play . It is a bare minimum framework with everything else pluggable to it thus keeping the job of configuration to minimum but at the same time not compromising with the features.
I would start the session with basic configuration of flask first .Then I would delve in basics of RESTful API development swiftly using flask . Since all the API development work requires a data back-end I would then go on to cover a NoSQL database MongoDB which is often paired with flask for API development .MongoDB is a JSON based document storage with support for schema change on the fly which makes it easier to handle ever increasing scalability requirement of RESTful API development .
Since version maintenance is an important part of application development and flask makes it so easy to do that using flask blueprint I would cover flask blueprints for version maintenance too .
The following would be the take-away from this session :
1)Why and when to choose flask , why it is so much fun and why is the world going gaga over it
2)Prototyping RESTful APIs the swift and painless way and rolling it out over server as soon as possible (say in half an hour) without compromising over features
3)developing a robust data backend using a noSQL solution (mongoDB) and its benefit over other SQL solutions
4)handling ever increasing requirement of scalability and how a noSQL JSON based solution like mongoDB helps with that
5)VERSION maintenance using flask blueprint . For instance suppose my first version for cats API is /cat1.0/feed but now I want to scale it up and launch brand new version of the same /cat2.0/feed , how do I proceed doing it the most clean , painless and smart way .
6)comparison with other python based API rendering solutions like django Tastypie
7)some random but helpful flask GYAN
Requirements
in terms of software and system :
Preferably a Linux Machine
python 2.7
mongoDB
flask , any python library to interact with mongoDB preferably PyMongo installed on the system or in virtualenv
knowledge wise:
(although I would try to start from basics and take it to higher level but the following will still be useful)
Must have worked a bit in developing RESTful APIs although if you dont have an experience with this I will try posting some links below so you get basic philosophy behind it
Have a little more than basic knowledge of python
Experience in the field of web development
Have you faced problem related to API development ? where all you desire is to roll out APIs as soon as possible without compromising with the features but get startled with configuration part of django , pyramid or any other MVCs .Then this is definitely the session for you
Knowledge of MVCs is a plus for sure .Although flask being micro framework it follows the philosophy behind MVC architecture to a large extent . So knowing philosophy behind MVCs or hands on experience with MVC would be a definitely helpful
Speaker bio
I am Kumar Rishabh , a third year dual degree student at IIIT Hyderabad . As a part of my lab work we are developing HadoopStack for deploying, managing and monitoring Hadoop jobs over clouds which could be both private or public .
As one of the works in the same regard we are developing RESTful APIs to allow interaction between a hadoop server and an openstack server which provides VMs on fly and converts in to hadoop resources as per specification .
We chose flask to proceed with API development in the same regard . A solution which can work efficiently on both public and private cloud would be highly desirable . You can follow the work at the links given below .
Links
- http://siel-iiith.github.io/HadoopStack/
- http://flask.pocoo.org/
- http://www.mongodb.org/
- http://flask.pocoo.org/docs/blueprints/
- (I find this one very interesting and informative)
- https://blog.apigee.com/detail/restful_api_design
- (Development Branches)
- https://github.com/shredder12/HadoopStack
- https://github.com/hellboy2k8/
- https://github.com/siel-iiith/HadoopStack
2
▼
I notice that there are other RESTful APIs and Flask talks being proposed. Would you consider putting in take-aways from your talk as part of the proposal? This should help viewers of the funnel express interest in your talk and, should it be selected, provide participants with clarity about what is expected.
1
▼
yeah sure I will edit the proposal as per your advice soon . Thanks for the suggestion ,any other advice ,suggestion or criticism about the proposal are always welcome :)
1
▼
I have updated the take-away of the session and basic requirements for the session .Hope that helps you and others in making decision :) Thanks for the advice