Теперь, когда вы узнали о Restful API, давайте погрузимся и создадим полезный начальный Restful API, используя Node и Express.

Вместо того, чтобы идти пошагово, я думаю, что проще объяснить, имея в руках полный проект, и объяснить, почему и как я создал проект. Прежде чем двигаться дальше, убедитесь, что вы загрузили и установили Node.

Теперь все готово к запуску. Давайте клонируем репозиторий node_starter_kit.

› git clone https://github.com/cmtanko/node_starter_kit.git
› cd node_starter_kit

Это простой сервис Restful API, использующий Node & Express со следующими функциями.

-EcmaScript 2015 / ES6
-Линтинг с помощью eslint
-Swagger реализован для документации API
-Модульное тестирование с помощью Mocha
-Защищено промежуточным программным обеспечением Helmet
-Журналирование запросов
-Менеджер процессов2

СТРУКТУРА ПРОЕКТА:

если вы откроете проект в любом редакторе по вашему выбору, вы сможете увидеть следующую структуру папок.

-dist (содержит минифицированные скомпилированные файлы)
-public (содержит внешнюю папку api-docs, которая скопирована из Swagger для документации)
-src (содержит все основные исходники)
-test (тесты для модульного тестирования с использованием Mocha)
-.babelrc (файл конфигурации для babel)
-.eslintrc (файл конфигурации для eslint для линтинга)
-.gitignore (вы, вероятно, уже знаете это )
-README.md (вы, вероятно, уже знаете это)
-pacakge.json (содержит всю информацию о проекте, зависимостях и запускаемых скриптах)

Если вы видите скрипт в файле package.json, мы можем запустить сервер разработки, набрав

›npm run dev (›nodemon src/api.js — exec babel-node src/api.js)

Давайте перейдем к нашей главной стартовой странице скрипта, т.е. src/api.js.

import 'babel-polyfill';
//без babel-polyfill, babel позволяет использовать только такие функции, как стрелочные функции, деструктурирование, аргументы по умолчанию и другие особенности синтаксиса, представленные в ES6.

импортировать cors из cors;
//CORS — это пакет node.js для предоставления промежуточного программного обеспечения Connect/Express, которое можно использовать для включения CORS с различными параметрами.

импортировать путь из ‘path’;
//Модуль path предоставляет утилиты для работы с путями к файлам и каталогам.

импортировать шлем из 'helmet';
// Helmet – это набор экспресс-промежуточного программного обеспечения, помогающего защититься от межсайтового скриптинга (XSS), внедрения скриптов, кликджекинга, небезопасных запросов и т. д.

import morgan from ‘morgan’;
//промежуточное программное обеспечение регистратора HTTP-запросов для node.js

импортировать экспресс из ‘express’;
//Веб-фреймворк для узла, сервера ящиков, маршрутов и т. д.

import bodyParser from ‘body-parser’;
//Разбирайте тела входящих запросов в промежуточном программном обеспечении перед вашими обработчиками, доступными в свойстве req.body.

Мы используем все вышеупомянутое промежуточное ПО с помощью app.use()
app.use(cors());
app.use(helmet());
app.use(morgan(' dev'));
app.use(bodyParser.json());
app.use(express.static(path.join(__dirname, '/../public')));< br /> app.use('/api', маршруты);

Запуск сервера с помощью
const app = express();
app.listen(APP_PORT, () =›{
logger.log('info', 'Сервер запущен с ' + APP_HOST + ' :' + APP_PORT);
});

поэтому обычно он должен быть доступен на локальном хосте: 3000.

Определение маршрутов:

импортировать маршруты из ‘./routes’;
app.use(‘/api’, маршруты);

Routes.js

Определить маршрут так же просто, как это,

router.get(‘/students, studentController().getStudentList);
router.post(‘/students, studentController().addStudent);

Контроллер:

Услуга:

Тест для сервиса.