# Response Status Code { #response-status-code } Bir response model tanımlayabildiğiniz gibi, herhangi bir *path operation* içinde `status_code` parametresiyle response için kullanılacak HTTP status code'u da belirtebilirsiniz: * `@app.get()` * `@app.post()` * `@app.put()` * `@app.delete()` * vb. {* ../../docs_src/response_status_code/tutorial001_py39.py hl[6] *} /// note | Not `status_code`'un, "decorator" metodunun (`get`, `post`, vb.) bir parametresi olduğuna dikkat edin. Tüm parametreler ve body gibi, sizin *path operation function*'ınızın bir parametresi değildir. /// `status_code` parametresi, HTTP status code'u içeren bir sayı alır. /// info | Bilgi Alternatif olarak `status_code`, Python'un `http.HTTPStatus`'ı gibi bir `IntEnum` da alabilir. /// Bu sayede: * Response'da o status code döner. * OpenAPI şemasında (dolayısıyla kullanıcı arayüzlerinde de) bu şekilde dokümante edilir: /// note | Not Bazı response code'lar (bir sonraki bölümde göreceğiz) response'un bir body'ye sahip olmadığını belirtir. FastAPI bunu bilir ve response body olmadığını söyleyen OpenAPI dokümantasyonunu üretir. /// ## HTTP status code'lar hakkında { #about-http-status-codes } /// note | Not HTTP status code'ların ne olduğunu zaten biliyorsanız, bir sonraki bölüme geçin. /// HTTP'de, response'un bir parçası olarak 3 basamaklı sayısal bir status code gönderirsiniz. Bu status code'ların tanınmalarını sağlayan bir isimleri de vardır; ancak önemli olan kısım sayıdır. Kısaca: * `100 - 199` "Information" içindir. Doğrudan nadiren kullanırsınız. Bu status code'lara sahip response'lar body içeremez. * **`200 - 299`** "Successful" response'lar içindir. En sık kullanacağınız aralık budur. * `200`, varsayılan status code'dur ve her şeyin "OK" olduğunu ifade eder. * Başka bir örnek `201` ("Created") olabilir. Genellikle veritabanında yeni bir kayıt oluşturduktan sonra kullanılır. * Özel bir durum ise `204` ("No Content")'tür. Client'a döndürülecek içerik olmadığında kullanılır; bu nedenle response body olmamalıdır. * **`300 - 399`** "Redirection" içindir. Bu status code'lara sahip response'lar, `304` ("Not Modified") hariç, body içerebilir de içermeyebilir de; `304` kesinlikle body içermemelidir. * **`400 - 499`** "Client error" response'ları içindir. Muhtemelen en sık kullanacağınız ikinci aralık budur. * Örneğin `404`, "Not Found" response'u içindir. * Client kaynaklı genel hatalar için doğrudan `400` kullanabilirsiniz. * `500 - 599` server hataları içindir. Neredeyse hiç doğrudan kullanmazsınız. Uygulama kodunuzun bir bölümünde ya da server'da bir şeyler ters giderse, otomatik olarak bu status code'lardan biri döner. /// tip | İpucu Her bir status code hakkında daha fazla bilgi almak ve hangi kodun ne için kullanıldığını görmek için HTTP status code'lar hakkında MDN dokümantasyonuna göz atın. /// ## İsimleri hatırlamak için kısayol { #shortcut-to-remember-the-names } Önceki örneğe tekrar bakalım: {* ../../docs_src/response_status_code/tutorial001_py39.py hl[6] *} `201`, "Created" için kullanılan status code'dur. Ancak bu kodların her birinin ne anlama geldiğini ezberlemek zorunda değilsiniz. `fastapi.status` içindeki kolaylık değişkenlerini (convenience variables) kullanabilirsiniz. {* ../../docs_src/response_status_code/tutorial002_py39.py hl[1,6] *} Bunlar sadece kolaylık sağlar; aynı sayıyı taşırlar. Ancak bu şekilde editörün autocomplete özelliğiyle kolayca bulabilirsiniz: /// note | Teknik Detaylar `from starlette import status` da kullanabilirsiniz. **FastAPI**, geliştirici olarak size kolaylık olsun diye `starlette.status`'u `fastapi.status` olarak da sunar. Ancak bu aslında doğrudan Starlette'den gelir. /// ## Varsayılanı değiştirmek { #changing-the-default } Daha sonra, [İleri Düzey Kullanıcı Kılavuzu](../advanced/response-change-status-code.md){.internal-link target=_blank} içinde, burada tanımladığınız varsayılanın dışında farklı bir status code nasıl döndüreceğinizi göreceksiniz.