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

26 statements  

« prev     ^ index     » next       coverage.py v7.13.3, created at 2026-02-21 17:29 +0000

1from fastapi import FastAPI 1abc

2from pydantic import BaseModel 1abc

3 

4 

5class DataInput(BaseModel): 1abc

6 description: str 1abc

7 data: bytes 1abc

8 

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

10 

11 

12class DataOutput(BaseModel): 1abc

13 description: str 1abc

14 data: bytes 1abc

15 

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

17 

18 

19class DataInputOutput(BaseModel): 1abc

20 description: str 1abc

21 data: bytes 1abc

22 

23 model_config = { 1abc

24 "val_json_bytes": "base64", 

25 "ser_json_bytes": "base64", 

26 } 

27 

28 

29app = FastAPI() 1abc

30 

31 

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

33def post_data(body: DataInput): 1abc

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

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

36 

37 

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

39def get_data() -> DataOutput: 1abc

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

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

42 

43 

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

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

46 return body 1jkl