common.py 4.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  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'},
  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. 'info': {'description': 'just an example of hapic API',
  46. 'title': 'Fake API',
  47. 'version': '1.0.0'},
  48. 'parameters': {},
  49. 'paths': OrderedDict(
  50. [('/about', {
  51. 'get': {
  52. 'description': 'General information about this API.',
  53. 'responses': {200: {
  54. 'description': 'HTTPStatus.OK',
  55. 'schema': {'$ref': '#/definitions/AboutResponseSchema'}}}}}),
  56. ('/users', {
  57. 'get': {
  58. 'description': 'Obtain users list.',
  59. 'responses': {200: {
  60. 'description': 'HTTPStatus.OK',
  61. 'schema': {'$ref': '#/definitions/ListsUserSchema'}}}}}),
  62. ('/users/{id}', {
  63. 'delete': {
  64. 'description': 'delete user',
  65. 'parameters': [{'in': 'path',
  66. 'name': 'id',
  67. 'required': True,
  68. 'type': 'integer'}],
  69. 'responses': {204: {
  70. 'description': '204',
  71. 'schema': {'$ref': '#/definitions/NoContentSchema'}}}},
  72. 'get': {
  73. 'description': 'Obtain one user',
  74. 'parameters': [{'in': 'path',
  75. 'name': 'id',
  76. 'required': True,
  77. 'type': 'integer'}],
  78. 'responses': {200: {
  79. 'description': 'HTTPStatus.OK',
  80. 'schema': {'$ref': '#/definitions/UserSchema'}}}}}),
  81. ('/users/', {
  82. 'post': {
  83. 'description': 'Add new user',
  84. 'parameters': [{'in': 'body',
  85. 'name': 'body',
  86. 'schema': {'$ref': '#/definitions/UserSchema'}}],
  87. 'responses': {200: {
  88. 'description': 'HTTPStatus.OK',
  89. 'schema': {'$ref': '#/definitions/UserSchema'}}}}})]),
  90. 'swagger': '2.0',
  91. 'tags': []
  92. }