REST (Representational State Transfer) API, иногда называемый RESTful AP, — это API, который использует HTTP-запросы для доступа и использования ресурсов.
Эти ресурсы часто представлены в формате JSON, хотя в некоторых случаях используются форматы XML, текст и HTML. REST API стали стандартным способом для приложений обмениваться данными по сети с помощью методов HTTP, таких как GET, PUT, POST и DELETE. Они облегчают создание, чтение, обновление и удаление ресурсов, обычно называемых операциями CRUD.
В этом руководстве рассказывается, как вы можете использовать Node. JS для создания простого CRUD Restful API.
Что вам нужно следовать
Убедитесь, что на вашем локальном компьютере установлен Node.js. Бегать узел -v чтобы проверить, является ли Node. JS установлен. Эта команда должна вернуть номер версии.
Связанный: Как установить Node.js в Windows
У вас также должен быть рабочий экземпляр вашего любимого Текстовый редактор (например, код VS).
Настройка проекта
Создайте папку для своего приложения и перейдите к ней. На терминале и в только что созданном каталоге инициализируйте
пакет.json запустив нпм инициал.$npm инициализация -y
То пакет.json поможет вам установить и управлять пакетами npm. То -у flag создает файл package.json, используя параметры по умолчанию, без необходимости настраивать отдельные детали. Вывод на вашем терминале должен выглядеть так. Обратите внимание, что имя будет отличаться в зависимости от того, как вы назвали свою папку.
Настройте сервер
Чтобы создать сервер, сначала установите Express.js и Nodemon. Express.js — это узел. Js Framework, который был разработан для упрощения разработки веб-приложений и API. Вы будете использовать его для настроить сервер и конечные точки API. С другой стороны, Nodemon — это инструмент разработки, который перезапустит ваш сервер при изменении кода вашего приложения.
Выполните следующую команду для установки выражать и нодмон:
npm я выражаю nodemon
Далее, чтобы создать свой сервер, создайте файл и назовите его сервер.js затем добавьте следующий код.
// Требуется экспресс
константный экспресс = требуется ("экспресс");
// Инициализировать экспресс
константное приложение = экспресс();
постоянный ПОРТ = 8080;
// разбираем JSON
app.use(express.json());
// анализировать закодированные данные URL
app.use(express.urlencoded({extended: true}));
// создаем сервер
app.listen (ПОРТ, () => {
console.log(`Сервер работает на порту ${PORT}`);
});
В приведенном выше коде требуется выразить в вашем сервер.js файл и инициализировать его. Затем настройте экспресс для синтаксического анализа данных в формате JSON и URL-адресов. Наконец, создайте сервер, используя Слушать() метод от Экспресс.
Связанный: Что такое Express.js и почему вы должны его использовать?
Начало работы: создание массива для хранения пользовательских данных
Для простоты вы будете использовать не базу данных, а простой пользовательский массив. В файле app.js добавьте следующий код после строки, анализирующей данные, закодированные в URL-адресе.
постоянные пользователи = [{
идентификатор: 1,
имя: "Джейн Доу",
возраст: "22",
},
{
идентификатор: 2,
имя: "Джон Доу",
возраст: "31",
}];
Связанный: Как создать базу данных и коллекцию в MongoDB
Как настроить маршруты в Express.js
Для выполнения операций с вашими данными необходимо настроить маршрутизацию. Маршруты определяют, как ваше приложение будет отвечать на запросы, сделанные к определенной конечной точке. Каждый маршрут имеет метод HTTP, URL-адрес и функцию-обработчик, которая обрабатывает HTTP-запрос и ответ. Чтобы настроить маршруты, добавьте следующее в ваш сервер.js файл после вашего пользователи множество.
app.post('/create', (req, res) => {
// Создаем пользователя
});
app.get('/users', (req, res) => {
// Извлекает всех пользователей
});
app.get('/user/:userID', (req, res) => {
// Возвращает пользователя по ID
});
app.put('/user/:userID', (req, res) => {
// Обновить пользователя по ID
});
app.delete('/delete/:userID', (req, res) => {
// Удалить пользователя по ID
});
app.delete('/users', (req, res) => {
// Удалить всех пользователей
});
Как выполнять CRUD-операции в Node. Js
Вам нужно создать функции, которые будут манипулировать пользовательскими данными и возвращать ответ в соответствии с сопоставленным маршрутом. Эти функции будут создавать, читать, обновлять и удалять пользовательские данные.
Связанный: Как выполнять операции CRUD в MongoDB
Как создать нового пользователя
Чтобы создать нового пользователя, вам необходимо:
- Проверьте, не пусто ли тело запроса — если да, отправьте ответ об ошибке.
- Извлеките пользовательские данные из тела запроса.
- Подтвердите данные пользователя.
- Поместите пользовательские данные в массив.
Обратите внимание, что вы используете массив только для простоты. В реальном сценарии вы будете взаимодействовать с базой данных.
Отредактируйте маршрут POST, как показано ниже.
app.post("/create", (req, res) => {
// Проверяем, пусто ли тело запроса
если (!Object.keys (req.body).length) {
вернуть res.status (400).json({
сообщение: "Тело запроса не может быть пустым",
});
}
// Используем деструктуризацию объекта для получения имени и возраста
const {имя, возраст} = req.body;
если (!имя || !возраст) {
res.status (400).json({
сообщение: "Убедитесь, что вы отправили и имя, и возраст",
});
}
константный новый пользователь = {
идентификатор: пользователи.длина + 1,
название,
возраст,
};
пытаться {
users.push(новыйпользователь);
res.status (201).json({
сообщение: "Успешно создан новый пользователь",
});
} поймать (ошибка) {
res.status (500).json({
сообщение: "Не удалось создать пользователя",
});
}
});
Как читать пользователей
Чтобы получить всех пользователей, верните массив пользователей в свой ответ.
app.get("/users", (req, res) => {
пытаться {
res.status (200).json({
пользователи
});
} поймать (ошибка) {
res.status (500).json({
сообщение: "Не удалось получить всех пользователей",
});
}
});
Если вы протестируете этот маршрут с помощью почтальона, вы должны получить массив пользователей в теле ответа.
Чтобы получить только одного пользователя:
- Получите идентификатор пользователя из параметра URL.
- Использовать найти() чтобы определить, какие именно пользовательские данные вы запрашиваете.
- Верните пользователя в ответ.
app.get("/users/:userID", (req, res) => {
const id = parseInt (req.params.userID);
console.log(идентификатор);
пытаться {
let user = users.find((user) => идентификатор user.id);
если (!пользователь) {
вернуть res.status (404).json({
сообщение: "Пользователь не найден",
});
}
res.status (200).json({
Пользователь,
});
} поймать (ошибка) {
res.status (500).json({
сообщение: "Не удалось получить пользователя",
});
}
});
Как обновить пользователей
Чтобы обновить пользователя:
- Получите идентификатор пользователя из URL-адреса.
- Использовать найти() чтобы проверить, существует ли пользователь.
- Использовать индекс чего-либо() чтобы получить индекс пользователя, на который ссылаются.
- Используйте индекс для редактирования пользовательских данных с данными, отправленными через тело запроса.
app.put("/users/:userID", (req, res) => {
пытаться {
const id = parseInt (req.params.userID);
let user = users.find((user) => идентификатор user.id);
если (!пользователь) {
вернуть res.status (404).json({
сообщение: "Пользователь не найден",
});
}
const userIDX = users.indexOf (пользователь);
пользователи[userIDX].name = req.body.name || пользователи[userIDX].имя;
пользователи[userIDX].age = req.body.age || пользователи[userIDX].age;
res.status (200).json({
сообщение: "Успешно обновлен пользователь",
Пользователь,
});
} поймать (ошибка) {
res.status (500).json({
сообщение: "Не удалось получить пользователя",
});
}
});
Как удалить пользователей
Вы можете удалить одного пользователя или всех пользователей.
Чтобы удалить одного пользователя:
- Получить идентификатор пользователя из URL-адреса
- Использовать найти() чтобы проверить, существует ли пользователь
- Использовать найтиИндекс() чтобы получить индекс пользователя, на который ссылаются.
- Использовать соединение () чтобы удалить пользователя по этому индексу.
app.delete("/users/:userID", (req, res) => {
пытаться {
постоянный идентификатор = req.params.userID;
пусть userIDX = users.findIndex((user) => идентификатор user.id);
если (!userIDX) {
res.status (404).json({
сообщение: "Пользователь не найден",
});
}
users.splice(userIDX, 1);
res.status (200).json({
сообщение: "Успешно удален пользователь",
пользователи,
});
} поймать (ошибка) {
res.status (500).json({
сообщение: "Не удалось удалить пользователя",
});
}
});
Чтобы удалить всех пользователей, соедините весь массив.
app.delete("/users", (req, res) => {
пытаться {
users.splice(0,users.length);
res.status (200).json({
сообщение: "Успешно удалены все пользователи",
пользователи,
});
} поймать (ошибка) {
res.status (500).json({
сообщение: "Не удалось удалить пользователей",
Икс,
});
}
});
Узнайте больше об API RESTful
В этом руководстве обсуждается, как создать базовый RESTful API в Node. JS. Вы научились создавать сервер Express, настраивать маршруты и, наконец, создавать функции-обработчики, взаимодействующие с вашими данными посредством HTTP-запросов/ответов.
Однако есть некоторые важные темы, не затронутые здесь, которые вам следует изучить подробнее, в том числе о том, как подключить ваше приложение к базе данных, такой как MongoDB, и о том, как защитить маршруты.
MongoDB (от «огромный») — кроссплатформенная документоориентированная база данных, используемая в качестве альтернативы MySQL. Но что это значит?
Читать далее
- Программирование
- JavaScript
- API
Мэри Гатони — разработчик программного обеспечения, страстно любящий создавать технический контент, который не только информативен, но и привлекателен. Когда она не программирует и не пишет, ей нравится проводить время с друзьями и гулять на свежем воздухе.
Подписывайтесь на нашу новостную рассылку
Подпишитесь на нашу рассылку технических советов, обзоров, бесплатных электронных книг и эксклюзивных предложений!
Нажмите здесь, чтобы подписаться