====== LiteStar install ====== * python -m pip install litestar * once, done, you can run in the project dir, (where app.py is) litestar run * if error module missing, just pip install those * rich * click * uvicorn * jsbeautifier ====== LiteStar syntax ====== * after build a simple api, to interact with that web api, sample code * get response = requests.get("http://127.0.0.1:8000/?done=true") * post response = requests.post("http://127.0.0.1:8000/",json={"title":"car-washing","done":False}) * put response = requests.put("http://127.0.0.1:8000/profiting", json={"title":"profiting2","done":True} * read data = response.json() * note: * in json, true is "true" * in python, true is "True" * in http url, true is ok with "true" or "True" ====== Concepts ====== * it provides a active server, allow other pc or program to communicate with it * it use url to point to each function of the app.py # (python decorator: a function repackage method, put below function as a component of decorator function) # so, the decoration function is like a white-label procedure function, need input function as lego part to output different behaved white-label funciton. @get("/") async def func_a() -> str: # same as below, get("/") return a the get white-label function, and take func_a as component to output a different behaved white-label function, and use the same function variable func_a, (like a repackage of func_a in white-label box) func_a = get("/")(func_a) * ASGI: Asynchronous Server Gateway Interface * newer for python, non block commu * WSGI: Web Server Gateway Interface * litestar use Uvicorn ASGI server, which support http, websockets and other realtime protocol * https://www.uvicorn.org/ * litestar auto create the scheme and scheme tryout page * http://127.0.0.1:8000/schema/ * http://127.0.0.1:8000/schema/swagger * Litestar generates an OpenAPI schema based on the route handlers, which can then be used by Swagger to set up the interactive documentation.