ساختن REST API با اکسپرس

ساختن-REST-API--با-اکسپرس

در این آموزش قصد داریم نحوه ساختن REST API  با اکسپرس را مورد بررسی قرار دهیم و توصیه میکنیم قبل از شروع خواندن این مقاله،  آموزش و نصب Express.js را مطالعه کنید .

REST API  چیست؟

انتقال وضعیت بازپرداخت( REST) مجموعه ای از روش هایی است که در آن مشتریان HTTP می توانند از طریق پروتکل HTTP اطلاعات را از سرور درخواست کنند. در ادامه این مقاله کمی عمیق تر درباره روش های HTTP خواهیم دید.برای مجموعه داده ها ، مانند عکس ها ، مثلاً چندین کار وجود دارد که باید مرتباً آنها را انجام دهیم ، ایجادCreate ، خواندن(Read) ، به روزرسانی(Update )و حذف(Delete  ) (همچنین به عنوان عملکرد CRUD نیز شناخته می شود).API های REST برای بازیابی و دستکاری داده ها از روشهای مختلف درخواست HTTP ، مطابق با اقدامات قبلی که گفته شد ، استفاده می کنند

برپایی(Setup)

بیایید با فراخوانی دستور زیر از ریشه(root) پروژه ، برنامه خود را اجرا کنیم.

./bin/www

اگر خروجی پایانه شما با موارد زیر مطابقت دارد ، سعی کنید برنامه خود را در مرورگر وب خود بارگذاری کنید.

> ./bin/www
Example app listening at http://0.0.0.0:3000

مسیریابی (Routing)

Express.js برای ساخت یک REST API بسیار عالی است زیرا یک رابط کاربری آسان برای تفکیک منابع شما از نظر نوع و عملکرد ارائه می دهد.اگر قبلاً یک برنامه وب با Express ساخته اید ، می فهمید که مراحل ایجاد API با استفاده از همان فریم ورک بسیار مشابه هستند. ما یک موضوع برنامه ایجاد کرده ایم و آن را برای استفاده صادر کرده ایم.

var express = require(‘express’);
var app = express();
module.exports = app

از مفهوم Routes در Express برای تعریف رفتار برنامه استفاده می شود تا هنگام دریافت یک درخواست خاص ، عملکرد برنامه را اجرا کند.

route در اکسپرس از سه بخش اصلی تشکیل شده است:

۱. روش HTTP با درخواستی که می خواهیم ضبط کنیم مرتبط است.

app.get()

۲. URI یا (مسیر) درخواستی که می خواهیم ضبط کنیم.

app.get('/')

۳. یک عملکرد کنترل کننده (که استدلال می کند درخواست و پاسخی را قبول می کند)

app.get('/', function(req, res) { });

این نمونه ای از استفاده از درخواست GET در / (به عبارت دیگر: چه اتفاقی می افتد وقتی کسی نمایه برنامه شما را در مرورگر خود بارگیری می کند):

var express = require(‘express’);
var app = express();// Our handler function is passed a request and response object
app.get('/', function(req, res) {
  // We must end the request when we are done handling it
  res.end();
});module.exports = app

پس از راه اندازی مجدد برنامه ، وقتی http: // localhost: 3000 را بارگیری می کنیم ، به جای یک پیام خطا ، یک صفحه خالی دریافت می کنیم..ما ابتدا به این فکر می کنیم که چه عملکردی را می خواهیم به کاربران نهایی ارائه دهیم. اگر بخواهیم به آنها اجازه دسترسی کامل به CRUD را بدهیم ، باید برای هر یک از این منابع (عکس ، آلبوم) مسیری(resources) ایجاد کنیم.

از کدام روش HTTP باید استفاده کنیم؟

در هنگام ساختن یک API REST ، هر روش HTTP با یک اقدام علیه یک منبع ارائه شده توسط API مطابقت دارد.

GET – شیء منبع خاص را بازیابی کنید یا همه اشیاء را لیست کنید

POST – یک شیء از منبع جدید ایجاد کنید

PATCH – به روزرسانی جزئی برای شیء منبع خاص را انجام دهید

PUT – شیء یک منبع خاص را کاملاً رونویسی کنید

DELETE – شیء منبع خاص را حذف کنید

می توانیم با مشخص کردن مسیرها برای یک منبع واحد ، برنامه ریزی API خود را شروع کنیم. این مشخصه رابط یکنواخت API های REST است. ما می توانیم مسیرها را برای یک منبع تعریف کنیم ، در اصل آنها را برای منابع اضافی کپی و چسباندن می کنیم.برای مشخص کردن مسیرهای خود از یک روتر Express برای هر منبع استفاده خواهیم کرد. ما شیء روتر را ایجاد می کنیم ، مسیری را که می خواهیم به آنها پاسخ دهیم را مشخص می کنیم و سپس روتر را برای مسیری خاص وصل می کنیم.

var express = require(‘express’);
var app = express()
;// Create the express router object for Photos
var photoRouter = express.Router()
;// A GET to the root of a resource returns a list of that resource
photoRouter.get(‘/’, function(req, res) { })
;// A POST to the root of a resource should create a new object
photoRouter.post(‘/’, function(req, res) { })
;// We specify a param in our path for the GET of a specific object
photoRouter.get(‘/:id’, function(req, res) { })
;// Similar to the GET on an object, to update it we can PATCH
photoRouter.patch(‘/:id’, function(req, res) { })
;// Delete a specific object
photoRouter.delete('/:id', function(req, res) { })
;// Attach the routers for their respective paths
app.use(‘/photo’, photoRouter);module.exports = app;

 

بنابراین اکنون API ما هنگام دریافت هر یک از درخواستهای HTTP زیر آماده انجام اقدامات است:

GET / photo – همه عکس ها را بازیابی کنید

GET / photo /: id – عکسی را با شناسه آن بازیابی کنید

post / photo – یک عکس جدید ایجاد کنید

put / photo /: id – خواص یک عکس را با شناسه آن به روز کنید

DELETE / photo /: id – عکسی را با شناسه آن حذف کنید

این فرآیند را می توان برای منبع آلبوم تکرار کرد.

اگر برنامه خود را مجدداً راه اندازی کرده و سعی کنید به / عکس یا / عکس / ۱۲۳ ( /photo or /photo/123)دسترسی پیدا کنید ، متوجه خواهید شد که این درخواست قطع شده است و مرورگر شما سرانجام از بین می رود. دلیل این امر این است که عملکردهای کنترل کننده مشخص شده هنوز درخواست را پایان نمی دهند.

فایل index.js شما باید شبیه کد زیر باشد:

var express = require(‘express’);
var app = express();var photoRouter = express.Router();
photoRouter.get(‘/’, function(req, res) { });
photoRouter.post(‘/’, function(req, res) { });
photoRouter.get(‘/:id’, function(req, res) { });
photoRouter.patch(‘/:id’, function(req, res) { });
photoRouter.delete(‘/:id’, function(req, res) { });
app.use(‘/photo’, photoRouter);var albumRouter = express.Router();
albumRouter.get(‘/’, function(req, res) { });
albumRouter.post(‘/’, function(req, res) { });
albumRouter.get(‘/:id’, function(req, res) { });
albumRouter.patch(‘/:id’, function(req, res) { });
albumRouter.delete(‘/:id’, function(req, res) { });
app.use(‘/album’, albumRouter);module.exports = app;

امید واریم این مقاله شروعی برای کار شما برای ساختن REST API با اکسپرس باشدو از کار کردن با آن لذت ببرید.در مقاله ها و آموزش های بعدی با ما همراه باشید

کارشناس پدیده لرن

We have found an easier way to communicate with our users : Subscribe to channel

Be sure to read the following:

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

لینک کوتاه:
0