Skip to content

Commit 3ef0c6a

Browse files
committed
Convert Flask path variables to OpenAPI path parameters
1 parent 2ec02e4 commit 3ef0c6a

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

openapi_core/wrappers/flask.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,16 @@
11
"""OpenAPI core wrappers module"""
2+
import re
3+
24
from openapi_core.wrappers.base import BaseOpenAPIRequest, BaseOpenAPIResponse
35

6+
# http://flask.pocoo.org/docs/1.0/quickstart/#variable-rules
7+
PATH_PARAMETER_PATTERN = r'<(?:(?:string|int|float|path|uuid):)?(\w+)>'
8+
49

510
class FlaskOpenAPIRequest(BaseOpenAPIRequest):
611

12+
path_regex = re.compile(PATH_PARAMETER_PATTERN)
13+
714
def __init__(self, request):
815
self.request = request
916

@@ -24,7 +31,7 @@ def path_pattern(self):
2431
if self.request.url_rule is None:
2532
return self.path
2633

27-
return self.request.url_rule.rule
34+
return self.path_regex.sub(r'{\1}', self.request.url_rule.rule)
2835

2936
@property
3037
def parameters(self):

0 commit comments

Comments
 (0)