File tree Expand file tree Collapse file tree 6 files changed +22
-10
lines changed
sample_fastapi/app/resources Expand file tree Collapse file tree 6 files changed +22
-10
lines changed Original file line number Diff line number Diff line change 1
1
from pydantic import BaseModel
2
2
3
3
4
- class ConversioHexResponse (BaseModel ):
4
+ class ConversionHexResponse (BaseModel ):
5
+ """Hexadecimal value response"""
5
6
value : str
6
7
7
8
8
- class ConversioDecResponse (BaseModel ):
9
+ class ConversionDecResponse (BaseModel ):
10
+ """Integer value response"""
9
11
value : int
Original file line number Diff line number Diff line change 1
1
from fastapi import APIRouter
2
2
3
- from .views import calc_dec2hex , calc_hex2dec
3
+ from .views import conv_dec2hex , conv_hex2dec
4
4
5
5
6
6
def init_routes ():
7
7
router = APIRouter (prefix = "/calculator" , tags = ["calculator" ])
8
8
9
- router .add_api_route ("/convert/dec2hex" , calc_dec2hex , methods = {"POST" })
10
- router .add_api_route ("/convert/hex2dec" , calc_hex2dec , methods = {"POST" })
9
+ router .add_api_route ("/convert/dec2hex" , conv_dec2hex , methods = {"POST" })
10
+ router .add_api_route ("/convert/hex2dec" , conv_hex2dec , methods = {"POST" })
11
11
12
12
return router
Original file line number Diff line number Diff line change 1
1
class ConverterService :
2
+ """Data conversion service"""
2
3
def __init__ (self ):
3
4
pass
4
5
5
6
def dec2hex (self , value : int ) -> str :
7
+ """Convert integer to hexadecimal string with '0x' prefix"""
6
8
return hex (value )
7
9
8
10
def hex2dec (self , value : str ) -> int :
11
+ """Convert hexadecimal string (with or without prefix) into integer.
12
+
13
+ Raises `ValueError` for incorrect input"""
9
14
return int (value , 16 )
Original file line number Diff line number Diff line change 1
1
from fastapi import Depends , HTTPException , status
2
2
3
- from .models import ConversioDecResponse , ConversioHexResponse
3
+ from .models import ConversionDecResponse , ConversionHexResponse
4
4
from .services import ConverterService
5
5
6
6
7
- async def calc_dec2hex (value : int , converter : ConverterService = Depends (ConverterService )) -> ConversioHexResponse :
8
- return ConversioHexResponse (
7
+ async def conv_dec2hex (value : int , converter : ConverterService = Depends (ConverterService )) -> ConversionHexResponse :
8
+ """Convert integer input into hexadecimal string"""
9
+ return ConversionHexResponse (
9
10
value = converter .dec2hex (value ),
10
11
)
11
12
12
13
13
- async def calc_hex2dec (value : str , converter : ConverterService = Depends (ConverterService )) -> ConversioDecResponse :
14
+ async def conv_hex2dec (value : str , converter : ConverterService = Depends (ConverterService )) -> ConversionDecResponse :
15
+ """Convert hexadecimal string input into integer"""
14
16
try :
15
- return ConversioDecResponse (
17
+ return ConversionDecResponse (
16
18
value = converter .hex2dec (value ),
17
19
)
18
20
except ValueError :
Original file line number Diff line number Diff line change 2
2
3
3
4
4
class HelloMessage (BaseModel ):
5
+ """Message response to hello request"""
5
6
message : str
Original file line number Diff line number Diff line change 4
4
5
5
6
6
async def respond_hello () -> HelloMessage :
7
+ """Respond with "Hello, World!" message in a JSON"""
7
8
return HelloMessage (message = "Hello, World!" )
8
9
9
10
10
11
async def respond_name_greet (name : str = Query ()) -> HelloMessage :
12
+ """Respond with "Hello, <name>!" message in a JSON"""
11
13
return HelloMessage (message = f"Hello, { name } !" )
You can’t perform that action at this time.
0 commit comments