Slim 4 Framework İle POST İsteği Nasıl Yapılır

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 /kullanici URL’sine gelen POST taleplerini işler.
  • $request->getParsedBody(): Gelen POST verilerini alır ve bir dizi olarak $veri değişkenine atar.
  • $veri['isim'] ve $veri['email']: Gönderilen isim ve email alanlarını alıyoruz. Eğer boş ise varsayılan olarak Bilinmeyen olarak 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ü.

Scroll to Top