ノード.REST APIを作る方法パート1
ハローコミュニティ.
このチュートリアルでは、NODEJSを使用してREST APIを作る方法を教えます.
これらすべてのトピックをカバーします. REST API:何が,何がその利点か 我々のプロジェクト の考えセットアップ環境 は、我々のプロジェクト のために最高の構造を選びます私たちのREST APIをビルド では始めましょう
REST APIは2000年以降完全にソフトウェア工学を変えました.Webプロジェクトとサービスを開発するためのこの新しいアプローチは、RYフィールディング(HTTP仕様の父)とネットワークアーキテクチャで行うすべての主要な国際的な権威の1つである、「建築様式とネットワークベースのソフトウェアアーキテクチャの設計」と題された論文で定義されました.
今日は、このソフトウェアに基づいてプロのサービスの作成のための残りのAPIを持っていないプロジェクトやアプリケーションがありません.Twitter、YouTube、Facebookの識別システム…企業の何百もの残りの残りの部分にビジネスのおかげで生成API.それらなしで、水平方向の成長は実質的に不可能です.これは、RESTがインターネットサービスのAPIの作成において最も論理的で、効率的で広く普及しているからです.
このチュートリアルでは、ムービーAPIを構築します.登録ユーザー ログインユーザー は、新しい映画を作成します すべての映画を得る(パート2) IDによって映画を得てください映画を加えます(パート2) 最新映画(パート2) 削除映画(パート2)
APIをビルドするための技術エクスプレス:ノードJSフレームワーク MongoDB : NoSQLデータベースとマングースパッケージを使用します
あなたのCMDとタイプを開けてください
ムービーAPI :
├───コントローラ
├───ミドルウェア
├───モデル
└───路線
だからこれらのフォルダを作成し、実際の仕事を始めましょう
まずインデックスを作成する必要があります.jsファイル
端末とタイプに移動
今私たちのプロジェクトをデータベースに接続するための時間であり、私はそれをチェックし、無料のアカウントを作ることができます
次の手順は、モデルフォルダのユーザーモデルでユーザーファイルを作成します.js
しかし、最初に、3つのパッケージmongoDB atlas、bcryptjsおよびjsonwebtokenを必要とする bcryptjs :データベースに格納する前にユーザパスワードを暗号化するのに役立ちます
JSwWebToken : JWT技術的にはいくつかのJSONデータの所有者を確認するメカニズムです.これは暗号化された文字列で、データの無制限な量(クッキーとは異なり)を含むことができます. Express Validator :データベースに格納する前に、このパッケージを使用してデータをテストする必要があります.
最初に、我々が必要とするものを輸入しましょう
「POSTメソッド」を選択し、「localhost : 5000/api/user/register」と入力してから「body」を選択し、「JSON」を選択してデータを入力して
ユーザーのコレクションで新しいユーザーを表示する必要があるデータベースを開きます
我々は、我々のパート1が行われると言うことができます我々は、次の部分で続きます.
ありがとう.
このチュートリアルでは、NODEJSを使用してREST APIを作る方法を教えます.
これらすべてのトピックをカバーします.
REST API:何が,何がその利点か
REST APIは2000年以降完全にソフトウェア工学を変えました.Webプロジェクトとサービスを開発するためのこの新しいアプローチは、RYフィールディング(HTTP仕様の父)とネットワークアーキテクチャで行うすべての主要な国際的な権威の1つである、「建築様式とネットワークベースのソフトウェアアーキテクチャの設計」と題された論文で定義されました.
今日は、このソフトウェアに基づいてプロのサービスの作成のための残りのAPIを持っていないプロジェクトやアプリケーションがありません.Twitter、YouTube、Facebookの識別システム…企業の何百もの残りの残りの部分にビジネスのおかげで生成API.それらなしで、水平方向の成長は実質的に不可能です.これは、RESTがインターネットサービスのAPIの作成において最も論理的で、効率的で広く普及しているからです.
プロジェクトのアイデア
このチュートリアルでは、ムービーAPIを構築します.
環境設定
APIをビルドするための技術
あなたのCMDとタイプを開けてください
mkdir movies-api //create an empty folder
cd movies-api //navigate to our project
npm init --yes //create package.json file
npm i --save express
npm i --save mongoose
npm i --save-dev nodemon
プロジェクトの最良の構造を選択
ムービーAPI :
├───コントローラ
├───ミドルウェア
├───モデル
└───路線
だからこれらのフォルダを作成し、実際の仕事を始めましょう
実際の仕事
まずインデックスを作成する必要があります.jsファイル
端末とタイプに移動
touch index.js
サーバの作成//index.js
const express = require('express');
const app = express();
const PORT = process.env.PORT || 5000;
app.listen(PORT, () => {
console.log('server is running')
});
端末でサーバ型を実行するにはnodemon
あなたはそのようなことを見なければならない今私たちのプロジェクトをデータベースに接続するための時間であり、私はそれをチェックし、無料のアカウントを作ることができます
//index.js
const express = require('express');
const mongoose = require('mongoose');
const app = express();
const PORT = process.env.PORT || 5000;
mongoose
.connect(
"your mongoDB atlas database url connection",
{ useUnifiedTopology: true,
useNewUrlParser: true,
useCreateIndex: true })
.then(() => {
app.listen(PORT, () =>console.log('server is running'))
})
.catch(err => {
console.log(err);
});
このアプローチでは、サーバー接続はデータベース接続にエラーがない場合にのみ実行されます.次の手順は、モデルフォルダのユーザーモデルでユーザーファイルを作成します.js
//user-model.js
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const userSchema = new Schema({
name: { type: String, required: true },
email: { type: String, required: true, unique: true },
password: { type: String, required: true, minlength: 6 }
});
module.exports = mongoose.model('User', userSchema);
では、ユーザのコントローラーをコントローラのフォルダに作りましょう.しかし、最初に、3つのパッケージmongoDB atlas、bcryptjsおよびjsonwebtokenを必要とする
JSwWebToken : JWT技術的にはいくつかのJSONデータの所有者を確認するメカニズムです.これは暗号化された文字列で、データの無制限な量(クッキーとは異なり)を含むことができます.
npm i --save bcryptjs
npm i --save jsonwebtoken
npm i --save express-validator
注意: 1つのコマンドで3つのパッケージをインストールできますnpm i --save becryptjs jsonwebtoken express-validator
荷物を輸入しましょう//user-controller
const { validationResult } = require('express-validator');
const User = require('../models/user');
const bcrypt = require('bcryptjs');
const jwt = require('jsonwebtoken');
レジスタ関数//user-controller.js
const register = async (req,res) => {
const errors = validationResult(req);
if (!errors.isEmpty())
return res.status(400).json("check your data");
const { name, email, password } = req.body;
let existingUser = await User.findOne({ email: email });
if (existingUser)
return res.status(400).json("user exist");
let hashedPassword = await bcrypt.hash(password, 12);
const createdUser = new User({
name,
email,
password: hashedPassword
});
try { await createdUser.save() } catch (err) {}
let token;
token = jwt.sign(
{ userId: createdUser.id, email: createdUser.email },
'supersecretkey',
{ expiresIn: '1h' });
res.status(201).json({ token: token, userId: createdUser.id });
}
ログイン機能//user-controller.js
const login = async (req, res) => {
const { email, password } = req.body;
let existingUser;
try {
existingUser = await User.findOne({ email: email });
} catch (err) { }
if (!existingUser)
return res.status(200).json('Invalid credentials, could not log you in');
let isValidPassword = await bcrypt.compare(password, existingUser.password);
if (!isValidPassword)
return res.status(400).json('Invalid credentials, could not log you in.');
let token;
token = jwt.sign(
{ userId: existingUser.id, email: existingUser.email },
'supersecretkey',
{ expiresIn: '1h' }
);
res.status(200).json({ token: token, userId: existingUser.id });
}
これら二つの関数をエクスポートする必要があります//user-controller.js
exports.register= register;
exports.login = login;
ルートファイルのフォルダを作成するには、ユーザーのルートを作成することができます.最初に、我々が必要とするものを輸入しましょう
//user-rotes.js
const { check } = require('express-validator');
const usersController = require('../controllers/user-controller');
const express = require('express');
const router = express.Router();
路線router.post('/register',
[ check('name').not().isEmpty(),
check('email').normalizeEmail().isEmail(),
check('password').isLength({ min: 6 })],
usersController.register)
ログイン経路router.post('/login',
[ check('email').normalizeEmail().isEmail(),
check('password').isLength({ min: 6 })],
usersController.login)
ルートをエクスポートmodule.exports = router;
我々がする必要がある最後のことは、インデックスにユーザールートをインポートすることです.JSとexpress-validatorでAPIをテストします//index.js
const express = require('express');
const mongoose = require('mongoose');
const usersRoutes = require('./routes/user-routes');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.json());
app.use('/api/users', usersRoutes);
const PORT = process.env.PORT || 5000;
mongoose
.connect(
"your mongoDB atlas database url connection",
{ useUnifiedTopology: true,
useNewUrlParser: true,
useCreateIndex: true })
.then(() => {
app.listen(PORT, () =>console.log('server is running'))
})
.catch(err => {
console.log(err);
});
今すぐオープンポストマンとスタートテストのログインと登録ルート郵便配達人 レジスタ
「POSTメソッド」を選択し、「localhost : 5000/api/user/register」と入力してから「body」を選択し、「JSON」を選択してデータを入力して
ログイン
ユーザーのコレクションで新しいユーザーを表示する必要があるデータベースを開きます
我々は、我々のパート1が行われると言うことができます我々は、次の部分で続きます.
ありがとう.
Reference
この問題について(ノード.REST APIを作る方法パート1), 我々は、より多くの情報をここで見つけました https://dev.to/ridhamz/node-js-how-to-make-rest-api-part-1-37mbテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol