1. 程式人生 > 其它 >FastAPI學習筆記(一)-5.當2個接扣的呼叫方法和路由相同時,按照前後順序,只執行第一個介面

FastAPI學習筆記(一)-5.當2個接扣的呼叫方法和路由相同時,按照前後順序,只執行第一個介面

/tutorial/chapter03.py

 1 '''
 2 @author:invoker
 3 @project:fastapi202108
 4 @file: chapter03.py
 5 @contact:[email protected]
 6 @descript:
 7 @Date:2021/8/5 21:22
 8 @version: Python 3.7.8
 9 '''
10 
11 from fastapi import APIRouter
12 
13 app03 = APIRouter()
14 
15 """
16 第三章 路徑引數與數字驗證
17 """
18 
19 @app03.get('
/path/parameters') 20 async def path_param01(): 21 return {"msg": "this is a msg"} 22 23 24 @app03.get('/path/{parameters}') 25 async def path_param02(parameters: str): 26 return {"msg": parameters}
View Code

@app03.get('/path/parameters')
async def path_param01():
return {"msg": "this is a msg"}


@app03.get('/path/{parameters}')
async def path_param02(parameters: str):
return {"msg": parameters}

2個介面的方法都是get

2個介面的路徑一個是‘/path/parameters’

另一個是'/path/{parameters}'

方法的引數和方法的返回值不同。

此時呼叫2個介面

呼叫第一個介面的結果如下:

呼叫第二個介面的結果如下:

調換2個介面的位置順序

 1 '''
 2 @author:invoker
 3 @project:fastapi202108
 4 @file: chapter03.py
 5 @contact:[email protected]
 6 @descript:
 7 @Date:2021/8/5 21:22
 8 @version: Python 3.7.8
9 ''' 10 11 from fastapi import APIRouter 12 13 app03 = APIRouter() 14 15 """ 16 第三章 路徑引數與數字驗證 17 """ 18 19 @app03.get('/path/{parameters}') 20 async def path_param02(parameters: str): 21 return {"msg": parameters} 22 23 @app03.get('/path/parameters') 24 async def path_param01(): 25 return {"msg": "this is a msg"}
View Code

@app03.get('/path/{parameters}')
async def path_param02(parameters: str):
return {"msg": parameters}

@app03.get('/path/parameters')
async def path_param01():
return {"msg": "this is a msg"}

重新測試執行2個介面:

呼叫第一個介面:

呼叫第二個介面:

由此可見,當2個介面的路徑和呼叫方法相同時,使用的是第一個介面的返回值

本文來自部落格園,作者:kaer_invoker,轉載請註明原文連結:https://www.cnblogs.com/invoker2021/p/15106328.html