首页 > 解决方案 > 如何使用来自单独 JSON 文件的数据填充我正在构建的 FastAPI?

问题描述

我意识到这可能是一个非常简单的答案,但一直无法找到任何类型的教程或如何在线执行此操作的示例。我正在制作一个显示大学迎新周时间表的基本应用程序,并希望从 API 中提取事件,以便在任何时间/日期发生变化的情况下,API 可以更新,并且部署在每个人手机上的应用程序将调用 API 时接收更新的信息。

应用模型

(这是应用程序的模型)

对于我的 API,我在 pycharm 中使用 FastAPI。我了解 API 的结构,但每个示例/教程仅显示如何返回“hello world”之类的内容,而不是实际数据。例如,我想要www.example.com/all-events返回

{
            "Calendar ": "Orientation Team",
            "eventName": "Set up check-in",
            "Date": "8/24/21",
            "Time": "7:00 AM",
            "Location": "dining hall",
            "eventID": "1"
        },
        {
            "Calendar ": "Orientation Team",
            "eventName": "First-Year check-in",
            "Date": "8/24/21",
            "Time": "8:00AM-11:00AM",
            "eventID": "2"
        },

等等,并让www.example.com/eventid=2返回

{
            "Calendar ": "Orientation Team",
            "eventName": "First-Year check-in",
            "Date": "8/24/21",
            "Time": "8:00AM-11:00AM",
            "eventID": "2"
        }

如何在我的 API 中解析我的 JSON 文件,并发布它以便我的应用程序可以访问它?例如,

api.post 
for (int x, x<OrientationData.length, x++)
{
if (OrientationData[x].date=="8/24/21")
 {  
    return OrientationData[x]
} 

这样这个 URI 就会返回 8 月 24 日发生的所有事件。

我当前的 API 代码是这样的:

from typing import Optional
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()


class Event (BaseModel):
    eventName: str
    eventID: int
    eventCalendar: str
    date: str
    time: str
    location: str


@app.get("/")
def home():
    return {"Hello": "FastAPI"}

@app.post('/event')
async def create_event(event: Event):
    return event

标签: pythonjsonapipycharmfastapi

解决方案


推荐阅读