Slim 4 Framework ile POST işlemleri yapmak oldukça basit ve kullanışlıdır. Bu yazıda, Slim 4’te POST taleplerini nasıl işleyebileceğinizi anlatacağım.
Hangi Durumlarda POST İşlemi Kullanılır?
- Form verisi gönderme: Kullanıcılardan form yoluyla bilgi alma.
- Veritabanına veri ekleme: Kullanıcıdan alınan veriyi kaydetmek için.
- API geliştirme: Başka uygulamalardan veri almak veya diğer uygulamalara veri sağlamak.
POST İşlemleri İçin Dikkat Edilmesi Gerekenler
- Doğrulama: Kullanıcının gönderdiği veriyi doğrulayın (örneğin, boş mu diye kontrol edin).
- Güvenlik: Önemli verileri işlerken güvenlik önlemleri alın (örneğin, SQL enjeksiyonu gibi saldırılara karşı korunmak için).
- Hata Yönetimi: POST işlemlerinde hata olduğunda kullanıcıya anlamlı hata mesajları verin.
- JSON Yanıtlar: API geliştirirken JSON formatında yanıt döndürmek daha profesyonel ve kullanıcı dostudur.
index.php oluşturup Slim 4 uygulamasının temel yapısını tanımlayalım. (Slim, kurulumunu yaptığınızı düşünüyorum.)
<?php
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Slim\Factory\AppFactory;
require __DIR__ . '/vendor/autoload.php';
$app = AppFactory::create();
$app->setBasePath('/slim4'); //Uygulama alt dizinde çalışıyorsa belirtmek
//İstekler ile alakalı kodu bu alana yazacağız
$app->run();POST İşlemi Nasıl Yapılır?
1. POST Route Tanımlama
Slim 4’te bir POST işlemi tanımlamak için post metodunu kullanıyoruz. Örneğin, kullanıcıdan isim ve e-posta alacağımız bir rota oluşturalım:
$app->post('/kullanici', function (Request $request, Response $response, $args) {
$veri = $request->getParsedBody();
$isim = $veri['isim'] ?? 'Bilinmeyen';
$email = $veri['email'] ?? 'Bilinmeyen';
$mesaj = [
'isim' => $isim,
'email' => $email
];
$response->getBody()->write(json_encode($mesaj));
return $response->withHeader('Content-Type', 'application/json');
});Bu örnekte:
$app->post: POST HTTP metoduyla bir rota tanımlıyoruz./kullanici: Bu rota/kullaniciURL’sine gelen POST taleplerini işler.$request->getParsedBody(): Gelen POST verilerini alır ve bir dizi olarak$verideğişkenine atar.$veri['isim']ve$veri['email']: Gönderilenisimveemailalanlarını alıyoruz. Eğer boş ise varsayılan olarakBilinmeyenolarak gösteriyoruz.json_encode($mesaj): JSON formatında bir yanıt döndürüyoruz.withHeader('Content-Type', 'application/json'): Yanıtın içeriğini JSON formatında belirliyoruz.
Şimdi API’yi test edelim. Ben API testi için HTTPie kullanıyorum. Tavsiye ederim.

Yukarıda görüldüğü üzere API başarılı bir şekilde çalıştı. JSON formatında bilgiyi döndürdü.