Skip to content

Commit aacef92

Browse files
authored
🐛 fix missing schema for some response
1 parent 3e32494 commit aacef92

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

codegen/parser/__init__.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import httpx
55
from openapi_pydantic import OpenAPI
66

7+
from ..log import logger
8+
79
if TYPE_CHECKING:
810
from ..config import Override
911
from ..source import Source
@@ -53,6 +55,7 @@ def parse_openapi_spec(source: "Source", override: "Override") -> OpenAPIData:
5355
# apply schema overrides first to make sure json pointer is correct
5456
for path, new_schema in override.schema_overrides.items():
5557
ref = str(httpx.URL(fragment=path))
58+
logger.info(f"Applying schema override for {ref!r}")
5659
merge_inplace(source.resolve_ref(ref).data, new_schema)
5760

5861
_ot = _override_config.set(override)

codegen/parser/endpoints/response.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from typing import TYPE_CHECKING
22

3+
from jsonpointer import JsonPointerException
34
import openapi_pydantic as oas
45

56
from ..data import ResponseData
@@ -22,8 +23,12 @@ def build_response(source: "Source", prefix: str) -> ResponseData:
2223
media_type = next(
2324
(type for type in data.content.keys() if "json" in type), None
2425
) or next(iter(data.content.keys()))
25-
response_schema = parse_schema(
26-
source / "content" / media_type / "schema", prefix
27-
)
26+
# schema may not exist for some media types
27+
try:
28+
response_schema = parse_schema(
29+
source / "content" / media_type / "schema", prefix
30+
)
31+
except JsonPointerException:
32+
response_schema = None
2833

2934
return ResponseData(description=data.description, response_schema=response_schema)

0 commit comments

Comments
 (0)