openapi: 3.0.0 info: title: АПИ для демо-экзамена по компетенции Разработка мобильных приложений version: 0.0.1 description: | API для мобильного приложения "WS-Cinema". Перечень ошибок неполный, возможно получение от сервера незадокументированных ошибок. Для передачи токена необходимо использовать Header: **Authorization: Bearer {token}** Требования к email: email должен соответствовать паттерну **name@domenname.ru**, где имя и домен второго уровня могут состоять только из маленьких букв и цифр, домен верхнего уровня - только из маленьких букв. Длина домена верхнего уровня - не более 3х символов. **BASE URL**: http://cinema.kolei.ru **BASE URL** Для видео: http://cinema.kolei.ru/up/video/ **BASE URL** Для изображений и аватаров: http://cinema.kolei.ru/up/images/ servers: - url: http://cinema.kolei.ru tags: - name: auth description: Регистрация и авторизация (получение токена) - name: movie description: Информация о киноновинках - name: up description: Ресурсы paths: /auth/register: post: tags: - auth summary: Регистрация requestBody: required: true content: application/json: schema: type: object properties: email: type: string description: Email пользователя. Email должен соответствовать паттерну "name@domenname.ru", где имя и домен второго уровня могут состоять только из маленьких букв и цифр, домен верхнего уровня - только из маленьких букв. Длина домена верхнего уровня - не более 3х символов. example: kolei@yandex.ru password: type: string description: Пароль example: qwerty firstName: type: string description: Имя пользователя example: Евгений lastName: type: string description: Фамилия пользователя example: Колесников required: - email - password - firstName - lastName responses: '200': description: Успешная регистрация '400': description: Проблемы при регистрации /auth/login: post: tags: - auth summary: Аутентификация в системе requestBody: required: true content: application/json: schema: type: object properties: email: type: string description: Email пользователя. Email должен соответствовать паттерну "name@domenname.ru", где имя и домен второго уровня могут состоять только из маленьких букв и цифр, домен верхнего уровня - только из маленьких букв. Длина домена верхнего уровня - не более 3х символов. example: kolei@yandex.ru password: type: string description: Пароль example: qwerty required: - email - password responses: '200': description: Успешная аутентификация content: application/json: schema: type: object properties: token: type: integer description: Токен доступа к серверу example: 123456 # links: # GetAuthToken: # parameters: # token: '$response.body#/token' '400': description: Проблема аутентификации /movies: get: tags: - movie summary: Получить список фильмов description: Список фильмов для отображения на главном экране parameters: - name: filter in: query description: Фильтр для запроса required: true schema: type: string default: new enum: [new, inTrend, forMe] responses: '200': description: Массив фильмов content: application/json: schema: $ref: '#/components/schemas/Movie' '400': description: Проблемы при запросе /up/images/{imageName}: get: tags: - up summary: Получение картинки parameters: - in: path name: imageName schema: type: string required: true description: Название картинки (с расширением), полученное при запросе списка фильмов responses: '200': description: Файл картинки в произвольном формате content: image/png: schema: type: string format: binary '404': description: Картинка не найдена на сервере components: securitySchemes: BearerAuth: type: http scheme: bearer schemas: Movie: type: array items: type: object properties: movieId: type: string example: 1 name: type: string example: Название фильма description: type: string example: Описание фильма age: type: string enum: ['0','6','12','16','18'] description: Возрастные ограничения images: type: array items: type: string poster: type: string example: poster.png description: Название картинки постера tags: $ref: '#/components/schemas/Tag' required: - movieId Tag: type: array items: type: object properties: idTags: type: string example: 13 tagName: type: string example: Комедия