Files
neomovies-api/docs/swagger.json

782 lines
24 KiB
JSON
Raw Normal View History

{
"swagger": "2.0",
"info": {
"description": "API для работы с фильмами",
"title": "Neo Movies API",
"contact": {},
"version": "1.0"
},
"host": "localhost:8080",
"basePath": "/",
"paths": {
"/bridge/tmdb/discover/movie": {
"get": {
"description": "Get a list of movies based on filters",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"tmdb"
],
"summary": "Discover movies",
"parameters": [
{
"type": "integer",
"description": "Page number (default: 1)",
"name": "page",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/api.TMDBMoviesResponse"
}
}
}
}
},
"/bridge/tmdb/discover/tv": {
"get": {
"description": "Get a list of TV shows based on filters",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"tmdb"
],
"summary": "Discover TV shows",
"parameters": [
{
"type": "integer",
"description": "Page number (default: 1)",
"name": "page",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/api.TMDBMoviesResponse"
}
}
}
}
},
"/bridge/tmdb/movie/popular": {
"get": {
"description": "Get a list of popular movies directly from TMDB",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"tmdb"
],
"summary": "Get TMDB popular movies",
"parameters": [
{
"type": "integer",
"description": "Page number (default: 1)",
"name": "page",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/api.TMDBMoviesResponse"
}
}
}
}
},
"/bridge/tmdb/movie/top_rated": {
"get": {
"description": "Get a list of top rated movies directly from TMDB",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"tmdb"
],
"summary": "Get TMDB top rated movies",
"parameters": [
{
"type": "integer",
"description": "Page number (default: 1)",
"name": "page",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/api.TMDBMoviesResponse"
}
}
}
}
},
"/bridge/tmdb/movie/upcoming": {
"get": {
"description": "Get a list of upcoming movies directly from TMDB",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"tmdb"
],
"summary": "Get TMDB upcoming movies",
"parameters": [
{
"type": "integer",
"description": "Page number (default: 1)",
"name": "page",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/api.TMDBMoviesResponse"
}
}
}
}
},
"/bridge/tmdb/movie/{id}": {
"get": {
"description": "Get detailed information about a specific movie directly from TMDB",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"tmdb"
],
"summary": "Get TMDB movie details",
"parameters": [
{
"type": "integer",
"description": "Movie ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/tmdb.Movie"
}
}
}
}
},
"/bridge/tmdb/movie/{id}/external_ids": {
"get": {
"description": "Get external IDs (IMDb, Facebook, Instagram, Twitter) for a specific movie",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"tmdb"
],
"summary": "Get TMDB movie external IDs",
"parameters": [
{
"type": "integer",
"description": "Movie ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/tmdb.ExternalIDs"
}
}
}
}
},
"/bridge/tmdb/search/movie": {
"get": {
"description": "Search for movies directly in TMDB",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"tmdb"
],
"summary": "Search TMDB movies",
"parameters": [
{
"type": "string",
"description": "Search query",
"name": "query",
"in": "query",
"required": true
},
{
"type": "integer",
"description": "Page number (default: 1)",
"name": "page",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/tmdb.MoviesResponse"
}
}
}
}
},
"/bridge/tmdb/search/tv": {
"get": {
"description": "Search for TV shows directly in TMDB",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"tmdb"
],
"summary": "Search TMDB TV shows",
"parameters": [
{
"type": "string",
"description": "Search query",
"name": "query",
"in": "query",
"required": true
},
{
"type": "integer",
"description": "Page number (default: 1)",
"name": "page",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/tmdb.TVSearchResults"
}
}
}
}
},
"/bridge/tmdb/tv/{id}/external_ids": {
"get": {
"description": "Get external IDs (IMDb, Facebook, Instagram, Twitter) for a specific TV show",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"tmdb"
],
"summary": "Get TMDB TV show external IDs",
"parameters": [
{
"type": "integer",
"description": "TV Show ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/tmdb.ExternalIDs"
}
}
}
}
},
"/movies/popular": {
"get": {
"description": "Get a list of popular movies",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"movies"
],
"summary": "Get popular movies",
"parameters": [
{
"type": "integer",
"description": "Page number (default: 1)",
"name": "page",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/api.MoviesResponse"
}
}
}
}
},
"/movies/search": {
"get": {
"description": "Search for movies",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"movies"
],
"summary": "Search movies",
"parameters": [
{
"type": "string",
"description": "Search query",
"name": "query",
"in": "query",
"required": true
},
{
"type": "integer",
"description": "Page number (default: 1)",
"name": "page",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/api.MoviesResponse"
}
}
}
}
},
"/movies/top-rated": {
"get": {
"description": "Get a list of top rated movies",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"movies"
],
"summary": "Get top rated movies",
"parameters": [
{
"type": "integer",
"description": "Page number (default: 1)",
"name": "page",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/api.MoviesResponse"
}
}
}
}
},
"/movies/upcoming": {
"get": {
"description": "Get a list of upcoming movies",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"movies"
],
"summary": "Get upcoming movies",
"parameters": [
{
"type": "integer",
"description": "Page number (default: 1)",
"name": "page",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/api.MoviesResponse"
}
}
}
}
},
"/movies/{id}": {
"get": {
"description": "Get detailed information about a specific movie",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"movies"
],
"summary": "Get movie details",
"parameters": [
{
"type": "integer",
"description": "Movie ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/api.MovieDetails"
}
}
}
}
}
},
"definitions": {
"api.Genre": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
}
}
},
"api.Movie": {
"type": "object",
"properties": {
"backdrop_path": {
"type": "string"
},
"genres": {
"type": "array",
"items": {
"$ref": "#/definitions/api.Genre"
}
},
"id": {
"type": "integer"
},
"overview": {
"type": "string"
},
"poster_path": {
"type": "string"
},
"release_date": {
"type": "string"
},
"title": {
"type": "string"
},
"vote_average": {
"type": "number"
}
}
},
"api.MovieDetails": {
"type": "object",
"properties": {
"backdrop_path": {
"type": "string"
},
"budget": {
"type": "integer"
},
"genres": {
"type": "array",
"items": {
"$ref": "#/definitions/api.Genre"
}
},
"id": {
"type": "integer"
},
"overview": {
"type": "string"
},
"poster_path": {
"type": "string"
},
"release_date": {
"type": "string"
},
"revenue": {
"type": "integer"
},
"runtime": {
"type": "integer"
},
"status": {
"type": "string"
},
"tagline": {
"type": "string"
},
"title": {
"type": "string"
},
"vote_average": {
"type": "number"
}
}
},
"api.MoviesResponse": {
"type": "object",
"properties": {
"page": {
"type": "integer"
},
"results": {
"type": "array",
"items": {
"$ref": "#/definitions/api.Movie"
}
},
"total_pages": {
"type": "integer"
},
"total_results": {
"type": "integer"
}
}
},
"api.TMDBMoviesResponse": {
"type": "object",
"properties": {
"page": {
"type": "integer"
},
"results": {
"type": "array",
"items": {
"$ref": "#/definitions/api.Movie"
}
},
"total_pages": {
"type": "integer"
},
"total_results": {
"type": "integer"
}
}
},
"tmdb.ExternalIDs": {
"type": "object",
"properties": {
"facebook_id": {
"type": "string"
},
"id": {
"type": "integer"
},
"imdb_id": {
"type": "string"
},
"instagram_id": {
"type": "string"
},
"twitter_id": {
"type": "string"
}
}
},
"tmdb.Genre": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
}
}
},
"tmdb.Movie": {
"type": "object",
"properties": {
"backdrop_path": {
"type": "string"
},
"genres": {
"type": "array",
"items": {
"$ref": "#/definitions/tmdb.Genre"
}
},
"id": {
"type": "integer"
},
"overview": {
"type": "string"
},
"poster_path": {
"type": "string"
},
"release_date": {
"type": "string"
},
"title": {
"type": "string"
},
"vote_average": {
"type": "number"
}
}
},
"tmdb.MoviesResponse": {
"type": "object",
"properties": {
"page": {
"type": "integer"
},
"results": {
"type": "array",
"items": {
"$ref": "#/definitions/tmdb.Movie"
}
},
"total_pages": {
"type": "integer"
},
"total_results": {
"type": "integer"
}
}
},
"tmdb.TV": {
"type": "object",
"properties": {
"backdrop_path": {
"type": "string"
},
"first_air_date": {
"type": "string"
},
"genre_ids": {
"type": "array",
"items": {
"type": "integer"
}
},
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"original_language": {
"type": "string"
},
"original_name": {
"type": "string"
},
"overview": {
"type": "string"
},
"popularity": {
"type": "number"
},
"poster_path": {
"type": "string"
},
"vote_average": {
"type": "number"
},
"vote_count": {
"type": "integer"
}
}
},
"tmdb.TVSearchResults": {
"type": "object",
"properties": {
"page": {
"type": "integer"
},
"results": {
"type": "array",
"items": {
"$ref": "#/definitions/tmdb.TV"
}
},
"total_pages": {
"type": "integer"
},
"total_results": {
"type": "integer"
}
}
}
}
}