The requestBody declared with $ref is not generating json_body
Describe the bug
If a requestBody is declared with a $ref, then no json_body property is generated. If the reference is inlined, then json_body is generated.
To Reproduce Steps to reproduce the behaviour:
- Example schema:
paths:
"/objects":
post:
operationId: object_create
requestBody:
$ref: "#/components/requestBodies/Object"
- generated API is:
def sync_detailed(
*,
client: Client,
) -> Response[Object]:
"""
Returns:
Response[Object]
"""
kwargs = _get_kwargs(
client=client,
)
response = httpx.request(
verify=client.verify_ssl,
**kwargs,
)
return _build_response(response=response)
Expected behavior The expected API should be:
def sync_detailed(
*,
client: Client,
json_body: Object,
) -> Response[Object]:
"""
Args:
json_body (Object):
Returns:
Response[Object]
"""
kwargs = _get_kwargs(
client=client,
json_body=json_body,
)
response = httpx.request(
verify=client.verify_ssl,
**kwargs,
)
return _build_response(response=response)
OpenAPI Spec File test.yaml
Hi I just submitted a PR above which works with your yaml. It'll be helpful if you have some time to review
Output
def sync_detailed(
*,
client: Client,
json_body: Object,
) -> Response[Object]:
"""
Args:
json_body (Object):
Returns:
Response[Object]
"""
kwargs = _get_kwargs(
client=client,
json_body=json_body,
)
response = httpx.request(
verify=client.verify_ssl,
**kwargs,
)
return _build_response(response=response)
async def asyncio_detailed(
*,
client: Client,
json_body: Object,
) -> Response[Object]:
"""
Args:
json_body (Object):
Returns:
Response[Object]
"""
kwargs = _get_kwargs(
client=client,
json_body=json_body,
)
async with httpx.AsyncClient(verify=client.verify_ssl) as _client:
response = await _client.request(**kwargs)
return _build_response(response=response)
hello, do you have an update on the ongoing PR? I'm facing the exact same issue :/
@Leemur89 This library seems not actively maintained. I recommend just using the official openapi generator
@kigawas are you sure? It just got a new release last week Otherwise do you hav the link to the official openapi generator please? I've been using this one to generate custom python code and could not find a better one (however I found a workaround to dereference my swagger file)
@Leemur89 The biggest problem is that it only supports Open API v3.0 partially and has no plan to upgrade, while fastapi has already shifted to 3.1. If some day I may have to change to use another library, I'd rather change it now.
https://github.com/openapi-generators/openapi-python-client/issues/585
@Leemur89 The biggest problem is that it only supports Open API v3.0 partially and has no plan to upgrade, while fastapi has already swifted to 3.1. If some day I may have to change to use another library, I'd rather change it now.
3.1 support is in progress in https://github.com/openapi-generators/openapi-python-client/pull/856 . I would categorize this project as "lightly maintained", I am still working on it but it's (mostly) only me and it's not my focus.
@dbanty Glad to hear you are working on this!