mirror of
https://gitlab.com/foxixus/neomovies-api.git
synced 2025-10-28 18:08:51 +05:00
Update 16 files
- /docs/swagger.yaml - /docs/swagger.json - /docs/docs.go - /internal/api/init.go - /internal/api/models.go - /internal/api/handlers.go - /internal/api/utils.go - /internal/tmdb/models.go - /internal/tmdb/client.go - /build.sh - /go.mod - /go.sum - /main.go - /render.yaml - /run.sh - /README.md
This commit is contained in:
806
docs/docs.go
Normal file
806
docs/docs.go
Normal file
@@ -0,0 +1,806 @@
|
||||
// Package docs Code generated by swaggo/swag. DO NOT EDIT
|
||||
package docs
|
||||
|
||||
import "github.com/swaggo/swag"
|
||||
|
||||
const docTemplate = `{
|
||||
"schemes": {{ marshal .Schemes }},
|
||||
"swagger": "2.0",
|
||||
"info": {
|
||||
"description": "{{escape .Description}}",
|
||||
"title": "{{.Title}}",
|
||||
"contact": {},
|
||||
"version": "{{.Version}}"
|
||||
},
|
||||
"host": "{{.Host}}",
|
||||
"basePath": "{{.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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}`
|
||||
|
||||
// SwaggerInfo holds exported Swagger Info so clients can modify it
|
||||
var SwaggerInfo = &swag.Spec{
|
||||
Version: "1.0",
|
||||
Host: "localhost:8080",
|
||||
BasePath: "/",
|
||||
Schemes: []string{},
|
||||
Title: "Neo Movies API",
|
||||
Description: "API для работы с фильмами",
|
||||
InfoInstanceName: "swagger",
|
||||
SwaggerTemplate: docTemplate,
|
||||
LeftDelim: "{{",
|
||||
RightDelim: "}}",
|
||||
}
|
||||
|
||||
func init() {
|
||||
swag.Register(SwaggerInfo.InstanceName(), SwaggerInfo)
|
||||
}
|
||||
782
docs/swagger.json
Normal file
782
docs/swagger.json
Normal file
@@ -0,0 +1,782 @@
|
||||
{
|
||||
"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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
512
docs/swagger.yaml
Normal file
512
docs/swagger.yaml
Normal file
@@ -0,0 +1,512 @@
|
||||
basePath: /
|
||||
definitions:
|
||||
api.Genre:
|
||||
properties:
|
||||
id:
|
||||
type: integer
|
||||
name:
|
||||
type: string
|
||||
type: object
|
||||
api.Movie:
|
||||
properties:
|
||||
backdrop_path:
|
||||
type: string
|
||||
genres:
|
||||
items:
|
||||
$ref: '#/definitions/api.Genre'
|
||||
type: array
|
||||
id:
|
||||
type: integer
|
||||
overview:
|
||||
type: string
|
||||
poster_path:
|
||||
type: string
|
||||
release_date:
|
||||
type: string
|
||||
title:
|
||||
type: string
|
||||
vote_average:
|
||||
type: number
|
||||
type: object
|
||||
api.MovieDetails:
|
||||
properties:
|
||||
backdrop_path:
|
||||
type: string
|
||||
budget:
|
||||
type: integer
|
||||
genres:
|
||||
items:
|
||||
$ref: '#/definitions/api.Genre'
|
||||
type: array
|
||||
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
|
||||
type: object
|
||||
api.MoviesResponse:
|
||||
properties:
|
||||
page:
|
||||
type: integer
|
||||
results:
|
||||
items:
|
||||
$ref: '#/definitions/api.Movie'
|
||||
type: array
|
||||
total_pages:
|
||||
type: integer
|
||||
total_results:
|
||||
type: integer
|
||||
type: object
|
||||
api.TMDBMoviesResponse:
|
||||
properties:
|
||||
page:
|
||||
type: integer
|
||||
results:
|
||||
items:
|
||||
$ref: '#/definitions/api.Movie'
|
||||
type: array
|
||||
total_pages:
|
||||
type: integer
|
||||
total_results:
|
||||
type: integer
|
||||
type: object
|
||||
tmdb.ExternalIDs:
|
||||
properties:
|
||||
facebook_id:
|
||||
type: string
|
||||
id:
|
||||
type: integer
|
||||
imdb_id:
|
||||
type: string
|
||||
instagram_id:
|
||||
type: string
|
||||
twitter_id:
|
||||
type: string
|
||||
type: object
|
||||
tmdb.Genre:
|
||||
properties:
|
||||
id:
|
||||
type: integer
|
||||
name:
|
||||
type: string
|
||||
type: object
|
||||
tmdb.Movie:
|
||||
properties:
|
||||
backdrop_path:
|
||||
type: string
|
||||
genres:
|
||||
items:
|
||||
$ref: '#/definitions/tmdb.Genre'
|
||||
type: array
|
||||
id:
|
||||
type: integer
|
||||
overview:
|
||||
type: string
|
||||
poster_path:
|
||||
type: string
|
||||
release_date:
|
||||
type: string
|
||||
title:
|
||||
type: string
|
||||
vote_average:
|
||||
type: number
|
||||
type: object
|
||||
tmdb.MoviesResponse:
|
||||
properties:
|
||||
page:
|
||||
type: integer
|
||||
results:
|
||||
items:
|
||||
$ref: '#/definitions/tmdb.Movie'
|
||||
type: array
|
||||
total_pages:
|
||||
type: integer
|
||||
total_results:
|
||||
type: integer
|
||||
type: object
|
||||
tmdb.TV:
|
||||
properties:
|
||||
backdrop_path:
|
||||
type: string
|
||||
first_air_date:
|
||||
type: string
|
||||
genre_ids:
|
||||
items:
|
||||
type: integer
|
||||
type: array
|
||||
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
|
||||
type: object
|
||||
tmdb.TVSearchResults:
|
||||
properties:
|
||||
page:
|
||||
type: integer
|
||||
results:
|
||||
items:
|
||||
$ref: '#/definitions/tmdb.TV'
|
||||
type: array
|
||||
total_pages:
|
||||
type: integer
|
||||
total_results:
|
||||
type: integer
|
||||
type: object
|
||||
host: localhost:8080
|
||||
info:
|
||||
contact: {}
|
||||
description: API для работы с фильмами
|
||||
title: Neo Movies API
|
||||
version: "1.0"
|
||||
paths:
|
||||
/bridge/tmdb/discover/movie:
|
||||
get:
|
||||
consumes:
|
||||
- application/json
|
||||
description: Get a list of movies based on filters
|
||||
parameters:
|
||||
- description: 'Page number (default: 1)'
|
||||
in: query
|
||||
name: page
|
||||
type: integer
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
$ref: '#/definitions/api.TMDBMoviesResponse'
|
||||
summary: Discover movies
|
||||
tags:
|
||||
- tmdb
|
||||
/bridge/tmdb/discover/tv:
|
||||
get:
|
||||
consumes:
|
||||
- application/json
|
||||
description: Get a list of TV shows based on filters
|
||||
parameters:
|
||||
- description: 'Page number (default: 1)'
|
||||
in: query
|
||||
name: page
|
||||
type: integer
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
$ref: '#/definitions/api.TMDBMoviesResponse'
|
||||
summary: Discover TV shows
|
||||
tags:
|
||||
- tmdb
|
||||
/bridge/tmdb/movie/{id}:
|
||||
get:
|
||||
consumes:
|
||||
- application/json
|
||||
description: Get detailed information about a specific movie directly from TMDB
|
||||
parameters:
|
||||
- description: Movie ID
|
||||
in: path
|
||||
name: id
|
||||
required: true
|
||||
type: integer
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
$ref: '#/definitions/tmdb.Movie'
|
||||
summary: Get TMDB movie details
|
||||
tags:
|
||||
- tmdb
|
||||
/bridge/tmdb/movie/{id}/external_ids:
|
||||
get:
|
||||
consumes:
|
||||
- application/json
|
||||
description: Get external IDs (IMDb, Facebook, Instagram, Twitter) for a specific
|
||||
movie
|
||||
parameters:
|
||||
- description: Movie ID
|
||||
in: path
|
||||
name: id
|
||||
required: true
|
||||
type: integer
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
$ref: '#/definitions/tmdb.ExternalIDs'
|
||||
summary: Get TMDB movie external IDs
|
||||
tags:
|
||||
- tmdb
|
||||
/bridge/tmdb/movie/popular:
|
||||
get:
|
||||
consumes:
|
||||
- application/json
|
||||
description: Get a list of popular movies directly from TMDB
|
||||
parameters:
|
||||
- description: 'Page number (default: 1)'
|
||||
in: query
|
||||
name: page
|
||||
type: integer
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
$ref: '#/definitions/api.TMDBMoviesResponse'
|
||||
summary: Get TMDB popular movies
|
||||
tags:
|
||||
- tmdb
|
||||
/bridge/tmdb/movie/top_rated:
|
||||
get:
|
||||
consumes:
|
||||
- application/json
|
||||
description: Get a list of top rated movies directly from TMDB
|
||||
parameters:
|
||||
- description: 'Page number (default: 1)'
|
||||
in: query
|
||||
name: page
|
||||
type: integer
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
$ref: '#/definitions/api.TMDBMoviesResponse'
|
||||
summary: Get TMDB top rated movies
|
||||
tags:
|
||||
- tmdb
|
||||
/bridge/tmdb/movie/upcoming:
|
||||
get:
|
||||
consumes:
|
||||
- application/json
|
||||
description: Get a list of upcoming movies directly from TMDB
|
||||
parameters:
|
||||
- description: 'Page number (default: 1)'
|
||||
in: query
|
||||
name: page
|
||||
type: integer
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
$ref: '#/definitions/api.TMDBMoviesResponse'
|
||||
summary: Get TMDB upcoming movies
|
||||
tags:
|
||||
- tmdb
|
||||
/bridge/tmdb/search/movie:
|
||||
get:
|
||||
consumes:
|
||||
- application/json
|
||||
description: Search for movies directly in TMDB
|
||||
parameters:
|
||||
- description: Search query
|
||||
in: query
|
||||
name: query
|
||||
required: true
|
||||
type: string
|
||||
- description: 'Page number (default: 1)'
|
||||
in: query
|
||||
name: page
|
||||
type: integer
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
$ref: '#/definitions/tmdb.MoviesResponse'
|
||||
summary: Search TMDB movies
|
||||
tags:
|
||||
- tmdb
|
||||
/bridge/tmdb/search/tv:
|
||||
get:
|
||||
consumes:
|
||||
- application/json
|
||||
description: Search for TV shows directly in TMDB
|
||||
parameters:
|
||||
- description: Search query
|
||||
in: query
|
||||
name: query
|
||||
required: true
|
||||
type: string
|
||||
- description: 'Page number (default: 1)'
|
||||
in: query
|
||||
name: page
|
||||
type: integer
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
$ref: '#/definitions/tmdb.TVSearchResults'
|
||||
summary: Search TMDB TV shows
|
||||
tags:
|
||||
- tmdb
|
||||
/bridge/tmdb/tv/{id}/external_ids:
|
||||
get:
|
||||
consumes:
|
||||
- application/json
|
||||
description: Get external IDs (IMDb, Facebook, Instagram, Twitter) for a specific
|
||||
TV show
|
||||
parameters:
|
||||
- description: TV Show ID
|
||||
in: path
|
||||
name: id
|
||||
required: true
|
||||
type: integer
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
$ref: '#/definitions/tmdb.ExternalIDs'
|
||||
summary: Get TMDB TV show external IDs
|
||||
tags:
|
||||
- tmdb
|
||||
/movies/{id}:
|
||||
get:
|
||||
consumes:
|
||||
- application/json
|
||||
description: Get detailed information about a specific movie
|
||||
parameters:
|
||||
- description: Movie ID
|
||||
in: path
|
||||
name: id
|
||||
required: true
|
||||
type: integer
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
$ref: '#/definitions/api.MovieDetails'
|
||||
summary: Get movie details
|
||||
tags:
|
||||
- movies
|
||||
/movies/popular:
|
||||
get:
|
||||
consumes:
|
||||
- application/json
|
||||
description: Get a list of popular movies
|
||||
parameters:
|
||||
- description: 'Page number (default: 1)'
|
||||
in: query
|
||||
name: page
|
||||
type: integer
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
$ref: '#/definitions/api.MoviesResponse'
|
||||
summary: Get popular movies
|
||||
tags:
|
||||
- movies
|
||||
/movies/search:
|
||||
get:
|
||||
consumes:
|
||||
- application/json
|
||||
description: Search for movies
|
||||
parameters:
|
||||
- description: Search query
|
||||
in: query
|
||||
name: query
|
||||
required: true
|
||||
type: string
|
||||
- description: 'Page number (default: 1)'
|
||||
in: query
|
||||
name: page
|
||||
type: integer
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
$ref: '#/definitions/api.MoviesResponse'
|
||||
summary: Search movies
|
||||
tags:
|
||||
- movies
|
||||
/movies/top-rated:
|
||||
get:
|
||||
consumes:
|
||||
- application/json
|
||||
description: Get a list of top rated movies
|
||||
parameters:
|
||||
- description: 'Page number (default: 1)'
|
||||
in: query
|
||||
name: page
|
||||
type: integer
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
$ref: '#/definitions/api.MoviesResponse'
|
||||
summary: Get top rated movies
|
||||
tags:
|
||||
- movies
|
||||
/movies/upcoming:
|
||||
get:
|
||||
consumes:
|
||||
- application/json
|
||||
description: Get a list of upcoming movies
|
||||
parameters:
|
||||
- description: 'Page number (default: 1)'
|
||||
in: query
|
||||
name: page
|
||||
type: integer
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
$ref: '#/definitions/api.MoviesResponse'
|
||||
summary: Get upcoming movies
|
||||
tags:
|
||||
- movies
|
||||
swagger: "2.0"
|
||||
Reference in New Issue
Block a user