Swagger (http://swagger.io/) adalah salah satu tools yang populer di kalangan API developer terutama digunakan untuk membuat dokumentasi atas API yang telah dibuat.
Contoh official Swagger UI dari website mereka bisa dilihat disini : http://petstore.swagger.io/.
Berikut akan coba saya jabarkan step by step meng-implementasi Swagger UI ini di NodeJS secara sederhana, semua code ada di Github Repository https://github.com/mazipan/sample-swagger-for-nodejs
-
Install Swagger
npm install -g swagger
-
Create Skeleton
swagger project create hello-world
-
Start Server
swagger project start
-
Open Swagger Editor
swagger project edit
Sampai disini sebenarnya swagger project sudah bisa di RUN, namun ada beberapa hal yang mesti dibenahi untuk membuat API documentation kita sendiri, antara lain :
-
Add more depedency
Berikut sample beberapa depedency yang saya tambahkan, sebagian adalah untuk mendukung pembuatan API dan halaman Index routing.
"body-parser": "^1.13.3", "cookie-parser": "~1.3.5", "express": "^4.12.3", "jade": "~1.11.0", "lodash": "^4.15.0", "mongoose": "^3.6.19", "swagger-express-mw": "^0.1.0", "swagger-tools": "^0.10.1" -
Change app.js for add Swagger UI
Import variable SwaggerUI seperti berikut :
var SwaggerUi = require('swagger-tools/middleware/swagger-ui');Tambah code barikut sebelum swaggerExpress.register :
// Add swagger-ui (This must be before swaggerExpress.register) app.use(SwaggerUi(swaggerExpress.runner.swagger));
-
Buat API seperti biasa
Saya tidak akan menjelaskan lagi, bisa dibaca disini
-
Ubah swagger.yaml
Ubah swagger.yaml di folder api/swagger/swagger.yaml
Anda bisa manual mengubahnya, atau gunakan Swagger Editor untuk mengubah dan Anda bisa live preview dan auto save atas perubahan tersebut.
Gunakan perintah ini :swagger project edit
Anda mungkin butuh melihat sample swagger.yaml yang saya buat disini
Semua code bisa di lihat disini : https://github.com/mazipan/sample-swagger-for-nodejs
