Sebastián Ramírez
2d35651a5a
🐛 Fix OpenAPI model fields int validations, change `gte` to `ge` ( #9635 )
...
🐛 Fix OpenAPI model fields int validations, change `gte` to `ge`
2023-06-07 22:44:12 +02:00
Sebastián Ramírez
1574c96231
🔖 Release version 0.96.0
2023-06-03 16:29:23 +02:00
Zanie Adkins
27618aa2e8
⚡ Update `create_cloned_field` to use a global cache and improve startup performance ( #4645 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
Co-authored-by: Huon Wilson <wilson.huon@gmail.com>
2023-06-03 13:37:41 +00:00
Sebastián Ramírez
8cc967a760
🔖 Release version 0.95.2
2023-05-16 15:39:43 +02:00
Sebastián Ramírez
c81e136d75
🔖 Release version 0.95.1
2023-04-13 12:04:52 -07:00
Sharon Yogev
fdf66c825e
🐛 Fix using `Annotated` in routers or path operations decorated multiple times ( #9315 )
...
* Fix: copy FieldInfo from Annotated arguments
We need to copy the field_info to prevent ourselves from
mutating it. This allows multiple path or nested routers ,etc.
* 📝 Add comment in fastapi/dependencies/utils.py
Co-authored-by: Nadav Zingerman <7372858+nzig@users.noreply.github.com>
* ✅ Extend and tweak tests for Annotated
* ✅ Tweak coverage, it's probably covered by a different version of Python
---------
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
Co-authored-by: Nadav Zingerman <7372858+nzig@users.noreply.github.com>
2023-04-13 10:49:22 -07:00
Sebastián Ramírez
d666ccb622
🔖 Release version 0.95.0
2023-03-18 20:37:42 +01:00
Nadav Zingerman
375513f114
✨ Add support for PEP-593 `Annotated` for specifying dependencies and parameters ( #4871 )
...
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2023-03-17 21:35:45 +01:00
Sebastián Ramírez
ef176c6631
🔖 Release version 0.94.1
2023-03-14 03:27:11 +01:00
Sebastián Ramírez
25aabe05ce
🎨 Fix types for lifespan, upgrade Starlette to 0.26.1 ( #9245 )
2023-03-14 03:19:04 +01:00
Sebastián Ramírez
392ffaae43
🔖 Release version 0.94.0
2023-03-10 20:00:49 +01:00
pre-commit-ci[bot]
f04b61bd16
⬆ [pre-commit.ci] pre-commit autoupdate ( #5709 )
...
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2023-03-10 19:49:18 +01:00
Sebastián Ramírez
8a4cfa52af
⬆️ Upgrade Starlette version, support new `lifespan` with state ( #9239 )
2023-03-10 19:24:04 +01:00
Sebastián Ramírez
25382d2d19
🔖 Release version 0.93.0
2023-03-07 17:06:47 +01:00
Jordan Speicher
cc9a73c3f8
✨ Add support for `lifespan` async context managers (superseding `startup` and `shutdown` events) ( #2944 )
...
Co-authored-by: Mike Shantz <mshantz@coldstorage.com>
Co-authored-by: Jonathan Plasse <13716151+JonathanPlasse@users.noreply.github.com>
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2023-03-07 16:46:00 +01:00
Sebastián Ramírez
6879082b36
🔖 Release version 0.92.0
2023-02-14 10:17:53 +01:00
Sebastián Ramírez
2ca77f9a4d
🔖 Release version 0.91.0
2023-02-10 15:33:25 +01:00
Sebastián Ramírez
d566c6cbca
⬆️ Upgrade Starlette version to `0.24.0` and refactor internals for compatibility ( #5985 )
2023-02-10 15:13:04 +01:00
Sebastián Ramírez
6e94ec2bf0
🔖 Release version 0.90.1
2023-02-09 20:41:40 +01:00
Sebastián Ramírez
148bcf5ce4
🔖 Release version 0.90.0
2023-02-08 11:30:01 +01:00
Marcelo Trylesinski
9293795e99
⬆️ Bump Starlette from 0.22.0 to 0.23.0 ( #5739 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2023-02-08 11:23:07 +01:00
Sebastián Ramírez
5905c3f740
🔖 Release version 0.89.1
2023-01-10 20:31:23 +04:00
Sebastián Ramírez
fb8e9083f4
📝 Update docs and examples for Response Model with Return Type Annotations, and update runtime error ( #5873 )
2023-01-10 16:22:47 +00:00
Marcelo Trylesinski
fba7493042
🐛 Ignore Response classes on return annotation ( #5855 )
...
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-01-10 12:45:18 +00:00
Sebastián Ramírez
69bd7d8501
🔖 Release version 0.89.0
2023-01-07 21:17:10 +04:00
Yurii Karabas
d0573f5713
✨ Add support for function return type annotations to declare the `response_model` ( #1436 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2023-01-07 17:45:48 +04:00
Sebastián Ramírez
612b8ff168
🔖 Release version 0.88.0
2022-11-27 15:50:32 +01:00
Sebastián Ramírez
7c5626bef7
⬆️ Upgrade Ruff ( #5698 )
2022-11-27 14:59:32 +01:00
Sebastián Ramírez
63a5ffcf57
🔖 Release version 0.87.0
2022-11-13 22:36:53 +01:00
Sebastián Ramírez
fa74093440
✨ Use Ruff for linting ( #5630 )
2022-11-13 19:19:04 +01:00
Sebastián Ramírez
d537ee93d7
✨ Re-export Starlette's `WebSocketException` and add it to docs ( #5629 )
2022-11-13 17:10:54 +01:00
Paweł Rubin
fdbd48be5f
⬆ Upgrade Starlette to `0.21.0`, including the new [`TestClient` based on HTTPX]( https://github.com/encode/starlette/releases/tag/0.21.0 ) ( #5471 )
...
Co-authored-by: Paweł Rubin <pawel.rubin@ocado.com>
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2022-11-13 15:26:09 +01:00
Sebastián Ramírez
ccd242348f
🔖 Release version 0.86.0
2022-11-03 22:17:44 +01:00
Adrian Garcia Badaracco
ac9f56ea5e
🐛 Close FormData (uploaded files) after the request is done ( #5465 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2022-11-03 13:06:52 +01:00
Sebastián Ramírez
d0917ce015
🔖 Release version 0.85.2
2022-10-31 19:57:16 +01:00
Sebastián Ramírez
90fc4299d1
🔖 Release version 0.85.1
2022-10-14 22:52:36 +02:00
Jarro van Ginkel
0ae8db447a
🐛 Fix support for strings in OpenAPI status codes: `default`, `1XX`, `2XX`, `3XX`, `4XX`, `5XX` ( #5187 )
...
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2022-10-14 22:44:22 +02:00
Sebastián Ramírez
1213227667
🔖 Release version 0.85.0
2022-09-15 15:57:23 +02:00
Sebastián Ramírez
74ce2204ae
⬆️ Upgrade mypy and tweak internal type annotations ( #5398 )
2022-09-15 13:26:21 +00:00
Marcelo Trylesinski
adcf03f2bc
⬆ Upgrade version required of Starlette from `0.19.1` to `0.20.4` ( #4820 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2022-09-15 14:32:05 +02:00
Sebastián Ramírez
1073062c7f
🔖 Release version 0.84.0
2022-09-14 20:41:29 +02:00
Ofek Lev
4267bd1f4f
🔧 Update package metadata, drop support for Python 3.6, move build internals from Flit to Hatch ( #5240 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2022-09-14 20:31:19 +02:00
Sebastián Ramírez
ed0fcba7cb
🔖 Release version 0.83.0
2022-09-11 18:25:29 +02:00
Irfanuddin Shafi Ahmed
4d270463af
🐛 Fix `RuntimeError` raised when `HTTPException` has a status code with no content ( #5365 )
...
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2022-09-11 16:13:36 +00:00
Thomas Meckel
0b4fe10c8f
🐛 Fix empty reponse body when default `status_code` is empty but the a `Response` parameter with `response.status_code` is set ( #5360 )
...
Co-authored-by: Thomas Meckel <tmeckel@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2022-09-08 15:02:59 +00:00
DCsunset
3ec498af63
✨ Add support in `jsonable_encoder` for include and exclude with dataclasses ( #4923 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2022-09-08 16:29:23 +02:00
Sebastián Ramírez
3079ba925e
🔖 Release version 0.82.0
2022-09-04 21:26:31 +02:00
Adrian Garcia Badaracco
f8460a8b54
🐛 Allow exit code for dependencies with `yield` to always execute, by removing capacity limiter for them, to e.g. allow closing DB connections without deadlocks ( #5122 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2022-09-04 21:09:24 +02:00
Mateusz Nowak
dacb689290
✨ Export `WebSocketState` in `fastapi.websockets` ( #4376 )
2022-09-04 17:12:10 +02:00
Charlie DiGiovanna
56f887de15
🐛 Make sure a parameter defined as required is kept required in OpenAPI even if defined as optional in another dependency ( #4319 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2022-09-03 17:12:41 +00:00
Junghoon Yang
52b5b08910
♻ Internal small refactor, move `operation_id` parameter position in delete method for consistency with the code ( #4474 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2022-09-02 13:36:00 +00:00
Marcelo Trylesinski
30b3905ef3
✨ Support Python internal description on Pydantic model's docstring ( #3032 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2022-09-02 14:43:21 +02:00
abc.zxy
7250c194da
✨ Update `ORJSONResponse` to support non `str` keys and serializing Numpy arrays ( #3892 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-09-02 10:17:31 +00:00
David Brochart
d8b6aa630c
🐛 Fix support for path parameters in WebSockets ( #3879 )
...
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2022-09-01 10:50:47 +02:00
Sebastián Ramírez
0bb8920ae1
🔖 Release version 0.81.0
2022-08-26 17:18:44 +02:00
Luis R
22bed0008c
🐛 Fix `jsonable_encoder` for dataclasses with pydantic-compatible fields ( #3607 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-08-26 15:56:47 +02:00
Erik Vroon
de6ccd7754
✨ Add ReDoc `<noscript>` warning when JS is disabled ( #5074 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2022-08-26 13:56:07 +00:00
pylounge
dc10b81d05
♻ Simplify internal RegEx in `fastapi/utils.py` ( #5057 )
...
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-08-26 15:46:22 +02:00
David Kim
0539dd9cd3
🔧 Fix Type hint of `auto_error` which does not need to be `Optional[bool]` ( #4933 )
2022-08-26 15:29:50 +02:00
Shahriyar Rzayev
00bdf533ef
♻ Change a `dict()` for `{}` in `fastapi/utils.py` ( #3138 )
2022-08-26 15:23:25 +02:00
Guillermo Quintana Pelayo
a64387c3fc
♻ Move internal variable for errors in `jsonable_encoder` to put related code closer ( #4560 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2022-08-26 13:16:44 +00:00
Muzaffer Cikay
c8124496fc
♻ Simplify conditional assignment in `fastapi/dependencies/utils.py` ( #4597 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2022-08-26 13:16:17 +00:00
Ori Levari
880c8b37cf
🐛 Fix support for extending `openapi_extras` with parameter lists ( #4267 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2022-08-26 09:26:20 +00:00
juntatalor
ca2fae0588
✨ Add support for `FrozenSet` in parameters (e.g. query) ( #2938 )
...
Co-authored-by: saborisov <borisov_s@tass.ru>
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2022-08-25 23:52:53 +02:00
Andy Challis
eb3ab337ab
✨ Allow custom middlewares to raise `HTTPException`s and propagate them ( #2036 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-08-25 23:44:40 +02:00
Sidharth Ajithkumar
9359a8d65f
✨ Preserve `json.JSONDecodeError` information when handling invalid JSON in request body, to support custom exception handlers that use its information ( #4057 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-08-25 11:55:53 +02:00
Sebastián Ramírez
7d6e70791d
🔖 Release version 0.80.0
2022-08-23 16:14:48 +02:00
Teo Koon Peng
ec072d75fe
⬆ Upgrade Swagger UI copy of `oauth2-redirect.html` to include fixes for flavors of authorization code flows in Swagger UI ( #3439 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2022-08-23 13:57:25 +00:00
Andrey Semakin
f6808e76dc
♻ Strip empty whitespace from description extracted from docstrings ( #2821 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2022-08-23 13:47:19 +00:00
laggardkernel
b993b4af28
🐛 Fix cached dependencies when using a dependency in `Security()` and other places (e.g. `Depends()`) with different OAuth2 scopes ( #2945 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2022-08-23 13:30:24 +00:00
Taneli Hukkinen
634cf22584
🐛 Fix `response_model` not invalidating `None` ( #2725 )
...
Co-authored-by: Taneli Hukkinen <hukkinj1@users.noreply.github.com>
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2022-08-22 19:17:45 +00:00
Sebastián Ramírez
e7b1b96a54
🎨 Update type annotations for `response_model`, allow things like `Union[str, None]` ( #5294 )
2022-08-22 18:49:03 +00:00
Sebastián Ramírez
ab8988ff7c
🔖 Release version 0.79.1
2022-08-18 23:14:07 +02:00
Xavi Moreno
eb2e183361
🐛 Fix `jsonable_encoder` using `include` and `exclude` parameters for non-Pydantic objects ( #2606 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2022-08-18 22:48:21 +02:00
Luca Repetti
e88089ec21
🐛 Fix edge case with repeated aliases names not shown in OpenAPI ( #2351 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2022-08-18 20:31:19 +00:00
Sebastián Ramírez
50fb34bf55
🔖 Release version 0.79.0
2022-07-14 19:35:13 +02:00
Sebastián Ramírez
c43120258f
🐛 Fix removing body from status codes that do not support it ( #5145 )
2022-07-14 13:19:42 +02:00
Sebastián Ramírez
1876ebc779
🔖 Release version 0.78.0
2022-05-14 14:58:04 -05:00
Sebastián Ramírez
9262fa8362
✨ Add support for not needing `...` as default value in required Query(), Path(), Header(), etc. ( #4906 )
...
* ✨ Do not require default value in Query(), Path(), Header(), etc
* 📝 Update source examples for docs with default and required values
* ✅ Update tests with new default values and not required Ellipsis
* 📝 Update docs for Query params and update info about default value, required, Ellipsis
2022-05-13 18:38:22 -05:00
Shahriyar Rzayev
82775f7cd0
♻ Refactor dict value extraction to minimize key lookups `fastapi/utils.py` ( #3139 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2022-05-12 20:38:30 +00:00
Sebastián Ramírez
9cae3cdb09
🔧 Add Python formatting hooks to pre-commit ( #4890 )
2022-05-12 00:41:06 +00:00
Sebastián Ramírez
2aaac141dd
🔖 Release version 0.77.1
2022-05-09 23:19:32 -05:00
Marcelo Trylesinski
f396912043
⬆ Upgrade Starlette from 0.19.0 to 0.19.1 ( #4819 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2022-05-10 03:22:26 +00:00
Sebastián Ramírez
0696454445
🔖 Release version 0.77.0
2022-05-09 20:40:03 -05:00
Marcelo Trylesinski
86fa3cb24f
⬆ Upgrade Starlette from 0.18.0 to 0.19.0 ( #4488 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2022-05-09 13:06:42 -05:00
Sebastián Ramírez
9090c771ee
🔖 Release version 0.76.0
2022-05-05 17:26:05 -05:00
Marcelo Trylesinski
33d61430cf
⬆ Upgrade Starlette from 0.17.1 to 0.18.0 ( #4483 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2022-05-05 17:19:59 -05:00
Sebastián Ramírez
2b54432a9c
🔖 Release version 0.75.2
2022-04-17 23:08:37 +02:00
dconathan
c449ae5c74
🐛 Fix JSON Schema for `ValidationError` at field `loc` ( #3810 )
...
Co-authored-by: Devin Conathan <dconatha@amfam.com>
2022-04-17 19:41:46 +02:00
Marcelo Trylesinski
d81c908132
🐛 Fix support for prefix on APIRouter WebSockets ( #2640 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2022-04-17 19:21:53 +02:00
Alan Wright
acf8a91c25
⬆ Upgrade Swagger UI - swagger-ui-dist@4 ( #4347 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2022-04-17 14:47:14 +00:00
Sebastián Ramírez
26f725d259
🔖 Release version 0.75.1
2022-04-01 18:05:52 -05:00
Sebastián Ramírez
19769d0483
🔖 Release version 0.75.0
2022-03-04 23:09:11 +01:00
Sebastián Ramírez
8a0d4c79c1
✨ Add support for custom `generate_unique_id_function` and docs for generating clients ( #4650 )
2022-03-04 23:02:18 +01:00
Sebastián Ramírez
440d2d2d1a
🔖 Release version 0.74.1
2022-02-21 16:54:18 +01:00
Sebastián Ramírez
f5d7df3c6c
✨ Include route in scope to allow middleware and other tools to extract its information ( #4603 )
2022-02-21 16:51:26 +01:00
Sebastián Ramírez
1ce16c2f40
🔖 Release version 0.74.0
2022-02-17 17:08:23 +01:00
Sebastián Ramírez
9d56a3cb59
✨ Update internal `AsyncExitStack` to fix context for dependencies with `yield` ( #4575 )
2022-02-17 13:40:12 +01:00
Sebastián Ramírez
291180bf2d
🔖 Release version 0.73.0
2022-01-23 23:38:51 +01:00
Victor Benichoux
a698908ed6
🐛 Fix bug preventing to use OpenAPI when using tuples ( #3874 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2022-01-23 23:13:55 +01:00
Sebastián Ramírez
1bf55200a9
✨ Add support for declaring `UploadFile` parameters without explicit `File()` ( #4469 )
2022-01-23 19:14:13 +00:00
Sebastián Ramírez
569afb4378
✨ Add support for tags with Enums ( #4468 )
2022-01-23 18:43:04 +01:00
Sebastián Ramírez
d4608a00cf
🐛 Prefer custom encoder over defaults if specified in `jsonable_encoder` ( #4467 )
...
Co-authored-by: Vivek Sunder <sviveksunder@gmail.com>
2022-01-23 17:32:04 +01:00
Mark
ca5d57ea79
✨ Allow hiding from OpenAPI (and Swagger UI) `Query`, `Cookie`, `Header`, and `Path` parameters ( #3144 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2022-01-23 16:54:59 +01:00
Sebastián Ramírez
f0388915a8
🔖 Release version 0.72.0
2022-01-16 21:09:10 +01:00
John Riebold
a85aa125d2
✨ Enable configuring Swagger UI parameters ( #2568 )
...
Co-authored-by: Artem Ivanov <artem@worklife.io>
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2022-01-16 20:26:24 +01:00
Sebastián Ramírez
672c55ac62
🔖 Release version 0.71.0
2022-01-07 18:07:59 +01:00
Sebastián Ramírez
3efb4f7edf
🔖 Release version 0.70.1
2021-12-12 12:39:32 +01:00
Sebastián Ramírez
5d80e02ae8
🔖 Release version 0.70.0
2021-10-07 19:34:27 +02:00
Sebastián Ramírez
921b6f742a
🔖 Release version 0.69.0
2021-10-07 18:45:43 +02:00
Thomas Grainger
11d0a08acd
✨ Add support for Trio via AnyIO ( #3372 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2021-10-06 17:32:11 +02:00
Sebastián Ramírez
378fa4ef75
🔖 Release version 0.68.2
2021-10-05 15:32:18 +02:00
Sebastián Ramírez
7b6e198d31
🔖 Release version 0.68.1
2021-08-24 14:16:09 +02:00
Sebastián Ramírez
20d4834546
✨ Add support for `read_with_orm_mode`, to support SQLModel relationship attributes ( #3757 )
2021-08-24 10:21:05 +00:00
Sebastián Ramírez
717a1ec409
🔖 Release version 0.68.0
2021-07-29 23:03:57 +02:00
Sebastián Ramírez
97fa743ecb
✨ Update OpenAPI models, supporting recursive models and extensions ( #3628 )
2021-07-29 20:59:26 +00:00
Edouard Lavery-Plante
836bb97a2d
✨ Add support for extensions and updates to the OpenAPI schema in path operations ( #1922 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2021-07-29 22:01:13 +02:00
James Curtin
4eada92883
✨ Import and re-export data structures from Starlette, used by Request properties, on `fastapi.datastructures` ( #1872 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2021-07-29 17:30:18 +02:00
dkreeft
6f45f43709
✨ Add additonal OpenAPI metadata parameters to `FastAPI` class, shown on the automatic API docs UI ( #1812 )
...
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
Co-authored-by: dkreeft <dkreeft@xccelerated.io>
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2021-07-29 17:10:22 +02:00
Hylke Postma
3b2e891917
✨ Add `description` parameter to all the security scheme classes, e.g. `APIKeyQuery(name="key", description="A very cool API key")` ( #1757 )
...
Co-authored-by: Hylke Postma <h.postma@docuwork.nl>
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2021-07-29 12:30:48 +02:00
Sebastián Ramírez
a0209a0d2c
🔖 Release version 0.67.0
2021-07-21 20:00:39 +02:00
Sebastián Ramírez
684c0077cc
✨ Add support for `dataclasses` in request bodies and `response_model` ( #3577 )
2021-07-21 19:54:08 +02:00
Sebastián Ramírez
96fdfc53cc
✨ Support `dataclasses` in responses ( #3576 )
...
Co-authored-by: amit lissack <amit@opentrons.com>
2021-07-21 14:39:12 +00:00
Marcelo Trylesinski
1ce7258a01
✏️ Fix typo on docstring in datastructures file ( #2887 )
2021-07-21 14:14:34 +02:00
Sebastián Ramírez
0a38c51b9e
🔖 Release 0.66.1
2021-07-19 21:26:52 +02:00
Sebastián Ramírez
7e9d5aacf8
🔖 Release version 0.66.0
2021-07-04 20:59:46 +02:00
Rubikoid
0e0931d308
🐛 Fix include/exclude for dicts in `jsonable_encoder` ( #2016 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2021-07-04 20:53:40 +02:00
Sebastián Ramírez
dc5a966548
✨ Allow setting the `response_class` to `RedirectResponse` and returning the URL from the function ( #3457 )
2021-07-03 21:51:28 +02:00
Jacob Magnusson
0ed6c92341
🐛 Support custom OpenAPI / JSON Schema fields in the generated output OpenAPI ( #1429 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2021-07-03 19:15:59 +02:00
Sebastián Ramírez
79f52c76cf
🔖 Release version 0.65.3
2021-07-03 18:33:32 +02:00
Sebastián Ramírez
edf6b2d61f
♻ Assume request bodies contain JSON when no Content-Type header is provided ( #3456 )
2021-07-03 18:25:12 +02:00
Sebastián Ramírez
4d91f978d2
🔖 Release version 0.65.2
2021-06-09 10:17:27 +02:00
Patrick Wang
fa7e3c996e
🐛 Check Content-Type request header before assuming JSON ( #2118 )
...
Co-authored-by: Patrick Wang <patrickkwang@users.noreply.github.com>
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2021-06-07 12:46:18 +02:00
Sebastián Ramírez
43df5d05ed
🔖 Release FastAPI version 0.65.1
2021-05-11 23:19:14 +02:00
Sebastián Ramírez
b890bd1dc5
🔖 Release version 0.65.0
2021-05-10 17:45:21 +02:00
Hannes Küttner
4aed0411e9
⬆️ Upgrade Starlette to 0.14.2, including internal UJSONResponse migrated from Starlette ( #2335 )
2021-05-10 16:09:04 +02:00
Sebastián Ramírez
2a67321130
🔖 Release version 0.64.0
2021-05-07 10:15:26 +02:00
Austin Orr
e10a4375f9
✨ Add support for adding multiple examples in request bodies and path, query, cookie, and header params ( #1267 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2021-05-05 20:20:56 +02:00
Sebastián Ramírez
4d208b2b90
🎨 Add newly required type annotations for mypy ( #2882 )
...
* ⬆️ Upgrade mypy
* 🎨 Add extra type annotations, now required by mypy
2021-03-01 20:01:50 +01:00
Sebastián Ramírez
e170c86412
🔖 Release version 0.63.0
2020-12-20 20:16:12 +01:00
Sebastián Ramírez
fdb6c9ccc5
✨ Improve type annotations, add support for mypy --strict, internally and for external packages ( #2547 )
2020-12-20 19:50:00 +01:00
Sebastián Ramírez
51e920e2fc
🔖 Release version 0.62.0
2020-11-29 19:36:38 +01:00
Sebastián Ramírez
313bbe802f
✨ Add support for shared/top-level parameters (dependencies, tags, etc) ( #2434 )
...
* ✨ Add Default and DefaultPlaceholder data structures
to handle defaults and overrides
* ✨ Add utils to get values by priority handling DefaultPlaceholders
* ✨ Add support for top-level parameters in FastAPI, APIRouter, include_router
including: prefix, tags, dependencies, deprecated, include_in_schema, responses, default_response_class, callbacks
* ♻️ Update openapi utils to handle DefaultPlaceholder for response_class
* 📝 Update bigger-application example code to use top-level params
and showcase them in APIRouter, FastAPI, include_router
* 📝 Update docs for Bigger Applications, include diagrams, top-level params
* 🔥 Simplify code and docs for callbacks as default_response_class is no longer required
* 📝 Add docs for top-level dependencies, in FastAPI()
* 📝 Add docs reference to top-level dependencies in docs for decorator
* ✅ Update/increase tests for Bigger Applications including shared parameters
* ✅ Add tests for top-level dependencies in FastAPI()
* ✅ Add tests for internal DefaultPlaceholder
* ✅ Update/increase tests for callbacks with top-level parameters
* ✅ Add LOTS of tests covering branches and cases for shared parameters
in top-level FastAPI, path operations, include_router, APIRouter, its path operations, nested include_router, nested APIRouter, and its path operations
* 🎨 Format/reorder parameters for consistency in FastAPI, APIRouter, include_router
2020-11-29 18:32:18 +01:00
Sebastián Ramírez
166088775a
🔖 Release version 0.61.2
2020-11-06 00:04:32 +01:00
John Riebold
b8e6d18385
📌 Relax Swagger UI version pin ( #2089 )
2020-11-05 22:57:16 +01:00
Yurii Karabas
4ce18167e7
🐛 Fix bug overriding custom HTTPException and RequestValidationError from exception_handlers ( #1924 )
2020-11-05 22:21:40 +01:00
Marcelo Trylesinski
b299792ebf
✏️ Fix typo on dependencies utils and cleanup unused variable ( #1912 )
2020-11-05 22:09:17 +01:00
Sebastián Ramírez
e77ea63577
🔖 Release version 0.61.1
2020-08-29 16:30:50 +02:00
Sebastián Ramírez
0dfde6e284
🐛 Fix issues introduced by removing sqlalchemy safeguard in jsonable_encoder ( #1987 )
2020-08-29 14:21:00 +02:00
Sebastián Ramírez
a6897963d5
🔖 Release version 0.61.0
2020-08-09 22:36:47 +02:00
Sebastián Ramírez
cdba8481c2
🔥 Remove old/unused parameter sqlalchemy_safe from jsonable_encoder ( #1864 )
2020-08-09 22:32:59 +02:00
Sebastián Ramírez
e1758d107e
⬆ Require Pydantic > 1.0 ( #1862 )
...
* 🔥 Remove support for Pydantic < 1.0
* 🔥 Remove deprecated skip_defaults from jsonable_encoder and set default for exclude to None, as in Pydantic
* ♻️ Set default of response_model_exclude=None as in Pydantic
* ⬆️ Require Pydantic >=1.0.0 in requirements
2020-08-09 22:17:08 +02:00
Nik
b9a0179a03
✨ Add support for injecting HTTPConnection ( #1827 )
2020-08-09 15:56:41 +02:00
Rupsi Kaushik
5ed48ccdc8
Export WebSocketDisconnect and add example handling disconnections to docs ( #1822 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2020-08-09 15:52:19 +02:00
Nima Mashhadi M. Reza
da9b5201c4
🔧 Add Flake8 linting ( #1774 )
...
Co-authored-by: nimashadix <nimashadix@pop-os.localdomain>
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2020-08-09 12:54:05 +02:00
Sebastián Ramírez
79e08a2541
🔖 Release version 0.60.2
2020-08-08 20:23:16 +02:00
Sebastián Ramírez
38d8bab770
✨ Raise early when using form data without installing python-multipart ( #1851 )
...
* Check if Form exists and multipart is in virtual environment
* Remove unused import
* Move BodyFieldInfo check to separate helper function
* Fix type UploadFile to File for BodyFieldInfo check
* Working solution. Kind of nasty though.
* Use better method of determing if correct package imported
* Use better method of determing if correct package imported
* Add raising exceptions, update error messages
* Check if Form exists and multipart is in virtual environment
* Move BodyFieldInfo check to separate helper function
* Fix type UploadFile to File for BodyFieldInfo check
* Use better method of determing if correct package imported
* Add raising exceptions, update error messages
* Removed unused import, added comments
Co-authored-by: Christopher Nguyen <chrisngyn99@gmail.com>
* Updated what kind of exception will be thrown
* Add type annotations
Adds annotations to is_form_data
* Fix import order
* Add basic tests
* Fixed Travis tests
* Replace logging with fastapi logger
* Change AttributeError to ImportError to fix exception handling
* Fixing tests
* Catch ModuleNotFoundError first
Fix code coverage
* Update fastapi/dependencies/utils.py
Remove error spaces when printing
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
* Update fastapi/dependencies/utils.py
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
* Removed spaces in error printing
* ♻️ Refactor form data detection
* ✅ Update/increase tests for incorrect multipart install
* 🔥 Remove deprecated Travis (moved to GitHub Actions)
Co-authored-by: yk396 <yk396@cornell.edu>
Co-authored-by: Christopher Nguyen <chrisngyn99@gmail.com>
Co-authored-by: Kai Chen <kaichen120@gmail.com>
Co-authored-by: Chris N <hello@chris-nguyen.me>
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
2020-08-08 09:14:10 +02:00
Henry Betts
7fbe3737bc
🐛 Fix encoding a Pydantic model that inherits from another with json_encoders ( #1769 )
2020-08-03 17:24:29 +02:00
Nima Mashhadi M. Reza
3063ad83ec
⚡ Simplify and improve jsonable_encoder ( #1754 )
...
Co-authored-by: nimashadix <nimashadix@pop-os.localdomain>
2020-08-03 15:30:23 +02:00
Yurii Karabas
55b9faeb48
♻ Simplify code syntax in several places ( #1753 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2020-08-03 15:16:51 +02:00
Nima Mashhadi M. Reza
3223de5598
🎨 Add typing.Optional to variables that accept None as value ( #1731 )
...
Co-authored-by: nimashadix <nimashadix@pop-os.localdomain>
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2020-08-03 14:29:07 +02:00
Bloodielie
b344cc9415
♻ Refactor and merge for loops in dependant creation ( #1714 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2020-08-03 10:32:06 +02:00
Bar Harel
f1c5330b65
🐛 Fix app.extra type annotation ( #1659 )
...
Co-authored-by: bar.harel <bar.harel@biocatch.com>
2020-08-03 08:43:04 +02:00
Sebastián Ramírez
f64c448329
🔖 Release version 0.60.1
2020-07-22 08:44:44 +02:00
Sebastián Ramírez
dadd6650ed
📌 Pin Swagger UI temporarily
2020-07-22 08:19:26 +02:00
Sebastián Ramírez
0f54657377
🔖 Release version 0.60.0
2020-07-20 18:26:56 +02:00
JAYATI SHRIVASTAVA
2b47f3e56b
✨ Add support for adding OpenAPI schema for GET requests with a body ( #1626 )
...
* add test for get request body's openapi schema
* 📝 Update docs note for GET requests with body
* ✅ Update test for GET request with body, test it receives the body
* 🔇 Temporary type ignore while it's handled in Pydantic
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2020-07-19 12:17:50 +02:00
Sebastián Ramírez
d60dd1b60e
🔖 Release version 0.59.0
2020-07-10 20:41:35 +02:00
tomarv2
ff6afeaf78
✏ Fix docstring typo for oauth2 utils ( #1621 )
2020-07-10 20:31:15 +02:00
Rupsi Kaushik
70a51b3aff
✨ Auto-generate OpenAPI servers from root_path ( #1596 )
...
* root_path included in servers object instead of path prefix
* ♻️ Refactor implementation of auto-including root_path in OpenAPI servers
* 📝 Update docs and examples for Behind a Proxy, including servers
* 📝 Update Extending OpenAPI as openapi_prefix is no longer needed
* ✅ Add extra tests for root_path in servers and root_path_in_servers=False
* 🍱 Update security docs images with relative token URL
* 📝 Update security docs with relative token URL
* 📝 Update example sources with relative token URLs
* ✅ Update tests with relative tokens
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2020-07-10 19:28:18 +02:00
Brian Mboya
fe453f80ed
⬆ Upgrade isort to version 5.x.x ( #1670 )
...
* Update isort script to match changes in the new release, isort v5.0.2
* Downgrade isort to version v4.3.21
* Add an alternative flag to --recursive in isort v5.0.2
* Add isort config file
* 🚚 Import from docs_src for tests
* 🎨 Format dependencies.utils
* 🎨 Remove isort combine_as_imports, keep black profile
* 🔧 Update isort config, use pyproject.toml, Black profile
* 🔧 Update format scripts to use explicit directories to format
otherwise it would try to format venv env directories, I have several with different Python versions
* 🎨 Format NoSQL tutorial after re-sorting imports
* 🎨 Fix format for __init__.py
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2020-07-09 20:06:12 +02:00
Sebastián Ramírez
3ff504f03f
🔖 Release version 0.58.1
2020-06-28 23:48:30 +02:00
Dmytro Petruk
39766d0f96
🐛 Fix link in warning logs ( #1611 )
...
Co-authored-by: Dmytro Petruk <petruk@ebu.ch>
2020-06-28 23:37:42 +02:00
Sebastián Ramírez
e5594e860f
✅ Update response_model_by_alias ( #1642 )
...
* Make openapi models honor response_model_by_alias
* Add test for response_model_by_alias working with openapi models
* ⏪ Revert changes
* ✅ Update and extend tests for response_model_by_alias
* ⏪ Revert test name change
* 📌 Pin Pytest and Pytest-Cov
Co-authored-by: Martin Zaťko <martin.zatko@kiwi.com>
2020-06-28 13:58:21 +02:00
Sebastián Ramírez
b87072bc12
🔖 Release version 0.58.0
2020-06-15 13:18:36 +02:00
Sebastián Ramírez
181a32236a
✨ Deep merge OpenAPI responses ( #1577 )
...
* override successful response
* ✨ Add deep_dict_udpate
* ✨ Merge additional responses with generated responses
* 🍱 Update docs screenshot
Co-authored-by: rkbeatss <rkaus053@uottawa.ca>
2020-06-15 13:12:12 +02:00
Andrew
12bc9285f7
🐛 Fix body validation error response, remove variable name when it is not embedded ( #1553 )
2020-06-14 18:07:39 +02:00
Andrew
7dd881334d
🐛 Fix testing security scopes when using dependency overrides ( #1549 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2020-06-14 17:54:46 +02:00
Vinny Do
530fc8ff3f
🐛 Fix JSON Schema "not" keyword ( #1548 )
2020-06-14 15:46:49 +02:00
mikaello
b591de2ace
✨ Add support for OpenAPI servers metadata ( #1547 )
...
* feat: add servers option for OpenAPI
Closes #872
* ✨ Use dicts for OpenAPI servers
* ♻️ Update OpenAPI Server model to support relative URLs
* ✅ Add tests for OpenAPI servers
* ♻️ Re-order parameter location of servers for OpenAPI
* 🎨 Format code
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2020-06-14 15:38:29 +02:00
Sebastián Ramírez
34c857b7cb
🔖 Release version 0.57.0
2020-06-13 23:13:25 +02:00
retnikt
c6dd627bdd
✨ Add support for Python's http.HTTPStatus in status_code ( #1534 )
...
* Normalise IntEnums to ints for route status codes
Closes #1349
* add tests for status code enum support
* add docs for status code enum support
* add endpoint test for enum status code
* 📝 Update note about http.HTTPStatus
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2020-06-13 19:40:10 +02:00
Patrick Wang
8fb755703d
✨ When using Pydantic models with __root__ use the internal value in jsonable_encoder ( #1524 )
2020-06-13 19:20:11 +02:00
TiewKH
dd9e94cf21
✨ Enable showCommonExtensions and showExtensions in SwaggerUI ( #1466 )
...
* Set showExtensions and showCommonExtensions to true
* Clean up comma
Co-authored-by: tiewkeehui <keehuitiew@airasia.com>
2020-06-13 18:16:34 +02:00
Richard Hoekstra
bd2acbcabb
✨ Export OAuth2PasswordRequestFormStrict from security ( #1462 )
...
* Update __init__.py
Fixes an import error:
from fastapi.security import OAuth2PasswordBearer, OAuth2PasswordRequestFormStrict
ImportError: cannot import name 'OAuth2PasswordRequestFormStrict'
* Simplify import of OAuth2PasswordRequestFormStrict
* Simplify import of OAuth2PasswordRequestFormStrict
2020-06-13 18:08:08 +02:00
obataku
7ce756f9dd
🐛 Fix duplicated headers set by indirect dependencies ( #1386 )
...
* Added test for repeating cookies in response headers
* update `response` headers, status code to match `sub_response` in `solve_dependencies` only if necessary; fix formatting of scottsmith2gmail's test
* restore code coverage, remove dead code from `solve_dependencies`
Co-authored-by: Scott Smith <scott.smith.2@gmail.com>
2020-06-13 14:44:51 +02:00
Aviram Hassan
b13a4baf32
✨ Add better JSON decode error handling, improve feedback for client after invalid JSON requests ( #1354 )
...
* Request body error, raise RequestValidationError instead of HTTPException in case JSON decode failure
* add missing test case for body general exception
2020-06-13 14:33:27 +02:00
Thomas Maschler
a071ddf3cd
✨ Add support for tag metadata in OpenAPI ( #1348 )
...
* Allow to add OpenAPI tag descriptions
* fix type hint
* fix type hint 2
* refactor test to assure 100% coverage
* 📝 Update tags metadata example
* 📝 Update docs for tags metadata
* ✅ Move tags metadata test to tutorial subdir
* 🎨 Update format in applications
* 🍱 Update docs UI image based on new example
* 🎨 Apply formatting after solving conflicts
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2020-06-13 13:58:06 +02:00
Rupsi Kaushik
3699e17212
✨ Implement __repr__ methods for path parameters to simplify debugging ( #1560 )
...
* repr description added to Depends class
* repr description added to Security subclass
* get rid of __repr__ in security since it will inherit from super
* make code format consistent with rest
* add desc for rest of the classes
* Update fastapi/params.py
remove trailing whitespace
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
* Implement __repr__
* fix formatting
* formatting again
* ran formatting
* added basic testing
* basic tests added to rest of the classes
* added more test coverage and simplified test file
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
Co-authored-by: Jayati Shrivastava <gaurijove@gmail.com>
2020-06-13 01:22:30 +02:00
Sebastián Ramírez
8231fbede4
🔖 Release version 0.56.1
2020-06-13 01:17:06 +02:00
kota matsuoka
a0ab47e89e
🎨 Remove unused f-string ( #1526 )
2020-06-13 00:56:00 +02:00
Micah Rosales
b90bf2da9e
🐛 Fix callable class generator dependencies ( #1365 )
...
* Fix callable class generator dependencies
* workaround to support asynccontextmanager backfill for pre python3.7
Co-authored-by: Micah Rosales <mrosales@users.noreply.github.com>
2020-06-12 22:57:59 +02:00
Dylan Anthony
2351fb5623
🔇 Remove error log when parsing malformed JSON body as it's a client error ( #1351 )
2020-06-12 22:44:40 +02:00
Nik
d66d8379c0
🐛 Fix OpenAPI generation when using callbacks with routers including Pydantic models ( #1322 )
...
* drop model class from additional responses when generating openapi
* ♻️ Copy response to be mutated early in get_openapi_path
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2020-06-12 22:35:59 +02:00
Kazantcev Andrey
434d32b891
⚡ Optimize regexp pattern in get_path_param_names ( #1243 )
2020-06-12 21:59:32 +02:00
Sebastián Ramírez
072c2bc7f9
🔖 Release version 0.56.0
2020-06-12 00:22:17 +02:00
Ingmar Steen
2f478eeca6
✨ Add support for ASGI root_path for openapi docs ( #1199 )
...
* Use ASGI root_path when it is provided and openapi_prefix is empty.
* Strip trailing slashes from root_path.
* Please mypy.
* Fix extending openapi test.
* 📝 Add docs and tutorial for using root_path behind a proxy
* ♻️ Refactor application root_path logic, use root_path, deprecate openapi_prefix
* ✅ Add tests for Behind a Proxy with root_path
* ♻️ Refactor test
* 📝 Update/add docs for Sub-applications and Behind a Proxy
* 📝 Update Extending OpenAPI with openapi_prefix parameter
* ✅ Add test for deprecated openapi_prefix
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2020-06-11 23:53:19 +02:00
Sebastián Ramírez
8d844bc5cf
🔖 Release version 0.55.1
2020-05-23 18:59:14 +02:00
Sebastián Ramírez
5984233223
🐛 Fix Enum handling with their own schema definitions ( #1463 )
...
* 🐛 Fix extra support for enum with its own schema
* ✅ Fix/update test for enum with its own schema
* 🐛 Fix type declarations
* 🔧 Update format and lint scripts to support locally installed Pydantic and Starlette
* 🐛 Add temporary type ignores while enum schemas are merged
2020-05-23 18:56:18 +02:00
Sebastián Ramírez
98bb9f13da
🔖 Release version 0.55.0
2020-05-23 16:06:32 +02:00