Datastream API

Django, Flask, Bottle, WSGI, CGI…
Antworten
d.christopher
User
Beiträge: 5
Registriert: Samstag 25. Juli 2020, 11:03

Moin zusammen,
für ein Projekt möchte ich eine API bauen, welche vom Client durch ein GET request angefragt wird. Daraufhin wird beim Server ein Prozess gestartet und mit einem Datenstrom geantwortet.
Aktuell habe ich dies anhand von websockets implementiert, aber würde gern fastAPI oder ein anderes API Framework nutzen.

Code: Alles auswählen

# Server
async def stream(websocket):
    message = await websocket.recv()
    print(message)
    for i in range(100):
        await websocket.send(str(i))


async def main():
    async with websockets.serve(stream, "", 7890):
        await asyncio.Future()  # run forever


if __name__ == "__main__":
    asyncio.run(main())

Code: Alles auswählen

# Client
async def listen():
    url = "ws://127.0.0.1:7890"
    # Connect to the server
    async with websockets.connect(url) as ws:
        # Send a greeting message
        await ws.send("Hello Server!")
        # Stay alive forever, listening to incoming msgs
        while True:
            msg = await ws.recv()
            print(msg)


if __name__ == "__main__":
    asyncio.run(listen())
In der Dokumentation von fastAPI gibt es dieses beispiel von Websockets https://fastapi.tiangolo.com/advanced/websockets/ hier hab ichs nicht geschafft nen eigenen Client zu bauen, welcher sich mit dem websocket verbindet und daten sendet.

Über ein paar Tipps wie man so was am besten umsetzen könnte würd ich mich sehr freuen. Ist auch die erste API die ich entwickele also etwas literatur zu best practice nehm ich auch gern.

LG
Christopher
Antworten