committed by
GitHub
1 changed files with 69 additions and 0 deletions
@ -0,0 +1,69 @@ |
|||||
|
# Ek Durum Kodları |
||||
|
|
||||
|
**FastAPI** varsayılan olarak, *yol operasyonu* ile döndürdüğünüz içeriği `JSONResponse`'ın içerisinde yerleştirerek yanıtları döndürecektir. |
||||
|
|
||||
|
Varsayılan durum kodunu veya *yol operasyonu* ile belirlediğiniz durum kodunu kullanacaktır. |
||||
|
|
||||
|
## Ek Durum Kodları |
||||
|
|
||||
|
Varsayılan durum kodunun dışında ek durum kodları döndürmek istiyorsanız, bunu doğrudan bir `Response` döndürerek yapabilirsiniz, örneğin bir `JSONResponse` ile ek durum kodunu doğrudan belirleyebilirsiniz. |
||||
|
|
||||
|
Örneğin, öğeleri güncellemeye izin veren ve başarılı olduğunda her şeyin yolunda olduğunu belirten "200" HTTP durum kodunu döndüren bir *yol operasyonu* oluşturmak istediğinizi varsayalım. |
||||
|
|
||||
|
Aynı zamanda, yeni öğeler kabul etmek istiyorsunuz ve bu öğereler mevcut değilse öğeleri oluşturmak ve "Oluşturuldu" anlamına gelen 201 HTTP durum kodunu döndürmek istiyorsunuz. |
||||
|
|
||||
|
Bunun için `JSONResponse`'ı projenize dahil edin ve içeriğinizi doğrudan `JSONResponse` içerisinde istediğiniz `status_code` ile birlikte yanıt olarak döndürün: |
||||
|
|
||||
|
=== "Python 3.10+" |
||||
|
|
||||
|
```Python hl_lines="4 25" |
||||
|
{!> ../../../docs_src/additional_status_codes/tutorial001_an_py310.py!} |
||||
|
``` |
||||
|
|
||||
|
=== "Python 3.9+" |
||||
|
|
||||
|
```Python hl_lines="4 25" |
||||
|
{!> ../../../docs_src/additional_status_codes/tutorial001_an_py39.py!} |
||||
|
``` |
||||
|
|
||||
|
=== "Python 3.8+" |
||||
|
|
||||
|
```Python hl_lines="4 26" |
||||
|
{!> ../../../docs_src/additional_status_codes/tutorial001_an.py!} |
||||
|
``` |
||||
|
|
||||
|
=== "Python 3.10+ non-Annotated" |
||||
|
|
||||
|
!!! tip "İpucu" |
||||
|
Mümkün mertebe 'Annotated' sınıfını kullanmaya çalışın. |
||||
|
|
||||
|
```Python hl_lines="2 23" |
||||
|
{!> ../../../docs_src/additional_status_codes/tutorial001_py310.py!} |
||||
|
``` |
||||
|
|
||||
|
=== "Python 3.8+ non-Annotated" |
||||
|
|
||||
|
!!! tip "İpucu" |
||||
|
Mümkün mertebe 'Annotated' sınıfını kullanmaya çalışın. |
||||
|
|
||||
|
```Python hl_lines="4 25" |
||||
|
{!> ../../../docs_src/additional_status_codes/tutorial001.py!} |
||||
|
``` |
||||
|
|
||||
|
!!! warning "Uyarı" |
||||
|
Yukarıdaki örnekte olduğu gibi bir `Response` döndürdüğünüzde, doğrudan döndürülecektir. |
||||
|
|
||||
|
Bu yanıt herhangi bir modelle dönüştürülme işlemine tabi tutulmayacaktır. |
||||
|
|
||||
|
Yanıtın, istediğiniz veriye sahip olduğundan ve (eğer `JSONResponse` kullanıyorsanız) değerlerin geçerli JSON olduğundan emin olun. |
||||
|
|
||||
|
!!! note "Teknik Detaylar" |
||||
|
Projenize dahil etmek için `from starlette.responses import JSONResponse` kullanabilirsiniz. |
||||
|
|
||||
|
**FastAPI**, geliştiricilere kolaylık sağlamak amacıyla `starlette.responses`'ı `fastapi.responses` olarak sağlar. Ancak mevcut yanıtların çoğu doğrudan Starlette'den gelir. Aynı durum `status` için de geçerlidir. |
||||
|
|
||||
|
## OpenAPI ve API Dokümantasyonu |
||||
|
|
||||
|
Eğer ek durum kodları ve yanıtlarını doğrudan döndürürseniz, bunlar OpenAPI şemasına (API belgeleri) dahil edilmeyecektir, çünkü FastAPI'ın önceden ne döndüreceğinizi bilmesi için bir yol yoktur. |
||||
|
|
||||
|
Ancak [Additional Responses](additional-responses.md){.internal-link target=_blank} sayfasında belirtildiği gibi "ek yanıtlar" kullanarak, bunu kodunuzda dokümante edebilirsiniz. |
Loading…
Reference in new issue