2017-05-24 4 views
-1

次のデータを受け取るためにFlask REST実装を作成しました。クライアントからデータを受け取っているときにJSONスキーマを照合する

クライアントからAPIキーを確認した後、サーバーは次のAPI定義に含まれるデータを保存する必要があります。問題は、私が直面しているのは、私は同じ分野の 'サービス'の下で多くの文字列を持っているので、私は助けに感謝します。

{ 
    "id": "string", 
    "termsAndConditions": "string", 
    "offererBranchId": "string", 
    "requesterBranchId": "string", 
    "accepted": "2017-05-24T10:06:31.012Z", 
    "services": [ 
    { 
     "id": "string", 
     "name": "string", 
     "aggregationLevel": [ 
     "string" 
     ], 
     "aggregationMethod": [ 
     "string" 
     ], 
     "timestep": [ 
     "string" 
     ] 
    ] 
    } 
} 

私のコードフィールド名「サービス」の他のもの(すなわち、「ID」、「termsAndConditions」など)のようなそれで一つの文字列を、持っている場合は、以下の通りです。

from flask_pymongo import PyMongo 
import json 
app = Flask(__name__) 
app.config['MONGO_DBNAME'] = 'demo' 
app.config['MONGO_URI'] = 'mongodb://[email protected]:xxxx/demo' 
mongo = PyMongo(app) 
users = mongo.db.users 
@app.route('/service-offer/confirmed/REQUESTER',methods=['POST']) 

def serviceofferconfirmed(): 
    key = request.headers.get('X-API-Key') 

    users=mongo.db.users 
    api_record=users.find_one({'name':"apikey"}) 
    actual_API_key=api_record['X-API-Key'] 
    if key==actual_API_key: 
     offer={"id": request.json["id"], 
      "termsAndConditions":request.json["termsAndConditions"], 
      "offererBranchId":request.json["offererBranchId"], 
      "requesterBranchId": request.json["requesterBranchId"], 
      "accepted":request.json["accepted"], 
      "services":request.json["services"] # Here I need help to match the schema. 
      } 
     users.insert(offer) 
     return "Service Data Successfully Stored" 
    return jsonify("Pleae check your API Key or URL") 

多くの文字列であるデータ全体を受信し、そのデータをフィールド名 'services'に格納したいと考えています。

答えて

1

あなたがサービス

if not isinstance("str", request.json["services"]): 
    // your code.......... 
のための文字列として値をしたくない場合は、でisinstance( "STR"、request.json [ "サービス"])

を使用することができます

関連する問題