برنامه نویسی

Restful Routing – یک مثال Flask API

مسیریابی آرامش بخش فشاری است برای سازگاری مسیریابی در همه برنامه های مختلف. REST انتقال دولتی نمایندگی است. از HTTP به روشی سازگار، قابل خواندن توسط انسان و قابل خواندن توسط ماشین استفاده می کند.

استانداردها عبارتند از GET، POST، PATCH، PUT و DELETE.

در زیر مثالی از چند مسیر استراحت در یک پایگاه داده flask API برای دریافت/دادن اطلاعات از/به جلو و انجام عمل مورد نیاز ارائه خواهد شد.

نمونه ای از GET برای کاربران در سمت سرور با استفاده از فلاسک از کد زیر استفاده می کند.

ابتدا باید این موارد را نیز وارد کنید. واردات db بعداً برای مثال DELETE استفاده خواهد شد.

from flask import request (*Used for POST and PATCH*)
from config import db, api, app 

from flask_restful import Resource
from models.user import User
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

فایل پیکربندی شما باید مانند زیر تنظیم شود تا واردات کار کند.

 db = SQLAlchemy(app=app, metadata=metadata)
 api = Api(app=app)
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

کد GET در مسیر کاربر:

 class UsersResource(Resource):
     def get(self):
        users = [user.to_dict() for user in User.query.all()]
        return users, 200

 api.add_resource(UsersResource, "/api/users", endpoint="users")
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

برای شکستن این کد.

شما باید یک کلاس برای Users Resource ایجاد کنید و در Resource به عنوان یک آرگومان قرار دهید.

بعد یک تابع برای get ایجاد کنید. این تابع جدول کاربر را پرس و جو می کند و سپس لیستی از همه کاربرانی که آنها را برای انتقال به فرهنگ لغت تبدیل می کنند ایجاد می کند تا بتوانند در صفحه وب به عنوان JSON قابل مشاهده باشند. سپس لیست و همچنین کد وضعیت 200 را برمی گردانید که درخواست موفقیت آمیز بوده است.

در نهایت باید منبع را ایجاد کنید. منبعی را که استفاده می کنید و همچنین مسیر و نقطه پایانی را نام ببرید. /api در جلوی مسیر اضافه می شود تا وب سایت میزبان بتواند مسیر جلو و باطن را تشخیص دهد.

برای DELETE باید منبع دیگری برای حذف یک کاربر ایجاد کنید. کد زیر را ببینید:

 class UserResource(Resource):
     def delete(self, id):
         user= User.query.get(id)
         db.session.delete(user)
         db.session.commit()
         return {}, 204

 api.add_resource(UserResource, "/api/user/", 
 endpoint="user")
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

برای توضیح بیشتر آنچه در حذف اتفاق می افتد که با get متفاوت است چند چیز است. ابتدا فقط یک کاربر را حذف می کنید، بنابراین باید یک منبع جدید ایجاد کنید. به طور مشابه تنظیم شده است اما جمع نیست.

سپس تابع حذف را ایجاد می کنید. به دو آرگومان نیاز دارد زیرا باید شناسه ارسال شده از قسمت جلویی را برای تعیین اینکه کدام کاربر را حذف کنید ارسال کنید. سپس از db session delete و commit برای به روز رسانی پایگاه داده استفاده می کنید. پس از آن شما یک پاسخ خالی برمی گردانید زیرا چیزی برای ارسال وجود ندارد و وضعیت حذف (204).

در نهایت باید منبع را ایجاد کنید. این بار با استفاده از UserResource. مسیر به صورت تکی متفاوت خواهد بود و دارای شناسه ای است که به قسمت جلو منتقل شده است و نقطه پایانی نیز مفرد است.

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

نوشته های مشابه

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

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

دکمه بازگشت به بالا