Open API Specification İle Hızlı Android Uygulama Geliştirmek
Not: Evet yanlış duymadınız artık uygulamalarınızı daha hızlı geliştirebilirsiniz. Başlık tuhaf oldu ama şimdiye kadar yazdığım başlıklar arasında içeriği en iyi yansıtan başlık galiba bu oldu.
Merhabalar, bugün ki yazımızda Open API Specification nedir? Ve bu specification ile nasıl Android Uygulama geliştirmeye hızlı bir giriş yapabiliriz ondan bahsedeceğim.
OPEN API NEDİR?
Open API makinelerin haberleşmesi için belli bir standart. Örneğin Soap gibi. Son zamanlarda en çok duyduğumuz teknolojilerden biri olan Swagger’da OPEN API Specification ile yazılmıştır. Zaten yazımızın detayında Swagger sayesinde neler yapabileceğimizden bahsedeceğim.
SWAGGER NEDİR?
Eskiden Backend servislerini yazan arkadaş client geliştiricilere “Arkadaşlar şu servislere şu requestleri atacaksınız” diye detaylı bir dökümantasyon hazırlardı(Tamam 24 yaşında olabilirim ama büyüklerimden duyduğum bu şekilde). Ve hazırlanan bu dökümantasyon bayağı bir süre alırdı. Sonra Swagger çıktı ve sizin yazdığınız controllerlara göre otomatik dökümantasyon oluşturmaya başladı( burası biraz backend ).
Yukarıdaki yapı backend geliştiricileri artık client geliştiricilere “Arkadaşlar Swagger Linki bu tüm Restful API endpointleri bu linkte bana bir daha birşey sormayın” demeye başladı. Peki yukarıdaki HTML sayfa nasıl oluşuyor?
Backend geliştirici arkadaşlar Swagger Generator’u projeye eklediklerinde Swagger Generator tüm controllerları (frameworkten frameworke göre değişir) kontrol eder ve controllerdaki annotationlara göre (Spring’te) bir json dosyası generate eder. Ve bu json dosyası OPEN API Specification’a göre oluştuğu için ve html sayfa bu standartı bildiği için buna göre güzel bir yapıya bürüne biliyor. Peki bu json dosyası belli bir standart bir yapıya göre oluşabiliyor ise biz bu standartıda biliyor ise neden tüm servisleri içeren bir Android proje oluşturmayalım ki?
Hımmmmm kesinlikle böyle birşey olmalı deyip araştırınca karşınıza Swagger Codegen çıkıyor.
Peki bu Swagger Codegen Nedir?
Belli bir standarta göre oluşmuş bir dosya üstünden size server veya client oluşturmakta. Detaylar yukarıda mevcut. Default olarak Android Client oluşturabilirsiniz yukarıdaki dökümantasyonda mevcut bu. Ama Volley ile size servislerin olduğu bir client oluşturmakta. Iyyyy ben isterim ki Retrofit ve RxJava kullanmak. Bunun için bu standarta göre Retrofit ve RxJava kullanarak otomatik client generate eden bir gradle projesi buldum.
Nasıl kullanacağınıza dair tüm detaylar yukarıda ki depoda mevcut. Yukarıdaki depo sayesinde backendi geliştiren arkadaş size Swagger’ı verdiğinde Swagger’ın JSON dosyası sayesinde yazacağınız tüm servisleri, tüm request body classlarını ve tüm response body classlarını otomatik oluşturarak projede 20 gün öne atlayabilirsiniz. Tabi biraz otomatik oluşan dosyaları traşlamak lazım.
Size tavsiyem elinizde imkan var ise Backend’çi arkadaşa ilk önce Swagger projesini oluşturtup sonra projeye başlamanız.
Umarım ki bu yazı projelerde biraz rahatlamınızı sağlar