From 093bb4cd19c7aad4c524b9084b3f23efe3fc47f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Ram=C3=ADrez?= Date: Fri, 14 Dec 2018 14:27:02 +0400 Subject: [PATCH] :memo: Update docs, add first tutorials --- docs/img/tutorial/path-params/image01.png | Bin 0 -> 79109 bytes docs/img/tutorial/path-params/image02.png | Bin 0 -> 67289 bytes docs/index.md | 21 ++- docs/tutorial/first-steps.md | 138 ++++++++++++++ docs/tutorial/index.md | 1 - docs/tutorial/intro.md | 52 +++++ docs/tutorial/path-params.md | 112 +++++++++++ docs/tutorial/query-params.md | 177 ++++++++++++++++++ .../src/{tutorial14.py => all/tutorial001.py} | 0 .../src/{tutorial15.py => all/tutorial002.py} | 0 .../src/{tutorial16.py => all/tutorial003.py} | 0 .../src/{tutorial17.py => all/tutorial004.py} | 0 .../src/{tutorial18.py => all/tutorial005.py} | 0 .../src/{tutorial19.py => all/tutorial006.py} | 0 .../src/{tutorial20.py => all/tutorial007.py} | 0 .../src/{tutorial21.py => all/tutorial008.py} | 0 .../src/{tutorial22.py => all/tutorial009.py} | 0 .../src/{tutorial23.py => all/tutorial010.py} | 0 .../src/{tutorial24.py => all/tutorial011.py} | 0 .../src/{tutorial25.py => all/tutorial012.py} | 0 .../src/{tutorial26.py => all/tutorial013.py} | 0 .../src/{tutorial27.py => all/tutorial014.py} | 0 .../src/{tutorial28.py => all/tutorial015.py} | 0 .../src/{tutorial29.py => all/tutorial016.py} | 0 .../src/{tutorial30.py => all/tutorial017.py} | 0 .../src/{tutorial31.py => all/tutorial018.py} | 0 .../src/{tutorial32.py => all/tutorial019.py} | 0 .../src/{tutorial33.py => all/tutorial020.py} | 0 .../src/{tutorial34.py => all/tutorial021.py} | 0 .../src/{tutorial35.py => all/tutorial022.py} | 0 .../src/{tutorial36.py => all/tutorial023.py} | 0 .../src/{tutorial37.py => all/tutorial024.py} | 0 .../src/{tutorial38.py => all/tutorial025.py} | 0 .../src/{tutorial39.py => all/tutorial026.py} | 0 .../src/{tutorial40.py => all/tutorial027.py} | 0 .../src/{tutorial41.py => all/tutorial028.py} | 0 .../src/{tutorial42.py => all/tutorial029.py} | 0 .../src/{tutorial43.py => all/tutorial030.py} | 0 .../src/{tutorial44.py => all/tutorial031.py} | 0 .../src/{tutorial45.py => all/tutorial032.py} | 0 .../src/{tutorial46.py => all/tutorial033.py} | 0 .../src/{tutorial47.py => all/tutorial034.py} | 0 .../src/{tutorial48.py => all/tutorial035.py} | 0 .../src/{tutorial49.py => all/tutorial036.py} | 0 .../src/{tutorial50.py => all/tutorial037.py} | 0 .../src/{tutorial51.py => all/tutorial038.py} | 0 .../src/{tutorial52.py => all/tutorial039.py} | 0 .../src/{tutorial53.py => all/tutorial040.py} | 0 .../src/{tutorial54.py => all/tutorial041.py} | 0 .../src/{tutorial55.py => all/tutorial042.py} | 0 .../src/{tutorial56.py => all/tutorial043.py} | 0 .../src/{tutorial57.py => all/tutorial044.py} | 0 .../src/{tutorial58.py => all/tutorial045.py} | 0 .../src/{tutorial59.py => all/tutorial046.py} | 0 .../src/{tutorial60.py => all/tutorial047.py} | 0 .../src/{tutorial61.py => all/tutorial048.py} | 0 .../src/{tutorial62.py => all/tutorial049.py} | 0 .../src/{tutorial63.py => all/tutorial050.py} | 0 .../src/{tutorial64.py => all/tutorial051.py} | 0 .../src/{tutorial65.py => all/tutorial052.py} | 0 .../src/{tutorial66.py => all/tutorial053.py} | 0 .../src/{tutorial67.py => all/tutorial054.py} | 0 .../src/{tutorial68.py => all/tutorial055.py} | 0 .../src/{tutorial69.py => all/tutorial056.py} | 0 .../src/{tutorial70.py => all/tutorial057.py} | 0 .../src/{tutorial71.py => all/tutorial058.py} | 0 .../src/{tutorial72.py => all/tutorial059.py} | 0 .../src/{tutorial73.py => all/tutorial060.py} | 0 .../src/{tutorial74.py => all/tutorial061.py} | 0 .../src/{tutorial75.py => all/tutorial062.py} | 0 .../src/{tutorial76.py => all/tutorial063.py} | 0 .../src/{tutorial77.py => all/tutorial064.py} | 0 .../src/{tutorial78.py => all/tutorial065.py} | 0 .../src/{tutorial79.py => all/tutorial066.py} | 0 .../{tutorial10.py => body/tutorial001.py} | 0 .../{tutorial11.py => body/tutorial002.py} | 0 .../{tutorial12.py => body/tutorial003.py} | 0 .../{tutorial13.py => body/tutorial004.py} | 0 .../tutorial001.py} | 0 docs/tutorial/src/first-steps/tutorial002.py | 8 + docs/tutorial/src/first-steps/tutorial003.py | 8 + .../tutorial001.py} | 0 .../tutorial002.py} | 0 .../tutorial003.py} | 0 .../tutorial001.py} | 0 .../tutorial002.py} | 0 .../tutorial003.py} | 0 .../tutorial004.py} | 0 docs/tutorial/src/query-params/tutorial005.py | 11 ++ docs/tutorial/src/tutorial09.py | 17 -- 90 files changed, 518 insertions(+), 27 deletions(-) create mode 100644 docs/img/tutorial/path-params/image01.png create mode 100644 docs/img/tutorial/path-params/image02.png create mode 100644 docs/tutorial/first-steps.md delete mode 100644 docs/tutorial/index.md create mode 100644 docs/tutorial/intro.md create mode 100644 docs/tutorial/path-params.md create mode 100644 docs/tutorial/query-params.md rename docs/tutorial/src/{tutorial14.py => all/tutorial001.py} (100%) rename docs/tutorial/src/{tutorial15.py => all/tutorial002.py} (100%) rename docs/tutorial/src/{tutorial16.py => all/tutorial003.py} (100%) rename docs/tutorial/src/{tutorial17.py => all/tutorial004.py} (100%) rename docs/tutorial/src/{tutorial18.py => all/tutorial005.py} (100%) rename docs/tutorial/src/{tutorial19.py => all/tutorial006.py} (100%) rename docs/tutorial/src/{tutorial20.py => all/tutorial007.py} (100%) rename docs/tutorial/src/{tutorial21.py => all/tutorial008.py} (100%) rename docs/tutorial/src/{tutorial22.py => all/tutorial009.py} (100%) rename docs/tutorial/src/{tutorial23.py => all/tutorial010.py} (100%) rename docs/tutorial/src/{tutorial24.py => all/tutorial011.py} (100%) rename docs/tutorial/src/{tutorial25.py => all/tutorial012.py} (100%) rename docs/tutorial/src/{tutorial26.py => all/tutorial013.py} (100%) rename docs/tutorial/src/{tutorial27.py => all/tutorial014.py} (100%) rename docs/tutorial/src/{tutorial28.py => all/tutorial015.py} (100%) rename docs/tutorial/src/{tutorial29.py => all/tutorial016.py} (100%) rename docs/tutorial/src/{tutorial30.py => all/tutorial017.py} (100%) rename docs/tutorial/src/{tutorial31.py => all/tutorial018.py} (100%) rename docs/tutorial/src/{tutorial32.py => all/tutorial019.py} (100%) rename docs/tutorial/src/{tutorial33.py => all/tutorial020.py} (100%) rename docs/tutorial/src/{tutorial34.py => all/tutorial021.py} (100%) rename docs/tutorial/src/{tutorial35.py => all/tutorial022.py} (100%) rename docs/tutorial/src/{tutorial36.py => all/tutorial023.py} (100%) rename docs/tutorial/src/{tutorial37.py => all/tutorial024.py} (100%) rename docs/tutorial/src/{tutorial38.py => all/tutorial025.py} (100%) rename docs/tutorial/src/{tutorial39.py => all/tutorial026.py} (100%) rename docs/tutorial/src/{tutorial40.py => all/tutorial027.py} (100%) rename docs/tutorial/src/{tutorial41.py => all/tutorial028.py} (100%) rename docs/tutorial/src/{tutorial42.py => all/tutorial029.py} (100%) rename docs/tutorial/src/{tutorial43.py => all/tutorial030.py} (100%) rename docs/tutorial/src/{tutorial44.py => all/tutorial031.py} (100%) rename docs/tutorial/src/{tutorial45.py => all/tutorial032.py} (100%) rename docs/tutorial/src/{tutorial46.py => all/tutorial033.py} (100%) rename docs/tutorial/src/{tutorial47.py => all/tutorial034.py} (100%) rename docs/tutorial/src/{tutorial48.py => all/tutorial035.py} (100%) rename docs/tutorial/src/{tutorial49.py => all/tutorial036.py} (100%) rename docs/tutorial/src/{tutorial50.py => all/tutorial037.py} (100%) rename docs/tutorial/src/{tutorial51.py => all/tutorial038.py} (100%) rename docs/tutorial/src/{tutorial52.py => all/tutorial039.py} (100%) rename docs/tutorial/src/{tutorial53.py => all/tutorial040.py} (100%) rename docs/tutorial/src/{tutorial54.py => all/tutorial041.py} (100%) rename docs/tutorial/src/{tutorial55.py => all/tutorial042.py} (100%) rename docs/tutorial/src/{tutorial56.py => all/tutorial043.py} (100%) rename docs/tutorial/src/{tutorial57.py => all/tutorial044.py} (100%) rename docs/tutorial/src/{tutorial58.py => all/tutorial045.py} (100%) rename docs/tutorial/src/{tutorial59.py => all/tutorial046.py} (100%) rename docs/tutorial/src/{tutorial60.py => all/tutorial047.py} (100%) rename docs/tutorial/src/{tutorial61.py => all/tutorial048.py} (100%) rename docs/tutorial/src/{tutorial62.py => all/tutorial049.py} (100%) rename docs/tutorial/src/{tutorial63.py => all/tutorial050.py} (100%) rename docs/tutorial/src/{tutorial64.py => all/tutorial051.py} (100%) rename docs/tutorial/src/{tutorial65.py => all/tutorial052.py} (100%) rename docs/tutorial/src/{tutorial66.py => all/tutorial053.py} (100%) rename docs/tutorial/src/{tutorial67.py => all/tutorial054.py} (100%) rename docs/tutorial/src/{tutorial68.py => all/tutorial055.py} (100%) rename docs/tutorial/src/{tutorial69.py => all/tutorial056.py} (100%) rename docs/tutorial/src/{tutorial70.py => all/tutorial057.py} (100%) rename docs/tutorial/src/{tutorial71.py => all/tutorial058.py} (100%) rename docs/tutorial/src/{tutorial72.py => all/tutorial059.py} (100%) rename docs/tutorial/src/{tutorial73.py => all/tutorial060.py} (100%) rename docs/tutorial/src/{tutorial74.py => all/tutorial061.py} (100%) rename docs/tutorial/src/{tutorial75.py => all/tutorial062.py} (100%) rename docs/tutorial/src/{tutorial76.py => all/tutorial063.py} (100%) rename docs/tutorial/src/{tutorial77.py => all/tutorial064.py} (100%) rename docs/tutorial/src/{tutorial78.py => all/tutorial065.py} (100%) rename docs/tutorial/src/{tutorial79.py => all/tutorial066.py} (100%) rename docs/tutorial/src/{tutorial10.py => body/tutorial001.py} (100%) rename docs/tutorial/src/{tutorial11.py => body/tutorial002.py} (100%) rename docs/tutorial/src/{tutorial12.py => body/tutorial003.py} (100%) rename docs/tutorial/src/{tutorial13.py => body/tutorial004.py} (100%) rename docs/tutorial/src/{tutorial01.py => first-steps/tutorial001.py} (100%) create mode 100644 docs/tutorial/src/first-steps/tutorial002.py create mode 100644 docs/tutorial/src/first-steps/tutorial003.py rename docs/tutorial/src/{tutorial02.py => path-params/tutorial001.py} (100%) rename docs/tutorial/src/{tutorial03.py => path-params/tutorial002.py} (100%) rename docs/tutorial/src/{tutorial04.py => path-params/tutorial003.py} (100%) rename docs/tutorial/src/{tutorial05.py => query-params/tutorial001.py} (100%) rename docs/tutorial/src/{tutorial06.py => query-params/tutorial002.py} (100%) rename docs/tutorial/src/{tutorial07.py => query-params/tutorial003.py} (100%) rename docs/tutorial/src/{tutorial08.py => query-params/tutorial004.py} (100%) create mode 100644 docs/tutorial/src/query-params/tutorial005.py delete mode 100644 docs/tutorial/src/tutorial09.py diff --git a/docs/img/tutorial/path-params/image01.png b/docs/img/tutorial/path-params/image01.png new file mode 100644 index 0000000000000000000000000000000000000000..b5187c6c0fc026945b19236df7ac5b743684c431 GIT binary patch literal 79109 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
-|u5DzR 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

P8%d2EWEq%=Ap?YRFhhe)1h|RcyD6R2AkhG*vX- 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 z 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 lu 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 YTv`i?zvb*;tbQAI*87Lbzuvg>pZGA<#Q*>R literal 0 HcmV?d00001 diff --git a/docs/index.md b/docs/index.md index 40df4afbe..39d40509c 100644 --- a/docs/index.md +++ b/docs/index.md @@ -20,6 +20,8 @@ **Documentation**: [https://fastapi.tiangolo.com](https://fastapi.tiangolo.com) +**Source**: [https://github.com/tiangolo/fastapi](https://github.com/tiangolo/fastapi) + --- FastAPI is a modern, fast (high-performance), web framework for building APIs with Python 3.6+. @@ -97,11 +99,12 @@ async def read_root(): uvicorn main:app --debug ``` -**Note**: the command `uvicorn main:app` refers to: +!!! note + The command `uvicorn main:app` refers to: -* `main`: the file `main.py` (the Python "module"). -* `app`: the object created inside of `main.py` with the line `app = FastAPI()`. -* `--debug`: make the server restart after code changes. Only use for development. + * `main`: the file `main.py` (the Python "module"). + * `app`: the object created inside of `main.py` with the line `app = FastAPI()`. + * `--debug`: make the server restart after code changes. Only use for development. ### Check it @@ -214,7 +217,7 @@ item: Item * Validation of data: * Automatic and clear errors when the data is invalid. * Validation even for deeply nested JSON objects. -* Serialization of input data: from the network to Python, reading from: +* Serialization of input data: conversion of data coming from the network to Python data and types. Reading from: * JSON. * Forms. * Files. @@ -222,7 +225,7 @@ item: Item * Query parameters. * Cookies. * Headers. -* Serialization of output data: from Python to network (as JSON): +* Serialization of output data: converting from Python data and types to network data (as JSON): * Convert Python types (`str`, `int`, `float`, `bool`, `list`, etc). * `datetime` objects. * `UUID` objects. @@ -276,7 +279,7 @@ Try changing the line with: ![editor support](https://fastapi.tiangolo.com/img/vscode-completion.png) -For a more complete example including more features, [see the tutorial](tutorial). +For a more complete example including more features, [see the tutorial](). **Spoiler alert**: the tutorial, although very short, includes: @@ -293,7 +296,7 @@ For a more complete example including more features, [see the tutorial](tutorial Used by Pydantic: -* ujson - for faster JSON parsing. +* ujson - for faster JSON "parsing". * email_validator - for email validation. @@ -302,7 +305,7 @@ Used by Starlette: * requests - Required if you want to use the `TestClient`. * aiofiles - Required if you want to use `FileResponse` or `StaticFiles`. * jinja2 - Required if you want to use the default template configuration. -* python-multipart - Required if you want to support form parsing, with `request.form()`. +* python-multipart - Required if you want to support form "parsing", with `request.form()`. * itsdangerous - Required for `SessionMiddleware` support. * pyyaml - Required for `SchemaGenerator` support. * graphene - Required for `GraphQLApp` support. diff --git a/docs/tutorial/first-steps.md b/docs/tutorial/first-steps.md new file mode 100644 index 000000000..a09a1442d --- /dev/null +++ b/docs/tutorial/first-steps.md @@ -0,0 +1,138 @@ +The simplest FastAPI file could look like this: + +```Python +{!tutorial/src/first-steps/tutorial001.py!} +``` + +Copy that to a file `main.py`. + +Run the live server: + +```bash +uvicorn main:app --debug +``` + +!!! note + The command `uvicorn main:app` refers to: + + * `main`: the file `main.py` (the Python "module"). + * `app`: the object created inside of `main.py` with the line `app = FastAPI()`. + * `--debug`: make the server restart after code changes. Only use for development. + +You will see an output like: + +```hl_lines="4" +INFO: Started reloader process [17961] +INFO: Started server process [17962] +INFO: Waiting for application startup. +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +``` + +That last line shows the URL where your app is being served, in your local machine. + +### Check it + +Open your browser at http://127.0.0.1:8000. + +You will see the JSON response as: + +```JSON +{"hello": "world"} +``` + +### Interactive API docs + +Now go to http://127.0.0.1:8000/docs. + +You will see the automatic interactive API documentation (provided by Swagger UI): + +![Swagger UI](https://fastapi.tiangolo.com/img/index/index-01-swagger-ui-simple.png) + + +### Alternative API docs + +And now, go to http://127.0.0.1:8000/redoc. + +You will see the alternative automatic documentation (provided by ReDoc): + +![ReDoc](https://fastapi.tiangolo.com/img/index/index-02-redoc-simple.png) + +## Recap, step by step + +### Step 1: import `FastAPI` + +```Python hl_lines="1" +{!tutorial/src/first-steps/tutorial001.py!} +``` + +`FastAPI` is a Python class that provides all the functionality for your API. + +### Step 2: create a `FastAPI` "instance" + +```Python hl_lines="3" +{!tutorial/src/first-steps/tutorial001.py!} +``` + +Here the `app` variable will be an "instance" of the class `FastAPI`. + +This will be the main point of interaction to create all your API endpoints. + +This `app` is the same one referred by `uvicorn` in thet command: + +```bash +uvicorn main:app --debug +``` + +If you create your app like: + +```Python hl_lines="3" +{!tutorial/src/first-steps/tutorial002.py!} +``` + +And put it in a file `main.py`, then you would call `uvicorn` like: + +```bash +uvicorn main:my_awesome_api --debug +``` + +### Step 3: create an endpoint + +```Python hl_lines="6" +{!tutorial/src/first-steps/tutorial001.py!} +``` + +The `@app.get("/")` tells **FastAPI** that the function right below is an endpoint and that it should go to the path route `/`. + +### Step 4: define the endpoint function + +```Python hl_lines="7" +{!tutorial/src/first-steps/tutorial001.py!} +``` + +This is a Python function. + +It will be called by FastAPI whenever it receives a request to the URL "`/`". + +In this case, it is an `async` function. + +--- + +You could also define it as a normal function instead of `async def`: + +```Python hl_lines="7" +{!tutorial/src/first-steps/tutorial003.py!} +``` + +To know the difference, read the section about [Concurrency and `async` / `await`](/async/). + +### Step 5: return the content + +```Python hl_lines="8" +{!tutorial/src/first-steps/tutorial001.py!} +``` + +You can return a `dict`, `list`, singular values as `str`, `int`, etc. + +You can also return Pydantic models (you'll see more about that later). + +There are many other objects and models that will be automatically converted to JSON. diff --git a/docs/tutorial/index.md b/docs/tutorial/index.md deleted file mode 100644 index 39fe646c4..000000000 --- a/docs/tutorial/index.md +++ /dev/null @@ -1 +0,0 @@ -Sorry! Coming soon... come back in a couple days. \ No newline at end of file diff --git a/docs/tutorial/intro.md b/docs/tutorial/intro.md new file mode 100644 index 000000000..a5fb9bfe1 --- /dev/null +++ b/docs/tutorial/intro.md @@ -0,0 +1,52 @@ +This tutorial shows you how to use **FastAPI** with all its features, step by step. + +Eeach section gradually builds on the previous ones, but it's structured to separate topics, so that you can go directly to any specific one to solve your specific API needs. + +It is also built to work as a future reference. So you can come back and see exactly what you need. + +And each section is very short, so you can go directly to what you need and get the information fast. + +## Run the code + +All the code blocks can be copied and used directly (they are actually tested Python files). + +To run any of the examples, copy the code to a file `main.py`, and start `uvicorn` with: + +```bash +uvicorn main:app --debug +``` + +It is **HIGHLY encouraged** that you write or copy the code, edit it and run it locally. + +Using it in your editor is what really shows you the benefits of FastAPI, seeing how little code you have to write, all the type checks, autocompletion, etc. + +--- + +## Install FastAPI + +The first step is to install FastAPI. + +For the tutorial, you might want to install it with all the optional dependencies and features: + +```bash +pip install fastapi[all] +``` + +...that also includes `uvicorn`, that you can use as the server that runs your code. + +!!! note + You can also install it part by part. + + This is what you would probably do once you want to deploy your application to production: + + ```bash + pip install fastapi + ``` + + Also install `uvicorn` to work as the server: + + ```bash + pip install uvicorn + ``` + + And the same for each of the optional dependencies that you want to use. diff --git a/docs/tutorial/path-params.md b/docs/tutorial/path-params.md new file mode 100644 index 000000000..5a381581e --- /dev/null +++ b/docs/tutorial/path-params.md @@ -0,0 +1,112 @@ +You can declare path "parameters" or "variables" with the same syntax used by Python format strings: + +```Python hl_lines="6 7" +{!./tutorial/src/path-params/tutorial001.py!} +``` + +The value of the path parameter `item_id` will be passed to your function as the argument `item_id`. + +So, if you run this example and go to http://127.0.0.1:8000/items/foo, you will see a response of: + +```JSON +{"item_id":"foo"} +``` + +## Path parameters with types + +You can declare the type of a path parameter in the function, using standard Python type annotations: + +```Python hl_lines="7" +{!./tutorial/src/path-params/tutorial002.py!} +``` + +In this case, `item_id` is declared to be an `int`. + +!!! check + This will give you editor support inside of your function, with error checks, completion, etc. + +## Data "parsing" + +If you run this example and open your browser at http://127.0.0.1:8000/items/3, you will see a response of: + +```JSON +{"item_id":3} +``` + +!!! check + Notice that the value your function received (and returned) is `3`, as a Python `int`, not a string `"3"`. + + So, with that type declaration, **FastAPI** gives you automatic request "parsing". + +## Data validation + +But if you go to the browser at http://127.0.0.1:8000/items/foo, you will see a nice HTTP error of: + +```JSON +{ + "detail": [ + { + "loc": [ + "path", + "item_id" + ], + "msg": "value is not a valid integer", + "type": "type_error.integer" + } + ] +} +``` + +because the path parameter `item_id` had a value of `"foo"`, which is not an `int`. + +The same error would appear if you provided a `foat` instead of an int, as in: http://127.0.0.1:8000/items/4.2 + + +!!! check + So, with the same Python type declaration, **FastAPI** gives you data validation. + + Notice that the error also clearly states exactly the point where the validaton didn't pass. + + This is incredibly helpful while developing and debugging code that interacts with your API. + +## Documentation + +And when you open your browser at http://127.0.0.1:8000/docs, you will see an automatic, interactive, API documentation like: + + + +!!! check + Again, just with that same Python type declaration, **FastAPI** gives you automatic, interactive documentation (integrating Swagger UI). + + Notice that the path parameter is declared to be an integer. + +## Standards-based benefits, alternative documentation + +And because the generated schema is from the OpenAPI standard, there are many compatible tools. + +Because of this, **FastAPI** itself provides an alternative API documentation (using ReDoc): + + + +The same way, there are many compatible tools. Including code generation tools for many languages. + +## Pydantic + +All the data validation is performed under the hood by Pydantic, so you get all the benefits from it. And you know you are in good hands. + +You can use the same type declarations with `str`, `float`, `bool` and many other complex data types. + +These are explored in the next sections of the tutorial. + +## Recap + +With **FastAPI**, by using short, intuitive and standard Python type declarations, you get: + +* Editor support: error checks, autocompletion, etc. +* Data "parsing" +* Data validation +* API annotation and automatic documentation + +And you only have to declare them once. + +That's probably the main visible advantage of **FastAPI** compared to alternative frameworks (appart from the raw performance). \ No newline at end of file diff --git a/docs/tutorial/query-params.md b/docs/tutorial/query-params.md new file mode 100644 index 000000000..e58fe2749 --- /dev/null +++ b/docs/tutorial/query-params.md @@ -0,0 +1,177 @@ +When you declare other function parameters that are not part of the path parameters, they are automatically interpreted as "query" parameters. + +```Python hl_lines="9" +{!./tutorial/src/query-params/tutorial001.py!} +``` + +The query is the set of key-value pairs that go after the `?` in a URL, separated by `&` characters. + +For example, in the url: + +``` +http://127.0.0.1:8000/items/?skip=0&limit=10 +``` + +...the query parameters are: + +* `skip`: with a value of `0` +* `limit`: with a value of `10` + +As they are part of the URL, they are "naturally" strings. + +But when you declare them with Python types (in the example above, as `int`), they are converted to that type and validated against it. + +All the same process that applied for path parameters also applies for query parameters: + +* Editor support (obviously) +* Data "parsing" +* Data validation +* Automatic documentation + +## Defaults + +As query parameters are not a fixed part of a path, they can be optional and can have default values. + +In the example above they have default values of `skip=0` and `limit=10`. + +So, going to the URL: + +``` +http://127.0.0.1:8000/items/ +``` + +would be the same as going to: + +``` +http://127.0.0.1:8000/items/?skip=0&limit=10 +``` + +But if you go to, for example: + +``` +http://127.0.0.1:8000/items/?skip=20 +``` + +The parameter values in your function will be: + +* `skip=20`: because you set it in the URL +* `limit=10`: because that was the default value + +## Optional parameters + +The same way, you can declare optional query parameters, by setting their default to `None`: + +```Python hl_lines="7" +{!./tutorial/src/query-params/tutorial002.py!} +``` + +In this case, the function parameter `q` will be optional, and will be `None` by default. + +!!! check + Also notice that **FastAPI** is smart enough to notice that the path parameter `item_id` is a path parameter and `q` is not, so, it's a query parameter. + +## Query parameter type conversion + +You can also declare `bool` types, and they will be converted: + +```Python hl_lines="7" +{!./tutorial/src/query-params/tutorial003.py!} +``` + +In this case, if you go to: + +``` +http://127.0.0.1:8000/items/?short=1 +``` + +or + +``` +http://127.0.0.1:8000/items/?short=True +``` + +or + +``` +http://127.0.0.1:8000/items/?short=true +``` + +or + +``` +http://127.0.0.1:8000/items/?short=on +``` + +or + +``` +http://127.0.0.1:8000/items/?short=yes +``` + +or any other case variation (uppercase, first letter in uppercase, etc), your function will see the parameter `short` with a `bool` value of `True`. Otherwise as `False`. + + +## Multiple path and query parameters + +You can declare multiple path parameters and query parameters at the same time, **FastAPI** knows which is which. + +And you don't have to declare them in any specific order. + +They will be detected by name: + +```Python hl_lines="6 8" +{!./tutorial/src/query-params/tutorial004.py!} +``` + +## Required query parameters + +When you declare a default value for non-path parameters (for now, we have only seen query parameters), then it is not required. + +If you don't want to add a specific value but just make it optional, set the default as `None`. + +But when you want to make a query parameter required, you can just do not declare any default value: + +```Python hl_lines="6 8" +{!./tutorial/src/query-params/tutorial005.py!} +``` + +Here the query parameter `needy` is a required query parameter of type `str`. + +If you open in your browser a URL like: + +``` +http://127.0.0.1:8000/users/2/items/foo-item +``` + +...without adding the required parameter `needy`, you will see an error like: + +```JSON +{ + "detail": [ + { + "loc": [ + "query", + "needy" + ], + "msg": "field required", + "type": "value_error.missing" + } + ] +} +``` + +As `needy` is a required parameter, you would need to set it in the URL: + +``` +http://127.0.0.1:8000/users/2/items/foo-item?needy=sooooneedy +``` + +...this would work: + +```JSON +{ + "item_id": "foo-item", + "owner_id": 2, + "needy": "sooooneedy" +} +``` \ No newline at end of file diff --git a/docs/tutorial/src/tutorial14.py b/docs/tutorial/src/all/tutorial001.py similarity index 100% rename from docs/tutorial/src/tutorial14.py rename to docs/tutorial/src/all/tutorial001.py diff --git a/docs/tutorial/src/tutorial15.py b/docs/tutorial/src/all/tutorial002.py similarity index 100% rename from docs/tutorial/src/tutorial15.py rename to docs/tutorial/src/all/tutorial002.py diff --git a/docs/tutorial/src/tutorial16.py b/docs/tutorial/src/all/tutorial003.py similarity index 100% rename from docs/tutorial/src/tutorial16.py rename to docs/tutorial/src/all/tutorial003.py diff --git a/docs/tutorial/src/tutorial17.py b/docs/tutorial/src/all/tutorial004.py similarity index 100% rename from docs/tutorial/src/tutorial17.py rename to docs/tutorial/src/all/tutorial004.py diff --git a/docs/tutorial/src/tutorial18.py b/docs/tutorial/src/all/tutorial005.py similarity index 100% rename from docs/tutorial/src/tutorial18.py rename to docs/tutorial/src/all/tutorial005.py diff --git a/docs/tutorial/src/tutorial19.py b/docs/tutorial/src/all/tutorial006.py similarity index 100% rename from docs/tutorial/src/tutorial19.py rename to docs/tutorial/src/all/tutorial006.py diff --git a/docs/tutorial/src/tutorial20.py b/docs/tutorial/src/all/tutorial007.py similarity index 100% rename from docs/tutorial/src/tutorial20.py rename to docs/tutorial/src/all/tutorial007.py diff --git a/docs/tutorial/src/tutorial21.py b/docs/tutorial/src/all/tutorial008.py similarity index 100% rename from docs/tutorial/src/tutorial21.py rename to docs/tutorial/src/all/tutorial008.py diff --git a/docs/tutorial/src/tutorial22.py b/docs/tutorial/src/all/tutorial009.py similarity index 100% rename from docs/tutorial/src/tutorial22.py rename to docs/tutorial/src/all/tutorial009.py diff --git a/docs/tutorial/src/tutorial23.py b/docs/tutorial/src/all/tutorial010.py similarity index 100% rename from docs/tutorial/src/tutorial23.py rename to docs/tutorial/src/all/tutorial010.py diff --git a/docs/tutorial/src/tutorial24.py b/docs/tutorial/src/all/tutorial011.py similarity index 100% rename from docs/tutorial/src/tutorial24.py rename to docs/tutorial/src/all/tutorial011.py diff --git a/docs/tutorial/src/tutorial25.py b/docs/tutorial/src/all/tutorial012.py similarity index 100% rename from docs/tutorial/src/tutorial25.py rename to docs/tutorial/src/all/tutorial012.py diff --git a/docs/tutorial/src/tutorial26.py b/docs/tutorial/src/all/tutorial013.py similarity index 100% rename from docs/tutorial/src/tutorial26.py rename to docs/tutorial/src/all/tutorial013.py diff --git a/docs/tutorial/src/tutorial27.py b/docs/tutorial/src/all/tutorial014.py similarity index 100% rename from docs/tutorial/src/tutorial27.py rename to docs/tutorial/src/all/tutorial014.py diff --git a/docs/tutorial/src/tutorial28.py b/docs/tutorial/src/all/tutorial015.py similarity index 100% rename from docs/tutorial/src/tutorial28.py rename to docs/tutorial/src/all/tutorial015.py diff --git a/docs/tutorial/src/tutorial29.py b/docs/tutorial/src/all/tutorial016.py similarity index 100% rename from docs/tutorial/src/tutorial29.py rename to docs/tutorial/src/all/tutorial016.py diff --git a/docs/tutorial/src/tutorial30.py b/docs/tutorial/src/all/tutorial017.py similarity index 100% rename from docs/tutorial/src/tutorial30.py rename to docs/tutorial/src/all/tutorial017.py diff --git a/docs/tutorial/src/tutorial31.py b/docs/tutorial/src/all/tutorial018.py similarity index 100% rename from docs/tutorial/src/tutorial31.py rename to docs/tutorial/src/all/tutorial018.py diff --git a/docs/tutorial/src/tutorial32.py b/docs/tutorial/src/all/tutorial019.py similarity index 100% rename from docs/tutorial/src/tutorial32.py rename to docs/tutorial/src/all/tutorial019.py diff --git a/docs/tutorial/src/tutorial33.py b/docs/tutorial/src/all/tutorial020.py similarity index 100% rename from docs/tutorial/src/tutorial33.py rename to docs/tutorial/src/all/tutorial020.py diff --git a/docs/tutorial/src/tutorial34.py b/docs/tutorial/src/all/tutorial021.py similarity index 100% rename from docs/tutorial/src/tutorial34.py rename to docs/tutorial/src/all/tutorial021.py diff --git a/docs/tutorial/src/tutorial35.py b/docs/tutorial/src/all/tutorial022.py similarity index 100% rename from docs/tutorial/src/tutorial35.py rename to docs/tutorial/src/all/tutorial022.py diff --git a/docs/tutorial/src/tutorial36.py b/docs/tutorial/src/all/tutorial023.py similarity index 100% rename from docs/tutorial/src/tutorial36.py rename to docs/tutorial/src/all/tutorial023.py diff --git a/docs/tutorial/src/tutorial37.py b/docs/tutorial/src/all/tutorial024.py similarity index 100% rename from docs/tutorial/src/tutorial37.py rename to docs/tutorial/src/all/tutorial024.py diff --git a/docs/tutorial/src/tutorial38.py b/docs/tutorial/src/all/tutorial025.py similarity index 100% rename from docs/tutorial/src/tutorial38.py rename to docs/tutorial/src/all/tutorial025.py diff --git a/docs/tutorial/src/tutorial39.py b/docs/tutorial/src/all/tutorial026.py similarity index 100% rename from docs/tutorial/src/tutorial39.py rename to docs/tutorial/src/all/tutorial026.py diff --git a/docs/tutorial/src/tutorial40.py b/docs/tutorial/src/all/tutorial027.py similarity index 100% rename from docs/tutorial/src/tutorial40.py rename to docs/tutorial/src/all/tutorial027.py diff --git a/docs/tutorial/src/tutorial41.py b/docs/tutorial/src/all/tutorial028.py similarity index 100% rename from docs/tutorial/src/tutorial41.py rename to docs/tutorial/src/all/tutorial028.py diff --git a/docs/tutorial/src/tutorial42.py b/docs/tutorial/src/all/tutorial029.py similarity index 100% rename from docs/tutorial/src/tutorial42.py rename to docs/tutorial/src/all/tutorial029.py diff --git a/docs/tutorial/src/tutorial43.py b/docs/tutorial/src/all/tutorial030.py similarity index 100% rename from docs/tutorial/src/tutorial43.py rename to docs/tutorial/src/all/tutorial030.py diff --git a/docs/tutorial/src/tutorial44.py b/docs/tutorial/src/all/tutorial031.py similarity index 100% rename from docs/tutorial/src/tutorial44.py rename to docs/tutorial/src/all/tutorial031.py diff --git a/docs/tutorial/src/tutorial45.py b/docs/tutorial/src/all/tutorial032.py similarity index 100% rename from docs/tutorial/src/tutorial45.py rename to docs/tutorial/src/all/tutorial032.py diff --git a/docs/tutorial/src/tutorial46.py b/docs/tutorial/src/all/tutorial033.py similarity index 100% rename from docs/tutorial/src/tutorial46.py rename to docs/tutorial/src/all/tutorial033.py diff --git a/docs/tutorial/src/tutorial47.py b/docs/tutorial/src/all/tutorial034.py similarity index 100% rename from docs/tutorial/src/tutorial47.py rename to docs/tutorial/src/all/tutorial034.py diff --git a/docs/tutorial/src/tutorial48.py b/docs/tutorial/src/all/tutorial035.py similarity index 100% rename from docs/tutorial/src/tutorial48.py rename to docs/tutorial/src/all/tutorial035.py diff --git a/docs/tutorial/src/tutorial49.py b/docs/tutorial/src/all/tutorial036.py similarity index 100% rename from docs/tutorial/src/tutorial49.py rename to docs/tutorial/src/all/tutorial036.py diff --git a/docs/tutorial/src/tutorial50.py b/docs/tutorial/src/all/tutorial037.py similarity index 100% rename from docs/tutorial/src/tutorial50.py rename to docs/tutorial/src/all/tutorial037.py diff --git a/docs/tutorial/src/tutorial51.py b/docs/tutorial/src/all/tutorial038.py similarity index 100% rename from docs/tutorial/src/tutorial51.py rename to docs/tutorial/src/all/tutorial038.py diff --git a/docs/tutorial/src/tutorial52.py b/docs/tutorial/src/all/tutorial039.py similarity index 100% rename from docs/tutorial/src/tutorial52.py rename to docs/tutorial/src/all/tutorial039.py diff --git a/docs/tutorial/src/tutorial53.py b/docs/tutorial/src/all/tutorial040.py similarity index 100% rename from docs/tutorial/src/tutorial53.py rename to docs/tutorial/src/all/tutorial040.py diff --git a/docs/tutorial/src/tutorial54.py b/docs/tutorial/src/all/tutorial041.py similarity index 100% rename from docs/tutorial/src/tutorial54.py rename to docs/tutorial/src/all/tutorial041.py diff --git a/docs/tutorial/src/tutorial55.py b/docs/tutorial/src/all/tutorial042.py similarity index 100% rename from docs/tutorial/src/tutorial55.py rename to docs/tutorial/src/all/tutorial042.py diff --git a/docs/tutorial/src/tutorial56.py b/docs/tutorial/src/all/tutorial043.py similarity index 100% rename from docs/tutorial/src/tutorial56.py rename to docs/tutorial/src/all/tutorial043.py diff --git a/docs/tutorial/src/tutorial57.py b/docs/tutorial/src/all/tutorial044.py similarity index 100% rename from docs/tutorial/src/tutorial57.py rename to docs/tutorial/src/all/tutorial044.py diff --git a/docs/tutorial/src/tutorial58.py b/docs/tutorial/src/all/tutorial045.py similarity index 100% rename from docs/tutorial/src/tutorial58.py rename to docs/tutorial/src/all/tutorial045.py diff --git a/docs/tutorial/src/tutorial59.py b/docs/tutorial/src/all/tutorial046.py similarity index 100% rename from docs/tutorial/src/tutorial59.py rename to docs/tutorial/src/all/tutorial046.py diff --git a/docs/tutorial/src/tutorial60.py b/docs/tutorial/src/all/tutorial047.py similarity index 100% rename from docs/tutorial/src/tutorial60.py rename to docs/tutorial/src/all/tutorial047.py diff --git a/docs/tutorial/src/tutorial61.py b/docs/tutorial/src/all/tutorial048.py similarity index 100% rename from docs/tutorial/src/tutorial61.py rename to docs/tutorial/src/all/tutorial048.py diff --git a/docs/tutorial/src/tutorial62.py b/docs/tutorial/src/all/tutorial049.py similarity index 100% rename from docs/tutorial/src/tutorial62.py rename to docs/tutorial/src/all/tutorial049.py diff --git a/docs/tutorial/src/tutorial63.py b/docs/tutorial/src/all/tutorial050.py similarity index 100% rename from docs/tutorial/src/tutorial63.py rename to docs/tutorial/src/all/tutorial050.py diff --git a/docs/tutorial/src/tutorial64.py b/docs/tutorial/src/all/tutorial051.py similarity index 100% rename from docs/tutorial/src/tutorial64.py rename to docs/tutorial/src/all/tutorial051.py diff --git a/docs/tutorial/src/tutorial65.py b/docs/tutorial/src/all/tutorial052.py similarity index 100% rename from docs/tutorial/src/tutorial65.py rename to docs/tutorial/src/all/tutorial052.py diff --git a/docs/tutorial/src/tutorial66.py b/docs/tutorial/src/all/tutorial053.py similarity index 100% rename from docs/tutorial/src/tutorial66.py rename to docs/tutorial/src/all/tutorial053.py diff --git a/docs/tutorial/src/tutorial67.py b/docs/tutorial/src/all/tutorial054.py similarity index 100% rename from docs/tutorial/src/tutorial67.py rename to docs/tutorial/src/all/tutorial054.py diff --git a/docs/tutorial/src/tutorial68.py b/docs/tutorial/src/all/tutorial055.py similarity index 100% rename from docs/tutorial/src/tutorial68.py rename to docs/tutorial/src/all/tutorial055.py diff --git a/docs/tutorial/src/tutorial69.py b/docs/tutorial/src/all/tutorial056.py similarity index 100% rename from docs/tutorial/src/tutorial69.py rename to docs/tutorial/src/all/tutorial056.py diff --git a/docs/tutorial/src/tutorial70.py b/docs/tutorial/src/all/tutorial057.py similarity index 100% rename from docs/tutorial/src/tutorial70.py rename to docs/tutorial/src/all/tutorial057.py diff --git a/docs/tutorial/src/tutorial71.py b/docs/tutorial/src/all/tutorial058.py similarity index 100% rename from docs/tutorial/src/tutorial71.py rename to docs/tutorial/src/all/tutorial058.py diff --git a/docs/tutorial/src/tutorial72.py b/docs/tutorial/src/all/tutorial059.py similarity index 100% rename from docs/tutorial/src/tutorial72.py rename to docs/tutorial/src/all/tutorial059.py diff --git a/docs/tutorial/src/tutorial73.py b/docs/tutorial/src/all/tutorial060.py similarity index 100% rename from docs/tutorial/src/tutorial73.py rename to docs/tutorial/src/all/tutorial060.py diff --git a/docs/tutorial/src/tutorial74.py b/docs/tutorial/src/all/tutorial061.py similarity index 100% rename from docs/tutorial/src/tutorial74.py rename to docs/tutorial/src/all/tutorial061.py diff --git a/docs/tutorial/src/tutorial75.py b/docs/tutorial/src/all/tutorial062.py similarity index 100% rename from docs/tutorial/src/tutorial75.py rename to docs/tutorial/src/all/tutorial062.py diff --git a/docs/tutorial/src/tutorial76.py b/docs/tutorial/src/all/tutorial063.py similarity index 100% rename from docs/tutorial/src/tutorial76.py rename to docs/tutorial/src/all/tutorial063.py diff --git a/docs/tutorial/src/tutorial77.py b/docs/tutorial/src/all/tutorial064.py similarity index 100% rename from docs/tutorial/src/tutorial77.py rename to docs/tutorial/src/all/tutorial064.py diff --git a/docs/tutorial/src/tutorial78.py b/docs/tutorial/src/all/tutorial065.py similarity index 100% rename from docs/tutorial/src/tutorial78.py rename to docs/tutorial/src/all/tutorial065.py diff --git a/docs/tutorial/src/tutorial79.py b/docs/tutorial/src/all/tutorial066.py similarity index 100% rename from docs/tutorial/src/tutorial79.py rename to docs/tutorial/src/all/tutorial066.py diff --git a/docs/tutorial/src/tutorial10.py b/docs/tutorial/src/body/tutorial001.py similarity index 100% rename from docs/tutorial/src/tutorial10.py rename to docs/tutorial/src/body/tutorial001.py diff --git a/docs/tutorial/src/tutorial11.py b/docs/tutorial/src/body/tutorial002.py similarity index 100% rename from docs/tutorial/src/tutorial11.py rename to docs/tutorial/src/body/tutorial002.py diff --git a/docs/tutorial/src/tutorial12.py b/docs/tutorial/src/body/tutorial003.py similarity index 100% rename from docs/tutorial/src/tutorial12.py rename to docs/tutorial/src/body/tutorial003.py diff --git a/docs/tutorial/src/tutorial13.py b/docs/tutorial/src/body/tutorial004.py similarity index 100% rename from docs/tutorial/src/tutorial13.py rename to docs/tutorial/src/body/tutorial004.py diff --git a/docs/tutorial/src/tutorial01.py b/docs/tutorial/src/first-steps/tutorial001.py similarity index 100% rename from docs/tutorial/src/tutorial01.py rename to docs/tutorial/src/first-steps/tutorial001.py diff --git a/docs/tutorial/src/first-steps/tutorial002.py b/docs/tutorial/src/first-steps/tutorial002.py new file mode 100644 index 000000000..ca7d48cff --- /dev/null +++ b/docs/tutorial/src/first-steps/tutorial002.py @@ -0,0 +1,8 @@ +from fastapi import FastAPI + +my_awesome_api = FastAPI() + + +@my_awesome_api.get("/") +async def root(): + return {"message": "Hello World"} diff --git a/docs/tutorial/src/first-steps/tutorial003.py b/docs/tutorial/src/first-steps/tutorial003.py new file mode 100644 index 000000000..e30b827ea --- /dev/null +++ b/docs/tutorial/src/first-steps/tutorial003.py @@ -0,0 +1,8 @@ +from fastapi import FastAPI + +app = FastAPI() + + +@app.get("/") +def root(): + return {"message": "Hello World"} diff --git a/docs/tutorial/src/tutorial02.py b/docs/tutorial/src/path-params/tutorial001.py similarity index 100% rename from docs/tutorial/src/tutorial02.py rename to docs/tutorial/src/path-params/tutorial001.py diff --git a/docs/tutorial/src/tutorial03.py b/docs/tutorial/src/path-params/tutorial002.py similarity index 100% rename from docs/tutorial/src/tutorial03.py rename to docs/tutorial/src/path-params/tutorial002.py diff --git a/docs/tutorial/src/tutorial04.py b/docs/tutorial/src/path-params/tutorial003.py similarity index 100% rename from docs/tutorial/src/tutorial04.py rename to docs/tutorial/src/path-params/tutorial003.py diff --git a/docs/tutorial/src/tutorial05.py b/docs/tutorial/src/query-params/tutorial001.py similarity index 100% rename from docs/tutorial/src/tutorial05.py rename to docs/tutorial/src/query-params/tutorial001.py diff --git a/docs/tutorial/src/tutorial06.py b/docs/tutorial/src/query-params/tutorial002.py similarity index 100% rename from docs/tutorial/src/tutorial06.py rename to docs/tutorial/src/query-params/tutorial002.py diff --git a/docs/tutorial/src/tutorial07.py b/docs/tutorial/src/query-params/tutorial003.py similarity index 100% rename from docs/tutorial/src/tutorial07.py rename to docs/tutorial/src/query-params/tutorial003.py diff --git a/docs/tutorial/src/tutorial08.py b/docs/tutorial/src/query-params/tutorial004.py similarity index 100% rename from docs/tutorial/src/tutorial08.py rename to docs/tutorial/src/query-params/tutorial004.py diff --git a/docs/tutorial/src/query-params/tutorial005.py b/docs/tutorial/src/query-params/tutorial005.py new file mode 100644 index 000000000..62da63fc7 --- /dev/null +++ b/docs/tutorial/src/query-params/tutorial005.py @@ -0,0 +1,11 @@ +from fastapi import FastAPI + +app = FastAPI() + + +@app.get("/users/{user_id}/items/{item_id}") +async def read_user_item( + user_id: int, item_id: str, needy: str +): + item = {"item_id": item_id, "owner_id": user_id, "needy": needy} + return item diff --git a/docs/tutorial/src/tutorial09.py b/docs/tutorial/src/tutorial09.py deleted file mode 100644 index 125bce9c5..000000000 --- a/docs/tutorial/src/tutorial09.py +++ /dev/null @@ -1,17 +0,0 @@ -from fastapi import FastAPI - -app = FastAPI() - - -@app.get("/users/{user_id}/items/{item_id}") -async def read_user_item( - user_id: int, item_id: str, needy: str, q: str = None, short: bool = False -): - item = {"item_id": item_id, "owner_id": user_id, "needy": needy} - if q: - item.update({"q": q}) - if not short: - item.update( - {"description": "This is an amazing item that has a long description"} - ) - return item