blob: 1bd19ee7a53580017e12d90d6a9ee57c883b4200 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
import json
import sys
import re
def parse(version, endpoint_path):
"""Map an HTTP endpoint path to an API path"""
with open('opendc/api/{}/paths.json'.format(version)) as paths_file:
paths = json.load(paths_file)
endpoint_path_parts = endpoint_path.strip('/').split('/')
paths_parts = [x.split('/') for x in paths if len(x.split('/')) == len(endpoint_path_parts)]
for path_parts in paths_parts:
found = True
for (endpoint_part, part) in zip(endpoint_path_parts, path_parts):
if not part.startswith('{') and endpoint_part != part:
found = False
break
if found:
sys.stdout.flush()
return '{}/{}'.format(version, '/'.join(path_parts))
return None
|