Commit 47eb4c2
committed
fix(python-fastapi): relax strict typing for path/query/header params (OpenAPITools#21905)
Pydantic strict types (StrictInt/StrictStr/StrictFloat) and Field(strict=True)
disable automatic string coercion. Since path/query/header values always arrive
on the wire as strings, FastAPI rejected otherwise-valid requests with a 422
(int_type: Input should be a valid integer).
Add a relaxStrict flag to PydanticType that emits coercible types (int/str/float)
and omits strict=True, gated behind a shouldRelaxStrictParameterTyping() hook that
defaults to false. PythonFastAPIServerCodegen overrides it for path/query/header
params. Body params and the Python client generator are unchanged (strict typing
is correct for JSON bodies).
Regenerated the python-fastapi petstore sample.
Claude-Session: https://claude.ai/code/session_019g7iwAyg7ErX1WrhqHyTn61 parent 97cb5b3 commit 47eb4c2
10 files changed
Lines changed: 115 additions & 44 deletions
File tree
- modules/openapi-generator/src/main/java/org/openapitools/codegen/languages
- samples/server/petstore/python-fastapi/src/openapi_server/apis
Lines changed: 65 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1301 | 1301 | | |
1302 | 1302 | | |
1303 | 1303 | | |
| 1304 | + | |
| 1305 | + | |
| 1306 | + | |
| 1307 | + | |
| 1308 | + | |
| 1309 | + | |
| 1310 | + | |
| 1311 | + | |
| 1312 | + | |
| 1313 | + | |
| 1314 | + | |
| 1315 | + | |
| 1316 | + | |
| 1317 | + | |
| 1318 | + | |
| 1319 | + | |
| 1320 | + | |
| 1321 | + | |
1304 | 1322 | | |
1305 | 1323 | | |
1306 | 1324 | | |
| |||
1324 | 1342 | | |
1325 | 1343 | | |
1326 | 1344 | | |
1327 | | - | |
| 1345 | + | |
| 1346 | + | |
1328 | 1347 | | |
1329 | 1348 | | |
1330 | 1349 | | |
| |||
1843 | 1862 | | |
1844 | 1863 | | |
1845 | 1864 | | |
| 1865 | + | |
| 1866 | + | |
| 1867 | + | |
| 1868 | + | |
| 1869 | + | |
1846 | 1870 | | |
1847 | 1871 | | |
1848 | 1872 | | |
| |||
1851 | 1875 | | |
1852 | 1876 | | |
1853 | 1877 | | |
| 1878 | + | |
| 1879 | + | |
| 1880 | + | |
| 1881 | + | |
| 1882 | + | |
| 1883 | + | |
| 1884 | + | |
| 1885 | + | |
| 1886 | + | |
| 1887 | + | |
| 1888 | + | |
| 1889 | + | |
1854 | 1890 | | |
1855 | 1891 | | |
1856 | 1892 | | |
1857 | 1893 | | |
1858 | 1894 | | |
1859 | 1895 | | |
1860 | 1896 | | |
| 1897 | + | |
1861 | 1898 | | |
1862 | 1899 | | |
1863 | 1900 | | |
| |||
1904 | 1941 | | |
1905 | 1942 | | |
1906 | 1943 | | |
1907 | | - | |
| 1944 | + | |
| 1945 | + | |
| 1946 | + | |
1908 | 1947 | | |
1909 | 1948 | | |
1910 | 1949 | | |
| |||
1922 | 1961 | | |
1923 | 1962 | | |
1924 | 1963 | | |
| 1964 | + | |
| 1965 | + | |
1925 | 1966 | | |
1926 | 1967 | | |
1927 | 1968 | | |
| |||
1966 | 2007 | | |
1967 | 2008 | | |
1968 | 2009 | | |
1969 | | - | |
1970 | | - | |
| 2010 | + | |
| 2011 | + | |
| 2012 | + | |
| 2013 | + | |
1971 | 2014 | | |
1972 | 2015 | | |
1973 | 2016 | | |
1974 | 2017 | | |
1975 | 2018 | | |
1976 | 2019 | | |
1977 | 2020 | | |
1978 | | - | |
| 2021 | + | |
| 2022 | + | |
| 2023 | + | |
1979 | 2024 | | |
1980 | 2025 | | |
1981 | 2026 | | |
1982 | 2027 | | |
1983 | 2028 | | |
1984 | 2029 | | |
1985 | 2030 | | |
| 2031 | + | |
| 2032 | + | |
| 2033 | + | |
| 2034 | + | |
| 2035 | + | |
| 2036 | + | |
1986 | 2037 | | |
1987 | 2038 | | |
1988 | 2039 | | |
1989 | 2040 | | |
1990 | 2041 | | |
1991 | 2042 | | |
1992 | 2043 | | |
| 2044 | + | |
| 2045 | + | |
| 2046 | + | |
1993 | 2047 | | |
1994 | 2048 | | |
1995 | 2049 | | |
| |||
2002 | 2056 | | |
2003 | 2057 | | |
2004 | 2058 | | |
2005 | | - | |
| 2059 | + | |
| 2060 | + | |
| 2061 | + | |
2006 | 2062 | | |
2007 | 2063 | | |
2008 | 2064 | | |
| 2065 | + | |
| 2066 | + | |
| 2067 | + | |
2009 | 2068 | | |
2010 | 2069 | | |
2011 | 2070 | | |
| |||
Lines changed: 12 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
237 | 237 | | |
238 | 238 | | |
239 | 239 | | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
240 | 252 | | |
241 | 253 | | |
242 | 254 | | |
| |||
Lines changed: 3 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
26 | | - | |
| 26 | + | |
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
| |||
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
49 | | - | |
50 | | - | |
| 49 | + | |
| 50 | + | |
51 | 51 | | |
52 | 52 | | |
53 | 53 | | |
| |||
Lines changed: 3 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
18 | | - | |
19 | | - | |
| 18 | + | |
| 19 | + | |
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
Lines changed: 8 additions & 8 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
26 | | - | |
| 26 | + | |
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
| |||
95 | 95 | | |
96 | 96 | | |
97 | 97 | | |
98 | | - | |
| 98 | + | |
99 | 99 | | |
100 | 100 | | |
101 | 101 | | |
| |||
117 | 117 | | |
118 | 118 | | |
119 | 119 | | |
120 | | - | |
| 120 | + | |
121 | 121 | | |
122 | 122 | | |
123 | 123 | | |
| |||
140 | 140 | | |
141 | 141 | | |
142 | 142 | | |
143 | | - | |
| 143 | + | |
144 | 144 | | |
145 | 145 | | |
146 | 146 | | |
| |||
161 | 161 | | |
162 | 162 | | |
163 | 163 | | |
164 | | - | |
| 164 | + | |
165 | 165 | | |
166 | 166 | | |
167 | 167 | | |
| |||
184 | 184 | | |
185 | 185 | | |
186 | 186 | | |
187 | | - | |
188 | | - | |
| 187 | + | |
| 188 | + | |
189 | 189 | | |
190 | 190 | | |
191 | 191 | | |
| |||
206 | 206 | | |
207 | 207 | | |
208 | 208 | | |
209 | | - | |
| 209 | + | |
210 | 210 | | |
211 | 211 | | |
212 | 212 | | |
| |||
Lines changed: 8 additions & 8 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| |||
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
37 | | - | |
| 37 | + | |
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
44 | 44 | | |
45 | | - | |
| 45 | + | |
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
51 | 51 | | |
52 | 52 | | |
53 | | - | |
| 53 | + | |
54 | 54 | | |
55 | 55 | | |
56 | 56 | | |
57 | 57 | | |
58 | 58 | | |
59 | 59 | | |
60 | 60 | | |
61 | | - | |
| 61 | + | |
62 | 62 | | |
63 | 63 | | |
64 | 64 | | |
| |||
68 | 68 | | |
69 | 69 | | |
70 | 70 | | |
71 | | - | |
72 | | - | |
| 71 | + | |
| 72 | + | |
73 | 73 | | |
74 | 74 | | |
75 | 75 | | |
76 | 76 | | |
77 | 77 | | |
78 | 78 | | |
79 | 79 | | |
80 | | - | |
| 80 | + | |
81 | 81 | | |
82 | 82 | | |
83 | 83 | | |
| |||
Lines changed: 3 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
26 | | - | |
| 26 | + | |
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
| |||
87 | 87 | | |
88 | 88 | | |
89 | 89 | | |
90 | | - | |
| 90 | + | |
91 | 91 | | |
92 | 92 | | |
93 | 93 | | |
| |||
106 | 106 | | |
107 | 107 | | |
108 | 108 | | |
109 | | - | |
| 109 | + | |
110 | 110 | | |
111 | 111 | | |
112 | 112 | | |
| |||
0 commit comments