Title: Endpoints with hyphens in parameter names trigger `Incorrect path templating` warning, are not generated · Issue #976 · openapi-generators/openapi-python-client · GitHub
Open Graph Title: Endpoints with hyphens in parameter names trigger `Incorrect path templating` warning, are not generated · Issue #976 · openapi-generators/openapi-python-client
X Title: Endpoints with hyphens in parameter names trigger `Incorrect path templating` warning, are not generated · Issue #976 · openapi-generators/openapi-python-client
Description: Describe the bug openapi-python-client fails to generate endpoints and throws incorrect path templating warnings when the path has a parameter with a hyphen. Renaming the parameters fixes the issue. Hyphens in parameter names don't seem ...
Open Graph Description: Describe the bug openapi-python-client fails to generate endpoints and throws incorrect path templating warnings when the path has a parameter with a hyphen. Renaming the parameters fixes the issue...
X Description: Describe the bug openapi-python-client fails to generate endpoints and throws incorrect path templating warnings when the path has a parameter with a hyphen. Renaming the parameters fixes the issue...
Opengraph URL: https://github.com/openapi-generators/openapi-python-client/issues/976
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Endpoints with hyphens in parameter names trigger `Incorrect path templating` warning, are not generated","articleBody":"**Describe the bug**\r\n\r\n`openapi-python-client` fails to generate endpoints and throws `incorrect path templating` warnings when the path has a parameter with a hyphen.\r\n\r\nRenaming the parameters fixes the issue. Hyphens in parameter names don't seem to go against Swagger/OpenAPI naming conventions, which would indicate that the issue is with `openapi-python-client`, though I haven't found any existing issues around this.\r\n\r\n**OpenAPI Spec File**\r\n\r\nThis is from an OpenAPI spec generated from [a Swagger spec](https://codeberg.org/swagger.v1.json) with [swagger-converter](https://github.com/swagger-api/swagger-converter). \r\n\r\n```\r\n \"paths\": {\r\n \"/activitypub/user-id/{user-id}\":\r\n \"get\": {\r\n \"parameters\": [\r\n {\r\n \"name\": \"user-id\",\r\n ...\r\n }\r\n ],\r\n ...\r\n }\r\n },\r\n \"/activitypub/user-id/{user-id}/inbox\": {\r\n \"post\": {\r\n \"parameters\": [\r\n {\r\n \"name\": \"user-id\",\r\n ...\r\n }\r\n ],\r\n ...\r\n }\r\n },\r\n ...\r\n }\r\n```\r\n\r\n**Desktop (please complete the following information):**\r\n - OS: Linux Manjaro\r\n - Python Version: 3.12.2\r\n - openapi-python-client version: 0.17.3\r\n\r\n**Additional context**\r\n\r\nWarnings:\r\n\r\n```\r\nWARNING parsing GET /activitypub/user-id/{user-id} within activitypub. Endpoint will not be generated.\r\nIncorrect path templating for /activitypub/user-id/{user-id} (Path parameters do not match with path)\r\n\r\nWARNING parsing POST /activitypub/user-id/{user-id}/inbox within activitypub. Endpoint will not be generated.\r\nIncorrect path templating for /activitypub/user-id/{user-id}/inbox (Path parameters do not match with path)\r\n```\r\n\r\nTo diagnose, I added the following print statements to `parser/openapi.py`:\r\n\r\n```python\r\n def sort_parameters(*, endpoint: \"Endpoint\") -\u003e Union[\"Endpoint\", ParseError]:\r\n # ...\r\n print(endpoint.name, endpoint.path) # \u003c- new\r\n print(f'\\tparameters_from_path: {parameters_from_path}') # \u003c- new\r\n print(f'\\tendpoint {endpoint.name}.path_parameters: {endpoint.path_parameters}') # \u003c- new\r\n\r\n if parameters_from_path != [param.name for param in endpoint.path_parameters]:\r\n return ParseError(\r\n detail=f\"Incorrect path templating for {endpoint.path} (Path parameters do not match with path)\",\r\n )\r\n return endpoint\r\n```\r\n\r\nFor comparison, replacing one of the `user-id` occurrences with `userid` and generating a client yields this:\r\n\r\n```\r\n('activitypubPerson /activitypub/user-id/{userid}'\r\n \" parameters_from_path: ['userid']\"\r\n \" endpoint activitypubPerson.path_parameters: [IntProperty(name='userid', \"\r\n \"required=True, default=None, python_name='userid', description=None, \"\r\n 'example=None)]'\r\n 'activitypubPersonInbox /activitypub/user-id/{user-id}/inbox'\r\n ' parameters_from_path: []'\r\n ' endpoint activitypubPersonInbox.path_parameters: '\r\n \"[IntProperty(name='user-id', required=True, default=None, \"\r\n \"python_name='user_id', description=None, example=None)]\"\r\n ...\r\n)\r\n```","author":{"url":"https://github.com/harabat","@type":"Person","name":"harabat"},"datePublished":"2024-02-22T16:54:22.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},"url":"https://github.com/976/openapi-python-client/issues/976"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:06f87723-32bd-b3f9-5e44-54fc7dd6f741 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | 8D12:339712:AFEB25:E431CA:697F85D0 |
| html-safe-nonce | 4bc11cfbd4db30ef699a3781856412633aa4b26f2345bed1008c314372c11d76 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI4RDEyOjMzOTcxMjpBRkVCMjU6RTQzMUNBOjY5N0Y4NUQwIiwidmlzaXRvcl9pZCI6IjY5MTI4OTgwNTgyMzM1NDYxOTIiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ== |
| visitor-hmac | 413ddbeeb37ea5e756965a537195c5b7e67321937f4d73b34cc3d3fc40fc9c5a |
| hovercard-subject-tag | issue:2149505619 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/openapi-generators/openapi-python-client/976/issue_layout |
| twitter:image | https://opengraph.githubassets.com/986282af78a4108d1cbfc07a0a5e6c347e81ef0512fe31b39379ff7228b86c87/openapi-generators/openapi-python-client/issues/976 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/986282af78a4108d1cbfc07a0a5e6c347e81ef0512fe31b39379ff7228b86c87/openapi-generators/openapi-python-client/issues/976 |
| og:image:alt | Describe the bug openapi-python-client fails to generate endpoints and throws incorrect path templating warnings when the path has a parameter with a hyphen. Renaming the parameters fixes the issue... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | harabat |
| hostname | github.com |
| expected-hostname | github.com |
| None | 60279d4097367e16897439d16d6bbe4180663db828c666eeed2656988ffe59f6 |
| turbo-cache-control | no-preview |
| go-import | github.com/openapi-generators/openapi-python-client git https://github.com/openapi-generators/openapi-python-client.git |
| octolytics-dimension-user_id | 84925606 |
| octolytics-dimension-user_login | openapi-generators |
| octolytics-dimension-repository_id | 240776275 |
| octolytics-dimension-repository_nwo | openapi-generators/openapi-python-client |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 240776275 |
| octolytics-dimension-repository_network_root_nwo | openapi-generators/openapi-python-client |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 7c85641c598ad130c74f7bcc27f58575cac69551 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width