مقالات


توسعه وب‌سرویس Restful - بررسی مسیرها (routes)

وب‌سرویس ها بخش جدایی ناپذیر برنامه های هستند که امکان برقراری ارتباط بین برنامه های پیاده سازی شده را برقرار می کنند. با توجه به اینکه توسعه دهندگان مختلف از وب سرویس ها استفاده می کنند باید اصول پایه ای آن ها رعایت شود تا اعتبار سامانه پیاده سازی شده زیر سوال نرود. در ادامه به بررسی یکی از پایه ای ترین مباحث وب‌سرویس ها می پردازیم که در بسیاری از سامانه های پیاده سازی شده توسط سازمان های بزرگ نیز گاهی رعایت نمی شود.

 

نکته ای که در نوشتن مسیرهای وب‌سرویس وجود دارد این است که با توجه به تعریف URL، در مسیرها باید نتها منابع(resources) استفاده شود و اقدامات و اعمال مورد نظر به کار برده نشود. برای درک بهتر موضوع مثال پست را بررسی می کنیم:

/api/v1/GetAllPosts دریافت همه پست ها

/api/v1/GetPost/{post_id} دریافت یک پست 

/api/v1/AddNewPost ایجاد پست جدید

/api/v1/UpdatePost/{post_id} ویرایش یک پست

/api/v1/DeletePost/{post_id} حذف یک پست

/api/v1/AddComment/{post_id} افزودن نظر برای پست

, ...

و مسیرهای مختلف دیگر به این شکل که برای اعمال مختلف اضافه می شود که نه تنها سایر توسعه دهندگان با دیدن چنین مسیرهایی در معتبر بودن سامانه تردید می کنند بلکه با زیاد شدن اعمال و اقدامات توسعه و نگهداری سامانه برای توسعه دهنده نیز با دشواری هایی همراه خواهد بود.

 

روش صحیح اختصاص مسیرها:

انتخاب مسیر api/v1/posts/ برای وب‌سرویس های مربوط به پست ها مناسب است که تنها شامل منبع پست است و از اقدامات و اعمال در مسیر استفاده نشده است و برای اینکه اقدام مورد نظر را به سرور اطلاع دهیم از متدهای HTTP، (GET, POST, DELETE, PUT) برای اعمال مختلف استفاده می کنیم.

 

منابع مورد نظر ما (posts, categories, comments , ...)به صورت جمع در مسیرها وجود دارد و بعد از هر منبع آی دی را برای انجام اعمال مختلف با متد مورد نظر برای سرور ارسال می کنیم.

method GET path /api/v1/posts دریافت همه پست ها

method GET path /api/v1/posts/{post_id} دریافت یک پست

method POST path /api/v1/posts ایجاد پست جدید

 method PUT path /api/v1/posts/{post_id} ویرایش یک پست

 method DELETE path /api/v1/posts/{post_id} حذف یک پست

method GET path /api/v1/posts/{post_id}/comments دریافت همه نظرات یک پست

method GET path /api/v1/posts/{post_id}/comments/{comment_id} دریافت یک نظر از یک پست

method POST path /api/v1/posts/{post_id}/comments ایجاد نظر برای یک پست

method PUT path /api/v1/posts/{post_id}/comments/{comment_id} ویرایش یک نظر

method DELETE path /api/v1/posts/{post_id}/comments/{comment_id} حذف نظر یک پست

, ...

 

به این صورت در مسیرها تنها حالت جمع منابع(resource) و شناسه منبع و برای مشخص کردن عمل مورد نظر بر روی منابع از متدهای استاندارد HTTP استفاده شده است.

همچنین بهتر است در مسیرها از حروف به صورت بزرگ استفاده نشود و برای جدا کردن کلمات از دش (-) در بین کلمات استفاده شود.

 

نظرات

comment pic

نظرات خود را با ما به اشتراک بگذارید...


با ما درارتباط باشید

آدرس:

اصفهان-بلوار آیینه خانه-نرسیده به خیابان جهانگیر قشقایی

شماره تماس

۰۳۱۹۵۰۲۵۵۱۰-۰۳۱۳۶۶۸۸۵۷۵

پست الکترونیکی:

info@dpsoft.ir