feat: added openapi spec #2
					 1 changed files with 552 additions and 0 deletions
				
			
		
							
								
								
									
										552
									
								
								api/openapi.yaml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										552
									
								
								api/openapi.yaml
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,552 @@ | |||
| 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 | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue