原文链接:https://www.cnblogs.com/neo98/p/12250730.html

    <a id="cb_post_title_url" class="postTitle2" href="https://www.cnblogs.com/neo98/p/12250730.html">FastAPI框架快速构建高性能的api服务</a>

</h1>
<div class="clear"></div>
<div class="postBody">

    <div id="cnblogs_post_body" class="blogpost-body ">
        <p><a href="https://cloud.tencent.com/developer/article/1431448">https://cloud.tencent.com/developer/article/1431448</a>
        </p>
        <p>&nbsp;</p>
        <p>使用FastAPI可以非常快速的构建出一套高性能的api服务。下面通过实战演示一下:</p>
        <blockquote>
            <p>fastapi目前仅支持python 3.6+以上版本。</p>
        </blockquote>
        <h4 id="%E4%B8%80%E3%80%81%E5%AE%89%E8%A3%85fastapi%E5%92%8Cuvicorn"><strong>一、安装fastapi和uvicorn</strong>
        </h4>
        <pre class="prism-token token  language-javascript">pip install fastapi

pip install uvicorn


二、新建一个main.py文件,编写如下代码


from fastapi import FastAPI

app = FastAPI()

@app.get(“/“)
def read_root():
return {“Hello”: “World”}

@app.get(“/items/{item_id}”)
def read_item(item_id: int, q: str = None):
return {“item_id”: item_id, “q”: q}


三、运行接口服务


在命令行,执行下面的命令


uvicorn main:app --reload

四、请求接口


运行成功后在浏览器打开http://127.0.0.1:8000 ,你将在一个JSON格式响应结果:


{'hello':'world'}

再次在浏览器打开http://127.0.0.1:8000/items/5?q=somequery,你将在一个如下JSON格式响应结果:


{'item_id':5,'q':'somequery'}

五、可视化API文档


现在在浏览器中打开http://127.0.0.1:8000/docs,你会看到一个可以交互的api文档


 


 




你也可以其他方法的装饰器:



  • @app.post()

  • @app.put()

  • @app.delete()


还有一些比较少见的方法的装饰器:



  • @app.options()

  • @app.head()

  • @app.patch()

  • @app.trace(






建议


你可以使用任意的HTTP方法.


FastAPI不强制任何特定函数。


此处提供的信息,仅供参考,并非必需。


例如,当使用 GraphQL , 你通常会只执行post方法


 




总结



  • Import FastAPI.

  • 创建一个 app 实例.

  • 编写一个 路径操作装饰器 (比如@app.get("/")).

  • 编写一个路径操作函数 (比如上方的 def root(): ... ).

  • 运行开发服务器(比如uvicorn main:app --reload).
  •                     </ul>
    
                    </div>
    
                </div>
    
            </div>
            
    </div>