2017-05-24 6 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 [ "서비스"])

을 사용할 수 있습니다