Node.JS ile Swagger üzerine


Evet direk olay 4 seneye yaklaşmış. Blog ve site yazarlıkları üzerinden yapmış olduğum paylaşımlardan uzaklaşalı.


Programlama.com ile başlayan (hatırlamayanlar için  programlama.com - ekşi sözlük (eksisozluk.com)DIJITAL KALE: JAVA ÖRNEK KODLARIM (buraktunali.blogspot.com) ve sonrasında sevgili Altuğ Bilgin Altuntaş hocamın Kodcu.com sitesinde devam eden yolculuğuma burada da kendi zorlamış ancak belli ki tembellik bastırmış son Ionic yazısından sonra büyük bir ara oluşmuş.

Artık silkelenip kaldığımız yerden devam etme vakti dedim (yok ya can sıkıntısı işte :) ) ilk yazımı Node.js ve Swagger üzerine yazmak istedim.

Yazımızın baş kahramanlarını tanıtarak başlayalım. 

Yıl olmuş 2021... Node.js neydi falan demezsiniz diyorum da 2009 da çıkan node.js i ilk olarak 2015 de tanıtmışım o zamanlar çiziklemişiz bir şeyler işte.

DIJITAL KALE: Node.js Başlangıç (buraktunali.blogspot.com)

Gelelim diğer kahramana... Swagger ise api lerin dökümantasyonuna ilaç gibi geldi açıkcası. Karanlık api kodlarına bir ışık. Tamam biraz abarttım :)

Görseller çok şey anlatıyor olmalı. 


 

Bakın burada da "Postman" cılık oynuyoruz. Api testimizi yapabiliyoruz. Yaz kodunu anında test...süper 




Şimdi gelelim yazının konusuna.. Bir node.js projemiz var. Yazdık ettik ama postman yanlışlıkla uninstall oldu nasıl olduysa :) Developer ında ya şu servise ne geliyordu ne gidiyordu diye Visual Studio Code 'a -webstormcular kızmayın onu da kullanıyorum :) - bakmaktan gözleri döndü. O yüzden swagger ekleyeceğiz. Buna bottom-up approach deniyor. 

Not : Bir de top-down var Swagger editor u kullanıp code generation yapabiliyorsunuz. (Swagger Editor)

Bilinen iki yöntem var. swagger-node-express ile swagger-ui-express. Biz swagger-ui-express paketini kullanarak yapacağız.

Sorunsuz bir paket ve download sayısı da güzel :)

swagger-ui-express - npm (npmjs.com)

npm i swagger-ui-express -S diyerek yükleyelim.

Yükleme sonrası package.json dosyamıza ekleniyor.


Şimdi de aşağıdaki kod satırlarını ekleyelim. Yazacağımız swagger.json -sevenler için yaml opsiyonumuz mevcut. :) - unun /api-docs path için bind etme işlemini yapıyoruz. 

app ın kaldırdığı js e ekleyelim.

var swaggerUi = require('swagger-ui-express'),
    swaggerDocument = require('./swagger.json');

app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocument));

Nasıl yazıyoruz diyenler için malzemeler aşağıdaki linkte.

Basic Structure (swagger.io)

Son olarak size bir de oas generator projesini tanıtmak istiyorum.
express-oas-generator - npm (npmjs.com)

Bu paketi kullanarak express üzerinden serve ettiğimiz endpointler için swagger /api-docs u otomatik olarak oluşuyor. Tabii ki komplike projeler için garanti veremem. Şu an çalıştıramadım tamam evet... bu bir itiraf  ama çalışacak tabii:)

Building a REST API with Node and Express (stackabuse.com)

Ama yukardaki proje için çalıştığını gördü bu gözler. :)







Kendime not : Blog olunca böyle informal yazabilmek ne güzel :) Kodcu.com a yazarken herhalde yüz defa okumak ne kadar da zordu. 

Yorumlar

Bu blogdaki popüler yayınlar

IONIC BAŞLANGIÇ

Cannot resolve the collation conflict between “Turkish_CI_AS” and “SQL_Latin1_General_CP1_CI_AS” in the equal to operation

Golang working with interfaces and functions -3