Skip to content

Instantly share code, notes, and snippets.

View jettary's full-sized avatar
🍀

Valentin jettary

🍀
  • @DistilleryTech
  • Taganrog
View GitHub Profile
const _ = require('lodash');
const fs = require('fs');
const yaml = require('js-yaml');
const header = {
swagger: '2.0',
info: {
version: '1.0.0',
title: 'Some Title',
description: 'Some funny description'
},

Что любят программисты? - Писать код. Однако, если программист только и делает, что пишет код, результат получается довольно печальным. Для достижения наилучшего результата инженерам необходимо общаться друг с другом. И документация - один из лучших способов такого общения.

Примером хорошей документации, которая упрощает жизнь разработчикам бэкенда, фронтенда и особенно тестировщикам - Swagger: описание входных и выходных моделей, параметры запросов, переключение окружение, наследование и расширение моделей. Но как говорил Бенджен Старк "Я научился не слышать всё, что идёт до слова НО", и это НО - комбинация Swagger и node.js

Есть несколько подходов к реализации связки Node.js + Swagger. Первый из них - использовать модуль swagger-node. Работа с ним крайне проста:

$> npm install -g swagger
$> swagger project create hello-world
@jettary
jettary / pre-commit
Created April 16, 2019 10:27
Check TS Node.js project with linter and console.log appearence
#!/bin/sh
pass=true
BOLD='\033[1m'
RED='\033[1;31m'
GREEN='\033[0;32m'
NC='\033[0m'
printf "${BOLD}Running Linters${NC}:\n"
app.use(beforeControllersMiddlewares)
useExpressServer(app, {
routePrefix: '/api',
controllers: [`${__dirname}/controllers/*.ts`],
});
app.use(afterControllersMiddlewares);
function afterControllersMiddlewares(err, req, res, next) {