ホームページ > バックエンド開発 > Python チュートリアル > Python に基づいた RESTful API 設計

Python に基づいた RESTful API 設計

PHPz
リリース: 2023-06-17 10:06:10
オリジナル
2877 人が閲覧しました

インターネットの普及に伴い、データ対話に RESTful API インターフェイスを使用するアプリケーションがますます増えています。 RESTful API「Representational State Transfer」は、HTTP プロトコルに基づくネットワーク アプリケーション インターフェイスの設計パターンです。これは、インターネット上で XML や JSON などのデータ形式を使用して HTTP プロトコルを通じて通信し、アプリケーションが相互に対話してデータを交換できるようにする方法です。

他のインターフェイス設計パターンと比較して、RESTful API はシンプル、柔軟、使いやすく、多用途であり、多くの開発者に好まれています。この記事では、Python言語を使用してRESTful APIを設計する方法を紹介します。

1. RESTful API 設計原則
RESTful API を設計するときは、次の原則に従う必要があります:

  1. リソースを一意に識別する: 各リソースには一意の URI が必要です。 (Uniform Resource Identifier) 識別用。
  2. 通信に HTTP プロトコルを使用する: RESTful API は主にデータ通信に HTTP プロトコルに基づいているため、HTTP プロトコルの規制に準拠する必要があります。
  3. 標準の HTTP メソッドを使用する: RESTful API では、使用される主な HTTP メソッドは GET、POST、PUT、DELETE などです。
  4. 識別に HTTP ステータス コードを使用する: RESTful API は、HTTP ステータス コードを使用して、成功の場合は 200、リソースが見つからない場合は 404 などのリクエスト結果を返します。

2. Python を使用して RESTful API 設計を実装する
Python は非常に人気のあるプログラミング言語であり、読みやすく、書きやすく、簡潔で明確であり、理想的な言語の 1 つです。 RESTful API を構築するため。以下では、Python Flask と Flask-RESTful ライブラリを使用して、単純な RESTful API を実装します。

  1. Flask と Flask-RESTful ライブラリのインストール
    Flask は、Web アプリケーションの構築に使用できる Python 言語に基づく Web フレームワークです。 Flask-RESTful は、Flask に基づいて開発された RESTful API フレームワークであり、RESTful API アプリケーションの構築に使用できます。 RESTful API の構築を開始する前に、Flask と Flask-RESTful ライブラリをインストールする必要があります。

    $ pip install flask
    $ pip install flask-restful
    ログイン後にコピー
  2. RESTful API コードの作成
    Flask および Flask-RESTful ライブラリをインストールしたら、RESTful API コードの作成を開始できます。以下では、単純な学生管理システムを例として、Python を使用して RESTful API を作成する方法を紹介します。

まず、Flask アプリケーションを作成し、Flask-RESTful ライブラリをアプリケーションに導入する必要があります:

from flask import Flask
from flask_restful import Resource, Api

app = Flask(__name__)
api = Api(app)
ログイン後にコピー

次に、学生クラスを定義し、関連するリソースを定義する必要があります:

class Student(Resource):
    def get(self, id):
        # 获取指定id的学生信息
        pass

    def post(self):
        # 新增一个学生
        pass

    def put(self, id):
        # 更新指定id的学生信息
        pass

    def delete(self, id):
        # 删除指定id的学生信息
        pass

api.add_resource(Student, '/students', '/students/<int:id>')
ログイン後にコピー

上記のコードでは、Flask-RESTful ライブラリの Resource クラスを継承する Student クラスを定義します。このうち、get、post、put、delete メソッドは、それぞれ RESTful API の GET、POST、PUT、DELETE メソッドに対応します。次に、add_resource メソッドを使用して Student クラスと対応するリソースの URI をバインドします。

最後に、Flask アプリケーションを実行する必要があります。

if __name__ == '__main__':
    app.run(debug=True)
ログイン後にコピー
  1. RESTful API のテスト
    RESTful API コードを作成した後、それをテストする必要があります。 Postman などのツールをテストに使用することも、独自の Python スクリプトを作成してテストすることもできます。以下では、RESTful API をテストするための例として Python スクリプトを取り上げます。

    import requests
    import json
    
    # 获取指定id的学生信息
    response = requests.get("http://localhost:5000/students/1")
    print(response.content)
    
    # 新增一个学生
    data = {
        "name": "Tom",
        "age": 20,
        "gender": "Male"
    }
    headers = {
        "content-type": "application/json"
    }
    response = requests.post("http://localhost:5000/students", data=json.dumps(data), headers=headers)
    print(response.content)
    
    # 更新指定id的学生信息
    data = {
        "name": "Tom",
        "age": 21,
        "gender": "Male"
    }
    headers = {
        "content-type": "application/json"
    }
    response = requests.put("http://localhost:5000/students/1", data=json.dumps(data), headers=headers)
    print(response.content)
    
    # 删除指定id的学生信息
    response = requests.delete("http://localhost:5000/students/1")
    print(response.content)
    ログイン後にコピー

上記のコードでは、リクエスト ライブラリを使用して GET、POST、PUT、および DELETE リクエストを送信します。返された結果を出力します。このうち、data パラメーターは Python 辞書を JSON 文字列に変換する必要があり、headers パラメーターは content-type を application/json として指定する必要があります。

3. 概要
この記事では、Python 言語を使用して、Python Flask と Flask-RESTful ライブラリを使用する RESTful API を設計する方法を紹介します。この記事を読むことで、読者は Python 言語で RESTful API を構築する方法を習得し、RESTful API の設計原則と一般的な HTTP メソッドも理解できるようになります。今後のWebアプリケーション開発においては、RESTful API技術を柔軟に活用して、より効率的かつ柔軟で使いやすいアプリケーションを実現していただければ幸いです。

以上がPython に基づいた RESTful API 設計の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート