Chcę ustawić Basepath dla mojej aplikacji kolby. Wspomniałem o jednym przykładzie poniżej.

basepath = 'http://localhost:3000/api'

Mam dwa API Call One to GET i inne POST.

from flask import Flask
from flask_restful import Api
app = Flask(__name__)
api = Api(app)

api.add_resource(CreateUser, "/v1/user/create/")
api.add_resource(CreateUser, "/v1/user/details")

class CreateUser(Resource):
    def post(self):
       # Code for creating a user
    def get(self):
       # Code for get the details of user.

Więc tutaj, jeśli chcę stworzyć użytkownik, mój adres URL będzie http://localhost:3000/api/v1/user/create/ Tak samo dla GET również. Więc jak to osiągnąć?

0
Vivek Kumar 20 styczeń 2020, 09:14

1 odpowiedź

Najlepsza odpowiedź

Zainicjuj interfejs API za pomocą prefiksu ścieżki:

from flask import Flask
from flask_restful import Api
app = Flask(__name__)
api = Api(app, "/api")

...

Nie możesz zmienić gospodarza i portu w ten sposób, musisz uruchomić kolbę z parametrami:

flask run --host=127.0.0.1 --port=3000

Albo mógłbyś zrobić

from flask import Flask
from flask_restful import Resource, Api

app = Flask(__name__)
api = Api(app, "/api")


...

if __name__ == "__main__":
    app.run(host="127.0.0.1", port="3000")

Pamiętaj, że nie jest to przeznaczone do środowisk produkcyjnych, tylko do testów lokalnych. Proszę zobaczyć https://flask.palletsProjects.com/en/1.1.x / Tutorial / wdrażanie / do używania w środowisku produkcyjnym.

Jeśli chcesz uzyskać te wartości z basepath, jedna opcja byłaby purl:

url = purl.URL('http://localhost:3000/api')
url.host()  # --> "localhost"
url.port()  # --> 3000
url.path()  # --> "/api"
0
petre 20 styczeń 2020, 08:22