Eve: Building RESTful APIs with MongoDB and Flask Course

Course Summary

Eve is an open source Python REST API framework designed for human beings. It allows you to effortlessly build and deploy highly customizable, fully featured RESTful web services.

What students are saying

Really enjoying [Talk Python's] courses so far. My favourite part is Michael's development style, where he gives you an "over the shoulder" perspective on how to segment and develop a project. Not only do you learn the content, you learn how to develop safely and efficiently. [...] Well worth your time and money.
-- Daniel T.

What's this course about and how is it different?

This course will teach you to effortlessly build RESTful services based on Flask and MongoDB.

We dive deep into every aspect of the Eve REST framework. After a quick introduction to MongoDB and Flask, we'll dig into Eve, build our schemas and endpoints and start serving HTTP clients right away, and that's just the beginning.

In this course, you will:

  • Create a new Eve web service application
  • Define data schemas for the service and MongoDB
  • Issue queries from the client straight into the service
  • Validate inbound data (including custom rules)
  • Add and configure paging for large data sets
  • Project responses for just the data you need
  • Switch between JSON and XML per client request
  • Consume the service with JavaScript, Python, and Postman
  • Secure your service with authentication
  • Add event hooks such as pre-insert actions
  • Limit the rate of your clients to avoid abuse
  • Deploy your service
  • And lots more

View the full course outline.

Who is this course for?

It's for anyone who has wants to leverage Eve to build RESTful APIs. We do assume you know basic Python concepts but advanced features and knowledge of MongoDB, Flask, and REST is not required.

Concepts taught in live examples

Code is taught best when it's hands-on and real.

In this course you will see the entire application clearly built in front of your eyes. You will be confident that you too can create apps that fully leverage Eve.

Example: Concepts taught in live code

defining the data schema in Eve

Follow along with subtitles and transcripts

Each course comes with subtitles and full transcripts. The transcripts are available as a separate searchable page for each lecture. They also are available in course-wide search results to help you find just the right lecture.

Each course has subtitles available in the video player.

Who am I? Why should you take my course?

Who is Nicola Iarocci?

My name is Nicola, nice to meet you. ;) I'm excited that you’re taking my class.

I am a Microsoft MVP, a MongoDB Master, a speaker at local and international conferences, and a teacher. More relevant, however, is that I am the author and maintainer of the Eve REST framework along with several other Python and C# open source projects.

I live in Ravenna, Italy, where I run a software company that makes accounting apps for small businesses.

In my spare time, I also run the local CoderDojo, a coding club for kids, and DevRomagna, the leading developer community in my area.

I have been leading the Eve project and its eco-system for five years now. As you can imagine, I am quite involved with it and am looking forward to sharing my knowledge with you.

If you want to learn more about me and my activity, check out my website at nicolaiarocci.com or follow me on twitter.

Free office hours keep you from getting stuck

One of the challenges of self-paced online learning is getting stuck. It can be hard to get the help you need to get unstuck.

That's why at Talk Python Training, we offer live, online office hours. You drop in and join a group of fellow students to chat about your course progress and see solutions via screen sharing.

Just visit your account page to see the upcoming office hour schedule.

Is this course based on Python 3 or Python 2?

This course is based upon Python 3. Python 2 is officially unsupported as of January 1st, 2020 and we believe that it would be ill-advised to teach or learn Python 2. This course is, and has always been, built around Python 3.

The time to act is now

The dawn of Python's full async power is here. It's time to gain all its superpowers to build your next Python project faster, better, stronger.

Course Outline: Chapters and Lectures

Welcome to the course
7:39
Welcome and what we'll cover
4:02
Meet the instructor
1:02
Get the source code
0:30
Video player: A quick feature tour
2:05
Setup and tools
20:06
Python v3.5+
2:08
Installing Eve and its dependencies
5:26
Working with different versions of Eve
3:42
Installing Mongo
2:28
SQL, Elastic and other alternative backends
0:48
VSCode editor
4:48
Postman
0:46
What is REST?
7:11
Core REST principles
7:11
Introducing Flask
11:43
Why a micro web framework
4:13
Hello world, Flask-style
7:30
What is Eve?
14:38
What is Eve and why it was built
2:06
Exploring Eve: Getting Started
6:20
Exploring Eve: Queries
2:30
Exploring Eve: Sorting
2:43
Exploring Eve: Pagination
0:59
Why MongoDB?
4:28
Why Mongo is a good match for REST
4:28
Your first Eve service
23:54
Let's build and launch our first app
6:15
Connecting to Mongo
1:44
Enabling writes
3:10
Defining document schemas
2:15
Full range of CRUD operations
6:38
Recap
3:52
Consuming the service
23:50
Postman
5:36
JavaScript and websites
8:30
Python
9:44
Schema definitions and validation
34:10
Introduction to data validation
1:47
Built-in validation rules
7:28
Advanced validation rules
7:43
Data-relations and embedded resource serialization
8:14
Custom rules and types
7:55
Recap
1:03
Fine-tuning your REST service
55:29
Handling datetime values
4:35
Query options and security
4:57
Pagination options and performance optimizations
3:53
Client and server projections
3:58
Conditional requests
5:59
HATEOAS
3:20
JSON and XML rendering
2:25
Securing the service
9:21
Event hooks
4:57
Rate limiting
4:07
Still a Flask app
2:08
Deploying your service
2:53
A small refactoring
2:56
Course conclusion and quick review
4:01
Recap and closing remarks
2:02
The future of Eve
1:27
Thanks and goodbye
0:32
Appendix: Installing MongoDB
24:51
Appendix introduction: Installing MongoDB
0:17
Setting up MongoDB as a Windows service
10:07
Concept: MongoDB as a Windows service
2:25
Setting up MongoDB on macOS
4:11
Concept: Setting up MongoDB on macOS
1:17
Setting up MongoDB on Linux
5:09
Concept: Setting up MongoDB on Linux
1:25
Appendix: Deploying MongoDB
1:13:56
Appendix introduction: Deploying MongoDB
0:17
Warning: Action required
4:37
The MongoDB deployment checklist
2:37
Creating a couple of cloud servers
8:30
Installing MongoDB for production use
9:35
Concept: Installing MongoDB for production
1:11
Limit you network exposure
1:14
Limit you network exposure in action
6:05
Concept: Limit network exposure
1:49
Adding encrypted communication for MongoDB
5:08
Concept: Adding encrypted communication for MongoDB
1:09
Adding authentication to MongoDB
5:20
Concept: Adding authentication to MongoDB
1:01
The BIG moment
3:35
Connecting to MongoDB via Python
10:26
Concept: Connecting to MongoDB via Python
1:22
MongoDB admin tools
7:15
Concept: MongoDB admin tools
2:45
Buy for $59 + tax Bundle and save 85% Team Gift

Questions? Send us an email: contact@talkpython.fm

Talk Python's Mastodon Michael Kennedy's Mastodon