AWS Lambda API Gateway Nedir?

AWS API Gateway, Amazon Web Services'in sunduğu tamamen yönetilen bir API oluşturma ve yönetme servisidir.

Serverless mimariyle çalışan uygulamalarda en çok kullanılan servislerden biridir çünkü Lambda fonksiyonlarını internete açmak için bir “kapı” görevi görür.

Serverless Framework ile oluşturduğumuz endpoint’ler aslında API Gateway üzerinden çalışıyor.

Kullanıcı → API Gateway → Lambda → Database → Response

Yani lambda fonksiyonlarımızı api gateway ile internete açıyoruz. API gateway, ölçeklenebilirlik, güvenlik, performansıda otomatik olarak sağlar.

API Gateway, standart HTTP metodolojisini destekler. GET, POST, PUT, DELETE metotlarını kullanabiliriz.

 

 

Lambda fonksiyonları her zaman bir event alır.

Event içinde:

  • body

  • headers

  • path

  • httpMethod

  • queryStringParameters
    gibi bilgiler bulunur.

API Gateway ile gelen HTTP body’si string formatındadır, bu yüzden JSON.parse ile JS obje haline getiriyoruz.

 

 

Yml dosyamızda fonksiyonumuzu tanımladık ve hangi route’a gideceğini, hangi metodu kullanacağını verdik.

Şimdi deploy edeceğiz ve tam deploy yapmamız gerekiyor single function deploy olmaz. Çünkü konfigürasyonu değiştirdik.

 

 

 

 

Bir API Gateway endpoint’ine istek gittiğinde şu akış gerçekleşir:

Client → API Gateway → Lambda → Response → API Gateway → Client

API Gateway gelen statusCode değerine göre yanıtı istemciye gönderir.

200 OK -> başarılı

201 Created -> yeni kaynak post işlemlerinde

400 Badrequest -> istek hatalı body yanlış formatta olabilir.

500 server error -> sunucu hatası

Gibi birçok response code mevcuttur zaten klasik http response kodlarıdır.