2016-08-23 10 views
0

フラスコに基づいてRest APIを構築しています。そして、私が待っている議論を解析する最善の方法であることに悩まされています。REST APIの引数を解析する最も良い方法

情報:

テーブルスキーマ:仕事をしていません

----------------------------------------- 
| ID | NAME | IP | MAIL | OS | PASSWORD | 
----------------------------------------- 

方法:

def put(self, id):   
    json_data = request.get_json(force=True) 
    update_entry(json_data, id) 
    pass 

JSON形式:

def update_entry(data, id): 
    ... 
    ... 
pass 

要求を処理リソース:

{'NAME': 'john', 'OS': 'windows'} 

上記のすべてが私の質問に関連するかどうかはわかりません。

ここで私が知りたいのは、クライアントが要求した引数を送信したか、要求内のキーが有効かどうかを確認する適切な場所はどこですか。 私はいくつかの選択肢を考えましたが、私はここでベストプラクティスを欠いていると感じています。

  1. クライアントがバックエンドに送信したものを渡すと、エラーが発生してキャッチされます。
  2. jsonテンプレートのようにsthを作成し、それを元に戻す前にクライアントの要求を検証します。

Ofc最初のオプションは簡単ですが、2番目のオプションは非常に複雑になる可能性がありますが、2番目のオプションはdbに不要な負荷を作成しません。

上記の2つの意見やその他のご意見をお待ちしております。

答えて

1

フラスコの安らぎの資料には、marchmallowのようなライブラリを使用しない理由は何故ですか?なぜなら、最初から妥当性検査を行うのが好きなのと同様に、それはあなたの問題に適切かつ非カスタムで答えるでしょう。

0

データベースのAPIエラーをキャッチするのは良い考えではありません。 DBアクセスが繰り返されると、パフォーマンスが低下します。

ベストケースのシナリオでは、クライアントでjsonのエラーをチェックすることができます。 Pythonでjsonを調べてもエラーが発生します。あなたは常にネットワーク が侵害されたと仮定しなければならず、ガベージ値/悪意のある要求が出されます。 私がどこかで読んだデザインの原則(Clean Codeと思う)は、 の出力では厳しいですが、入力が容易です。

関連する問題