Coverage for docs_src / json_base64_bytes / tutorial001_py310.py: 100%

26 statements  

« prev     ^ index     » next       coverage.py v7.13.3, created at 2026-04-06 01:24 +0000

1from fastapi import FastAPI 1abfgcde

2from pydantic import BaseModel 1abfgcde

3 

4 

5class DataInput(BaseModel): 1abfgcde

6 description: str 1abcde

7 data: bytes 1abcde

8 

9 model_config = {"val_json_bytes": "base64"} 1abfgcde

10 

11 

12class DataOutput(BaseModel): 1abfgcde

13 description: str 1abcde

14 data: bytes 1abcde

15 

16 model_config = {"ser_json_bytes": "base64"} 1abfgcde

17 

18 

19class DataInputOutput(BaseModel): 1abfgcde

20 description: str 1abcde

21 data: bytes 1abcde

22 

23 model_config = { 1abfgcde

24 "val_json_bytes": "base64", 

25 "ser_json_bytes": "base64", 

26 } 

27 

28 

29app = FastAPI() 1abfgcde

30 

31 

32@app.post("/data") 1abfgcde

33def post_data(body: DataInput): 1abfgcde

34 content = body.data.decode("utf-8") 1hijk

35 return {"description": body.description, "content": content} 1hijk

36 

37 

38@app.get("/data") 1abfgcde

39def get_data() -> DataOutput: 1abfgcde

40 data = "hello".encode("utf-8") 1lmno

41 return DataOutput(description="A plumbus", data=data) 1lmno

42 

43 

44@app.post("/data-in-out") 1abfgcde

45def post_data_in_out(body: DataInputOutput) -> DataInputOutput: 1abfgcde

46 return body 1pqrs