Skip to content

Commit 3ad6e66

Browse files
authored
Merge branch 'master' into issue-334
2 parents c21aba9 + 71723ee commit 3ad6e66

File tree

9 files changed

+46
-14
lines changed

9 files changed

+46
-14
lines changed

fastapi_code_generator/parser.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,11 @@ def get_argument_list(self, snake_case: bool, path: List[str]) -> List[Argument]
330330
for argument in arguments:
331331
if positional_argument and argument.required and argument.default is None:
332332
argument.default = UsefulStr('...')
333-
positional_argument = argument.required or argument.default is not None
333+
positional_argument = (
334+
argument.required
335+
or (argument.default is not None)
336+
or argument.type_hint.startswith('Optional[')
337+
)
334338

335339
return arguments
336340

fastapi_code_generator/template/main.jinja2

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ app = FastAPI(
1515

1616

1717
{% for operation in operations %}
18-
@app.{{operation.type}}('{{operation.snake_case_path}}', response_model={{operation.response}}
18+
@app.{{operation.type}}('{{operation.path}}', response_model={{operation.response}}
1919
{% if operation.additional_responses %}
2020
, responses={
2121
{% for status_code, models in operation.additional_responses.items() %}

tests/data/expected/openapi/default_template/body_and_parameters/main.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,12 @@ def post_bar(request: Request) -> None:
3737

3838

3939
@app.post('/convert', response_model=bytes)
40-
def convert(format: Optional[str] = 'pdf', request: Request = ...) -> bytes:
40+
def convert1(format: Optional[str] = 'pdf', request: Request = ...) -> bytes:
41+
pass
42+
43+
44+
@app.put('/convert', response_model=bytes)
45+
def convert2(format: Optional[str] = None, request: Request = ...) -> bytes:
4146
pass
4247

4348

@@ -94,7 +99,7 @@ def post_pets(body: PetForm) -> Union[None, Error]:
9499

95100

96101
@app.get(
97-
'/pets/{pet_id}',
102+
'/pets/{petId}',
98103
response_model=Pet,
99104
responses={'default': {'model': Error}},
100105
tags=['pets'],
@@ -107,7 +112,7 @@ def show_pet_by_id(pet_id: str = Path(..., alias='petId')) -> Union[Pet, Error]:
107112

108113

109114
@app.put(
110-
'/pets/{pet_id}',
115+
'/pets/{petId}',
111116
response_model=None,
112117
responses={'default': {'model': Error}},
113118
tags=['pets'],
@@ -142,7 +147,7 @@ def post_users(body: List[UsersPostRequest]) -> None:
142147

143148

144149
@app.post(
145-
'/{ue_id}/sdm-subscriptions', response_model=None, tags=['Subscription Creation']
150+
'/{ueId}/sdm-subscriptions', response_model=None, tags=['Subscription Creation']
146151
)
147152
def subscribe(ue_id: str = Path(..., alias='ueId'), body: Pet = ...) -> None:
148153
"""

tests/data/expected/openapi/default_template/content_in_parameters/main.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121

2222
@app.get(
23-
'/{supi_or_suci}/security-information-rg',
23+
'/{supiOrSuci}/security-information-rg',
2424
response_model=None,
2525
tags=['Get Auth Data for FN-RG'],
2626
)

tests/data/expected/openapi/default_template/same_response_model_for_different_status_codes/main.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ def create_pets() -> Union[None, Error]:
4040

4141

4242
@app.get(
43-
'/pets/{pet_id}',
43+
'/pets/{petId}',
4444
response_model=Pets,
4545
responses={'404': {'model': Error}, 'default': {'model': Error}},
4646
tags=['pets'],

tests/data/expected/openapi/default_template/simple/main.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ def create_pets() -> Union[None, Error]:
4040

4141

4242
@app.get(
43-
'/pets/{pet_id}',
43+
'/pets/{petId}',
4444
response_model=Pets,
4545
responses={'default': {'model': Error}},
4646
tags=['pets'],

tests/data/expected/openapi/disable_timestamp/simple/main.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ def create_pets() -> Union[None, Error]:
3939

4040

4141
@app.get(
42-
'/pets/{pet_id}',
42+
'/pets/{petId}',
4343
response_model=Pets,
4444
responses={'default': {'model': Error}},
4545
tags=['pets'],

tests/data/expected/openapi/remote_ref/body_and_parameters/main.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ def post_pets(body: PetForm) -> Union[None, Error]:
7272

7373

7474
@app.get(
75-
'/pets/{pet_id}',
75+
'/pets/{petId}',
7676
response_model=Pet,
7777
responses={'default': {'model': Error}},
7878
tags=['pets'],
@@ -85,7 +85,7 @@ def show_pet_by_id(pet_id: str = Path(..., alias='petId')) -> Union[Pet, Error]:
8585

8686

8787
@app.put(
88-
'/pets/{pet_id}',
88+
'/pets/{petId}',
8989
response_model=None,
9090
responses={'default': {'model': Error}},
9191
tags=['pets'],
@@ -100,7 +100,7 @@ def put_pets_pet_id(
100100

101101

102102
@app.post(
103-
'/pets/{pet_id}/image',
103+
'/pets/{petId}/image',
104104
response_model=None,
105105
responses={'default': {'model': str}},
106106
tags=['pets'],

tests/data/openapi/default_template/body_and_parameters.yaml

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -339,7 +339,8 @@ paths:
339339
required: true
340340
/convert:
341341
post:
342-
operationId: convert
342+
description: https://github.com/koxudaxi/fastapi-code-generator/issues/376
343+
operationId: convert1
343344
parameters:
344345
- in: query
345346
name: format
@@ -360,6 +361,28 @@ paths:
360361
schema:
361362
type: string
362363
format: binary
364+
put:
365+
description: https://github.com/koxudaxi/fastapi-code-generator/issues/322
366+
operationId: convert2
367+
parameters:
368+
- in: query
369+
name: format
370+
schema:
371+
type: string
372+
requestBody:
373+
required: true
374+
content:
375+
application/octet-stream:
376+
schema:
377+
type: string
378+
format: binary
379+
responses:
380+
"200":
381+
content:
382+
application/octet-stream:
383+
schema:
384+
type: string
385+
format: binary
363386
components:
364387
parameters:
365388
MyParam:

0 commit comments

Comments
 (0)