def _httpresource(endpoint, method, properties):
parameters = properties.get('parameters', [])
responses = properties['responses']
indent = ' '
yield '.. http:{0}:: {1}'.format(method, endpoint)
yield ' :synopsis: {0}'.format(properties.get('summary', 'null'))
yield ''
if 'summary' in properties:
for line in properties['summary'].splitlines():
yield '{indent}**{line}**'.format(**locals())
yield ''
if 'description' in properties:
for line in properties['description'].splitlines():
yield '{indent}{line}'.format(**locals())
yield ''
# print request's route params
for param in filter(lambda p: p['in'] == 'path', parameters):
yield indent + ':param {type} {name}:'.format(**param)
for line in param.get('description', '').splitlines():
yield '{indent}{indent}{line}'.format(**locals())
# print request's query params
for param in filter(lambda p: p['in'] == 'query', parameters):
yield indent + ':query {type} {name}:'.format(**param)
for line in param.get('description', '').splitlines():
yield '{indent}{indent}{line}'.format(**locals())
# print response status codes
for status, response in responses.items():
yield '{indent}:status {status}:'.format(**locals())
for line in response['description'].splitlines():
yield '{indent}{indent}{line}'.format(**locals())
# print request header params
for param in filter(lambda p: p['in'] == 'header', parameters):
yield indent + ':reqheader {name}:'.format(**param)
for line in param.get('description', '').splitlines():
yield '{indent}{indent}{line}'.format(**locals())
# print response headers
for status, response in responses.items():
for headername, header in response.get('headers', {}).items():
yield indent + ':resheader {name}:'.format(name=headername)
for line in header['description'].splitlines():
yield '{indent}{indent}{line}'.format(**locals())
yield ''
评论列表
文章目录