iki yazılımın birbirleriyle konuşmasını sağlayan arayüzü geliştirme işi. günümüzde web tarafında denince akla çoğunlukla http üzerinden çalışan rest api'ler geliyor. temelinde istemcinin sunucuya bir istek göndermesi, sunucunun da bunu işleyip uygun bir cevap döndürmesi var.
get ile veri çekilir, post ile yeni kaynak oluşturulur, put/patch ile güncelleme, delete ile silme yapılır. iş sadece endpoint açmaktan ibaret değil; authentication, authorization, input validation, hata yönetimi, status code'lar, pagination, rate limiting, logging, caching ve api versioning gibi konular da işin içine giriyor.
örneğin:
GET /api/users/42
dediğinde 42 numaralı kullanıcının bilgisini döndüren bir endpoint tasarlamak basit kısmı. asıl mühendislik; bu endpoint'in yetkisiz erişime kapatılması, hatalı girdilerin düzgün ele alınması, veritabanının gereksiz yere zorlanmaması, aynı anda binlerce istekte sistemin davranışının öngörülebilir olması ve api sözleşmesinin düzgün dokümante edilmesinde.
özetle "birkaç endpoint yazdım" ile api geliştirmek arasında, "çalışıyor" ile "production-ready" arasındaki fark kadar fark vardır.