آموزش نوشتن وب سرویس با پایتون

آموزش نوشتن وب سرویس با پایتون

اشتراک گذاری در شبکه های اجتماعی

با گسترش فناوری‌های ابری و اینترنتی، امروزه بیشتر نرم‌افزارها به جای اجرا شدن روی یک سیستم شخصی، بر بستر اینترنت و سرورهای ابری ارائه می‌شوند.

یکی از ستون‌های اصلی این تحول، وب سرویس‌ها هستند.
در این مقاله یاد می‌گیریم که وب سرویس چیست، چرا اهمیت دارد و چگونه می‌توان با استفاده از زبان محبوب پایتون یک وب سرویس واقعی پیاده‌سازی کرد.
در طول مسیر با سه کتابخانه مهم web.py، Flask و FastAPI کار می‌کنیم و مثال‌های عملی خواهیم داشت.

وب سـرویس چیست و چه کاربردی دارد؟

وب سرویس یا همان Web Service مجموعه‌ای از قابلیت‌ها است که از طریق اینترنت در اختیار سایر برنامه‌ها یا کاربران قرار می‌گیرد.
به زبان ساده، وب سرویس‌ها پل ارتباطی بین کلاینت (مانند اپلیکیشن موبایل یا مرورگر وب) و سرور هستند.
به جای آن‌که هر برنامه به طور مستقل داده‌ها را پردازش کند، وب سرویس این کار را به صورت متمرکز در سرور انجام می‌دهد و نتیجه را به کلاینت بازمی‌گرداند.

از کاربردهای روزمره وب سرویس‌ها می‌توان به موارد زیر اشاره کرد:

  • سیستم‌های بانکی برای نمایش مانده حساب یا انتقال وجه
  • سایت‌های فروشگاهی برای مدیریت موجودی و سفارش‌ها
  • اپلیکیشن‌های پیام‌رسان برای تبادل پیام و فایل
  • اینترنت اشیا (IoT) برای اتصال دستگاه‌ها به یک سرور مرکزی

چرا باید وب سـرویس را با پایتون نوشت؟

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

  • سادگی یادگیری و توسعه سریع
  • پشتیبانی از فریم‌ورک‌های سبک و سنگین (Django، Flask، FastAPI)
  • هماهنگی کامل با ساختارهای داده‌ای مانند JSON و XML
  • جامعه فعال و منابع آموزشی گسترده

Popular_Python_Web_Framework

پیش‌نیازهای نوشتن وب سـرویس با پایتون

قبل از شروع باید ابزارها و کتابخانه‌های لازم را نصب کنیم:

  • نصب آخرین نسخه پایتون از سایت Python.org
  • نصب کتابخانه‌های مورد نیاز مانند web.py، Flask و FastAPI با دستور:
    pip install web.py flask fastapi uvicorn
  • آشنایی اولیه با فایل‌های داده‌ای XML و JSON

آموزش نوشتن وب سـرویس با web.py

کتابخانه web.py یکی از ساده‌ترین ابزارها برای نوشتن وب سرویس با پایتون است.
در این مثال یک فایل XML از کاربران داریم و می‌خواهیم لیست کاربران و اطلاعات هر کاربر را از طریق وب سرویس نمایش دهیم.

ایجاد فایل داده‌ها

<users>
  <user id="1" name="Rocky" age="38"/>
  <user id="2" name="Steve" age="50"/>
  <user id="3" name="Melinda" age="38"/>
</users>

کد وب سرویس با web.py

#!/usr/bin/env python
import web
import xml.etree.ElementTree as ET

tree = ET.parse('user_data.xml')
root = tree.getroot()

urls = (
    '/users', 'list_users',
    '/users/(.*)', 'get_user'
)

app = web.application(urls, globals())

class list_users:
    def GET(self):
        output = 'users: ['
        for child in root:
            output += str(child.attrib) + ','
        output += ']'
        return output

class get_user:
    def GET(self, user):
        for child in root:
            if child.attrib['id'] == user:
                return str(child.attrib)

if __name__ == "__main__":
    app.run()

با اجرای اسکریپت، در مرورگر می‌توانید آدرس
http://localhost:8080/users را باز کنید تا لیست کاربران نمایش داده شود.
همچنین با آدرس
http://localhost:8080/users/2 اطلاعات کاربر شماره ۲ نمایش داده خواهد شد.

آموزش نوشتن وب سـرویس با Flask

فریم‌ورک Flask از محبوب‌ترین ابزارهای توسعه وب در پایتون است.
سادگی، انعطاف‌پذیری و پشتیبانی از JSON باعث شده گزینه‌ای عالی برای وب سرویس‌های سبک باشد.

مثال ساده با Flask

from flask import Flask, jsonify

app = Flask(__name__)

users = [
    {"id": 1, "name": "Rocky", "age": 38},
    {"id": 2, "name": "Steve", "age": 50},
    {"id": 3, "name": "Melinda", "age": 38}
]

@app.route("/users", methods=["GET"])
def get_users():
    return jsonify(users)

@app.route("/users/<int:user_id>", methods=["GET"])
def get_user(user_id):
    for user in users:
        if user["id"] == user_id:
            return jsonify(user)
    return jsonify({"error": "User not found"}), 404

if __name__ == "__main__":
    app.run(port=8080, debug=True)

با اجرای این کد، لیست کاربران به صورت JSON در مسیر
/users در دسترس خواهد بود و می‌توانید با آی‌دی هر کاربر اطلاعات او را مشاهده کنید.

آموزش نوشتن وب سـرویس با FastAPI

FastAPI یکی از مدرن‌ترین و سریع‌ترین فریم‌ورک‌های پایتون برای توسعه وب سرویس است.
این فریم‌ورک به طور پیش‌فرض مستندات API را با Swagger فراهم می‌کند و کار توسعه‌دهنده را بسیار ساده‌تر می‌سازد.

نمونه وب سرویس با FastAPI

from fastapi import FastAPI

app = FastAPI()

users = [
    {"id": 1, "name": "Rocky", "age": 38},
    {"id": 2, "name": "Steve", "age": 50},
    {"id": 3, "name": "Melinda", "age": 38}
]

@app.get("/users")
def get_users():
    return users

@app.get("/users/{user_id}")
def get_user(user_id: int):
    for user in users:
        if user["id"] == user_id:
            return user
    return {"error": "User not found"}

برای اجرای FastAPI کافی است دستور زیر را وارد کنید:

uvicorn main:app --reload --port 8080

سپس می‌توانید علاوه بر مشاهده وب سرویس در آدرس

http://localhost:8080


به صورت خودکار مستندات Swagger را در آدرس

http://localhost:8080/docs


نیز مشاهده کنید.

 

مقایسه web.py، Flask و FastAPI

هر یک از این فریم‌ورک‌ها مزایا و معایب خود را دارند:

  • web.py: بسیار ساده و مناسب برای آموزش یا پروژه‌های کوچک
  • Flask: پرکاربرد، انعطاف‌پذیر و محبوب برای پروژه‌های کوچک تا متوسط
  • FastAPI: سریع، مدرن و مناسب برای پروژه‌های بزرگ و مقیاس‌پذیر

نکات مهم در طراحی وب سـرویس

نوشتن وب سرویس فقط به اجرای کد ختم نمی‌شود. برای داشتن یک وب سرویس حرفه‌ای باید به موارد زیر توجه کرد:

  • امنیت: استفاده از HTTPS، مدیریت توکن و احراز هویت
  • مدیریت خطا: بازگرداندن پیام‌های خطای مناسب
  • مستندسازی: کمک به توسعه‌دهندگان با ابزارهایی مانند Swagger
  • بهینه‌سازی: مدیریت منابع، کش داده‌ها و جلوگیری از ترافیک اضافی

کاربردهای واقعی وب سـرویس‌های پایتون

امروزه وب سرویس‌های نوشته‌شده با پایتون در بخش‌های مختلف استفاده می‌شوند:

  • اپلیکیشن‌های موبایل برای دریافت داده از سرور
  • وب‌سایت‌های پویا برای مدیریت کاربران و سفارش‌ها
  • سیستم‌های سازمانی مانند CRM و ERP
  • اینترنت اشیا (IoT) برای مدیریت دستگاه‌های هوشمند

در این مقاله با مفهوم وب سرویس آشنا شدیم و یاد گرفتیم که چگونه با سه ابزار قدرتمند پایتون یعنی web.py، Flask و FastAPI وب سرویس‌های واقعی بسازیم.
انتخاب بهترین فریم‌ورک بسته به نیاز پروژه و سطح پیچیدگی آن متفاوت است.
اگر در ابتدای راه هستید می‌توانید از web.py شروع کنید، برای پروژه‌های متوسط Flask بهترین انتخاب است و اگر به دنبال پروژه‌های بزرگ و مقیاس‌پذیر هستید FastAPI را پیشنهاد می‌کنیم.

نوین هاست یار نوین شماست

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

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

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

مطالب مرتبط