2017-02-27 6 views
1

I unten Code habenmake Get Parameter nicht zwingend

@ns.route('/blah/<query>', methods=['GET']) 
@api.doc(params={'query': 'Search ID'}) 
class myClass(Resource): 
    @api.doc('blah', responses={ 200: 'OK' }) 
    def get(self, query): 
     """Returns list of blah.""" 

, die mich unter Ergebnis geben: enter image description here enter image description here

Frage ist: Wie kann ich Parameterwert nicht zwingend notwendig machen bekommen?

Antwort

0

Ich bin nicht positiven, dass dies immer noch der Fall ist, und ich werde die erste zugeben, dass ich zu diesem besonderen Rahmen neu bin, aber based on the answers to this bug from 2013, es scheint nicht, dass der Rahmen für diese Art erlaubt des Verhaltens.

Die empfohlene Problemumgehung besteht darin, zwei Resource s zu erstellen, eine mit dem Parameter und eine ohne. Das ist die Problemumgehung, die ich verwendet habe; Normalerweise wird es mit einer einfachen Basisklasse mit einer Methode und einem optionalen Parameter kombiniert, die beide aufrufen.

Ein Beispiel aus der GitHub Ausgabe:

class Users(Resource): 
    def get(self): 
     return users 
    def post(self): 
     #... 

class User(Resource): 
    def get(self, id=None): 
     return find_user_by_id(id) 
    def post(self): 
     #... 

api.add_resource(Users, '/users') 
api.add_resource(User, '/users/<id>')