Update 'README.md'
This commit is contained in:
parent
d171f5fbf2
commit
3d007642ba
89
README.md
89
README.md
@ -1,86 +1,7 @@
|
||||
# Auth0 + Python + FastAPI API Seed
|
||||
# ThermalTodos
|
||||
|
||||
This is the seed project you need to use if you're going to create an API using FastAPI in Python and Auth0. If you just want to create a Regular Python WebApp, please check [this project](https://github.com/auth0-samples/auth0-python-web-app/tree/master/01-Login)
|
||||
This is the software component to a thermal printer + raspberry pi system which links into your google calendar and prints your daily todos. Also hosts a locally accessible web server for configuration, adding/removing todos, and printing other "widgets".
|
||||
|
||||
## Running the example
|
||||
|
||||
In order to run the example you need to have `python3` (any version higher than `3.6`) and `pip3` installed.
|
||||
|
||||
### Configuration
|
||||
|
||||
The configuration you'll need is mostly information from Auth0, you'll need both the tentant domain and the API information.
|
||||
|
||||
This app reads its configuration information from a `.env` file by default.
|
||||
|
||||
To create a `.env` file you can copy the `.env.example` file and fill the values accordingly:
|
||||
|
||||
```console
|
||||
cp .env.example .env
|
||||
```
|
||||
|
||||
Alternatively you can use environment variables to define your application's settings (remember to update the values accordingly):
|
||||
|
||||
```console
|
||||
export AUTH0_DOMAIN='your.domain.auth0.com'
|
||||
export AUTH0_API_AUDIENCE='your.api.audience'
|
||||
export AUTH0_ISSUER='https://your.domain.auth0.com'
|
||||
export AUTH0_ALGORITHMS='RS256'
|
||||
```
|
||||
|
||||
### Spin up the server
|
||||
|
||||
Once you've set your environment information below you'll find the commands you'll need.
|
||||
|
||||
1. Create and activate a python environment:
|
||||
|
||||
```console
|
||||
python3 -m venv .venv
|
||||
source .venv/bin/activate
|
||||
```
|
||||
|
||||
2. Install the needed dependencies with:
|
||||
|
||||
```console
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
3. Start the server with the following:
|
||||
|
||||
```console
|
||||
uvicorn application.main:app
|
||||
```
|
||||
|
||||
4. Try calling [http://localhost:8000/api/public](http://localhost:8000/api/public)
|
||||
|
||||
```
|
||||
curl -X 'GET' \
|
||||
'http://localhost:8000/api/public' \
|
||||
-H 'accept: application/json'
|
||||
```
|
||||
|
||||
## API documentation
|
||||
|
||||
Access [http://localhost:8000/docs](http://localhost:8000/docs). From there you'll see all endpoints and can test your API
|
||||
|
||||
### Testing the API
|
||||
|
||||
#### Private endpoint
|
||||
|
||||
You can then try to do a GET to [http://localhost:8000/api/private](http://localhost:8000/api/private) which will throw an error if you don't send an access token signed with RS256 with the appropriate issuer and audience in the Authorization header.
|
||||
|
||||
```console
|
||||
curl -X 'GET' \
|
||||
'http://localhost:8000/api/private' \
|
||||
-H 'accept: application/json' \
|
||||
-H 'Authorization: Bearer <FILL YOUR TOKEN HERE>'
|
||||
```
|
||||
|
||||
#### Private-Scoped endpoint
|
||||
|
||||
You can also try to do a GET to [http://localhost:8000/api/private-scoped](http://localhost:8000/api/private-scoped) which will throw an error if you don't send an access token with the scope `read:messages` signed with RS256 with the appropriate issuer and audience in the Authorization header.
|
||||
|
||||
```console
|
||||
curl -X 'GET' \
|
||||
'http://localhost:8000/api/private-scoped' \
|
||||
-H 'accept: application/json' \
|
||||
-H 'Authorization: Bearer <FILL YOUR TOKEN WITH SCOPES HERE>'
|
||||
```
|
||||
# Widgets
|
||||
* Sudoku
|
||||
* Inspirational Quotes
|
Loading…
Reference in New Issue
Block a user