cinema.yml 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. openapi: 3.0.0
  2. info:
  3. title: АПИ для демо-экзамена по компетенции Разработка мобильных приложений
  4. version: 0.0.1
  5. description: |
  6. API для мобильного приложения "WS-Cinema".
  7. Перечень ошибок неполный, возможно получение от сервера незадокументированных ошибок.
  8. Для передачи токена необходимо использовать Header: **Authorization: Bearer {token}**
  9. Требования к email: email должен соответствовать паттерну **name@domenname.ru**, где имя и домен второго уровня могут состоять только из маленьких букв и цифр, домен верхнего уровня - только из маленьких букв. Длина домена верхнего уровня - не более 3х символов.
  10. **BASE URL**: http://cinema.kolei.ru
  11. **BASE URL** Для видео: http://cinema.kolei.ru/up/video/
  12. **BASE URL** Для изображений и аватаров: http://cinema.kolei.ru/up/images/
  13. servers:
  14. - url: http://cinema.kolei.ru
  15. tags:
  16. - name: auth
  17. description: Регистрация и авторизация (получение токена)
  18. - name: movie
  19. description: Информация о киноновинках
  20. paths:
  21. /auth/register:
  22. post:
  23. tags:
  24. - auth
  25. summary: Регистрация
  26. requestBody:
  27. required: true
  28. content:
  29. application/json:
  30. schema:
  31. type: object
  32. properties:
  33. email:
  34. type: string
  35. description: Email пользователя. Email должен соответствовать паттерну "name@domenname.ru", где имя и домен второго уровня могут состоять только из маленьких букв и цифр, домен верхнего уровня - только из маленьких букв. Длина домена верхнего уровня - не более 3х символов.
  36. example: kolei@yandex.ru
  37. password:
  38. type: string
  39. description: Пароль
  40. example: qwerty
  41. firstName:
  42. type: string
  43. description: Имя пользователя
  44. example: Евгений
  45. lastName:
  46. type: string
  47. description: Фамилия пользователя
  48. example: Колесников
  49. required:
  50. - email
  51. - password
  52. - firstName
  53. - lastName
  54. responses:
  55. '200':
  56. description: Успешная регистрация
  57. '400':
  58. description: Проблемы при регистрации
  59. /auth/login:
  60. post:
  61. tags:
  62. - auth
  63. summary: Аутентификация в системе
  64. requestBody:
  65. required: true
  66. content:
  67. application/json:
  68. schema:
  69. type: object
  70. properties:
  71. email:
  72. type: string
  73. description: Email пользователя. Email должен соответствовать паттерну "name@domenname.ru", где имя и домен второго уровня могут состоять только из маленьких букв и цифр, домен верхнего уровня - только из маленьких букв. Длина домена верхнего уровня - не более 3х символов.
  74. example: kolei@yandex.ru
  75. password:
  76. type: string
  77. description: Пароль
  78. example: qwerty
  79. required:
  80. - email
  81. - password
  82. responses:
  83. '200':
  84. description: Успешная аутентификация
  85. content:
  86. application/json:
  87. schema:
  88. type: object
  89. properties:
  90. token:
  91. type: integer
  92. description: Токен доступа к серверу
  93. example: 123456
  94. # links:
  95. # GetAuthToken:
  96. # parameters:
  97. # token: '$response.body#/token'
  98. '400':
  99. description: Проблема аутентификации
  100. /movies:
  101. get:
  102. tags:
  103. - movie
  104. summary: Получить список фильмов
  105. description: Список фильмов для отображения на главном экране
  106. parameters:
  107. - name: filter
  108. in: query
  109. description: Фильтр для запроса
  110. required: true
  111. schema:
  112. type: string
  113. default: new
  114. enum: [new, inTrend, forMe]
  115. responses:
  116. '200':
  117. description: Массив фильмов
  118. content:
  119. application/json:
  120. schema:
  121. $ref: '#/components/schemas/ArrayOfMovies'
  122. '400':
  123. description: Проблемы при запросе
  124. components:
  125. securitySchemes:
  126. BearerAuth:
  127. type: http
  128. scheme: bearer
  129. schemas:
  130. ArrayOfMovies:
  131. type: array
  132. items:
  133. type: object
  134. properties:
  135. movieId:
  136. type: string
  137. example: 1
  138. name:
  139. type: string
  140. example: Название фильма
  141. description:
  142. type: string
  143. example: Описание фильма
  144. age:
  145. type: string
  146. enum: ['0','6','12','16','18']
  147. description: Возрастные ограничения
  148. images:
  149. type: array
  150. items:
  151. type: string
  152. poster:
  153. type: string
  154. example: poster.png
  155. description: Название картинки постера
  156. tags:
  157. $ref: '#/components/schemas/ArrayOfTags'
  158. required:
  159. - movieId
  160. ArrayOfTags:
  161. type: array
  162. items:
  163. type: object
  164. properties:
  165. idTags:
  166. type: string
  167. example: 13
  168. tagName:
  169. type: string
  170. example: Комедия