common.py 5.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. from collections import OrderedDict
  2. SWAGGER_DOC_API = {
  3. 'definitions': {
  4. 'AboutResponseSchema': {'properties': {
  5. 'datetime': {'format': 'date-time',
  6. 'type': 'string'},
  7. 'version': {'type': 'string'}
  8. },
  9. 'required': ['datetime', 'version'],
  10. 'type': 'object'},
  11. 'ListsUserSchema': {'properties': {
  12. 'item_nb': {'format': 'int32',
  13. 'minimum': 0,
  14. 'type': 'integer'},
  15. 'items': {
  16. 'items': {'$ref': '#/definitions/UserSchema_without_email_address_first_name_last_name'},
  17. 'type': 'array'},
  18. 'pagination': {'$ref': '#/definitions/PaginationSchema'}},
  19. 'required': ['item_nb'],
  20. 'type': 'object'},
  21. 'NoContentSchema': {'properties': {},
  22. 'type': 'object'},
  23. 'PaginationSchema': {'properties': {
  24. 'current_id': {'format': 'int32', 'type': 'integer'},
  25. 'first_id': {'format': 'int32', 'type': 'integer'},
  26. 'last_id': {'format': 'int32', 'type': 'integer'}},
  27. 'required': ['current_id', 'first_id', 'last_id'],
  28. 'type': 'object'},
  29. 'UserSchema': {'properties': {
  30. 'company': {'type': 'string'},
  31. 'display_name': {'type': 'string'},
  32. 'email_address': {'format': 'email', 'type': 'string'},
  33. 'first_name': {'type': 'string'},
  34. 'id': {'format': 'int32', 'type': 'integer'},
  35. 'last_name': {'type': 'string'},
  36. 'username': {'type': 'string'}},
  37. 'required': ['company',
  38. 'display_name',
  39. 'email_address',
  40. 'first_name',
  41. 'id',
  42. 'last_name',
  43. 'username'],
  44. 'type': 'object'},
  45. 'UserSchema_without_id': {
  46. 'properties': {
  47. 'username': {'type': 'string'},
  48. 'display_name': {'type': 'string'},
  49. 'company': {'type': 'string'},
  50. 'last_name': {'type': 'string'},
  51. 'email_address': {'format': 'email', 'type': 'string'},
  52. 'first_name': {'type': 'string'}},
  53. 'required': ['company', 'display_name', 'email_address', 'first_name',
  54. 'last_name', 'username'], 'type': 'object'},
  55. 'UserSchema_without_email_address_first_name_last_name': {
  56. 'properties': {
  57. 'username': {'type': 'string'},
  58. 'id': {'format': 'int32', 'type': 'integer'},
  59. 'company': {'type': 'string'},
  60. 'display_name': {'type': 'string'}},
  61. 'required': ['company', 'display_name', 'id', 'username'], 'type': 'object'
  62. },
  63. },
  64. 'info': {'description': 'just an example of hapic API', 'title': 'Fake API', 'version': '1.0.0'},
  65. 'parameters': {},
  66. 'paths': OrderedDict(
  67. [('/about', {
  68. 'get': {
  69. 'description': 'General information about this API.',
  70. 'responses': {200: {
  71. 'description': '200',
  72. 'schema': {'$ref': '#/definitions/AboutResponseSchema'}}}}}),
  73. ('/users', {
  74. 'get': {
  75. 'description': 'Obtain users list.',
  76. 'responses': {200: {
  77. 'description': '200',
  78. 'schema': {'$ref': '#/definitions/ListsUserSchema'}}}}}),
  79. ('/users/{id}', {
  80. 'delete': {
  81. 'description': 'delete user',
  82. 'parameters': [{'in': 'path',
  83. 'name': 'id',
  84. 'required': True,
  85. 'type': 'integer'}],
  86. 'responses': {204: {
  87. 'description': '204',
  88. 'schema': {'$ref': '#/definitions/NoContentSchema'}}}},
  89. 'get': {
  90. 'description': 'Obtain one user',
  91. 'parameters': [{'in': 'path',
  92. 'name': 'id',
  93. 'required': True,
  94. 'type': 'integer'}],
  95. 'responses': {200: {
  96. 'description': '200',
  97. 'schema': {'$ref': '#/definitions/UserSchema'}}}}}),
  98. ('/users/', {
  99. 'post': {
  100. 'description': 'Add new user',
  101. 'parameters': [{'in': 'body',
  102. 'name': 'body',
  103. 'schema': {'$ref': '#/definitions/UserSchema_without_id'}}],
  104. 'responses': {200: {
  105. 'description': '200',
  106. 'schema': {'$ref': '#/definitions/UserSchema'}}}}}),
  107. ( '/users2', {
  108. 'get': {
  109. 'description': 'Obtain users list.',
  110. 'responses': {200: {
  111. 'description': '200',
  112. 'schema': {'type': 'array',
  113. 'items': {'$ref': '#/definitions/UserSchema_without_email_address_first_name_last_name'}
  114. }
  115. }}}}
  116. )]),
  117. 'swagger': '2.0',
  118. 'tags': []
  119. }