FastAPI遵循RESTful风格的API

843 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第4天,点击查看活动详情

RESTful风格api

  • WEB开发中设计api时,尤其是前后端分离的项目,一般会遵循RESTful风格的api
  • RESTful风格的api的最基本原则是:使用HTTP协议的请求方式表示动作目的。
  • 比如:使用GET请求表示获取数据,使用POST请求表示提交数据,使用PUT请求表示更细数据,使用DELETE请求表示删除数据等等。
  • RESTful风格的api没有标准的要求,也不是任何时候都需要遵循。
  • FastAPI中可以明显看出RESTful风格,我们一块看下。

FastAPI中的RESTful风格

比如下面这个例子,我们定义了一个GET请求方式的接口

 from fastapi import FastAPI
 ​
 app = FastAPI()
 ​
 ​
 @app.get("/")
 async def root():
     return {"message": "Hello World"}
 ​

其中:

  • @app.get("/")称为路径操作装饰器,这样写会告诉FastAPI在它下方的函数负责处理如下访问请求

    • 请求路径为 /
    • 使用GET操作
  • 类似的,FastAPI还提供了其他的操作(你可以随意使用任何一个操作(HTTP方法)。):

    • @app.post()
    • @app.put()
    • @app.delete()
  • async def root()称为路径操作函数,这是一个Python的函数,每当 FastAPI 接收一个使用 GET 方法访问 URL「/」的请求时这个函数会被调用。
  • 上面的例子,路径操作函数是由 async def定义的协程函数,当然路径操作函数也可以是普通函数.FastAPI知道如何区分它们并知道如何调用它们。
 from fastapi import FastAPI
 ​
 app = FastAPI()
 ​
 ​
 @app.get("/")
 def root():
     return {"message": "Hello World"}
  • return {"message": "Hello World"}返回内容。

  • 你可以返回一个 dictlist,像 strint 一样的单个值,等等。

  • 你还可以返回 Pydantic 模型(稍后你将了解更多)。

    还有许多其他将会自动转换为 JSON 的对象和模型(包括 ORM 对象等)。尝试下使用你最喜欢的一种,它很有可能已经被支持。