API за REST (прехвърляне на репрезентативно състояние) – понякога наричан 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 Code).

Настройка на проекта

Създайте папка за вашето приложение и отидете до нея. Инициализирайте на терминала и в директорията, която току-що създадохте

instagram viewer
package.json чрез бягане npm init.

$ npm init -y 

В package.json ще ви помогне да инсталирате и управлявате npm пакети. В flag създава файла package.json, използвайки опциите по подразбиране, без да се налага да настройвате отделните детайли. Изходът на вашия терминал трябва да изглежда така. Имайте предвид, че името ще бъде различно в зависимост от това как сте именували вашата папка.

Настройте сървъра

За да създадете сървър, първо инсталирайте Express.js и Nodemon. Express.js е възел. Js рамка, която е проектирана да улесни разработването на уеб приложения и API. Ще го използвате за конфигурирайте сървъра и крайните точки на API. Nodemon от друга страна е инструмент за разработка, който ще рестартира вашия сървър, когато кодът на приложението ви се промени.

Изпълнете следната команда, за да инсталирате експресно и нодемон:

npm i express nodemon 

След това, за да създадете своя сървър, създайте файл и го извикайте server.js след това добавете следния код.

// Изисквайте експресно
const express = изисквам ("експрес");
// Инициализирайте експрес
const app = express();
const PORT = 8080;
// анализира JSON
app.use (express.json());
// анализира URL кодирани данни
app.use (express.urlencoded({ extended: true }));
// създаване на сървър
app.listen (PORT, () => {
console.log(`Сървър, работещ на порт ${PORT}`);
});

В горния код изисквайте експресно във вашия server.js файл и го инициализирайте. След това конфигурирайте express, за да анализирате JSON и URL кодирани данни. Накрая създайте сървър с помощта на слушам() метод от Express.

Свързани: Какво е Express.js и защо трябва да го използвате?

Първи стъпки: Създайте масив за съхранение на потребителски данни

За опростяване няма да използвате база данни, а по-скоро прост потребителски масив. Във вашия app.js добавете следния код след реда, който анализира кодираните от URL адреси данни.

константни потребители = [{
идентификатор: 1,
име: "Джейн Доу",
възраст: "22",
},
{
идентификатор: 2,
име: "Джон Доу",
възраст: "31",
}];

Свързани: Как да създадете база данни и колекция в MongoDB

Как да настроите маршрути в Express.js

За да извършвате операции с вашите данни, трябва да настроите маршрутизиране. Маршрутите ще определят как вашето приложение ще отговори на заявки, направени до определена крайна точка. Всеки маршрут има HTTP метод, URL и функция за обработка, която обработва HTTP заявката и отговора. За да настроите маршрутите, добавете следното към вашия server.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) => {
// Проверете дали тялото на заявката е празно
if (!Object.keys (req.body).length) {
върне res.status (400).json({
съобщение: "Тялото на заявката не може да бъде празно",
});
}
// Използвайте деструктуриране на обект, за да получите име и възраст
const { име, възраст } = req.body;
ако (!име || !възраст) {
res.status (400).json({
съобщение: "Уверете се, че сте изпратили както име, така и възраст",
});
}
const newUser = {
идентификатор: потребителска дължина + 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 (id);
опитвам {
нека user = users.find((user) => user.id 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);
нека user = users.find((user) => user.id id);
ако (!потребител) {
върне res.status (404).json({
съобщение: "Потребителят не е намерен",
});
}
const userIDX = users.indexOf (потребител);
users[userIDX].name = req.body.name || потребители[userIDX].име;
users[userIDX].age = req.body.age || потребители[userIDX].възраст;
res.status (200).json({
съобщение: "Потребителят е актуализиран успешно",
потребител,
});
} улов (грешка) {
res.status (500).json({
съобщение: "Неуспешно извличане на потребителя",
});
}
});

Как да изтриете потребители

Можете да изберете да изтриете един потребител или всички потребители.

За да изтриете един потребител:

  • Извлечете потребителския идентификатор от URL адреса
  • Използвайте намирам() за да проверите дали потребителят съществува
  • Използвайте findIndex() за да получите индекса на потребителя, към който се препраща.
  • Използвайте снаждане () за да изтриете потребителя в този индекс.
app.delete("/users/:userID", (req, res) => {
опитвам {
const id = req.params.userID;
нека userIDX = users.findIndex((user) => user.id 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({
съобщение: "Неуспешно изтриване на потребители",
х,
});
}
});

Научете повече за RESTful API

Този урок обсъжда как да създадете основен RESTful API в Node. JS Научихте как да създадете експресен сървър, да настроите маршрути и накрая да създадете функции за обработка, които взаимодействат с вашите данни чрез HTTP заявки/отговори.

Има обаче някои основни теми, които не са обхванати тук, които трябва да проучите допълнително, включително как да свържете приложението си към база данни като MongoDB и как да защитите маршрути.

Как една база данни MongoDB може по-добре да организира вашите данни

MongoDB (от "humongous") е междуплатформена документно-ориентирана база данни, използвана като алтернатива на MySQL. Но какво означава това?

Прочетете Следващото

Дялтуителектронна поща
Свързани теми
  • Програмиране
  • JavaScript
  • API
За автора
Мери Гатони (публикувани 2 статии)

Мери Гатони е разработчик на софтуер със страст за създаване на техническо съдържание, което е не само информативно, но и ангажиращо. Когато не кодира или пише, тя обича да излиза с приятели и да е на открито.

Още от Mary Gathoni

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, ревюта, безплатни електронни книги и ексклузивни оферти!

Щракнете тук, за да се абонирате