Search icon CANCEL
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Building Python Web APIs with FastAPI

You're reading from   Building Python Web APIs with FastAPI A fast-paced guide to building high-performance, robust web APIs with very little boilerplate code

Arrow left icon
Product type Paperback
Published in Jul 2022
Publisher Packt
ISBN-13 9781801076630
Length 216 pages
Edition 1st Edition
Languages
Tools
Arrow right icon
Author (1):
Arrow left icon
Abdulazeez Abdulazeez
Author Profile Icon Abdulazeez
Abdulazeez
Arrow right icon
View More author details
Toc

Table of Contents (14) Chapters Close

Preface 1. Part 1: An Introduction to FastAPI
2. Chapter 1: Getting Started with FastAPI FREE CHAPTER 3. Chapter 2: Routing in FastAPI 4. Chapter 3: Response Models and Error Handling 5. Chapter 4: Templating in FastAPI 6. Part 2: Building and Securing FastAPI Applications
7. Chapter 5: Structuring FastAPI Applications 8. Chapter 6: Connecting to a Database 9. Chapter 7: Securing FastAPI Applications 10. Part 3: Testing And Deploying FastAPI Applications
11. Chapter 8: Testing FastAPI Applications 12. Chapter 9: Deploying FastAPI Applications 13. Other Books You May Enjoy

Updating the application

In this section, we’ll update the routes to use the new authentication model. Lastly, we’ll update the POST route for adding an event to populate the events field in the user’s record.

Updating the user sign-in route

In routes/users.py, update the imports:

from fastapi import APIRouter, Depends, HTTPException, status
from fastapi.security import OAuth2PasswordRequestForm
from auth.jwt_handler import create_access_token
from models.users import User

We have imported the OAuth2PasswordRequestForm class from FastAPI’s security module. This will be injected into the sign-in route to retrieve the credentials sent over: username and password. Let’s update the sign_user_in() route function:

async def sign_user_in(user: OAuth2PasswordRequestForm = Depends()) -> dict:
    user_exist = await User.find_one(User.email == 
    user.username)
    ..
  ...
lock icon The rest of the chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $19.99/month. Cancel anytime