Restful ルーティングは、すべての異なるアプリケーションで一貫したルーティングを実現するための推進手段です。 REST は Representational State Transfer です。 HTTP は、一貫性があり、人間が判読できる、機械が判読できる方法で使用されます。
標準は GET、POST、PATCH、PUT、DELETE です。
以下に、フロントとの間で情報を取得/提供し、必要なアクションを実行するための、flask API データベース内のいくつかの RESTful ルートの例を示します。
Flask を使用したサーバー側のユーザーの 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 リソースのクラスを作成し、そのリソースを引数として指定する必要があります。
次にget用の関数を作成します。この関数は User テーブルにクエリを実行し、すべてのユーザーのリストを作成して転送用の辞書に変換し、Web ページ上で JSON として表示できるようにします。次に、リストと、リクエストが成功したことを示すステータス コード 200 を返します。
最後に、リソースを作成する必要があります。使用しているリソース、パス、エンドポイントに名前を付けます。 /api はパスの前に追加され、ホスティング Web サイトがフロントエンド ルートとバックエンド ルートを識別できるようにします。
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/<int:id>", endpoint="user")
取得とは異なる削除で何が起こっているのかをさらに説明すると、いくつかの点があります。最初は 1 人のユーザーを削除するだけなので、新しいリソースを作成する必要があります。同様に設定されていますが、複数ではありません。
次に、削除関数を作成します。削除するユーザーを決定するためにフロントエンドから送信された ID を渡す必要があるため、2 つの引数が必要になります。次に、db session delete と commit を使用してデータベースを更新します。その後、返送するものは何もないため空の応答を返し、削除のステータス (204) を返します。
最後にリソースを作成する必要があります。今回はUserResourceを使用します。パスは単数であること、フロントエンドに渡された ID を持つこと、およびエンドポイントも単数であることとは異なります。
RESTful ルーティングにより、異なるアプリケーション間で切り替えるときに、誰もがバックエンド ルーティングに従うことができ、標準化されたパスを知ることができる標準が存在します。さらに、パスがすっきりして読みやすくなります。
以上がRestful ルーティング - Flask API の例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。