このチュートリアルは、フラスコを使用してRestful APIの構築に関する3部構成のシリーズを締めくくり、Flask-Restfulを使用したORMに依存しないアプローチを示しています。 Sqlalchemyに依存していた以前の分割払いとは異なり、この方法はオブジェクト関係マッパー(ORM)を抽象化し、任意のORMを使用する柔軟性を提供します。
サンプルアプリケーションは、内部的にはSQLalchemyを使用していますが、明確さのために一貫性があります。 このチュートリアルでは、このアプローチを他のORMに適応させる方法を紹介しています。
依存関係のインストール
開始するには、必要な依存関係をインストールしてください:
アプリケーションのセットアップpip install Flask-Restful
以前のチュートリアルパーツからコードを削除して、クリーンスタートを切ってください。 アプリケーションの構成は次のように変更されます:
flask_app/my_app/__init__.py
from flask import Flask from flask_restful import Api app = Flask(__name__) api = Api(app)
flask_app/my_app/product/views.py
import json from flask import request, Blueprint, abort from my_app import db, app, api from my_app.product.models import Product from flask_restful import Resource, reqparse catalog = Blueprint('catalog', __name__) parser = reqparse.RequestParser() parser.add_argument('name', type=str) parser.add_argument('price', type=float) @catalog.route('/') @catalog.route('/home') def home(): return "Welcome to the Catalog Home." # FLASK RESTFUL ENDPOINTS class ProductApi(Resource): def get(self, id=None, page=1): if not id: products = Product.query.paginate(page, 10).items else: products = [Product.query.get(id)] if not products: abort(404) res = {} for product in products: res[product.id] = { 'name': product.name, 'price': product.price, } return json.dumps(res) def post(self): args = parser.parse_args() name = args['name'] price = args['price'] product = Product(name, price) db.session.add(product) db.session.commit() res = {} res[product.id] = { 'name': product.name, 'price': product.price, } return json.dumps(res) api.add_resource( ProductApi, '/api/product', '/api/product/<id>', '/api/product/<id>/<page>' )</page></id></id>
reqparse
テスト
テストは、以前のチュートリアルと同じです。 ルーティングURLは変更されていません。
結論
この最後の部分は、Flaskを使用してORMに依存しないRESTFUL APIを構築し、シリーズを完成させます。 提示された基本的な知識に基づいて、カバーされた方法のさらなる調査が奨励されます。
この投稿には、Envato Tutsのソフトウェア開発者兼ライターであるEsther Vaatiからの貢献が含まれています。以上がFlask:Orm Independentを使用してRESTFUL APIを構築しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。