Эх сурвалжийг харах

Optimize FastAPI server config and JSON route responses (#4305)

Sebastián Ramírez 6 жил өмнө
parent
commit
87e6c1500f

+ 5 - 5
frameworks/Python/fastapi/app.py

@@ -3,7 +3,7 @@ import asyncpg
 import os
 import jinja2
 from fastapi import FastAPI
-from starlette.responses import HTMLResponse, JSONResponse, PlainTextResponse
+from starlette.responses import HTMLResponse, UJSONResponse, PlainTextResponse
 from random import randint
 from operator import itemgetter
 from urllib.parse import parse_qs
@@ -58,7 +58,7 @@ app = FastAPI()
 
 @app.get('/json')
 async def json_serialization():
-    return {'message': 'Hello, world!'}
+    return UJSONResponse({'message': 'Hello, world!'})
 
 
 @app.get('/db')
@@ -68,7 +68,7 @@ async def single_database_query():
     async with connection_pool.acquire() as connection:
         number = await connection.fetchval(READ_ROW_SQL, row_id)
 
-    return {'id': row_id, 'randomNumber': number}
+    return UJSONResponse({'id': row_id, 'randomNumber': number})
 
 
 @app.get('/queries')
@@ -84,7 +84,7 @@ async def multiple_database_queries(queries = None):
             number = await statement.fetchval(row_id)
             worlds.append({'id': row_id, 'randomNumber': number})
 
-    return worlds
+    return UJSONResponse(worlds)
 
 
 @app.get('/fortunes')
@@ -110,7 +110,7 @@ async def database_updates(queries = None):
             await statement.fetchval(row_id)
         await connection.executemany(WRITE_ROW_SQL, updates)
 
-    return worlds
+    return UJSONResponse(worlds)
 
 
 @app.get('/plaintext')

+ 1 - 1
frameworks/Python/fastapi/fastapi_conf.py

@@ -3,7 +3,7 @@ import os
 
 _is_travis = os.environ.get('TRAVIS') == 'true'
 
-workers = multiprocessing.cpu_count()
+workers = multiprocessing.cpu_count() * 2
 if _is_travis:
     workers = 2