Eve: Building RESTful APIs with MongoDB and Flask
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. 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.
More
Source code and course GitHub repository
github.com/talkpython/eve-building-restful-mongodb-backed-apis-course
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
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.
Watch Online Eve: Building RESTful APIs with MongoDB and Flask
# | Title | Duration |
---|---|---|
1 | Welcome and what we'll cover | 04:02 |
2 | Meet the instructor | 01:02 |
3 | Get the source code | 00:31 |
4 | Video player: A quick feature tour | 02:05 |
5 | Python v3.5+ | 02:09 |
6 | Installing Eve and its dependencies | 05:27 |
7 | Working with different versions of Eve | 03:42 |
8 | Installing Mongo | 02:28 |
9 | SQL, Elastic and other alternative backends | 00:49 |
10 | VSCode editor | 04:49 |
11 | Postman | 00:46 |
12 | Core REST principles | 07:12 |
13 | Why a micro web framework | 04:14 |
14 | Hello world, Flask-style | 07:31 |
15 | What is Eve and why it was built | 02:06 |
16 | Exploring Eve: Getting Started | 06:21 |
17 | Exploring Eve: Queries | 02:30 |
18 | Exploring Eve: Sorting | 02:43 |
19 | Exploring Eve: Pagination | 00:59 |
20 | Why Mongo is a good match for REST | 04:28 |
21 | Let's build and launch our first app | 06:17 |
22 | Connecting to Mongo | 01:44 |
23 | Enabling writes | 03:11 |
24 | Defining document schemas | 02:16 |
25 | Full range of CRUD operations | 06:39 |
26 | Recap | 03:52 |
27 | Postman | 05:37 |
28 | JavaScript and websites | 08:30 |
29 | Python | 09:44 |
30 | Introduction to data validation | 01:47 |
31 | Built-in validation rules | 07:29 |
32 | Advanced validation rules | 07:43 |
33 | Data-relations and embedded resource serialization | 08:15 |
34 | Custom rules and types | 07:55 |
35 | Recap | 01:04 |
36 | Handling datetime values | 04:35 |
37 | Query options and security | 04:58 |
38 | Pagination options and performance optimizations | 03:54 |
39 | Client and server projections | 03:58 |
40 | Conditional requests | 05:59 |
41 | HATEOAS | 03:21 |
42 | JSON and XML rendering | 02:25 |
43 | Securing the service | 09:21 |
44 | Event hooks | 04:58 |
45 | Rate limiting | 04:07 |
46 | Still a Flask app | 02:09 |
47 | Deploying your service | 02:53 |
48 | A small refactoring | 02:56 |
49 | Recap and closing remarks | 02:02 |
50 | The future of Eve | 01:27 |
51 | Thanks and goodbye | 00:32 |
52 | Appendix introduction: Installing MongoDB | 00:18 |
53 | Setting up MongoDB as a Windows service | 10:07 |
54 | Concept: MongoDB as a Windows service | 02:25 |
55 | Setting up MongoDB on macOS | 04:12 |
56 | Concept: Setting up MongoDB on macOS | 01:18 |
57 | Setting up MongoDB on Linux | 05:10 |
58 | Concept: Setting up MongoDB on Linux | 01:26 |
59 | Appendix introduction: Deploying MongoDB | 00:18 |
60 | Warning: Action required | 04:37 |
61 | The MongoDB deployment checklist | 02:38 |
62 | Creating a couple of cloud servers | 08:30 |
63 | Installing MongoDB for production use | 09:36 |
64 | Concept: Installing MongoDB for production | 01:12 |
65 | Limit you network exposure | 01:14 |
66 | Limit you network exposure in action | 06:06 |
67 | Concept: Limit network exposure | 01:50 |
68 | Adding encrypted communication for MongoDB | 05:08 |
69 | Concept: Adding encrypted communication for MongoDB | 01:09 |
70 | Adding authentication to MongoDB | 05:20 |
71 | Concept: Adding authentication to MongoDB | 01:01 |
72 | The BIG moment | 03:36 |
73 | Connecting to MongoDB via Python | 10:27 |
74 | Concept: Connecting to MongoDB via Python | 01:23 |
75 | MongoDB admin tools | 07:15 |
76 | Concept: MongoDB admin tools | 02:46 |