552 lines
12 KiB
YAML
552 lines
12 KiB
YAML
openapi: 3.1.1
|
|
info:
|
|
title: Titles, Users, Reviews, Tags, and Media API
|
|
version: 1.0.0
|
|
servers:
|
|
- url: https://api.example.com
|
|
paths:
|
|
/title:
|
|
get:
|
|
summary: Get titles
|
|
parameters:
|
|
- in: query
|
|
name: query
|
|
schema:
|
|
type: string
|
|
- in: query
|
|
name: limit
|
|
schema:
|
|
type: integer
|
|
default: 10
|
|
- in: query
|
|
name: offset
|
|
schema:
|
|
type: integer
|
|
default: 0
|
|
- in: query
|
|
name: fields
|
|
schema:
|
|
type: string
|
|
default: all
|
|
responses:
|
|
'200':
|
|
description: List of titles
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Title'
|
|
'204':
|
|
description: No titles found
|
|
|
|
/title/{title_id}:
|
|
get:
|
|
summary: Get title description
|
|
parameters:
|
|
- in: path
|
|
name: title_id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- in: query
|
|
name: fields
|
|
schema:
|
|
type: string
|
|
default: all
|
|
responses:
|
|
'200':
|
|
description: Title description
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Title'
|
|
'404':
|
|
description: Title not found
|
|
|
|
patch:
|
|
summary: Update title info
|
|
parameters:
|
|
- in: path
|
|
name: title_id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Title'
|
|
responses:
|
|
'200':
|
|
description: Update result
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
error:
|
|
type: string
|
|
user_json:
|
|
$ref: '#/components/schemas/User'
|
|
|
|
/title/{title_id}/reviews:
|
|
get:
|
|
summary: Get title reviews
|
|
parameters:
|
|
- in: path
|
|
name: title_id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- in: query
|
|
name: limit
|
|
schema:
|
|
type: integer
|
|
default: 10
|
|
- in: query
|
|
name: offset
|
|
schema:
|
|
type: integer
|
|
default: 0
|
|
responses:
|
|
'200':
|
|
description: List of reviews
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Review'
|
|
'204':
|
|
description: No reviews found
|
|
|
|
/users/{user_id}:
|
|
get:
|
|
summary: Get user info
|
|
parameters:
|
|
- in: path
|
|
name: user_id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- in: query
|
|
name: fields
|
|
schema:
|
|
type: string
|
|
default: all
|
|
responses:
|
|
'200':
|
|
description: User info
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/User'
|
|
'404':
|
|
description: User not found
|
|
|
|
patch:
|
|
summary: Update user
|
|
parameters:
|
|
- in: path
|
|
name: user_id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/User'
|
|
responses:
|
|
'200':
|
|
description: Update result
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
error:
|
|
type: string
|
|
|
|
delete:
|
|
summary: Delete user
|
|
parameters:
|
|
- in: path
|
|
name: user_id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Delete result
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
error:
|
|
type: string
|
|
|
|
/users:
|
|
get:
|
|
summary: Search user
|
|
parameters:
|
|
- in: query
|
|
name: query
|
|
schema:
|
|
type: string
|
|
- in: query
|
|
name: fields
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: List of users
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/User'
|
|
|
|
post:
|
|
summary: Add new user
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/User'
|
|
responses:
|
|
'200':
|
|
description: Add result
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
error:
|
|
type: string
|
|
user_json:
|
|
$ref: '#/components/schemas/User'
|
|
|
|
/users/{user_id}/titles:
|
|
get:
|
|
summary: Get user titles
|
|
parameters:
|
|
- in: path
|
|
name: user_id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- in: query
|
|
name: query
|
|
schema:
|
|
type: string
|
|
- in: query
|
|
name: limit
|
|
schema:
|
|
type: integer
|
|
default: 10
|
|
- in: query
|
|
name: offset
|
|
schema:
|
|
type: integer
|
|
default: 0
|
|
- in: query
|
|
name: fields
|
|
schema:
|
|
type: string
|
|
default: all
|
|
responses:
|
|
'200':
|
|
description: List of user titles
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/UserTitle'
|
|
'204':
|
|
description: No titles found
|
|
|
|
post:
|
|
summary: Add user title
|
|
parameters:
|
|
- in: path
|
|
name: user_id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
title_id:
|
|
type: string
|
|
status:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Add result
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
error:
|
|
type: string
|
|
|
|
patch:
|
|
summary: Update user title
|
|
parameters:
|
|
- in: path
|
|
name: user_id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UserTitle'
|
|
responses:
|
|
'200':
|
|
description: Update result
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
error:
|
|
type: string
|
|
|
|
delete:
|
|
summary: Delete user title
|
|
parameters:
|
|
- in: path
|
|
name: user_id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- in: query
|
|
name: title_id
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Delete result
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
error:
|
|
type: string
|
|
|
|
/users/{user_id}/reviews:
|
|
get:
|
|
summary: Get user reviews
|
|
parameters:
|
|
- in: path
|
|
name: user_id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- in: query
|
|
name: limit
|
|
schema:
|
|
type: integer
|
|
default: 10
|
|
- in: query
|
|
name: offset
|
|
schema:
|
|
type: integer
|
|
default: 0
|
|
responses:
|
|
'200':
|
|
description: List of reviews
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Review'
|
|
|
|
/reviews:
|
|
post:
|
|
summary: Add review
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Review'
|
|
responses:
|
|
'200':
|
|
description: Add result
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
error:
|
|
type: string
|
|
|
|
/reviews/{review_id}:
|
|
patch:
|
|
summary: Update review
|
|
parameters:
|
|
- in: path
|
|
name: review_id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Review'
|
|
responses:
|
|
'200':
|
|
description: Update result
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
error:
|
|
type: string
|
|
delete:
|
|
summary: Delete review
|
|
parameters:
|
|
- in: path
|
|
name: review_id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Delete result
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
error:
|
|
type: string
|
|
|
|
/tags:
|
|
get:
|
|
summary: Get tags
|
|
parameters:
|
|
- in: query
|
|
name: limit
|
|
schema:
|
|
type: integer
|
|
default: 10
|
|
- in: query
|
|
name: offset
|
|
schema:
|
|
type: integer
|
|
default: 0
|
|
- in: query
|
|
name: fields
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: List of tags
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Tag'
|
|
|
|
/media:
|
|
post:
|
|
summary: Upload image
|
|
responses:
|
|
'200':
|
|
description: Upload result
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
error:
|
|
type: string
|
|
image_id:
|
|
type: string
|
|
|
|
get:
|
|
summary: Get image path
|
|
parameters:
|
|
- in: query
|
|
name: image_id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Image path
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
error:
|
|
type: string
|
|
image_path:
|
|
type: string
|
|
|
|
components:
|
|
schemas:
|
|
Title:
|
|
type: object
|
|
additionalProperties: true
|
|
User:
|
|
type: object
|
|
additionalProperties: true
|
|
UserTitle:
|
|
type: object
|
|
additionalProperties: true
|
|
Review:
|
|
type: object
|
|
additionalProperties: true
|
|
Tag:
|
|
type: object
|
|
additionalProperties: true
|