亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何修復 Flask RESTful api 服務器端點失敗問題?

如何修復 Flask RESTful api 服務器端點失敗問題?

慕森卡 2022-10-11 10:34:42
我是使用 openapi sepc 進行 api 開發的新手,所以我關注了這個博客,在那里我只是使用服務器工件來理解代碼。我用于/openapi/photo_album/codegen_server我的簡單工作。為此,我下載了文件并嘗試在默認服務器端點上運行服務器。我安裝了所有必需的依賴項并點擊python -m openapi_server,但瀏覽器端點總是用以下錯誤消息困擾我:{ "detail": "在服務器上找不到請求的 URL。如果您手動輸入 URL,請檢查您的拼寫并重試。","status": 404, "title": "Not Found", "type" :“關于:空白”}我的嘗試這是我嘗試過的源代碼:我還嘗試了以下方法:import connexionfrom openapi_server import encoderdef main():    app = connexion.App(__name__, specification_dir='./openapi/')    app.app.json_encoder = encoder.JSONEncoder    app.add_api('openapi.yaml', arguments={'title': 'Sample OpenAPI Specification'})    app.run(host='127.0.0.1',port=5000, debug=True)if __name__ == '__main__':    main()我嘗試關閉防火墻并嘗試訪問服務器端點,但仍然無法正常工作。我正在為我的系統使用 windows-x64,這是我第一次嘗試使用 api 開發。我不知道發生了什么以及如何解決我的問題。即使我嘗試使用 cmdroute print -4并ping 127.0.0.1嘗試使用本地 ipv4 地址,但仍然無法正常工作。我的意圖是向默認服務器端點發出請求并進行基本的 api 測試。誰能提供可能的解決方案如何解決此錯誤?任何快速的解決方案?謝謝更新:我在我的Windows機器上嘗試了任何flask rest api示例項目,它們都不起作用,服務器端點總是失敗。那是因為我的本地機器設置嗎?這個錯誤正在殺死我,如何解決這個問題?任何快速的解決方案?謝謝
查看完整描述

1 回答

?
江戶川亂折騰

TA貢獻1851條經驗 獲得超5個贊

我通過更新解決了這個connexion==2.6.0問題requirements。同樣使用不同的值hostport將在默認端點上運行服務器。此源代碼存在一些問題,因為代碼是由 openapi 代碼生成器生成的,無法保證示例 api 服務器運行。我最近對 api 開發的觀察是使用 flask-restplus,它在服務器端點上帶有漂亮的 UI api 視圖。

這是使用flask-restplus的測試api,希望flask-restplus API開發的新手覺得有用。

from flask import Flask

from flask_restplus import Api, fields, Resource, marshal


app = Flask(__name__)

api = Api()

api.init_app(app)


metadata_model = api.model("metadata", {

    'file': fields.String()

})


user_model = api.model('UserModel', {

          "user_id": fields.Integer(required=True, description=''),

          "user_name": fields.String(required=True, description=''),

          "user_role": fields.String(required=False, description='')

})


response_model = api.model("Result", {

    'metadata': fields.List(fields.Nested(metadata_model)),

    'result': fields.Raw()

})



@api.route("/test")

class ApiView(Resource):


    @api.marshal_with(response_model)

    def get(self):


        data = {'metadata': {},

                'result': self.get_user()}

        return data



    def get_user(self):

        # Access database and get data

        user_data = [{'user_id': 1, 'user_name': 'John', 'user_role': 'editor'},

                     {'user_id': 2, 'user_name': 'Sue', 'user_role': 'curator'}]


        # The kwarg envelope does the trick

        return marshal(user_data, user_model, envelope='data')



app.run(host='127.0.0.1', port='8080', debug=True)



查看完整回答
反對 回復 2022-10-11
  • 1 回答
  • 0 關注
  • 111 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號